@elliemae/ds-shared 3.0.0-alpha.0 → 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/cjs/CheckableGroup.js +19 -3
  2. package/dist/cjs/CheckableGroup.js.map +1 -1
  3. package/dist/cjs/FocusGroup/FocusGrid.js +18 -5
  4. package/dist/cjs/FocusGroup/FocusGrid.js.map +1 -1
  5. package/dist/cjs/FocusGroup/FocusGroup.js +19 -6
  6. package/dist/cjs/FocusGroup/FocusGroup.js.map +1 -1
  7. package/dist/cjs/FocusGroup/focusGroupManagerHoc.js +42 -14
  8. package/dist/cjs/FocusGroup/focusGroupManagerHoc.js.map +1 -1
  9. package/dist/cjs/FocusGroup/useFocusGroupItem.js +16 -2
  10. package/dist/cjs/FocusGroup/useFocusGroupItem.js.map +1 -1
  11. package/dist/cjs/ScrollSync/ScrollSyncPane.js +19 -3
  12. package/dist/cjs/ScrollSync/ScrollSyncPane.js.map +1 -1
  13. package/dist/cjs/createDataInstance/createInstancePlugin.js +15 -1
  14. package/dist/cjs/createDataInstance/createInstancePlugin.js.map +1 -1
  15. package/dist/cjs/createDataInstance/createInstanceRef.js +41 -9
  16. package/dist/cjs/createDataInstance/createInstanceRef.js.map +1 -1
  17. package/dist/cjs/createDataInstance/utils.js +25 -20
  18. package/dist/cjs/createDataInstance/utils.js.map +1 -1
  19. package/dist/cjs/defer-render-hoc/index.js +15 -3
  20. package/dist/cjs/defer-render-hoc/index.js.map +1 -1
  21. package/dist/cjs/toolbar/ToolbarProvider.js +24 -9
  22. package/dist/cjs/toolbar/ToolbarProvider.js.map +1 -1
  23. package/dist/cjs/useDataGrid/initColumnDefinition.js +33 -27
  24. package/dist/cjs/useDataGrid/initColumnDefinition.js.map +1 -1
  25. package/dist/cjs/useDataGrid/useDataGrid.js +53 -31
  26. package/dist/cjs/useDataGrid/useDataGrid.js.map +1 -1
  27. package/dist/cjs/useDataList/useDataList.js +47 -14
  28. package/dist/cjs/useDataList/useDataList.js.map +1 -1
  29. package/dist/cjs/utils.js +18 -2
  30. package/dist/cjs/utils.js.map +1 -1
  31. package/dist/cjs/virtualization/AutoHeightList.js +51 -14
  32. package/dist/cjs/virtualization/AutoHeightList.js.map +1 -1
  33. package/dist/cjs/virtualization/FluidHeightList.js +38 -7
  34. package/dist/cjs/virtualization/FluidHeightList.js.map +1 -1
  35. package/dist/esm/CheckableGroup.js +21 -3
  36. package/dist/esm/CheckableGroup.js.map +1 -1
  37. package/dist/esm/FocusGroup/FocusGrid.js +20 -5
  38. package/dist/esm/FocusGroup/FocusGrid.js.map +1 -1
  39. package/dist/esm/FocusGroup/FocusGroup.js +21 -6
  40. package/dist/esm/FocusGroup/FocusGroup.js.map +1 -1
  41. package/dist/esm/FocusGroup/focusGroupManagerHoc.js +44 -14
  42. package/dist/esm/FocusGroup/focusGroupManagerHoc.js.map +1 -1
  43. package/dist/esm/FocusGroup/useFocusGroupItem.js +17 -2
  44. package/dist/esm/FocusGroup/useFocusGroupItem.js.map +1 -1
  45. package/dist/esm/ScrollSync/ScrollSyncPane.js +21 -3
  46. package/dist/esm/ScrollSync/ScrollSyncPane.js.map +1 -1
  47. package/dist/esm/createDataInstance/createInstancePlugin.js +17 -1
  48. package/dist/esm/createDataInstance/createInstancePlugin.js.map +1 -1
  49. package/dist/esm/createDataInstance/createInstanceRef.js +43 -9
  50. package/dist/esm/createDataInstance/createInstanceRef.js.map +1 -1
  51. package/dist/esm/createDataInstance/utils.js +27 -20
  52. package/dist/esm/createDataInstance/utils.js.map +1 -1
  53. package/dist/esm/defer-render-hoc/index.js +17 -3
  54. package/dist/esm/defer-render-hoc/index.js.map +1 -1
  55. package/dist/esm/toolbar/ToolbarProvider.js +26 -9
  56. package/dist/esm/toolbar/ToolbarProvider.js.map +1 -1
  57. package/dist/esm/useDataGrid/initColumnDefinition.js +35 -27
  58. package/dist/esm/useDataGrid/initColumnDefinition.js.map +1 -1
  59. package/dist/esm/useDataGrid/useDataGrid.js +55 -31
  60. package/dist/esm/useDataGrid/useDataGrid.js.map +1 -1
  61. package/dist/esm/useDataList/useDataList.js +49 -14
  62. package/dist/esm/useDataList/useDataList.js.map +1 -1
  63. package/dist/esm/utils.js +20 -2
  64. package/dist/esm/utils.js.map +1 -1
  65. package/dist/esm/virtualization/AutoHeightList.js +53 -14
  66. package/dist/esm/virtualization/AutoHeightList.js.map +1 -1
  67. package/dist/esm/virtualization/FluidHeightList.js +40 -7
  68. package/dist/esm/virtualization/FluidHeightList.js.map +1 -1
  69. package/package.json +4 -3
  70. package/dist/types/Animations/BaseAnimation.d.ts +0 -13
  71. package/dist/types/Animations/Grow.d.ts +0 -12
  72. package/dist/types/Animations/GrowRight.d.ts +0 -12
  73. package/dist/types/Animations/GrowVertical.d.ts +0 -1
  74. package/dist/types/CheckableGroup.d.ts +0 -21
  75. package/dist/types/DeferRenderAfterComputation.d.ts +0 -7
  76. package/dist/types/FocusGroup/FocusGrid.d.ts +0 -12
  77. package/dist/types/FocusGroup/FocusGroup.d.ts +0 -38
  78. package/dist/types/FocusGroup/FocusGroupContext.d.ts +0 -4
  79. package/dist/types/FocusGroup/FocusGroupManager.d.ts +0 -26
  80. package/dist/types/FocusGroup/focusGroupManagerHoc.d.ts +0 -9
  81. package/dist/types/FocusGroup/index.d.ts +0 -6
  82. package/dist/types/FocusGroup/useFocusGroupItem.d.ts +0 -4
  83. package/dist/types/FocusGroup/utils/getNextCellPosition.d.ts +0 -14
  84. package/dist/types/GroupContext/Group.d.ts +0 -15
  85. package/dist/types/GroupContext/GroupContext.d.ts +0 -2
  86. package/dist/types/GroupContext/GroupItem.d.ts +0 -6
  87. package/dist/types/GroupContext/index.d.ts +0 -3
  88. package/dist/types/ScrollSync/ScrollSync.d.ts +0 -23
  89. package/dist/types/ScrollSync/ScrollSyncPane.d.ts +0 -3
  90. package/dist/types/ScrollSync/ScrollSyncProvider.d.ts +0 -12
  91. package/dist/types/ScrollSync/index.d.ts +0 -2
  92. package/dist/types/ScrollSync/useScrollSync.d.ts +0 -7
  93. package/dist/types/constants.d.ts +0 -30
  94. package/dist/types/createDataInstance/createInstancePlugin.d.ts +0 -2
  95. package/dist/types/createDataInstance/createInstanceRef.d.ts +0 -14
  96. package/dist/types/createDataInstance/tests/createInstanceRef.test.d.ts +0 -0
  97. package/dist/types/createDataInstance/utils.d.ts +0 -9
  98. package/dist/types/dimsum.config.d.ts +0 -5
  99. package/dist/types/index.d.ts +0 -2
  100. package/dist/types/prop-types.d.ts +0 -41
  101. package/dist/types/react-spring/index.d.ts +0 -1
  102. package/dist/types/react-spring/renderprops.d.ts +0 -1
  103. package/dist/types/toolbar/ToolbarProvider.d.ts +0 -5
  104. package/dist/types/useDataGrid/VolatileRowsListener.d.ts +0 -7
  105. package/dist/types/useDataGrid/index.d.ts +0 -1
  106. package/dist/types/useDataGrid/initColumnDefinition.d.ts +0 -6
  107. package/dist/types/useDataGrid/useDataGrid.d.ts +0 -9
  108. package/dist/types/useDataList/index.d.ts +0 -1
  109. package/dist/types/useDataList/recordIterator.d.ts +0 -1
  110. package/dist/types/useDataList/useDataList.d.ts +0 -14
  111. package/dist/types/utils.d.ts +0 -22
  112. package/dist/types/virtualization/AutoHeightList.d.ts +0 -2
  113. package/dist/types/virtualization/FluidHeightList.d.ts +0 -2
  114. package/dist/types/virtualization/index.d.ts +0 -9
@@ -1,3 +1,31 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __objRest = (source, exclude) => {
18
+ var target = {};
19
+ for (var prop in source)
20
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
21
+ target[prop] = source[prop];
22
+ if (source != null && __getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(source)) {
24
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
25
+ target[prop] = source[prop];
26
+ }
27
+ return target;
28
+ };
1
29
  import * as React from "react";
2
30
  import { v4 as uuidv4 } from "uuid";
3
31
  import { useMemo, useRef, useState } from "react";
@@ -14,14 +42,20 @@ const defaultDecorators = {
14
42
  renderers: [],
15
43
  composeData: []
16
44
  };
17
- function createDataInstanceRef({
18
- uuid: uuidProp,
19
- data,
20
- renderers,
21
- plugins,
22
- customDecorators,
23
- ...props
24
- }) {
45
+ function createDataInstanceRef(_a) {
46
+ var _b = _a, {
47
+ uuid: uuidProp,
48
+ data,
49
+ renderers,
50
+ plugins,
51
+ customDecorators
52
+ } = _b, props = __objRest(_b, [
53
+ "uuid",
54
+ "data",
55
+ "renderers",
56
+ "plugins",
57
+ "customDecorators"
58
+ ]);
25
59
  const instance = useRef();
26
60
  const [uuid] = useState(uuidProp || (() => uuidv4()));
27
61
  instance.current = {
@@ -41,7 +75,7 @@ function createDataInstanceRef({
41
75
  props
42
76
  };
43
77
  const decorators = useMemo(() => {
44
- let nextDecorators = { ...defaultDecorators, ...customDecorators };
78
+ let nextDecorators = __spreadValues(__spreadValues({}, defaultDecorators), customDecorators);
45
79
  plugins.forEach((plugin) => {
46
80
  if (!plugin)
47
81
  return;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/createDataInstance/createInstanceRef.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { v4 as uuidv4 } from 'uuid';\nimport { useMemo, useRef, useState } from 'react';\nimport { orderBy } from 'lodash';\nimport {\n mergeInstance,\n registerHotKeysHookToInstance,\n registerStateHookToInstance,\n} from './utils';\n\nconst defaultDecorators = {\n instance: [],\n state: [],\n hotKeys: [],\n renderers: [],\n composeData: [],\n};\n\nfunction createDataInstanceRef({\n uuid: uuidProp,\n data,\n renderers,\n plugins,\n customDecorators,\n ...props\n}) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const instance = useRef();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n\n instance.current = {\n uuid,\n state: {},\n actions: {},\n hotKeys: {}, // keyboard hotkeys to run specific actions\n originalData: data,\n records: [], // item abstraction with meta data for originalData\n renderers,\n ref(key) {\n // eslint-disable-next-line no-return-assign\n return (node) => (instance.current.refs[key] = node);\n },\n getInstance() {\n return instance.current;\n },\n props,\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const decorators = useMemo(() => {\n let nextDecorators = { ...defaultDecorators, ...customDecorators };\n\n plugins.forEach((plugin) => {\n if (!plugin) return;\n nextDecorators = plugin(nextDecorators);\n });\n\n Object.keys(nextDecorators).forEach((key) => {\n if (Array.isArray(nextDecorators[key]))\n nextDecorators[key] = orderBy(\n nextDecorators[key],\n (item) => item.order,\n );\n });\n\n return nextDecorators;\n }, []); // the plugins are defined on creation, but not changed at runtime\n\n // todo: test if getting the hooks without registering them\n // here would be beneficial to memoize instance and squeeze performance\n instance.current = decorators.instance.reduce(\n mergeInstance,\n instance.current,\n );\n instance.current = decorators.state.reduce(\n registerStateHookToInstance,\n instance.current,\n );\n instance.current = decorators.hotKeys.reduce(\n registerHotKeysHookToInstance,\n instance.current,\n );\n instance.current.renderers = decorators.renderers.reduce(\n (result, decorator) => decorator(result, instance.current),\n renderers,\n );\n\n return { instance, decorators };\n}\n\nexport { createDataInstanceRef };\nexport default createDataInstanceRef;"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,oBAAoB;AAAA,EACxB,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA;AAGf,+BAA+B;AAAA,EAC7B,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AAAA,GACF;AAED,QAAM,WAAW;AAEjB,QAAM,CAAC,QAAQ,SAAS,YAAa,OAAM;AAE3C,WAAS,UAAU;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,IACT;AAAA,IACA,IAAI,KAAK;AAEP,aAAO,CAAC,SAAU,SAAS,QAAQ,KAAK,OAAO;AAAA;AAAA,IAEjD,cAAc;AACZ,aAAO,SAAS;AAAA;AAAA,IAElB;AAAA;AAIF,QAAM,aAAa,QAAQ,MAAM;AAC/B,QAAI,iBAAiB,KAAK,sBAAsB;AAEhD,YAAQ,QAAQ,CAAC,WAAW;AAC1B,UAAI,CAAC;AAAQ;AACb,uBAAiB,OAAO;AAAA;AAG1B,WAAO,KAAK,gBAAgB,QAAQ,CAAC,QAAQ;AAC3C,UAAI,MAAM,QAAQ,eAAe;AAC/B,uBAAe,OAAO,QACpB,eAAe,MACf,CAAC,SAAS,KAAK;AAAA;AAIrB,WAAO;AAAA,KACN;AAIH,WAAS,UAAU,WAAW,SAAS,OACrC,eACA,SAAS;AAEX,WAAS,UAAU,WAAW,MAAM,OAClC,6BACA,SAAS;AAEX,WAAS,UAAU,WAAW,QAAQ,OACpC,+BACA,SAAS;AAEX,WAAS,QAAQ,YAAY,WAAW,UAAU,OAChD,CAAC,QAAQ,cAAc,UAAU,QAAQ,SAAS,UAClD;AAGF,SAAO,EAAE,UAAU;AAAA;AAIrB,IAAO,4BAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,oBAAoB;AAAA,EACxB,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA;AAGf,+BAA+B,IAO5B;AAP4B,eAC7B;AAAA,UAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MAL6B,IAM1B,kBAN0B,IAM1B;AAAA,IALH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAIA,QAAM,WAAW;AAEjB,QAAM,CAAC,QAAQ,SAAS,YAAa,OAAM;AAE3C,WAAS,UAAU;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,IACT;AAAA,IACA,IAAI,KAAK;AAEP,aAAO,CAAC,SAAU,SAAS,QAAQ,KAAK,OAAO;AAAA;AAAA,IAEjD,cAAc;AACZ,aAAO,SAAS;AAAA;AAAA,IAElB;AAAA;AAIF,QAAM,aAAa,QAAQ,MAAM;AAC/B,QAAI,iBAAiB,kCAAK,oBAAsB;AAEhD,YAAQ,QAAQ,CAAC,WAAW;AAC1B,UAAI,CAAC;AAAQ;AACb,uBAAiB,OAAO;AAAA;AAG1B,WAAO,KAAK,gBAAgB,QAAQ,CAAC,QAAQ;AAC3C,UAAI,MAAM,QAAQ,eAAe;AAC/B,uBAAe,OAAO,QACpB,eAAe,MACf,CAAC,SAAS,KAAK;AAAA;AAIrB,WAAO;AAAA,KACN;AAIH,WAAS,UAAU,WAAW,SAAS,OACrC,eACA,SAAS;AAEX,WAAS,UAAU,WAAW,MAAM,OAClC,6BACA,SAAS;AAEX,WAAS,UAAU,WAAW,QAAQ,OACpC,+BACA,SAAS;AAEX,WAAS,QAAQ,YAAY,WAAW,UAAU,OAChD,CAAC,QAAQ,cAAc,UAAU,QAAQ,SAAS,UAClD;AAGF,SAAO,EAAE,UAAU;AAAA;AAIrB,IAAO,4BAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,22 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1
20
  import * as React from "react";
2
21
  const reducePropsGetter = (decorators = [], grid) => (props = {}, extraParams) => {
3
22
  let nextProps = props;
@@ -24,30 +43,18 @@ const decorateColumns = (columns, decorators, grid) => {
24
43
  const nextColumns = applyDecorators(columns, decorators.decorateColumns, grid);
25
44
  return nextColumns.map((column, index) => applyDecorators(column, decorators.decorateColumn, grid, index));
26
45
  };
27
- const mergeInstance = (instance, instanceHook) => ({
28
- ...instance,
29
- ...instanceHook(instance)
30
- });
46
+ const mergeInstance = (instance, instanceHook) => __spreadValues(__spreadValues({}, instance), instanceHook(instance));
31
47
  const registerStateHookToInstance = (instance, stateHook) => {
32
48
  const { state, actions } = stateHook(instance);
33
- return {
34
- ...instance,
35
- state: {
36
- ...instance.state,
37
- ...state
38
- },
39
- actions: {
40
- ...instance.actions,
41
- ...actions
42
- }
43
- };
49
+ return __spreadProps(__spreadValues({}, instance), {
50
+ state: __spreadValues(__spreadValues({}, instance.state), state),
51
+ actions: __spreadValues(__spreadValues({}, instance.actions), actions)
52
+ });
44
53
  };
45
- const reduceHotKey = (instance, { key, handler, options, allowDocumentHandler }) => ({
46
- ...instance,
47
- hotKeys: {
48
- ...instance.hotKeys,
54
+ const reduceHotKey = (instance, { key, handler, options, allowDocumentHandler }) => __spreadProps(__spreadValues({}, instance), {
55
+ hotKeys: __spreadProps(__spreadValues({}, instance.hotKeys), {
49
56
  [key]: { handler, options, allowDocumentHandler }
50
- }
57
+ })
51
58
  });
52
59
  const registerHotKeysHookToInstance = (instance, hotKeysHook) => {
53
60
  const hotKeys = hotKeysHook(instance);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/createDataInstance/utils.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const reducePropsGetter = (decorators = [], grid) => (\n props = {},\n extraParams,\n) => {\n let nextProps = props;\n decorators.forEach((decorator) => {\n nextProps = decorator(nextProps, grid, extraParams);\n });\n return nextProps;\n};\n\n/* eslint-disable-next-line max-params */\nexport function evaluateTransforms(\n transforms,\n value,\n extraParams = {},\n props = {},\n grid,\n) {\n let nextProps = props;\n transforms.forEach((transform) => {\n nextProps = transform(value, extraParams, nextProps, grid);\n });\n return nextProps;\n}\n\n/* eslint-disable-next-line max-params */\nexport function evaluateFormatters(formatters, value, extraParams = {}, grid) {\n return formatters.reduce(\n (result, formatter) => formatter(result, extraParams, grid),\n value,\n );\n}\n\nexport function composeFormatters(\n formatters,\n instance,\n getItemValue = (record) => record.data.name,\n) {\n // todo: make the formatters subscribe to the item props instead of getting the whole instance\n // todo: addd should formatter update to memoize specific ones\n return (props) =>\n formatters.reduce(\n (result, formatter) => formatter(result, props, instance),\n getItemValue(props.record),\n );\n}\n\nexport const applyDecorators = (subject, decorators = [], ...args) =>\n decorators.reduce(\n (nextSubject, decorator) => decorator(nextSubject, ...args),\n subject,\n );\n\nexport const decorateColumns = (columns, decorators, grid) => {\n const nextColumns = applyDecorators(\n columns,\n decorators.decorateColumns,\n grid,\n );\n return nextColumns.map((column, index) =>\n applyDecorators(column, decorators.decorateColumn, grid, index),\n );\n};\n\nexport const mergeInstance = (instance, instanceHook) => ({\n ...instance,\n ...instanceHook(instance),\n});\n\nexport const registerStateHookToInstance = (instance, stateHook) => {\n const { state, actions } = stateHook(instance);\n return {\n ...instance,\n state: {\n ...instance.state,\n ...state,\n },\n actions: {\n ...instance.actions,\n ...actions,\n },\n };\n};\n\nconst reduceHotKey = (\n instance,\n { key, handler, options, allowDocumentHandler },\n) => ({\n ...instance,\n hotKeys: {\n ...instance.hotKeys,\n [key]: { handler, options, allowDocumentHandler },\n },\n});\n\nexport const registerHotKeysHookToInstance = (instance, hotKeysHook) => {\n const hotKeys = hotKeysHook(instance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, instance);\n }\n return reduceHotKey(instance, hotKeys);\n};\n"],
5
- "mappings": "AAAA;ACAO,MAAM,oBAAoB,CAAC,aAAa,IAAI,SAAS,CAC1D,QAAQ,IACR,gBACG;AACH,MAAI,YAAY;AAChB,aAAW,QAAQ,CAAC,cAAc;AAChC,gBAAY,UAAU,WAAW,MAAM;AAAA;AAEzC,SAAO;AAAA;AAIF,4BACL,YACA,OACA,cAAc,IACd,QAAQ,IACR,MACA;AACA,MAAI,YAAY;AAChB,aAAW,QAAQ,CAAC,cAAc;AAChC,gBAAY,UAAU,OAAO,aAAa,WAAW;AAAA;AAEvD,SAAO;AAAA;AAIF,4BAA4B,YAAY,OAAO,cAAc,IAAI,MAAM;AAC5E,SAAO,WAAW,OAChB,CAAC,QAAQ,cAAc,UAAU,QAAQ,aAAa,OACtD;AAAA;AAIG,2BACL,YACA,UACA,eAAe,CAAC,WAAW,OAAO,KAAK,MACvC;AAGA,SAAO,CAAC,UACN,WAAW,OACT,CAAC,QAAQ,cAAc,UAAU,QAAQ,OAAO,WAChD,aAAa,MAAM;AAAA;AAIlB,MAAM,kBAAkB,CAAC,SAAS,aAAa,OAAO,SAC3D,WAAW,OACT,CAAC,aAAa,cAAc,UAAU,aAAa,GAAG,OACtD;AAGG,MAAM,kBAAkB,CAAC,SAAS,YAAY,SAAS;AAC5D,QAAM,cAAc,gBAClB,SACA,WAAW,iBACX;AAEF,SAAO,YAAY,IAAI,CAAC,QAAQ,UAC9B,gBAAgB,QAAQ,WAAW,gBAAgB,MAAM;AAAA;AAItD,MAAM,gBAAgB,CAAC,UAAU,iBAAkB;AAAA,KACrD;AAAA,KACA,aAAa;AAAA;AAGX,MAAM,8BAA8B,CAAC,UAAU,cAAc;AAClE,QAAM,EAAE,OAAO,YAAY,UAAU;AACrC,SAAO;AAAA,OACF;AAAA,IACH,OAAO;AAAA,SACF,SAAS;AAAA,SACT;AAAA;AAAA,IAEL,SAAS;AAAA,SACJ,SAAS;AAAA,SACT;AAAA;AAAA;AAAA;AAKT,MAAM,eAAe,CACnB,UACA,EAAE,KAAK,SAAS,SAAS,2BACrB;AAAA,KACD;AAAA,EACH,SAAS;AAAA,OACJ,SAAS;AAAA,KACX,MAAM,EAAE,SAAS,SAAS;AAAA;AAAA;AAIxB,MAAM,gCAAgC,CAAC,UAAU,gBAAgB;AACtE,QAAM,UAAU,YAAY;AAC5B,MAAI,MAAM,QAAQ,UAAU;AAC1B,WAAO,QAAQ,OAAO,cAAc;AAAA;AAEtC,SAAO,aAAa,UAAU;AAAA;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACAO,MAAM,oBAAoB,CAAC,aAAa,IAAI,SAAS,CAC1D,QAAQ,IACR,gBACG;AACH,MAAI,YAAY;AAChB,aAAW,QAAQ,CAAC,cAAc;AAChC,gBAAY,UAAU,WAAW,MAAM;AAAA;AAEzC,SAAO;AAAA;AAIF,4BACL,YACA,OACA,cAAc,IACd,QAAQ,IACR,MACA;AACA,MAAI,YAAY;AAChB,aAAW,QAAQ,CAAC,cAAc;AAChC,gBAAY,UAAU,OAAO,aAAa,WAAW;AAAA;AAEvD,SAAO;AAAA;AAIF,4BAA4B,YAAY,OAAO,cAAc,IAAI,MAAM;AAC5E,SAAO,WAAW,OAChB,CAAC,QAAQ,cAAc,UAAU,QAAQ,aAAa,OACtD;AAAA;AAIG,2BACL,YACA,UACA,eAAe,CAAC,WAAW,OAAO,KAAK,MACvC;AAGA,SAAO,CAAC,UACN,WAAW,OACT,CAAC,QAAQ,cAAc,UAAU,QAAQ,OAAO,WAChD,aAAa,MAAM;AAAA;AAIlB,MAAM,kBAAkB,CAAC,SAAS,aAAa,OAAO,SAC3D,WAAW,OACT,CAAC,aAAa,cAAc,UAAU,aAAa,GAAG,OACtD;AAGG,MAAM,kBAAkB,CAAC,SAAS,YAAY,SAAS;AAC5D,QAAM,cAAc,gBAClB,SACA,WAAW,iBACX;AAEF,SAAO,YAAY,IAAI,CAAC,QAAQ,UAC9B,gBAAgB,QAAQ,WAAW,gBAAgB,MAAM;AAAA;AAItD,MAAM,gBAAgB,CAAC,UAAU,iBAAkB,kCACrD,WACA,aAAa;AAGX,MAAM,8BAA8B,CAAC,UAAU,cAAc;AAClE,QAAM,EAAE,OAAO,YAAY,UAAU;AACrC,SAAO,iCACF,WADE;AAAA,IAEL,OAAO,kCACF,SAAS,QACT;AAAA,IAEL,SAAS,kCACJ,SAAS,UACT;AAAA;AAAA;AAKT,MAAM,eAAe,CACnB,UACA,EAAE,KAAK,SAAS,SAAS,2BACrB,iCACD,WADC;AAAA,EAEJ,SAAS,iCACJ,SAAS,UADL;AAAA,KAEN,MAAM,EAAE,SAAS,SAAS;AAAA;AAAA;AAIxB,MAAM,gCAAgC,CAAC,UAAU,gBAAgB;AACtE,QAAM,UAAU,YAAY;AAC5B,MAAI,MAAM,QAAQ,UAAU;AAC1B,WAAO,QAAQ,OAAO,cAAc;AAAA;AAEtC,SAAO,aAAa,UAAU;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,19 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
1
17
  import * as React from "react";
2
18
  import React2, { PureComponent } from "react";
3
19
  import raf from "raf";
@@ -12,9 +28,7 @@ const deferComponentRender = (WrappedComponent, fallback) => {
12
28
  raf(() => raf(() => this.setState({ shouldRender: true })));
13
29
  }
14
30
  render() {
15
- return this.state.shouldRender ? /* @__PURE__ */ React2.createElement(WrappedComponent, {
16
- ...this.props
17
- }) : fallback;
31
+ return this.state.shouldRender ? /* @__PURE__ */ React2.createElement(WrappedComponent, __spreadValues({}, this.props)) : fallback;
18
32
  }
19
33
  }
20
34
  return hoistNonReactStatic(DeferredRenderWrapper, WrappedComponent);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/defer-render-hoc/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { PureComponent } from 'react';\nimport raf from 'raf';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\n\n/**\n * Allows two animation frames to complete to allow other components to update\n * and re-render before mounting and rendering an expensive `WrappedComponent`.\n *\n * @param WrappedComponent\n * @param fallback\n */\nexport const deferComponentRender = (WrappedComponent, fallback) => {\n class DeferredRenderWrapper extends PureComponent {\n state = { shouldRender: false };\n\n componentDidMount() {\n raf(() => raf(() => this.setState({ shouldRender: true })));\n }\n\n render() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.state.shouldRender ? (\n <WrappedComponent {...this.props} />\n ) : (\n fallback\n );\n }\n }\n\n return hoistNonReactStatic(DeferredRenderWrapper, WrappedComponent);\n};\n\nexport default deferComponentRender;\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AASO,MAAM,uBAAuB,CAAC,kBAAkB,aAAa;AAClE,sCAAoC,cAAc;AAAA,IAAlD,cAZF;AAYE;AACE,mBAAQ,EAAE,cAAc;AAAA;AAAA,IAExB,oBAAoB;AAClB,UAAI,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,cAAc;AAAA;AAAA,IAGpD,SAAS;AAEP,aAAO,KAAK,MAAM,eAChB,qCAAC,kBAAD;AAAA,WAAsB,KAAK;AAAA,WAE3B;AAAA;AAAA;AAKN,SAAO,oBAAoB,uBAAuB;AAAA;AAGpD,IAAO,2BAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AASO,MAAM,uBAAuB,CAAC,kBAAkB,aAAa;AAClE,sCAAoC,cAAc;AAAA,IAAlD,cAZF;AAYE;AACE,mBAAQ,EAAE,cAAc;AAAA;AAAA,IAExB,oBAAoB;AAClB,UAAI,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,cAAc;AAAA;AAAA,IAGpD,SAAS;AAEP,aAAO,KAAK,MAAM,eAChB,qCAAC,kBAAD,mBAAsB,KAAK,UAE3B;AAAA;AAAA;AAKN,SAAO,oBAAoB,uBAAuB;AAAA;AAGpD,IAAO,2BAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,22 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1
20
  import * as React from "react";
2
21
  import React2, { useMemo, useRef, useState, useEffect, memo } from "react";
3
22
  import { DSPopover } from "@elliemae/ds-popper";
@@ -21,17 +40,15 @@ const ToolbarProvider = memo(({ delay = 200, children, onHide = noop, onShow = n
21
40
  const show = (state) => {
22
41
  if (state.reference === tooltipState.reference)
23
42
  clearTimeout(hideTimer.current);
24
- showTimer.current = setTimeout(() => setTooltipState({
25
- ...state,
43
+ showTimer.current = setTimeout(() => setTooltipState(__spreadProps(__spreadValues({}, state), {
26
44
  visible: true
27
- }), delay);
45
+ })), delay);
28
46
  onShow();
29
47
  };
30
48
  const hide = (e, force) => {
31
49
  if (!force)
32
50
  clearTimeout(showTimer.current);
33
- hideTimer.current = setTimeout(() => setTooltipState((prevState) => ({
34
- ...prevState,
51
+ hideTimer.current = setTimeout(() => setTooltipState((prevState) => __spreadProps(__spreadValues({}, prevState), {
35
52
  visible: false
36
53
  })), 100);
37
54
  onHide(tooltipState, e);
@@ -56,9 +73,9 @@ const ToolbarProvider = memo(({ delay = 200, children, onHide = noop, onShow = n
56
73
  }), [tooltipState.reference]);
57
74
  return /* @__PURE__ */ React2.createElement(Provider, {
58
75
  value
59
- }, children, /* @__PURE__ */ React2.createElement(DSPopover, {
60
- boundaries: "scrollParent",
61
- ...tooltipState.options || {},
76
+ }, children, /* @__PURE__ */ React2.createElement(DSPopover, __spreadProps(__spreadValues({
77
+ boundaries: "scrollParent"
78
+ }, tooltipState.options || {}), {
62
79
  content: tooltipState.renderer,
63
80
  placement: "left",
64
81
  referenceEl: tooltipState.reference,
@@ -71,7 +88,7 @@ const ToolbarProvider = memo(({ delay = 200, children, onHide = noop, onShow = n
71
88
  }, Content)),
72
89
  style: tooltipState.style,
73
90
  visible: tooltipState.visible
74
- }));
91
+ })));
75
92
  });
76
93
  var ToolbarProvider_default = ToolbarProvider;
77
94
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/toolbar/ToolbarProvider.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo, useRef, useState, useEffect, memo } from 'react';\nimport { DSPopover } from '@elliemae/ds-popper';\nimport { useOnClickOutside } from '@elliemae/ds-utilities';\n\nexport const ToolbarContext = React.createContext();\n\nconst { Provider } = ToolbarContext;\n\nconst useScrollListener = (callback, dependencies) => {\n useEffect(() => {\n window.addEventListener('scroll', callback, true);\n return () => {\n window.removeEventListener('scroll', callback, true);\n };\n }, [dependencies]);\n};\n\nconst noop = () => null;\nconst ToolbarProvider = memo(({ delay = 200, children, onHide = noop, onShow = noop }) => {\n const showTimer = useRef();\n const hideTimer = useRef();\n const toolbarRef = useRef();\n const [tooltipState, setTooltipState] = useState({});\n\n const show = (state) => {\n if (state.reference === tooltipState.reference) clearTimeout(hideTimer.current);\n showTimer.current = setTimeout(\n () =>\n setTooltipState({\n ...state,\n visible: true,\n }),\n delay,\n );\n onShow();\n };\n\n const hide = (e, force) => {\n if (!force) clearTimeout(showTimer.current);\n hideTimer.current = setTimeout(\n () =>\n setTooltipState((prevState) => ({\n ...prevState,\n visible: false,\n })),\n 100,\n );\n onHide(tooltipState, e);\n };\n\n useScrollListener((e) => hide(e, true), tooltipState.visible);\n useOnClickOutside(toolbarRef, () => hide());\n\n const keyDownHandler = (e) => {\n if (e.key === 'Escape') {\n hide(e);\n }\n };\n\n useEffect(() => {\n window.addEventListener('keydown', keyDownHandler);\n return () => {\n window.removeEventListener('keydown', keyDownHandler);\n };\n });\n\n const value = useMemo(\n () => ({\n state: tooltipState,\n show,\n hide,\n }),\n [tooltipState.reference],\n );\n\n return (\n <Provider value={value}>\n {children}\n <DSPopover\n boundaries=\"scrollParent\"\n {...(tooltipState.options || {})}\n content={tooltipState.renderer}\n placement=\"left\"\n referenceEl={tooltipState.reference}\n renderer={({ as: Component, style, children: Content }) => (\n <div ref={toolbarRef} onMouseEnter={(e) => show(tooltipState, e)} onMouseLeave={hide}>\n <Component style={style}>{Content}</Component>\n </div>\n )}\n style={tooltipState.style}\n visible={tooltipState.visible}\n />\n </Provider>\n );\n});\n\nexport { ToolbarProvider };\nexport default ToolbarProvider;\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AAEO,MAAM,iBAAiB,OAAM;AAEpC,MAAM,EAAE,aAAa;AAErB,MAAM,oBAAoB,CAAC,UAAU,iBAAiB;AACpD,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,UAAU;AAC5C,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,UAAU;AAAA;AAAA,KAEhD,CAAC;AAAA;AAGN,MAAM,OAAO,MAAM;AACnB,MAAM,kBAAkB,KAAK,CAAC,EAAE,QAAQ,KAAK,UAAU,SAAS,MAAM,SAAS,WAAW;AACxF,QAAM,YAAY;AAClB,QAAM,YAAY;AAClB,QAAM,aAAa;AACnB,QAAM,CAAC,cAAc,mBAAmB,SAAS;AAEjD,QAAM,OAAO,CAAC,UAAU;AACtB,QAAI,MAAM,cAAc,aAAa;AAAW,mBAAa,UAAU;AACvE,cAAU,UAAU,WAClB,MACE,gBAAgB;AAAA,SACX;AAAA,MACH,SAAS;AAAA,QAEb;AAEF;AAAA;AAGF,QAAM,OAAO,CAAC,GAAG,UAAU;AACzB,QAAI,CAAC;AAAO,mBAAa,UAAU;AACnC,cAAU,UAAU,WAClB,MACE,gBAAgB,CAAC,cAAe;AAAA,SAC3B;AAAA,MACH,SAAS;AAAA,SAEb;AAEF,WAAO,cAAc;AAAA;AAGvB,oBAAkB,CAAC,MAAM,KAAK,GAAG,OAAO,aAAa;AACrD,oBAAkB,YAAY,MAAM;AAEpC,QAAM,iBAAiB,CAAC,MAAM;AAC5B,QAAI,EAAE,QAAQ,UAAU;AACtB,WAAK;AAAA;AAAA;AAIT,YAAU,MAAM;AACd,WAAO,iBAAiB,WAAW;AACnC,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW;AAAA;AAAA;AAI1C,QAAM,QAAQ,QACZ,MAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA;AAAA,MAEF,CAAC,aAAa;AAGhB,SACE,qCAAC,UAAD;AAAA,IAAU;AAAA,KACP,UACD,qCAAC,WAAD;AAAA,IACE,YAAW;AAAA,OACN,aAAa,WAAW;AAAA,IAC7B,SAAS,aAAa;AAAA,IACtB,WAAU;AAAA,IACV,aAAa,aAAa;AAAA,IAC1B,UAAU,CAAC,EAAE,IAAI,WAAW,OAAO,UAAU,cAC3C,qCAAC,OAAD;AAAA,MAAK,KAAK;AAAA,MAAY,cAAc,CAAC,MAAM,KAAK,cAAc;AAAA,MAAI,cAAc;AAAA,OAC9E,qCAAC,WAAD;AAAA,MAAW;AAAA,OAAe;AAAA,IAG9B,OAAO,aAAa;AAAA,IACpB,SAAS,aAAa;AAAA;AAAA;AAO9B,IAAO,0BAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;ACAA;AACA;AACA;AAEO,MAAM,iBAAiB,OAAM;AAEpC,MAAM,EAAE,aAAa;AAErB,MAAM,oBAAoB,CAAC,UAAU,iBAAiB;AACpD,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,UAAU;AAC5C,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,UAAU;AAAA;AAAA,KAEhD,CAAC;AAAA;AAGN,MAAM,OAAO,MAAM;AACnB,MAAM,kBAAkB,KAAK,CAAC,EAAE,QAAQ,KAAK,UAAU,SAAS,MAAM,SAAS,WAAW;AACxF,QAAM,YAAY;AAClB,QAAM,YAAY;AAClB,QAAM,aAAa;AACnB,QAAM,CAAC,cAAc,mBAAmB,SAAS;AAEjD,QAAM,OAAO,CAAC,UAAU;AACtB,QAAI,MAAM,cAAc,aAAa;AAAW,mBAAa,UAAU;AACvE,cAAU,UAAU,WAClB,MACE,gBAAgB,iCACX,QADW;AAAA,MAEd,SAAS;AAAA,SAEb;AAEF;AAAA;AAGF,QAAM,OAAO,CAAC,GAAG,UAAU;AACzB,QAAI,CAAC;AAAO,mBAAa,UAAU;AACnC,cAAU,UAAU,WAClB,MACE,gBAAgB,CAAC,cAAe,iCAC3B,YAD2B;AAAA,MAE9B,SAAS;AAAA,SAEb;AAEF,WAAO,cAAc;AAAA;AAGvB,oBAAkB,CAAC,MAAM,KAAK,GAAG,OAAO,aAAa;AACrD,oBAAkB,YAAY,MAAM;AAEpC,QAAM,iBAAiB,CAAC,MAAM;AAC5B,QAAI,EAAE,QAAQ,UAAU;AACtB,WAAK;AAAA;AAAA;AAIT,YAAU,MAAM;AACd,WAAO,iBAAiB,WAAW;AACnC,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW;AAAA;AAAA;AAI1C,QAAM,QAAQ,QACZ,MAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA;AAAA,MAEF,CAAC,aAAa;AAGhB,SACE,qCAAC,UAAD;AAAA,IAAU;AAAA,KACP,UACD,qCAAC,WAAD;AAAA,IACE,YAAW;AAAA,KACN,aAAa,WAAW,KAF/B;AAAA,IAGE,SAAS,aAAa;AAAA,IACtB,WAAU;AAAA,IACV,aAAa,aAAa;AAAA,IAC1B,UAAU,CAAC,EAAE,IAAI,WAAW,OAAO,UAAU,cAC3C,qCAAC,OAAD;AAAA,MAAK,KAAK;AAAA,MAAY,cAAc,CAAC,MAAM,KAAK,cAAc;AAAA,MAAI,cAAc;AAAA,OAC9E,qCAAC,WAAD;AAAA,MAAW;AAAA,OAAe;AAAA,IAG9B,OAAO,aAAa;AAAA,IACpB,SAAS,aAAa;AAAA;AAAA;AAO9B,IAAO,0BAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,22 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
1
20
  import * as React from "react";
2
21
  import React2 from "react";
3
22
  import { v4 as uuidv4 } from "uuid";
@@ -8,12 +27,10 @@ import {
8
27
  cloneDeep,
9
28
  isFunction
10
29
  } from "@elliemae/ds-utilities";
11
- const appendHeaderFormatter = curry((formatter, column) => ({
12
- ...column,
13
- header: {
14
- ...column.header,
30
+ const appendHeaderFormatter = curry((formatter, column) => __spreadProps(__spreadValues({}, column), {
31
+ header: __spreadProps(__spreadValues({}, column.header), {
15
32
  formatters: [...get(column, "header.formatters", []), formatter]
16
- }
33
+ })
17
34
  }));
18
35
  const appendCellFormatter = curry((formatter, column, path = "formatters") => {
19
36
  const nextColumn = cloneDeep(column);
@@ -40,16 +57,13 @@ const defaultColumnDefinitionOptions = {
40
57
  const mergeClassNameToColumnHeader = curry((className, column) => {
41
58
  const headerProps = get(column, ["header", "props"], {});
42
59
  const headerClassName = headerProps.className || "";
43
- return {
44
- ...column,
45
- header: {
46
- ...column.header,
47
- props: {
48
- ...headerProps,
60
+ return __spreadProps(__spreadValues({}, column), {
61
+ header: __spreadProps(__spreadValues({}, column.header), {
62
+ props: __spreadProps(__spreadValues({}, headerProps), {
49
63
  className: `${headerClassName} ${className}`
50
- }
51
- }
52
- };
64
+ })
65
+ })
66
+ });
53
67
  });
54
68
  const initColumnDefinition = (options = {}) => {
55
69
  return (column) => {
@@ -58,40 +72,34 @@ const initColumnDefinition = (options = {}) => {
58
72
  textAlign: "right"
59
73
  };
60
74
  }
61
- const { useTextTruncation = true, isUserColumn, visible, normalize } = {
62
- ...defaultColumnDefinitionOptions,
63
- ...options
64
- };
75
+ const { useTextTruncation = true, isUserColumn, visible, normalize } = __spreadValues(__spreadValues({}, defaultColumnDefinitionOptions), options);
65
76
  if (normalize) {
66
77
  column.originalProperty = column.property;
67
78
  column.property = column.property.replace(/\s+/g, "");
68
79
  }
69
- column.props = {
70
- ...column.props,
80
+ column.props = __spreadProps(__spreadValues({}, column.props), {
71
81
  style: {}
72
- };
73
- column.header = {
74
- ...column.header,
82
+ });
83
+ column.header = __spreadProps(__spreadValues({}, column.header), {
75
84
  label: column.label,
76
85
  formatters: [...get(column, ["header", "formatters"], [])],
77
86
  props: {
78
87
  style: column.headerStyle || {}
79
88
  }
80
- };
89
+ });
81
90
  if (useTextTruncation && !(isFunction(column.customHeaderRenderer) || column.header.formatters.length)) {
82
91
  column.header.formatters.push((value) => /* @__PURE__ */ React2.createElement("span", {
83
92
  className: "cell-value"
84
93
  }, value));
85
94
  }
86
- column.cell = {
87
- ...column.cell,
95
+ column.cell = __spreadProps(__spreadValues({}, column.cell), {
88
96
  transforms: [],
89
97
  formatters: [...get(column, ["cell", "formatters"], [])],
90
98
  scrollingFormatters: [...get(column, ["cell", "formatters"], [])],
91
99
  props: {
92
100
  style: column.cellStyle || {}
93
101
  }
94
- };
102
+ });
95
103
  if (useTextTruncation && !(isFunction(column.customRenderer) || column.cell.formatters.length)) {
96
104
  column.cell.formatters.push((value) => /* @__PURE__ */ React2.createElement("span", {
97
105
  className: "cell-value",
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/useDataGrid/initColumnDefinition.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable react/display-name */\nimport React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n get,\n curry,\n set,\n cloneDeep,\n isFunction,\n} from '@elliemae/ds-utilities';\n\n// TODO: use lenses to access nested fields\n\nexport const appendHeaderFormatter = curry((formatter, column) => ({\n ...column,\n header: {\n ...column.header,\n formatters: [...get(column, 'header.formatters', []), formatter],\n },\n}));\n\nexport const appendCellFormatter = curry(\n (formatter, column, path = 'formatters') => {\n const nextColumn = cloneDeep(column);\n const formatters = get(nextColumn, ['cell', path], []);\n const scrollingFormatters = get(nextColumn, 'cell.scrollingFormatters', []);\n if (Array.isArray(formatter)) {\n if (formatter[1]) scrollingFormatters.push(formatter[1]);\n formatters.push(formatter[0]);\n } else {\n formatters.push(formatter);\n scrollingFormatters.push(formatter);\n }\n set(nextColumn, ['cell', path], formatters);\n set(nextColumn, 'cell.scrollingFormatters', scrollingFormatters);\n return nextColumn;\n },\n);\n\nconst defaultColumnDefinitionOptions = {\n normalize: false,\n useTextTruncation: true,\n isUserColumn: true,\n visible: true,\n};\n\nexport const mergeClassNameToColumnHeader = curry((className, column) => {\n const headerProps = get(column, ['header', 'props'], {});\n const headerClassName = headerProps.className || '';\n return {\n ...column,\n header: {\n ...column.header,\n props: {\n ...headerProps,\n className: `${headerClassName} ${className}`,\n },\n },\n };\n});\n\nexport const initColumnDefinition = (options = {}) => {\n // eslint-disable-next-line complexity\n return (column) => {\n // todo: clean this\n if (column.type === 'number') {\n // eslint-disable-next-line no-param-reassign\n column.cellStyle = {\n textAlign: 'right',\n };\n }\n const { useTextTruncation = true, isUserColumn, visible, normalize } = {\n ...defaultColumnDefinitionOptions,\n ...options,\n };\n\n if (normalize) {\n // eslint-disable-next-line no-param-reassign\n column.originalProperty = column.property;\n // eslint-disable-next-line no-param-reassign\n column.property = column.property.replace(/\\s+/g, '');\n }\n\n // eslint-disable-next-line no-param-reassign\n column.props = {\n ...column.props,\n style: {},\n };\n // eslint-disable-next-line no-param-reassign\n column.header = {\n ...column.header,\n label: column.label,\n formatters: [...get(column, ['header', 'formatters'], [])],\n props: {\n style: column.headerStyle || {},\n },\n };\n if (\n useTextTruncation &&\n !(\n isFunction(column.customHeaderRenderer) ||\n column.header.formatters.length\n )\n ) {\n column.header.formatters.push((value) => (\n <span className=\"cell-value\">{value}</span>\n ));\n }\n\n // eslint-disable-next-line no-param-reassign\n column.cell = {\n ...column.cell,\n transforms: [],\n formatters: [...get(column, ['cell', 'formatters'], [])],\n scrollingFormatters: [...get(column, ['cell', 'formatters'], [])],\n props: {\n style: column.cellStyle || {},\n },\n };\n\n if (\n useTextTruncation &&\n !(isFunction(column.customRenderer) || column.cell.formatters.length)\n ) {\n column.cell.formatters.push((value) => (\n <span\n className=\"cell-value\"\n style={{\n justifyContent:\n column.type === 'number' ? 'flex-end' : 'flex-start',\n }}\n >\n {value}\n </span>\n ));\n }\n // eslint-disable-next-line no-param-reassign\n column.uuid = column.uuid || uuidv4();\n // eslint-disable-next-line no-param-reassign\n column.visible = column.visible === undefined ? visible : column.visible;\n // eslint-disable-next-line no-param-reassign, max-lines\n column.isUserColumn = column.isUserColumn || isUserColumn;\n // eslint-disable-next-line no-param-reassign\n column.headerHookEffects = [];\n return column;\n };\n};\n\nexport default initColumnDefinition;\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,34 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
1
32
  import * as React from "react";
2
33
  import {
3
34
  cloneDeep,
@@ -20,14 +51,20 @@ import {
20
51
  import { VolatileRowsListener } from "./VolatileRowsListener";
21
52
  import { isInternetExplorer } from "../utils";
22
53
  const IS_INTERNET_EXPLORER = isInternetExplorer();
23
- const useDataGrid = ({
24
- uuid: uuidProp,
25
- plugins: pluginsFromProps,
26
- rows,
27
- columns,
28
- renderers = {},
29
- ...props
30
- }) => {
54
+ const useDataGrid = (_a) => {
55
+ var _b = _a, {
56
+ uuid: uuidProp,
57
+ plugins: pluginsFromProps,
58
+ rows,
59
+ columns,
60
+ renderers = {}
61
+ } = _b, props = __objRest(_b, [
62
+ "uuid",
63
+ "plugins",
64
+ "rows",
65
+ "columns",
66
+ "renderers"
67
+ ]);
31
68
  const plugins = pluginsFromProps;
32
69
  const instance = useRef();
33
70
  const tableRef = useRef();
@@ -111,30 +148,18 @@ const useDataGrid = ({
111
148
  plugins.forEach((plugin) => nextDecorators = plugin(nextDecorators));
112
149
  return nextDecorators;
113
150
  }, [plugins]);
114
- instance.current = decorators.decorateGrid.reduce((nextInstance, decorator) => ({
115
- ...nextInstance,
116
- ...decorator(instance.current)
117
- }), instance.current);
151
+ instance.current = decorators.decorateGrid.reduce((nextInstance, decorator) => __spreadValues(__spreadValues({}, nextInstance), decorator(instance.current)), instance.current);
118
152
  instance.current = decorators.registerStateHook.reduce((nextInstance, decorator) => {
119
153
  const { state, actions } = decorator(instance.current);
120
- return {
121
- ...nextInstance,
122
- state: {
123
- ...nextInstance.state,
124
- ...state
125
- },
126
- actions: {
127
- ...nextInstance.actions,
128
- ...actions
129
- }
130
- };
154
+ return __spreadProps(__spreadValues({}, nextInstance), {
155
+ state: __spreadValues(__spreadValues({}, nextInstance.state), state),
156
+ actions: __spreadValues(__spreadValues({}, nextInstance.actions), actions)
157
+ });
131
158
  }, instance.current);
132
- const reduceHotKey = (nextInstance, { key, handler, options }) => ({
133
- ...nextInstance,
134
- hotKeys: {
135
- ...nextInstance.hotKeys,
159
+ const reduceHotKey = (nextInstance, { key, handler, options }) => __spreadProps(__spreadValues({}, nextInstance), {
160
+ hotKeys: __spreadProps(__spreadValues({}, nextInstance.hotKeys), {
136
161
  [key]: { handler, options }
137
- }
162
+ })
138
163
  });
139
164
  instance.current = decorators.registerHotKeys.reduce((nextInstance, decorator) => {
140
165
  const hotKeys = decorator(nextInstance);
@@ -164,10 +189,9 @@ const useDataGrid = ({
164
189
  }
165
190
  if (props.instanceRef)
166
191
  setRef(props.instanceRef, instance.current);
167
- return {
168
- ...instance.current,
192
+ return __spreadProps(__spreadValues({}, instance.current), {
169
193
  decorators
170
- };
194
+ });
171
195
  };
172
196
  var useDataGrid_default = useDataGrid;
173
197
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/useDataGrid/useDataGrid.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport {\n cloneDeep,\n compose,\n isEqual,\n isObject,\n setRef, \n usePrevious, \n useDerivedStateFromProps \n} from '@elliemae/ds-utilities';\nimport { useMemo, useRef, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as resolve from 'table-resolver';\nimport { initColumnDefinition } from './initColumnDefinition';\nimport {\n applyDecorators,\n decorateColumns,\n reducePropsGetter,\n} from '../createDataInstance/utils';\nimport { VolatileRowsListener } from './VolatileRowsListener';\nimport { isInternetExplorer } from '../utils';\n\nconst IS_INTERNET_EXPLORER = isInternetExplorer();\n\n// TODO: Reuse createDataInstance for the grid the same\n// way as the list does ex: packages/ds-shared/src/useDataList/useDataList.js\n// eslint-disable-next-line max-statements\nexport const useDataGrid = ({\n uuid: uuidProp,\n plugins: pluginsFromProps,\n rows,\n columns,\n renderers = {},\n ...props\n}) => {\n const plugins = pluginsFromProps;\n const instance = useRef();\n const tableRef = useRef();\n const headerRef = useRef();\n const bodyRef = useRef();\n const bodyInnerRef = useRef();\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n const [hasScroll, setHasScroll] = useState(false);\n const [isRowDragging, setIsRowDragging] = useState(false);\n const isScrolling = useRef();\n const shouldRefocus = useRef(); // todo: we probably need a plugin for focus related stuff\n const [RowsObserver] = useState(() => new VolatileRowsListener());\n\n // todo move this with rows composition\n const [originalRows, updateRows] = useDerivedStateFromProps(rows, {\n onUpdate: resolve.resolve({\n columns,\n method: (extra) =>\n compose(\n resolve.byFunction('valueTransformation')(extra),\n resolve.nested(extra),\n ),\n }),\n updateOnStateChange: true,\n });\n\n instance.current = {\n decoratedRenderers: cloneDeep(renderers),\n decoratedColumns: columns,\n columns,\n rows,\n composedRows: originalRows,\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n effects: [],\n uuid,\n props,\n refs: {\n table: tableRef,\n body: bodyRef,\n header: headerRef,\n innerBody: bodyInnerRef,\n },\n state: {\n hasScroll,\n },\n actions: {\n updateRows,\n },\n updateRows,\n // eslint-disable-next-line no-return-assign\n enableEvents: () =>\n (document.body.style.pointerEvents = IS_INTERNET_EXPLORER ? '' : null),\n // eslint-disable-next-line no-return-assign\n disableEvents: () => (document.body.style.pointerEvents = 'none'),\n observeRows: (observer) => RowsObserver.observe(observer),\n hotKeys: {},\n shouldRefocus,\n isScrolling,\n setHasScroll,\n setIsRowDragging,\n isRowDragging,\n plugins,\n };\n instance.current.getState = () => instance.current.state;\n instance.current.getInstance = () => instance.current;\n\n const defaultDecorators = {\n decorateGrid: [],\n registerStateHook: [],\n registerHotKeys: [],\n decorateColumn: [],\n decorateColumns: [\n (cols) =>\n cols.map((col) =>\n initColumnDefinition({\n useTextTruncation: col.useTextTruncation,\n wrapText: props.wrapText,\n normalize: props.normalizeDataKeys,\n })(col),\n ),\n ],\n decorateRenderers: [],\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n getHeaderProps: [],\n composeRows: [],\n };\n\n const decorators = useMemo(() => {\n let nextDecorators = defaultDecorators;\n // eslint-disable-next-line no-return-assign\n plugins.forEach((plugin) => (nextDecorators = plugin(nextDecorators)));\n return nextDecorators;\n }, [plugins]);\n\n instance.current = decorators.decorateGrid.reduce(\n (nextInstance, decorator) => ({\n ...nextInstance,\n ...decorator(instance.current),\n }),\n instance.current,\n );\n\n instance.current = decorators.registerStateHook.reduce(\n (nextInstance, decorator) => {\n const { state, actions } = decorator(instance.current);\n return {\n ...nextInstance,\n state: {\n ...nextInstance.state,\n ...state,\n },\n actions: {\n ...nextInstance.actions,\n ...actions,\n },\n };\n },\n instance.current,\n );\n\n const reduceHotKey = (nextInstance, { key, handler, options }) => ({\n ...nextInstance,\n hotKeys: {\n ...nextInstance.hotKeys,\n [key]: { handler, options },\n },\n });\n instance.current = decorators.registerHotKeys.reduce(\n (nextInstance, decorator) => {\n const hotKeys = decorator(nextInstance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, nextInstance);\n }\n return reduceHotKey(nextInstance, hotKeys);\n },\n instance.current,\n );\n\n instance.current.decoratedRenderers = applyDecorators(\n instance.current.decoratedRenderers,\n decorators.decorateRenderers,\n instance.current,\n );\n\n instance.current.decoratedColumns = useMemo(() => {\n const visibleColumns = cloneDeep(columns).filter(\n (column) => typeof column.visible === 'undefined' || column.visible,\n );\n return visibleColumns.length\n ? decorateColumns(visibleColumns, decorators, instance.current)\n : [];\n }, [columns]);\n\n instance.current.getBodyProps = reducePropsGetter(\n decorators.getBodyProps,\n instance.current,\n );\n instance.current.getHeaderProps = reducePropsGetter(\n decorators.getHeaderProps,\n instance.current,\n );\n instance.current.getRowProps = reducePropsGetter(\n decorators.getRowProps,\n instance.current,\n );\n instance.current.getHeaderRowProps = reducePropsGetter(\n decorators.getHeaderRowProps,\n instance.current,\n );\n instance.current.getTableProps = reducePropsGetter(\n decorators.getTableProps,\n instance.current,\n );\n\n instance.current.composedRows = decorators.composeRows.reduce(\n (nextRows, getter) => getter(nextRows, instance.current),\n instance.current.composedRows,\n );\n\n RowsObserver.notify(instance.current.composedRows);\n\n const currentShouldRefocus = instance.current.shouldRefocus.current;\n const prevState = usePrevious(instance.current.state);\n if (isObject(currentShouldRefocus) && currentShouldRefocus.forced) {\n instance.current.shouldRefocus.current = currentShouldRefocus.value;\n } else {\n instance.current.shouldRefocus.current = !isEqual(\n prevState,\n instance.current.state,\n );\n }\n\n if (props.instanceRef) setRef(props.instanceRef, instance.current);\n\n return {\n ...instance.current,\n decorators,\n };\n};\n\nexport default useDataGrid;\n\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }