@pega/cosmos-react-demos 4.0.0-dev.12.0 → 4.0.0-dev.12.1

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.
@@ -3,6 +3,7 @@ import MultiStepFormProps from '@pega/cosmos-react-core/lib/components/MultiStep
3
3
  declare const _default: Meta<import("@storybook/react").Args>;
4
4
  export default _default;
5
5
  interface MultiStepFormDemoProps {
6
+ heading?: MultiStepFormProps['heading'];
6
7
  stepIndicator?: MultiStepFormProps['stepIndicator'];
7
8
  }
8
9
  export declare const MultiStepFormDemo: Story<MultiStepFormDemoProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepForm.stories.d.ts","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,kBAEN,MAAM,0EAA0E,CAAC;;AAWlF,wBASU;AAEV,UAAU,sBAAsB;IAC9B,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACrD;AAuBD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAgU3D,CAAC"}
1
+ {"version":3,"file":"MultiStepForm.stories.d.ts","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,kBAEN,MAAM,0EAA0E,CAAC;;AAWlF,wBAWU;AAEV,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACrD;AAuBD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAgU3D,CAAC"}
@@ -5,9 +5,11 @@ export default {
5
5
  title: 'Core/MultiStepForm',
6
6
  component: MultiStepForm,
7
7
  args: {
8
+ heading: 'HR Screening',
8
9
  stepIndicator: 'horizontal'
9
10
  },
10
11
  argTypes: {
12
+ heading: { control: { type: 'text' } },
11
13
  stepIndicator: { options: ['horizontal', 'vertical', 'none'], control: { type: 'select' } }
12
14
  }
13
15
  };
@@ -238,7 +240,7 @@ export const MultiStepFormDemo = (args) => {
238
240
  </Button>
239
241
  </Flex>)}
240
242
 
241
- {!state.cancelled && !state.finished && (<MultiStepForm heading='HR Screening' steps={stepData} currentStepId={stepData[state.currentStepIndex].id} stepIndicator={args.stepIndicator}/>)}
243
+ {!state.cancelled && !state.finished && (<MultiStepForm heading={args.heading} steps={stepData} currentStepId={stepData[state.currentStepIndex].id} stepIndicator={args.stepIndicator}/>)}
242
244
  </>);
243
245
  };
244
246
  //# sourceMappingURL=MultiStepForm.stories.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepForm.stories.jsx","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiD,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAKpF,OAAO,EAGL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,eAAe;IACb,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,aAAa;IACxB,IAAI,EAAE;QACJ,aAAa,EAAE,YAAY;KAC5B;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC5F;CACM,CAAC;AA2BV,MAAM,CAAC,MAAM,iBAAiB,GAAkC,CAAC,IAA4B,EAAE,EAAE;IAC/F,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC;QACL,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE;YACR,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,aAAa;SAC9B;QACD,UAAU,EAAE,EAAE;KACf,CAAC,EACF,EAAE,CACH,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,CAAC;QACL,eAAe,EAAE;YACf,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;SAChD;QACD,eAAe,EAAE;YACf,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;SAChD;QACD,eAAe,EAAE;YACf,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;SAChD;QACD,mBAAmB,EAAE;YACnB,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;SAChD;QACD,UAAU,EAAE;YACV,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;SAChD;QACD,mBAAmB,EAAE;YACnB,OAAO,EAAE,yBAAyB;YAClC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;SAChD;KACF,CAAC,EACF,EAAE,CACH,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAa,GAAG,EAAE;QAC1C,OAAO;YACL;gBACE,WAAW;gBACX,UAAU;gBACV,cAAc;gBACd,gBAAgB;gBAChB,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,eAAe;aAChB;YACD,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;YACzC,CAAC,iBAAiB,CAAC;YACnB,CAAC,qBAAqB,EAAE,YAAY,EAAE,qBAAqB,EAAE,wBAAwB,CAAC;SACvF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,CAAC,KAAyB,EAAE,MAAqB,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE/B,QAAQ,IAAI,EAAE;YACZ,KAAK,SAAS,CAAC,CAAC;gBACd,OAAO,YAAY,CAAC;aACrB;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO;oBACL,GAAG,KAAK;oBACR,SAAS,EAAE,IAAI;iBAChB,CAAC;aACH;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO;oBACL,GAAG,KAAK;oBACR,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH;YACD,KAAK,SAAS,CAAC,CAAC;gBACd,OAAO;oBACL,GAAG,KAAK;oBACR,gBAAgB,EAAE,OAAO;oBACzB,UAAU,EAAE,EAAE;iBACf,CAAC;aACH;YACD,KAAK,eAAe,CAAC,CAAC;gBACpB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;gBACjC,MAAM,QAAQ,GAAG;oBACf,GAAG,KAAK,CAAC,QAAQ;iBAClB,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,GAAG,KAAK,CAAC,UAAU;iBACpB,CAAC;gBAEF,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBAExB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;oBACpF,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAErD,IAAI,KAAK,EAAE;wBACT,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;qBAC1B;yBAAM;wBACL,UAAU,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;qBACnD;iBACF;gBAED,OAAO;oBACL,GAAG,KAAK;oBACR,QAAQ;oBACR,UAAU;iBACX,CAAC;aACH;YACD,KAAK,mBAAmB,CAAC,CAAC;gBACxB,MAAM,SAAS,GACb,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC;oBACjD,CAAC,CAAC,KAAK,CAAC,gBAAgB;oBACxB,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBACjC,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC3C,IAAI,OAAO,GAAG,IAAI,CAAC;gBAEnB,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,EAAE;oBAC1C,IAAI,CAAC,MAAM;wBAAE,OAAO;oBAEpB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACrB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;4BAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;4BAErE,IAAI,KAAK,EAAE;gCACT,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;6BAC1B;iCAAM;gCACL,OAAO,GAAG,KAAK,CAAC;gCAChB,UAAU,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;6BACnD;yBACF;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC;gBAEF,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBAEtC,OAAO;oBACL,GAAG,KAAK;oBACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,gBAAgB,EACd,OAAO,IAAI,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC;wBACtD,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC;wBAC5B,CAAC,CAAC,KAAK,CAAC,gBAAgB;oBAC5B,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC;oBAClE,UAAU;iBACX,CAAC;aACH;YACD;gBACE,OAAO,KAAK,CAAC;SAChB;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,UAAU,CAClC,OAAO,EACP,YAAY,CACb,CAAC;IAEF,MAAM,QAAQ,GAAW,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,WAAW,GAAc,CAC7B,EACE;QAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CACnE;QAAA,CAAC,GAAG,CACF;UAAA,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAC7B,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAC,CAElF;;YACF,EAAE,MAAM,CAAC,CACV,CACD;UAAA,CAAC,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAChD,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAC/E;;YACF,EAAE,MAAM,CAAC,CACV,CACD;UAAA,CAAC,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAChD,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,OAAO,CAAC,SAAS,CACjB,OAAO,CAAC,CAAC,CAAC,CAAgC,EAAE,EAAE;oBAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAEF;;YACF,EAAE,MAAM,CAAC,CACV,CACH;QAAA,EAAE,GAAG,CACP;MAAA,GAAG,CACJ,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACxE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YAC7E,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG;YACZ;gBACE,EAAE,EAAE,mBAAmB;gBACvB,IAAI,EAAE,0CAA0C;gBAChD,WAAW,EACT,mGAAmG;oBACnG,iGAAiG;gBACnG,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CACjC,CAAC,MAAM,CACL,QAAQ,CAAC,CAAC;wBACR;4BACE,KAAK,EAAE,oCAAoC;4BAC3C,WAAW,EAAE,0CAA0C;yBACxD;qBACF,CAAC,CACF,OAAO,CAAC,QAAQ,EAChB,CACH,CAAC,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,CACP,CAAC,sBAAsB,CACrB,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzB,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAC7B,QAAQ,CAAC,CAAC,QAAQ,CAAC,EACnB,CACH;gBACD,OAAO,EAAE,WAAW;aACrB;YACD;gBACE,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,CACP,CAAC,oBAAoB,CACnB,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzB,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAC7B,QAAQ,CAAC,CAAC,QAAQ,CAAC,EACnB,CACH;gBACD,OAAO,EAAE,WAAW;aACrB;YACD;gBACE,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EACT,oFAAoF;gBACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CACtC,CAAC,MAAM,CACL,QAAQ,CAAC,CAAC;wBACR;4BACE,KAAK,EAAE,oCAAoC;4BAC3C,WAAW,EAAE,0CAA0C;yBACxD;qBACF,CAAC,CACF,OAAO,CAAC,QAAQ,EAChB,CACH,CAAC,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,CACP,CAAC,qBAAqB,CACpB,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzB,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAC7B,QAAQ,CAAC,CAAC,QAAQ,CAAC,EACnB,CACH;gBACD,OAAO,EAAE,WAAW;aACrB;SACF,CAAC;QAEF,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;gBACjB,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,4DAA4D;gBACzE,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,CACP,CAAC,mBAAmB,CAClB,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzB,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAC7B,QAAQ,CAAC,CAAC,QAAQ,CAAC,EACnB,CACH;gBACD,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;SACJ;QAED,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE/D,OAAO,CACL,EACE;MAAA,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CACtC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAChD;UAAA,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAClF;UAAA,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,GAAG,EAAE;gBACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAEF;;UACF,EAAE,MAAM,CACV;QAAA,EAAE,IAAI,CAAC,CACR,CAED;;MAAA,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CACtC,CAAC,aAAa,CACZ,OAAO,CAAC,cAAc,CACtB,KAAK,CAAC,CAAC,QAAQ,CAAC,CAChB,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CACnD,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAClC,CACH,CACH;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { type ReactNode, type Reducer, type MouseEvent, useReducer, useMemo } from 'react';\n\nimport { Button, Banner, Flex, MultiStepForm, Text } from '@pega/cosmos-react-core';\nimport MultiStepFormProps, {\n Step\n} from '@pega/cosmos-react-core/lib/components/MultiStepForm/MultiStepForm.types';\n\nimport {\n type DemoFormDataType,\n type DemoFormErrorsType,\n ApplicantDetailsFields,\n InterviewNotesFields,\n RecommendationsFields,\n NextInterviewFields\n} from './MultiStepForm.mocks';\n\nexport default {\n title: 'Core/MultiStepForm',\n component: MultiStepForm,\n args: {\n stepIndicator: 'horizontal'\n },\n argTypes: {\n stepIndicator: { options: ['horizontal', 'vertical', 'none'], control: { type: 'select' } }\n }\n} as Meta;\n\ninterface MultiStepFormDemoProps {\n stepIndicator?: MultiStepFormProps['stepIndicator'];\n}\n\ninterface DemoMultiStepState {\n formData: DemoFormDataType;\n formErrors: DemoFormErrorsType;\n currentStepIndex: number;\n numSteps: number;\n cancelled: boolean;\n finished: boolean;\n}\n\ninterface ReducerAction {\n type: string;\n payload?: any;\n}\n\ninterface FormValidations {\n [field: string]: {\n message?: string;\n validator: (value: any) => boolean;\n };\n}\n\nexport const MultiStepFormDemo: Story<MultiStepFormDemoProps> = (args: MultiStepFormDemoProps) => {\n const initialState = useMemo<DemoMultiStepState>(\n () => ({\n currentStepIndex: 0,\n cancelled: false,\n finished: false,\n numSteps: 3,\n formData: {\n firstName: 'Marcus',\n lastName: 'Kennedy',\n currentTitle: 'Data Analyst',\n currentCompany: 'Hello Fresh'\n },\n formErrors: {}\n }),\n []\n );\n\n const formValidation = useMemo<FormValidations>(\n () => ({\n salaryRequested: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n experienceLevel: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n nextInterviewer: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n salaryRequestReview: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n cultureFit: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n finalRecommendation: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n }\n }),\n []\n );\n\n const stepFields = useMemo<string[][]>(() => {\n return [\n [\n 'firstName',\n 'lastName',\n 'currentTitle',\n 'currentCompany',\n 'salaryRequested',\n 'experienceLevel',\n 'priorityOne',\n 'priorityTwo',\n 'priorityThree'\n ],\n ['interviewNotes', 'additionalInterview'],\n ['nextInterviewer'],\n ['salaryRequestReview', 'cultureFit', 'finalRecommendation', 'recommendationComments']\n ];\n }, []);\n\n const reducer = (state: DemoMultiStepState, action: ReducerAction) => {\n const type = action.type;\n const payload = action.payload;\n\n switch (type) {\n case 'restart': {\n return initialState;\n }\n case 'cancel': {\n return {\n ...state,\n cancelled: true\n };\n }\n case 'finish': {\n return {\n ...state,\n finished: true\n };\n }\n case 'setStep': {\n return {\n ...state,\n currentStepIndex: payload,\n formErrors: {}\n };\n }\n case 'setFieldValue': {\n const { field, value } = payload;\n const formData = {\n ...state.formData\n };\n const formErrors = {\n ...state.formErrors\n };\n\n formData[field] = value;\n\n if (formErrors[field] && Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(value);\n\n if (valid) {\n delete formErrors[field];\n } else {\n formErrors[field] = formValidation[field].message;\n }\n }\n\n return {\n ...state,\n formData,\n formErrors\n };\n }\n case 'submitCurrentStep': {\n const stepIndex =\n state.numSteps === 4 || state.currentStepIndex <= 1\n ? state.currentStepIndex\n : state.currentStepIndex + 1;\n const formErrors = { ...state.formErrors };\n let isValid = true;\n\n const validateFields = (fields: string[]) => {\n if (!fields) return;\n\n fields.forEach(field => {\n if (Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(state.formData[field]);\n\n if (valid) {\n delete formErrors[field];\n } else {\n isValid = false;\n formErrors[field] = formValidation[field].message;\n }\n }\n });\n };\n\n validateFields(stepFields[stepIndex]);\n\n return {\n ...state,\n numSteps: state.formData.additionalInterview ? 4 : 3,\n currentStepIndex:\n isValid && state.currentStepIndex !== state.numSteps - 1\n ? state.currentStepIndex + 1\n : state.currentStepIndex,\n finished: isValid && state.currentStepIndex === state.numSteps - 1,\n formErrors\n };\n }\n default:\n return state;\n }\n };\n\n const [state, dispatch] = useReducer<Reducer<DemoMultiStepState, ReducerAction>>(\n reducer,\n initialState\n );\n\n const stepData: Step[] = useMemo(() => {\n const stepActions: ReactNode = (\n <>\n <Button onClick={() => dispatch({ type: 'cancel' })}>Cancel</Button>\n <div>\n {state.currentStepIndex > 0 && (\n <Button\n onClick={() => dispatch({ type: 'setStep', payload: state.currentStepIndex - 1 })}\n >\n Previous\n </Button>\n )}\n {state.currentStepIndex !== state.numSteps - 1 && (\n <Button variant='primary' onClick={() => dispatch({ type: 'submitCurrentStep' })}>\n Next\n </Button>\n )}\n {state.currentStepIndex === state.numSteps - 1 && (\n <Button\n type='submit'\n variant='primary'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n dispatch({ type: 'submitCurrentStep' });\n }}\n >\n Finish\n </Button>\n )}\n </div>\n </>\n );\n\n const applicantErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[0].includes(errorField);\n });\n const recommendationErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[3].includes(errorField);\n });\n\n const steps = [\n {\n id: 'applicant_details',\n name: 'Applicant details - personal information',\n description:\n 'This applicant has passed initial screening and has been cleared to have an interview scheduled. ' +\n 'Please confirm their details and have a discussion regarding the open position and the company.',\n banners: applicantErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <ApplicantDetailsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'interview_notes',\n name: 'Interview notes',\n content: (\n <InterviewNotesFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'recommendations',\n name: 'Final recommendations',\n description:\n 'Based on your screening call with the applicant please submit your recomendations.',\n banners: recommendationErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <RecommendationsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n }\n ];\n\n if (state.numSteps === 4) {\n steps.splice(2, 0, {\n id: 'next_interview',\n name: 'Next interview',\n description: 'Please select an individual to conduct the next interview.',\n banners: undefined,\n content: (\n <NextInterviewFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n });\n }\n\n return steps;\n }, [state.formData, state.formErrors, state.currentStepIndex]);\n\n return (\n <>\n {(state.cancelled || state.finished) && (\n <Flex container={{ gap: 2, alignItems: 'center' }}>\n <Text variant='h1'>HR screening {state.cancelled ? 'cancelled' : 'finished'}</Text>\n <Button\n onClick={() => {\n dispatch({ type: 'restart' });\n }}\n >\n Restart\n </Button>\n </Flex>\n )}\n\n {!state.cancelled && !state.finished && (\n <MultiStepForm\n heading='HR Screening'\n steps={stepData}\n currentStepId={stepData[state.currentStepIndex].id}\n stepIndicator={args.stepIndicator}\n />\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"MultiStepForm.stories.jsx","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { type ReactNode, type Reducer, type MouseEvent, useReducer, useMemo } from 'react';\n\nimport { Button, Banner, Flex, MultiStepForm, Text } from '@pega/cosmos-react-core';\nimport MultiStepFormProps, {\n Step\n} from '@pega/cosmos-react-core/lib/components/MultiStepForm/MultiStepForm.types';\n\nimport {\n type DemoFormDataType,\n type DemoFormErrorsType,\n ApplicantDetailsFields,\n InterviewNotesFields,\n RecommendationsFields,\n NextInterviewFields\n} from './MultiStepForm.mocks';\n\nexport default {\n title: 'Core/MultiStepForm',\n component: MultiStepForm,\n args: {\n heading: 'HR Screening',\n stepIndicator: 'horizontal'\n },\n argTypes: {\n heading: { control: { type: 'text' } },\n stepIndicator: { options: ['horizontal', 'vertical', 'none'], control: { type: 'select' } }\n }\n} as Meta;\n\ninterface MultiStepFormDemoProps {\n heading?: MultiStepFormProps['heading'];\n stepIndicator?: MultiStepFormProps['stepIndicator'];\n}\n\ninterface DemoMultiStepState {\n formData: DemoFormDataType;\n formErrors: DemoFormErrorsType;\n currentStepIndex: number;\n numSteps: number;\n cancelled: boolean;\n finished: boolean;\n}\n\ninterface ReducerAction {\n type: string;\n payload?: any;\n}\n\ninterface FormValidations {\n [field: string]: {\n message?: string;\n validator: (value: any) => boolean;\n };\n}\n\nexport const MultiStepFormDemo: Story<MultiStepFormDemoProps> = (args: MultiStepFormDemoProps) => {\n const initialState = useMemo<DemoMultiStepState>(\n () => ({\n currentStepIndex: 0,\n cancelled: false,\n finished: false,\n numSteps: 3,\n formData: {\n firstName: 'Marcus',\n lastName: 'Kennedy',\n currentTitle: 'Data Analyst',\n currentCompany: 'Hello Fresh'\n },\n formErrors: {}\n }),\n []\n );\n\n const formValidation = useMemo<FormValidations>(\n () => ({\n salaryRequested: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n experienceLevel: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n nextInterviewer: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n salaryRequestReview: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n cultureFit: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n finalRecommendation: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n }\n }),\n []\n );\n\n const stepFields = useMemo<string[][]>(() => {\n return [\n [\n 'firstName',\n 'lastName',\n 'currentTitle',\n 'currentCompany',\n 'salaryRequested',\n 'experienceLevel',\n 'priorityOne',\n 'priorityTwo',\n 'priorityThree'\n ],\n ['interviewNotes', 'additionalInterview'],\n ['nextInterviewer'],\n ['salaryRequestReview', 'cultureFit', 'finalRecommendation', 'recommendationComments']\n ];\n }, []);\n\n const reducer = (state: DemoMultiStepState, action: ReducerAction) => {\n const type = action.type;\n const payload = action.payload;\n\n switch (type) {\n case 'restart': {\n return initialState;\n }\n case 'cancel': {\n return {\n ...state,\n cancelled: true\n };\n }\n case 'finish': {\n return {\n ...state,\n finished: true\n };\n }\n case 'setStep': {\n return {\n ...state,\n currentStepIndex: payload,\n formErrors: {}\n };\n }\n case 'setFieldValue': {\n const { field, value } = payload;\n const formData = {\n ...state.formData\n };\n const formErrors = {\n ...state.formErrors\n };\n\n formData[field] = value;\n\n if (formErrors[field] && Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(value);\n\n if (valid) {\n delete formErrors[field];\n } else {\n formErrors[field] = formValidation[field].message;\n }\n }\n\n return {\n ...state,\n formData,\n formErrors\n };\n }\n case 'submitCurrentStep': {\n const stepIndex =\n state.numSteps === 4 || state.currentStepIndex <= 1\n ? state.currentStepIndex\n : state.currentStepIndex + 1;\n const formErrors = { ...state.formErrors };\n let isValid = true;\n\n const validateFields = (fields: string[]) => {\n if (!fields) return;\n\n fields.forEach(field => {\n if (Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(state.formData[field]);\n\n if (valid) {\n delete formErrors[field];\n } else {\n isValid = false;\n formErrors[field] = formValidation[field].message;\n }\n }\n });\n };\n\n validateFields(stepFields[stepIndex]);\n\n return {\n ...state,\n numSteps: state.formData.additionalInterview ? 4 : 3,\n currentStepIndex:\n isValid && state.currentStepIndex !== state.numSteps - 1\n ? state.currentStepIndex + 1\n : state.currentStepIndex,\n finished: isValid && state.currentStepIndex === state.numSteps - 1,\n formErrors\n };\n }\n default:\n return state;\n }\n };\n\n const [state, dispatch] = useReducer<Reducer<DemoMultiStepState, ReducerAction>>(\n reducer,\n initialState\n );\n\n const stepData: Step[] = useMemo(() => {\n const stepActions: ReactNode = (\n <>\n <Button onClick={() => dispatch({ type: 'cancel' })}>Cancel</Button>\n <div>\n {state.currentStepIndex > 0 && (\n <Button\n onClick={() => dispatch({ type: 'setStep', payload: state.currentStepIndex - 1 })}\n >\n Previous\n </Button>\n )}\n {state.currentStepIndex !== state.numSteps - 1 && (\n <Button variant='primary' onClick={() => dispatch({ type: 'submitCurrentStep' })}>\n Next\n </Button>\n )}\n {state.currentStepIndex === state.numSteps - 1 && (\n <Button\n type='submit'\n variant='primary'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n dispatch({ type: 'submitCurrentStep' });\n }}\n >\n Finish\n </Button>\n )}\n </div>\n </>\n );\n\n const applicantErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[0].includes(errorField);\n });\n const recommendationErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[3].includes(errorField);\n });\n\n const steps = [\n {\n id: 'applicant_details',\n name: 'Applicant details - personal information',\n description:\n 'This applicant has passed initial screening and has been cleared to have an interview scheduled. ' +\n 'Please confirm their details and have a discussion regarding the open position and the company.',\n banners: applicantErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <ApplicantDetailsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'interview_notes',\n name: 'Interview notes',\n content: (\n <InterviewNotesFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'recommendations',\n name: 'Final recommendations',\n description:\n 'Based on your screening call with the applicant please submit your recomendations.',\n banners: recommendationErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <RecommendationsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n }\n ];\n\n if (state.numSteps === 4) {\n steps.splice(2, 0, {\n id: 'next_interview',\n name: 'Next interview',\n description: 'Please select an individual to conduct the next interview.',\n banners: undefined,\n content: (\n <NextInterviewFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n });\n }\n\n return steps;\n }, [state.formData, state.formErrors, state.currentStepIndex]);\n\n return (\n <>\n {(state.cancelled || state.finished) && (\n <Flex container={{ gap: 2, alignItems: 'center' }}>\n <Text variant='h1'>HR screening {state.cancelled ? 'cancelled' : 'finished'}</Text>\n <Button\n onClick={() => {\n dispatch({ type: 'restart' });\n }}\n >\n Restart\n </Button>\n </Flex>\n )}\n\n {!state.cancelled && !state.finished && (\n <MultiStepForm\n heading={args.heading}\n steps={stepData}\n currentStepId={stepData[state.currentStepIndex].id}\n stepIndicator={args.stepIndicator}\n />\n )}\n </>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EA4BL,UAAU,EACX,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAGL,eAAe,EAGf,YAAY,EAOZ,kBAAkB,EAMlB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;;AAenC,wBAGU;AAGV,UAAU,mBACR,SAAQ,UAAU,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CAAG;AAE7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAiCrD,CAAC;AAmBF,UAAU,gBAAiB,SAAQ,UAAU,CAAC,YAAY,EAAE,UAAU,GAAG,eAAe,CAAC;IACvF,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC7C,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAyE/C,CAAC;AAyCF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,kBAAkB,CAEvD,CAAC;AAgBF,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAS3D,CAAC;AAaF,eAAO,MAAM,wBAAwB,EAAE,KAUtC,CAAC;AAKF,UAAU,qBAAqB;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,CAWzD,CAAC;AAYF,UAAU,iBAAiB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAqhBjD,CAAC"}
1
+ {"version":3,"file":"Chat.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EA4BL,UAAU,EACX,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAGL,eAAe,EAGf,YAAY,EAOZ,kBAAkB,EAMlB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;;AAenC,wBAGU;AAGV,UAAU,mBACR,SAAQ,UAAU,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CAAG;AAE7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAiCrD,CAAC;AAmBF,UAAU,gBAAiB,SAAQ,UAAU,CAAC,YAAY,EAAE,UAAU,GAAG,eAAe,CAAC;IACvF,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC7C,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAyE/C,CAAC;AAyCF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,kBAAkB,CAEvD,CAAC;AAgBF,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAS3D,CAAC;AAaF,eAAO,MAAM,wBAAwB,EAAE,KAUtC,CAAC;AAKF,UAAU,qBAAqB;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,CAWzD,CAAC;AAYF,UAAU,iBAAiB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CA4gBjD,CAAC"}
@@ -360,15 +360,8 @@ export const StandardChat = (args) => {
360
360
  }
361
361
  ],
362
362
  onScrollToButtonClick: () => {
363
- const newRandomMessageId = Math.random().toString(36).substr(2, 9);
364
- setChatMessages(prevChatMessages => prevChatMessages.map(message => {
365
- if (message.id === NewMessageSeparatorId) {
366
- message.id = newRandomMessageId;
367
- }
368
- return message;
369
- }));
370
363
  const timeOutId = window.setTimeout(() => {
371
- setChatMessages(prevChatMessages => prevChatMessages.filter(({ id }) => id !== newRandomMessageId));
364
+ setChatMessages(prevChatMessages => prevChatMessages.filter(({ id }) => id !== NewMessageSeparatorId));
372
365
  timers.current = timers.current.filter(id => id !== timeOutId);
373
366
  }, 5000);
374
367
  timers.current.push(timeOutId);
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.stories.jsx","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo, SyntheticEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport {\n Button,\n Icon,\n registerIcon,\n Text,\n MenuButton,\n Flex,\n Popover,\n Link,\n EmojiContext,\n BannerProps,\n createUID,\n useOuterEvent,\n Select,\n Option,\n useElement,\n useModalManager,\n useModalContext,\n Modal,\n SummaryItem,\n useToaster,\n SearchInput,\n menuHelpers,\n MenuItemProps,\n VisuallyHiddenText,\n Menu,\n useEscape,\n FieldValueListItemProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as replyIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply.icon';\nimport * as replyAllIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply-all.icon';\nimport * as forwardIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/forward.icon';\nimport {\n Chat,\n ChatHeader,\n ChatHeaderProps,\n ChatComposer,\n Message,\n MessageProps,\n NewMessageSeparatorId,\n AttachmentItemProps,\n ChatComposerImperativeHandleProps,\n SuggestedReply,\n SuggestedReplyPicker,\n SystemMessage,\n SystemMessageProps,\n TypeIndicator,\n ChatComposerProps,\n SuggestedReplyPickerProps,\n ChatBodyProps,\n ChatBodyHandleValue,\n MessageHeaderProps\n} from '@pega/cosmos-react-social';\n\nimport {\n ChatMockData,\n phrasesDisplayNames,\n phrasesMessages,\n pagePushList,\n contextItems as contextItemsMock,\n BotConversation,\n ClaimsAgentConversation,\n LiveChatConversation\n} from './Chat.mocks';\n\nregisterIcon(forwardIcon, replyIcon, replyAllIcon, arrowMicroDownIcon);\n\nexport default {\n title: 'Social/Chat',\n component: Chat\n} as Meta;\n\n/** *********************** ChatHeader component - START *********************** */\ninterface ChatHeaderDemoProps\n extends OmitStrict<ChatHeaderProps, 'actions' | 'sentiment' | 'context'> {}\n\nexport const ChatHeaderDemo: Story<ChatHeaderDemoProps> = (args: ChatHeaderDemoProps) => {\n const { title, icon, customer, authenticated } = args;\n\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [loading, setLoading] = useState(false);\n\n return (\n <ChatHeader\n title={title}\n icon={icon || 'chat'}\n actions={[\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]}\n sentiment={{\n variant: 'positive',\n 'aria-label': 'Sentiment is positive'\n }}\n customer={customer}\n authenticated={authenticated}\n context={{\n items: contextItems,\n onClick: () => {\n setLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setLoading(false);\n }, 1000);\n },\n loading\n }}\n />\n );\n};\n\nChatHeaderDemo.args = {\n title: 'Live chat',\n icon: 'chat',\n customer: 'Ginger Ventura',\n authenticated: true\n};\n\nChatHeaderDemo.argTypes = {\n title: { control: { type: 'text' } },\n icon: { control: { type: 'text' }, type: { name: 'string', required: false } },\n customer: { control: { type: 'text' } },\n authenticated: { control: { type: 'boolean' }, type: { name: 'string', required: false } }\n};\n/** ***************************** ChatHeader component - END ******************* */\n\n/** ***************************** Message component - START ********************** */\n\ninterface MessageDemoProps extends OmitStrict<MessageProps, 'senderId' | 'messageHeader'> {\n showTimestamp: boolean;\n showStatus: boolean;\n showHeader: boolean;\n headerContent: MessageHeaderProps['content'];\n headerMeta: MessageHeaderProps['meta'];\n showAvatarImage: boolean;\n showAttachments: boolean;\n showMediaPageLinks: boolean;\n}\n\nexport const MessageDemo: Story<MessageDemoProps> = (args: MessageDemoProps) => {\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const attachments = [\n {\n id: '2499167340',\n name: 'Location',\n icon: 'document',\n meta: 'PNG 0.1 MB',\n thumbnail:\n 'https://pegasystems.github.io/uplus-wss/health_provider/img/secondary-options.jpg',\n actions\n },\n {\n id: '2499167341',\n name: 'FAQ with detailed terms and conditions of the policy',\n icon: 'document-pdf',\n meta: 'PDF 0.7 MB',\n actions\n }\n ];\n const mediaPageLinks = [\n {\n id: '2499167349',\n href: 'https://collaborate.pega.com/',\n thumbnail:\n 'https://community.pega.com/sites/default/files/styles/480/public/media/images/2020-02/AskExpert.png?itok=ef2MVbOV',\n title: 'Ask the expert'\n }\n ];\n return (\n <>\n <Message\n attachments={args.showAttachments ? attachments : undefined}\n mediaPageLinks={args.showMediaPageLinks ? mediaPageLinks : undefined}\n avatarInfo={\n args.direction === 'in' && args.senderType !== 'bot'\n ? {\n name: 'John Brown',\n imageSrc: args.showAvatarImage\n ? 'https://pegasystems.github.io/uplus-wss/insurance/img/option-1.jpg'\n : undefined\n }\n : undefined\n }\n timestamp={args.showTimestamp ? args.timestamp : undefined}\n status={args.showStatus ? args.status : undefined}\n message={args.message}\n direction={args.direction}\n senderType={args.senderType}\n senderId={createUID()}\n agentVariant={args.agentVariant}\n messageHeader={\n args.showHeader ? { content: args.headerContent, meta: args.headerMeta } : undefined\n }\n />\n </>\n );\n};\n\nMessageDemo.args = {\n direction: 'in',\n senderType: 'customer',\n agentVariant: 0,\n message: 'Hi, Welcome to u-plus. How can I help you ?',\n showStatus: true,\n status: 'delivered',\n showTimestamp: true,\n timestamp: '1:44 PM',\n showHeader: false,\n headerContent: 'Public Reply',\n headerMeta: 'I-12345',\n showAvatarImage: false,\n showAttachments: false,\n showMediaPageLinks: false\n};\n\nMessageDemo.argTypes = {\n direction: { options: ['in', 'out'], control: { type: 'inline-radio' } },\n senderType: { options: ['agent', 'customer', 'bot'], control: { type: 'inline-radio' } },\n agentVariant: { type: 'number' },\n message: { type: 'string' },\n showTimestamp: { type: 'boolean' },\n timestamp: { control: 'text' },\n showStatus: { type: 'boolean' },\n status: {\n options: ['delivered', 'opened', 'undeliverable'],\n control: { type: 'inline-radio' }\n },\n showHeader: { control: 'boolean' },\n headerContent: { control: 'text' },\n headerMeta: { control: 'text' },\n showAvatarImage: { control: 'boolean' },\n showAttachments: { control: 'boolean' },\n showMediaPageLinks: { control: 'boolean' }\n};\n/** ***************************** Message component - END *********************** */\n\n/** **************************** SystemMessage component - START ***************** */\nexport const SystemMessageDemo: Story<SystemMessageProps> = (args: SystemMessageProps) => (\n <SystemMessage message={args.message} timestamp={args.timestamp} variant={args.variant} />\n);\n\nSystemMessageDemo.args = {\n message: 'John Brown has joined',\n variant: 'secondary',\n timestamp: '10:00 AM'\n};\n\nSystemMessageDemo.argTypes = {\n message: { control: { type: 'text' } },\n variant: { options: ['primary', 'secondary'], control: { type: 'select' } },\n timestamp: { control: { type: 'text' } }\n};\n/** ***************************** SystemMessage component - END ******************** */\n\n/** ***************************** TypeIndicator component - START ****************** */\ninterface TypeIndicatorDemoProps {\n message?: string;\n}\nexport const TypeIndicatorDemo: Story<TypeIndicatorDemoProps> = (args: TypeIndicatorDemoProps) => {\n return (\n <TypeIndicator\n avatarInfo={{ name: 'John Brown' }}\n message={args.message}\n senderId='johnBrown'\n senderType='agent'\n />\n );\n};\n\nTypeIndicatorDemo.args = {\n message: ''\n};\n\nTypeIndicatorDemo.argTypes = {\n message: { control: { type: 'text' } }\n};\n/** *************************** TypeIndicator component - END *********************** */\n\n/** *************************** SuggestedReplyPicker component - START ****************** */\n\nexport const SuggestedReplyPickerDemo: Story = () => {\n return (\n <SuggestedReplyPicker\n replies={ChatMockData.suggestedReplies}\n onSelect={suggestedReply => {\n action(`Suggested reply picked ${suggestedReply.message}`)();\n }}\n onDismiss={action('Suggested reply dismissed')}\n />\n );\n};\n\n/** *************************** SuggestedReplyPicker component - END ****************** */\n\n/** ******************************* ChatComposer component - START ************************ */\ninterface ChatComposerDemoProps {\n maxAttachments?: number;\n}\n\nexport const ChatComposerDemo: Story<ChatComposerDemoProps> = (args: ChatComposerDemoProps) => (\n <ChatComposer\n maxAttachments={args.maxAttachments}\n attachments={ChatMockData.defaultAttachments}\n maxLength={256}\n placeholder='Type here to send message'\n onSend={() => {}}\n >\n <MenuButton text='Phrases' menu={{ items: [] }} />\n <MenuButton text='Page Push' menu={{ items: [] }} />\n </ChatComposer>\n);\n\nChatComposerDemo.args = {\n maxAttachments: 2\n};\n\nChatComposerDemo.argTypes = {\n maxAttachments: { control: { type: 'number' } }\n};\n/** *********************************** ChatComposer component - END ********************** */\n\n/** *********************************** Standard Chat component - START ******************** */\ninterface StandardChatProps {\n maxAttachments?: number;\n chatWidth?: string;\n chatHeight?: string;\n selectedChannel?: string;\n showChatBanner?: boolean;\n disableChat?: boolean;\n simulateConversation?: boolean;\n message?: string;\n placeholder?: string;\n defaultMessage?: string;\n maxLength?: number;\n loading?: boolean;\n}\n\nexport const StandardChat: Story<StandardChatProps> = (args: StandardChatProps) => {\n const ChatMockDataClone: any = useMemo(() => {\n return JSON.parse(JSON.stringify(ChatMockData));\n }, [ChatMockData]);\n\n const Channels: {\n label: string;\n options: any;\n } = {\n label: 'Channel',\n options: {\n LiveChat: {\n title: 'Live chat',\n icon: 'chat'\n },\n Twitter: {\n title: 'Twitter chat',\n icon: 'twitter'\n },\n Facebook: {\n title: 'Facebook messenger',\n icon: 'facebook'\n }\n }\n };\n\n const {\n chatMessages: mockChatMessagesJson,\n defaultAttachments,\n suggestedReplies\n }: {\n participants: any;\n chatMessages: any[];\n defaultAttachments: any[];\n suggestedReplies: SuggestedReply[];\n } = ChatMockDataClone;\n\n const { create } = useModalManager();\n\n const MyModal = () => {\n const { dismiss } = useModalContext();\n const { push } = useToaster();\n\n return (\n <Modal\n heading='Associate with case'\n actions={\n <>\n <Button\n onClick={() => {\n dismiss();\n push({ content: 'Cancelled' });\n }}\n >\n Cancel\n </Button>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n push({ content: 'Successfully Submitted!!' });\n }}\n >\n Submit\n </Button>\n </>\n }\n center\n >\n <Flex container={{ gap: 2, direction: 'column' }}>\n <SummaryItem\n primary={<Text variant='secondary'>Security policy</Text>}\n secondary={<Text variant='secondary'>PNG - 6.1MB</Text>}\n visual={<Icon name='document-doc' />}\n />\n <Select label='Select a service case' style={{ width: '15rem' }}>\n <Option value=''>Select…</Option>\n <Option value='Make payment' selected>\n Make payment\n </Option>\n <Option value='Facilities'>Facilities</Option>\n </Select>\n </Flex>\n </Modal>\n );\n };\n\n const onAssociateWithCase = () => {\n create(MyModal);\n };\n\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n onAssociateWithCase();\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const mockChatMessages = useMemo(() => {\n return [\n ...mockChatMessagesJson.map(message => {\n const { messagePrivacy, ...restMessageData } = message;\n if (messagePrivacy) {\n restMessageData.messageHeader = {\n content: <span>{messagePrivacy}</span>,\n meta: <Link href='/'>I-12345</Link>\n };\n }\n if (restMessageData.attachments) {\n restMessageData.attachments = restMessageData.attachments.map(\n (item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n }\n );\n }\n return restMessageData;\n })\n ];\n }, []);\n\n const conversationRef = useRef<ChatBodyHandleValue>(null);\n const timers = useRef<number[]>([]);\n\n useEffect(() => {\n return () => {\n timers.current.forEach(clearTimeout);\n };\n }, []);\n\n const [showSuggestedReplies, setShowSuggestedReplies] = useState(true);\n const [attachments, setAttachments] = useState<AttachmentItemProps[]>(defaultAttachments);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n const [chatMessages, setChatMessages] = useState<any[]>(\n LiveChatConversation.map(message => {\n if (message.type === 'message' && message.attachments) {\n message.attachments = message.attachments.map((item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n });\n }\n return message;\n })\n );\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [contextLoading, setContextLoading] = useState(false);\n\n const onDeleteAttachment = useCallback(\n (name: string) => {\n setAttachments(prevAttachments => prevAttachments.filter(item => item.name !== name));\n },\n [setAttachments]\n );\n\n useEffect(() => {\n setAttachments(\n defaultAttachments.map((item: any) => {\n return {\n ...item,\n onDelete: onDeleteAttachment\n };\n })\n );\n }, [defaultAttachments]);\n\n const appendMessage = (message: any) => {\n const incrementUnreadMessageCount = conversationRef.current?.isScrolledToLatest();\n setChatMessages(prevChatMessages => {\n const newMockMessage: any = {\n ...message\n };\n newMockMessage.id = `m-${message.id ? message.id : prevChatMessages.length}`;\n if (\n !incrementUnreadMessageCount &&\n prevChatMessages.filter(({ id }) => id === NewMessageSeparatorId).length === 0\n ) {\n return [\n ...prevChatMessages,\n {\n id: NewMessageSeparatorId,\n type: 'system',\n message: 'New messages',\n variant: 'primary'\n },\n newMockMessage\n ];\n }\n return [...prevChatMessages, newMockMessage];\n });\n if (!incrementUnreadMessageCount) {\n setUnreadMessageCount(prevCount => prevCount + 1);\n }\n };\n\n useEffect(() => {\n if (args.simulateConversation) {\n const timeOutId = setTimeout(() => {\n if (mockChatMessages.length) {\n appendMessage(mockChatMessages.shift());\n }\n }, 1500);\n return () => {\n clearTimeout(timeOutId);\n };\n }\n }, [chatMessages, args.simulateConversation]);\n\n const chatBanner: BannerProps = {\n messages: ['This is a public interaction and any responses will be public and visible'],\n variant: 'warning'\n };\n\n const bodyProps: ChatBodyProps = {\n unreadMessageCount,\n handle: conversationRef,\n transcripts: [\n { id: createUID(), messages: BotConversation },\n { id: createUID(), messages: ClaimsAgentConversation }\n ],\n liveChat: [\n ...chatMessages,\n {\n id: 'typingMessage',\n type: 'typing',\n avatarInfo: {\n name: 'Ginger Ventura'\n },\n message: args.message,\n senderId: 'gingerVentura',\n senderType: 'customer'\n }\n ],\n onScrollToButtonClick: () => {\n const newRandomMessageId = Math.random().toString(36).substr(2, 9);\n setChatMessages(prevChatMessages =>\n prevChatMessages.map(message => {\n if (message.id === NewMessageSeparatorId) {\n message.id = newRandomMessageId;\n }\n return message;\n })\n );\n const timeOutId: number = window.setTimeout(() => {\n setChatMessages(prevChatMessages =>\n prevChatMessages.filter(({ id }) => id !== newRandomMessageId)\n );\n timers.current = timers.current.filter(id => id !== timeOutId);\n }, 5000);\n timers.current.push(timeOutId);\n setUnreadMessageCount(0);\n },\n loadMore: action('Load more'),\n offset: 5,\n loading: args.loading\n };\n\n const chatComposerImperativeHandleRef = useRef<ChatComposerImperativeHandleProps>(null);\n\n const [mountPopover, setMountPopover] = useState(false);\n const specialKeysConfig = {\n keys: ['//'],\n onSpecialKey: (e: SyntheticEvent<HTMLTextAreaElement>, key: string) => {\n action(`Event is ${e}`)();\n action(`Typed special key is ${key}`)();\n if (chatComposerImperativeHandleRef.current) {\n setMountPopover(!mountPopover);\n }\n }\n };\n\n const insertPhrasesMessage = (message: string) => {\n if (chatComposerImperativeHandleRef.current) {\n chatComposerImperativeHandleRef.current.appendToMessage(message, 'specialKey');\n setMountPopover(false);\n }\n };\n\n useOuterEvent(\n 'mousedown',\n [chatComposerImperativeHandleRef?.current?.chatComposerRef?.current as Element],\n () => {\n setMountPopover(false);\n }\n );\n\n const [search, setSearch] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(escapedSearch);\n }, [search]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(phrasesDisplayNames).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : phrasesDisplayNames,\n item => {\n return {\n ...item\n };\n }\n );\n }, [search, phrasesDisplayNames, searchRegex]);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n const menuID = createUID();\n const menuListID = `${menuID}--list`;\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], () => {\n setIsOpen(false);\n setSearch('');\n });\n\n useEscape(() => {\n setIsOpen(false);\n });\n\n const pagePushItemsRender = useMemo(() => {\n return pagePushList.map(item => {\n return { id: item.id, primary: item.message };\n });\n }, [pagePushList]);\n\n const composerChildren = (\n <>\n <Button\n ref={setButtonEl}\n onClick={() => setIsOpen(cur => !cur)}\n variant='secondary'\n disabled={args.disableChat}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text>Phrases</Text>\n <Icon name='arrow-micro-down' />\n </Flex>\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n id={menuID}\n listId={menuListID}\n mode='action'\n variant='flyout'\n items={itemsToRender}\n role='listbox'\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n setIsOpen(false);\n setSearch('');\n }}\n accent={search ? searchRegex : undefined}\n focusControlEl={searchEleRef.current || undefined}\n footer={\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n searchInputAriaLabel='Start typing to search.'\n />\n }\n />\n </Popover>\n\n <MenuButton\n text='Page push'\n disabled={args.disableChat}\n menu={{\n id: menuID,\n listId: menuListID,\n mode: 'action',\n variant: 'flyout',\n items: pagePushItemsRender,\n role: 'listbox',\n onItemClick: id => {\n setAnnouncement('Link inserted');\n setChatMessages(prevChatMessages => [\n ...prevChatMessages,\n pagePushList.filter(item => item.id === id)[0]\n ]);\n }\n }}\n />\n <Popover\n show={mountPopover}\n target={chatComposerImperativeHandleRef?.current?.textAreaRef?.current as Element}\n placement='top-start'\n >\n <Menu\n scrollAt={20}\n items={itemsToRender}\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n }}\n focusControlEl={\n chatComposerImperativeHandleRef?.current?.textAreaRef?.current as\n | HTMLElement\n | undefined\n }\n />\n </Popover>\n </>\n );\n\n const composerProps: ChatComposerProps = {\n ref: chatComposerImperativeHandleRef,\n maxAttachments: args.maxAttachments,\n attachments,\n specialKeysConfig,\n showEmoji: true,\n disabled: args.disableChat,\n onAddAttachment: () => {\n setAttachments([\n ...attachments,\n {\n id: `${attachments.length} statement.pdf`,\n name: `${attachments.length} statement.pdf`,\n onDelete: onDeleteAttachment\n }\n ]);\n },\n maxLength: args.maxLength,\n placeholder: args.placeholder,\n defaultMessage: args.defaultMessage,\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n },\n children: composerChildren\n };\n\n const suggestedReplyPickerProps: SuggestedReplyPickerProps = {\n replies: suggestedReplies,\n onSelect: (suggestedReply: SuggestedReply) => {\n chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');\n setShowSuggestedReplies(false);\n },\n onDismiss: () => {\n setShowSuggestedReplies(false);\n }\n };\n\n const fetchGoogleSprite = () => {\n return 'https://unpkg.com/emoji-datasource-google@5.0.1/img/google/sheets-256/64.png';\n };\n\n return (\n <EmojiContext.Provider value={{ set: 'google', spriteSrcResolver: fetchGoogleSprite }}>\n <Flex\n container={{\n justify: 'center'\n }}\n style={{\n height: args.chatHeight || 'calc(100vh)',\n width: args.chatWidth || '30rem',\n margin: 'auto'\n }}\n >\n <VisuallyHiddenText aria-live='assertive'>{announcement}</VisuallyHiddenText>\n <Chat\n header={{\n title: Channels.options[args.selectedChannel || 'LiveChat'].title,\n icon: Channels.options[args.selectedChannel || 'LiveChat'].icon,\n customer: 'Ginger Ventura',\n authenticated: true,\n sentiment: { variant: 'positive' },\n context: {\n items: contextItems,\n onClick: () => {\n setContextLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setContextLoading(false);\n }, 1000);\n },\n loading: contextLoading\n },\n actions: [\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]\n }}\n banner={args.showChatBanner ? chatBanner : undefined}\n body={bodyProps}\n suggestedReplyPicker={\n suggestedReplies.length > 0 && showSuggestedReplies\n ? suggestedReplyPickerProps\n : undefined\n }\n composer={composerProps}\n />\n </Flex>\n </EmojiContext.Provider>\n );\n};\n\nStandardChat.args = {\n maxAttachments: 2,\n selectedChannel: 'LiveChat',\n showChatBanner: true,\n disableChat: false,\n simulateConversation: false,\n message: '',\n placeholder: 'Enter message',\n defaultMessage:\n 'Greetings! Hope you are having a great time, Please reach out to us for any help, Thanks!',\n maxLength: 280,\n loading: false\n};\n\nStandardChat.argTypes = {\n maxAttachments: { control: { type: 'number' } },\n selectedChannel: { options: ['LiveChat', 'Twitter', 'Facebook'], control: { type: 'select' } },\n showChatBanner: { control: { type: 'boolean' } },\n disableChat: { control: { type: 'boolean' } },\n simulateConversation: { control: { type: 'boolean' } },\n message: { control: { type: 'text' } },\n placeholder: { control: { type: 'text' } },\n defaultMessage: { control: { type: 'text' } },\n maxLength: { control: { type: 'number' } },\n loading: { control: { type: 'boolean' } }\n};\n\nStandardChat.parameters = {\n layout: 'fullscreen'\n};\n\n/** *************************** Standard Chat component - END ************************ */\n"]}
1
+ {"version":3,"file":"Chat.stories.jsx","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo, SyntheticEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport {\n Button,\n Icon,\n registerIcon,\n Text,\n MenuButton,\n Flex,\n Popover,\n Link,\n EmojiContext,\n BannerProps,\n createUID,\n useOuterEvent,\n Select,\n Option,\n useElement,\n useModalManager,\n useModalContext,\n Modal,\n SummaryItem,\n useToaster,\n SearchInput,\n menuHelpers,\n MenuItemProps,\n VisuallyHiddenText,\n Menu,\n useEscape,\n FieldValueListItemProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as replyIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply.icon';\nimport * as replyAllIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply-all.icon';\nimport * as forwardIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/forward.icon';\nimport {\n Chat,\n ChatHeader,\n ChatHeaderProps,\n ChatComposer,\n Message,\n MessageProps,\n NewMessageSeparatorId,\n AttachmentItemProps,\n ChatComposerImperativeHandleProps,\n SuggestedReply,\n SuggestedReplyPicker,\n SystemMessage,\n SystemMessageProps,\n TypeIndicator,\n ChatComposerProps,\n SuggestedReplyPickerProps,\n ChatBodyProps,\n ChatBodyHandleValue,\n MessageHeaderProps\n} from '@pega/cosmos-react-social';\n\nimport {\n ChatMockData,\n phrasesDisplayNames,\n phrasesMessages,\n pagePushList,\n contextItems as contextItemsMock,\n BotConversation,\n ClaimsAgentConversation,\n LiveChatConversation\n} from './Chat.mocks';\n\nregisterIcon(forwardIcon, replyIcon, replyAllIcon, arrowMicroDownIcon);\n\nexport default {\n title: 'Social/Chat',\n component: Chat\n} as Meta;\n\n/** *********************** ChatHeader component - START *********************** */\ninterface ChatHeaderDemoProps\n extends OmitStrict<ChatHeaderProps, 'actions' | 'sentiment' | 'context'> {}\n\nexport const ChatHeaderDemo: Story<ChatHeaderDemoProps> = (args: ChatHeaderDemoProps) => {\n const { title, icon, customer, authenticated } = args;\n\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [loading, setLoading] = useState(false);\n\n return (\n <ChatHeader\n title={title}\n icon={icon || 'chat'}\n actions={[\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]}\n sentiment={{\n variant: 'positive',\n 'aria-label': 'Sentiment is positive'\n }}\n customer={customer}\n authenticated={authenticated}\n context={{\n items: contextItems,\n onClick: () => {\n setLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setLoading(false);\n }, 1000);\n },\n loading\n }}\n />\n );\n};\n\nChatHeaderDemo.args = {\n title: 'Live chat',\n icon: 'chat',\n customer: 'Ginger Ventura',\n authenticated: true\n};\n\nChatHeaderDemo.argTypes = {\n title: { control: { type: 'text' } },\n icon: { control: { type: 'text' }, type: { name: 'string', required: false } },\n customer: { control: { type: 'text' } },\n authenticated: { control: { type: 'boolean' }, type: { name: 'string', required: false } }\n};\n/** ***************************** ChatHeader component - END ******************* */\n\n/** ***************************** Message component - START ********************** */\n\ninterface MessageDemoProps extends OmitStrict<MessageProps, 'senderId' | 'messageHeader'> {\n showTimestamp: boolean;\n showStatus: boolean;\n showHeader: boolean;\n headerContent: MessageHeaderProps['content'];\n headerMeta: MessageHeaderProps['meta'];\n showAvatarImage: boolean;\n showAttachments: boolean;\n showMediaPageLinks: boolean;\n}\n\nexport const MessageDemo: Story<MessageDemoProps> = (args: MessageDemoProps) => {\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const attachments = [\n {\n id: '2499167340',\n name: 'Location',\n icon: 'document',\n meta: 'PNG 0.1 MB',\n thumbnail:\n 'https://pegasystems.github.io/uplus-wss/health_provider/img/secondary-options.jpg',\n actions\n },\n {\n id: '2499167341',\n name: 'FAQ with detailed terms and conditions of the policy',\n icon: 'document-pdf',\n meta: 'PDF 0.7 MB',\n actions\n }\n ];\n const mediaPageLinks = [\n {\n id: '2499167349',\n href: 'https://collaborate.pega.com/',\n thumbnail:\n 'https://community.pega.com/sites/default/files/styles/480/public/media/images/2020-02/AskExpert.png?itok=ef2MVbOV',\n title: 'Ask the expert'\n }\n ];\n return (\n <>\n <Message\n attachments={args.showAttachments ? attachments : undefined}\n mediaPageLinks={args.showMediaPageLinks ? mediaPageLinks : undefined}\n avatarInfo={\n args.direction === 'in' && args.senderType !== 'bot'\n ? {\n name: 'John Brown',\n imageSrc: args.showAvatarImage\n ? 'https://pegasystems.github.io/uplus-wss/insurance/img/option-1.jpg'\n : undefined\n }\n : undefined\n }\n timestamp={args.showTimestamp ? args.timestamp : undefined}\n status={args.showStatus ? args.status : undefined}\n message={args.message}\n direction={args.direction}\n senderType={args.senderType}\n senderId={createUID()}\n agentVariant={args.agentVariant}\n messageHeader={\n args.showHeader ? { content: args.headerContent, meta: args.headerMeta } : undefined\n }\n />\n </>\n );\n};\n\nMessageDemo.args = {\n direction: 'in',\n senderType: 'customer',\n agentVariant: 0,\n message: 'Hi, Welcome to u-plus. How can I help you ?',\n showStatus: true,\n status: 'delivered',\n showTimestamp: true,\n timestamp: '1:44 PM',\n showHeader: false,\n headerContent: 'Public Reply',\n headerMeta: 'I-12345',\n showAvatarImage: false,\n showAttachments: false,\n showMediaPageLinks: false\n};\n\nMessageDemo.argTypes = {\n direction: { options: ['in', 'out'], control: { type: 'inline-radio' } },\n senderType: { options: ['agent', 'customer', 'bot'], control: { type: 'inline-radio' } },\n agentVariant: { type: 'number' },\n message: { type: 'string' },\n showTimestamp: { type: 'boolean' },\n timestamp: { control: 'text' },\n showStatus: { type: 'boolean' },\n status: {\n options: ['delivered', 'opened', 'undeliverable'],\n control: { type: 'inline-radio' }\n },\n showHeader: { control: 'boolean' },\n headerContent: { control: 'text' },\n headerMeta: { control: 'text' },\n showAvatarImage: { control: 'boolean' },\n showAttachments: { control: 'boolean' },\n showMediaPageLinks: { control: 'boolean' }\n};\n/** ***************************** Message component - END *********************** */\n\n/** **************************** SystemMessage component - START ***************** */\nexport const SystemMessageDemo: Story<SystemMessageProps> = (args: SystemMessageProps) => (\n <SystemMessage message={args.message} timestamp={args.timestamp} variant={args.variant} />\n);\n\nSystemMessageDemo.args = {\n message: 'John Brown has joined',\n variant: 'secondary',\n timestamp: '10:00 AM'\n};\n\nSystemMessageDemo.argTypes = {\n message: { control: { type: 'text' } },\n variant: { options: ['primary', 'secondary'], control: { type: 'select' } },\n timestamp: { control: { type: 'text' } }\n};\n/** ***************************** SystemMessage component - END ******************** */\n\n/** ***************************** TypeIndicator component - START ****************** */\ninterface TypeIndicatorDemoProps {\n message?: string;\n}\nexport const TypeIndicatorDemo: Story<TypeIndicatorDemoProps> = (args: TypeIndicatorDemoProps) => {\n return (\n <TypeIndicator\n avatarInfo={{ name: 'John Brown' }}\n message={args.message}\n senderId='johnBrown'\n senderType='agent'\n />\n );\n};\n\nTypeIndicatorDemo.args = {\n message: ''\n};\n\nTypeIndicatorDemo.argTypes = {\n message: { control: { type: 'text' } }\n};\n/** *************************** TypeIndicator component - END *********************** */\n\n/** *************************** SuggestedReplyPicker component - START ****************** */\n\nexport const SuggestedReplyPickerDemo: Story = () => {\n return (\n <SuggestedReplyPicker\n replies={ChatMockData.suggestedReplies}\n onSelect={suggestedReply => {\n action(`Suggested reply picked ${suggestedReply.message}`)();\n }}\n onDismiss={action('Suggested reply dismissed')}\n />\n );\n};\n\n/** *************************** SuggestedReplyPicker component - END ****************** */\n\n/** ******************************* ChatComposer component - START ************************ */\ninterface ChatComposerDemoProps {\n maxAttachments?: number;\n}\n\nexport const ChatComposerDemo: Story<ChatComposerDemoProps> = (args: ChatComposerDemoProps) => (\n <ChatComposer\n maxAttachments={args.maxAttachments}\n attachments={ChatMockData.defaultAttachments}\n maxLength={256}\n placeholder='Type here to send message'\n onSend={() => {}}\n >\n <MenuButton text='Phrases' menu={{ items: [] }} />\n <MenuButton text='Page Push' menu={{ items: [] }} />\n </ChatComposer>\n);\n\nChatComposerDemo.args = {\n maxAttachments: 2\n};\n\nChatComposerDemo.argTypes = {\n maxAttachments: { control: { type: 'number' } }\n};\n/** *********************************** ChatComposer component - END ********************** */\n\n/** *********************************** Standard Chat component - START ******************** */\ninterface StandardChatProps {\n maxAttachments?: number;\n chatWidth?: string;\n chatHeight?: string;\n selectedChannel?: string;\n showChatBanner?: boolean;\n disableChat?: boolean;\n simulateConversation?: boolean;\n message?: string;\n placeholder?: string;\n defaultMessage?: string;\n maxLength?: number;\n loading?: boolean;\n}\n\nexport const StandardChat: Story<StandardChatProps> = (args: StandardChatProps) => {\n const ChatMockDataClone: any = useMemo(() => {\n return JSON.parse(JSON.stringify(ChatMockData));\n }, [ChatMockData]);\n\n const Channels: {\n label: string;\n options: any;\n } = {\n label: 'Channel',\n options: {\n LiveChat: {\n title: 'Live chat',\n icon: 'chat'\n },\n Twitter: {\n title: 'Twitter chat',\n icon: 'twitter'\n },\n Facebook: {\n title: 'Facebook messenger',\n icon: 'facebook'\n }\n }\n };\n\n const {\n chatMessages: mockChatMessagesJson,\n defaultAttachments,\n suggestedReplies\n }: {\n participants: any;\n chatMessages: any[];\n defaultAttachments: any[];\n suggestedReplies: SuggestedReply[];\n } = ChatMockDataClone;\n\n const { create } = useModalManager();\n\n const MyModal = () => {\n const { dismiss } = useModalContext();\n const { push } = useToaster();\n\n return (\n <Modal\n heading='Associate with case'\n actions={\n <>\n <Button\n onClick={() => {\n dismiss();\n push({ content: 'Cancelled' });\n }}\n >\n Cancel\n </Button>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n push({ content: 'Successfully Submitted!!' });\n }}\n >\n Submit\n </Button>\n </>\n }\n center\n >\n <Flex container={{ gap: 2, direction: 'column' }}>\n <SummaryItem\n primary={<Text variant='secondary'>Security policy</Text>}\n secondary={<Text variant='secondary'>PNG - 6.1MB</Text>}\n visual={<Icon name='document-doc' />}\n />\n <Select label='Select a service case' style={{ width: '15rem' }}>\n <Option value=''>Select…</Option>\n <Option value='Make payment' selected>\n Make payment\n </Option>\n <Option value='Facilities'>Facilities</Option>\n </Select>\n </Flex>\n </Modal>\n );\n };\n\n const onAssociateWithCase = () => {\n create(MyModal);\n };\n\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n onAssociateWithCase();\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const mockChatMessages = useMemo(() => {\n return [\n ...mockChatMessagesJson.map(message => {\n const { messagePrivacy, ...restMessageData } = message;\n if (messagePrivacy) {\n restMessageData.messageHeader = {\n content: <span>{messagePrivacy}</span>,\n meta: <Link href='/'>I-12345</Link>\n };\n }\n if (restMessageData.attachments) {\n restMessageData.attachments = restMessageData.attachments.map(\n (item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n }\n );\n }\n return restMessageData;\n })\n ];\n }, []);\n\n const conversationRef = useRef<ChatBodyHandleValue>(null);\n const timers = useRef<number[]>([]);\n\n useEffect(() => {\n return () => {\n timers.current.forEach(clearTimeout);\n };\n }, []);\n\n const [showSuggestedReplies, setShowSuggestedReplies] = useState(true);\n const [attachments, setAttachments] = useState<AttachmentItemProps[]>(defaultAttachments);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n const [chatMessages, setChatMessages] = useState<any[]>(\n LiveChatConversation.map(message => {\n if (message.type === 'message' && message.attachments) {\n message.attachments = message.attachments.map((item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n });\n }\n return message;\n })\n );\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [contextLoading, setContextLoading] = useState(false);\n\n const onDeleteAttachment = useCallback(\n (name: string) => {\n setAttachments(prevAttachments => prevAttachments.filter(item => item.name !== name));\n },\n [setAttachments]\n );\n\n useEffect(() => {\n setAttachments(\n defaultAttachments.map((item: any) => {\n return {\n ...item,\n onDelete: onDeleteAttachment\n };\n })\n );\n }, [defaultAttachments]);\n\n const appendMessage = (message: any) => {\n const incrementUnreadMessageCount = conversationRef.current?.isScrolledToLatest();\n setChatMessages(prevChatMessages => {\n const newMockMessage: any = {\n ...message\n };\n newMockMessage.id = `m-${message.id ? message.id : prevChatMessages.length}`;\n if (\n !incrementUnreadMessageCount &&\n prevChatMessages.filter(({ id }) => id === NewMessageSeparatorId).length === 0\n ) {\n return [\n ...prevChatMessages,\n {\n id: NewMessageSeparatorId,\n type: 'system',\n message: 'New messages',\n variant: 'primary'\n },\n newMockMessage\n ];\n }\n return [...prevChatMessages, newMockMessage];\n });\n if (!incrementUnreadMessageCount) {\n setUnreadMessageCount(prevCount => prevCount + 1);\n }\n };\n\n useEffect(() => {\n if (args.simulateConversation) {\n const timeOutId = setTimeout(() => {\n if (mockChatMessages.length) {\n appendMessage(mockChatMessages.shift());\n }\n }, 1500);\n return () => {\n clearTimeout(timeOutId);\n };\n }\n }, [chatMessages, args.simulateConversation]);\n\n const chatBanner: BannerProps = {\n messages: ['This is a public interaction and any responses will be public and visible'],\n variant: 'warning'\n };\n\n const bodyProps: ChatBodyProps = {\n unreadMessageCount,\n handle: conversationRef,\n transcripts: [\n { id: createUID(), messages: BotConversation },\n { id: createUID(), messages: ClaimsAgentConversation }\n ],\n liveChat: [\n ...chatMessages,\n {\n id: 'typingMessage',\n type: 'typing',\n avatarInfo: {\n name: 'Ginger Ventura'\n },\n message: args.message,\n senderId: 'gingerVentura',\n senderType: 'customer'\n }\n ],\n onScrollToButtonClick: () => {\n const timeOutId: number = window.setTimeout(() => {\n setChatMessages(prevChatMessages =>\n prevChatMessages.filter(({ id }) => id !== NewMessageSeparatorId)\n );\n timers.current = timers.current.filter(id => id !== timeOutId);\n }, 5000);\n timers.current.push(timeOutId);\n setUnreadMessageCount(0);\n },\n loadMore: action('Load more'),\n offset: 5,\n loading: args.loading\n };\n\n const chatComposerImperativeHandleRef = useRef<ChatComposerImperativeHandleProps>(null);\n\n const [mountPopover, setMountPopover] = useState(false);\n const specialKeysConfig = {\n keys: ['//'],\n onSpecialKey: (e: SyntheticEvent<HTMLTextAreaElement>, key: string) => {\n action(`Event is ${e}`)();\n action(`Typed special key is ${key}`)();\n if (chatComposerImperativeHandleRef.current) {\n setMountPopover(!mountPopover);\n }\n }\n };\n\n const insertPhrasesMessage = (message: string) => {\n if (chatComposerImperativeHandleRef.current) {\n chatComposerImperativeHandleRef.current.appendToMessage(message, 'specialKey');\n setMountPopover(false);\n }\n };\n\n useOuterEvent(\n 'mousedown',\n [chatComposerImperativeHandleRef?.current?.chatComposerRef?.current as Element],\n () => {\n setMountPopover(false);\n }\n );\n\n const [search, setSearch] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(escapedSearch);\n }, [search]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(phrasesDisplayNames).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : phrasesDisplayNames,\n item => {\n return {\n ...item\n };\n }\n );\n }, [search, phrasesDisplayNames, searchRegex]);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n const menuID = createUID();\n const menuListID = `${menuID}--list`;\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], () => {\n setIsOpen(false);\n setSearch('');\n });\n\n useEscape(() => {\n setIsOpen(false);\n });\n\n const pagePushItemsRender = useMemo(() => {\n return pagePushList.map(item => {\n return { id: item.id, primary: item.message };\n });\n }, [pagePushList]);\n\n const composerChildren = (\n <>\n <Button\n ref={setButtonEl}\n onClick={() => setIsOpen(cur => !cur)}\n variant='secondary'\n disabled={args.disableChat}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text>Phrases</Text>\n <Icon name='arrow-micro-down' />\n </Flex>\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n id={menuID}\n listId={menuListID}\n mode='action'\n variant='flyout'\n items={itemsToRender}\n role='listbox'\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n setIsOpen(false);\n setSearch('');\n }}\n accent={search ? searchRegex : undefined}\n focusControlEl={searchEleRef.current || undefined}\n footer={\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n searchInputAriaLabel='Start typing to search.'\n />\n }\n />\n </Popover>\n\n <MenuButton\n text='Page push'\n disabled={args.disableChat}\n menu={{\n id: menuID,\n listId: menuListID,\n mode: 'action',\n variant: 'flyout',\n items: pagePushItemsRender,\n role: 'listbox',\n onItemClick: id => {\n setAnnouncement('Link inserted');\n setChatMessages(prevChatMessages => [\n ...prevChatMessages,\n pagePushList.filter(item => item.id === id)[0]\n ]);\n }\n }}\n />\n <Popover\n show={mountPopover}\n target={chatComposerImperativeHandleRef?.current?.textAreaRef?.current as Element}\n placement='top-start'\n >\n <Menu\n scrollAt={20}\n items={itemsToRender}\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n }}\n focusControlEl={\n chatComposerImperativeHandleRef?.current?.textAreaRef?.current as\n | HTMLElement\n | undefined\n }\n />\n </Popover>\n </>\n );\n\n const composerProps: ChatComposerProps = {\n ref: chatComposerImperativeHandleRef,\n maxAttachments: args.maxAttachments,\n attachments,\n specialKeysConfig,\n showEmoji: true,\n disabled: args.disableChat,\n onAddAttachment: () => {\n setAttachments([\n ...attachments,\n {\n id: `${attachments.length} statement.pdf`,\n name: `${attachments.length} statement.pdf`,\n onDelete: onDeleteAttachment\n }\n ]);\n },\n maxLength: args.maxLength,\n placeholder: args.placeholder,\n defaultMessage: args.defaultMessage,\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n },\n children: composerChildren\n };\n\n const suggestedReplyPickerProps: SuggestedReplyPickerProps = {\n replies: suggestedReplies,\n onSelect: (suggestedReply: SuggestedReply) => {\n chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');\n setShowSuggestedReplies(false);\n },\n onDismiss: () => {\n setShowSuggestedReplies(false);\n }\n };\n\n const fetchGoogleSprite = () => {\n return 'https://unpkg.com/emoji-datasource-google@5.0.1/img/google/sheets-256/64.png';\n };\n\n return (\n <EmojiContext.Provider value={{ set: 'google', spriteSrcResolver: fetchGoogleSprite }}>\n <Flex\n container={{\n justify: 'center'\n }}\n style={{\n height: args.chatHeight || 'calc(100vh)',\n width: args.chatWidth || '30rem',\n margin: 'auto'\n }}\n >\n <VisuallyHiddenText aria-live='assertive'>{announcement}</VisuallyHiddenText>\n <Chat\n header={{\n title: Channels.options[args.selectedChannel || 'LiveChat'].title,\n icon: Channels.options[args.selectedChannel || 'LiveChat'].icon,\n customer: 'Ginger Ventura',\n authenticated: true,\n sentiment: { variant: 'positive' },\n context: {\n items: contextItems,\n onClick: () => {\n setContextLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setContextLoading(false);\n }, 1000);\n },\n loading: contextLoading\n },\n actions: [\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]\n }}\n banner={args.showChatBanner ? chatBanner : undefined}\n body={bodyProps}\n suggestedReplyPicker={\n suggestedReplies.length > 0 && showSuggestedReplies\n ? suggestedReplyPickerProps\n : undefined\n }\n composer={composerProps}\n />\n </Flex>\n </EmojiContext.Provider>\n );\n};\n\nStandardChat.args = {\n maxAttachments: 2,\n selectedChannel: 'LiveChat',\n showChatBanner: true,\n disableChat: false,\n simulateConversation: false,\n message: '',\n placeholder: 'Enter message',\n defaultMessage:\n 'Greetings! Hope you are having a great time, Please reach out to us for any help, Thanks!',\n maxLength: 280,\n loading: false\n};\n\nStandardChat.argTypes = {\n maxAttachments: { control: { type: 'number' } },\n selectedChannel: { options: ['LiveChat', 'Twitter', 'Facebook'], control: { type: 'select' } },\n showChatBanner: { control: { type: 'boolean' } },\n disableChat: { control: { type: 'boolean' } },\n simulateConversation: { control: { type: 'boolean' } },\n message: { control: { type: 'text' } },\n placeholder: { control: { type: 'text' } },\n defaultMessage: { control: { type: 'text' } },\n maxLength: { control: { type: 'number' } },\n loading: { control: { type: 'boolean' } }\n};\n\nStandardChat.parameters = {\n layout: 'fullscreen'\n};\n\n/** *************************** Standard Chat component - END ************************ */\n"]}
@@ -3,6 +3,7 @@ import MultiStepFormProps from '@pega/cosmos-react-core/lib/components/MultiStep
3
3
  declare const _default: Meta<import("@storybook/react").Args>;
4
4
  export default _default;
5
5
  interface MultiStepFormDemoProps {
6
+ heading?: MultiStepFormProps['heading'];
6
7
  stepIndicator?: MultiStepFormProps['stepIndicator'];
7
8
  }
8
9
  export declare const MultiStepFormDemo: Story<MultiStepFormDemoProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepForm.stories.d.ts","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,kBAEN,MAAM,0EAA0E,CAAC;;AAWlF,wBASU;AAEV,UAAU,sBAAsB;IAC9B,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACrD;AAuBD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAgU3D,CAAC"}
1
+ {"version":3,"file":"MultiStepForm.stories.d.ts","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,kBAEN,MAAM,0EAA0E,CAAC;;AAWlF,wBAWU;AAEV,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACrD;AAuBD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAgU3D,CAAC"}
@@ -6,9 +6,11 @@ export default {
6
6
  title: 'Core/MultiStepForm',
7
7
  component: MultiStepForm,
8
8
  args: {
9
+ heading: 'HR Screening',
9
10
  stepIndicator: 'horizontal'
10
11
  },
11
12
  argTypes: {
13
+ heading: { control: { type: 'text' } },
12
14
  stepIndicator: { options: ['horizontal', 'vertical', 'none'], control: { type: 'select' } }
13
15
  }
14
16
  };
@@ -218,6 +220,6 @@ export const MultiStepFormDemo = (args) => {
218
220
  }, [state.formData, state.formErrors, state.currentStepIndex]);
219
221
  return (_jsxs(_Fragment, { children: [(state.cancelled || state.finished) && (_jsxs(Flex, { container: { gap: 2, alignItems: 'center' }, children: [_jsxs(Text, { variant: 'h1', children: ["HR screening ", state.cancelled ? 'cancelled' : 'finished'] }), _jsx(Button, { onClick: () => {
220
222
  dispatch({ type: 'restart' });
221
- }, children: "Restart" })] })), !state.cancelled && !state.finished && (_jsx(MultiStepForm, { heading: 'HR Screening', steps: stepData, currentStepId: stepData[state.currentStepIndex].id, stepIndicator: args.stepIndicator }))] }));
223
+ }, children: "Restart" })] })), !state.cancelled && !state.finished && (_jsx(MultiStepForm, { heading: args.heading, steps: stepData, currentStepId: stepData[state.currentStepIndex].id, stepIndicator: args.stepIndicator }))] }));
222
224
  };
223
225
  //# sourceMappingURL=MultiStepForm.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepForm.stories.js","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { type ReactNode, type Reducer, type MouseEvent, useReducer, useMemo } from 'react';\n\nimport { Button, Banner, Flex, MultiStepForm, Text } from '@pega/cosmos-react-core';\nimport MultiStepFormProps, {\n Step\n} from '@pega/cosmos-react-core/lib/components/MultiStepForm/MultiStepForm.types';\n\nimport {\n type DemoFormDataType,\n type DemoFormErrorsType,\n ApplicantDetailsFields,\n InterviewNotesFields,\n RecommendationsFields,\n NextInterviewFields\n} from './MultiStepForm.mocks';\n\nexport default {\n title: 'Core/MultiStepForm',\n component: MultiStepForm,\n args: {\n stepIndicator: 'horizontal'\n },\n argTypes: {\n stepIndicator: { options: ['horizontal', 'vertical', 'none'], control: { type: 'select' } }\n }\n} as Meta;\n\ninterface MultiStepFormDemoProps {\n stepIndicator?: MultiStepFormProps['stepIndicator'];\n}\n\ninterface DemoMultiStepState {\n formData: DemoFormDataType;\n formErrors: DemoFormErrorsType;\n currentStepIndex: number;\n numSteps: number;\n cancelled: boolean;\n finished: boolean;\n}\n\ninterface ReducerAction {\n type: string;\n payload?: any;\n}\n\ninterface FormValidations {\n [field: string]: {\n message?: string;\n validator: (value: any) => boolean;\n };\n}\n\nexport const MultiStepFormDemo: Story<MultiStepFormDemoProps> = (args: MultiStepFormDemoProps) => {\n const initialState = useMemo<DemoMultiStepState>(\n () => ({\n currentStepIndex: 0,\n cancelled: false,\n finished: false,\n numSteps: 3,\n formData: {\n firstName: 'Marcus',\n lastName: 'Kennedy',\n currentTitle: 'Data Analyst',\n currentCompany: 'Hello Fresh'\n },\n formErrors: {}\n }),\n []\n );\n\n const formValidation = useMemo<FormValidations>(\n () => ({\n salaryRequested: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n experienceLevel: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n nextInterviewer: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n salaryRequestReview: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n cultureFit: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n finalRecommendation: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n }\n }),\n []\n );\n\n const stepFields = useMemo<string[][]>(() => {\n return [\n [\n 'firstName',\n 'lastName',\n 'currentTitle',\n 'currentCompany',\n 'salaryRequested',\n 'experienceLevel',\n 'priorityOne',\n 'priorityTwo',\n 'priorityThree'\n ],\n ['interviewNotes', 'additionalInterview'],\n ['nextInterviewer'],\n ['salaryRequestReview', 'cultureFit', 'finalRecommendation', 'recommendationComments']\n ];\n }, []);\n\n const reducer = (state: DemoMultiStepState, action: ReducerAction) => {\n const type = action.type;\n const payload = action.payload;\n\n switch (type) {\n case 'restart': {\n return initialState;\n }\n case 'cancel': {\n return {\n ...state,\n cancelled: true\n };\n }\n case 'finish': {\n return {\n ...state,\n finished: true\n };\n }\n case 'setStep': {\n return {\n ...state,\n currentStepIndex: payload,\n formErrors: {}\n };\n }\n case 'setFieldValue': {\n const { field, value } = payload;\n const formData = {\n ...state.formData\n };\n const formErrors = {\n ...state.formErrors\n };\n\n formData[field] = value;\n\n if (formErrors[field] && Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(value);\n\n if (valid) {\n delete formErrors[field];\n } else {\n formErrors[field] = formValidation[field].message;\n }\n }\n\n return {\n ...state,\n formData,\n formErrors\n };\n }\n case 'submitCurrentStep': {\n const stepIndex =\n state.numSteps === 4 || state.currentStepIndex <= 1\n ? state.currentStepIndex\n : state.currentStepIndex + 1;\n const formErrors = { ...state.formErrors };\n let isValid = true;\n\n const validateFields = (fields: string[]) => {\n if (!fields) return;\n\n fields.forEach(field => {\n if (Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(state.formData[field]);\n\n if (valid) {\n delete formErrors[field];\n } else {\n isValid = false;\n formErrors[field] = formValidation[field].message;\n }\n }\n });\n };\n\n validateFields(stepFields[stepIndex]);\n\n return {\n ...state,\n numSteps: state.formData.additionalInterview ? 4 : 3,\n currentStepIndex:\n isValid && state.currentStepIndex !== state.numSteps - 1\n ? state.currentStepIndex + 1\n : state.currentStepIndex,\n finished: isValid && state.currentStepIndex === state.numSteps - 1,\n formErrors\n };\n }\n default:\n return state;\n }\n };\n\n const [state, dispatch] = useReducer<Reducer<DemoMultiStepState, ReducerAction>>(\n reducer,\n initialState\n );\n\n const stepData: Step[] = useMemo(() => {\n const stepActions: ReactNode = (\n <>\n <Button onClick={() => dispatch({ type: 'cancel' })}>Cancel</Button>\n <div>\n {state.currentStepIndex > 0 && (\n <Button\n onClick={() => dispatch({ type: 'setStep', payload: state.currentStepIndex - 1 })}\n >\n Previous\n </Button>\n )}\n {state.currentStepIndex !== state.numSteps - 1 && (\n <Button variant='primary' onClick={() => dispatch({ type: 'submitCurrentStep' })}>\n Next\n </Button>\n )}\n {state.currentStepIndex === state.numSteps - 1 && (\n <Button\n type='submit'\n variant='primary'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n dispatch({ type: 'submitCurrentStep' });\n }}\n >\n Finish\n </Button>\n )}\n </div>\n </>\n );\n\n const applicantErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[0].includes(errorField);\n });\n const recommendationErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[3].includes(errorField);\n });\n\n const steps = [\n {\n id: 'applicant_details',\n name: 'Applicant details - personal information',\n description:\n 'This applicant has passed initial screening and has been cleared to have an interview scheduled. ' +\n 'Please confirm their details and have a discussion regarding the open position and the company.',\n banners: applicantErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <ApplicantDetailsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'interview_notes',\n name: 'Interview notes',\n content: (\n <InterviewNotesFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'recommendations',\n name: 'Final recommendations',\n description:\n 'Based on your screening call with the applicant please submit your recomendations.',\n banners: recommendationErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <RecommendationsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n }\n ];\n\n if (state.numSteps === 4) {\n steps.splice(2, 0, {\n id: 'next_interview',\n name: 'Next interview',\n description: 'Please select an individual to conduct the next interview.',\n banners: undefined,\n content: (\n <NextInterviewFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n });\n }\n\n return steps;\n }, [state.formData, state.formErrors, state.currentStepIndex]);\n\n return (\n <>\n {(state.cancelled || state.finished) && (\n <Flex container={{ gap: 2, alignItems: 'center' }}>\n <Text variant='h1'>HR screening {state.cancelled ? 'cancelled' : 'finished'}</Text>\n <Button\n onClick={() => {\n dispatch({ type: 'restart' });\n }}\n >\n Restart\n </Button>\n </Flex>\n )}\n\n {!state.cancelled && !state.finished && (\n <MultiStepForm\n heading='HR Screening'\n steps={stepData}\n currentStepId={stepData[state.currentStepIndex].id}\n stepIndicator={args.stepIndicator}\n />\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"MultiStepForm.stories.js","sourceRoot":"","sources":["../../../src/core/MultiStepForm/MultiStepForm.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { type ReactNode, type Reducer, type MouseEvent, useReducer, useMemo } from 'react';\n\nimport { Button, Banner, Flex, MultiStepForm, Text } from '@pega/cosmos-react-core';\nimport MultiStepFormProps, {\n Step\n} from '@pega/cosmos-react-core/lib/components/MultiStepForm/MultiStepForm.types';\n\nimport {\n type DemoFormDataType,\n type DemoFormErrorsType,\n ApplicantDetailsFields,\n InterviewNotesFields,\n RecommendationsFields,\n NextInterviewFields\n} from './MultiStepForm.mocks';\n\nexport default {\n title: 'Core/MultiStepForm',\n component: MultiStepForm,\n args: {\n heading: 'HR Screening',\n stepIndicator: 'horizontal'\n },\n argTypes: {\n heading: { control: { type: 'text' } },\n stepIndicator: { options: ['horizontal', 'vertical', 'none'], control: { type: 'select' } }\n }\n} as Meta;\n\ninterface MultiStepFormDemoProps {\n heading?: MultiStepFormProps['heading'];\n stepIndicator?: MultiStepFormProps['stepIndicator'];\n}\n\ninterface DemoMultiStepState {\n formData: DemoFormDataType;\n formErrors: DemoFormErrorsType;\n currentStepIndex: number;\n numSteps: number;\n cancelled: boolean;\n finished: boolean;\n}\n\ninterface ReducerAction {\n type: string;\n payload?: any;\n}\n\ninterface FormValidations {\n [field: string]: {\n message?: string;\n validator: (value: any) => boolean;\n };\n}\n\nexport const MultiStepFormDemo: Story<MultiStepFormDemoProps> = (args: MultiStepFormDemoProps) => {\n const initialState = useMemo<DemoMultiStepState>(\n () => ({\n currentStepIndex: 0,\n cancelled: false,\n finished: false,\n numSteps: 3,\n formData: {\n firstName: 'Marcus',\n lastName: 'Kennedy',\n currentTitle: 'Data Analyst',\n currentCompany: 'Hello Fresh'\n },\n formErrors: {}\n }),\n []\n );\n\n const formValidation = useMemo<FormValidations>(\n () => ({\n salaryRequested: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n experienceLevel: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n nextInterviewer: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n salaryRequestReview: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n cultureFit: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n },\n finalRecommendation: {\n message: 'This field is required.',\n validator: (value: string) => value?.length > 0\n }\n }),\n []\n );\n\n const stepFields = useMemo<string[][]>(() => {\n return [\n [\n 'firstName',\n 'lastName',\n 'currentTitle',\n 'currentCompany',\n 'salaryRequested',\n 'experienceLevel',\n 'priorityOne',\n 'priorityTwo',\n 'priorityThree'\n ],\n ['interviewNotes', 'additionalInterview'],\n ['nextInterviewer'],\n ['salaryRequestReview', 'cultureFit', 'finalRecommendation', 'recommendationComments']\n ];\n }, []);\n\n const reducer = (state: DemoMultiStepState, action: ReducerAction) => {\n const type = action.type;\n const payload = action.payload;\n\n switch (type) {\n case 'restart': {\n return initialState;\n }\n case 'cancel': {\n return {\n ...state,\n cancelled: true\n };\n }\n case 'finish': {\n return {\n ...state,\n finished: true\n };\n }\n case 'setStep': {\n return {\n ...state,\n currentStepIndex: payload,\n formErrors: {}\n };\n }\n case 'setFieldValue': {\n const { field, value } = payload;\n const formData = {\n ...state.formData\n };\n const formErrors = {\n ...state.formErrors\n };\n\n formData[field] = value;\n\n if (formErrors[field] && Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(value);\n\n if (valid) {\n delete formErrors[field];\n } else {\n formErrors[field] = formValidation[field].message;\n }\n }\n\n return {\n ...state,\n formData,\n formErrors\n };\n }\n case 'submitCurrentStep': {\n const stepIndex =\n state.numSteps === 4 || state.currentStepIndex <= 1\n ? state.currentStepIndex\n : state.currentStepIndex + 1;\n const formErrors = { ...state.formErrors };\n let isValid = true;\n\n const validateFields = (fields: string[]) => {\n if (!fields) return;\n\n fields.forEach(field => {\n if (Object.prototype.hasOwnProperty.call(formValidation, field)) {\n const valid = formValidation[field].validator(state.formData[field]);\n\n if (valid) {\n delete formErrors[field];\n } else {\n isValid = false;\n formErrors[field] = formValidation[field].message;\n }\n }\n });\n };\n\n validateFields(stepFields[stepIndex]);\n\n return {\n ...state,\n numSteps: state.formData.additionalInterview ? 4 : 3,\n currentStepIndex:\n isValid && state.currentStepIndex !== state.numSteps - 1\n ? state.currentStepIndex + 1\n : state.currentStepIndex,\n finished: isValid && state.currentStepIndex === state.numSteps - 1,\n formErrors\n };\n }\n default:\n return state;\n }\n };\n\n const [state, dispatch] = useReducer<Reducer<DemoMultiStepState, ReducerAction>>(\n reducer,\n initialState\n );\n\n const stepData: Step[] = useMemo(() => {\n const stepActions: ReactNode = (\n <>\n <Button onClick={() => dispatch({ type: 'cancel' })}>Cancel</Button>\n <div>\n {state.currentStepIndex > 0 && (\n <Button\n onClick={() => dispatch({ type: 'setStep', payload: state.currentStepIndex - 1 })}\n >\n Previous\n </Button>\n )}\n {state.currentStepIndex !== state.numSteps - 1 && (\n <Button variant='primary' onClick={() => dispatch({ type: 'submitCurrentStep' })}>\n Next\n </Button>\n )}\n {state.currentStepIndex === state.numSteps - 1 && (\n <Button\n type='submit'\n variant='primary'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n dispatch({ type: 'submitCurrentStep' });\n }}\n >\n Finish\n </Button>\n )}\n </div>\n </>\n );\n\n const applicantErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[0].includes(errorField);\n });\n const recommendationErrors = Object.keys(state.formErrors).filter(errorField => {\n return stepFields[3].includes(errorField);\n });\n\n const steps = [\n {\n id: 'applicant_details',\n name: 'Applicant details - personal information',\n description:\n 'This applicant has passed initial screening and has been cleared to have an interview scheduled. ' +\n 'Please confirm their details and have a discussion regarding the open position and the company.',\n banners: applicantErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <ApplicantDetailsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'interview_notes',\n name: 'Interview notes',\n content: (\n <InterviewNotesFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n },\n {\n id: 'recommendations',\n name: 'Final recommendations',\n description:\n 'Based on your screening call with the applicant please submit your recomendations.',\n banners: recommendationErrors?.length ? (\n <Banner\n messages={[\n {\n label: 'Your submission failed to process.',\n description: 'Please correct all errors and try again.'\n }\n ]}\n variant='urgent'\n />\n ) : undefined,\n content: (\n <RecommendationsFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n }\n ];\n\n if (state.numSteps === 4) {\n steps.splice(2, 0, {\n id: 'next_interview',\n name: 'Next interview',\n description: 'Please select an individual to conduct the next interview.',\n banners: undefined,\n content: (\n <NextInterviewFields\n formData={state.formData}\n formErrors={state.formErrors}\n dispatch={dispatch}\n />\n ),\n actions: stepActions\n });\n }\n\n return steps;\n }, [state.formData, state.formErrors, state.currentStepIndex]);\n\n return (\n <>\n {(state.cancelled || state.finished) && (\n <Flex container={{ gap: 2, alignItems: 'center' }}>\n <Text variant='h1'>HR screening {state.cancelled ? 'cancelled' : 'finished'}</Text>\n <Button\n onClick={() => {\n dispatch({ type: 'restart' });\n }}\n >\n Restart\n </Button>\n </Flex>\n )}\n\n {!state.cancelled && !state.finished && (\n <MultiStepForm\n heading={args.heading}\n steps={stepData}\n currentStepId={stepData[state.currentStepIndex].id}\n stepIndicator={args.stepIndicator}\n />\n )}\n </>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EA4BL,UAAU,EACX,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAGL,eAAe,EAGf,YAAY,EAOZ,kBAAkB,EAMlB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;;AAenC,wBAGU;AAEV,mFAAmF;AACnF,UAAU,mBACR,SAAQ,UAAU,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CAAG;AAE7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAiCrD,CAAC;AAeF,mFAAmF;AAEnF,qFAAqF;AAErF,UAAU,gBAAiB,SAAQ,UAAU,CAAC,YAAY,EAAE,UAAU,GAAG,eAAe,CAAC;IACvF,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC7C,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAyE/C,CAAC;AAsCF,oFAAoF;AAEpF,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,kBAAkB,CAEvD,CAAC;AAaF,uFAAuF;AAEvF,uFAAuF;AACvF,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAS3D,CAAC;AASF,wFAAwF;AAExF,4FAA4F;AAE5F,eAAO,MAAM,wBAAwB,EAAE,KAUtC,CAAC;AAEF,0FAA0F;AAE1F,8FAA8F;AAC9F,UAAU,qBAAqB;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,CAWzD,CAAC;AASF,8FAA8F;AAE9F,+FAA+F;AAC/F,UAAU,iBAAiB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAqhBjD,CAAC;AAiCF,yFAAyF"}
1
+ {"version":3,"file":"Chat.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EA4BL,UAAU,EACX,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAGL,eAAe,EAGf,YAAY,EAOZ,kBAAkB,EAMlB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;;AAenC,wBAGU;AAEV,mFAAmF;AACnF,UAAU,mBACR,SAAQ,UAAU,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CAAG;AAE7E,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAiCrD,CAAC;AAeF,mFAAmF;AAEnF,qFAAqF;AAErF,UAAU,gBAAiB,SAAQ,UAAU,CAAC,YAAY,EAAE,UAAU,GAAG,eAAe,CAAC;IACvF,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC7C,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAyE/C,CAAC;AAsCF,oFAAoF;AAEpF,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,kBAAkB,CAEvD,CAAC;AAaF,uFAAuF;AAEvF,uFAAuF;AACvF,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,CAS3D,CAAC;AASF,wFAAwF;AAExF,4FAA4F;AAE5F,eAAO,MAAM,wBAAwB,EAAE,KAUtC,CAAC;AAEF,0FAA0F;AAE1F,8FAA8F;AAC9F,UAAU,qBAAqB;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,CAWzD,CAAC;AASF,8FAA8F;AAE9F,+FAA+F;AAC/F,UAAU,iBAAiB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CA4gBjD,CAAC;AAiCF,yFAAyF"}
@@ -342,15 +342,8 @@ export const StandardChat = (args) => {
342
342
  }
343
343
  ],
344
344
  onScrollToButtonClick: () => {
345
- const newRandomMessageId = Math.random().toString(36).substr(2, 9);
346
- setChatMessages(prevChatMessages => prevChatMessages.map(message => {
347
- if (message.id === NewMessageSeparatorId) {
348
- message.id = newRandomMessageId;
349
- }
350
- return message;
351
- }));
352
345
  const timeOutId = window.setTimeout(() => {
353
- setChatMessages(prevChatMessages => prevChatMessages.filter(({ id }) => id !== newRandomMessageId));
346
+ setChatMessages(prevChatMessages => prevChatMessages.filter(({ id }) => id !== NewMessageSeparatorId));
354
347
  timers.current = timers.current.filter(id => id !== timeOutId);
355
348
  }, 5000);
356
349
  timers.current.push(timeOutId);
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.stories.js","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo, SyntheticEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport {\n Button,\n Icon,\n registerIcon,\n Text,\n MenuButton,\n Flex,\n Popover,\n Link,\n EmojiContext,\n BannerProps,\n createUID,\n useOuterEvent,\n Select,\n Option,\n useElement,\n useModalManager,\n useModalContext,\n Modal,\n SummaryItem,\n useToaster,\n SearchInput,\n menuHelpers,\n MenuItemProps,\n VisuallyHiddenText,\n Menu,\n useEscape,\n FieldValueListItemProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as replyIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply.icon';\nimport * as replyAllIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply-all.icon';\nimport * as forwardIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/forward.icon';\nimport {\n Chat,\n ChatHeader,\n ChatHeaderProps,\n ChatComposer,\n Message,\n MessageProps,\n NewMessageSeparatorId,\n AttachmentItemProps,\n ChatComposerImperativeHandleProps,\n SuggestedReply,\n SuggestedReplyPicker,\n SystemMessage,\n SystemMessageProps,\n TypeIndicator,\n ChatComposerProps,\n SuggestedReplyPickerProps,\n ChatBodyProps,\n ChatBodyHandleValue,\n MessageHeaderProps\n} from '@pega/cosmos-react-social';\n\nimport {\n ChatMockData,\n phrasesDisplayNames,\n phrasesMessages,\n pagePushList,\n contextItems as contextItemsMock,\n BotConversation,\n ClaimsAgentConversation,\n LiveChatConversation\n} from './Chat.mocks';\n\nregisterIcon(forwardIcon, replyIcon, replyAllIcon, arrowMicroDownIcon);\n\nexport default {\n title: 'Social/Chat',\n component: Chat\n} as Meta;\n\n/** *********************** ChatHeader component - START *********************** */\ninterface ChatHeaderDemoProps\n extends OmitStrict<ChatHeaderProps, 'actions' | 'sentiment' | 'context'> {}\n\nexport const ChatHeaderDemo: Story<ChatHeaderDemoProps> = (args: ChatHeaderDemoProps) => {\n const { title, icon, customer, authenticated } = args;\n\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [loading, setLoading] = useState(false);\n\n return (\n <ChatHeader\n title={title}\n icon={icon || 'chat'}\n actions={[\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]}\n sentiment={{\n variant: 'positive',\n 'aria-label': 'Sentiment is positive'\n }}\n customer={customer}\n authenticated={authenticated}\n context={{\n items: contextItems,\n onClick: () => {\n setLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setLoading(false);\n }, 1000);\n },\n loading\n }}\n />\n );\n};\n\nChatHeaderDemo.args = {\n title: 'Live chat',\n icon: 'chat',\n customer: 'Ginger Ventura',\n authenticated: true\n};\n\nChatHeaderDemo.argTypes = {\n title: { control: { type: 'text' } },\n icon: { control: { type: 'text' }, type: { name: 'string', required: false } },\n customer: { control: { type: 'text' } },\n authenticated: { control: { type: 'boolean' }, type: { name: 'string', required: false } }\n};\n/** ***************************** ChatHeader component - END ******************* */\n\n/** ***************************** Message component - START ********************** */\n\ninterface MessageDemoProps extends OmitStrict<MessageProps, 'senderId' | 'messageHeader'> {\n showTimestamp: boolean;\n showStatus: boolean;\n showHeader: boolean;\n headerContent: MessageHeaderProps['content'];\n headerMeta: MessageHeaderProps['meta'];\n showAvatarImage: boolean;\n showAttachments: boolean;\n showMediaPageLinks: boolean;\n}\n\nexport const MessageDemo: Story<MessageDemoProps> = (args: MessageDemoProps) => {\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const attachments = [\n {\n id: '2499167340',\n name: 'Location',\n icon: 'document',\n meta: 'PNG 0.1 MB',\n thumbnail:\n 'https://pegasystems.github.io/uplus-wss/health_provider/img/secondary-options.jpg',\n actions\n },\n {\n id: '2499167341',\n name: 'FAQ with detailed terms and conditions of the policy',\n icon: 'document-pdf',\n meta: 'PDF 0.7 MB',\n actions\n }\n ];\n const mediaPageLinks = [\n {\n id: '2499167349',\n href: 'https://collaborate.pega.com/',\n thumbnail:\n 'https://community.pega.com/sites/default/files/styles/480/public/media/images/2020-02/AskExpert.png?itok=ef2MVbOV',\n title: 'Ask the expert'\n }\n ];\n return (\n <>\n <Message\n attachments={args.showAttachments ? attachments : undefined}\n mediaPageLinks={args.showMediaPageLinks ? mediaPageLinks : undefined}\n avatarInfo={\n args.direction === 'in' && args.senderType !== 'bot'\n ? {\n name: 'John Brown',\n imageSrc: args.showAvatarImage\n ? 'https://pegasystems.github.io/uplus-wss/insurance/img/option-1.jpg'\n : undefined\n }\n : undefined\n }\n timestamp={args.showTimestamp ? args.timestamp : undefined}\n status={args.showStatus ? args.status : undefined}\n message={args.message}\n direction={args.direction}\n senderType={args.senderType}\n senderId={createUID()}\n agentVariant={args.agentVariant}\n messageHeader={\n args.showHeader ? { content: args.headerContent, meta: args.headerMeta } : undefined\n }\n />\n </>\n );\n};\n\nMessageDemo.args = {\n direction: 'in',\n senderType: 'customer',\n agentVariant: 0,\n message: 'Hi, Welcome to u-plus. How can I help you ?',\n showStatus: true,\n status: 'delivered',\n showTimestamp: true,\n timestamp: '1:44 PM',\n showHeader: false,\n headerContent: 'Public Reply',\n headerMeta: 'I-12345',\n showAvatarImage: false,\n showAttachments: false,\n showMediaPageLinks: false\n};\n\nMessageDemo.argTypes = {\n direction: { options: ['in', 'out'], control: { type: 'inline-radio' } },\n senderType: { options: ['agent', 'customer', 'bot'], control: { type: 'inline-radio' } },\n agentVariant: { type: 'number' },\n message: { type: 'string' },\n showTimestamp: { type: 'boolean' },\n timestamp: { control: 'text' },\n showStatus: { type: 'boolean' },\n status: {\n options: ['delivered', 'opened', 'undeliverable'],\n control: { type: 'inline-radio' }\n },\n showHeader: { control: 'boolean' },\n headerContent: { control: 'text' },\n headerMeta: { control: 'text' },\n showAvatarImage: { control: 'boolean' },\n showAttachments: { control: 'boolean' },\n showMediaPageLinks: { control: 'boolean' }\n};\n/** ***************************** Message component - END *********************** */\n\n/** **************************** SystemMessage component - START ***************** */\nexport const SystemMessageDemo: Story<SystemMessageProps> = (args: SystemMessageProps) => (\n <SystemMessage message={args.message} timestamp={args.timestamp} variant={args.variant} />\n);\n\nSystemMessageDemo.args = {\n message: 'John Brown has joined',\n variant: 'secondary',\n timestamp: '10:00 AM'\n};\n\nSystemMessageDemo.argTypes = {\n message: { control: { type: 'text' } },\n variant: { options: ['primary', 'secondary'], control: { type: 'select' } },\n timestamp: { control: { type: 'text' } }\n};\n/** ***************************** SystemMessage component - END ******************** */\n\n/** ***************************** TypeIndicator component - START ****************** */\ninterface TypeIndicatorDemoProps {\n message?: string;\n}\nexport const TypeIndicatorDemo: Story<TypeIndicatorDemoProps> = (args: TypeIndicatorDemoProps) => {\n return (\n <TypeIndicator\n avatarInfo={{ name: 'John Brown' }}\n message={args.message}\n senderId='johnBrown'\n senderType='agent'\n />\n );\n};\n\nTypeIndicatorDemo.args = {\n message: ''\n};\n\nTypeIndicatorDemo.argTypes = {\n message: { control: { type: 'text' } }\n};\n/** *************************** TypeIndicator component - END *********************** */\n\n/** *************************** SuggestedReplyPicker component - START ****************** */\n\nexport const SuggestedReplyPickerDemo: Story = () => {\n return (\n <SuggestedReplyPicker\n replies={ChatMockData.suggestedReplies}\n onSelect={suggestedReply => {\n action(`Suggested reply picked ${suggestedReply.message}`)();\n }}\n onDismiss={action('Suggested reply dismissed')}\n />\n );\n};\n\n/** *************************** SuggestedReplyPicker component - END ****************** */\n\n/** ******************************* ChatComposer component - START ************************ */\ninterface ChatComposerDemoProps {\n maxAttachments?: number;\n}\n\nexport const ChatComposerDemo: Story<ChatComposerDemoProps> = (args: ChatComposerDemoProps) => (\n <ChatComposer\n maxAttachments={args.maxAttachments}\n attachments={ChatMockData.defaultAttachments}\n maxLength={256}\n placeholder='Type here to send message'\n onSend={() => {}}\n >\n <MenuButton text='Phrases' menu={{ items: [] }} />\n <MenuButton text='Page Push' menu={{ items: [] }} />\n </ChatComposer>\n);\n\nChatComposerDemo.args = {\n maxAttachments: 2\n};\n\nChatComposerDemo.argTypes = {\n maxAttachments: { control: { type: 'number' } }\n};\n/** *********************************** ChatComposer component - END ********************** */\n\n/** *********************************** Standard Chat component - START ******************** */\ninterface StandardChatProps {\n maxAttachments?: number;\n chatWidth?: string;\n chatHeight?: string;\n selectedChannel?: string;\n showChatBanner?: boolean;\n disableChat?: boolean;\n simulateConversation?: boolean;\n message?: string;\n placeholder?: string;\n defaultMessage?: string;\n maxLength?: number;\n loading?: boolean;\n}\n\nexport const StandardChat: Story<StandardChatProps> = (args: StandardChatProps) => {\n const ChatMockDataClone: any = useMemo(() => {\n return JSON.parse(JSON.stringify(ChatMockData));\n }, [ChatMockData]);\n\n const Channels: {\n label: string;\n options: any;\n } = {\n label: 'Channel',\n options: {\n LiveChat: {\n title: 'Live chat',\n icon: 'chat'\n },\n Twitter: {\n title: 'Twitter chat',\n icon: 'twitter'\n },\n Facebook: {\n title: 'Facebook messenger',\n icon: 'facebook'\n }\n }\n };\n\n const {\n chatMessages: mockChatMessagesJson,\n defaultAttachments,\n suggestedReplies\n }: {\n participants: any;\n chatMessages: any[];\n defaultAttachments: any[];\n suggestedReplies: SuggestedReply[];\n } = ChatMockDataClone;\n\n const { create } = useModalManager();\n\n const MyModal = () => {\n const { dismiss } = useModalContext();\n const { push } = useToaster();\n\n return (\n <Modal\n heading='Associate with case'\n actions={\n <>\n <Button\n onClick={() => {\n dismiss();\n push({ content: 'Cancelled' });\n }}\n >\n Cancel\n </Button>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n push({ content: 'Successfully Submitted!!' });\n }}\n >\n Submit\n </Button>\n </>\n }\n center\n >\n <Flex container={{ gap: 2, direction: 'column' }}>\n <SummaryItem\n primary={<Text variant='secondary'>Security policy</Text>}\n secondary={<Text variant='secondary'>PNG - 6.1MB</Text>}\n visual={<Icon name='document-doc' />}\n />\n <Select label='Select a service case' style={{ width: '15rem' }}>\n <Option value=''>Select…</Option>\n <Option value='Make payment' selected>\n Make payment\n </Option>\n <Option value='Facilities'>Facilities</Option>\n </Select>\n </Flex>\n </Modal>\n );\n };\n\n const onAssociateWithCase = () => {\n create(MyModal);\n };\n\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n onAssociateWithCase();\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const mockChatMessages = useMemo(() => {\n return [\n ...mockChatMessagesJson.map(message => {\n const { messagePrivacy, ...restMessageData } = message;\n if (messagePrivacy) {\n restMessageData.messageHeader = {\n content: <span>{messagePrivacy}</span>,\n meta: <Link href='/'>I-12345</Link>\n };\n }\n if (restMessageData.attachments) {\n restMessageData.attachments = restMessageData.attachments.map(\n (item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n }\n );\n }\n return restMessageData;\n })\n ];\n }, []);\n\n const conversationRef = useRef<ChatBodyHandleValue>(null);\n const timers = useRef<number[]>([]);\n\n useEffect(() => {\n return () => {\n timers.current.forEach(clearTimeout);\n };\n }, []);\n\n const [showSuggestedReplies, setShowSuggestedReplies] = useState(true);\n const [attachments, setAttachments] = useState<AttachmentItemProps[]>(defaultAttachments);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n const [chatMessages, setChatMessages] = useState<any[]>(\n LiveChatConversation.map(message => {\n if (message.type === 'message' && message.attachments) {\n message.attachments = message.attachments.map((item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n });\n }\n return message;\n })\n );\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [contextLoading, setContextLoading] = useState(false);\n\n const onDeleteAttachment = useCallback(\n (name: string) => {\n setAttachments(prevAttachments => prevAttachments.filter(item => item.name !== name));\n },\n [setAttachments]\n );\n\n useEffect(() => {\n setAttachments(\n defaultAttachments.map((item: any) => {\n return {\n ...item,\n onDelete: onDeleteAttachment\n };\n })\n );\n }, [defaultAttachments]);\n\n const appendMessage = (message: any) => {\n const incrementUnreadMessageCount = conversationRef.current?.isScrolledToLatest();\n setChatMessages(prevChatMessages => {\n const newMockMessage: any = {\n ...message\n };\n newMockMessage.id = `m-${message.id ? message.id : prevChatMessages.length}`;\n if (\n !incrementUnreadMessageCount &&\n prevChatMessages.filter(({ id }) => id === NewMessageSeparatorId).length === 0\n ) {\n return [\n ...prevChatMessages,\n {\n id: NewMessageSeparatorId,\n type: 'system',\n message: 'New messages',\n variant: 'primary'\n },\n newMockMessage\n ];\n }\n return [...prevChatMessages, newMockMessage];\n });\n if (!incrementUnreadMessageCount) {\n setUnreadMessageCount(prevCount => prevCount + 1);\n }\n };\n\n useEffect(() => {\n if (args.simulateConversation) {\n const timeOutId = setTimeout(() => {\n if (mockChatMessages.length) {\n appendMessage(mockChatMessages.shift());\n }\n }, 1500);\n return () => {\n clearTimeout(timeOutId);\n };\n }\n }, [chatMessages, args.simulateConversation]);\n\n const chatBanner: BannerProps = {\n messages: ['This is a public interaction and any responses will be public and visible'],\n variant: 'warning'\n };\n\n const bodyProps: ChatBodyProps = {\n unreadMessageCount,\n handle: conversationRef,\n transcripts: [\n { id: createUID(), messages: BotConversation },\n { id: createUID(), messages: ClaimsAgentConversation }\n ],\n liveChat: [\n ...chatMessages,\n {\n id: 'typingMessage',\n type: 'typing',\n avatarInfo: {\n name: 'Ginger Ventura'\n },\n message: args.message,\n senderId: 'gingerVentura',\n senderType: 'customer'\n }\n ],\n onScrollToButtonClick: () => {\n const newRandomMessageId = Math.random().toString(36).substr(2, 9);\n setChatMessages(prevChatMessages =>\n prevChatMessages.map(message => {\n if (message.id === NewMessageSeparatorId) {\n message.id = newRandomMessageId;\n }\n return message;\n })\n );\n const timeOutId: number = window.setTimeout(() => {\n setChatMessages(prevChatMessages =>\n prevChatMessages.filter(({ id }) => id !== newRandomMessageId)\n );\n timers.current = timers.current.filter(id => id !== timeOutId);\n }, 5000);\n timers.current.push(timeOutId);\n setUnreadMessageCount(0);\n },\n loadMore: action('Load more'),\n offset: 5,\n loading: args.loading\n };\n\n const chatComposerImperativeHandleRef = useRef<ChatComposerImperativeHandleProps>(null);\n\n const [mountPopover, setMountPopover] = useState(false);\n const specialKeysConfig = {\n keys: ['//'],\n onSpecialKey: (e: SyntheticEvent<HTMLTextAreaElement>, key: string) => {\n action(`Event is ${e}`)();\n action(`Typed special key is ${key}`)();\n if (chatComposerImperativeHandleRef.current) {\n setMountPopover(!mountPopover);\n }\n }\n };\n\n const insertPhrasesMessage = (message: string) => {\n if (chatComposerImperativeHandleRef.current) {\n chatComposerImperativeHandleRef.current.appendToMessage(message, 'specialKey');\n setMountPopover(false);\n }\n };\n\n useOuterEvent(\n 'mousedown',\n [chatComposerImperativeHandleRef?.current?.chatComposerRef?.current as Element],\n () => {\n setMountPopover(false);\n }\n );\n\n const [search, setSearch] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(escapedSearch);\n }, [search]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(phrasesDisplayNames).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : phrasesDisplayNames,\n item => {\n return {\n ...item\n };\n }\n );\n }, [search, phrasesDisplayNames, searchRegex]);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n const menuID = createUID();\n const menuListID = `${menuID}--list`;\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], () => {\n setIsOpen(false);\n setSearch('');\n });\n\n useEscape(() => {\n setIsOpen(false);\n });\n\n const pagePushItemsRender = useMemo(() => {\n return pagePushList.map(item => {\n return { id: item.id, primary: item.message };\n });\n }, [pagePushList]);\n\n const composerChildren = (\n <>\n <Button\n ref={setButtonEl}\n onClick={() => setIsOpen(cur => !cur)}\n variant='secondary'\n disabled={args.disableChat}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text>Phrases</Text>\n <Icon name='arrow-micro-down' />\n </Flex>\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n id={menuID}\n listId={menuListID}\n mode='action'\n variant='flyout'\n items={itemsToRender}\n role='listbox'\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n setIsOpen(false);\n setSearch('');\n }}\n accent={search ? searchRegex : undefined}\n focusControlEl={searchEleRef.current || undefined}\n footer={\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n searchInputAriaLabel='Start typing to search.'\n />\n }\n />\n </Popover>\n\n <MenuButton\n text='Page push'\n disabled={args.disableChat}\n menu={{\n id: menuID,\n listId: menuListID,\n mode: 'action',\n variant: 'flyout',\n items: pagePushItemsRender,\n role: 'listbox',\n onItemClick: id => {\n setAnnouncement('Link inserted');\n setChatMessages(prevChatMessages => [\n ...prevChatMessages,\n pagePushList.filter(item => item.id === id)[0]\n ]);\n }\n }}\n />\n <Popover\n show={mountPopover}\n target={chatComposerImperativeHandleRef?.current?.textAreaRef?.current as Element}\n placement='top-start'\n >\n <Menu\n scrollAt={20}\n items={itemsToRender}\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n }}\n focusControlEl={\n chatComposerImperativeHandleRef?.current?.textAreaRef?.current as\n | HTMLElement\n | undefined\n }\n />\n </Popover>\n </>\n );\n\n const composerProps: ChatComposerProps = {\n ref: chatComposerImperativeHandleRef,\n maxAttachments: args.maxAttachments,\n attachments,\n specialKeysConfig,\n showEmoji: true,\n disabled: args.disableChat,\n onAddAttachment: () => {\n setAttachments([\n ...attachments,\n {\n id: `${attachments.length} statement.pdf`,\n name: `${attachments.length} statement.pdf`,\n onDelete: onDeleteAttachment\n }\n ]);\n },\n maxLength: args.maxLength,\n placeholder: args.placeholder,\n defaultMessage: args.defaultMessage,\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n },\n children: composerChildren\n };\n\n const suggestedReplyPickerProps: SuggestedReplyPickerProps = {\n replies: suggestedReplies,\n onSelect: (suggestedReply: SuggestedReply) => {\n chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');\n setShowSuggestedReplies(false);\n },\n onDismiss: () => {\n setShowSuggestedReplies(false);\n }\n };\n\n const fetchGoogleSprite = () => {\n return 'https://unpkg.com/emoji-datasource-google@5.0.1/img/google/sheets-256/64.png';\n };\n\n return (\n <EmojiContext.Provider value={{ set: 'google', spriteSrcResolver: fetchGoogleSprite }}>\n <Flex\n container={{\n justify: 'center'\n }}\n style={{\n height: args.chatHeight || 'calc(100vh)',\n width: args.chatWidth || '30rem',\n margin: 'auto'\n }}\n >\n <VisuallyHiddenText aria-live='assertive'>{announcement}</VisuallyHiddenText>\n <Chat\n header={{\n title: Channels.options[args.selectedChannel || 'LiveChat'].title,\n icon: Channels.options[args.selectedChannel || 'LiveChat'].icon,\n customer: 'Ginger Ventura',\n authenticated: true,\n sentiment: { variant: 'positive' },\n context: {\n items: contextItems,\n onClick: () => {\n setContextLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setContextLoading(false);\n }, 1000);\n },\n loading: contextLoading\n },\n actions: [\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]\n }}\n banner={args.showChatBanner ? chatBanner : undefined}\n body={bodyProps}\n suggestedReplyPicker={\n suggestedReplies.length > 0 && showSuggestedReplies\n ? suggestedReplyPickerProps\n : undefined\n }\n composer={composerProps}\n />\n </Flex>\n </EmojiContext.Provider>\n );\n};\n\nStandardChat.args = {\n maxAttachments: 2,\n selectedChannel: 'LiveChat',\n showChatBanner: true,\n disableChat: false,\n simulateConversation: false,\n message: '',\n placeholder: 'Enter message',\n defaultMessage:\n 'Greetings! Hope you are having a great time, Please reach out to us for any help, Thanks!',\n maxLength: 280,\n loading: false\n};\n\nStandardChat.argTypes = {\n maxAttachments: { control: { type: 'number' } },\n selectedChannel: { options: ['LiveChat', 'Twitter', 'Facebook'], control: { type: 'select' } },\n showChatBanner: { control: { type: 'boolean' } },\n disableChat: { control: { type: 'boolean' } },\n simulateConversation: { control: { type: 'boolean' } },\n message: { control: { type: 'text' } },\n placeholder: { control: { type: 'text' } },\n defaultMessage: { control: { type: 'text' } },\n maxLength: { control: { type: 'number' } },\n loading: { control: { type: 'boolean' } }\n};\n\nStandardChat.parameters = {\n layout: 'fullscreen'\n};\n\n/** *************************** Standard Chat component - END ************************ */\n"]}
1
+ {"version":3,"file":"Chat.stories.js","sourceRoot":"","sources":["../../../src/social/Chat/Chat.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo, SyntheticEvent } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport {\n Button,\n Icon,\n registerIcon,\n Text,\n MenuButton,\n Flex,\n Popover,\n Link,\n EmojiContext,\n BannerProps,\n createUID,\n useOuterEvent,\n Select,\n Option,\n useElement,\n useModalManager,\n useModalContext,\n Modal,\n SummaryItem,\n useToaster,\n SearchInput,\n menuHelpers,\n MenuItemProps,\n VisuallyHiddenText,\n Menu,\n useEscape,\n FieldValueListItemProps,\n OmitStrict\n} from '@pega/cosmos-react-core';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as replyIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply.icon';\nimport * as replyAllIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/reply-all.icon';\nimport * as forwardIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/forward.icon';\nimport {\n Chat,\n ChatHeader,\n ChatHeaderProps,\n ChatComposer,\n Message,\n MessageProps,\n NewMessageSeparatorId,\n AttachmentItemProps,\n ChatComposerImperativeHandleProps,\n SuggestedReply,\n SuggestedReplyPicker,\n SystemMessage,\n SystemMessageProps,\n TypeIndicator,\n ChatComposerProps,\n SuggestedReplyPickerProps,\n ChatBodyProps,\n ChatBodyHandleValue,\n MessageHeaderProps\n} from '@pega/cosmos-react-social';\n\nimport {\n ChatMockData,\n phrasesDisplayNames,\n phrasesMessages,\n pagePushList,\n contextItems as contextItemsMock,\n BotConversation,\n ClaimsAgentConversation,\n LiveChatConversation\n} from './Chat.mocks';\n\nregisterIcon(forwardIcon, replyIcon, replyAllIcon, arrowMicroDownIcon);\n\nexport default {\n title: 'Social/Chat',\n component: Chat\n} as Meta;\n\n/** *********************** ChatHeader component - START *********************** */\ninterface ChatHeaderDemoProps\n extends OmitStrict<ChatHeaderProps, 'actions' | 'sentiment' | 'context'> {}\n\nexport const ChatHeaderDemo: Story<ChatHeaderDemoProps> = (args: ChatHeaderDemoProps) => {\n const { title, icon, customer, authenticated } = args;\n\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [loading, setLoading] = useState(false);\n\n return (\n <ChatHeader\n title={title}\n icon={icon || 'chat'}\n actions={[\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]}\n sentiment={{\n variant: 'positive',\n 'aria-label': 'Sentiment is positive'\n }}\n customer={customer}\n authenticated={authenticated}\n context={{\n items: contextItems,\n onClick: () => {\n setLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setLoading(false);\n }, 1000);\n },\n loading\n }}\n />\n );\n};\n\nChatHeaderDemo.args = {\n title: 'Live chat',\n icon: 'chat',\n customer: 'Ginger Ventura',\n authenticated: true\n};\n\nChatHeaderDemo.argTypes = {\n title: { control: { type: 'text' } },\n icon: { control: { type: 'text' }, type: { name: 'string', required: false } },\n customer: { control: { type: 'text' } },\n authenticated: { control: { type: 'boolean' }, type: { name: 'string', required: false } }\n};\n/** ***************************** ChatHeader component - END ******************* */\n\n/** ***************************** Message component - START ********************** */\n\ninterface MessageDemoProps extends OmitStrict<MessageProps, 'senderId' | 'messageHeader'> {\n showTimestamp: boolean;\n showStatus: boolean;\n showHeader: boolean;\n headerContent: MessageHeaderProps['content'];\n headerMeta: MessageHeaderProps['meta'];\n showAvatarImage: boolean;\n showAttachments: boolean;\n showMediaPageLinks: boolean;\n}\n\nexport const MessageDemo: Story<MessageDemoProps> = (args: MessageDemoProps) => {\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const attachments = [\n {\n id: '2499167340',\n name: 'Location',\n icon: 'document',\n meta: 'PNG 0.1 MB',\n thumbnail:\n 'https://pegasystems.github.io/uplus-wss/health_provider/img/secondary-options.jpg',\n actions\n },\n {\n id: '2499167341',\n name: 'FAQ with detailed terms and conditions of the policy',\n icon: 'document-pdf',\n meta: 'PDF 0.7 MB',\n actions\n }\n ];\n const mediaPageLinks = [\n {\n id: '2499167349',\n href: 'https://collaborate.pega.com/',\n thumbnail:\n 'https://community.pega.com/sites/default/files/styles/480/public/media/images/2020-02/AskExpert.png?itok=ef2MVbOV',\n title: 'Ask the expert'\n }\n ];\n return (\n <>\n <Message\n attachments={args.showAttachments ? attachments : undefined}\n mediaPageLinks={args.showMediaPageLinks ? mediaPageLinks : undefined}\n avatarInfo={\n args.direction === 'in' && args.senderType !== 'bot'\n ? {\n name: 'John Brown',\n imageSrc: args.showAvatarImage\n ? 'https://pegasystems.github.io/uplus-wss/insurance/img/option-1.jpg'\n : undefined\n }\n : undefined\n }\n timestamp={args.showTimestamp ? args.timestamp : undefined}\n status={args.showStatus ? args.status : undefined}\n message={args.message}\n direction={args.direction}\n senderType={args.senderType}\n senderId={createUID()}\n agentVariant={args.agentVariant}\n messageHeader={\n args.showHeader ? { content: args.headerContent, meta: args.headerMeta } : undefined\n }\n />\n </>\n );\n};\n\nMessageDemo.args = {\n direction: 'in',\n senderType: 'customer',\n agentVariant: 0,\n message: 'Hi, Welcome to u-plus. How can I help you ?',\n showStatus: true,\n status: 'delivered',\n showTimestamp: true,\n timestamp: '1:44 PM',\n showHeader: false,\n headerContent: 'Public Reply',\n headerMeta: 'I-12345',\n showAvatarImage: false,\n showAttachments: false,\n showMediaPageLinks: false\n};\n\nMessageDemo.argTypes = {\n direction: { options: ['in', 'out'], control: { type: 'inline-radio' } },\n senderType: { options: ['agent', 'customer', 'bot'], control: { type: 'inline-radio' } },\n agentVariant: { type: 'number' },\n message: { type: 'string' },\n showTimestamp: { type: 'boolean' },\n timestamp: { control: 'text' },\n showStatus: { type: 'boolean' },\n status: {\n options: ['delivered', 'opened', 'undeliverable'],\n control: { type: 'inline-radio' }\n },\n showHeader: { control: 'boolean' },\n headerContent: { control: 'text' },\n headerMeta: { control: 'text' },\n showAvatarImage: { control: 'boolean' },\n showAttachments: { control: 'boolean' },\n showMediaPageLinks: { control: 'boolean' }\n};\n/** ***************************** Message component - END *********************** */\n\n/** **************************** SystemMessage component - START ***************** */\nexport const SystemMessageDemo: Story<SystemMessageProps> = (args: SystemMessageProps) => (\n <SystemMessage message={args.message} timestamp={args.timestamp} variant={args.variant} />\n);\n\nSystemMessageDemo.args = {\n message: 'John Brown has joined',\n variant: 'secondary',\n timestamp: '10:00 AM'\n};\n\nSystemMessageDemo.argTypes = {\n message: { control: { type: 'text' } },\n variant: { options: ['primary', 'secondary'], control: { type: 'select' } },\n timestamp: { control: { type: 'text' } }\n};\n/** ***************************** SystemMessage component - END ******************** */\n\n/** ***************************** TypeIndicator component - START ****************** */\ninterface TypeIndicatorDemoProps {\n message?: string;\n}\nexport const TypeIndicatorDemo: Story<TypeIndicatorDemoProps> = (args: TypeIndicatorDemoProps) => {\n return (\n <TypeIndicator\n avatarInfo={{ name: 'John Brown' }}\n message={args.message}\n senderId='johnBrown'\n senderType='agent'\n />\n );\n};\n\nTypeIndicatorDemo.args = {\n message: ''\n};\n\nTypeIndicatorDemo.argTypes = {\n message: { control: { type: 'text' } }\n};\n/** *************************** TypeIndicator component - END *********************** */\n\n/** *************************** SuggestedReplyPicker component - START ****************** */\n\nexport const SuggestedReplyPickerDemo: Story = () => {\n return (\n <SuggestedReplyPicker\n replies={ChatMockData.suggestedReplies}\n onSelect={suggestedReply => {\n action(`Suggested reply picked ${suggestedReply.message}`)();\n }}\n onDismiss={action('Suggested reply dismissed')}\n />\n );\n};\n\n/** *************************** SuggestedReplyPicker component - END ****************** */\n\n/** ******************************* ChatComposer component - START ************************ */\ninterface ChatComposerDemoProps {\n maxAttachments?: number;\n}\n\nexport const ChatComposerDemo: Story<ChatComposerDemoProps> = (args: ChatComposerDemoProps) => (\n <ChatComposer\n maxAttachments={args.maxAttachments}\n attachments={ChatMockData.defaultAttachments}\n maxLength={256}\n placeholder='Type here to send message'\n onSend={() => {}}\n >\n <MenuButton text='Phrases' menu={{ items: [] }} />\n <MenuButton text='Page Push' menu={{ items: [] }} />\n </ChatComposer>\n);\n\nChatComposerDemo.args = {\n maxAttachments: 2\n};\n\nChatComposerDemo.argTypes = {\n maxAttachments: { control: { type: 'number' } }\n};\n/** *********************************** ChatComposer component - END ********************** */\n\n/** *********************************** Standard Chat component - START ******************** */\ninterface StandardChatProps {\n maxAttachments?: number;\n chatWidth?: string;\n chatHeight?: string;\n selectedChannel?: string;\n showChatBanner?: boolean;\n disableChat?: boolean;\n simulateConversation?: boolean;\n message?: string;\n placeholder?: string;\n defaultMessage?: string;\n maxLength?: number;\n loading?: boolean;\n}\n\nexport const StandardChat: Story<StandardChatProps> = (args: StandardChatProps) => {\n const ChatMockDataClone: any = useMemo(() => {\n return JSON.parse(JSON.stringify(ChatMockData));\n }, [ChatMockData]);\n\n const Channels: {\n label: string;\n options: any;\n } = {\n label: 'Channel',\n options: {\n LiveChat: {\n title: 'Live chat',\n icon: 'chat'\n },\n Twitter: {\n title: 'Twitter chat',\n icon: 'twitter'\n },\n Facebook: {\n title: 'Facebook messenger',\n icon: 'facebook'\n }\n }\n };\n\n const {\n chatMessages: mockChatMessagesJson,\n defaultAttachments,\n suggestedReplies\n }: {\n participants: any;\n chatMessages: any[];\n defaultAttachments: any[];\n suggestedReplies: SuggestedReply[];\n } = ChatMockDataClone;\n\n const { create } = useModalManager();\n\n const MyModal = () => {\n const { dismiss } = useModalContext();\n const { push } = useToaster();\n\n return (\n <Modal\n heading='Associate with case'\n actions={\n <>\n <Button\n onClick={() => {\n dismiss();\n push({ content: 'Cancelled' });\n }}\n >\n Cancel\n </Button>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n push({ content: 'Successfully Submitted!!' });\n }}\n >\n Submit\n </Button>\n </>\n }\n center\n >\n <Flex container={{ gap: 2, direction: 'column' }}>\n <SummaryItem\n primary={<Text variant='secondary'>Security policy</Text>}\n secondary={<Text variant='secondary'>PNG - 6.1MB</Text>}\n visual={<Icon name='document-doc' />}\n />\n <Select label='Select a service case' style={{ width: '15rem' }}>\n <Option value=''>Select…</Option>\n <Option value='Make payment' selected>\n Make payment\n </Option>\n <Option value='Facilities'>Facilities</Option>\n </Select>\n </Flex>\n </Modal>\n );\n };\n\n const onAssociateWithCase = () => {\n create(MyModal);\n };\n\n const actions: AttachmentItemProps['actions'] = [\n {\n text: 'Associate with case',\n id: 'Associate with case',\n onClick: () => {\n action('Associate with case');\n onAssociateWithCase();\n }\n },\n {\n text: 'Download',\n id: 'Download',\n onClick: () => {\n action('Download');\n }\n }\n ];\n\n const mockChatMessages = useMemo(() => {\n return [\n ...mockChatMessagesJson.map(message => {\n const { messagePrivacy, ...restMessageData } = message;\n if (messagePrivacy) {\n restMessageData.messageHeader = {\n content: <span>{messagePrivacy}</span>,\n meta: <Link href='/'>I-12345</Link>\n };\n }\n if (restMessageData.attachments) {\n restMessageData.attachments = restMessageData.attachments.map(\n (item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n }\n );\n }\n return restMessageData;\n })\n ];\n }, []);\n\n const conversationRef = useRef<ChatBodyHandleValue>(null);\n const timers = useRef<number[]>([]);\n\n useEffect(() => {\n return () => {\n timers.current.forEach(clearTimeout);\n };\n }, []);\n\n const [showSuggestedReplies, setShowSuggestedReplies] = useState(true);\n const [attachments, setAttachments] = useState<AttachmentItemProps[]>(defaultAttachments);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n const [chatMessages, setChatMessages] = useState<any[]>(\n LiveChatConversation.map(message => {\n if (message.type === 'message' && message.attachments) {\n message.attachments = message.attachments.map((item: AttachmentItemProps) => {\n return {\n ...item,\n actions\n };\n });\n }\n return message;\n })\n );\n const [contextItems, setContextItems] = useState<FieldValueListItemProps[]>([]);\n const [contextLoading, setContextLoading] = useState(false);\n\n const onDeleteAttachment = useCallback(\n (name: string) => {\n setAttachments(prevAttachments => prevAttachments.filter(item => item.name !== name));\n },\n [setAttachments]\n );\n\n useEffect(() => {\n setAttachments(\n defaultAttachments.map((item: any) => {\n return {\n ...item,\n onDelete: onDeleteAttachment\n };\n })\n );\n }, [defaultAttachments]);\n\n const appendMessage = (message: any) => {\n const incrementUnreadMessageCount = conversationRef.current?.isScrolledToLatest();\n setChatMessages(prevChatMessages => {\n const newMockMessage: any = {\n ...message\n };\n newMockMessage.id = `m-${message.id ? message.id : prevChatMessages.length}`;\n if (\n !incrementUnreadMessageCount &&\n prevChatMessages.filter(({ id }) => id === NewMessageSeparatorId).length === 0\n ) {\n return [\n ...prevChatMessages,\n {\n id: NewMessageSeparatorId,\n type: 'system',\n message: 'New messages',\n variant: 'primary'\n },\n newMockMessage\n ];\n }\n return [...prevChatMessages, newMockMessage];\n });\n if (!incrementUnreadMessageCount) {\n setUnreadMessageCount(prevCount => prevCount + 1);\n }\n };\n\n useEffect(() => {\n if (args.simulateConversation) {\n const timeOutId = setTimeout(() => {\n if (mockChatMessages.length) {\n appendMessage(mockChatMessages.shift());\n }\n }, 1500);\n return () => {\n clearTimeout(timeOutId);\n };\n }\n }, [chatMessages, args.simulateConversation]);\n\n const chatBanner: BannerProps = {\n messages: ['This is a public interaction and any responses will be public and visible'],\n variant: 'warning'\n };\n\n const bodyProps: ChatBodyProps = {\n unreadMessageCount,\n handle: conversationRef,\n transcripts: [\n { id: createUID(), messages: BotConversation },\n { id: createUID(), messages: ClaimsAgentConversation }\n ],\n liveChat: [\n ...chatMessages,\n {\n id: 'typingMessage',\n type: 'typing',\n avatarInfo: {\n name: 'Ginger Ventura'\n },\n message: args.message,\n senderId: 'gingerVentura',\n senderType: 'customer'\n }\n ],\n onScrollToButtonClick: () => {\n const timeOutId: number = window.setTimeout(() => {\n setChatMessages(prevChatMessages =>\n prevChatMessages.filter(({ id }) => id !== NewMessageSeparatorId)\n );\n timers.current = timers.current.filter(id => id !== timeOutId);\n }, 5000);\n timers.current.push(timeOutId);\n setUnreadMessageCount(0);\n },\n loadMore: action('Load more'),\n offset: 5,\n loading: args.loading\n };\n\n const chatComposerImperativeHandleRef = useRef<ChatComposerImperativeHandleProps>(null);\n\n const [mountPopover, setMountPopover] = useState(false);\n const specialKeysConfig = {\n keys: ['//'],\n onSpecialKey: (e: SyntheticEvent<HTMLTextAreaElement>, key: string) => {\n action(`Event is ${e}`)();\n action(`Typed special key is ${key}`)();\n if (chatComposerImperativeHandleRef.current) {\n setMountPopover(!mountPopover);\n }\n }\n };\n\n const insertPhrasesMessage = (message: string) => {\n if (chatComposerImperativeHandleRef.current) {\n chatComposerImperativeHandleRef.current.appendToMessage(message, 'specialKey');\n setMountPopover(false);\n }\n };\n\n useOuterEvent(\n 'mousedown',\n [chatComposerImperativeHandleRef?.current?.chatComposerRef?.current as Element],\n () => {\n setMountPopover(false);\n }\n );\n\n const [search, setSearch] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const searchEleRef = useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n\n const searchRegex = useMemo(() => {\n const escapedSearch = search.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(escapedSearch);\n }, [search]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n search\n ? menuHelpers.flatten(phrasesDisplayNames).filter(({ primary }: MenuItemProps) => {\n return searchRegex.test(primary);\n })\n : phrasesDisplayNames,\n item => {\n return {\n ...item\n };\n }\n );\n }, [search, phrasesDisplayNames, searchRegex]);\n\n useEffect(() => {\n if (isOpen) {\n searchEleRef?.current?.focus();\n }\n }, [isOpen, searchEleRef.current]);\n\n const menuID = createUID();\n const menuListID = `${menuID}--list`;\n const [buttonEl, setButtonEl] = useElement<HTMLButtonElement>(null);\n const [popoverEl, setPopoverEl] = useElement<HTMLElement>(null);\n\n useOuterEvent('mousedown', [popoverEl, buttonEl], () => {\n setIsOpen(false);\n setSearch('');\n });\n\n useEscape(() => {\n setIsOpen(false);\n });\n\n const pagePushItemsRender = useMemo(() => {\n return pagePushList.map(item => {\n return { id: item.id, primary: item.message };\n });\n }, [pagePushList]);\n\n const composerChildren = (\n <>\n <Button\n ref={setButtonEl}\n onClick={() => setIsOpen(cur => !cur)}\n variant='secondary'\n disabled={args.disableChat}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Text>Phrases</Text>\n <Icon name='arrow-micro-down' />\n </Flex>\n </Button>\n\n <Popover show={isOpen} ref={setPopoverEl} target={buttonEl}>\n <Menu\n id={menuID}\n listId={menuListID}\n mode='action'\n variant='flyout'\n items={itemsToRender}\n role='listbox'\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n setIsOpen(false);\n setSearch('');\n }}\n accent={search ? searchRegex : undefined}\n focusControlEl={searchEleRef.current || undefined}\n footer={\n <SearchInput\n ref={searchEleRef}\n onSearchChange={setSearch}\n value={search}\n role='searchbox'\n searchInputAriaLabel='Start typing to search.'\n />\n }\n />\n </Popover>\n\n <MenuButton\n text='Page push'\n disabled={args.disableChat}\n menu={{\n id: menuID,\n listId: menuListID,\n mode: 'action',\n variant: 'flyout',\n items: pagePushItemsRender,\n role: 'listbox',\n onItemClick: id => {\n setAnnouncement('Link inserted');\n setChatMessages(prevChatMessages => [\n ...prevChatMessages,\n pagePushList.filter(item => item.id === id)[0]\n ]);\n }\n }}\n />\n <Popover\n show={mountPopover}\n target={chatComposerImperativeHandleRef?.current?.textAreaRef?.current as Element}\n placement='top-start'\n >\n <Menu\n scrollAt={20}\n items={itemsToRender}\n onItemClick={id => {\n insertPhrasesMessage(phrasesMessages.filter(message => message.id === id)[0].message);\n setAnnouncement('Phrase inserted');\n }}\n focusControlEl={\n chatComposerImperativeHandleRef?.current?.textAreaRef?.current as\n | HTMLElement\n | undefined\n }\n />\n </Popover>\n </>\n );\n\n const composerProps: ChatComposerProps = {\n ref: chatComposerImperativeHandleRef,\n maxAttachments: args.maxAttachments,\n attachments,\n specialKeysConfig,\n showEmoji: true,\n disabled: args.disableChat,\n onAddAttachment: () => {\n setAttachments([\n ...attachments,\n {\n id: `${attachments.length} statement.pdf`,\n name: `${attachments.length} statement.pdf`,\n onDelete: onDeleteAttachment\n }\n ]);\n },\n maxLength: args.maxLength,\n placeholder: args.placeholder,\n defaultMessage: args.defaultMessage,\n onSend: (message: string) => {\n action(`onAppendMessage: ${message}`)();\n appendMessage({\n senderType: 'agent',\n direction: 'out',\n avatarInfo: {\n name: 'Edward Green'\n },\n type: 'message',\n message,\n timeStamp: '2:08'\n });\n },\n children: composerChildren\n };\n\n const suggestedReplyPickerProps: SuggestedReplyPickerProps = {\n replies: suggestedReplies,\n onSelect: (suggestedReply: SuggestedReply) => {\n chatComposerImperativeHandleRef.current?.appendToMessage(suggestedReply.message, 'cursor');\n setShowSuggestedReplies(false);\n },\n onDismiss: () => {\n setShowSuggestedReplies(false);\n }\n };\n\n const fetchGoogleSprite = () => {\n return 'https://unpkg.com/emoji-datasource-google@5.0.1/img/google/sheets-256/64.png';\n };\n\n return (\n <EmojiContext.Provider value={{ set: 'google', spriteSrcResolver: fetchGoogleSprite }}>\n <Flex\n container={{\n justify: 'center'\n }}\n style={{\n height: args.chatHeight || 'calc(100vh)',\n width: args.chatWidth || '30rem',\n margin: 'auto'\n }}\n >\n <VisuallyHiddenText aria-live='assertive'>{announcement}</VisuallyHiddenText>\n <Chat\n header={{\n title: Channels.options[args.selectedChannel || 'LiveChat'].title,\n icon: Channels.options[args.selectedChannel || 'LiveChat'].icon,\n customer: 'Ginger Ventura',\n authenticated: true,\n sentiment: { variant: 'positive' },\n context: {\n items: contextItems,\n onClick: () => {\n setContextLoading(true);\n setTimeout(() => {\n setContextItems(contextItemsMock);\n setContextLoading(false);\n }, 1000);\n },\n loading: contextLoading\n },\n actions: [\n { id: 'action-1', primary: 'Transfer' },\n { id: 'action-2', primary: 'End chat' }\n ]\n }}\n banner={args.showChatBanner ? chatBanner : undefined}\n body={bodyProps}\n suggestedReplyPicker={\n suggestedReplies.length > 0 && showSuggestedReplies\n ? suggestedReplyPickerProps\n : undefined\n }\n composer={composerProps}\n />\n </Flex>\n </EmojiContext.Provider>\n );\n};\n\nStandardChat.args = {\n maxAttachments: 2,\n selectedChannel: 'LiveChat',\n showChatBanner: true,\n disableChat: false,\n simulateConversation: false,\n message: '',\n placeholder: 'Enter message',\n defaultMessage:\n 'Greetings! Hope you are having a great time, Please reach out to us for any help, Thanks!',\n maxLength: 280,\n loading: false\n};\n\nStandardChat.argTypes = {\n maxAttachments: { control: { type: 'number' } },\n selectedChannel: { options: ['LiveChat', 'Twitter', 'Facebook'], control: { type: 'select' } },\n showChatBanner: { control: { type: 'boolean' } },\n disableChat: { control: { type: 'boolean' } },\n simulateConversation: { control: { type: 'boolean' } },\n message: { control: { type: 'text' } },\n placeholder: { control: { type: 'text' } },\n defaultMessage: { control: { type: 'text' } },\n maxLength: { control: { type: 'number' } },\n loading: { control: { type: 'boolean' } }\n};\n\nStandardChat.parameters = {\n layout: 'fullscreen'\n};\n\n/** *************************** Standard Chat component - END ************************ */\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/cosmos-react-demos",
3
- "version": "4.0.0-dev.12.0",
3
+ "version": "4.0.0-dev.12.1",
4
4
  "author": "Pegasystems",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -20,14 +20,14 @@
20
20
  "build": "tsc -b"
21
21
  },
22
22
  "dependencies": {
23
- "@pega/cosmos-react-build": "4.0.0-dev.12.0",
24
- "@pega/cosmos-react-condition-builder": "4.0.0-dev.12.0",
25
- "@pega/cosmos-react-core": "4.0.0-dev.12.0",
26
- "@pega/cosmos-react-cs": "4.0.0-dev.12.0",
27
- "@pega/cosmos-react-dnd": "4.0.0-dev.12.0",
28
- "@pega/cosmos-react-rte": "4.0.0-dev.12.0",
29
- "@pega/cosmos-react-social": "4.0.0-dev.12.0",
30
- "@pega/cosmos-react-work": "4.0.0-dev.12.0",
23
+ "@pega/cosmos-react-build": "4.0.0-dev.12.1",
24
+ "@pega/cosmos-react-condition-builder": "4.0.0-dev.12.1",
25
+ "@pega/cosmos-react-core": "4.0.0-dev.12.1",
26
+ "@pega/cosmos-react-cs": "4.0.0-dev.12.1",
27
+ "@pega/cosmos-react-dnd": "4.0.0-dev.12.1",
28
+ "@pega/cosmos-react-rte": "4.0.0-dev.12.1",
29
+ "@pega/cosmos-react-social": "4.0.0-dev.12.1",
30
+ "@pega/cosmos-react-work": "4.0.0-dev.12.1",
31
31
  "@types/emoji-mart": "^3.0.4",
32
32
  "@types/react": "^16.14.24 || ^17.0.38",
33
33
  "@types/react-dom": "^16.9.14 || ^17.0.11",