@pega/react-sdk-components 23.1.11 → 23.1.12

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 (46) hide show
  1. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js +2 -2
  2. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js.map +1 -1
  3. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.d.ts +1 -0
  4. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.d.ts.map +1 -1
  5. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js +4 -2
  6. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js.map +1 -1
  7. package/lib/components/field/Checkbox/Checkbox.d.ts +7 -0
  8. package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
  9. package/lib/components/field/Checkbox/Checkbox.js +51 -9
  10. package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
  11. package/lib/components/field/Decimal/Decimal.d.ts +1 -0
  12. package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
  13. package/lib/components/field/Decimal/Decimal.js +10 -3
  14. package/lib/components/field/Decimal/Decimal.js.map +1 -1
  15. package/lib/components/field/MultiSelect/Multiselect.d.ts +3 -0
  16. package/lib/components/field/MultiSelect/Multiselect.d.ts.map +1 -0
  17. package/lib/components/field/MultiSelect/Multiselect.js +175 -0
  18. package/lib/components/field/MultiSelect/Multiselect.js.map +1 -0
  19. package/lib/components/field/MultiSelect/index.d.ts +2 -0
  20. package/lib/components/field/MultiSelect/index.d.ts.map +1 -0
  21. package/lib/components/field/MultiSelect/index.js +2 -0
  22. package/lib/components/field/MultiSelect/index.js.map +1 -0
  23. package/lib/components/field/MultiSelect/utils.d.ts +10 -0
  24. package/lib/components/field/MultiSelect/utils.d.ts.map +1 -0
  25. package/lib/components/field/MultiSelect/utils.js +197 -0
  26. package/lib/components/field/MultiSelect/utils.js.map +1 -0
  27. package/lib/components/field/RichText/RichText.js +2 -2
  28. package/lib/components/field/RichText/RichText.js.map +1 -1
  29. package/lib/components/helpers/common-utils.js +1 -1
  30. package/lib/components/helpers/common-utils.js.map +1 -1
  31. package/lib/components/helpers/instructions-utils.d.ts +5 -0
  32. package/lib/components/helpers/instructions-utils.d.ts.map +1 -0
  33. package/lib/components/helpers/instructions-utils.js +36 -0
  34. package/lib/components/helpers/instructions-utils.js.map +1 -0
  35. package/lib/components/infra/NavBar/NavBar.js +1 -1
  36. package/lib/components/infra/NavBar/NavBar.js.map +1 -1
  37. package/lib/components/infra/Reference/Reference.js +1 -1
  38. package/lib/components/infra/Reference/Reference.js.map +1 -1
  39. package/lib/components/template/ListView/ListView.js +6 -6
  40. package/lib/components/template/ListView/ListView.js.map +1 -1
  41. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +4 -4
  42. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
  43. package/lib/sdk-pega-component-map.d.ts +2 -0
  44. package/lib/sdk-pega-component-map.js +2 -0
  45. package/lib/sdk-pega-component-map.js.map +1 -1
  46. package/package.json +1 -1
@@ -57,9 +57,9 @@ export default function CaseSummaryFields(props) {
57
57
  const displayPhone = field.config.value !== '' ? field.config.value : '---';
58
58
  return (_jsx("a", { href: `tel:${displayPhone}`, children: _jsx(TextField, { value: field.config.value, label: field.config.label, InputProps: {
59
59
  readOnly: true,
60
+ disableUnderline: true,
60
61
  inputProps: {
61
- style: { cursor: 'pointer' },
62
- disableUnderline: true
62
+ style: { cursor: 'pointer' }
63
63
  }
64
64
  } }) }));
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSummaryFields.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport isDeepEqual from 'fast-deep-equal/react';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\n\nimport { getDateFormatInfo } from '../../helpers/date-format-utils';\nimport { getCurrencyOptions } from '../../field/Currency/currency-utils';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\n\nimport './CaseSummaryFields.css';\n\nimport { format } from '../../helpers/formatters';\n\n// CaseSummaryFields is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\ninterface CaseSummaryFieldsProps {\n // If any, enter additional props that only exist on this component\n status?: string;\n showStatus?: boolean;\n theFields: any[] | any | never;\n}\n\nexport default function CaseSummaryFields(props: CaseSummaryFieldsProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const Operator = getComponentFromMap('Operator');\n\n const { status, showStatus, theFields } = props;\n\n const [theFieldsToRender, setFieldsToRender] = useState([]);\n const [theFieldsAsGridItems, setFieldsAsGridItems] = useState<any[]>([]);\n\n function getFieldValue(field: any): any {\n const fieldTypeLower = field.type.toLowerCase();\n\n if (field.config.value === null || field.config.value === '') {\n // Special handling for missing value\n // eslint-disable-next-line sonarjs/no-small-switch\n switch (fieldTypeLower) {\n case 'caseoperator':\n return <Operator {...field.config} />;\n break;\n\n default:\n return (\n <TextField\n value='---'\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n }\n\n switch (fieldTypeLower) {\n case 'textinput':\n case 'decimal':\n case 'integer':\n case 'dropdown':\n return (\n <TextField\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n\n case 'checkbox': {\n const { caption, label, value, trueLabel, falseLabel } = field.config;\n const fieldLabel = label || caption;\n const fieldValue = value ? trueLabel : falseLabel;\n\n return (\n <TextField\n value={fieldValue}\n label={fieldLabel}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n\n case 'status':\n return (\n <TextField\n className='psdk-csf-status-style'\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n\n case 'phone': {\n const displayPhone = field.config.value !== '' ? field.config.value : '---';\n return (\n <a href={`tel:${displayPhone}`}>\n <TextField\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n inputProps: {\n style: { cursor: 'pointer' },\n disableUnderline: true\n }\n }}\n />\n </a>\n );\n }\n\n case 'email': {\n const displayEmail = format(field.config.value, field.type);\n return (\n <a href={`mailto:${displayEmail}`}>\n <TextField\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true,\n inputProps: { style: { cursor: 'pointer' } }\n }}\n />\n </a>\n );\n }\n\n case 'date':\n case 'datetime': {\n const theDateFormatInfo = getDateFormatInfo();\n // console.log(`theDateFormatInfo: ${theDateFormatInfo}`);\n const theFormat =\n fieldTypeLower === 'datetime' ? `${theDateFormatInfo.dateFormatStringLong} hh:mm a` : theDateFormatInfo.dateFormatStringLong;\n\n return (\n <TextField\n value={format(field.config.value, field.type, {\n format: theFormat\n })}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n\n case 'currency': {\n const theCurrencyOptions = getCurrencyOptions(field.config?.currencyISOCode);\n return (\n <TextField\n value={format(field.config.value, field.type, theCurrencyOptions)}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n\n case 'boolean':\n case 'userreference':\n return (\n <TextField\n value={format(field.config.value, field.type)}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n\n case 'caseoperator':\n return <Operator {...field.config} />;\n\n default:\n return (\n <span>\n {field.type.toLowerCase()} {field.config.value}\n </span>\n );\n }\n }\n\n // Whenever theFieldsToRender changes, update theFieldsAsGridItems that's used during render\n useEffect(() => {\n const arGridItems = theFieldsToRender.map((field: any) => {\n // display the field when either visibility property doesn't exist or is true(if exists)\n if (field.config.visibility === undefined || field.config.visibility === true) {\n return (\n <Grid item xs={6} key={field.config.label}>\n {getFieldValue(field)}\n </Grid>\n );\n }\n\n return null;\n });\n setFieldsAsGridItems(arGridItems);\n }, [theFieldsToRender]);\n\n const theFieldsModifiable = theFields;\n\n // Special Case: if showStatus is true, splice the status value to be 2nd in theFields\n // if it's not already there\n if (showStatus && theFields?.[1].type !== 'status') {\n const oStatus = {\n type: 'status',\n config: { value: status, label: 'Status' }\n };\n\n const count = theFieldsModifiable.length;\n if (count < 2) {\n theFieldsModifiable.push(oStatus);\n } else {\n theFieldsModifiable.splice(1, 0, oStatus);\n }\n }\n\n // At this point, we know what fields we want to render...\n // So, update our state if it's changed\n if (!isDeepEqual(theFieldsToRender, theFieldsModifiable)) {\n setFieldsToRender(theFieldsModifiable);\n }\n\n return (\n <Grid container className='psdk-case-summary-fields'>\n {theFieldsAsGridItems}\n </Grid>\n );\n}\n"]}
1
+ {"version":3,"file":"CaseSummaryFields.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport isDeepEqual from 'fast-deep-equal/react';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\n\nimport { getDateFormatInfo } from '../../helpers/date-format-utils';\nimport { getCurrencyOptions } from '../../field/Currency/currency-utils';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\n\nimport './CaseSummaryFields.css';\n\nimport { format } from '../../helpers/formatters';\n\n// CaseSummaryFields is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\ninterface CaseSummaryFieldsProps {\n // If any, enter additional props that only exist on this component\n status?: string;\n showStatus?: boolean;\n theFields: any[] | any | never;\n}\n\nexport default function CaseSummaryFields(props: CaseSummaryFieldsProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const Operator = getComponentFromMap('Operator');\n\n const { status, showStatus, theFields } = props;\n\n const [theFieldsToRender, setFieldsToRender] = useState([]);\n const [theFieldsAsGridItems, setFieldsAsGridItems] = useState<any[]>([]);\n\n function getFieldValue(field: any): any {\n const fieldTypeLower = field.type.toLowerCase();\n\n if (field.config.value === null || field.config.value === '') {\n // Special handling for missing value\n // eslint-disable-next-line sonarjs/no-small-switch\n switch (fieldTypeLower) {\n case 'caseoperator':\n return <Operator {...field.config} />;\n break;\n\n default:\n return (\n <TextField\n value='---'\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n }\n\n switch (fieldTypeLower) {\n case 'textinput':\n case 'decimal':\n case 'integer':\n case 'dropdown':\n return (\n <TextField\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n\n case 'checkbox': {\n const { caption, label, value, trueLabel, falseLabel } = field.config;\n const fieldLabel = label || caption;\n const fieldValue = value ? trueLabel : falseLabel;\n\n return (\n <TextField\n value={fieldValue}\n label={fieldLabel}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n\n case 'status':\n return (\n <TextField\n className='psdk-csf-status-style'\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n\n case 'phone': {\n const displayPhone = field.config.value !== '' ? field.config.value : '---';\n return (\n <a href={`tel:${displayPhone}`}>\n <TextField\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true,\n inputProps: {\n style: { cursor: 'pointer' }\n }\n }}\n />\n </a>\n );\n }\n\n case 'email': {\n const displayEmail = format(field.config.value, field.type);\n return (\n <a href={`mailto:${displayEmail}`}>\n <TextField\n value={field.config.value}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true,\n inputProps: { style: { cursor: 'pointer' } }\n }}\n />\n </a>\n );\n }\n\n case 'date':\n case 'datetime': {\n const theDateFormatInfo = getDateFormatInfo();\n // console.log(`theDateFormatInfo: ${theDateFormatInfo}`);\n const theFormat =\n fieldTypeLower === 'datetime' ? `${theDateFormatInfo.dateFormatStringLong} hh:mm a` : theDateFormatInfo.dateFormatStringLong;\n\n return (\n <TextField\n value={format(field.config.value, field.type, {\n format: theFormat\n })}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n\n case 'currency': {\n const theCurrencyOptions = getCurrencyOptions(field.config?.currencyISOCode);\n return (\n <TextField\n value={format(field.config.value, field.type, theCurrencyOptions)}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n }\n\n case 'boolean':\n case 'userreference':\n return (\n <TextField\n value={format(field.config.value, field.type)}\n label={field.config.label}\n InputProps={{\n readOnly: true,\n disableUnderline: true\n }}\n />\n );\n\n case 'caseoperator':\n return <Operator {...field.config} />;\n\n default:\n return (\n <span>\n {field.type.toLowerCase()} {field.config.value}\n </span>\n );\n }\n }\n\n // Whenever theFieldsToRender changes, update theFieldsAsGridItems that's used during render\n useEffect(() => {\n const arGridItems = theFieldsToRender.map((field: any) => {\n // display the field when either visibility property doesn't exist or is true(if exists)\n if (field.config.visibility === undefined || field.config.visibility === true) {\n return (\n <Grid item xs={6} key={field.config.label}>\n {getFieldValue(field)}\n </Grid>\n );\n }\n\n return null;\n });\n setFieldsAsGridItems(arGridItems);\n }, [theFieldsToRender]);\n\n const theFieldsModifiable = theFields;\n\n // Special Case: if showStatus is true, splice the status value to be 2nd in theFields\n // if it's not already there\n if (showStatus && theFields?.[1].type !== 'status') {\n const oStatus = {\n type: 'status',\n config: { value: status, label: 'Status' }\n };\n\n const count = theFieldsModifiable.length;\n if (count < 2) {\n theFieldsModifiable.push(oStatus);\n } else {\n theFieldsModifiable.splice(1, 0, oStatus);\n }\n }\n\n // At this point, we know what fields we want to render...\n // So, update our state if it's changed\n if (!isDeepEqual(theFieldsToRender, theFieldsModifiable)) {\n setFieldsToRender(theFieldsModifiable);\n }\n\n return (\n <Grid container className='psdk-case-summary-fields'>\n {theFieldsAsGridItems}\n </Grid>\n );\n}\n"]}
@@ -3,6 +3,7 @@ interface FieldValueListProps {
3
3
  name?: string;
4
4
  value: any;
5
5
  variant?: string;
6
+ isHtml?: boolean;
6
7
  }
7
8
  export default function FieldValueList(props: FieldValueListProps): JSX.Element;
8
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"FieldValueList.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/FieldValueList/FieldValueList.tsx"],"names":[],"mappings":";AAMA,UAAU,mBAAmB;IAE3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAmCD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,eAgChE"}
1
+ {"version":3,"file":"FieldValueList.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/FieldValueList/FieldValueList.tsx"],"names":[],"mappings":";AAMA,UAAU,mBAAmB;IAE3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAmCD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,eAqChE"}
@@ -32,14 +32,16 @@ function formatItemValue(value) {
32
32
  return formattedVal;
33
33
  }
34
34
  export default function FieldValueList(props) {
35
- const { name, value, variant = 'inline' } = props;
35
+ const { name, value, variant = 'inline', isHtml = false } = props;
36
36
  const classes = useStyles();
37
37
  function getGridItemLabel() {
38
38
  return (_jsx(Grid, { item: true, xs: variant === 'stacked' ? 12 : 6, className: variant === 'stacked' ? classes.noPaddingBottom : '', children: _jsx(Typography, { variant: 'body2', component: 'span', className: `${classes.fieldLabel}`, children: name }) }));
39
39
  }
40
40
  function getGridItemValue() {
41
41
  const formattedValue = formatItemValue(value);
42
- return (_jsx(Grid, { item: true, xs: variant === 'stacked' ? 12 : 6, className: variant === 'stacked' ? classes.noPaddingTop : '', children: _jsx(Typography, { variant: variant === 'stacked' ? 'h6' : 'body2', component: 'span', className: classes.fieldValue, children: formattedValue }) }));
42
+ return (_jsx(Grid, { item: true, xs: variant === 'stacked' ? 12 : 6, className: variant === 'stacked' ? classes.noPaddingTop : '', children: isHtml ? (
43
+ // eslint-disable-next-line react/no-danger
44
+ _jsx("div", { dangerouslySetInnerHTML: { __html: formattedValue } })) : (_jsx(Typography, { variant: variant === 'stacked' ? 'h6' : 'body2', component: 'span', className: classes.fieldValue, children: formattedValue })) }));
43
45
  }
44
46
  return (_jsxs(Grid, { container: true, spacing: 4, justifyContent: 'space-between', children: [getGridItemLabel(), getGridItemValue()] }));
45
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FieldValueList.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/FieldValueList/FieldValueList.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,UAAU,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAWtD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,EAAE;QACJ,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KAC/B;IACD,UAAU,EAAE;QACV,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;KACpC;IACD,UAAU,EAAE;QACV,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;KAClC;IACD,YAAY,EAAE;QACZ,UAAU,EAAE,cAAc;KAC3B;IACD,eAAe,EAAE;QACf,aAAa,EAAE,cAAc;KAC9B;CACF,CAAC,CAAC,CAAC;AAEJ,SAAS,eAAe,CAAC,KAAK;IAC5B,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,+EAA+E;IAC/E,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE;QACrD,YAAY,GAAG,KAAK,CAAC;KACtB;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAA0B;IAC/D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,SAAS,gBAAgB;QACvB,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAC5G,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,YAC5E,IAAI,GACM,GACR,CACR,CAAC;IACJ,CAAC;IAED,SAAS,gBAAgB;QACvB,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAE9C,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YACzG,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAC,MAAM,EAAC,SAAS,EAAE,OAAO,CAAC,UAAU,YACxG,cAAc,GACJ,GACR,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe,aACvD,gBAAgB,EAAE,EAClB,gBAAgB,EAAE,IACd,CACR,CAAC;AACJ,CAAC","sourcesContent":["import Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\n// FieldValueList is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\ninterface FieldValueListProps {\n // If any, enter additional props that only exist on this component\n name?: string;\n value: any;\n variant?: string;\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n fieldLabel: {\n fontWeight: 400,\n color: theme.palette.text.secondary\n },\n fieldValue: {\n color: theme.palette.text.primary\n },\n noPaddingTop: {\n paddingTop: '0 !important'\n },\n noPaddingBottom: {\n paddingBottom: '0 !important'\n }\n}));\n\nfunction formatItemValue(value) {\n let formattedVal = value;\n\n // if the value is undefined or an empty string, we want to display it as \"---\"\n if (formattedVal === undefined || formattedVal === '') {\n formattedVal = '---';\n }\n\n return formattedVal;\n}\n\nexport default function FieldValueList(props: FieldValueListProps) {\n const { name, value, variant = 'inline' } = props;\n const classes = useStyles();\n\n function getGridItemLabel() {\n return (\n <Grid item xs={variant === 'stacked' ? 12 : 6} className={variant === 'stacked' ? classes.noPaddingBottom : ''}>\n <Typography variant='body2' component='span' className={`${classes.fieldLabel}`}>\n {name}\n </Typography>\n </Grid>\n );\n }\n\n function getGridItemValue() {\n const formattedValue = formatItemValue(value);\n\n return (\n <Grid item xs={variant === 'stacked' ? 12 : 6} className={variant === 'stacked' ? classes.noPaddingTop : ''}>\n <Typography variant={variant === 'stacked' ? 'h6' : 'body2'} component='span' className={classes.fieldValue}>\n {formattedValue}\n </Typography>\n </Grid>\n );\n }\n\n return (\n <Grid container spacing={4} justifyContent='space-between'>\n {getGridItemLabel()}\n {getGridItemValue()}\n </Grid>\n );\n}\n"]}
1
+ {"version":3,"file":"FieldValueList.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/FieldValueList/FieldValueList.tsx"],"names":[],"mappings":"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","sourcesContent":["import Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\n// FieldValueList is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\ninterface FieldValueListProps {\n // If any, enter additional props that only exist on this component\n name?: string;\n value: any;\n variant?: string;\n isHtml?: boolean;\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n fieldLabel: {\n fontWeight: 400,\n color: theme.palette.text.secondary\n },\n fieldValue: {\n color: theme.palette.text.primary\n },\n noPaddingTop: {\n paddingTop: '0 !important'\n },\n noPaddingBottom: {\n paddingBottom: '0 !important'\n }\n}));\n\nfunction formatItemValue(value) {\n let formattedVal = value;\n\n // if the value is undefined or an empty string, we want to display it as \"---\"\n if (formattedVal === undefined || formattedVal === '') {\n formattedVal = '---';\n }\n\n return formattedVal;\n}\n\nexport default function FieldValueList(props: FieldValueListProps) {\n const { name, value, variant = 'inline', isHtml = false } = props;\n const classes = useStyles();\n\n function getGridItemLabel() {\n return (\n <Grid item xs={variant === 'stacked' ? 12 : 6} className={variant === 'stacked' ? classes.noPaddingBottom : ''}>\n <Typography variant='body2' component='span' className={`${classes.fieldLabel}`}>\n {name}\n </Typography>\n </Grid>\n );\n }\n\n function getGridItemValue() {\n const formattedValue = formatItemValue(value);\n\n return (\n <Grid item xs={variant === 'stacked' ? 12 : 6} className={variant === 'stacked' ? classes.noPaddingTop : ''}>\n {isHtml ? (\n // eslint-disable-next-line react/no-danger\n <div dangerouslySetInnerHTML={{ __html: formattedValue }} />\n ) : (\n <Typography variant={variant === 'stacked' ? 'h6' : 'body2'} component='span' className={classes.fieldValue}>\n {formattedValue}\n </Typography>\n )}\n </Grid>\n );\n }\n\n return (\n <Grid container spacing={4} justifyContent='space-between'>\n {getGridItemLabel()}\n {getGridItemValue()}\n </Grid>\n );\n}\n"]}
@@ -5,6 +5,13 @@ interface CheckboxProps extends Omit<PConnFieldProps, 'value'> {
5
5
  caption?: string;
6
6
  trueLabel?: string;
7
7
  falseLabel?: string;
8
+ selectionMode?: string;
9
+ datasource?: any;
10
+ selectionKey?: string;
11
+ selectionList?: any;
12
+ primaryField: string;
13
+ readonlyContextList: any;
14
+ referenceList: string;
8
15
  }
9
16
  export default function CheckboxComponent(props: CheckboxProps): JSX.Element;
10
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Checkbox/Checkbox.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,UAAU,aAAc,SAAQ,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;IAE5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,aAAa,eA2E7D"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Checkbox/Checkbox.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,UAAU,aAAc,SAAQ,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;IAE5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,GAAG,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AASD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,aAAa,eAyI7D"}
@@ -1,16 +1,24 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /* eslint-disable react/no-array-index-key */
2
3
  import { useState, useEffect } from 'react';
3
4
  import { Checkbox, FormControl, FormControlLabel, FormGroup, FormHelperText, FormLabel } from '@material-ui/core';
4
5
  import handleEvent from '../../helpers/event-utils';
5
6
  import { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';
7
+ import { insertInstruction, deleteInstruction, updateNewInstuctions } from '../../helpers/instructions-utils';
8
+ import { makeStyles } from '@material-ui/core/styles';
9
+ const useStyles = makeStyles(() => ({
10
+ checkbox: {
11
+ display: 'flex',
12
+ flexDirection: 'column'
13
+ }
14
+ }));
6
15
  export default function CheckboxComponent(props) {
7
16
  // Get emitted components from map (so we can get any override that may exist)
8
17
  const FieldValueList = getComponentFromMap('FieldValueList');
9
- const { getPConnect, label, value = false, readOnly, testId, required, disabled, status, helperText, validatemessage, displayMode, hideLabel, trueLabel, falseLabel } = props;
18
+ const { getPConnect, label, caption, value, readOnly, testId, required, disabled, status, helperText, validatemessage, displayMode, hideLabel, trueLabel, falseLabel, selectionMode, datasource, selectionKey, selectionList, primaryField, referenceList, readonlyContextList: selectedvalues } = props;
19
+ const classes = useStyles();
10
20
  const helperTextToDisplay = validatemessage || helperText;
11
21
  const thePConn = getPConnect();
12
- const theConfigProps = thePConn.getConfigProps();
13
- const caption = theConfigProps.caption;
14
22
  const actionsApi = thePConn.getActionsApi();
15
23
  const propName = thePConn.getStateProps().value;
16
24
  const [checked, setChecked] = useState(false);
@@ -18,6 +26,12 @@ export default function CheckboxComponent(props) {
18
26
  // This update theSelectedButton which will update the UI to show the selected button correctly
19
27
  setChecked(value);
20
28
  }, [value]);
29
+ useEffect(() => {
30
+ if (referenceList?.length > 0) {
31
+ thePConn.setReferenceList(selectionList);
32
+ updateNewInstuctions(thePConn, selectionList);
33
+ }
34
+ }, [thePConn]);
21
35
  if (displayMode === 'LABELS_LEFT') {
22
36
  return _jsx(FieldValueList, { name: hideLabel ? '' : caption, value: value ? trueLabel : falseLabel });
23
37
  }
@@ -30,12 +44,40 @@ export default function CheckboxComponent(props) {
30
44
  const handleBlur = event => {
31
45
  thePConn.getValidationApi().validate(event.target.checked);
32
46
  };
33
- let theCheckbox = _jsx(Checkbox, { color: 'primary', disabled: disabled });
34
- if (readOnly) {
35
- // Workaround for lack of InputProps readOnly from https://github.com/mui-org/material-ui/issues/17043
36
- // Also note that we need to turn off the onChange call in the FormControlLabel wrapper, too. See below!
37
- theCheckbox = _jsx(Checkbox, { value: value || false, readOnly: readOnly });
47
+ const handleChangeMultiMode = (event, element) => {
48
+ if (event.target.checked) {
49
+ insertInstruction(thePConn, selectionList, selectionKey, primaryField, {
50
+ id: element.key,
51
+ primary: element.text ?? element.value
52
+ });
53
+ }
54
+ else {
55
+ deleteInstruction(thePConn, selectionList, selectionKey, {
56
+ id: element.key,
57
+ primary: element.text ?? element.value
58
+ });
59
+ }
60
+ thePConn.clearErrorMessages({
61
+ property: selectionList,
62
+ category: '',
63
+ context: ''
64
+ });
65
+ };
66
+ let theCheckbox;
67
+ const listOfCheckboxes = [];
68
+ if (selectionMode === 'multi') {
69
+ const listSourceItems = datasource?.source ?? [];
70
+ const dataField = selectionKey?.split?.('.')[1];
71
+ listSourceItems.forEach((element, index) => {
72
+ listOfCheckboxes.push(_jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: selectedvalues?.some?.(data => data[dataField] === element.key), onChange: event => handleChangeMultiMode(event, element), onBlur: () => {
73
+ thePConn.getValidationApi().validate(selectedvalues, selectionList);
74
+ }, "data-testid": `${testId}:${element.value}` }, index), label: element.text ?? element.value, labelPlacement: 'end', "data-test-id": testId }, index));
75
+ });
76
+ theCheckbox = _jsx("div", { className: classes.checkbox, children: listOfCheckboxes });
77
+ }
78
+ else {
79
+ theCheckbox = (_jsx(FormControlLabel, { control: _jsx(Checkbox, { color: 'primary', checked: checked, onChange: !readOnly ? handleChange : undefined, onBlur: !readOnly ? handleBlur : undefined, value: value, disabled: disabled, readOnly: readOnly }), label: caption, labelPlacement: 'end', "data-test-id": testId }));
38
80
  }
39
- return (_jsxs(FormControl, { required: required, error: status === 'error', children: [!hideLabel && _jsx(FormLabel, { component: 'legend', children: label }), _jsx(FormGroup, { children: _jsx(FormControlLabel, { control: theCheckbox, checked: checked, onChange: !readOnly ? handleChange : undefined, onBlur: !readOnly ? handleBlur : undefined, label: caption, labelPlacement: 'end', "data-test-id": testId }) }), _jsx(FormHelperText, { children: helperTextToDisplay })] }));
81
+ return (_jsxs(FormControl, { required: required, error: status === 'error', children: [!hideLabel && _jsx(FormLabel, { component: 'legend', children: label }), _jsx(FormGroup, { children: theCheckbox }), _jsx(FormHelperText, { children: helperTextToDisplay })] }));
40
82
  }
41
83
  //# sourceMappingURL=Checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../../src/components/field/Checkbox/Checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport { Checkbox, FormControl, FormControlLabel, FormGroup, FormHelperText, FormLabel } from '@material-ui/core';\n\nimport handleEvent from '../../helpers/event-utils';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport { PConnFieldProps } from '../../../types/PConnProps';\n\ninterface CheckboxProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on Checkbox here\n value?: boolean;\n // eslint-disable-next-line react/no-unused-prop-types\n caption?: string;\n trueLabel?: string;\n falseLabel?: string;\n}\n\nexport default function CheckboxComponent(props: CheckboxProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n value = false,\n readOnly,\n testId,\n required,\n disabled,\n status,\n helperText,\n validatemessage,\n displayMode,\n hideLabel,\n trueLabel,\n falseLabel\n } = props;\n const helperTextToDisplay = validatemessage || helperText;\n\n const thePConn = getPConnect();\n const theConfigProps = thePConn.getConfigProps() as CheckboxProps;\n const caption = theConfigProps.caption;\n const actionsApi = thePConn.getActionsApi();\n const propName = (thePConn.getStateProps() as any).value;\n\n const [checked, setChecked] = useState(false);\n useEffect(() => {\n // This update theSelectedButton which will update the UI to show the selected button correctly\n setChecked(value);\n }, [value]);\n\n if (displayMode === 'LABELS_LEFT') {\n return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} variant='stacked' />;\n }\n\n const handleChange = event => {\n handleEvent(actionsApi, 'changeNblur', propName, event.target.checked);\n };\n\n const handleBlur = event => {\n thePConn.getValidationApi().validate(event.target.checked);\n };\n\n let theCheckbox = <Checkbox color='primary' disabled={disabled} />;\n\n if (readOnly) {\n // Workaround for lack of InputProps readOnly from https://github.com/mui-org/material-ui/issues/17043\n // Also note that we need to turn off the onChange call in the FormControlLabel wrapper, too. See below!\n theCheckbox = <Checkbox value={value || false} readOnly={readOnly} />;\n }\n\n return (\n <FormControl required={required} error={status === 'error'}>\n {!hideLabel && <FormLabel component='legend'>{label}</FormLabel>}\n <FormGroup>\n <FormControlLabel\n control={theCheckbox}\n checked={checked}\n onChange={!readOnly ? handleChange : undefined}\n onBlur={!readOnly ? handleBlur : undefined}\n label={caption}\n labelPlacement='end'\n data-test-id={testId}\n />\n </FormGroup>\n <FormHelperText>{helperTextToDisplay}</FormHelperText>\n </FormControl>\n );\n}\n"]}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../../src/components/field/Checkbox/Checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react/no-array-index-key */\nimport { useState, useEffect } from 'react';\nimport { Checkbox, FormControl, FormControlLabel, FormGroup, FormHelperText, FormLabel } from '@material-ui/core';\n\nimport handleEvent from '../../helpers/event-utils';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport { insertInstruction, deleteInstruction, updateNewInstuctions } from '../../helpers/instructions-utils';\nimport { PConnFieldProps } from '../../../types/PConnProps';\nimport { makeStyles } from '@material-ui/core/styles';\n\ninterface CheckboxProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on Checkbox here\n value?: boolean;\n caption?: string;\n trueLabel?: string;\n falseLabel?: string;\n selectionMode?: string;\n datasource?: any;\n selectionKey?: string;\n selectionList?: any;\n primaryField: string;\n readonlyContextList: any;\n referenceList: string;\n}\n\nconst useStyles = makeStyles(() => ({\n checkbox: {\n display: 'flex',\n flexDirection: 'column'\n }\n}));\n\nexport default function CheckboxComponent(props: CheckboxProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n caption,\n value,\n readOnly,\n testId,\n required,\n disabled,\n status,\n helperText,\n validatemessage,\n displayMode,\n hideLabel,\n trueLabel,\n falseLabel,\n selectionMode,\n datasource,\n selectionKey,\n selectionList,\n primaryField,\n referenceList,\n readonlyContextList: selectedvalues\n } = props;\n const classes = useStyles();\n const helperTextToDisplay = validatemessage || helperText;\n const thePConn = getPConnect();\n const actionsApi = thePConn.getActionsApi();\n const propName = (thePConn.getStateProps() as any).value;\n\n const [checked, setChecked] = useState<any>(false);\n useEffect(() => {\n // This update theSelectedButton which will update the UI to show the selected button correctly\n setChecked(value);\n }, [value]);\n\n useEffect(() => {\n if (referenceList?.length > 0) {\n thePConn.setReferenceList(selectionList);\n updateNewInstuctions(thePConn, selectionList);\n }\n }, [thePConn]);\n\n if (displayMode === 'LABELS_LEFT') {\n return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} variant='stacked' />;\n }\n\n const handleChange = event => {\n handleEvent(actionsApi, 'changeNblur', propName, event.target.checked);\n };\n\n const handleBlur = event => {\n thePConn.getValidationApi().validate(event.target.checked);\n };\n\n const handleChangeMultiMode = (event, element) => {\n if (event.target.checked) {\n insertInstruction(thePConn, selectionList, selectionKey, primaryField, {\n id: element.key,\n primary: element.text ?? element.value\n });\n } else {\n deleteInstruction(thePConn, selectionList, selectionKey, {\n id: element.key,\n primary: element.text ?? element.value\n });\n }\n thePConn.clearErrorMessages({\n property: selectionList,\n category: '',\n context: ''\n });\n };\n\n let theCheckbox;\n const listOfCheckboxes: any = [];\n if (selectionMode === 'multi') {\n const listSourceItems = datasource?.source ?? [];\n const dataField: any = selectionKey?.split?.('.')[1];\n listSourceItems.forEach((element, index) => {\n listOfCheckboxes.push(\n <FormControlLabel\n control={\n <Checkbox\n key={index}\n checked={selectedvalues?.some?.(data => data[dataField] === element.key)}\n onChange={event => handleChangeMultiMode(event, element)}\n onBlur={() => {\n thePConn.getValidationApi().validate(selectedvalues, selectionList);\n }}\n data-testid={`${testId}:${element.value}`}\n />\n }\n key={index}\n label={element.text ?? element.value}\n labelPlacement='end'\n data-test-id={testId}\n />\n );\n });\n theCheckbox = <div className={classes.checkbox}>{listOfCheckboxes}</div>;\n } else {\n theCheckbox = (\n <FormControlLabel\n control={\n <Checkbox\n color='primary'\n checked={checked}\n onChange={!readOnly ? handleChange : undefined}\n onBlur={!readOnly ? handleBlur : undefined}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n />\n }\n label={caption}\n labelPlacement='end'\n data-test-id={testId}\n />\n );\n }\n\n return (\n <FormControl required={required} error={status === 'error'}>\n {!hideLabel && <FormLabel component='legend'>{label}</FormLabel>}\n <FormGroup>{theCheckbox}</FormGroup>\n <FormHelperText>{helperTextToDisplay}</FormHelperText>\n </FormControl>\n );\n}\n"]}
@@ -4,6 +4,7 @@ interface DecimalProps extends PConnFieldProps {
4
4
  currencyISOCode?: string;
5
5
  decimalPrecision?: number;
6
6
  showGroupSeparators?: string;
7
+ formatter?: string;
7
8
  }
8
9
  export default function Decimal(props: DecimalProps): JSX.Element;
9
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Decimal.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Decimal/Decimal.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAM5D,UAAU,YAAa,SAAQ,eAAe;IAE5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAK,EAAE,YAAY,eA4ElD"}
1
+ {"version":3,"file":"Decimal.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Decimal/Decimal.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAM5D,UAAU,YAAa,SAAQ,eAAe;IAE5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAK,EAAE,YAAY,eAoFlD"}
@@ -9,7 +9,7 @@ export default function Decimal(props) {
9
9
  const FieldValueList = getComponentFromMap('FieldValueList');
10
10
  const { getPConnect, label, required, disabled, value = '', validatemessage, status,
11
11
  /* onChange, onBlur, */
12
- readOnly, helperText, displayMode, hideLabel, currencyISOCode = 'USD', decimalPrecision = 2, showGroupSeparators = true, testId, placeholder } = props;
12
+ readOnly, helperText, displayMode, hideLabel, currencyISOCode = 'USD', decimalPrecision = 2, showGroupSeparators = true, testId, placeholder, formatter } = props;
13
13
  const pConn = getPConnect();
14
14
  const actions = pConn.getActionsApi();
15
15
  const propName = pConn.getStateProps().value;
@@ -17,8 +17,15 @@ export default function Decimal(props) {
17
17
  const theSymbols = getCurrencyCharacters(currencyISOCode);
18
18
  const theCurrDec = theSymbols.theDecimalIndicator;
19
19
  const theCurrSep = theSymbols.theDigitGroupSeparator;
20
+ const theCurrSym = theSymbols.theCurrencySymbol;
20
21
  const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
21
- const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);
22
+ let formattedValue = '';
23
+ if (formatter === 'Currency') {
24
+ formattedValue = format(value, formatter.toLowerCase(), theCurrencyOptions);
25
+ }
26
+ else {
27
+ formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);
28
+ }
22
29
  if (displayMode === 'LABELS_LEFT') {
23
30
  return _jsx(FieldValueList, { name: hideLabel ? '' : label, value: formattedValue });
24
31
  }
@@ -31,6 +38,6 @@ export default function Decimal(props) {
31
38
  function decimalOnBlur(event, inValue) {
32
39
  handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);
33
40
  }
34
- return (_jsx(CurrencyTextField, { fullWidth: true, variant: readOnly ? 'standard' : 'outlined', helperText: helperTextToDisplay, placeholder: placeholder ?? '', size: 'small', required: required, disabled: disabled, error: status === 'error', label: label, value: value, readOnly: !!readOnly, type: 'text', outputFormat: 'number', textAlign: 'left', InputProps: { inputProps: { ...testProp } }, currencySymbol: '', decimalCharacter: theCurrDec, digitGroupSeparator: showGroupSeparators ? theCurrSep : '', decimalPlaces: decimalPrecision, onBlur: !readOnly ? decimalOnBlur : undefined }));
41
+ return (_jsx(CurrencyTextField, { fullWidth: true, variant: readOnly ? 'standard' : 'outlined', helperText: helperTextToDisplay, placeholder: placeholder ?? '', size: 'small', required: required, disabled: disabled, error: status === 'error', label: label, value: value, readOnly: !!readOnly, type: 'text', outputFormat: 'number', textAlign: 'left', InputProps: { inputProps: { ...testProp } }, currencySymbol: readOnly && formatter === 'Currency' ? theCurrSym : '', decimalCharacter: theCurrDec, digitGroupSeparator: showGroupSeparators ? theCurrSep : '', decimalPlaces: decimalPrecision, onBlur: !readOnly ? decimalOnBlur : undefined }));
35
42
  }
36
43
  //# sourceMappingURL=Decimal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Decimal.js","sourceRoot":"","sources":["../../../../src/components/field/Decimal/Decimal.tsx"],"names":[],"mappings":"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","sourcesContent":["import CurrencyTextField from '@unicef/material-ui-currency-textfield';\n\nimport { getCurrencyCharacters, getCurrencyOptions } from '../Currency/currency-utils';\nimport handleEvent from '../../helpers/event-utils';\nimport { format } from '../../helpers/formatters';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport { PConnFieldProps } from '../../../types/PConnProps';\n\n/* Using @unicef/material-ui-currency-textfield component here, since it allows formatting decimal values,\nas per the locale.\n*/\n\ninterface DecimalProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Decimal here\n currencyISOCode?: string;\n decimalPrecision?: number;\n showGroupSeparators?: string;\n}\n\nexport default function Decimal(props: DecimalProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n required,\n disabled,\n value = '',\n validatemessage,\n status,\n /* onChange, onBlur, */\n readOnly,\n helperText,\n displayMode,\n hideLabel,\n currencyISOCode = 'USD',\n decimalPrecision = 2,\n showGroupSeparators = true,\n testId,\n placeholder\n } = props;\n\n const pConn = getPConnect();\n const actions = pConn.getActionsApi();\n const propName = (pConn.getStateProps() as any).value;\n const helperTextToDisplay = validatemessage || helperText;\n\n const theSymbols = getCurrencyCharacters(currencyISOCode);\n const theCurrDec = theSymbols.theDecimalIndicator;\n const theCurrSep = theSymbols.theDigitGroupSeparator;\n\n const theCurrencyOptions = getCurrencyOptions(currencyISOCode);\n const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);\n\n if (displayMode === 'LABELS_LEFT') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />;\n }\n\n const testProp = {\n 'data-test-id': testId\n };\n\n function decimalOnBlur(event, inValue) {\n handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);\n }\n\n return (\n <CurrencyTextField\n fullWidth\n variant={readOnly ? 'standard' : 'outlined'}\n helperText={helperTextToDisplay}\n placeholder={placeholder ?? ''}\n size='small'\n required={required}\n disabled={disabled}\n error={status === 'error'}\n label={label}\n value={value}\n readOnly={!!readOnly}\n type='text'\n outputFormat='number'\n textAlign='left'\n InputProps={{ inputProps: { ...testProp } }}\n currencySymbol=''\n decimalCharacter={theCurrDec}\n digitGroupSeparator={showGroupSeparators ? theCurrSep : ''}\n decimalPlaces={decimalPrecision}\n onBlur={!readOnly ? decimalOnBlur : undefined}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"Decimal.js","sourceRoot":"","sources":["../../../../src/components/field/Decimal/Decimal.tsx"],"names":[],"mappings":"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","sourcesContent":["import CurrencyTextField from '@unicef/material-ui-currency-textfield';\n\nimport { getCurrencyCharacters, getCurrencyOptions } from '../Currency/currency-utils';\nimport handleEvent from '../../helpers/event-utils';\nimport { format } from '../../helpers/formatters';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport { PConnFieldProps } from '../../../types/PConnProps';\n\n/* Using @unicef/material-ui-currency-textfield component here, since it allows formatting decimal values,\nas per the locale.\n*/\n\ninterface DecimalProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Decimal here\n currencyISOCode?: string;\n decimalPrecision?: number;\n showGroupSeparators?: string;\n formatter?: string;\n}\n\nexport default function Decimal(props: DecimalProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n required,\n disabled,\n value = '',\n validatemessage,\n status,\n /* onChange, onBlur, */\n readOnly,\n helperText,\n displayMode,\n hideLabel,\n currencyISOCode = 'USD',\n decimalPrecision = 2,\n showGroupSeparators = true,\n testId,\n placeholder,\n formatter\n } = props;\n\n const pConn = getPConnect();\n const actions = pConn.getActionsApi();\n const propName = (pConn.getStateProps() as any).value;\n const helperTextToDisplay = validatemessage || helperText;\n\n const theSymbols = getCurrencyCharacters(currencyISOCode);\n const theCurrDec = theSymbols.theDecimalIndicator;\n const theCurrSep = theSymbols.theDigitGroupSeparator;\n const theCurrSym = theSymbols.theCurrencySymbol;\n\n const theCurrencyOptions = getCurrencyOptions(currencyISOCode);\n\n let formattedValue = '';\n if (formatter === 'Currency') {\n formattedValue = format(value, formatter.toLowerCase(), theCurrencyOptions);\n } else {\n formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);\n }\n\n if (displayMode === 'LABELS_LEFT') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />;\n }\n\n const testProp = {\n 'data-test-id': testId\n };\n\n function decimalOnBlur(event, inValue) {\n handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);\n }\n\n return (\n <CurrencyTextField\n fullWidth\n variant={readOnly ? 'standard' : 'outlined'}\n helperText={helperTextToDisplay}\n placeholder={placeholder ?? ''}\n size='small'\n required={required}\n disabled={disabled}\n error={status === 'error'}\n label={label}\n value={value}\n readOnly={!!readOnly}\n type='text'\n outputFormat='number'\n textAlign='left'\n InputProps={{ inputProps: { ...testProp } }}\n currencySymbol={readOnly && formatter === 'Currency' ? theCurrSym : ''}\n decimalCharacter={theCurrDec}\n digitGroupSeparator={showGroupSeparators ? theCurrSep : ''}\n decimalPlaces={decimalPrecision}\n onBlur={!readOnly ? decimalOnBlur : undefined}\n />\n );\n}\n"]}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export default function Multiselect(props: any): JSX.Element;
3
+ //# sourceMappingURL=Multiselect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Multiselect.d.ts","sourceRoot":"","sources":["../../../../src/components/field/MultiSelect/Multiselect.tsx"],"names":[],"mappings":";AAYA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,KAAA,eAuOxC"}
@@ -0,0 +1,175 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Checkbox, TextField } from '@material-ui/core';
3
+ import Autocomplete from '@material-ui/lab/Autocomplete';
4
+ import CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';
5
+ import CheckBoxIcon from '@material-ui/icons/CheckBox';
6
+ import { useEffect, useMemo, useRef, useState } from 'react';
7
+ import { doSearch, getDisplayFieldsMetaData, useDeepMemo, preProcessColumns, getGroupDataForItemsTree } from './utils';
8
+ import { insertInstruction, deleteInstruction } from '../../helpers/instructions-utils';
9
+ import { debounce } from 'throttle-debounce';
10
+ const icon = _jsx(CheckBoxOutlineBlankIcon, { fontSize: 'small' });
11
+ const checkedIcon = _jsx(CheckBoxIcon, { fontSize: 'small' });
12
+ export default function Multiselect(props) {
13
+ const { getPConnect, label, placeholder, referenceList, selectionKey, primaryField, initialCaseClass, showSecondaryInSearchOnly = false, listType = '', isGroupData = false, referenceType, secondaryFields, groupDataSource = [], parameters = {}, matchPosition = 'contains', maxResultsDisplay, groupColumnsConfig = [{}], selectionList, value } = props;
14
+ let { datasource = [], columns = [{}] } = props;
15
+ if (referenceList.length > 0) {
16
+ datasource = referenceList;
17
+ columns = [
18
+ {
19
+ value: primaryField,
20
+ display: 'true',
21
+ useForSearch: true,
22
+ primary: 'true'
23
+ },
24
+ {
25
+ value: selectionKey,
26
+ setProperty: selectionKey,
27
+ key: 'true'
28
+ }
29
+ ];
30
+ let secondaryColumns = [];
31
+ if (secondaryFields) {
32
+ secondaryColumns = secondaryFields.map(secondaryField => ({
33
+ value: secondaryField,
34
+ display: 'true',
35
+ secondary: 'true',
36
+ useForSearch: 'true'
37
+ }));
38
+ }
39
+ else {
40
+ secondaryColumns = [
41
+ {
42
+ value: selectionKey,
43
+ display: 'true',
44
+ secondary: 'true',
45
+ useForSearch: 'true'
46
+ }
47
+ ];
48
+ }
49
+ if (referenceType === 'Case') {
50
+ columns = [...columns, ...secondaryColumns];
51
+ }
52
+ }
53
+ const [inputValue, setInputValue] = useState(value);
54
+ const [selectedItems, setSelectedItems] = useState([]);
55
+ const dataConfig = useDeepMemo(() => {
56
+ return {
57
+ dataSource: datasource,
58
+ groupDataSource,
59
+ isGroupData,
60
+ showSecondaryInSearchOnly,
61
+ parameters,
62
+ matchPosition,
63
+ listType,
64
+ maxResultsDisplay: maxResultsDisplay || '100',
65
+ columns: preProcessColumns(columns),
66
+ groupColumnsConfig: preProcessColumns(groupColumnsConfig)
67
+ };
68
+ }, [
69
+ datasource,
70
+ groupDataSource,
71
+ isGroupData,
72
+ showSecondaryInSearchOnly,
73
+ parameters,
74
+ matchPosition,
75
+ listType,
76
+ maxResultsDisplay,
77
+ columns,
78
+ groupColumnsConfig
79
+ ]);
80
+ const groupsDisplayFieldMeta = useMemo(() => (listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.groupColumnsConfig) : null), [dataConfig.groupColumnsConfig]);
81
+ const itemsTreeBaseData = getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, showSecondaryInSearchOnly) || [];
82
+ const [itemsTree, setItemsTree] = useState(isGroupData ? getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, showSecondaryInSearchOnly) : []);
83
+ const displayFieldMeta = listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.columns) : null;
84
+ const getCaseListBasedOnParamsDebounced = useRef();
85
+ const pConn = getPConnect();
86
+ const contextName = pConn.getContextName();
87
+ const listActions = pConn.getListActions();
88
+ const dataApiObj = useRef();
89
+ // main search function trigger
90
+ const getCaseListBasedOnParams = async (searchText, group, selectedRows, currentItemsTree, isTriggeredFromSearch = false) => {
91
+ if (referenceList && referenceList.length > 0) {
92
+ selectedRows = await listActions.getSelectedRows(true);
93
+ selectedRows =
94
+ selectedRows &&
95
+ selectedRows.map(item => {
96
+ return {
97
+ id: item[selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey],
98
+ primary: item[primaryField.startsWith('.') ? primaryField.substring(1) : primaryField]
99
+ };
100
+ });
101
+ setSelectedItems(selectedRows);
102
+ }
103
+ // if items tree is null or text search is triggered then always should use fresh data object, we use the original object
104
+ const initalItemsTree = isTriggeredFromSearch || !currentItemsTree ? [...itemsTreeBaseData] : [...currentItemsTree];
105
+ const res = await doSearch(searchText, group, initialCaseClass, displayFieldMeta, dataApiObj.current, initalItemsTree, isGroupData, showSecondaryInSearchOnly, selectedRows || []);
106
+ setItemsTree(res);
107
+ };
108
+ useEffect(() => {
109
+ if (referenceList && referenceList.length > 0) {
110
+ pConn.setReferenceList(selectionList);
111
+ }
112
+ }, [pConn]);
113
+ useEffect(() => {
114
+ getCaseListBasedOnParamsDebounced.current = debounce(500, getCaseListBasedOnParams);
115
+ }, []);
116
+ useEffect(() => {
117
+ if (listType !== 'associated') {
118
+ PCore.getDataApi()
119
+ ?.init(dataConfig, contextName)
120
+ .then(dataObj => {
121
+ dataApiObj.current = dataObj;
122
+ if (!isGroupData) {
123
+ getCaseListBasedOnParamsDebounced.current(inputValue ?? '', '', [...selectedItems], [...itemsTree]);
124
+ }
125
+ });
126
+ }
127
+ }, [dataConfig, listType, dataConfig.columns, inputValue, dataConfig.groupColumnsConfig, showSecondaryInSearchOnly]);
128
+ const onSearchHandler = ev => {
129
+ const searchText = ev.target.value;
130
+ setInputValue(searchText);
131
+ getCaseListBasedOnParamsDebounced.current(searchText, '', [...selectedItems], [...itemsTree], true);
132
+ };
133
+ const setSelectedItemsForReferenceList = item => {
134
+ // Clear error messages if any
135
+ const propName = pConn.getStateProps().selectionList;
136
+ pConn.clearErrorMessages({
137
+ property: propName
138
+ });
139
+ const { selected } = item;
140
+ if (selected) {
141
+ insertInstruction(pConn, selectionList, selectionKey, primaryField, item);
142
+ }
143
+ else {
144
+ deleteInstruction(pConn, selectionList, selectionKey, item);
145
+ }
146
+ };
147
+ const handleChange = (event, newSelectedValues) => {
148
+ let clickedItem;
149
+ let updatedItems = [];
150
+ if (newSelectedValues && newSelectedValues.length > 0) {
151
+ updatedItems = newSelectedValues.map(ele => {
152
+ ele.selected = true;
153
+ return ele;
154
+ });
155
+ }
156
+ if (newSelectedValues.length > selectedItems.length) {
157
+ clickedItem = newSelectedValues.filter(item => !selectedItems.some((ele) => ele.id === item.id));
158
+ }
159
+ else {
160
+ clickedItem = selectedItems.filter((item) => !newSelectedValues.some((ele) => ele.id === item.id));
161
+ clickedItem[0].selected = false;
162
+ }
163
+ itemsTree.forEach(ele => {
164
+ ele.selected = !!updatedItems.find(item => item.id === ele.id);
165
+ });
166
+ setSelectedItems(updatedItems);
167
+ setItemsTree(itemsTree);
168
+ setInputValue('');
169
+ // if this is a referenceList case
170
+ if (referenceList)
171
+ setSelectedItemsForReferenceList(clickedItem[0]);
172
+ };
173
+ return (_jsx(Autocomplete, { multiple: true, fullWidth: true, options: itemsTree, disableCloseOnSelect: true, getOptionSelected: (option, val) => option?.primary === val?.primary, getOptionLabel: (option) => option?.primary, onChange: handleChange, value: selectedItems, renderOption: (option, { selected }) => (_jsxs(_Fragment, { children: [_jsx(Checkbox, { icon: icon, checkedIcon: checkedIcon, style: { marginRight: 8 }, checked: selected }), option.primary] })), renderInput: params => (_jsx(TextField, { ...params, variant: 'outlined', fullWidth: true, label: label, placeholder: placeholder, size: 'small', onChange: onSearchHandler })) }));
174
+ }
175
+ //# sourceMappingURL=Multiselect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Multiselect.js","sourceRoot":"","sources":["../../../../src/components/field/MultiSelect/Multiselect.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Checkbox, TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { doSearch, getDisplayFieldsMetaData, useDeepMemo, preProcessColumns, getGroupDataForItemsTree } from './utils';\nimport { insertInstruction, deleteInstruction } from '../../helpers/instructions-utils';\nimport { debounce } from 'throttle-debounce';\n\nconst icon = <CheckBoxOutlineBlankIcon fontSize='small' />;\nconst checkedIcon = <CheckBoxIcon fontSize='small' />;\n\nexport default function Multiselect(props) {\n const {\n getPConnect,\n label,\n placeholder,\n referenceList,\n selectionKey,\n primaryField,\n initialCaseClass,\n showSecondaryInSearchOnly = false,\n listType = '',\n isGroupData = false,\n referenceType,\n secondaryFields,\n groupDataSource = [],\n parameters = {},\n matchPosition = 'contains',\n maxResultsDisplay,\n groupColumnsConfig = [{}],\n selectionList,\n value\n } = props;\n let { datasource = [], columns = [{}] } = props;\n\n if (referenceList.length > 0) {\n datasource = referenceList;\n columns = [\n {\n value: primaryField,\n display: 'true',\n useForSearch: true,\n primary: 'true'\n },\n {\n value: selectionKey,\n setProperty: selectionKey,\n key: 'true'\n }\n ];\n let secondaryColumns: any = [];\n if (secondaryFields) {\n secondaryColumns = secondaryFields.map(secondaryField => ({\n value: secondaryField,\n display: 'true',\n secondary: 'true',\n useForSearch: 'true'\n }));\n } else {\n secondaryColumns = [\n {\n value: selectionKey,\n display: 'true',\n secondary: 'true',\n useForSearch: 'true'\n }\n ];\n }\n if (referenceType === 'Case') {\n columns = [...columns, ...secondaryColumns];\n }\n }\n const [inputValue, setInputValue] = useState(value);\n const [selectedItems, setSelectedItems] = useState([]);\n\n const dataConfig = useDeepMemo(() => {\n return {\n dataSource: datasource,\n groupDataSource,\n isGroupData,\n showSecondaryInSearchOnly,\n parameters,\n matchPosition,\n listType,\n maxResultsDisplay: maxResultsDisplay || '100',\n columns: preProcessColumns(columns),\n groupColumnsConfig: preProcessColumns(groupColumnsConfig)\n };\n }, [\n datasource,\n groupDataSource,\n isGroupData,\n showSecondaryInSearchOnly,\n parameters,\n matchPosition,\n listType,\n maxResultsDisplay,\n columns,\n groupColumnsConfig\n ]);\n const groupsDisplayFieldMeta = useMemo(\n () => (listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.groupColumnsConfig) : null),\n [dataConfig.groupColumnsConfig]\n );\n\n const itemsTreeBaseData = getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, showSecondaryInSearchOnly) || [];\n\n const [itemsTree, setItemsTree] = useState(\n isGroupData ? getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, showSecondaryInSearchOnly) : []\n );\n\n const displayFieldMeta = listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.columns) : null;\n const getCaseListBasedOnParamsDebounced: any = useRef();\n const pConn = getPConnect();\n const contextName = pConn.getContextName();\n const listActions = pConn.getListActions();\n const dataApiObj = useRef();\n\n // main search function trigger\n const getCaseListBasedOnParams = async (searchText, group, selectedRows, currentItemsTree, isTriggeredFromSearch = false) => {\n if (referenceList && referenceList.length > 0) {\n selectedRows = await listActions.getSelectedRows(true);\n\n selectedRows =\n selectedRows &&\n selectedRows.map(item => {\n return {\n id: item[selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey],\n primary: item[primaryField.startsWith('.') ? primaryField.substring(1) : primaryField]\n };\n });\n setSelectedItems(selectedRows);\n }\n\n // if items tree is null or text search is triggered then always should use fresh data object, we use the original object\n const initalItemsTree = isTriggeredFromSearch || !currentItemsTree ? [...itemsTreeBaseData] : [...currentItemsTree];\n const res = await doSearch(\n searchText,\n group,\n initialCaseClass,\n displayFieldMeta,\n dataApiObj.current,\n initalItemsTree,\n isGroupData,\n showSecondaryInSearchOnly,\n selectedRows || []\n );\n setItemsTree(res);\n };\n\n useEffect(() => {\n if (referenceList && referenceList.length > 0) {\n pConn.setReferenceList(selectionList);\n }\n }, [pConn]);\n\n useEffect(() => {\n getCaseListBasedOnParamsDebounced.current = debounce(500, getCaseListBasedOnParams);\n }, []);\n\n useEffect(() => {\n if (listType !== 'associated') {\n PCore.getDataApi()\n ?.init(dataConfig, contextName)\n .then(dataObj => {\n dataApiObj.current = dataObj;\n if (!isGroupData) {\n getCaseListBasedOnParamsDebounced.current(inputValue ?? '', '', [...selectedItems], [...itemsTree]);\n }\n });\n }\n }, [dataConfig, listType, dataConfig.columns, inputValue, dataConfig.groupColumnsConfig, showSecondaryInSearchOnly]);\n\n const onSearchHandler = ev => {\n const searchText = ev.target.value;\n setInputValue(searchText);\n getCaseListBasedOnParamsDebounced.current(searchText, '', [...selectedItems], [...itemsTree], true);\n };\n\n const setSelectedItemsForReferenceList = item => {\n // Clear error messages if any\n const propName = pConn.getStateProps().selectionList;\n pConn.clearErrorMessages({\n property: propName\n });\n const { selected } = item;\n if (selected) {\n insertInstruction(pConn, selectionList, selectionKey, primaryField, item);\n } else {\n deleteInstruction(pConn, selectionList, selectionKey, item);\n }\n };\n\n const handleChange = (event, newSelectedValues) => {\n let clickedItem;\n let updatedItems: any = [];\n if (newSelectedValues && newSelectedValues.length > 0) {\n updatedItems = newSelectedValues.map(ele => {\n ele.selected = true;\n return ele;\n });\n }\n if (newSelectedValues.length > selectedItems.length) {\n clickedItem = newSelectedValues.filter(item => !selectedItems.some((ele: any) => ele.id === item.id));\n } else {\n clickedItem = selectedItems.filter((item: any) => !newSelectedValues.some((ele: any) => ele.id === item.id));\n clickedItem[0].selected = false;\n }\n itemsTree.forEach(ele => {\n ele.selected = !!updatedItems.find(item => item.id === ele.id);\n });\n\n setSelectedItems(updatedItems);\n setItemsTree(itemsTree);\n\n setInputValue('');\n\n // if this is a referenceList case\n if (referenceList) setSelectedItemsForReferenceList(clickedItem[0]);\n };\n\n return (\n <Autocomplete\n multiple\n fullWidth\n options={itemsTree}\n disableCloseOnSelect\n getOptionSelected={(option: any, val: any) => option?.primary === val?.primary}\n getOptionLabel={(option: any) => option?.primary}\n onChange={handleChange}\n value={selectedItems}\n renderOption={(option: any, { selected }) => (\n <>\n <Checkbox icon={icon} checkedIcon={checkedIcon} style={{ marginRight: 8 }} checked={selected} />\n {option.primary}\n </>\n )}\n renderInput={params => (\n <TextField {...params} variant='outlined' fullWidth label={label} placeholder={placeholder} size='small' onChange={onSearchHandler} />\n )}\n />\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { default } from './Multiselect';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/field/MultiSelect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}