@pega/dx-component-builder-sdk 0.1.6 → 0.1.8

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 (111) hide show
  1. package/package.json +1 -1
  2. package/src/constants.js +8 -4
  3. package/src/tasks/build/helper.js +5 -23
  4. package/src/tasks/build/index.js +54 -7
  5. package/src/tasks/bundle/index.js +2 -2
  6. package/src/tasks/create/index.js +13 -5
  7. package/src/tasks/create/templates/Constellation/Field/Boolean/boolean-format.js.mustache +1 -1
  8. package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.jsx.mustache +60 -0
  9. package/src/tasks/create/templates/Constellation/Field/Boolean/index.jsx.mustache +1 -2
  10. package/src/tasks/create/templates/Constellation/Field/Boolean/mock.stories.js.mustache +21 -0
  11. package/src/tasks/create/templates/Constellation/Field/Date/DateFormatter.js.mustache +61 -0
  12. package/src/tasks/create/templates/Constellation/Field/Date/FormattedText.jsx.mustache +41 -0
  13. package/src/tasks/create/templates/Constellation/Field/Date/date.js.mustache +179 -67
  14. package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +40 -16
  15. package/src/tasks/create/templates/Constellation/Field/Date/index.jsx.mustache +3 -1
  16. package/src/tasks/create/templates/Constellation/Field/Date/mock.stories.js.mustache +23 -0
  17. package/src/tasks/create/templates/Constellation/Field/DateTime/date-time.js.mustache +0 -1
  18. package/src/tasks/create/templates/Constellation/Field/DateTime/{date-utils.js → date-utils.js.mustache} +1 -0
  19. package/src/tasks/create/templates/Constellation/Field/DateTime/date.js.mustache +1 -0
  20. package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +40 -15
  21. package/src/tasks/create/templates/Constellation/Field/DateTime/index.jsx.mustache +2 -0
  22. package/src/tasks/create/templates/Constellation/Field/DateTime/mock.stories.js.mustache +23 -0
  23. package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +22 -17
  24. package/src/tasks/create/templates/Constellation/Field/Decimal/index.jsx.mustache +2 -1
  25. package/src/tasks/create/templates/Constellation/Field/Decimal/mock.stories.js.mustache +21 -0
  26. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +25 -17
  27. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.jsx.mustache +3 -4
  28. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/mock.stories.js.mustache +23 -0
  29. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +22 -17
  30. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.jsx.mustache +8 -2
  31. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/mock.stories.js.mustache +21 -0
  32. package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +22 -17
  33. package/src/tasks/create/templates/Constellation/Field/Integer/index.jsx.mustache +2 -1
  34. package/src/tasks/create/templates/Constellation/Field/Integer/mock.stories.js.mustache +21 -0
  35. package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +42 -14
  36. package/src/tasks/create/templates/Constellation/Field/Picklist/index.jsx.mustache +44 -1
  37. package/src/tasks/create/templates/Constellation/Field/Picklist/mock.stories.js.mustache +67 -0
  38. package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +21 -16
  39. package/src/tasks/create/templates/Constellation/Field/Text/mock.stories.js.mustache +13 -0
  40. package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +20 -16
  41. package/src/tasks/create/templates/Constellation/Field/Text-Email/index.jsx.mustache +44 -2
  42. package/src/tasks/create/templates/Constellation/Field/Text-Email/mock.stories.js.mustache +22 -0
  43. package/src/tasks/create/templates/Constellation/Field/Text-Input/{StatusWork.js → StatusWork.jsx} +0 -1
  44. package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +21 -17
  45. package/src/tasks/create/templates/Constellation/Field/Text-Input/index.jsx.mustache +46 -3
  46. package/src/tasks/create/templates/Constellation/Field/Text-Input/mock.stories.js.mustache +21 -0
  47. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +21 -17
  48. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.jsx.mustache +44 -2
  49. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/mock.stories.js.mustache +20 -0
  50. package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +19 -17
  51. package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +46 -2
  52. package/src/tasks/create/templates/Constellation/Field/Text-Phone/mock.stories.js.mustache +37 -0
  53. package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +19 -17
  54. package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +174 -3
  55. package/src/tasks/create/templates/Constellation/Field/Text-URL/mock.stories.js.mustache +22 -0
  56. package/src/tasks/create/templates/Constellation/Field/TimeofDay/demo.stories.jsx.mustache +24 -16
  57. package/src/tasks/create/templates/Constellation/Field/TimeofDay/mock.stories.js.mustache +20 -0
  58. package/src/tasks/create/templates/Constellation/Field/TimeofDay/time-of-day.js.mustache +1 -0
  59. package/src/tasks/create/templates/Constellation/Template/DETAILS/StatusWork.jsx.mustache +26 -0
  60. package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.jsx.mustache +110 -0
  61. package/src/tasks/create/templates/Constellation/Template/DETAILS/index.jsx.mustache +3 -5
  62. package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.stories.js.mustache +179 -0
  63. package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +3 -6
  64. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/StatusWork.jsx.mustache +26 -0
  65. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache +118 -0
  66. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.jsx.mustache +3 -5
  67. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.stories.js.mustache +215 -0
  68. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.js.mustache +3 -3
  69. package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.jsx.mustache +89 -0
  70. package/src/tasks/create/templates/Constellation/Template/FORM/index.jsx.mustache +6 -10
  71. package/src/tasks/create/templates/Constellation/Template/FORM/mock.stories.js.mustache +125 -0
  72. package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache +100 -0
  73. package/src/tasks/create/templates/Constellation/Template/FORM-region/index.jsx.mustache +5 -11
  74. package/src/tasks/create/templates/Constellation/Template/FORM-region/mock.stories.js.mustache +131 -0
  75. package/src/tasks/create/templates/Constellation/Template/PAGE/{GetNextWork.js.mustache → GetNextWork.jsx.mustache} +6 -0
  76. package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.jsx.mustache +102 -0
  77. package/src/tasks/create/templates/Constellation/Template/PAGE/index.jsx.mustache +9 -7
  78. package/src/tasks/create/templates/Constellation/Template/PAGE/mock.stories.js.mustache +94 -0
  79. package/src/tasks/create/templates/Constellation/Template/PAGE/utils.js.mustache +4 -1
  80. package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.jsx.mustache +78 -0
  81. package/src/tasks/create/templates/Constellation/Widget/CASE/index.jsx.mustache +1 -0
  82. package/src/tasks/create/templates/Constellation/Widget/CASE/mock.stories.js.mustache +389 -0
  83. package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.jsx.mustache +30 -0
  84. package/src/tasks/create/templates/Constellation/Widget/PAGE/mock.stories.js.mustache +22 -0
  85. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/{Avatar.js.mustache → Avatar.jsx.mustache} +2 -0
  86. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/{Operator.js.mustache → Operator.jsx.mustache} +2 -1
  87. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.jsx.mustache +68 -0
  88. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.jsx.mustache +9 -9
  89. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.stories.js.mustache +51 -0
  90. package/src/tasks/create/templates/SDK-React/Template/PAGE/demo.stories.jsx.mustache +79 -0
  91. package/src/tasks/create/templates/SDK-React/Template/PAGE/mock.stories.js.mustache +115 -0
  92. package/src/tasks/delete/helper.js +7 -25
  93. package/src/tasks/delete/index.js +2 -3
  94. package/src/tasks/delete-all/helper.js +7 -24
  95. package/src/tasks/delete-all/index.js +2 -3
  96. package/src/tasks/list/helper.js +3 -21
  97. package/src/tasks/list/index.js +2 -3
  98. package/src/tasks/map/map.js +4 -10
  99. package/src/tasks/override/index.js +50 -21
  100. package/src/tasks/publish/helper.js +77 -15
  101. package/src/tasks/publish/index.js +103 -15
  102. package/src/tasks/publish-all/helper.js +77 -13
  103. package/src/tasks/publish-all/index.js +109 -25
  104. package/src/tasks/validator/index.js +7 -5
  105. package/src/util.js +56 -10
  106. package/src/tasks/create/templates/Constellation/Field/Picklist/picklist.js.mustache +0 -43
  107. package/src/tasks/create/templates/Constellation/Field/Text-Email/text-email.js.mustache +0 -43
  108. package/src/tasks/create/templates/Constellation/Field/Text-Input/text-input.js.mustache +0 -43
  109. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/text-paragraph.js.mustache +0 -43
  110. package/src/tasks/create/templates/Constellation/Field/Text-Phone/text-phone.js.mustache +0 -43
  111. package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.js.mustache +0 -172
@@ -0,0 +1,13 @@
1
+ export const configProps = {
2
+ value: '',
3
+ label: 'Text Sample',
4
+ placeholder: 'Text Placeholder',
5
+ helperText: 'Text Helper Text',
6
+ testId: 'Text-12345678',
7
+ hasSuggestions: false
8
+ };
9
+
10
+ export const stateProps = {
11
+ value: '.TextSample',
12
+ hasSuggestions: false
13
+ };
@@ -1,8 +1,9 @@
1
- import { useState } from 'react';
2
1
  import { withKnobs, text, boolean } from '@storybook/addon-knobs';
3
2
 
4
3
  import {{COMPONENT_CLASS_NAME}} from './index.jsx';
5
4
 
5
+ import { stateProps, configProps, fieldMetadata } from './mock.stories';
6
+
6
7
  export default {
7
8
  title: '{{COMPONENT_CLASS_NAME}}',
8
9
  decorators: [withKnobs],
@@ -10,30 +11,33 @@ export default {
10
11
  };
11
12
 
12
13
  export const base{{COMPONENT_CLASS_NAME}} = () => {
13
- const [value, setValue] = useState('test value');
14
14
 
15
15
  const props = {
16
+ value: configProps.value,
17
+ label: configProps.label,
18
+ placeholder: configProps.placeholder,
19
+ helperText: configProps.helperText,
20
+ testId: configProps.testId,
21
+ hasSuggestions: configProps.hasSuggestions,
22
+ fieldMetadata: fieldMetadata,
23
+
16
24
  getPConnect: () => {
17
25
  return {
26
+ getStateProps: () => {
27
+ return stateProps;
28
+ },
18
29
  getActionsApi: () => {
19
30
  return {
20
- updateFieldValue: (propName, value) => {
21
- setValue(value);
22
- }
31
+ updateFieldValue: () => {},
32
+ triggerFieldChange: () => {}
23
33
  };
24
34
  },
25
- getStateProps: () => {
26
- return { value: '.name' };
27
- }
35
+ ignoreSuggestion: () => {},
36
+ acceptSuggestion: () => {},
37
+ setInheritedProps: () => {},
38
+ resolveConfigProps: () => {}
28
39
  };
29
- },
30
- value,
31
- placeholder: text('Placeholder', 'Test placeholder'),
32
- disabled: boolean('Disabled', false),
33
- readOnly: boolean('Disabled', false),
34
- required: boolean('Disabled', false),
35
- label: text('Label', 'Sample Label'),
36
- testId: text('Test id', 'text-12344566')
40
+ }
37
41
  };
38
42
 
39
43
  return (
@@ -1,14 +1,56 @@
1
1
  import { useState, useEffect, useRef } from 'react';
2
- import { Input, EmailDisplay, FieldValueList, Text } from '@pega/cosmos-react-core';
2
+ import { Input, EmailDisplay, FieldValueList, Text, URLDisplay, PhoneDisplay } from '@pega/cosmos-react-core';
3
3
  import PropTypes from 'prop-types';
4
4
 
5
5
  // includes in bundle
6
- import {formatExists,textFormatter} from "./text-email";
7
6
  import { suggestionsHandler } from './suggestions-handler';
8
7
  import handleEvent from "./event-utils";
9
8
 
10
9
  import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
11
10
 
11
+ export const formatExists = (formatterVal) => {
12
+ const formatterValues = [
13
+ "TextInput",
14
+ "WorkStatus",
15
+ "RichText",
16
+ "Email",
17
+ "Phone",
18
+ "URL",
19
+ "Operator"
20
+ ];
21
+ let isformatter = false;
22
+ if (formatterValues.includes(formatterVal)) {
23
+ isformatter = true;
24
+ }
25
+ return isformatter;
26
+ };
27
+
28
+
29
+ export const textFormatter = (formatter,value) => {
30
+ let displayComponent = null;
31
+ switch(formatter){
32
+ case "TextInput" : {
33
+ displayComponent = value;
34
+ break;
35
+ }
36
+ case "Email" : {
37
+ displayComponent = (<EmailDisplay value={value} displayText={value} variant="link" />);
38
+ break;
39
+ }
40
+ case "Phone" : {
41
+ displayComponent = (<PhoneDisplay value={value} variant="link" />);
42
+ break;
43
+ }
44
+ case "URL" : {
45
+ displayComponent = (<URLDisplay target="_blank" value={value} displayText={value} variant="link" />);
46
+ break;
47
+ }
48
+ // no default
49
+ }
50
+ return displayComponent;
51
+ };
52
+
53
+
12
54
 
13
55
  // Duplicated runtime code from Constellation Design System Component
14
56
 
@@ -0,0 +1,22 @@
1
+ export const configProps = {
2
+ value: '',
3
+ label: 'Email Sample',
4
+ placeholder: 'Email Placeholder',
5
+ helperText: 'Email Helper Text',
6
+ testId: 'email-12345678',
7
+ hasSuggestions: false
8
+ };
9
+
10
+ export const stateProps = {
11
+ value: '.EmailSample',
12
+ hasSuggestions: false
13
+ };
14
+
15
+ export const fieldMetadata = {
16
+ classID: 'DIXL-MediaCo-Work-NewService',
17
+ type: 'Text',
18
+ maxLength: 256,
19
+ displayAs: 'pxEmail',
20
+ label: 'Email sample',
21
+ validateAs: 'ValidEmailAddress'
22
+ };
@@ -1,4 +1,3 @@
1
- /* eslint-disable react/prop-types */
2
1
  import { Status } from "@pega/cosmos-react-core";
3
2
 
4
3
  export default function StatusWorkRenderer({ value }) {
@@ -1,8 +1,9 @@
1
- import { useState } from 'react';
2
- import { withKnobs, text, boolean } from '@storybook/addon-knobs';
1
+ import { withKnobs } from '@storybook/addon-knobs';
3
2
 
4
3
  import {{COMPONENT_CLASS_NAME}} from './index.jsx';
5
4
 
5
+ import { stateProps, fieldMetadata, configProps } from './mock.stories';
6
+
6
7
  export default {
7
8
  title: '{{COMPONENT_CLASS_NAME}}',
8
9
  decorators: [withKnobs],
@@ -10,30 +11,33 @@ export default {
10
11
  };
11
12
 
12
13
  export const base{{COMPONENT_CLASS_NAME}} = () => {
13
- const [value, setValue] = useState('test value');
14
14
 
15
15
  const props = {
16
+ value: configProps.value,
17
+ placeholder: configProps.placeholder,
18
+ label: configProps.label,
19
+ helperText: configProps.helperText,
20
+ testId: configProps.testId,
21
+ hasSuggestions: configProps.hasSuggestions,
22
+ fieldMetadata: fieldMetadata,
23
+
16
24
  getPConnect: () => {
17
25
  return {
26
+ getStateProps: () => {
27
+ return stateProps;
28
+ },
18
29
  getActionsApi: () => {
19
30
  return {
20
- updateFieldValue: (propName, value) => {
21
- setValue(value);
22
- }
31
+ updateFieldValue: () => {},
32
+ triggerFieldChange: () => {}
23
33
  };
24
34
  },
25
- getStateProps: () => {
26
- return { value: '.name' };
27
- }
35
+ ignoreSuggestion: () => {},
36
+ acceptSuggestion: () => {},
37
+ setInheritedProps: () => {},
38
+ resolveConfigProps: () => {}
28
39
  };
29
- },
30
- value,
31
- placeholder: text('Placeholder', 'Test placeholder'),
32
- disabled: boolean('Disabled', false),
33
- readOnly: boolean('Disabled', false),
34
- required: boolean('Disabled', false),
35
- label: text('Label', 'Sample Label'),
36
- testId: text('Test id', 'text-12344566')
40
+ }
37
41
  };
38
42
 
39
43
  return (
@@ -1,16 +1,59 @@
1
1
  import { useEffect, useState, useRef } from 'react';
2
- import { Input, FieldValueList, Text } from '@pega/cosmos-react-core';
2
+ import { Input, FieldValueList, Text, EmailDisplay, PhoneDisplay, URLDisplay } from '@pega/cosmos-react-core';
3
3
  import PropTypes from 'prop-types';
4
4
 
5
5
  // include in bundle
6
6
  import handleEvent from "./event-utils";
7
- import StatusWorkRenderer from "./StatusWork";
8
- import {formatExists,textFormatter} from "./text-input";
7
+ import StatusWorkRenderer from "./StatusWork.jsx";
9
8
  import { suggestionsHandler } from './suggestions-handler';
10
9
 
11
10
  import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
12
11
 
13
12
 
13
+ export const formatExists = (formatterVal) => {
14
+ const formatterValues = [
15
+ "TextInput",
16
+ "WorkStatus",
17
+ "RichText",
18
+ "Email",
19
+ "Phone",
20
+ "URL",
21
+ "Operator"
22
+ ];
23
+ let isformatter = false;
24
+ if (formatterValues.includes(formatterVal)) {
25
+ isformatter = true;
26
+ }
27
+ return isformatter;
28
+ };
29
+
30
+
31
+ export const textFormatter = (formatter,value) => {
32
+ let displayComponent = null;
33
+ switch(formatter){
34
+ case "TextInput" : {
35
+ displayComponent = value;
36
+ break;
37
+ }
38
+ case "Email" : {
39
+ displayComponent = (<EmailDisplay value={value} displayText={value} variant="link" />);
40
+ break;
41
+ }
42
+ case "Phone" : {
43
+ displayComponent = (<PhoneDisplay value={value} variant="link" />);
44
+ break;
45
+ }
46
+ case "URL" : {
47
+ displayComponent = (<URLDisplay target="_blank" value={value} displayText={value} variant="link" />);
48
+ break;
49
+ }
50
+ // no default
51
+ }
52
+ return displayComponent;
53
+ };
54
+
55
+
56
+
14
57
  // Duplicated runtime code from Constellation Design System Component
15
58
 
16
59
  // props passed in combination of props from property panel (config.json) and run time props from Constellation
@@ -0,0 +1,21 @@
1
+ export const configProps = {
2
+ value: '',
3
+ label: 'TextInput Sample',
4
+ placeholder: 'TextInput Placeholder',
5
+ helperText: 'TextInput Helper Text',
6
+ testId: 'TextInput-12345678',
7
+ hasSuggestions: false
8
+ };
9
+
10
+ export const stateProps = {
11
+ value: '.TextInputSample',
12
+ hasSuggestions: false
13
+ };
14
+
15
+ export const fieldMetadata = {
16
+ classID: 'DIXL-MediaCo-Work-NewService',
17
+ type: 'Text',
18
+ maxLength: 256,
19
+ displayAs: 'pxTextInput',
20
+ label: 'TextInput Sample'
21
+ };
@@ -1,8 +1,9 @@
1
- import { useState } from 'react';
2
- import { withKnobs, text, boolean } from '@storybook/addon-knobs';
1
+ import { withKnobs } from '@storybook/addon-knobs';
3
2
 
4
3
  import {{COMPONENT_CLASS_NAME}} from './index.jsx';
5
4
 
5
+ import { stateProps, configProps, fieldMetadata } from './mock.stories';
6
+
6
7
  export default {
7
8
  title: '{{COMPONENT_CLASS_NAME}}',
8
9
  decorators: [withKnobs],
@@ -10,30 +11,33 @@ export default {
10
11
  };
11
12
 
12
13
  export const base{{COMPONENT_CLASS_NAME}} = () => {
13
- const [value, setValue] = useState('test value');
14
14
 
15
15
  const props = {
16
+ value: configProps.value,
17
+ placeholder: configProps.placeholder,
18
+ label: configProps.label,
19
+ helperText: configProps.helperText,
20
+ testId: configProps.testId,
21
+ hasSuggestions: configProps.hasSuggestions,
22
+ fieldMetadata: fieldMetadata,
23
+
16
24
  getPConnect: () => {
17
25
  return {
26
+ getStateProps: () => {
27
+ return stateProps;
28
+ },
18
29
  getActionsApi: () => {
19
30
  return {
20
- updateFieldValue: (propName, value) => {
21
- setValue(value);
22
- }
31
+ updateFieldValue: () => {},
32
+ triggerFieldChange: () => {}
23
33
  };
24
34
  },
25
- getStateProps: () => {
26
- return { value: '.name' };
27
- }
35
+ ignoreSuggestion: () => {},
36
+ acceptSuggestion: () => {},
37
+ setInheritedProps: () => {},
38
+ resolveConfigProps: () => {}
28
39
  };
29
- },
30
- value,
31
- placeholder: text('Placeholder', 'Test placeholder'),
32
- disabled: boolean('Disabled', false),
33
- readOnly: boolean('Disabled', false),
34
- required: boolean('Disabled', false),
35
- label: text('Label', 'Sample Label'),
36
- testId: text('Test id', 'text-12344566')
40
+ }
37
41
  };
38
42
 
39
43
  return (
@@ -1,14 +1,56 @@
1
1
  import { useState, useEffect, useRef } from 'react';
2
- import { TextArea as CosmosTextArea, FieldValueList, ParagraphDisplay, Text } from '@pega/cosmos-react-core';
2
+ import { TextArea as CosmosTextArea, FieldValueList, ParagraphDisplay, Text, EmailDisplay, PhoneDisplay, URLDisplay } from '@pega/cosmos-react-core';
3
3
  import PropTypes from 'prop-types';
4
4
 
5
5
  // includes in bundle
6
- import {formatExists,textFormatter} from "./text-paragraph";
7
6
  import { suggestionsHandler } from './suggestions-handler';
8
7
  import handleEvent from "./event-utils";
9
8
 
10
9
  import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
11
10
 
11
+ export const formatExists = (formatterVal) => {
12
+ const formatterValues = [
13
+ "TextInput",
14
+ "WorkStatus",
15
+ "RichText",
16
+ "Email",
17
+ "Phone",
18
+ "URL",
19
+ "Operator"
20
+ ];
21
+ let isformatter = false;
22
+ if (formatterValues.includes(formatterVal)) {
23
+ isformatter = true;
24
+ }
25
+ return isformatter;
26
+ };
27
+
28
+
29
+ export const textFormatter = (formatter,value) => {
30
+ let displayComponent = null;
31
+ switch(formatter){
32
+ case "TextInput" : {
33
+ displayComponent = value;
34
+ break;
35
+ }
36
+ case "Email" : {
37
+ displayComponent = (<EmailDisplay value={value} displayText={value} variant="link" />);
38
+ break;
39
+ }
40
+ case "Phone" : {
41
+ displayComponent = (<PhoneDisplay value={value} variant="link" />);
42
+ break;
43
+ }
44
+ case "URL" : {
45
+ displayComponent = (<URLDisplay target="_blank" value={value} displayText={value} variant="link" />);
46
+ break;
47
+ }
48
+ // no default
49
+ }
50
+ return displayComponent;
51
+ };
52
+
53
+
12
54
 
13
55
  // Duplicated runtime code from Constellation Design System Component
14
56
 
@@ -0,0 +1,20 @@
1
+ export const configProps = {
2
+ value: '',
3
+ label: 'Paragraph Sample',
4
+ placeholder: 'Paragraph Placeholder',
5
+ helperText: 'Paragraph Helper Text',
6
+ testId: 'paragraph-12345678',
7
+ hasSuggestions: false
8
+ };
9
+
10
+ export const fieldMetadata = {
11
+ classID: 'DIXL-MediaCo-Work-NewService',
12
+ type: 'Text',
13
+ displayAs: 'pxTextArea',
14
+ label: 'Paragraph sample'
15
+ };
16
+
17
+ export const stateProps = {
18
+ value: '.ParagraphSample',
19
+ hasSuggestions: false
20
+ };
@@ -1,7 +1,7 @@
1
- import { useState } from 'react';
2
- import { withKnobs, text, boolean } from '@storybook/addon-knobs';
1
+ import { withKnobs } from '@storybook/addon-knobs';
3
2
 
4
3
  import {{COMPONENT_CLASS_NAME}} from './index.jsx';
4
+ import { stateProps, configProps } from './mock.stories';
5
5
 
6
6
  export default {
7
7
  title: '{{COMPONENT_CLASS_NAME}}',
@@ -10,30 +10,32 @@ export default {
10
10
  };
11
11
 
12
12
  export const base{{COMPONENT_CLASS_NAME}} = () => {
13
- const [value, setValue] = useState('test value');
14
13
 
15
14
  const props = {
15
+ value: configProps.value,
16
+ placeholder: configProps.placeholder,
17
+ label: configProps.label,
18
+ testId: configProps.testId,
19
+ hasSuggestions: configProps.hasSuggestions,
20
+ datasource: configProps.datasource,
21
+
16
22
  getPConnect: () => {
17
23
  return {
24
+ getStateProps: () => {
25
+ return stateProps;
26
+ },
18
27
  getActionsApi: () => {
19
28
  return {
20
- updateFieldValue: (propName, value) => {
21
- setValue(value);
22
- }
29
+ updateFieldValue: () => {},
30
+ triggerFieldChange: () => {}
23
31
  };
24
32
  },
25
- getStateProps: () => {
26
- return { value: '.name' };
27
- }
33
+ ignoreSuggestion: () => {},
34
+ acceptSuggestion: () => {},
35
+ setInheritedProps: () => {},
36
+ resolveConfigProps: () => {}
28
37
  };
29
- },
30
- value,
31
- placeholder: text('Placeholder', 'Test placeholder'),
32
- disabled: boolean('Disabled', false),
33
- readOnly: boolean('Disabled', false),
34
- required: boolean('Disabled', false),
35
- label: text('Label', 'Sample Label'),
36
- testId: text('Test id', 'text-12344566')
38
+ }
37
39
  };
38
40
 
39
41
  return (
@@ -4,16 +4,60 @@ import {
4
4
  getPhoneNumberParts,
5
5
  PhoneDisplay,
6
6
  FieldValueList,
7
- Text
7
+ Text,
8
+ EmailDisplay, URLDisplay
8
9
  } from '@pega/cosmos-react-core';
9
10
  import PropTypes from 'prop-types';
10
11
 
11
12
  // includes in bundle
12
- import {formatExists,textFormatter} from "./text-phone";
13
13
  import handleEvent from "./event-utils";
14
14
  import { suggestionsHandler } from './suggestions-handler';
15
15
 
16
16
  import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
17
+ import { } from "@pega/cosmos-react-core";
18
+
19
+ export const formatExists = (formatterVal) => {
20
+ const formatterValues = [
21
+ "TextInput",
22
+ "WorkStatus",
23
+ "RichText",
24
+ "Email",
25
+ "Phone",
26
+ "URL",
27
+ "Operator"
28
+ ];
29
+ let isformatter = false;
30
+ if (formatterValues.includes(formatterVal)) {
31
+ isformatter = true;
32
+ }
33
+ return isformatter;
34
+ };
35
+
36
+
37
+ export const textFormatter = (formatter,value) => {
38
+ let displayComponent = null;
39
+ switch(formatter){
40
+ case "TextInput" : {
41
+ displayComponent = value;
42
+ break;
43
+ }
44
+ case "Email" : {
45
+ displayComponent = (<EmailDisplay value={value} displayText={value} variant="link" />);
46
+ break;
47
+ }
48
+ case "Phone" : {
49
+ displayComponent = (<PhoneDisplay value={value} variant="link" />);
50
+ break;
51
+ }
52
+ case "URL" : {
53
+ displayComponent = (<URLDisplay target="_blank" value={value} displayText={value} variant="link" />);
54
+ break;
55
+ }
56
+ // no default
57
+ }
58
+ return displayComponent;
59
+ };
60
+
17
61
 
18
62
 
19
63
  // Duplicated runtime code from Constellation Design System Component
@@ -0,0 +1,37 @@
1
+ export const configProps = {
2
+ value: '',
3
+ label: 'Phone Sample',
4
+ datasource: {
5
+ source: [
6
+ {
7
+ value: '+1'
8
+ },
9
+ {
10
+ value: '+91'
11
+ },
12
+ {
13
+ value: '+48'
14
+ },
15
+ {
16
+ value: '+44'
17
+ }
18
+ ],
19
+ fields: {}
20
+ },
21
+ showCountryCode: true,
22
+ placeholder: 'Phone Placeholder',
23
+ helperText: 'Phone Helper Text',
24
+ testId: 'phone-12345678',
25
+ hasSuggestions: false
26
+ };
27
+
28
+ export const stateProps = {
29
+ value: '.PhoneSample',
30
+ datasource: {
31
+ source: 'D_pyCountryCallingCodeList.pxResults',
32
+ fields: {
33
+ value: '.pyCallingCode'
34
+ }
35
+ },
36
+ hasSuggestions: false
37
+ };
@@ -1,7 +1,7 @@
1
- import { useState } from 'react';
2
- import { withKnobs, text, boolean } from '@storybook/addon-knobs';
1
+ import { withKnobs } from '@storybook/addon-knobs';
3
2
 
4
3
  import {{COMPONENT_CLASS_NAME}} from './index.jsx';
4
+ import { stateProps, configProps } from './mock.stories';
5
5
 
6
6
  export default {
7
7
  title: '{{COMPONENT_CLASS_NAME}}',
@@ -10,30 +10,32 @@ export default {
10
10
  };
11
11
 
12
12
  export const base{{COMPONENT_CLASS_NAME}} = () => {
13
- const [value, setValue] = useState('test value');
14
13
 
15
14
  const props = {
15
+ value: configProps.value,
16
+ placeholder: configProps.placeholder,
17
+ label: configProps.label,
18
+ helperText: configProps.helperText,
19
+ testId: configProps.testId,
20
+ hasSuggestions: configProps.hasSuggestions,
21
+
16
22
  getPConnect: () => {
17
23
  return {
24
+ getStateProps: () => {
25
+ return stateProps;
26
+ },
18
27
  getActionsApi: () => {
19
28
  return {
20
- updateFieldValue: (propName, value) => {
21
- setValue(value);
22
- }
29
+ updateFieldValue: () => {},
30
+ triggerFieldChange: () => {}
23
31
  };
24
32
  },
25
- getStateProps: () => {
26
- return { value: '.name' };
27
- }
33
+ ignoreSuggestion: () => {},
34
+ acceptSuggestion: () => {},
35
+ setInheritedProps: () => {},
36
+ resolveConfigProps: () => {}
28
37
  };
29
- },
30
- value,
31
- placeholder: text('Placeholder', 'Test placeholder'),
32
- disabled: boolean('Disabled', false),
33
- readOnly: boolean('Disabled', false),
34
- required: boolean('Disabled', false),
35
- label: text('Label', 'Sample Label'),
36
- testId: text('Test id', 'text-12344566')
38
+ }
37
39
  };
38
40
 
39
41
  return (