@pega/cosmos-react-demos 4.0.0-dev.18.3 → 4.0.0-dev.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/jsx/core/AppShell/AppShell.stories.d.ts +0 -2
  2. package/jsx/core/AppShell/AppShell.stories.d.ts.map +1 -1
  3. package/jsx/core/AppShell/AppShell.stories.jsx +1 -10
  4. package/jsx/core/AppShell/AppShell.stories.jsx.map +1 -1
  5. package/jsx/core/Icon/Icon.stories.d.ts +4 -1
  6. package/jsx/core/Icon/Icon.stories.d.ts.map +1 -1
  7. package/jsx/core/Icon/Icon.stories.jsx +26 -16
  8. package/jsx/core/Icon/Icon.stories.jsx.map +1 -1
  9. package/jsx/work/CaseView/Attachments.mocks.d.ts.map +1 -1
  10. package/jsx/work/CaseView/Attachments.mocks.jsx +1 -1
  11. package/jsx/work/CaseView/Attachments.mocks.jsx.map +1 -1
  12. package/jsx/work/CaseView/CaseView.mocks.d.ts.map +1 -1
  13. package/jsx/work/CaseView/CaseView.mocks.jsx +3 -3
  14. package/jsx/work/CaseView/CaseView.mocks.jsx.map +1 -1
  15. package/lib/core/AppShell/AppShell.stories.d.ts +0 -2
  16. package/lib/core/AppShell/AppShell.stories.d.ts.map +1 -1
  17. package/lib/core/AppShell/AppShell.stories.js +1 -10
  18. package/lib/core/AppShell/AppShell.stories.js.map +1 -1
  19. package/lib/core/Icon/Icon.stories.d.ts +4 -1
  20. package/lib/core/Icon/Icon.stories.d.ts.map +1 -1
  21. package/lib/core/Icon/Icon.stories.js +16 -8
  22. package/lib/core/Icon/Icon.stories.js.map +1 -1
  23. package/lib/work/CaseView/Attachments.mocks.d.ts.map +1 -1
  24. package/lib/work/CaseView/Attachments.mocks.js +1 -1
  25. package/lib/work/CaseView/Attachments.mocks.js.map +1 -1
  26. package/lib/work/CaseView/CaseView.mocks.d.ts.map +1 -1
  27. package/lib/work/CaseView/CaseView.mocks.js +3 -3
  28. package/lib/work/CaseView/CaseView.mocks.js.map +1 -1
  29. package/package.json +9 -9
@@ -23,8 +23,6 @@ interface AppShellStoryProps {
23
23
  withSearch?: boolean;
24
24
  appHeader?: AppShellProps['appHeader'];
25
25
  progress?: AppShellProps['progress'];
26
- environmentName?: string;
27
- environmentColor?: string;
28
26
  notificationsEmpty?: boolean;
29
27
  notificationsLoading?: boolean;
30
28
  casesTypesEmpty?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.stories.d.ts","sourceRoot":"","sources":["../../../src/core/AppShell/AppShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,aAAa,EAcd,MAAM,yBAAyB,CAAC;;AAiBjC,wBAOU;AAEV,UAAU,kBAAkB;IAE1B,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;IAC1D,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,kBAAkB,CA0PlD,CAAC;AA0CF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,yBAAyB,CAqBjE,CAAC"}
1
+ {"version":3,"file":"AppShell.stories.d.ts","sourceRoot":"","sources":["../../../src/core/AppShell/AppShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,aAAa,EAcd,MAAM,yBAAyB,CAAC;;AAiBjC,wBAOU;AAEV,UAAU,kBAAkB;IAE1B,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;IAC1D,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAkPlD,CAAC;AAsCF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,yBAAyB,CAqBjE,CAAC"}
@@ -204,12 +204,7 @@ export const AppShellDemo = (args) => {
204
204
  filters: ['Story', 'Bug'],
205
205
  advancedSearchLink: { href: '/' }
206
206
  }
207
- : undefined} appHeader={args.appHeader} searchPage={args.searchPage} caseTypes={args.casesTypesEmpty ? [] : args.createLinks || defaultCreateLinks} links={linksWithHandlers} main={args.main || defaultMainContent} progress={args.progress || progress} cases={args.cases} banners={args.banners} operator={operatorData} utils={args.utils || defaultUtils} environment={args.environmentName
208
- ? {
209
- name: args.environmentName,
210
- color: args.environmentColor
211
- }
212
- : undefined} collapsedHoverMenus={args.collapsedHoverMenus}/>);
207
+ : undefined} appHeader={args.appHeader} searchPage={args.searchPage} caseTypes={args.casesTypesEmpty ? [] : args.createLinks || defaultCreateLinks} links={linksWithHandlers} main={args.main || defaultMainContent} progress={args.progress || progress} cases={args.cases} banners={args.banners} operator={operatorData} utils={args.utils || defaultUtils} collapsedHoverMenus={args.collapsedHoverMenus}/>);
213
208
  };
214
209
  AppShellDemo.args = {
215
210
  appName: 'UI Audit',
@@ -221,8 +216,6 @@ AppShellDemo.args = {
221
216
  withSearch: true,
222
217
  appHeader: true,
223
218
  progress: false,
224
- environmentName: 'dev',
225
- environmentColor: '#FFDBDE',
226
219
  notificationsEmpty: false,
227
220
  notificationsLoading: false,
228
221
  casesTypesEmpty: false,
@@ -240,8 +233,6 @@ AppShellDemo.argTypes = {
240
233
  withSearch: { control: { type: 'boolean' } },
241
234
  appHeader: { control: { type: 'boolean' } },
242
235
  progress: { control: { type: 'boolean' } },
243
- environmentName: { control: { type: 'text' } },
244
- environmentColor: { control: { type: 'color' } },
245
236
  notificationsEmpty: { control: { type: 'boolean' } },
246
237
  notificationsLoading: { control: { type: 'boolean' } },
247
238
  casesTypesEmpty: { control: { type: 'boolean' } },
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.stories.jsx","sourceRoot":"","sources":["../../../src/core/AppShell/AppShell.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EACL,QAAQ,EAER,YAAY,EAGZ,IAAI,EACJ,YAAY,EACZ,eAAe,EAEf,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EAGb,WAAW,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,aAAa,MAAM,mEAAmE,CAAC;AACnG,OAAO,KAAK,cAAc,MAAM,oEAAoE,CAAC;AAErG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAE5C,eAAe;IACb,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,QAAQ;IACnB,cAAc,EAAE,CAAC,sBAAsB,CAAC;IACxC,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;CACM,CAAC;AAoCV,MAAM,CAAC,MAAM,YAAY,GAA8B,CAAC,IAAwB,EAAE,EAAE;IAClF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAyB,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GACrC,QAAQ,CAAqC,oBAAoB,CAAC,CAAC;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CACpC,IAAI,CAAC,WAAW,IAAI,cAAc,CACnC,CAAC;IACF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAC5D,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoC,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAiB,CAAC;IACpE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA2B,EAAE,CAAC,CAAC;IAEvE,qBAAqB,CAAC,GAAG,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,kBAAkB,GAAG,CAAC,aAAqC,EAA0B,EAAE;QAC3F,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,GAAG,IAAI;YACP,OAAO,CAAC,CAAgC;gBACtC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE;oBAC1B,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBAC9B,OAAO;4BACL,GAAG,QAAQ;4BACX,MAAM,EACJ,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gCAC3B,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;yBAC7D,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;gBACvC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,WAAW,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC;YACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAAyB,GAAG,EAAE;QAC7D,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,kBAAkB,GAAG;QACzB,wBAAwB;QACxB,oBAAoB;QACpB,2BAA2B;QAC3B,gCAAgC;QAChC,6BAA6B;KAC9B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,IAAI;QACJ,OAAO,EAAE,GAAG,EAAE;YACZ,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9E,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,uBAAuB,GAAG,CAAC,QAAgB,EAAE,EAAE;QACnD,gBAAgB,CAAC,GAAG,CAAC,EAAE,CACrB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE;YACF,MAAM,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YACxC,GAAG,IAAI;SACR,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC3C,UAAU,CAAC,GAAG,CAAC,EAAE,CACf,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE;YACF,MAAM,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC1C,GAAG,IAAI;SACR,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;QAC/B,YAAY,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,aAAa,EAAE;YACjB,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACxB;QACD,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,GAAG,EAAE;YACP,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACxB,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,gBAAgB,CAAC,OAA4B,CAAC,CAAC;SAChD;IACH,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG;QAC5B;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;YACnD,OAAO,EAAE,IAAI,CAAC,oBAAoB;YAClC,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG;aACV;YACD,SAAS,EAAE,kBAAkB;SAC9B;KACF,CAAC;IAEF,MAAM,eAAe,GAAG;QACtB;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,eAAe,EAAE,eAAe;YAChC,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG;aACV;YACD,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,cAAc;YAC3B,SAAS,EAAE,iBAAiB;SAC7B;QACD;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;YACvC,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,eAAe,EAAE,eAAe;YAChC,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG;aACV;YACD,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,iBAAiB;YAC9B,SAAS,EAAE,YAAY;SACxB;KACF,CAAC;IAEF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAmC;QACzE;YACE,EAAE,EAAE,GAAG;YACP,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAG;SAC5B;QACD;YACE,EAAE,EAAE,GAAG;YACP,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAG;SAC9B;KACF,CAAC,CAAC;IAEH,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAG;QACnB;YACE,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAG;YAClC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;YACxD,UAAU,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,EAAG;YAC7D,YAAY,EAAE,GAAG,EAAE;gBACjB,aAAa,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBACpD,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACD,aAAa,EAAE,GAAG,EAAE;gBAClB,IAAI,iBAAiB,EAAE;oBAGrB,4BAA4B,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;wBAC7D,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzC,CAAC,EAAE,KAAK,CAAC,CAAC;iBACX;YACH,CAAC;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAG;YACnC,UAAU,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAG;SACxD;KACF,CAAC;IAEF,OAAO,CACL,CAAC,QAAQ,CACP,eAAe,CAAC,CAAC;YACf,QAAQ;YACR,cAAc,EAAE,CAAC,EAAU,EAAE,EAAE;gBAC7B,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAE,CAAC,OAAO,CAAC,CAAC;gBAC7D,WAAW,CAAC,GAAG,CAAC,EAAE,CAChB,GAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACb,OAAO,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC7C,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;SACF,CAAC,CACF,OAAO,CAAC,CACN,IAAI,CAAC,OAAO,IAAI;YACd,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,uBAAuB;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,gCAAgC;YAC3D,YAAY,EACV,IAAI,CAAC,YAAY;gBACjB,uEAAuE;YACzE,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO;YACtC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CACF,CACD,WAAW,CAAC,CACV,UAAU;YACR,CAAC,CAAC;gBACE,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE;oBAChC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC;gBACD,KAAK,EAAE,SAAS;gBAChB,aAAa,EAAE,OAAO;gBACtB,cAAc;gBACd,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;gBACzB,kBAAkB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;aAClC;YACH,CAAC,CAAC,SAAS,CACd,CACD,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAC5B,SAAS,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC,CAC9E,KAAK,CAAC,CAAC,iBAAiB,CAAC,CACzB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC,CACtC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CACpC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAClB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CACtB,QAAQ,CAAC,CAAC,YAAY,CAAC,CACvB,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,CAClC,WAAW,CAAC,CACV,IAAI,CAAC,eAAe;YAClB,CAAC,CAAC;gBACE,IAAI,EAAE,IAAI,CAAC,eAAe;gBAC1B,KAAK,EAAE,IAAI,CAAC,gBAAgB;aAC7B;YACH,CAAC,CAAC,SAAS,CACd,CACD,mBAAmB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAC9C,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,YAAY,CAAC,IAAI,GAAG;IAClB,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,uBAAuB;IAC7B,QAAQ,EAAE,gCAAgC;IAC1C,YAAY,EAAE,uEAAuE;IACrF,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,SAAS;IAC3B,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,YAAY,CAAC,QAAQ,GAAG;IACtB,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACtC,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC/C,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACzC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACnC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACvC,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC3C,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC5C,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC3C,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC1C,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC9C,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAChD,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACpD,oBAAoB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACtD,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACjD,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC9C,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAChD,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CAC9C,CAAC;AAOF,MAAM,CAAC,MAAM,oBAAoB,GAAqC,CACpE,IAA+B,EAC/B,EAAE;IACF,OAAO,CACL,CAAC,aAAa,CACZ,KAAK,CAAC,CAAC;YACL,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,GAAG,EAAE;wBACH,kBAAkB,EAAE,IAAI,CAAC,QAAQ;qBAClC;oBACD,MAAM,EAAE;wBACN,kBAAkB,EAAE,IAAI,CAAC,WAAW;qBACrC;iBACF;aACF;SACF,CAAC,CAEF;MAAA,CAAC,YAAY,CAAC,SAAS,EACzB;IAAA,EAAE,aAAa,CAAC,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,oBAAoB,CAAC,IAAI,GAAG;IAC1B,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;CACvB,CAAC;AAEF,oBAAoB,CAAC,QAAQ,GAAG;IAC9B,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IACxC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;CAC5C,CAAC","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { MouseEvent, useState, useMemo, useRef } from 'react';\n\nimport {\n AppShell,\n AppShellProps,\n AppShellList,\n ContextSwitcherProps,\n DrawerItemProps,\n Icon,\n registerIcon,\n useModalManager,\n ForwardProps,\n useAfterInitialEffect,\n windowIsAvailable,\n Configuration,\n SearchInputProps,\n ProgressProps,\n menuHelpers\n} from '@pega/cosmos-react-core';\nimport * as bellSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/bell-solid.icon';\nimport * as clockSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/clock-solid.icon';\n\nimport { recentSearches, searchResults } from '../SearchInput/SearchInput.mocks';\nimport { MultiStepModal } from '../MultiStepForm/MultiStepForm.mocks';\n\nimport {\n defaultLinks,\n defaultMainContent,\n defaultNotifications,\n defaultRecents,\n operatorData\n} from './AppShell.mocks';\n\nregisterIcon(bellSolidIcon, clockSolidIcon);\n\nexport default {\n title: 'Core/App Shell',\n component: AppShell,\n excludeStories: ['ConfigurableAppShell'],\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\ninterface AppShellStoryProps {\n /** Demo props */\n main?: AppShellProps['main'];\n appInfo?: AppShellProps['appInfo'];\n searchPage?: AppShellProps['searchPage'];\n banners?: AppShellProps['banners'];\n cases?: AppShellProps['cases'];\n caseLinks?: AppShellProps['links'];\n createLinks?: any[];\n recentItems?: any[];\n utils?: AppShellProps['utils'];\n onLinkClick?: (name: string) => void;\n collapsedHoverMenus?: boolean;\n\n /** Storybook controls */\n appName?: AppShellProps['appInfo']['appName'];\n appNameHidden?: AppShellProps['appInfo']['appNameHidden'];\n portalName?: AppShellProps['appInfo']['portalName'];\n href?: AppShellProps['appInfo']['href'];\n imageSrc?: AppShellProps['appInfo']['imageSrc'];\n fullImageSrc?: AppShellProps['appInfo']['fullImageSrc'];\n withSearch?: boolean;\n appHeader?: AppShellProps['appHeader'];\n progress?: AppShellProps['progress'];\n environmentName?: string;\n environmentColor?: string;\n notificationsEmpty?: boolean;\n notificationsLoading?: boolean;\n casesTypesEmpty?: boolean;\n recentsEmpty?: boolean;\n recentsLoading?: boolean;\n pinsLoading?: boolean;\n}\n\nexport const AppShellDemo: Story<AppShellStoryProps> = (args: AppShellStoryProps) => {\n const [activeAppName, setActiveAppName] = useState(args.appName || 'UI Audit');\n const caseLinks = args.caseLinks || defaultLinks;\n const showSearch = args.withSearch !== undefined ? args.withSearch : true;\n\n const { create: createModal } = useModalManager();\n const [links, setLinks] = useState<AppShellProps['links']>(caseLinks);\n const [notifications, setNotifications] =\n useState<(DrawerItemProps & ForwardProps)[]>(defaultNotifications);\n const [recents, setRecents] = useState<(DrawerItemProps & ForwardProps)[]>(\n args.recentItems || defaultRecents\n );\n const [numNewNotifications, setNumNewNotifications] = useState(\n notifications.filter(x => x.unread).length\n );\n const [searchVal, setSearchVal] = useState('');\n const [searchLoading, setSearchLoading] = useState(false);\n const [results, setResults] = useState<SearchInputProps['searchResults']>([]);\n const [searchTimeout, setSearchTimeout] = useState<number | null>();\n const [progress, setProgress] = useState<ProgressProps['message']>('');\n\n useAfterInitialEffect(() => {\n setLinks(caseLinks);\n }, [caseLinks]);\n\n const addHandlersToLinks = (appShellLinks: AppShellProps['links']): AppShellProps['links'] => {\n return (appShellLinks || []).map(link => ({\n ...link,\n onClick(e: MouseEvent<HTMLAnchorElement>) {\n e.preventDefault();\n setLinks((prevLinks = []) => {\n return prevLinks.map(prevLink => {\n return {\n ...prevLink,\n active:\n prevLink.name === link.name ||\n !!prevLink.links?.filter(l => l.name === link.name).length\n };\n });\n });\n\n setProgress(`${link.name} loading...`);\n setTimeout(() => {\n args.onLinkClick?.(link.name);\n setProgress('');\n }, 1000);\n },\n links: link.links ? addHandlersToLinks(link.links) : undefined\n }));\n };\n\n const linksWithHandlers = useMemo<AppShellProps['links']>(() => {\n return addHandlersToLinks(links);\n }, [links]);\n\n const defaultCreateLinks = [\n 'Data Analyst interview',\n 'Designer interview',\n 'Product Manager interview',\n 'Sales Representative interview',\n 'Software Engineer interview'\n ].map(name => ({\n name,\n onClick: () => {\n createModal(MultiStepModal, { heading: name, stepIndicator: 'horizontal' });\n }\n }));\n\n const handleNotificationClick = (passedId: string) => {\n setNotifications(cur =>\n cur.map(({ id, unread, ...item }) => ({\n id,\n unread: passedId === id ? false : unread,\n ...item\n }))\n );\n };\n\n const handlePinToggle = (passedId: string) => {\n setRecents(cur =>\n cur.map(({ id, pinned, ...item }) => ({\n id,\n pinned: passedId === id ? !pinned : pinned,\n ...item\n }))\n );\n };\n\n const onSearch = (val: string) => {\n setSearchVal(val);\n if (searchTimeout) {\n clearTimeout(searchTimeout);\n setSearchTimeout(null);\n }\n setResults([]);\n if (val) {\n setSearchLoading(true);\n const timeout = setTimeout(() => {\n setSearchLoading(false);\n setResults(searchResults.filter(res => res.primary.includes(val)));\n }, 1000);\n setSearchTimeout(timeout as unknown as number);\n }\n };\n\n const notificationViewItems = [\n {\n id: '234',\n items: args.notificationsEmpty ? [] : notifications,\n loading: args.notificationsLoading,\n onItemClick: handleNotificationClick,\n viewAll: {\n href: '#'\n },\n emptyText: 'No notifications'\n }\n ];\n\n const recentViewItems = [\n {\n id: '456',\n items: recents.filter(x => x.pinned),\n loading: args.pinsLoading,\n onItemPinToggle: handlePinToggle,\n viewAll: {\n href: '#'\n },\n displayPins: true,\n headingText: 'Pinned items',\n emptyText: 'No pinned items'\n },\n {\n id: '789',\n items: args.recentsEmpty ? [] : recents,\n loading: args.recentsLoading,\n onItemPinToggle: handlePinToggle,\n viewAll: {\n href: '#'\n },\n displayPins: true,\n headingText: 'Recently viewed',\n emptyText: 'No recents'\n }\n ];\n\n const [contexts, setContexts] = useState<ContextSwitcherProps['contexts']>([\n {\n id: '1',\n primary: activeAppName,\n selected: true,\n visual: <Icon name='app' />\n },\n {\n id: '2',\n primary: 'BI Warehouse',\n selected: false,\n visual: <Icon name='cloud' />\n }\n ]);\n\n const newNotificationCountTimerRef = useRef(NaN);\n\n const defaultUtils = [\n {\n name: 'Notifications',\n visual: <Icon name='bell-solid' />,\n count: args.notificationsEmpty ? 0 : numNewNotifications,\n drawerView: <AppShellList listView={notificationViewItems} />,\n onDrawerOpen: () => {\n clearInterval(newNotificationCountTimerRef.current);\n setNumNewNotifications(0);\n },\n onDrawerClose: () => {\n if (windowIsAvailable) {\n // Mock new notifications arriving on a minute interval after the drawer closes.\n // Let's face it, you're popular.\n newNotificationCountTimerRef.current = window.setInterval(() => {\n setNumNewNotifications(cur => cur + 2);\n }, 60000);\n }\n }\n },\n {\n name: 'Recents',\n visual: <Icon name='clock-solid' />,\n drawerView: <AppShellList listView={recentViewItems} />\n }\n ];\n\n return (\n <AppShell\n contextSwitcher={{\n contexts,\n onContextClick: (id: string) => {\n setActiveAppName(menuHelpers.getItem(contexts, id)!.primary);\n setContexts(cur =>\n cur!.map(ctx => {\n return { ...ctx, selected: id === ctx.id };\n })\n );\n }\n }}\n appInfo={\n args.appInfo || {\n href: args.href || 'https://www.pega.com/',\n imageSrc: args.imageSrc || './pega_logo_vertical_white.svg',\n fullImageSrc:\n args.fullImageSrc ||\n 'https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg',\n appName: activeAppName,\n portalName: args.portalName || 'Scrum',\n appNameHidden: args.appNameHidden\n }\n }\n searchInput={\n showSearch\n ? {\n onSearchChange: (value: string) => {\n onSearch(value);\n },\n value: searchVal,\n searchResults: results,\n recentSearches,\n loading: searchLoading,\n filters: ['Story', 'Bug'],\n advancedSearchLink: { href: '/' }\n }\n : undefined\n }\n appHeader={args.appHeader}\n searchPage={args.searchPage}\n caseTypes={args.casesTypesEmpty ? [] : args.createLinks || defaultCreateLinks}\n links={linksWithHandlers}\n main={args.main || defaultMainContent}\n progress={args.progress || progress}\n cases={args.cases}\n banners={args.banners}\n operator={operatorData}\n utils={args.utils || defaultUtils}\n environment={\n args.environmentName\n ? {\n name: args.environmentName,\n color: args.environmentColor\n }\n : undefined\n }\n collapsedHoverMenus={args.collapsedHoverMenus}\n />\n );\n};\n\nAppShellDemo.args = {\n appName: 'UI Audit',\n appNameHidden: false,\n portalName: 'Scrum',\n href: 'https://www.pega.com/',\n imageSrc: './pega_logo_vertical_white.svg',\n fullImageSrc: 'https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg',\n withSearch: true,\n appHeader: true,\n progress: false,\n environmentName: 'dev',\n environmentColor: '#FFDBDE',\n notificationsEmpty: false,\n notificationsLoading: false,\n casesTypesEmpty: false,\n recentsEmpty: false,\n recentsLoading: false,\n pinsLoading: false\n};\n\nAppShellDemo.argTypes = {\n appName: { control: { type: 'text' } },\n appNameHidden: { control: { type: 'boolean' } },\n portalName: { control: { type: 'text' } },\n href: { control: { type: 'text' } },\n imageSrc: { control: { type: 'text' } },\n fullImageSrc: { control: { type: 'text' } },\n withSearch: { control: { type: 'boolean' } },\n appHeader: { control: { type: 'boolean' } },\n progress: { control: { type: 'boolean' } },\n environmentName: { control: { type: 'text' } },\n environmentColor: { control: { type: 'color' } },\n notificationsEmpty: { control: { type: 'boolean' } },\n notificationsLoading: { control: { type: 'boolean' } },\n casesTypesEmpty: { control: { type: 'boolean' } },\n recentsEmpty: { control: { type: 'boolean' } },\n recentsLoading: { control: { type: 'boolean' } },\n pinsLoading: { control: { type: 'boolean' } }\n};\n\ninterface ConfigurableAppShellProps {\n navColor?: string;\n headerColor?: string;\n}\n\nexport const ConfigurableAppShell: Story<ConfigurableAppShellProps> = (\n args: ConfigurableAppShellProps\n) => {\n return (\n <Configuration\n theme={{\n components: {\n 'app-shell': {\n nav: {\n 'background-color': args.navColor\n },\n header: {\n 'background-color': args.headerColor\n }\n }\n }\n }}\n >\n <AppShellDemo appHeader />\n </Configuration>\n );\n};\n\nConfigurableAppShell.args = {\n navColor: '#252c32',\n headerColor: '#e2f1ff'\n};\n\nConfigurableAppShell.argTypes = {\n navColor: { control: { type: 'color' } },\n headerColor: { control: { type: 'color' } }\n};\n"]}
1
+ {"version":3,"file":"AppShell.stories.jsx","sourceRoot":"","sources":["../../../src/core/AppShell/AppShell.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { MouseEvent, useState, useMemo, useRef } from 'react';\n\nimport {\n AppShell,\n AppShellProps,\n AppShellList,\n ContextSwitcherProps,\n DrawerItemProps,\n Icon,\n registerIcon,\n useModalManager,\n ForwardProps,\n useAfterInitialEffect,\n windowIsAvailable,\n Configuration,\n SearchInputProps,\n ProgressProps,\n menuHelpers\n} from '@pega/cosmos-react-core';\nimport * as bellSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/bell-solid.icon';\nimport * as clockSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/clock-solid.icon';\n\nimport { recentSearches, searchResults } from '../SearchInput/SearchInput.mocks';\nimport { MultiStepModal } from '../MultiStepForm/MultiStepForm.mocks';\n\nimport {\n defaultLinks,\n defaultMainContent,\n defaultNotifications,\n defaultRecents,\n operatorData\n} from './AppShell.mocks';\n\nregisterIcon(bellSolidIcon, clockSolidIcon);\n\nexport default {\n title: 'Core/App Shell',\n component: AppShell,\n excludeStories: ['ConfigurableAppShell'],\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\ninterface AppShellStoryProps {\n /** Demo props */\n main?: AppShellProps['main'];\n appInfo?: AppShellProps['appInfo'];\n searchPage?: AppShellProps['searchPage'];\n banners?: AppShellProps['banners'];\n cases?: AppShellProps['cases'];\n caseLinks?: AppShellProps['links'];\n createLinks?: any[];\n recentItems?: any[];\n utils?: AppShellProps['utils'];\n onLinkClick?: (name: string) => void;\n collapsedHoverMenus?: boolean;\n\n /** Storybook controls */\n appName?: AppShellProps['appInfo']['appName'];\n appNameHidden?: AppShellProps['appInfo']['appNameHidden'];\n portalName?: AppShellProps['appInfo']['portalName'];\n href?: AppShellProps['appInfo']['href'];\n imageSrc?: AppShellProps['appInfo']['imageSrc'];\n fullImageSrc?: AppShellProps['appInfo']['fullImageSrc'];\n withSearch?: boolean;\n appHeader?: AppShellProps['appHeader'];\n progress?: AppShellProps['progress'];\n notificationsEmpty?: boolean;\n notificationsLoading?: boolean;\n casesTypesEmpty?: boolean;\n recentsEmpty?: boolean;\n recentsLoading?: boolean;\n pinsLoading?: boolean;\n}\n\nexport const AppShellDemo: Story<AppShellStoryProps> = (args: AppShellStoryProps) => {\n const [activeAppName, setActiveAppName] = useState(args.appName || 'UI Audit');\n const caseLinks = args.caseLinks || defaultLinks;\n const showSearch = args.withSearch !== undefined ? args.withSearch : true;\n\n const { create: createModal } = useModalManager();\n const [links, setLinks] = useState<AppShellProps['links']>(caseLinks);\n const [notifications, setNotifications] =\n useState<(DrawerItemProps & ForwardProps)[]>(defaultNotifications);\n const [recents, setRecents] = useState<(DrawerItemProps & ForwardProps)[]>(\n args.recentItems || defaultRecents\n );\n const [numNewNotifications, setNumNewNotifications] = useState(\n notifications.filter(x => x.unread).length\n );\n const [searchVal, setSearchVal] = useState('');\n const [searchLoading, setSearchLoading] = useState(false);\n const [results, setResults] = useState<SearchInputProps['searchResults']>([]);\n const [searchTimeout, setSearchTimeout] = useState<number | null>();\n const [progress, setProgress] = useState<ProgressProps['message']>('');\n\n useAfterInitialEffect(() => {\n setLinks(caseLinks);\n }, [caseLinks]);\n\n const addHandlersToLinks = (appShellLinks: AppShellProps['links']): AppShellProps['links'] => {\n return (appShellLinks || []).map(link => ({\n ...link,\n onClick(e: MouseEvent<HTMLAnchorElement>) {\n e.preventDefault();\n setLinks((prevLinks = []) => {\n return prevLinks.map(prevLink => {\n return {\n ...prevLink,\n active:\n prevLink.name === link.name ||\n !!prevLink.links?.filter(l => l.name === link.name).length\n };\n });\n });\n\n setProgress(`${link.name} loading...`);\n setTimeout(() => {\n args.onLinkClick?.(link.name);\n setProgress('');\n }, 1000);\n },\n links: link.links ? addHandlersToLinks(link.links) : undefined\n }));\n };\n\n const linksWithHandlers = useMemo<AppShellProps['links']>(() => {\n return addHandlersToLinks(links);\n }, [links]);\n\n const defaultCreateLinks = [\n 'Data Analyst interview',\n 'Designer interview',\n 'Product Manager interview',\n 'Sales Representative interview',\n 'Software Engineer interview'\n ].map(name => ({\n name,\n onClick: () => {\n createModal(MultiStepModal, { heading: name, stepIndicator: 'horizontal' });\n }\n }));\n\n const handleNotificationClick = (passedId: string) => {\n setNotifications(cur =>\n cur.map(({ id, unread, ...item }) => ({\n id,\n unread: passedId === id ? false : unread,\n ...item\n }))\n );\n };\n\n const handlePinToggle = (passedId: string) => {\n setRecents(cur =>\n cur.map(({ id, pinned, ...item }) => ({\n id,\n pinned: passedId === id ? !pinned : pinned,\n ...item\n }))\n );\n };\n\n const onSearch = (val: string) => {\n setSearchVal(val);\n if (searchTimeout) {\n clearTimeout(searchTimeout);\n setSearchTimeout(null);\n }\n setResults([]);\n if (val) {\n setSearchLoading(true);\n const timeout = setTimeout(() => {\n setSearchLoading(false);\n setResults(searchResults.filter(res => res.primary.includes(val)));\n }, 1000);\n setSearchTimeout(timeout as unknown as number);\n }\n };\n\n const notificationViewItems = [\n {\n id: '234',\n items: args.notificationsEmpty ? [] : notifications,\n loading: args.notificationsLoading,\n onItemClick: handleNotificationClick,\n viewAll: {\n href: '#'\n },\n emptyText: 'No notifications'\n }\n ];\n\n const recentViewItems = [\n {\n id: '456',\n items: recents.filter(x => x.pinned),\n loading: args.pinsLoading,\n onItemPinToggle: handlePinToggle,\n viewAll: {\n href: '#'\n },\n displayPins: true,\n headingText: 'Pinned items',\n emptyText: 'No pinned items'\n },\n {\n id: '789',\n items: args.recentsEmpty ? [] : recents,\n loading: args.recentsLoading,\n onItemPinToggle: handlePinToggle,\n viewAll: {\n href: '#'\n },\n displayPins: true,\n headingText: 'Recently viewed',\n emptyText: 'No recents'\n }\n ];\n\n const [contexts, setContexts] = useState<ContextSwitcherProps['contexts']>([\n {\n id: '1',\n primary: activeAppName,\n selected: true,\n visual: <Icon name='app' />\n },\n {\n id: '2',\n primary: 'BI Warehouse',\n selected: false,\n visual: <Icon name='cloud' />\n }\n ]);\n\n const newNotificationCountTimerRef = useRef(NaN);\n\n const defaultUtils = [\n {\n name: 'Notifications',\n visual: <Icon name='bell-solid' />,\n count: args.notificationsEmpty ? 0 : numNewNotifications,\n drawerView: <AppShellList listView={notificationViewItems} />,\n onDrawerOpen: () => {\n clearInterval(newNotificationCountTimerRef.current);\n setNumNewNotifications(0);\n },\n onDrawerClose: () => {\n if (windowIsAvailable) {\n // Mock new notifications arriving on a minute interval after the drawer closes.\n // Let's face it, you're popular.\n newNotificationCountTimerRef.current = window.setInterval(() => {\n setNumNewNotifications(cur => cur + 2);\n }, 60000);\n }\n }\n },\n {\n name: 'Recents',\n visual: <Icon name='clock-solid' />,\n drawerView: <AppShellList listView={recentViewItems} />\n }\n ];\n\n return (\n <AppShell\n contextSwitcher={{\n contexts,\n onContextClick: (id: string) => {\n setActiveAppName(menuHelpers.getItem(contexts, id)!.primary);\n setContexts(cur =>\n cur!.map(ctx => {\n return { ...ctx, selected: id === ctx.id };\n })\n );\n }\n }}\n appInfo={\n args.appInfo || {\n href: args.href || 'https://www.pega.com/',\n imageSrc: args.imageSrc || './pega_logo_vertical_white.svg',\n fullImageSrc:\n args.fullImageSrc ||\n 'https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg',\n appName: activeAppName,\n portalName: args.portalName || 'Scrum',\n appNameHidden: args.appNameHidden\n }\n }\n searchInput={\n showSearch\n ? {\n onSearchChange: (value: string) => {\n onSearch(value);\n },\n value: searchVal,\n searchResults: results,\n recentSearches,\n loading: searchLoading,\n filters: ['Story', 'Bug'],\n advancedSearchLink: { href: '/' }\n }\n : undefined\n }\n appHeader={args.appHeader}\n searchPage={args.searchPage}\n caseTypes={args.casesTypesEmpty ? [] : args.createLinks || defaultCreateLinks}\n links={linksWithHandlers}\n main={args.main || defaultMainContent}\n progress={args.progress || progress}\n cases={args.cases}\n banners={args.banners}\n operator={operatorData}\n utils={args.utils || defaultUtils}\n collapsedHoverMenus={args.collapsedHoverMenus}\n />\n );\n};\n\nAppShellDemo.args = {\n appName: 'UI Audit',\n appNameHidden: false,\n portalName: 'Scrum',\n href: 'https://www.pega.com/',\n imageSrc: './pega_logo_vertical_white.svg',\n fullImageSrc: 'https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg',\n withSearch: true,\n appHeader: true,\n progress: false,\n notificationsEmpty: false,\n notificationsLoading: false,\n casesTypesEmpty: false,\n recentsEmpty: false,\n recentsLoading: false,\n pinsLoading: false\n};\n\nAppShellDemo.argTypes = {\n appName: { control: { type: 'text' } },\n appNameHidden: { control: { type: 'boolean' } },\n portalName: { control: { type: 'text' } },\n href: { control: { type: 'text' } },\n imageSrc: { control: { type: 'text' } },\n fullImageSrc: { control: { type: 'text' } },\n withSearch: { control: { type: 'boolean' } },\n appHeader: { control: { type: 'boolean' } },\n progress: { control: { type: 'boolean' } },\n notificationsEmpty: { control: { type: 'boolean' } },\n notificationsLoading: { control: { type: 'boolean' } },\n casesTypesEmpty: { control: { type: 'boolean' } },\n recentsEmpty: { control: { type: 'boolean' } },\n recentsLoading: { control: { type: 'boolean' } },\n pinsLoading: { control: { type: 'boolean' } }\n};\n\ninterface ConfigurableAppShellProps {\n navColor?: string;\n headerColor?: string;\n}\n\nexport const ConfigurableAppShell: Story<ConfigurableAppShellProps> = (\n args: ConfigurableAppShellProps\n) => {\n return (\n <Configuration\n theme={{\n components: {\n 'app-shell': {\n nav: {\n 'background-color': args.navColor\n },\n header: {\n 'background-color': args.headerColor\n }\n }\n }\n }}\n >\n <AppShellDemo appHeader />\n </Configuration>\n );\n};\n\nConfigurableAppShell.args = {\n navColor: '#252c32',\n headerColor: '#e2f1ff'\n};\n\nConfigurableAppShell.argTypes = {\n navColor: { control: { type: 'color' } },\n headerColor: { control: { type: 'color' } }\n};\n"]}
@@ -4,5 +4,8 @@ export default _default;
4
4
  export declare const StaticIcon: Story;
5
5
  export declare const CustomIcon: Story;
6
6
  export declare const DynamicIcon: Story;
7
- export declare const IconList: Story;
7
+ interface IconListProps {
8
+ set: 'budicon' | 'streamline';
9
+ }
10
+ export declare const IconList: Story<IconListProps>;
8
11
  //# sourceMappingURL=Icon.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Icon/Icon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;AAqB/C,wBAGU;AAIV,eAAO,MAAM,UAAU,EAAE,KASxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAsEtB,CAAC"}
1
+ {"version":3,"file":"Icon.stories.d.ts","sourceRoot":"","sources":["../../../src/core/Icon/Icon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;AAsB/C,wBAGU;AAIV,eAAO,MAAM,UAAU,EAAE,KASxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,UAAU,aAAa;IACrB,GAAG,EAAE,SAAS,GAAG,YAAY,CAAC;CAC/B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,aAAa,CAwEzC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useMemo, useState, useCallback, useRef } from 'react';
2
- import { EmptyState, Flex, Icon, icons, registerIcon, Progress, SearchInput, Text, useItemIntersection, useTheme } from '@pega/cosmos-react-core';
2
+ import { EmptyState, Flex, Icon, icons, streamlineIcons, registerIcon, Progress, SearchInput, Text, useItemIntersection, useTheme, Configuration } from '@pega/cosmos-react-core';
3
3
  import * as pegasusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/pegasus.icon';
4
4
  import { createCustomIcon } from './Icon.mocks';
5
5
  import { StyledIconList, StyledIconListItem, StyledProgressContainer } from './Icon.styles';
@@ -9,7 +9,7 @@ export default {
9
9
  };
10
10
  registerIcon(pegasusIcon);
11
11
  export const StaticIcon = () => {
12
- return (<Icon style={{ height: '5rem', width: '5rem' }} name='pegaus' role='img' aria-label='Informative label'/>);
12
+ return (<Icon style={{ height: '5rem', width: '5rem' }} name='pegasus' role='img' aria-label='Informative label'/>);
13
13
  };
14
14
  export const CustomIcon = () => {
15
15
  const theme = useTheme();
@@ -19,16 +19,15 @@ export const CustomIcon = () => {
19
19
  export const DynamicIcon = () => {
20
20
  return <Icon style={{ height: '5rem', width: '5rem' }} role='img' name='pega'/>;
21
21
  };
22
- export const IconList = () => {
22
+ export const IconList = (args) => {
23
23
  const pageSize = 50;
24
24
  const [search, setSearch] = useState('');
25
25
  const totalMatches = useRef(0);
26
26
  const [currentPageIndex, setCurrentPageIndex] = useState(0);
27
27
  const ulRef = useRef(null);
28
+ const iconList = args.set === 'budicon' ? icons : streamlineIcons;
28
29
  const listContent = useMemo(() => {
29
- const matches = search
30
- ? icons.filter(icon => icon.includes(search))
31
- : icons;
30
+ const matches = search ? iconList.filter(icon => icon.includes(search)) : iconList;
32
31
  const totalItemsToRender = (1 + currentPageIndex) * pageSize;
33
32
  totalMatches.current = matches.length;
34
33
  if (matches.length === 0) {
@@ -43,7 +42,7 @@ export const IconList = () => {
43
42
  <Icon style={{ height: '3rem', width: '3rem' }} name={icon}/>
44
43
  <p style={{ textAlign: 'center' }}>{icon}</p>
45
44
  </Flex>));
46
- }, [search, currentPageIndex]);
45
+ }, [iconList, search, currentPageIndex]);
47
46
  const itemsShown = Math.min(totalMatches.current, (1 + currentPageIndex) * pageSize);
48
47
  const itemsToLoadMore = totalMatches.current - itemsShown;
49
48
  useItemIntersection(ulRef, itemsShown, () => {
@@ -54,15 +53,26 @@ export const IconList = () => {
54
53
  setCurrentPageIndex(0);
55
54
  ulRef?.current?.scrollIntoView();
56
55
  }, []);
57
- return (<Flex container={{ direction: 'column', gap: 1 }} style={{ height: '90vh' }}>
58
- <SearchInput value={search} onSearchChange={onSearchChange}/>
59
- {itemsShown > 0 && <Text variant='secondary'>{totalMatches.current} results</Text>}
60
- <Flex container={{ wrap: 'wrap', alignContent: 'start' }} as={StyledIconList} ref={ulRef}>
61
- {listContent}
62
- {itemsToLoadMore > 0 && (<StyledProgressContainer>
63
- <Progress placement='local'/>
64
- </StyledProgressContainer>)}
56
+ return (<Configuration theme={{ base: { 'icon-set': args.set } }}>
57
+ <Flex container={{ direction: 'column', gap: 1 }} style={{ height: 'calc(100vh - 2rem)' }}>
58
+ <SearchInput value={search} onSearchChange={onSearchChange}/>
59
+ {itemsShown > 0 && <Text variant='secondary'>{totalMatches.current} results</Text>}
60
+ <Flex container={{ wrap: 'wrap', alignContent: 'start' }} as={StyledIconList} ref={ulRef}>
61
+ {listContent}
62
+ {itemsToLoadMore > 0 && (<StyledProgressContainer>
63
+ <Progress placement='local'/>
64
+ </StyledProgressContainer>)}
65
+ </Flex>
65
66
  </Flex>
66
- </Flex>);
67
+ </Configuration>);
68
+ };
69
+ IconList.args = {
70
+ set: 'budicon'
71
+ };
72
+ IconList.argTypes = {
73
+ set: {
74
+ options: ['budicon', 'streamline'],
75
+ control: { type: 'radio' }
76
+ }
67
77
  };
68
78
  //# sourceMappingURL=Icon.stories.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.stories.jsx","sourceRoot":"","sources":["../../../src/core/Icon/Icon.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useMemo, useState, useCallback, useRef } from 'react';\n\nimport {\n EmptyState,\n Flex,\n Icon,\n icons,\n IconName,\n registerIcon,\n Progress,\n SearchInput,\n Text,\n useItemIntersection,\n useTheme\n} from '@pega/cosmos-react-core';\nimport * as pegasusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/pegasus.icon';\n\nimport { createCustomIcon } from './Icon.mocks';\nimport { StyledIconList, StyledIconListItem, StyledProgressContainer } from './Icon.styles';\n\nexport default {\n title: 'Core/Icon',\n component: Icon\n} as Meta;\n\nregisterIcon(pegasusIcon);\n\nexport const StaticIcon: Story = () => {\n return (\n <Icon\n style={{ height: '5rem', width: '5rem' }}\n name='pegaus'\n role='img'\n aria-label='Informative label'\n />\n );\n};\n\nexport const CustomIcon: Story = () => {\n const theme = useTheme();\n\n createCustomIcon(theme);\n\n return (\n <Icon\n style={{ height: '5rem', width: '5rem' }}\n name='custom-pega'\n role='img'\n aria-label='Custom icon'\n />\n );\n};\n\nexport const DynamicIcon: Story = () => {\n return <Icon style={{ height: '5rem', width: '5rem' }} role='img' name='pega' />;\n};\n\nexport const IconList: Story = () => {\n const pageSize = 50;\n\n const [search, setSearch] = useState('');\n const totalMatches = useRef(0);\n const [currentPageIndex, setCurrentPageIndex] = useState(0);\n const ulRef = useRef<HTMLUListElement>(null);\n\n const listContent = useMemo(() => {\n const matches: readonly IconName[] = search\n ? icons.filter(icon => icon.includes(search))\n : icons;\n const totalItemsToRender = (1 + currentPageIndex) * pageSize;\n totalMatches.current = matches.length;\n\n if (matches.length === 0) {\n return <EmptyState forwardedAs='li' />;\n }\n\n return matches.slice(0, totalItemsToRender).map(icon => (\n <Flex\n key={icon}\n container={{\n direction: 'column',\n justify: 'center',\n alignItems: 'center',\n alignContent: 'center'\n }}\n as={StyledIconListItem}\n >\n <Icon style={{ height: '3rem', width: '3rem' }} name={icon} />\n <p style={{ textAlign: 'center' }}>{icon}</p>\n </Flex>\n ));\n }, [search, currentPageIndex]);\n\n const itemsShown = Math.min(totalMatches.current, (1 + currentPageIndex) * pageSize);\n const itemsToLoadMore = totalMatches.current - itemsShown;\n\n // When reaches to the bottom of the results, loads next pageSize items\n useItemIntersection(\n ulRef,\n itemsShown,\n () => {\n setCurrentPageIndex(prev => 1 + prev);\n },\n ':scope > li'\n );\n\n // on search, reset to first page and scroll to top\n const onSearchChange = useCallback((value: string) => {\n setSearch(value);\n setCurrentPageIndex(0);\n ulRef?.current?.scrollIntoView();\n }, []);\n\n return (\n <Flex container={{ direction: 'column', gap: 1 }} style={{ height: '90vh' }}>\n <SearchInput value={search} onSearchChange={onSearchChange} />\n {itemsShown > 0 && <Text variant='secondary'>{totalMatches.current} results</Text>}\n <Flex container={{ wrap: 'wrap', alignContent: 'start' }} as={StyledIconList} ref={ulRef}>\n {listContent}\n {itemsToLoadMore > 0 && (\n <StyledProgressContainer>\n <Progress placement='local' />\n </StyledProgressContainer>\n )}\n </Flex>\n </Flex>\n );\n};\n"]}
1
+ {"version":3,"file":"Icon.stories.jsx","sourceRoot":"","sources":["../../../src/core/Icon/Icon.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useMemo, useState, useCallback, useRef } from 'react';\n\nimport {\n EmptyState,\n Flex,\n Icon,\n icons,\n streamlineIcons,\n registerIcon,\n Progress,\n SearchInput,\n Text,\n useItemIntersection,\n useTheme,\n Configuration\n} from '@pega/cosmos-react-core';\nimport * as pegasusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/pegasus.icon';\n\nimport { createCustomIcon } from './Icon.mocks';\nimport { StyledIconList, StyledIconListItem, StyledProgressContainer } from './Icon.styles';\n\nexport default {\n title: 'Core/Icon',\n component: Icon\n} as Meta;\n\nregisterIcon(pegasusIcon);\n\nexport const StaticIcon: Story = () => {\n return (\n <Icon\n style={{ height: '5rem', width: '5rem' }}\n name='pegasus'\n role='img'\n aria-label='Informative label'\n />\n );\n};\n\nexport const CustomIcon: Story = () => {\n const theme = useTheme();\n\n createCustomIcon(theme);\n\n return (\n <Icon\n style={{ height: '5rem', width: '5rem' }}\n name='custom-pega'\n role='img'\n aria-label='Custom icon'\n />\n );\n};\n\nexport const DynamicIcon: Story = () => {\n return <Icon style={{ height: '5rem', width: '5rem' }} role='img' name='pega' />;\n};\n\ninterface IconListProps {\n set: 'budicon' | 'streamline';\n}\n\nexport const IconList: Story<IconListProps> = (args: IconListProps) => {\n const pageSize = 50;\n\n const [search, setSearch] = useState('');\n const totalMatches = useRef(0);\n const [currentPageIndex, setCurrentPageIndex] = useState(0);\n const ulRef = useRef<HTMLUListElement>(null);\n\n const iconList: readonly string[] = args.set === 'budicon' ? icons : streamlineIcons;\n\n const listContent = useMemo(() => {\n const matches = search ? iconList.filter(icon => icon.includes(search)) : iconList;\n const totalItemsToRender = (1 + currentPageIndex) * pageSize;\n totalMatches.current = matches.length;\n\n if (matches.length === 0) {\n return <EmptyState forwardedAs='li' />;\n }\n\n return matches.slice(0, totalItemsToRender).map(icon => (\n <Flex\n key={icon}\n container={{\n direction: 'column',\n justify: 'center',\n alignItems: 'center',\n alignContent: 'center'\n }}\n as={StyledIconListItem}\n >\n <Icon style={{ height: '3rem', width: '3rem' }} name={icon} />\n <p style={{ textAlign: 'center' }}>{icon}</p>\n </Flex>\n ));\n }, [iconList, search, currentPageIndex]);\n\n const itemsShown = Math.min(totalMatches.current, (1 + currentPageIndex) * pageSize);\n const itemsToLoadMore = totalMatches.current - itemsShown;\n\n // When reaches to the bottom of the results, loads next pageSize items\n useItemIntersection(\n ulRef,\n itemsShown,\n () => {\n setCurrentPageIndex(prev => 1 + prev);\n },\n ':scope > li'\n );\n\n // on search, reset to first page and scroll to top\n const onSearchChange = useCallback((value: string) => {\n setSearch(value);\n setCurrentPageIndex(0);\n ulRef?.current?.scrollIntoView();\n }, []);\n\n return (\n <Configuration theme={{ base: { 'icon-set': args.set } }}>\n <Flex container={{ direction: 'column', gap: 1 }} style={{ height: 'calc(100vh - 2rem)' }}>\n <SearchInput value={search} onSearchChange={onSearchChange} />\n {itemsShown > 0 && <Text variant='secondary'>{totalMatches.current} results</Text>}\n <Flex container={{ wrap: 'wrap', alignContent: 'start' }} as={StyledIconList} ref={ulRef}>\n {listContent}\n {itemsToLoadMore > 0 && (\n <StyledProgressContainer>\n <Progress placement='local' />\n </StyledProgressContainer>\n )}\n </Flex>\n </Flex>\n </Configuration>\n );\n};\n\nIconList.args = {\n set: 'budicon'\n};\n\nIconList.argTypes = {\n set: {\n options: ['budicon', 'streamline'],\n control: { type: 'radio' }\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Attachments.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/Attachments.mocks.tsx"],"names":[],"mappings":";AAkgBA,eAAO,MAAM,eAAe,mBAiI3B,CAAC"}
1
+ {"version":3,"file":"Attachments.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/Attachments.mocks.tsx"],"names":[],"mappings":";AAkgBA,eAAO,MAAM,eAAe,mBAkI3B,CAAC"}
@@ -347,7 +347,7 @@ export const AttachmentsMock = () => {
347
347
  };
348
348
  }, [editDialogTargetLi]);
349
349
  return (<>
350
- <SummaryList icon='paper-clip' name='Attachments' loading={loading} count={!loading && Array.isArray(files) ? files.length : undefined} actions={[
350
+ <SummaryList icon='paper-clip' name='Attachments' headingTag='h3' loading={loading} count={!loading && Array.isArray(files) ? files.length : undefined} actions={[
351
351
  {
352
352
  text: 'Add',
353
353
  id: 'addNew',
@@ -1 +1 @@
1
- {"version":3,"file":"Attachments.mocks.jsx","sourceRoot":"","sources":["../../../src/work/CaseView/Attachments.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EAET,MAAM,EAEN,OAAO,EAEP,UAAU,EAGX,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EAEnB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,UAAU,EACV,eAAe,EAEf,QAAQ,EACR,UAAU,EAEX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EACL,kBAAkB,EAElB,yBAAyB,EACzB,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAK5B,MAAM,uBAAuB,GAAG,CAAC,EAC/B,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,EAOX,EAAmB,EAAE;IACpB,IAAI,OAAiB,CAAC;IACtB,IAAI,MAAmB,CAAC;IAExB,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;QAClF,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAG,CAAC;QAC9E,OAAO,GAAG;YACR;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,EAAE;oBACZ,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;aACF;SACF,CAAC;KACH;SAAM;QACL,MAAM,GAAG,CACP,CAAC,UAAU,CACT,IAAI,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAChE,SAAS,CAAC,CAAE,IAAmC,CAAC,SAAS,CAAC,EAC1D,CACH,CAAC;QACF,OAAO,GAAG;YACR;gBACE,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,EAAE;oBACZ,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,EAAE;oBACZ,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;aACF;SACF,CAAC;KACH;IAED,OAAO;QACL,GAAG;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,eAAe,EAAE,IAAI,CAAC,IAAI;QAC1B,SAAS,EAAE,CACT,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CACvB;QAAA,CAAC,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAChF,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC1C,CAAC,CAAC,CAAC,CACF,CAAC,QAAQ,CACP,KAAK,CAAC,CAAC;oBACL,IAAI,CAAC,QAAQ;oBACb,EACE;wBAAQ,CAAC,GAAG,CACZ;gBAAA,CAAC,eAAe,CACd,OAAO,CAAC,UAAU,CAClB,KAAK,CAAC,CAAE,IAAmC,CAAC,UAAU,CAAC,EAE3D;cAAA,GAAG;iBACJ,CAAC,EACF,CACH,CACH;MAAA,EAAE,IAAI,CAAC,CACR;QACD,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAaF,MAAM,UAAU,GAAwB,UAAU,CAChD,CACE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAoC,EACtE,GAA2B,EAC3B,EAAE;IACF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QAChD,OAAO;YACL,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5D,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC/B,OAAO;oBACL,EAAE,EAAE,SAAS,EAAE;oBACf,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;iBACrC,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,EAAE;YACP,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,EAAE,CAAC,OAAO;iBACjB;aACF;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACL,CAAC,UAAU,CACT,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,OAAO,CAAC,iBAAiB,CACzB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CACzD,SAAS,CAAC,cAAc,CACxB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,QAAQ,CAAC,CAAC,GAAG,EAAE;YACb,IAAI,KAAK;gBAAE,OAAO;YAClB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,UAAU,CAAC,GAAG,EAAE;gBACd,QAAQ,CAAC;oBACP,IAAI;oBACJ,QAAQ,EACN,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;wBAChE,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI;iBAClC,CAAC,CAAC;gBACH,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACvB,CAAC,CAAC,CAEF;QAAA,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAC/C;UAAA,CAAC,KAAK,CACJ,KAAK,CAAC,MAAM,CACZ,WAAW,CAAC,aAAa,CACzB,KAAK,CAAC,CAAC,IAAI,CAAC,CACZ,IAAI,CAAC,CAAC,KAAK,CAAC,CACZ,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CACpC,SAAS,CACT,QAAQ,CACR,QAAQ,CAAC,CAAC,CAAC,CAAgC,EAAE,EAAE;YAC7C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC3B,QAAQ,CAAC,EAAE,CAAC,CAAC;aACd;QACH,CAAC,CAAC,CACF,MAAM,CAAC,CAAC,GAAG,EAAE;YACX,IAAI,CAAC,IAAI,EAAE;gBACT,QAAQ,CAAC,mBAAmB,CAAC,CAAC;aAC/B;QACH,CAAC,CAAC,EAEJ;UAAA,CAAC,QAAQ,CACP,KAAK,CAAC,UAAU,CAChB,WAAW,CAAC,SAAS,CACrB,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAC3B,IAAI,CAAC,CAAC;YACJ,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,EAAE,CAAC,EAAE;gBAChB,aAAa,CAAC,GAAG,CAAC,EAAE;oBAClB,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBACxB,OAAO;4BACL,GAAG,QAAQ;4BACX,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE;yBAC7B,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,EAEN;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,UAAU,CAAC,CACd,CAAC;AACJ,CAAC,CACF,CAAC;AASF,MAAM,gBAAgB,GAAG,CAAC,EAAE,WAAW,EAAyB,EAAE,EAAE;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/F,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAuB,EAAE,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,WAAW,GAAG,MAAM,CAAkB,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,OAAO,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,kBAAkB;QAChB,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAoB,8BAA8B,CAAC;QACrF,CAAC,CAAC,IAAI,EACV,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAChC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,UAAU,EAAE,KAAK,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAgB,EAAE,EAAE;QACrD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACtB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,OAAO,GAAG,EAAE;gBACV,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CAAC;SACH;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAChC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,SAAS,CAAC,GAAG,EAAE;QAEb,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,eAAuB,EAAE,EAAE;QAC1B,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;gBACvB,OAAO;oBACL,EAAE;oBACF,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,IAAI;oBACV,GAAG,EAAE,CAAC,EAAiB,EAAE,EAAE;wBACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBAC9B,CAAC;oBACD,MAAM,EAAE,GAAG,EAAE;wBACX,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACtB,CAAC;oBACD,QAAQ,EAAE,GAAG,EAAE;wBACb,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC;iBACF,CAAC;YACJ,CAAC,CAAC;YACF,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAGF,MAAM,OAAO,GACX,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAClB,EACE;QAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAChD;;QACF,EAAE,MAAM,CACR;QAAA,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,OAAO,CAAC,SAAS,CAEjB,OAAO,CAAC,CAAC,GAAG,EAAE;YACZ,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,CAAC,GAAG,EAAE;gBACd,cAAc,EAAE,CAAC;gBACjB,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACvB,CAAC,CAAC,CACF,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAEjD;;QACF,EAAE,MAAM,CACV;MAAA,GAAG,CACJ,CAAC,CAAC,CAAC,IAAI,CAAC;IAGX,MAAM,OAAO,GACX,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAClB,CAAC,SAAS,CACR,QAAQ,CACR,KAAK,CAAC,wBAAwB,CAC9B,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EACpE,CACH,CAAC,CAAC,CAAC,CACF,CAAC,OAAO,CACN,OAAO,CAAC,CAAC,cAAc,CAAC,CACxB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACnF,OAAO,uBAAuB,CAAC;gBAC7B,GAAG,EAAE,CAAC,EAAiB,EAAE,EAAE;oBACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI;gBACJ,QAAQ,EAAE,GAAG,EAAE;oBACb,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,UAAU,EAAE,EAAE,CAAC,EAAE;oBACf,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAuB,CAAC;oBACxE,UAAU,CAAC,EAAE,CAAC,CAAC;oBACf,WAAW,CAAC,EAAE,OAAO,EAAE,uBAAuB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,UAAU,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;oBACrB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAA+B,CAAC;oBAC/E,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;oBACrB,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;gBAC1D,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CACH,OAAO,CAAC,CAAC;YACP;gBACE,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;aACF;SACF,CAAC,CACF,gBAAgB,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAChE,CACH,CAAC;IAEJ,OAAO,CACL,CAAC,KAAK,CACJ,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAC/D,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAC3E,gBAAgB,CAAC,CAAC,GAAG,EAAE;YACrB,OAAO,CAAC,kBAAkB,CAAC;QAC7B,CAAC,CAAC,CACF,QAAQ,CAAC,CACP,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,CAAC,CAAY,EAAE,EAAE;gBACf,CAAC,CAAC,cAAc,EAAE,CAAC;YACrB,CAAC;YACH,CAAC,CAAC,SAAS,CACd,CAED;MAAA,EACE;QAAA,CAAC,OAAO,CACR;QAAA,CAAC,kBAAkB,IAAI,UAAU,IAAI,CACnC,CAAC,UAAU,CACT,GAAG,CAAC,CAAC,aAAa,CAAC,CACnB,MAAM,CAAC,CAAC,UAAU,CAAC,CACnB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CACzE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAC5B,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC/B,iBAAiB,EAAE,CAAC;gBAKpB,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,WAAW,CAAC,GAAG,CAAC,EAAE;wBAChB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BACzB,IAAI,CAAC,KAAK,aAAa,EAAE;gCACvB,OAAO;oCACL,GAAG,IAAI;oCACP,IAAI;oCACJ,QAAQ;iCACT,CAAC;6BACH;4BAED,OAAO,IAAI,CAAC;wBACd,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,QAAQ,CAAC,GAAG,CAAC,EAAE,CACb,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;wBAClB,IAAI,CAAC,KAAK,aAAa,EAAE;4BACvB,OAAO;gCACL,GAAG,IAAI;gCACP,IAAI;gCACJ,QAAQ;6BACT,CAAC;yBACH;wBAED,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,CACH,CAAC;iBACH;YACH,CAAC,CAAC,EACF,CACH,CACH;MAAA,GACF;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAEnF,MAAM,WAAW,GAAG,MAAM,CAAkB,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,OAAO,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,kBAAkB;QAChB,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAoB,8BAA8B,CAAC;QACrF,CAAC,CAAC,IAAI,EACV,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAChC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,UAAU,EAAE,KAAK,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAgB,EAAE,EAAE;QACrD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACtB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,WAAW,GAAG,MAAM,yBAAyB,EAAE,CAAC;YAGtD,IAAI,OAAO,EAAE;gBACX,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,QAAQ,CAAC,WAAW,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAChC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,OAAO,CACL,EACE;MAAA,CAAC,WAAW,CACV,IAAI,CAAC,YAAY,CACjB,IAAI,CAAC,aAAa,CAClB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CACnE,OAAO,CAAC,CAAC;YACP;gBACE,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO;oBACL,WAAW,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,QAAiB,EAAE,CAAC,CAAC;gBACpE,CAAC;aACF;SACF,CAAC,CACF,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,uBAAuB,CAAC;gBAC7B,GAAG,EAAE,CAAC,EAAiB,EAAE,EAAE;oBACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI;gBACJ,QAAQ,EAAE,GAAG,EAAE;oBACb,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,UAAU,EAAE,EAAE,CAAC,EAAE;oBACf,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAuB,CAAC;oBACxE,UAAU,CAAC,EAAE,CAAC,CAAC;oBACf,WAAW,CAAC,EAAE,OAAO,EAAE,uBAAuB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,UAAU,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;oBACrB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAA+B,CAAC;oBAC/E,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;oBACrB,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;gBAC1D,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CACH,SAAS,CAAC,CAAC,GAAG,EAAE;YACd,WAAW,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,SAAkB,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,EAEJ;MAAA,CAAC,kBAAkB,IAAI,UAAU,IAAI,CACnC,CAAC,UAAU,CACT,GAAG,CAAC,CAAC,aAAa,CAAC,CACnB,MAAM,CAAC,CAAC,UAAU,CAAC,CACnB,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAC3B,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAC5B,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC/B,iBAAiB,EAAE,CAAC;gBACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,CACb,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK,aAAa,EAAE;wBACvB,OAAO;4BACL,GAAG,IAAI;4BACP,IAAI;4BACJ,QAAQ;yBACT,CAAC;qBACH;oBAED,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,EACF,CACH,CACH;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {\n useState,\n useCallback,\n useContext,\n useEffect,\n FormEvent,\n useRef,\n Ref,\n useMemo,\n ChangeEvent,\n forwardRef,\n FC,\n PropsWithoutRef\n} from 'react';\n\nimport {\n Button,\n FileInput,\n FileVisual,\n Progress,\n Modal,\n Text,\n SummaryList,\n ViewAll,\n getKindFromMimeType,\n getMimeTypeFromFile,\n Action,\n Flex,\n Input,\n ComboBox,\n createUID,\n useModalManager,\n useModalContext,\n useToaster,\n DateTimeDisplay,\n SummaryListItem,\n MetaList,\n FormDialog,\n FormDialogProps\n} from '@pega/cosmos-react-core';\n\nimport { loadingTimeoutMS } from '../../core/Progress/Progress.mocks';\n\nimport {\n FileServiceContext,\n FileServiceContextValue,\n mockAttachmentListRequest,\n mockCategories,\n MockFileAttachmentResource,\n MockFileUploadItem\n} from './FileService.mock';\n\n// ---------------------------------------------------------------------------------------------------------------------\n// getSummaryListItemProps\n// ---------------------------------------------------------------------------------------------------------------------\nconst getSummaryListItemProps = ({\n ref,\n file,\n editFile,\n cancelFile,\n deleteFile\n}: {\n ref: Ref<HTMLLIElement>;\n file: MockFileAttachmentResource | MockFileUploadItem;\n editFile?: (file: MockFileAttachmentResource) => void;\n cancelFile: FileServiceContextValue['cancelFile'];\n deleteFile: FileServiceContextValue['deleteFile'];\n}): SummaryListItem => {\n let actions: Action[];\n let visual: JSX.Element;\n\n if ('progress' in file && typeof file.progress === 'number' && file.progress < 100) {\n visual = <Progress value={file.progress} placement='inline' variant='ring' />;\n actions = [\n {\n id: 'Cancel',\n text: 'Cancel',\n icon: 'times',\n onClick: () => {\n cancelFile(file.id);\n }\n }\n ];\n } else {\n visual = (\n <FileVisual\n type={getKindFromMimeType(getMimeTypeFromFile(file.name) ?? '')}\n thumbnail={(file as MockFileAttachmentResource).thumbnail}\n />\n );\n actions = [\n {\n id: 'Edit',\n text: 'Edit',\n icon: 'pencil',\n onClick: () => {\n editFile?.(file);\n }\n },\n {\n id: 'Download',\n text: 'Download',\n icon: 'download',\n onClick: () => {}\n },\n {\n id: 'Delete',\n text: 'Delete',\n icon: 'trash',\n onClick: () => {\n deleteFile(file.id);\n }\n }\n ];\n }\n\n return {\n ref,\n id: file.id,\n visual,\n primary: file.name,\n contextualLabel: file.name,\n secondary: (\n <Text variant='secondary'>\n {'progress' in file && typeof file.progress === 'number' && file.progress < 100 ? (\n `Uploading…${Math.floor(file.progress)}%`\n ) : (\n <MetaList\n items={[\n file.category,\n <>\n Uploaded{' '}\n <DateTimeDisplay\n variant='relative'\n value={(file as MockFileAttachmentResource).createDate}\n />\n </>\n ]}\n />\n )}\n </Text>\n ),\n actions\n };\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachment edit Dialog\n// ---------------------------------------------------------------------------------------------------------------------\ninterface EditDialogProps {\n file: MockFileAttachmentResource;\n target: FormDialogProps['target'];\n onSubmit: (fields: { name: string; category: string }) => void;\n onCancel: () => void;\n ref: Ref<HTMLDivElement>;\n}\n\nconst EditDialog: FC<EditDialogProps> = forwardRef(\n (\n { file, target, onSubmit, onCancel }: PropsWithoutRef<EditDialogProps>,\n ref: EditDialogProps['ref']\n ) => {\n const [name, setName] = useState(file.name);\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n\n const [categories, setCategories] = useState(() => {\n return [\n { id: createUID(), primary: 'No category', selected: false },\n ...mockCategories.map(category => {\n return {\n id: createUID(),\n primary: category,\n selected: file.category === category\n };\n })\n ];\n });\n\n const selectedCategory = useMemo(() => {\n const sc = categories.find(c => c.selected);\n return sc\n ? {\n items: {\n id: sc.id,\n text: sc.primary\n }\n }\n : undefined;\n }, [categories]);\n\n return (\n <FormDialog\n ref={ref}\n heading='Edit attachment'\n target={target}\n progress={loading ? 'Updating attachment...' : undefined}\n placement='bottom-start'\n onCancel={onCancel}\n onSubmit={() => {\n if (error) return;\n setLoading(true);\n setTimeout(() => {\n onSubmit({\n name,\n category:\n !selectedCategory || selectedCategory.items.text === 'No category'\n ? ''\n : selectedCategory.items.text\n });\n setLoading(false);\n }, loadingTimeoutMS);\n }}\n >\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input\n label='Name'\n placeholder='Enter name…'\n value={name}\n info={error}\n status={error ? 'error' : undefined}\n autoFocus\n required\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setName(e.target.value);\n if (error && e.target.value) {\n setError('');\n }\n }}\n onBlur={() => {\n if (!name) {\n setError('Name is required.');\n }\n }}\n />\n <ComboBox\n label='Category'\n placeholder='Choose…'\n selected={selectedCategory}\n menu={{\n mode: 'single-select',\n items: categories,\n onItemClick: id => {\n setCategories(cur => {\n return cur.map(category => {\n return {\n ...category,\n selected: category.id === id\n };\n });\n });\n }\n }}\n />\n </Flex>\n </FormDialog>\n );\n }\n);\n\n// ---------------------------------------------------------------------------------------------------------------------\n// AttachmentsModal\n// ---------------------------------------------------------------------------------------------------------------------\ninterface AttachmentsModalProps {\n defaultMode: 'viewAll' | 'addNew';\n}\n\nconst AttachmentsModal = ({ defaultMode }: AttachmentsModalProps) => {\n const [mode, setMode] = useState(defaultMode);\n\n const { push: pushToaster } = useToaster();\n const { dismiss } = useModalContext();\n const { files, setFiles, cancelFile, attachFile, deleteFile } = useContext(FileServiceContext);\n\n const [search, setSearch] = useState('');\n const [viewAllLoading, setViewAllLoading] = useState(true);\n const [addNewLoading, setAddNewLoading] = useState(false);\n const [newFiles, setNewFiles] = useState<MockFileUploadItem[]>([]);\n\n const attachSelected = useCallback(() => {\n newFiles.forEach(attachFile);\n dismiss();\n }, [newFiles, attachFile]);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editDialogTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editDialogTargetLi\n ? editDialogTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editDialogTargetLi]\n );\n\n const handleDialogClose = useCallback(() => {\n if (!editDialogTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editDialogTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editDialogRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (mode === 'viewAll') {\n const timeout = setTimeout(() => {\n setViewAllLoading(false);\n }, 1000);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [mode]);\n\n useEffect(() => {\n if (!editDialogTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editDialogTargetLi]);\n\n useEffect(() => {\n // Since the component is performing double duty we need to empty out ref elements from a prior render mode.\n listItemEls.current = [];\n }, [mode]);\n\n const onFilesAdded = useCallback(\n (newlyAddedFiles: File[]) => {\n setNewFiles(current => [\n ...newlyAddedFiles.map((file, i) => {\n const id = createUID();\n return {\n id,\n name: file.name,\n category: '',\n File: file,\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n onEdit: () => {\n setEditFileIndex(i);\n },\n onCancel: () => {\n setNewFiles(c => c.filter(f => f.id !== id));\n }\n };\n }),\n ...current\n ]);\n },\n [files]\n );\n\n // Actions for the modal\n const actions =\n mode === 'addNew' ? (\n <>\n <Button onClick={dismiss} disabled={addNewLoading}>\n Cancel\n </Button>\n <Button\n type='submit'\n variant='primary'\n // Normally this would trigger a submit event but we are preventing that in the Modal's onSubmit.\n onClick={() => {\n setAddNewLoading(true);\n setTimeout(() => {\n attachSelected();\n setAddNewLoading(false);\n }, loadingTimeoutMS);\n }}\n disabled={newFiles.length === 0 || addNewLoading}\n >\n Upload files\n </Button>\n </>\n ) : null;\n\n // Content for the modal\n const content =\n mode === 'addNew' ? (\n <FileInput\n multiple\n label='Select files to upload'\n onFilesAdded={onFilesAdded}\n files={newFiles.map(f => ({ ...f, meta: f.category || undefined }))}\n />\n ) : (\n <ViewAll\n loading={viewAllLoading}\n items={(search ? files.filter(f => f.name.includes(search)) : files).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled uploading ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n actions={[\n {\n id: 'addNewFile',\n text: 'Add files',\n onClick: () => {\n setMode('addNew');\n }\n },\n {\n id: 'addNewLink',\n text: 'Add links',\n onClick: () => {\n setMode('addNew');\n }\n }\n ]}\n searchInputProps={{ onSearchChange: value => setSearch(value) }}\n />\n );\n\n return (\n <Modal\n as={mode === 'addNew' ? 'form' : undefined}\n heading={mode === 'addNew' ? 'Add attachments' : 'Attachments'}\n actions={actions}\n progress={addNewLoading ? { message: 'Adding attachments...' } : undefined}\n onRequestDismiss={() => {\n return !editDialogTargetLi;\n }}\n onSubmit={\n mode === 'addNew'\n ? (e: FormEvent) => {\n e.preventDefault();\n }\n : undefined\n }\n >\n <>\n {content}\n {editDialogTargetLi && menuButton && (\n <EditDialog\n ref={editDialogRef}\n target={menuButton}\n file={mode === 'addNew' ? newFiles[editFileIndex] : files[editFileIndex]}\n onCancel={handleDialogClose}\n onSubmit={({ name, category }) => {\n handleDialogClose();\n\n // TS kept from easily consolidating like:\n // const setter = mode === 'addNew' ? setNewFiles : setFiles;\n // Could not avoid map's file param as \"any\".\n if (mode === 'addNew') {\n setNewFiles(cur => {\n return cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n });\n });\n } else {\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }\n }}\n />\n )}\n </>\n </Modal>\n );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachments mock\n// ---------------------------------------------------------------------------------------------------------------------\nexport const AttachmentsMock = () => {\n const { push: pushToaster } = useToaster();\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const { files, setFiles, cancelFile, deleteFile } = useContext(FileServiceContext);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editDialogTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editDialogTargetLi\n ? editDialogTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editDialogTargetLi]\n );\n\n const handleDialogClose = useCallback(() => {\n if (!editDialogTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editDialogTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editDialogRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n let mounted = true;\n\n (async () => {\n const attachments = await mockAttachmentListRequest();\n\n // Avoids: Warning: Can't perform a React state update on an unmounted component.\n if (mounted) {\n setLoading(false);\n setFiles(attachments);\n }\n })();\n\n return () => {\n mounted = false;\n };\n }, []);\n\n useEffect(() => {\n if (!editDialogTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editDialogTargetLi]);\n\n return (\n <>\n <SummaryList\n icon='paper-clip'\n name='Attachments'\n loading={loading}\n count={!loading && Array.isArray(files) ? files.length : undefined}\n actions={[\n {\n text: 'Add',\n id: 'addNew',\n icon: 'plus',\n onClick() {\n createModal(AttachmentsModal, { defaultMode: 'addNew' as const });\n }\n }\n ]}\n items={files.slice(0, 3).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled uploading ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n onViewAll={() => {\n createModal(AttachmentsModal, { defaultMode: 'viewAll' as const });\n }}\n />\n {editDialogTargetLi && menuButton && (\n <EditDialog\n ref={editDialogRef}\n target={menuButton}\n file={files[editFileIndex]}\n onCancel={handleDialogClose}\n onSubmit={({ name, category }) => {\n handleDialogClose();\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }}\n />\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"Attachments.mocks.jsx","sourceRoot":"","sources":["../../../src/work/CaseView/Attachments.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useState,\n useCallback,\n useContext,\n useEffect,\n FormEvent,\n useRef,\n Ref,\n useMemo,\n ChangeEvent,\n forwardRef,\n FC,\n PropsWithoutRef\n} from 'react';\n\nimport {\n Button,\n FileInput,\n FileVisual,\n Progress,\n Modal,\n Text,\n SummaryList,\n ViewAll,\n getKindFromMimeType,\n getMimeTypeFromFile,\n Action,\n Flex,\n Input,\n ComboBox,\n createUID,\n useModalManager,\n useModalContext,\n useToaster,\n DateTimeDisplay,\n SummaryListItem,\n MetaList,\n FormDialog,\n FormDialogProps\n} from '@pega/cosmos-react-core';\n\nimport { loadingTimeoutMS } from '../../core/Progress/Progress.mocks';\n\nimport {\n FileServiceContext,\n FileServiceContextValue,\n mockAttachmentListRequest,\n mockCategories,\n MockFileAttachmentResource,\n MockFileUploadItem\n} from './FileService.mock';\n\n// ---------------------------------------------------------------------------------------------------------------------\n// getSummaryListItemProps\n// ---------------------------------------------------------------------------------------------------------------------\nconst getSummaryListItemProps = ({\n ref,\n file,\n editFile,\n cancelFile,\n deleteFile\n}: {\n ref: Ref<HTMLLIElement>;\n file: MockFileAttachmentResource | MockFileUploadItem;\n editFile?: (file: MockFileAttachmentResource) => void;\n cancelFile: FileServiceContextValue['cancelFile'];\n deleteFile: FileServiceContextValue['deleteFile'];\n}): SummaryListItem => {\n let actions: Action[];\n let visual: JSX.Element;\n\n if ('progress' in file && typeof file.progress === 'number' && file.progress < 100) {\n visual = <Progress value={file.progress} placement='inline' variant='ring' />;\n actions = [\n {\n id: 'Cancel',\n text: 'Cancel',\n icon: 'times',\n onClick: () => {\n cancelFile(file.id);\n }\n }\n ];\n } else {\n visual = (\n <FileVisual\n type={getKindFromMimeType(getMimeTypeFromFile(file.name) ?? '')}\n thumbnail={(file as MockFileAttachmentResource).thumbnail}\n />\n );\n actions = [\n {\n id: 'Edit',\n text: 'Edit',\n icon: 'pencil',\n onClick: () => {\n editFile?.(file);\n }\n },\n {\n id: 'Download',\n text: 'Download',\n icon: 'download',\n onClick: () => {}\n },\n {\n id: 'Delete',\n text: 'Delete',\n icon: 'trash',\n onClick: () => {\n deleteFile(file.id);\n }\n }\n ];\n }\n\n return {\n ref,\n id: file.id,\n visual,\n primary: file.name,\n contextualLabel: file.name,\n secondary: (\n <Text variant='secondary'>\n {'progress' in file && typeof file.progress === 'number' && file.progress < 100 ? (\n `Uploading…${Math.floor(file.progress)}%`\n ) : (\n <MetaList\n items={[\n file.category,\n <>\n Uploaded{' '}\n <DateTimeDisplay\n variant='relative'\n value={(file as MockFileAttachmentResource).createDate}\n />\n </>\n ]}\n />\n )}\n </Text>\n ),\n actions\n };\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachment edit Dialog\n// ---------------------------------------------------------------------------------------------------------------------\ninterface EditDialogProps {\n file: MockFileAttachmentResource;\n target: FormDialogProps['target'];\n onSubmit: (fields: { name: string; category: string }) => void;\n onCancel: () => void;\n ref: Ref<HTMLDivElement>;\n}\n\nconst EditDialog: FC<EditDialogProps> = forwardRef(\n (\n { file, target, onSubmit, onCancel }: PropsWithoutRef<EditDialogProps>,\n ref: EditDialogProps['ref']\n ) => {\n const [name, setName] = useState(file.name);\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n\n const [categories, setCategories] = useState(() => {\n return [\n { id: createUID(), primary: 'No category', selected: false },\n ...mockCategories.map(category => {\n return {\n id: createUID(),\n primary: category,\n selected: file.category === category\n };\n })\n ];\n });\n\n const selectedCategory = useMemo(() => {\n const sc = categories.find(c => c.selected);\n return sc\n ? {\n items: {\n id: sc.id,\n text: sc.primary\n }\n }\n : undefined;\n }, [categories]);\n\n return (\n <FormDialog\n ref={ref}\n heading='Edit attachment'\n target={target}\n progress={loading ? 'Updating attachment...' : undefined}\n placement='bottom-start'\n onCancel={onCancel}\n onSubmit={() => {\n if (error) return;\n setLoading(true);\n setTimeout(() => {\n onSubmit({\n name,\n category:\n !selectedCategory || selectedCategory.items.text === 'No category'\n ? ''\n : selectedCategory.items.text\n });\n setLoading(false);\n }, loadingTimeoutMS);\n }}\n >\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input\n label='Name'\n placeholder='Enter name…'\n value={name}\n info={error}\n status={error ? 'error' : undefined}\n autoFocus\n required\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setName(e.target.value);\n if (error && e.target.value) {\n setError('');\n }\n }}\n onBlur={() => {\n if (!name) {\n setError('Name is required.');\n }\n }}\n />\n <ComboBox\n label='Category'\n placeholder='Choose…'\n selected={selectedCategory}\n menu={{\n mode: 'single-select',\n items: categories,\n onItemClick: id => {\n setCategories(cur => {\n return cur.map(category => {\n return {\n ...category,\n selected: category.id === id\n };\n });\n });\n }\n }}\n />\n </Flex>\n </FormDialog>\n );\n }\n);\n\n// ---------------------------------------------------------------------------------------------------------------------\n// AttachmentsModal\n// ---------------------------------------------------------------------------------------------------------------------\ninterface AttachmentsModalProps {\n defaultMode: 'viewAll' | 'addNew';\n}\n\nconst AttachmentsModal = ({ defaultMode }: AttachmentsModalProps) => {\n const [mode, setMode] = useState(defaultMode);\n\n const { push: pushToaster } = useToaster();\n const { dismiss } = useModalContext();\n const { files, setFiles, cancelFile, attachFile, deleteFile } = useContext(FileServiceContext);\n\n const [search, setSearch] = useState('');\n const [viewAllLoading, setViewAllLoading] = useState(true);\n const [addNewLoading, setAddNewLoading] = useState(false);\n const [newFiles, setNewFiles] = useState<MockFileUploadItem[]>([]);\n\n const attachSelected = useCallback(() => {\n newFiles.forEach(attachFile);\n dismiss();\n }, [newFiles, attachFile]);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editDialogTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editDialogTargetLi\n ? editDialogTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editDialogTargetLi]\n );\n\n const handleDialogClose = useCallback(() => {\n if (!editDialogTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editDialogTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editDialogRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (mode === 'viewAll') {\n const timeout = setTimeout(() => {\n setViewAllLoading(false);\n }, 1000);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [mode]);\n\n useEffect(() => {\n if (!editDialogTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editDialogTargetLi]);\n\n useEffect(() => {\n // Since the component is performing double duty we need to empty out ref elements from a prior render mode.\n listItemEls.current = [];\n }, [mode]);\n\n const onFilesAdded = useCallback(\n (newlyAddedFiles: File[]) => {\n setNewFiles(current => [\n ...newlyAddedFiles.map((file, i) => {\n const id = createUID();\n return {\n id,\n name: file.name,\n category: '',\n File: file,\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n onEdit: () => {\n setEditFileIndex(i);\n },\n onCancel: () => {\n setNewFiles(c => c.filter(f => f.id !== id));\n }\n };\n }),\n ...current\n ]);\n },\n [files]\n );\n\n // Actions for the modal\n const actions =\n mode === 'addNew' ? (\n <>\n <Button onClick={dismiss} disabled={addNewLoading}>\n Cancel\n </Button>\n <Button\n type='submit'\n variant='primary'\n // Normally this would trigger a submit event but we are preventing that in the Modal's onSubmit.\n onClick={() => {\n setAddNewLoading(true);\n setTimeout(() => {\n attachSelected();\n setAddNewLoading(false);\n }, loadingTimeoutMS);\n }}\n disabled={newFiles.length === 0 || addNewLoading}\n >\n Upload files\n </Button>\n </>\n ) : null;\n\n // Content for the modal\n const content =\n mode === 'addNew' ? (\n <FileInput\n multiple\n label='Select files to upload'\n onFilesAdded={onFilesAdded}\n files={newFiles.map(f => ({ ...f, meta: f.category || undefined }))}\n />\n ) : (\n <ViewAll\n loading={viewAllLoading}\n items={(search ? files.filter(f => f.name.includes(search)) : files).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled uploading ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n actions={[\n {\n id: 'addNewFile',\n text: 'Add files',\n onClick: () => {\n setMode('addNew');\n }\n },\n {\n id: 'addNewLink',\n text: 'Add links',\n onClick: () => {\n setMode('addNew');\n }\n }\n ]}\n searchInputProps={{ onSearchChange: value => setSearch(value) }}\n />\n );\n\n return (\n <Modal\n as={mode === 'addNew' ? 'form' : undefined}\n heading={mode === 'addNew' ? 'Add attachments' : 'Attachments'}\n actions={actions}\n progress={addNewLoading ? { message: 'Adding attachments...' } : undefined}\n onRequestDismiss={() => {\n return !editDialogTargetLi;\n }}\n onSubmit={\n mode === 'addNew'\n ? (e: FormEvent) => {\n e.preventDefault();\n }\n : undefined\n }\n >\n <>\n {content}\n {editDialogTargetLi && menuButton && (\n <EditDialog\n ref={editDialogRef}\n target={menuButton}\n file={mode === 'addNew' ? newFiles[editFileIndex] : files[editFileIndex]}\n onCancel={handleDialogClose}\n onSubmit={({ name, category }) => {\n handleDialogClose();\n\n // TS kept from easily consolidating like:\n // const setter = mode === 'addNew' ? setNewFiles : setFiles;\n // Could not avoid map's file param as \"any\".\n if (mode === 'addNew') {\n setNewFiles(cur => {\n return cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n });\n });\n } else {\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }\n }}\n />\n )}\n </>\n </Modal>\n );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachments mock\n// ---------------------------------------------------------------------------------------------------------------------\nexport const AttachmentsMock = () => {\n const { push: pushToaster } = useToaster();\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const { files, setFiles, cancelFile, deleteFile } = useContext(FileServiceContext);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editDialogTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editDialogTargetLi\n ? editDialogTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editDialogTargetLi]\n );\n\n const handleDialogClose = useCallback(() => {\n if (!editDialogTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editDialogTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editDialogRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n let mounted = true;\n\n (async () => {\n const attachments = await mockAttachmentListRequest();\n\n // Avoids: Warning: Can't perform a React state update on an unmounted component.\n if (mounted) {\n setLoading(false);\n setFiles(attachments);\n }\n })();\n\n return () => {\n mounted = false;\n };\n }, []);\n\n useEffect(() => {\n if (!editDialogTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editDialogTargetLi]);\n\n return (\n <>\n <SummaryList\n icon='paper-clip'\n name='Attachments'\n headingTag='h3'\n loading={loading}\n count={!loading && Array.isArray(files) ? files.length : undefined}\n actions={[\n {\n text: 'Add',\n id: 'addNew',\n icon: 'plus',\n onClick() {\n createModal(AttachmentsModal, { defaultMode: 'addNew' as const });\n }\n }\n ]}\n items={files.slice(0, 3).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled uploading ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n onViewAll={() => {\n createModal(AttachmentsModal, { defaultMode: 'viewAll' as const });\n }}\n />\n {editDialogTargetLi && menuButton && (\n <EditDialog\n ref={editDialogRef}\n target={menuButton}\n file={files[editFileIndex]}\n onCancel={handleDialogClose}\n onSubmit={({ name, category }) => {\n handleDialogClose();\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }}\n />\n )}\n </>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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"}
@@ -115,7 +115,7 @@ export const MockSummaryList = ({ icon, name, actions, limit }) => {
115
115
  const [items] = useMockListData(() => {
116
116
  setLoading(false);
117
117
  }, { count: limit });
118
- return (<SummaryList loading={loading} items={items} icon={icon} name={name} count={loading ? undefined : count} actions={actions !== null
118
+ return (<SummaryList loading={loading} items={items} icon={icon} name={name} headingTag='h3' count={loading ? undefined : count} actions={actions !== null
119
119
  ? [
120
120
  {
121
121
  text: 'Add',
@@ -442,7 +442,7 @@ export const PersistentUtilityContent = () => {
442
442
  Persistent utility content
443
443
  </Flex>);
444
444
  };
445
- export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCases = false, promotedActions = 1, summaryFields = 'All', tabs, stages = true, tasks = true, taskCount = 4, utilitiesExpanded: utilitiesExpandedProp, predictions = true, attachments = true, stakeholders = true, followers = true, tags = true, persistentUtility = false, intelligentGuidance = false, banner = false, headingLength, defaultExpanded }) => {
445
+ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCases = false, promotedActions = 1, summaryFields = 'All', tabs, stages = true, tasks = true, taskCount = 4, utilitiesExpanded: utilitiesExpandedProp = true, predictions = true, attachments = true, stakeholders = true, followers = true, tags = true, persistentUtility = false, intelligentGuidance = false, banner = false, headingLength, defaultExpanded }) => {
446
446
  const [previewCaseId, setPreviewCaseId] = useState(null);
447
447
  const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);
448
448
  const isMediumOrAbove = useBreakpoint('md');
@@ -511,7 +511,7 @@ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCa
511
511
  : undefined;
512
512
  }
513
513
  return persistentUtility;
514
- })()} stages={stages ? demoStages : undefined} tasks={tasks ? <TasksDemo count={taskCount} showViewSelector/> : undefined} tabContent={tabContent} utilities={<Utilities predictions={predictions} attachments={attachments} stakeholders={stakeholders} followers={followers} tags={tags}/>} utilitiesSummaryItems={getUtilitiesSummaryItems({
514
+ })()} stages={stages ? demoStages : undefined} tasks={tasks ? <TasksDemo count={taskCount}/> : undefined} tabContent={tabContent} utilities={<Utilities predictions={predictions} attachments={attachments} stakeholders={stakeholders} followers={followers} tags={tags}/>} utilitiesSummaryItems={getUtilitiesSummaryItems({
515
515
  predictions,
516
516
  attachments,
517
517
  stakeholders,