@pega/react-sdk-overrides 0.23.16 → 0.23.18

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 (47) hide show
  1. package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +37 -3
  2. package/lib/designSystemExtension/FieldGroup/FieldGroup.tsx +1 -2
  3. package/lib/designSystemExtension/FieldValueList/FieldValueList.tsx +38 -56
  4. package/lib/field/AutoComplete/AutoComplete.tsx +6 -4
  5. package/lib/field/Checkbox/Checkbox.tsx +7 -5
  6. package/lib/field/Currency/Currency.tsx +31 -6
  7. package/lib/field/Currency/currency-utils.ts +76 -0
  8. package/lib/field/Date/Date.tsx +25 -9
  9. package/lib/field/DateTime/DateTime.tsx +24 -10
  10. package/lib/field/Decimal/Decimal.tsx +8 -6
  11. package/lib/field/Dropdown/Dropdown.tsx +6 -4
  12. package/lib/field/Email/Email.tsx +8 -8
  13. package/lib/field/Integer/Integer.tsx +8 -6
  14. package/lib/field/Percentage/Percentage.tsx +8 -6
  15. package/lib/field/Phone/Phone.tsx +8 -7
  16. package/lib/field/RadioButtons/RadioButtons.tsx +7 -5
  17. package/lib/field/SemanticLink/SemanticLink.tsx +6 -0
  18. package/lib/field/TextArea/TextArea.tsx +8 -6
  19. package/lib/field/TextInput/TextInput.tsx +8 -6
  20. package/lib/field/Time/Time.tsx +7 -5
  21. package/lib/field/URL/URL.tsx +8 -6
  22. package/lib/helpers/date-format-utils.ts +66 -0
  23. package/lib/helpers/field-group-utils.js +1 -3
  24. package/lib/helpers/formatters/Currency.js +13 -5
  25. package/lib/helpers/formatters/common.js +5 -1
  26. package/lib/helpers/formatters/index.js +5 -0
  27. package/lib/helpers/template-utils.ts +80 -0
  28. package/lib/infra/Containers/FlowContainer/FlowContainer.tsx +66 -70
  29. package/lib/infra/MultiStep/MultiStep.css +4 -18
  30. package/lib/infra/NavBar/NavBar.tsx +129 -219
  31. package/lib/infra/View/View.tsx +27 -20
  32. package/lib/template/CaseView/CaseView.tsx +2 -5
  33. package/lib/template/DefaultForm/DefaultForm.tsx +4 -0
  34. package/lib/template/Details/Details/Details.tsx +52 -21
  35. package/lib/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +63 -31
  36. package/lib/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +64 -30
  37. package/lib/template/ListView/DefaultViewMeta.js +222 -0
  38. package/lib/template/ListView/ListView.tsx +152 -48
  39. package/lib/template/ListView/hooks.js +97 -0
  40. package/lib/template/ListView/utils.js +636 -0
  41. package/lib/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +69 -42
  42. package/lib/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +69 -43
  43. package/lib/widget/Attachment/Attachment.css +7 -0
  44. package/lib/widget/Attachment/Attachment.tsx +37 -3
  45. package/lib/widget/SummaryItem/SummaryItem.tsx +1 -1
  46. package/package.json +1 -1
  47. package/lib/template/utils.ts +0 -23
@@ -15,7 +15,8 @@ export default function Phone(props) {
15
15
  readOnly,
16
16
  testId,
17
17
  helperText,
18
- displayMode
18
+ displayMode,
19
+ hideLabel
19
20
  } = props;
20
21
  const helperTextToDisplay = validatemessage || helperText;
21
22
 
@@ -25,11 +26,12 @@ export default function Phone(props) {
25
26
  'data-test-id': testId
26
27
  };
27
28
 
28
- if(displayMode === 'LABELS_LEFT') {
29
- const field = {
30
- [label]: value
31
- };
32
- return <FieldValueList item={field} />
29
+ if (displayMode === 'LABELS_LEFT') {
30
+ return <FieldValueList name={hideLabel ? '' : label} value={value} />;
31
+ }
32
+
33
+ if (displayMode === 'STACKED_LARGE_VAL') {
34
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
33
35
  }
34
36
 
35
37
  if (readOnly) {
@@ -56,7 +58,6 @@ export default function Phone(props) {
56
58
  );
57
59
  }
58
60
 
59
-
60
61
  const handleChange = inputVal => {
61
62
  let phoneValue = inputVal && inputVal.replace(/\D+/g, '');
62
63
  phoneValue = `+${phoneValue}`;
@@ -23,7 +23,8 @@ export default function RadioButtons(props) {
23
23
  status,
24
24
  required,
25
25
  inline,
26
- displayMode
26
+ displayMode,
27
+ hideLabel
27
28
  } = props;
28
29
  const [theSelectedButton, setSelectedButton] = useState(value);
29
30
 
@@ -43,10 +44,11 @@ export default function RadioButtons(props) {
43
44
  }, [value]);
44
45
 
45
46
  if (displayMode === 'LABELS_LEFT') {
46
- const field = {
47
- [label]: value
48
- };
49
- return <FieldValueList item={field} />;
47
+ return <FieldValueList name={hideLabel ? '' : label} value={value} />;
48
+ }
49
+
50
+ if (displayMode === 'STACKED_LARGE_VAL') {
51
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
50
52
  }
51
53
 
52
54
  const handleChange = event => {
@@ -3,6 +3,7 @@ import PropTypes from "prop-types";
3
3
  import Typography from '@material-ui/core/Typography';
4
4
  import Grid from '@material-ui/core/Grid';
5
5
  import { makeStyles } from '@material-ui/core/styles';
6
+ import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
6
7
 
7
8
  /* although this is called the SemanticLink component, we are not yet displaying as a
8
9
  SemanticLink in SDK and only showing the value as a read only text field. */
@@ -43,6 +44,7 @@ export default function SemanticLink(props) {
43
44
  text,
44
45
  displayMode,
45
46
  label,
47
+ hideLabel
46
48
  } = props;
47
49
  const classes = useStyles();
48
50
 
@@ -60,6 +62,10 @@ export default function SemanticLink(props) {
60
62
  </Grid>
61
63
  );
62
64
  }
65
+
66
+ if (displayMode === 'STACKED_LARGE_VAL') {
67
+ return <FieldValueList name={hideLabel ? '' : label} value={text} variant='stacked' />;
68
+ }
63
69
  }
64
70
 
65
71
  SemanticLink.propTypes = {
@@ -16,7 +16,8 @@ export default function TextArea(props) {
16
16
  testId,
17
17
  fieldMetadata,
18
18
  helperText,
19
- displayMode
19
+ displayMode,
20
+ hideLabel
20
21
  } = props;
21
22
  const helperTextToDisplay = validatemessage || helperText;
22
23
 
@@ -24,11 +25,12 @@ export default function TextArea(props) {
24
25
 
25
26
  let readOnlyProp = {};
26
27
 
27
- if(displayMode === 'LABELS_LEFT') {
28
- const field = {
29
- [label]: value
30
- };
31
- return <FieldValueList item={field} />
28
+ if (displayMode === 'LABELS_LEFT') {
29
+ return <FieldValueList name={hideLabel ? '' : label} value={value} />;
30
+ }
31
+
32
+ if (displayMode === 'STACKED_LARGE_VAL') {
33
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
32
34
  }
33
35
 
34
36
  if (readOnly) {
@@ -16,7 +16,8 @@ export default function TextInput(props) {
16
16
  testId,
17
17
  fieldMetadata,
18
18
  helperText,
19
- displayMode
19
+ displayMode,
20
+ hideLabel
20
21
  } = props;
21
22
  const helperTextToDisplay = validatemessage || helperText;
22
23
 
@@ -24,11 +25,12 @@ export default function TextInput(props) {
24
25
 
25
26
  let readOnlyProp = {}; // Note: empty if NOT ReadOnly
26
27
 
27
- if(displayMode === 'LABELS_LEFT') {
28
- const field = {
29
- [label]: value
30
- };
31
- return <FieldValueList item={field} />
28
+ if (displayMode === 'LABELS_LEFT') {
29
+ return <FieldValueList name={hideLabel ? '' : label} value={value} />;
30
+ }
31
+
32
+ if (displayMode === 'STACKED_LARGE_VAL') {
33
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
32
34
  }
33
35
 
34
36
  if (readOnly) {
@@ -16,15 +16,17 @@ export default function Time(props) {
16
16
  onChange,
17
17
  readOnly,
18
18
  helperText,
19
- displayMode
19
+ displayMode,
20
+ hideLabel
20
21
  } = props;
21
22
  const helperTextToDisplay = validatemessage || helperText;
22
23
 
23
24
  if (displayMode === 'LABELS_LEFT') {
24
- const field = {
25
- [label]: value
26
- };
27
- return <FieldValueList item={field} />;
25
+ return <FieldValueList name={hideLabel ? '' : label} value={value} />;
26
+ }
27
+
28
+ if (displayMode === 'STACKED_LARGE_VAL') {
29
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
28
30
  }
29
31
 
30
32
  if (readOnly) {
@@ -18,15 +18,17 @@ export default function URLComponent(props) {
18
18
  onBlur,
19
19
  readOnly,
20
20
  helperText,
21
- displayMode
21
+ displayMode,
22
+ hideLabel
22
23
  } = props;
23
24
  const helperTextToDisplay = validatemessage || helperText;
24
25
 
25
- if(displayMode === 'LABELS_LEFT') {
26
- const field = {
27
- [label]: value
28
- };
29
- return <FieldValueList item={field} />
26
+ if (displayMode === 'LABELS_LEFT') {
27
+ return <FieldValueList name={hideLabel ? '' : label} value={value} />;
28
+ }
29
+
30
+ if (displayMode === 'STACKED_LARGE_VAL') {
31
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
30
32
  }
31
33
 
32
34
  if (readOnly) {
@@ -0,0 +1,66 @@
1
+ import { getLocale } from './formatters/common';
2
+
3
+
4
+ export const dateFormatInfoDefault = {
5
+ dateFormatString: "MM/DD/YYYY",
6
+ dateFormatStringLong: "MMM DD, YYYY",
7
+ dateFormatStringLC: "mm/dd/yyyy",
8
+ dateFormatMask: "__/__/____"
9
+ }
10
+
11
+ export const getDateFormatInfo = () => {
12
+ const theDateFormatInfo = dateFormatInfoDefault;
13
+ const theLocale = getLocale(); // PCore.getEnvironmentInfo().getUseLocale() || "US-en";
14
+
15
+ // NOTE: this date was chosen since it has a day larger than 12. If you change it,
16
+ // you'll need to change the indexOf values below!
17
+ const theTestDate = new Date(Date.parse('30 November 2023 12:00:00 GMT'));
18
+ const theTestDateLocaleString = new Intl.DateTimeFormat(theLocale).format(theTestDate);
19
+
20
+ // console.log(`theLocale: ${theLocale} theTestDateLocaleString: ${theTestDateLocaleString}`);
21
+
22
+ // Build the format string based on where '11' (mm), '30' (dd), and '2023' (yyyy) are
23
+ // Example: US locations are 0, 3, 6 but for NL locations are 3, 0, 6
24
+ const locMM = theTestDateLocaleString.indexOf('11');
25
+ const locDD = theTestDateLocaleString.indexOf('30');
26
+ const locYYYY = theTestDateLocaleString.indexOf('2023');
27
+
28
+ const arrPieces = [
29
+ {
30
+ loc: locMM,
31
+ format: 'MM',
32
+ longFormat: 'MMM',
33
+ placeholder: 'mm',
34
+ mask: '__'
35
+ },
36
+ {
37
+ loc: locDD,
38
+ format: 'DD',
39
+ longFormat: 'DD',
40
+ placeholder: 'dd',
41
+ mask: '__'
42
+ },
43
+ {
44
+ loc: locYYYY,
45
+ format: 'YYYY',
46
+ longFormat: 'YYYY',
47
+ placeholder: 'yyyy',
48
+ mask: '____'
49
+ }
50
+ ];
51
+
52
+ // Sort the associative array by order of appearance (loc) of each piece
53
+ arrPieces.sort((a, b) => {
54
+ if (a.loc < b.loc) return -1;
55
+ if (a.loc > b.loc) return 1;
56
+ return 0;
57
+ });
58
+
59
+ // Construct the structure to return...
60
+ theDateFormatInfo.dateFormatString = `${arrPieces[0].format}/${arrPieces[1].format}/${arrPieces[2].format}`;
61
+ theDateFormatInfo.dateFormatStringLong = `${arrPieces[0].longFormat} ${arrPieces[1].longFormat}, ${arrPieces[2].longFormat}`;
62
+ theDateFormatInfo.dateFormatStringLC = `${arrPieces[0].placeholder}/${arrPieces[1].placeholder}/${arrPieces[2].placeholder}`;
63
+ theDateFormatInfo.dateFormatMask = `${arrPieces[0].mask}/${arrPieces[1].mask}/${arrPieces[2].mask}`;
64
+
65
+ return theDateFormatInfo;
66
+ }
@@ -35,9 +35,7 @@ export const buildView = (pConn, index, viewConfigPath) => {
35
35
  const isDatapage = referenceList.startsWith('D_');
36
36
  const pageReference = isDatapage
37
37
  ? `${referenceList}[${index}]`
38
- : `${pConn.getPageReference()}${referenceList.substring(
39
- referenceList.lastIndexOf('.')
40
- )}[${index}]`;
38
+ : `${pConn.getPageReference()}${referenceList}[${index}]`;
41
39
  const meta = viewConfigPath
42
40
  ? pConn.getRawMetadata().children[0].children[0]
43
41
  : pConn.getRawMetadata().children[0];
@@ -14,16 +14,24 @@ function NumberFormatter(value, { locale, decPlaces = 2 } = {}) {
14
14
 
15
15
  function CurrencyFormatter(
16
16
  value,
17
- { symbol = true, position, locale, decPlaces = 2 } = {}
17
+ { symbol = true, position, locale, decPlaces = 2, style = "currency", currency = "USD" } = {}
18
18
  ) {
19
19
  const currentLocale = getLocale(locale);
20
20
  let formattedValue = value;
21
- if (value !== null && value !== undefined) {
21
+ if (value !== null && value !== undefined && value !== '') {
22
22
  formattedValue = NumberFormatter(value, {
23
23
  locale: currentLocale,
24
- decPlaces
24
+ decPlaces,
25
+ style,
26
+ currency
25
27
  });
26
- const countryCode = currentLocale.split("-")[1];
28
+
29
+ let countryCode = currentLocale.split("-")[1].toUpperCase();
30
+
31
+ // If countryCode is still undefined, setting it as US
32
+ if( !countryCode ){
33
+ countryCode = 'US';
34
+ }
27
35
 
28
36
  let code;
29
37
  if (symbol) {
@@ -33,7 +41,7 @@ function CurrencyFormatter(
33
41
  }
34
42
 
35
43
  // if position is provided, change placeholder accordingly.
36
- if (position) {
44
+ if (position && code) {
37
45
  if (position.toLowerCase() === "before" && code.indexOf("{#}") === 0) {
38
46
  code = code.slice(3) + code.slice(0, 3);
39
47
  } else if (
@@ -1,6 +1,10 @@
1
1
  export function getLocale(locale) {
2
+ // use locale if specified
2
3
  if (locale) return locale;
3
- return document.documentElement.lang;
4
+ // otherwise, use operator locale if it's defined
5
+ if (window.PCore.getEnvironmentInfo().getUseLocale()) return window.PCore.getEnvironmentInfo().getUseLocale();
6
+ // fallback
7
+ return Intl.DateTimeFormat().resolvedOptions().locale;
4
8
  }
5
9
 
6
10
  export function getCurrentTimezone(timezone) {
@@ -113,6 +113,11 @@ export function format(value, type, options = {}) {
113
113
  break;
114
114
  }
115
115
 
116
+ case "userreference": {
117
+ formattedValue = value.userName;
118
+ break;
119
+ }
120
+
116
121
  default:
117
122
  formattedValue = value;
118
123
  }
@@ -0,0 +1,80 @@
1
+ // This file is adapted from React DX components/template/utils.js
2
+
3
+ declare const PCore: any;
4
+
5
+ export function getAllFields(pConnect: any) {
6
+ const metadata = pConnect.getRawMetadata();
7
+ let allFields = [];
8
+ if (metadata.children && metadata.children.map) {
9
+ allFields = metadata.children.map((fields) => {
10
+ const children = fields.children instanceof Array ? fields.children : [];
11
+ return children.map((field) => field.config);
12
+ });
13
+ }
14
+ return allFields;
15
+ }
16
+
17
+
18
+ export function filterForFieldValueList(fields : any) {
19
+ return fields
20
+ .filter(({ visibility }) => visibility !== false)
21
+ .map(({ value, label }) => ({
22
+ id: label.toLowerCase(),
23
+ name: label,
24
+ value
25
+ }));
26
+ }
27
+
28
+
29
+ /**
30
+ * Determine if the current view is the view of the case step/assignment.
31
+ * @param {Function} pConnect PConnect object for the component
32
+ */
33
+ export function getIsAssignmentView(pConnect) {
34
+ // Get caseInfo content from the store which contains the view info about the current assignment/step
35
+ // TODO To be replaced with pConnect.getCaseInfo().getCurrentAssignmentView when it's available
36
+ const assignmentViewClass = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_CLASSID);
37
+ const assignmentViewName = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENTACTION_ID);
38
+
39
+ const assignmentViewId = `${assignmentViewName}!${assignmentViewClass}`;
40
+
41
+ // Get the info about the current view from pConnect
42
+ const currentViewId = `${pConnect.getCurrentView()}!${pConnect.getCurrentClassID()}`;
43
+
44
+ return assignmentViewId === currentViewId;
45
+ }
46
+
47
+ /**
48
+ * A hook that gets the instructions content for a view.
49
+ * @param {Function} pConnect PConnect object for the component
50
+ * @param {string} [instructions="casestep"] 'casestep', 'none', or the html content of a Rule-UI-Paragraph rule (processed via core's paragraph annotation handler)
51
+ */
52
+ export function getInstructions(pConnect, instructions = 'casestep') {
53
+ const caseStepInstructions = pConnect.getValue(PCore.getConstants().CASE_INFO.INSTRUCTIONS);
54
+
55
+ // Determine if this view is the current assignment/step view
56
+ const isCurrentAssignmentView = getIsAssignmentView(pConnect);
57
+
58
+ // Case step instructions
59
+ if (instructions === 'casestep' && isCurrentAssignmentView && caseStepInstructions?.length) {
60
+ return caseStepInstructions;
61
+ }
62
+
63
+ // No instructions
64
+ if (instructions === 'none') {
65
+ return undefined;
66
+ }
67
+
68
+ // If the annotation wasn't processed correctly, don't return any instruction text
69
+ if (instructions?.startsWith('@PARAGRAPH')) {
70
+ return undefined;
71
+ }
72
+
73
+ // Custom instructions from the view
74
+ // The raw metadata for `instructions` will be something like '@PARAGRAPH .SomeParagraphRule' but
75
+ // it is evaluated by core logic to the content
76
+ if (instructions !== 'casestep' && instructions !== 'none') {
77
+ return instructions;
78
+ }
79
+ return undefined;
80
+ }
@@ -339,6 +339,72 @@ export default function FlowContainer(props) {
339
339
  if (window.sessionStorage.getItem("okToInitFlowContainer") === "true") {
340
340
  initContainer();
341
341
  }
342
+
343
+ // this check in routingInfo, mimic React to check and get the internals of the
344
+ // flowContainer and force updates to pConnect/redux
345
+ if (routingInfo && loadingInfo !== undefined) {
346
+
347
+ // debugging/investigation help
348
+ // console.log(`${thePConn.getComponentName()}: >>routingInfo: ${JSON.stringify(routingInfo)}`);
349
+
350
+ const currentOrder = routingInfo.accessedOrder;
351
+ const currentItems = routingInfo.items;
352
+ const type = routingInfo.type;
353
+ if (currentOrder && currentItems) { // JA - making more similar to React version
354
+ const key = currentOrder[currentOrder.length - 1];
355
+
356
+ // save off itemKey to be used for finishAssignment, etc.
357
+ // debugger;
358
+ setItemKey(key);
359
+
360
+ if (currentOrder.length > 0 &&
361
+ currentItems[key] &&
362
+ currentItems[key].view &&
363
+ type === "single" &&
364
+ !Utils.isEmptyObject(currentItems[key].view)) {
365
+ const currentItem = currentItems[key];
366
+ const rootView = currentItem.view;
367
+ const { context } = rootView.config;
368
+ const config = { meta: rootView };
369
+
370
+ config["options"] = {
371
+ context: currentItem.context,
372
+ pageReference: context || localPConn.getPageReference(),
373
+ hasForm: true,
374
+ isFlowContainer: true,
375
+ containerName: localPConn.getContainerName(),
376
+ containerItemName: key,
377
+ parentPageReference: localPConn.getPageReference()
378
+ };
379
+
380
+ const configObject = PCore.createPConnect(config);
381
+
382
+ // Since we're setting an array, need to add in an appropriate key
383
+ // to remove React warning.
384
+ configObject["key"] = config["options"].parentPageReference;
385
+
386
+ // keep track of these changes
387
+ const theNewChildren: Array<Object> = [];
388
+ theNewChildren.push(configObject);
389
+ setArNewChildren(theNewChildren);
390
+
391
+ // JEA - adapted from Nebula FlowContainer since we want to render children that are React components
392
+ const root = createElement(createPConnectComponent(), configObject);
393
+ setArNewChildrenAsReact([root]);
394
+
395
+ const oWorkItem = configObject.getPConnect(); // was theNewChildren[0].getPConnect()
396
+ const oWorkData = oWorkItem.getDataObject();
397
+
398
+
399
+ // check if have oWorkData, there are times due to timing of state change, when this
400
+ // may not be available
401
+ if (oWorkData) {
402
+ setContainerName(getActiveViewLabel() || oWorkData.caseInfo.assignments[0].name);
403
+ }
404
+ }
405
+ }
406
+
407
+ }
342
408
  }
343
409
 
344
410
  // if have caseMessage show message and end
@@ -359,81 +425,11 @@ export default function FlowContainer(props) {
359
425
 
360
426
  // debugger;
361
427
  setCheckSvg(Utils.getImageSrc("check", PCore.getAssetLoader().getStaticServerUrl()));
362
- return;
363
428
  }
364
429
  else {
365
430
  // debugger;
366
431
  setHasCaseMessages(false);
367
432
  }
368
-
369
-
370
- // this check in routingInfo, mimic React to check and get the internals of the
371
- // flowContainer and force updates to pConnect/redux
372
- if (routingInfo && loadingInfo !== undefined) {
373
-
374
- // debugging/investigation help
375
- // console.log(`${thePConn.getComponentName()}: >>routingInfo: ${JSON.stringify(routingInfo)}`);
376
-
377
- const currentOrder = routingInfo.accessedOrder;
378
- const currentItems = routingInfo.items;
379
- const type = routingInfo.type;
380
- if (currentOrder && currentItems) { // JA - making more similar to React version
381
- const key = currentOrder[currentOrder.length - 1];
382
-
383
- // save off itemKey to be used for finishAssignment, etc.
384
- // debugger;
385
- setItemKey(key);
386
-
387
- if (currentOrder.length > 0 &&
388
- currentItems[key] &&
389
- currentItems[key].view &&
390
- type === "single" &&
391
- !Utils.isEmptyObject(currentItems[key].view)) {
392
- const currentItem = currentItems[key];
393
- const rootView = currentItem.view;
394
- const { context } = rootView.config;
395
- const config = { meta: rootView };
396
-
397
- config["options"] = {
398
- context: currentItem.context,
399
- pageReference: context || localPConn.getPageReference(),
400
- hasForm: true,
401
- isFlowContainer: true,
402
- containerName: localPConn.getContainerName(),
403
- containerItemName: key,
404
- parentPageReference: localPConn.getPageReference()
405
- };
406
-
407
- const configObject = PCore.createPConnect(config);
408
-
409
- // Since we're setting an array, need to add in an appropriate key
410
- // to remove React warning.
411
- configObject["key"] = config["options"].parentPageReference;
412
-
413
- // keep track of these changes
414
- const theNewChildren: Array<Object> = [];
415
- theNewChildren.push(configObject);
416
- setArNewChildren(theNewChildren);
417
-
418
- // JEA - adapted from Nebula FlowContainer since we want to render children that are React components
419
- const root = createElement(createPConnectComponent(), configObject);
420
- setArNewChildrenAsReact([root]);
421
-
422
- const oWorkItem = configObject.getPConnect(); // was theNewChildren[0].getPConnect()
423
- const oWorkData = oWorkItem.getDataObject();
424
-
425
-
426
- // check if have oWorkData, there are times due to timing of state change, when this
427
- // may not be available
428
- if (oWorkData) {
429
- setContainerName(getActiveViewLabel() || oWorkData.caseInfo.assignments[0].name);
430
- }
431
- }
432
- }
433
-
434
- }
435
-
436
-
437
433
  }, [props]);
438
434
 
439
435
  const caseId = thePConn.getCaseSummary().content.pyID;
@@ -34,7 +34,7 @@ mat-horizontal-stepper {
34
34
  }
35
35
 
36
36
  .psdk-sub-step-current {
37
- padding-left: 0.625rem;
37
+ padding-left: 0.625rem;
38
38
  font-weight: bold;
39
39
  color: rgba(0,0,0,.87);
40
40
  }
@@ -53,7 +53,7 @@ mat-horizontal-stepper {
53
53
  }
54
54
 
55
55
  .psdk-sub-step-list {
56
- list-style: none;
56
+ list-style: none;
57
57
  padding-bottom: 0.625rem;
58
58
  }
59
59
 
@@ -219,35 +219,21 @@ mat-horizontal-stepper {
219
219
  .psdk-horizontal-step-label {
220
220
  color: rgba(0,0,0,.54);
221
221
  display: inline-block;
222
- white-space: nowrap;
223
- overflow: hidden;
224
- text-overflow: ellipsis;
225
222
  min-width: 50px;
226
223
  vertical-align: middle;
227
224
  font-size: 14px;
228
225
  font-weight: 500;
229
- text-overflow: ellipsis;
230
- overflow: hidden;
226
+ white-space: initial;
231
227
  }
232
228
 
233
229
  .psdk-horizontal-step-label-selected {
234
230
  color: rgba(0,0,0,.87);
235
231
  display: inline-block;
236
- white-space: nowrap;
237
- overflow: hidden;
238
- text-overflow: ellipsis;
239
232
  min-width: 50px;
240
233
  vertical-align: middle;
241
234
  font-size: 14px;
242
235
  font-weight: 500;
243
- text-overflow: ellipsis;
244
- overflow: hidden;
245
- }
246
-
247
- .psdk-horizontal-step-text-label {
248
- text-overflow: ellipsis;
249
- overflow: hidden;
250
- display: block;
236
+ white-space: initial;
251
237
  }
252
238
 
253
239
  .psdk-horizontal-step-line {