@elliemae/ds-left-navigation 3.80.0-next.6 → 3.80.0-next.61

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 (106) hide show
  1. package/dist/cjs/TruncatedTooltipText.js +25 -4
  2. package/dist/cjs/TruncatedTooltipText.js.map +2 -2
  3. package/dist/cjs/constants/index.js +4 -0
  4. package/dist/cjs/constants/index.js.map +2 -2
  5. package/dist/cjs/exported-related/Icon/index.js +24 -3
  6. package/dist/cjs/exported-related/Icon/index.js.map +3 -3
  7. package/dist/cjs/exported-related/OpenWindowItem/index.js +23 -2
  8. package/dist/cjs/exported-related/OpenWindowItem/index.js.map +3 -3
  9. package/dist/cjs/exported-related/conversion-utils/conversionConstants.js +64 -0
  10. package/dist/cjs/exported-related/conversion-utils/conversionConstants.js.map +7 -0
  11. package/dist/cjs/exported-related/conversion-utils/conversionHelpers.js +192 -0
  12. package/dist/cjs/exported-related/conversion-utils/conversionHelpers.js.map +7 -0
  13. package/dist/cjs/exported-related/conversion-utils/convertItemOpts.js +187 -0
  14. package/dist/cjs/exported-related/conversion-utils/convertItemOpts.js.map +7 -0
  15. package/dist/cjs/exported-related/conversion-utils/getHumanReadableWarnings.js +37 -0
  16. package/dist/cjs/exported-related/conversion-utils/getHumanReadableWarnings.js.map +7 -0
  17. package/dist/cjs/exported-related/conversion-utils/index.js +95 -0
  18. package/dist/cjs/exported-related/conversion-utils/index.js.map +7 -0
  19. package/dist/cjs/exported-related/conversion-utils/lostCodes.js +55 -0
  20. package/dist/cjs/exported-related/conversion-utils/lostCodes.js.map +7 -0
  21. package/dist/cjs/exported-related/conversion-utils/report.js +48 -0
  22. package/dist/cjs/exported-related/conversion-utils/report.js.map +7 -0
  23. package/dist/cjs/exported-related/conversion-utils/types.js +28 -0
  24. package/dist/cjs/exported-related/conversion-utils/types.js.map +7 -0
  25. package/dist/cjs/exported-related/conversion-utils/validateIds.js +58 -0
  26. package/dist/cjs/exported-related/conversion-utils/validateIds.js.map +7 -0
  27. package/dist/cjs/index.js +2 -0
  28. package/dist/cjs/index.js.map +2 -2
  29. package/dist/cjs/outOfTheBox/ItemHeader/index.js +1 -1
  30. package/dist/cjs/outOfTheBox/ItemHeader/index.js.map +2 -2
  31. package/dist/cjs/outOfTheBox/ItemLink/index.js +1 -1
  32. package/dist/cjs/outOfTheBox/ItemLink/index.js.map +2 -2
  33. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js +1 -1
  34. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js.map +2 -2
  35. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js +1 -1
  36. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js.map +2 -2
  37. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +1 -1
  38. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +2 -2
  39. package/dist/cjs/outOfTheBox/ItemWithDate/index.js +1 -1
  40. package/dist/cjs/outOfTheBox/ItemWithDate/index.js.map +2 -2
  41. package/dist/cjs/parts/LeftNavFooterItem/index.js +2 -3
  42. package/dist/cjs/parts/LeftNavFooterItem/index.js.map +2 -2
  43. package/dist/cjs/react-desc-prop-types.js +58 -1
  44. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  45. package/dist/cjs/typescript-testing/slot-props.js +8 -0
  46. package/dist/cjs/typescript-testing/slot-props.js.map +2 -2
  47. package/dist/esm/TruncatedTooltipText.js +26 -5
  48. package/dist/esm/TruncatedTooltipText.js.map +2 -2
  49. package/dist/esm/constants/index.js +4 -0
  50. package/dist/esm/constants/index.js.map +2 -2
  51. package/dist/esm/exported-related/Icon/index.js +24 -3
  52. package/dist/esm/exported-related/Icon/index.js.map +3 -3
  53. package/dist/esm/exported-related/OpenWindowItem/index.js +23 -2
  54. package/dist/esm/exported-related/OpenWindowItem/index.js.map +3 -3
  55. package/dist/esm/exported-related/conversion-utils/conversionConstants.js +34 -0
  56. package/dist/esm/exported-related/conversion-utils/conversionConstants.js.map +7 -0
  57. package/dist/esm/exported-related/conversion-utils/conversionHelpers.js +172 -0
  58. package/dist/esm/exported-related/conversion-utils/conversionHelpers.js.map +7 -0
  59. package/dist/esm/exported-related/conversion-utils/convertItemOpts.js +157 -0
  60. package/dist/esm/exported-related/conversion-utils/convertItemOpts.js.map +7 -0
  61. package/dist/esm/exported-related/conversion-utils/getHumanReadableWarnings.js +7 -0
  62. package/dist/esm/exported-related/conversion-utils/getHumanReadableWarnings.js.map +7 -0
  63. package/dist/esm/exported-related/conversion-utils/index.js +65 -0
  64. package/dist/esm/exported-related/conversion-utils/index.js.map +7 -0
  65. package/dist/esm/exported-related/conversion-utils/lostCodes.js +25 -0
  66. package/dist/esm/exported-related/conversion-utils/lostCodes.js.map +7 -0
  67. package/dist/esm/exported-related/conversion-utils/report.js +18 -0
  68. package/dist/esm/exported-related/conversion-utils/report.js.map +7 -0
  69. package/dist/esm/exported-related/conversion-utils/types.js +2 -0
  70. package/dist/esm/exported-related/conversion-utils/types.js.map +7 -0
  71. package/dist/esm/exported-related/conversion-utils/validateIds.js +28 -0
  72. package/dist/esm/exported-related/conversion-utils/validateIds.js.map +7 -0
  73. package/dist/esm/index.js +2 -0
  74. package/dist/esm/index.js.map +2 -2
  75. package/dist/esm/outOfTheBox/ItemHeader/index.js +1 -1
  76. package/dist/esm/outOfTheBox/ItemHeader/index.js.map +2 -2
  77. package/dist/esm/outOfTheBox/ItemLink/index.js +1 -1
  78. package/dist/esm/outOfTheBox/ItemLink/index.js.map +2 -2
  79. package/dist/esm/outOfTheBox/ItemSubmenu/index.js +1 -1
  80. package/dist/esm/outOfTheBox/ItemSubmenu/index.js.map +2 -2
  81. package/dist/esm/outOfTheBox/ItemTextLabel/index.js +1 -1
  82. package/dist/esm/outOfTheBox/ItemTextLabel/index.js.map +2 -2
  83. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +1 -1
  84. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +2 -2
  85. package/dist/esm/outOfTheBox/ItemWithDate/index.js +1 -1
  86. package/dist/esm/outOfTheBox/ItemWithDate/index.js.map +2 -2
  87. package/dist/esm/parts/LeftNavFooterItem/index.js +2 -3
  88. package/dist/esm/parts/LeftNavFooterItem/index.js.map +2 -2
  89. package/dist/esm/react-desc-prop-types.js +58 -1
  90. package/dist/esm/react-desc-prop-types.js.map +2 -2
  91. package/dist/esm/typescript-testing/slot-props.js +8 -0
  92. package/dist/esm/typescript-testing/slot-props.js.map +2 -2
  93. package/dist/types/constants/index.d.ts +12 -0
  94. package/dist/types/exported-related/Icon/index.d.ts +4 -0
  95. package/dist/types/exported-related/conversion-utils/conversionConstants.d.ts +20 -0
  96. package/dist/types/exported-related/conversion-utils/conversionHelpers.d.ts +25 -0
  97. package/dist/types/exported-related/conversion-utils/convertItemOpts.d.ts +22 -0
  98. package/dist/types/exported-related/conversion-utils/getHumanReadableWarnings.d.ts +7 -0
  99. package/dist/types/exported-related/conversion-utils/index.d.ts +12 -0
  100. package/dist/types/exported-related/conversion-utils/lostCodes.d.ts +23 -0
  101. package/dist/types/exported-related/conversion-utils/report.d.ts +3 -0
  102. package/dist/types/exported-related/conversion-utils/types.d.ts +37 -0
  103. package/dist/types/exported-related/conversion-utils/validateIds.d.ts +9 -0
  104. package/dist/types/index.d.ts +2 -0
  105. package/dist/types/react-desc-prop-types.d.ts +4 -0
  106. package/package.json +16 -13
@@ -37,14 +37,22 @@ var import_jsx_runtime = require("react/jsx-runtime");
37
37
  var import_react = require("react");
38
38
  var import_ds_system = require("@elliemae/ds-system");
39
39
  var import_ds_floating_context = require("@elliemae/ds-floating-context");
40
- const TruncatedSpan = import_ds_system.styled.span`
40
+ var import_constants = require("./constants/index.js");
41
+ var import_LeftNavigationContext = require("./LeftNavigationContext.js");
42
+ const TruncatedSpan = (0, import_ds_system.styled)("span", {
43
+ name: import_constants.DSLeftNavigationName,
44
+ slot: import_constants.LEFT_NAVIGATION_SLOTS.TRUNCATED_LABEL
45
+ })`
41
46
  text-overflow: ellipsis;
42
47
  white-space: nowrap;
43
48
  overflow: hidden;
44
49
  display: inline-block;
45
50
  max-width: 100%;
46
51
  `;
47
- const TooltipContainer = import_ds_system.styled.div`
52
+ const TooltipContainer = (0, import_ds_system.styled)("div", {
53
+ name: import_constants.DSLeftNavigationName,
54
+ slot: import_constants.LEFT_NAVIGATION_SLOTS.TRUNCATED_LABEL_TOOLTIP
55
+ })`
48
56
  text-align: center;
49
57
  min-width: ${({ theme }) => theme.space.l};
50
58
  max-width: 250px;
@@ -63,6 +71,9 @@ const TooltipContainer = import_ds_system.styled.div`
63
71
  `;
64
72
  const TruncatedTooltipText = ({ value = "", placement = "top" }) => {
65
73
  const [showTooltip, setShowTooltip] = (0, import_react.useState)(false);
74
+ const { leftNavProps } = (0, import_react.useContext)(import_LeftNavigationContext.LeftNavContext);
75
+ const getOwnerProps = (0, import_react.useCallback)(() => leftNavProps, [leftNavProps]);
76
+ const getOwnerPropsArguments = (0, import_react.useCallback)(() => ({}), []);
66
77
  const { refs, floatingStyles, arrowStyles, context } = (0, import_ds_floating_context.useFloatingContext)({
67
78
  placement,
68
79
  externallyControlledIsOpen: showTooltip,
@@ -76,7 +87,17 @@ const TruncatedTooltipText = ({ value = "", placement = "top" }) => {
76
87
  setShowTooltip(false);
77
88
  }, []);
78
89
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
79
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TruncatedSpan, { innerRef: refs.setReference, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: value }),
90
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
+ TruncatedSpan,
92
+ {
93
+ innerRef: refs.setReference,
94
+ onMouseEnter: handleMouseEnter,
95
+ onMouseLeave: handleMouseLeave,
96
+ getOwnerProps,
97
+ getOwnerPropsArguments,
98
+ children: value
99
+ }
100
+ ),
80
101
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
102
  import_ds_floating_context.FloatingWrapper,
82
103
  {
@@ -84,7 +105,7 @@ const TruncatedTooltipText = ({ value = "", placement = "top" }) => {
84
105
  isOpen: showTooltip,
85
106
  floatingStyles,
86
107
  context,
87
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TooltipContainer, { children: [
108
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TooltipContainer, { getOwnerProps, getOwnerPropsArguments, children: [
88
109
  value,
89
110
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_floating_context.PopoverArrow, { ...arrowStyles })
90
111
  ] })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/TruncatedTooltipText.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useCallback, useState } from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport {\n useFloatingContext,\n FloatingWrapper,\n PopoverArrow,\n type DSHookFloatingContextT,\n} from '@elliemae/ds-floating-context';\n\nconst TruncatedSpan = styled.span`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: inline-block;\n max-width: 100%;\n`;\n\n// Matches DSTooltipV3's StyledTooltipContainer styles for visual consistency\nconst TooltipContainer = styled.div`\n text-align: center;\n min-width: ${({ theme }) => theme.space.l};\n max-width: 250px;\n overflow-wrap: break-word;\n word-break: break-word;\n min-height: 30px;\n display: grid;\n align-items: center;\n padding: ${({ theme }) => `${theme.space.xxs} ${theme.space.xs}`};\n position: relative;\n background-color: white;\n border-radius: 2px;\n font-size: 13px;\n color: ${({ theme }) => theme.colors.neutral[600]};\n pointer-events: none;\n`;\n\ninterface TruncatedTooltipTextProps {\n value?: string | JSX.Element | undefined;\n placement?: DSHookFloatingContextT.PopperPlacementsT;\n}\n\nconst TruncatedTooltipText = ({ value = '', placement = 'top' }: TruncatedTooltipTextProps) => {\n const [showTooltip, setShowTooltip] = useState(false);\n\n const { refs, floatingStyles, arrowStyles, context } = useFloatingContext({\n placement,\n externallyControlledIsOpen: showTooltip,\n withoutAnimation: true,\n });\n\n const handleMouseEnter = useCallback((e: React.MouseEvent<HTMLSpanElement>) => {\n const el = e.currentTarget;\n setShowTooltip(el.offsetWidth < el.scrollWidth);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setShowTooltip(false);\n }, []);\n\n return (\n <>\n <TruncatedSpan innerRef={refs.setReference} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n {value}\n </TruncatedSpan>\n <FloatingWrapper\n innerRef={refs.setFloating}\n isOpen={showTooltip}\n floatingStyles={floatingStyles}\n context={context}\n >\n <TooltipContainer>\n {value}\n <PopoverArrow {...arrowStyles} />\n </TooltipContainer>\n </FloatingWrapper>\n </>\n );\n};\n\nexport { TruncatedTooltipText };\nexport default TruncatedTooltipText;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD4DnB;AA5DJ,mBAA6C;AAC7C,uBAAuB;AACvB,iCAKO;AAEP,MAAM,gBAAgB,wBAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7B,MAAM,mBAAmB,wBAAO;AAAA;AAAA,eAEjB,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO9B,CAAC,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,WAKvD,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,GAAG,CAAC;AAAA;AAAA;AASnD,MAAM,uBAAuB,CAAC,EAAE,QAAQ,IAAI,YAAY,MAAM,MAAiC;AAC7F,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAS,KAAK;AAEpD,QAAM,EAAE,MAAM,gBAAgB,aAAa,QAAQ,QAAI,+CAAmB;AAAA,IACxE;AAAA,IACA,4BAA4B;AAAA,IAC5B,kBAAkB;AAAA,EACpB,CAAC;AAED,QAAM,uBAAmB,0BAAY,CAAC,MAAyC;AAC7E,UAAM,KAAK,EAAE;AACb,mBAAe,GAAG,cAAc,GAAG,WAAW;AAAA,EAChD,GAAG,CAAC,CAAC;AAEL,QAAM,uBAAmB,0BAAY,MAAM;AACzC,mBAAe,KAAK;AAAA,EACtB,GAAG,CAAC,CAAC;AAEL,SACE,4EACE;AAAA,gDAAC,iBAAc,UAAU,KAAK,cAAc,cAAc,kBAAkB,cAAc,kBACvF,iBACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,KAAK;AAAA,QACf,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QAEA,uDAAC,oBACE;AAAA;AAAA,UACD,4CAAC,2CAAc,GAAG,aAAa;AAAA,WACjC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAGA,IAAO,+BAAQ;",
4
+ "sourcesContent": ["import React, { useCallback, useContext, useState } from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport {\n useFloatingContext,\n FloatingWrapper,\n PopoverArrow,\n type DSHookFloatingContextT,\n} from '@elliemae/ds-floating-context';\nimport { DSLeftNavigationName, LEFT_NAVIGATION_SLOTS } from './constants/index.js';\nimport { LeftNavContext } from './LeftNavigationContext.js';\n\nconst TruncatedSpan = styled('span', {\n name: DSLeftNavigationName,\n slot: LEFT_NAVIGATION_SLOTS.TRUNCATED_LABEL,\n})`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: inline-block;\n max-width: 100%;\n`;\n\n// Matches DSTooltipV3's StyledTooltipContainer styles for visual consistency\nconst TooltipContainer = styled('div', {\n name: DSLeftNavigationName,\n slot: LEFT_NAVIGATION_SLOTS.TRUNCATED_LABEL_TOOLTIP,\n})`\n text-align: center;\n min-width: ${({ theme }) => theme.space.l};\n max-width: 250px;\n overflow-wrap: break-word;\n word-break: break-word;\n min-height: 30px;\n display: grid;\n align-items: center;\n padding: ${({ theme }) => `${theme.space.xxs} ${theme.space.xs}`};\n position: relative;\n background-color: white;\n border-radius: 2px;\n font-size: 13px;\n color: ${({ theme }) => theme.colors.neutral[600]};\n pointer-events: none;\n`;\n\ninterface TruncatedTooltipTextProps {\n value?: string | JSX.Element | undefined;\n placement?: DSHookFloatingContextT.PopperPlacementsT;\n}\n\nconst TruncatedTooltipText = ({ value = '', placement = 'top' }: TruncatedTooltipTextProps) => {\n const [showTooltip, setShowTooltip] = useState(false);\n const { leftNavProps } = useContext(LeftNavContext);\n const getOwnerProps = useCallback(() => leftNavProps, [leftNavProps]);\n const getOwnerPropsArguments = useCallback(() => ({}), []);\n\n const { refs, floatingStyles, arrowStyles, context } = useFloatingContext({\n placement,\n externallyControlledIsOpen: showTooltip,\n withoutAnimation: true,\n });\n\n const handleMouseEnter = useCallback((e: React.MouseEvent<HTMLSpanElement>) => {\n const el = e.currentTarget;\n setShowTooltip(el.offsetWidth < el.scrollWidth);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setShowTooltip(false);\n }, []);\n\n return (\n <>\n <TruncatedSpan\n innerRef={refs.setReference}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n {value}\n </TruncatedSpan>\n <FloatingWrapper\n innerRef={refs.setFloating}\n isOpen={showTooltip}\n floatingStyles={floatingStyles}\n context={context}\n >\n <TooltipContainer getOwnerProps={getOwnerProps} getOwnerPropsArguments={getOwnerPropsArguments}>\n {value}\n <PopoverArrow {...arrowStyles} />\n </TooltipContainer>\n </FloatingWrapper>\n </>\n );\n};\n\nexport { TruncatedTooltipText };\nexport default TruncatedTooltipText;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADuEnB;AAvEJ,mBAAyD;AACzD,uBAAuB;AACvB,iCAKO;AACP,uBAA4D;AAC5D,mCAA+B;AAE/B,MAAM,oBAAgB,yBAAO,QAAQ;AAAA,EACnC,MAAM;AAAA,EACN,MAAM,uCAAsB;AAC9B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASD,MAAM,uBAAmB,yBAAO,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,MAAM,uCAAsB;AAC9B,CAAC;AAAA;AAAA,eAEc,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO9B,CAAC,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,WAKvD,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,GAAG,CAAC;AAAA;AAAA;AASnD,MAAM,uBAAuB,CAAC,EAAE,QAAQ,IAAI,YAAY,MAAM,MAAiC;AAC7F,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAS,KAAK;AACpD,QAAM,EAAE,aAAa,QAAI,yBAAW,2CAAc;AAClD,QAAM,oBAAgB,0BAAY,MAAM,cAAc,CAAC,YAAY,CAAC;AACpE,QAAM,6BAAyB,0BAAY,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzD,QAAM,EAAE,MAAM,gBAAgB,aAAa,QAAQ,QAAI,+CAAmB;AAAA,IACxE;AAAA,IACA,4BAA4B;AAAA,IAC5B,kBAAkB;AAAA,EACpB,CAAC;AAED,QAAM,uBAAmB,0BAAY,CAAC,MAAyC;AAC7E,UAAM,KAAK,EAAE;AACb,mBAAe,GAAG,cAAc,GAAG,WAAW;AAAA,EAChD,GAAG,CAAC,CAAC;AAEL,QAAM,uBAAmB,0BAAY,MAAM;AACzC,mBAAe,KAAK;AAAA,EACtB,GAAG,CAAC,CAAC;AAEL,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,KAAK;AAAA,QACf,cAAc;AAAA,QACd,cAAc;AAAA,QACd;AAAA,QACA;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,KAAK;AAAA,QACf,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QAEA,uDAAC,oBAAiB,eAA8B,wBAC7C;AAAA;AAAA,UACD,4CAAC,2CAAc,GAAG,aAAa;AAAA,WACjC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAGA,IAAO,+BAAQ;",
6
6
  "names": []
7
7
  }
@@ -72,14 +72,18 @@ const LEFT_NAVIGATION_SLOTS = {
72
72
  LEFT_CONTAINER: "left-container",
73
73
  LOADER_WRAPPER: "loader-wrapper",
74
74
  HEADER_AREA: "header-area",
75
+ ICON: "icon",
75
76
  MESSAGES_ICON_WRAPPER: "messages-icon",
76
77
  NOTIFICATIONS_CONTAINER: "notifications-container",
77
78
  NOTIFICATIONS_ICON: "notifications-icon",
79
+ OPEN_WINDOW_ICON: "open-window-icon",
78
80
  RIGHT_CONTAINER: "right-container",
79
81
  ROOT: "root",
80
82
  SECTION_CONTAINER: "section-container",
81
83
  SECTION_LABEL: "section-label",
82
84
  SECTION_RIGHT_LABEL: "section-right-label",
85
+ TRUNCATED_LABEL: "truncated-label",
86
+ TRUNCATED_LABEL_TOOLTIP: "truncated-label-tooltip",
83
87
  VERTICAL_SEPARATOR: "vertical-separator"
84
88
  };
85
89
  const LEFT_NAVIGATION_DATA_TESTID = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/constants/index.ts", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { slotObjectToDataTestIds } from '@elliemae/ds-system';\n\nexport const DSLeftNavigationName = 'DSLeftnavigation';\n\n// we are naming this with the ${component_name}_region_focuses convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const LEFT_NAVIGATION_REGION_FOCUSES = {\n RESET: '',\n} as const;\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const LEFT_NAVIGATION_SLOTS = {\n ALERTS_ICON_WRAPPER: 'alerts-icon',\n AREAS_CONTAINER: 'areas-container',\n ARROW_CONTAINER: 'arrow-container',\n BODY_AREAS_CONTAINER: 'body-areas-container',\n BODY_HEADER_AREA: 'body-header-area',\n BODY_ITEMS_AREA: 'body-items-area',\n BOTTOM_CONTAINER: 'bottom-container',\n COLLAPSED_CONTAINER: 'collapsed-container',\n EXCEPTIONS_ICON_WRAPPER: 'exceptions-icon',\n FOOTER_ITEM: 'footer-item',\n FOOTER_LABEL: 'footer-label',\n FOOTER_MENU: 'footer-menu',\n FOOTER_MENU_COLLAPSE: 'footer-menu-collapse',\n FOOTER_SEPARATOR: 'footer-separator',\n ITEM: 'item',\n ITEM_BORDER_BOTTOM: 'item-border-bottom',\n ITEM_CHEVRON_BACK: 'item-chevron-back',\n ITEM_DATE: 'item-date',\n ITEM_LABEL: 'item-label',\n ITEM_SEPARATOR: 'item-separator',\n LEFT_CONTAINER: 'left-container',\n LOADER_WRAPPER: 'loader-wrapper',\n HEADER_AREA: 'header-area',\n MESSAGES_ICON_WRAPPER: 'messages-icon',\n NOTIFICATIONS_CONTAINER: 'notifications-container',\n NOTIFICATIONS_ICON: 'notifications-icon',\n RIGHT_CONTAINER: 'right-container',\n ROOT: 'root',\n SECTION_CONTAINER: 'section-container',\n SECTION_LABEL: 'section-label',\n SECTION_RIGHT_LABEL: 'section-right-label',\n VERTICAL_SEPARATOR: 'vertical-separator',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const LEFT_NAVIGATION_DATA_TESTID = {\n ...slotObjectToDataTestIds(DSLeftNavigationName, LEFT_NAVIGATION_SLOTS),\n /* ********************************************************************************************************************************************\n * keeping old values around based on vinoth/guncha (forced) request to keep them stable\n * in the future, before removing/changing those values, please make sure to check with them\n * (and get written approval for future reference, verba volant, scripta manent).\n * ********************************************************************************************************************************************\n * https://jira.elliemae.io/browse/PUI-15589\n ******************************************************************************************************************************************** */\n ROOT: 'leftnav-component',\n HEADER_AREA: 'leftnav-header-area',\n AREAS_CONTAINER: 'ds-leftnavigation-areas-container',\n\n COLLAPSED_CONTAINER: 'leftnav-leftcomponent',\n\n BODY_AREAS_CONTAINER: 'ds-leftnavigation-body-areas-container',\n BODY_HEADER_AREA: 'leftnav-body-header-area',\n BODY_ITEMS_AREA: 'leftnav-body-items-area',\n BOTTOM_CONTAINER: 'ds-leftnavigation-bottom-container',\n\n ITEM: 'leftnav-item-container',\n ITEM_BORDER_BOTTOM: 'ds-leftnavigation-item-border-bottom',\n ITEM_LABEL: 'leftnav-itemlabel',\n ITEM_DATE: 'leftnav-list-item-date',\n ITEM_SEPARATOR: 'leftnav-separator-subitem',\n ITEM_CHEVRON_BACK: 'leftnav-leftcomponent-chevron',\n\n // repeated with \"COLLAPSED_CONTAINER\" above, APP QA team doesn't approve us changing this.\n // IF anyone come with the request to have a separate value for this, address them to guncha/vinoth.\n LEFT_CONTAINER: 'leftnav-leftcomponent',\n RIGHT_CONTAINER: 'leftnav-right-component',\n ARROW_CONTAINER: 'ds-leftnavigation-arrow-container',\n\n SECTION_CONTAINER: 'ds-leftnavigation-section-container',\n SECTION_LABEL: 'leftnav-section-item-label',\n SECTION_RIGHT_LABEL: 'ds-leftnavigation-section-right-label',\n\n NOTIFICATIONS_CONTAINER: 'ds-leftnavigation-notifications-container',\n\n EXCEPTIONS_ICON_WRAPPER: 'left-nav-exceptions-icon',\n ALERTS_ICON_WRAPPER: 'left-nav-alerts-icon',\n MESSAGES_ICON_WRAPPER: 'left-nav-messages-icon',\n\n FOOTER_MENU: 'leftnav-container',\n FOOTER_SEPARATOR: 'ds-leftnavigation-footer-separator',\n // repeated with \"ITEM\" above, APP QA team doesn't approve us changing this.\n // IF anyone come with the request to have a separate value for this, address them to guncha/vinoth.\n FOOTER_ITEM: 'leftnav-item-container',\n\n VERTICAL_SEPARATOR: 'ds-leftnavigation-vertical-separator',\n\n // Things that are not slots (why?) and still need data-testids (that needs to not change else APP QA team can't work)\n NOTIFICATION_ICON: 'left-nav-notifications-icon',\n ALERTS_ICON: 'left-nav-alerts-icon',\n EXCEPTIONS_ICON: 'left-nav-exceptions-icon',\n MESSAGES_ICON: 'left-nav-messages-icon',\n\n // I don't know if there was already a slot or not because the naming convention is confusing and we can't change it.\n // so I am re-defining those to be sure.\n // (usually this comes from previous implementation \"slot\" being a \"nested\" slot that inherits the slot from the child)\n DROPDOWN_MENU_TRIGGER_WRAPPER: 'dropdown-menu-trigger-wrapper', // used to be dsDropdownmenuRoot slot at time of writing this comment\n\n NOTIFICATIONS_ICON: 'left-nav-notifications-icon', // used to be dsIconRoot slot at time of writing this comment\n LEFT_COMPONENT_CHEVRON: 'leftnav-leftcomponent-chevron', // used to be dsButtonRoot slot at time of writing this comment\n // VERY SPECIAL CASE, THE SLOT FOOTER_BTN GOES TO THE ICON WHEN COLLAPSED, TO THE BTN WHEN EXPANDED\n // WE CAN'T FIX THE TECH DEBT\n FOOTER_BTN: 'leftnav-footer-btn', // used to be [ \"dsIconRoot\", \"dsButtonRoot\" ] slots at time of writing this comment\n // VERY SPECIAL CASE 2\n // THE SLOT IS TECHNICALLY dsLeftnavigationItemLabel\n // which is LEFT_NAVIGATION_SLOTS.ITEM_LABEL\n // BUT the data-test-id is either \"leftnav-itemlabel\" or \"leftnav-list-item-label\"\n // APPARENTLY (we are not sure) based on it's \"type\"\n // \"leftnav-list-item-label\" for:\n // - ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL\n // - ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE\n // - ITEM_TYPES.LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN\n // - ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN\n // WE CAN'T FIX THE TECH DEBT\n // IF we somehow need to change this, address them to guncha/vinoth.\n LIST_ITEM_LABEL_ID_EXCEPTION: 'leftnav-list-item-label',\n};\n\nexport const DSLeftNavigationSlots = LEFT_NAVIGATION_SLOTS;\n\n/* ********************************************************************************************************************************************\n * Specific left-nav constants. Those are exported to third parties so they can use them in their code.\n ******************************************************************************************************************************************** */\n\nexport const LABEL_OVERFLOW = {\n WRAP: 'wrap',\n WRAP_ALL: 'wrapAll',\n TRUNCATE: 'truncate',\n};\n\nexport const ITEM_TYPES = {\n LEFT_NAV_ITEM_HEADER: 'ds-left-nav-item-header',\n LEFT_NAV_ITEM_LINK: 'ds-left-nav-item-link',\n LEFT_NAV_ITEM_SUBMENU: 'ds-left-nav-item-submenu',\n LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN: 'ds-left-nav-item-controlled-drilldown',\n LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN: 'ds-left-nav-item-uncontrolled-drilldown',\n LEFT_NAV_ITEM_SECTION: 'ds-left-nav-item-section',\n LEFT_NAV_ITEM_SEPARATOR: 'ds-left-nav-item-separator',\n LEFT_NAV_ITEM_SKELETON: 'ds-left-nav-item-skeleton',\n LEFT_NAV_ITEM_TEXT_LABEL: 'ds-left-nav-item-text-label',\n LEFT_NAV_ITEM_WITH_DATE: 'ds-left-nav-item-with-date',\n};\n\nexport const outOfTheBoxTypes = Object.values(ITEM_TYPES);\n\nexport const MAP_ITEMS_TO_SKELETON = {\n 'ds-left-nav-item-header': 'item',\n 'ds-left-nav-item-link': 'subitem',\n 'ds-left-nav-item-submenu': 'item',\n 'ds-left-nav-item-controlled-drilldown': 'subitem',\n 'ds-left-nav-item-uncontrolled-drilldown': 'subitem',\n 'ds-left-nav-item-section': 'subitem',\n 'ds-left-nav-item-separator': 'subitem',\n 'ds-left-nav-item-text-label': 'subitem',\n 'ds-left-nav-item-with-date': 'subitem',\n} as const;\n\nexport const FOOTER_DS_ID = 'ds-left-nav-__internal__-footer';\n\nexport const FOOTER_MENU_CLOSE_DS_ID = 'ds-left-nav-__internal__-footer-menu-close';\n\nexport const CHEVRON_BACK_DS_ID = 'ds-left-nav-__internal__-chevron-back';\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { slotObjectToDataTestIds } from '@elliemae/ds-system';\n\nexport const DSLeftNavigationName = 'DSLeftnavigation';\n\n// we are naming this with the ${component_name}_region_focuses convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const LEFT_NAVIGATION_REGION_FOCUSES = {\n RESET: '',\n} as const;\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const LEFT_NAVIGATION_SLOTS = {\n ALERTS_ICON_WRAPPER: 'alerts-icon',\n AREAS_CONTAINER: 'areas-container',\n ARROW_CONTAINER: 'arrow-container',\n BODY_AREAS_CONTAINER: 'body-areas-container',\n BODY_HEADER_AREA: 'body-header-area',\n BODY_ITEMS_AREA: 'body-items-area',\n BOTTOM_CONTAINER: 'bottom-container',\n COLLAPSED_CONTAINER: 'collapsed-container',\n EXCEPTIONS_ICON_WRAPPER: 'exceptions-icon',\n FOOTER_ITEM: 'footer-item',\n FOOTER_LABEL: 'footer-label',\n FOOTER_MENU: 'footer-menu',\n FOOTER_MENU_COLLAPSE: 'footer-menu-collapse',\n FOOTER_SEPARATOR: 'footer-separator',\n ITEM: 'item',\n ITEM_BORDER_BOTTOM: 'item-border-bottom',\n ITEM_CHEVRON_BACK: 'item-chevron-back',\n ITEM_DATE: 'item-date',\n ITEM_LABEL: 'item-label',\n ITEM_SEPARATOR: 'item-separator',\n LEFT_CONTAINER: 'left-container',\n LOADER_WRAPPER: 'loader-wrapper',\n HEADER_AREA: 'header-area',\n ICON: 'icon',\n MESSAGES_ICON_WRAPPER: 'messages-icon',\n NOTIFICATIONS_CONTAINER: 'notifications-container',\n NOTIFICATIONS_ICON: 'notifications-icon',\n OPEN_WINDOW_ICON: 'open-window-icon',\n RIGHT_CONTAINER: 'right-container',\n ROOT: 'root',\n SECTION_CONTAINER: 'section-container',\n SECTION_LABEL: 'section-label',\n SECTION_RIGHT_LABEL: 'section-right-label',\n TRUNCATED_LABEL: 'truncated-label',\n TRUNCATED_LABEL_TOOLTIP: 'truncated-label-tooltip',\n VERTICAL_SEPARATOR: 'vertical-separator',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const LEFT_NAVIGATION_DATA_TESTID = {\n ...slotObjectToDataTestIds(DSLeftNavigationName, LEFT_NAVIGATION_SLOTS),\n /* ********************************************************************************************************************************************\n * keeping old values around based on vinoth/guncha (forced) request to keep them stable\n * in the future, before removing/changing those values, please make sure to check with them\n * (and get written approval for future reference, verba volant, scripta manent).\n * ********************************************************************************************************************************************\n * https://jira.elliemae.io/browse/PUI-15589\n ******************************************************************************************************************************************** */\n ROOT: 'leftnav-component',\n HEADER_AREA: 'leftnav-header-area',\n AREAS_CONTAINER: 'ds-leftnavigation-areas-container',\n\n COLLAPSED_CONTAINER: 'leftnav-leftcomponent',\n\n BODY_AREAS_CONTAINER: 'ds-leftnavigation-body-areas-container',\n BODY_HEADER_AREA: 'leftnav-body-header-area',\n BODY_ITEMS_AREA: 'leftnav-body-items-area',\n BOTTOM_CONTAINER: 'ds-leftnavigation-bottom-container',\n\n ITEM: 'leftnav-item-container',\n ITEM_BORDER_BOTTOM: 'ds-leftnavigation-item-border-bottom',\n ITEM_LABEL: 'leftnav-itemlabel',\n ITEM_DATE: 'leftnav-list-item-date',\n ITEM_SEPARATOR: 'leftnav-separator-subitem',\n ITEM_CHEVRON_BACK: 'leftnav-leftcomponent-chevron',\n\n // repeated with \"COLLAPSED_CONTAINER\" above, APP QA team doesn't approve us changing this.\n // IF anyone come with the request to have a separate value for this, address them to guncha/vinoth.\n LEFT_CONTAINER: 'leftnav-leftcomponent',\n RIGHT_CONTAINER: 'leftnav-right-component',\n ARROW_CONTAINER: 'ds-leftnavigation-arrow-container',\n\n SECTION_CONTAINER: 'ds-leftnavigation-section-container',\n SECTION_LABEL: 'leftnav-section-item-label',\n SECTION_RIGHT_LABEL: 'ds-leftnavigation-section-right-label',\n\n NOTIFICATIONS_CONTAINER: 'ds-leftnavigation-notifications-container',\n\n EXCEPTIONS_ICON_WRAPPER: 'left-nav-exceptions-icon',\n ALERTS_ICON_WRAPPER: 'left-nav-alerts-icon',\n MESSAGES_ICON_WRAPPER: 'left-nav-messages-icon',\n\n FOOTER_MENU: 'leftnav-container',\n FOOTER_SEPARATOR: 'ds-leftnavigation-footer-separator',\n // repeated with \"ITEM\" above, APP QA team doesn't approve us changing this.\n // IF anyone come with the request to have a separate value for this, address them to guncha/vinoth.\n FOOTER_ITEM: 'leftnav-item-container',\n\n VERTICAL_SEPARATOR: 'ds-leftnavigation-vertical-separator',\n\n // Things that are not slots (why?) and still need data-testids (that needs to not change else APP QA team can't work)\n NOTIFICATION_ICON: 'left-nav-notifications-icon',\n ALERTS_ICON: 'left-nav-alerts-icon',\n EXCEPTIONS_ICON: 'left-nav-exceptions-icon',\n MESSAGES_ICON: 'left-nav-messages-icon',\n\n // I don't know if there was already a slot or not because the naming convention is confusing and we can't change it.\n // so I am re-defining those to be sure.\n // (usually this comes from previous implementation \"slot\" being a \"nested\" slot that inherits the slot from the child)\n DROPDOWN_MENU_TRIGGER_WRAPPER: 'dropdown-menu-trigger-wrapper', // used to be dsDropdownmenuRoot slot at time of writing this comment\n\n NOTIFICATIONS_ICON: 'left-nav-notifications-icon', // used to be dsIconRoot slot at time of writing this comment\n LEFT_COMPONENT_CHEVRON: 'leftnav-leftcomponent-chevron', // used to be dsButtonRoot slot at time of writing this comment\n // VERY SPECIAL CASE, THE SLOT FOOTER_BTN GOES TO THE ICON WHEN COLLAPSED, TO THE BTN WHEN EXPANDED\n // WE CAN'T FIX THE TECH DEBT\n FOOTER_BTN: 'leftnav-footer-btn', // used to be [ \"dsIconRoot\", \"dsButtonRoot\" ] slots at time of writing this comment\n // VERY SPECIAL CASE 2\n // THE SLOT IS TECHNICALLY dsLeftnavigationItemLabel\n // which is LEFT_NAVIGATION_SLOTS.ITEM_LABEL\n // BUT the data-test-id is either \"leftnav-itemlabel\" or \"leftnav-list-item-label\"\n // APPARENTLY (we are not sure) based on it's \"type\"\n // \"leftnav-list-item-label\" for:\n // - ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL\n // - ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE\n // - ITEM_TYPES.LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN\n // - ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN\n // WE CAN'T FIX THE TECH DEBT\n // IF we somehow need to change this, address them to guncha/vinoth.\n LIST_ITEM_LABEL_ID_EXCEPTION: 'leftnav-list-item-label',\n};\n\nexport const DSLeftNavigationSlots = LEFT_NAVIGATION_SLOTS;\n\n/* ********************************************************************************************************************************************\n * Specific left-nav constants. Those are exported to third parties so they can use them in their code.\n ******************************************************************************************************************************************** */\n\nexport const LABEL_OVERFLOW = {\n WRAP: 'wrap',\n WRAP_ALL: 'wrapAll',\n TRUNCATE: 'truncate',\n};\n\nexport const ITEM_TYPES = {\n LEFT_NAV_ITEM_HEADER: 'ds-left-nav-item-header',\n LEFT_NAV_ITEM_LINK: 'ds-left-nav-item-link',\n LEFT_NAV_ITEM_SUBMENU: 'ds-left-nav-item-submenu',\n LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN: 'ds-left-nav-item-controlled-drilldown',\n LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN: 'ds-left-nav-item-uncontrolled-drilldown',\n LEFT_NAV_ITEM_SECTION: 'ds-left-nav-item-section',\n LEFT_NAV_ITEM_SEPARATOR: 'ds-left-nav-item-separator',\n LEFT_NAV_ITEM_SKELETON: 'ds-left-nav-item-skeleton',\n LEFT_NAV_ITEM_TEXT_LABEL: 'ds-left-nav-item-text-label',\n LEFT_NAV_ITEM_WITH_DATE: 'ds-left-nav-item-with-date',\n};\n\nexport const outOfTheBoxTypes = Object.values(ITEM_TYPES);\n\nexport const MAP_ITEMS_TO_SKELETON = {\n 'ds-left-nav-item-header': 'item',\n 'ds-left-nav-item-link': 'subitem',\n 'ds-left-nav-item-submenu': 'item',\n 'ds-left-nav-item-controlled-drilldown': 'subitem',\n 'ds-left-nav-item-uncontrolled-drilldown': 'subitem',\n 'ds-left-nav-item-section': 'subitem',\n 'ds-left-nav-item-separator': 'subitem',\n 'ds-left-nav-item-text-label': 'subitem',\n 'ds-left-nav-item-with-date': 'subitem',\n} as const;\n\nexport const FOOTER_DS_ID = 'ds-left-nav-__internal__-footer';\n\nexport const FOOTER_MENU_CLOSE_DS_ID = 'ds-left-nav-__internal__-footer-menu-close';\n\nexport const CHEVRON_BACK_DS_ID = 'ds-left-nav-__internal__-chevron-back';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -33,8 +33,15 @@ __export(Icon_exports, {
33
33
  module.exports = __toCommonJS(Icon_exports);
34
34
  var React = __toESM(require("react"));
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = __toESM(require("react"));
36
37
  var import_ds_system = require("@elliemae/ds-system");
37
- const AugmentedIcon = (Icon2) => (0, import_ds_system.styled)(Icon2)`
38
+ var import_constants = require("../../constants/index.js");
39
+ var import_LeftNavigationContext = require("../../LeftNavigationContext.js");
40
+ const AugmentedIcon = (Icon2) => (0, import_ds_system.styled)(Icon2, {
41
+ name: import_constants.DSLeftNavigationName,
42
+ slot: import_constants.LEFT_NAVIGATION_SLOTS.ICON,
43
+ preserveLegacyDataTestId: true
44
+ })`
38
45
  cursor: pointer;
39
46
 
40
47
  outline: 0;
@@ -43,8 +50,22 @@ const AugmentedIcon = (Icon2) => (0, import_ds_system.styled)(Icon2)`
43
50
  outline: 1px solid #1e79c2;
44
51
  }
45
52
  `;
46
- const Icon = (IconComponent) => function(props) {
53
+ const Icon = (IconComponent) => {
47
54
  const StyledComponent = AugmentedIcon(IconComponent);
48
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledComponent, { color: ["brand-primary", "800"], tabIndex: 0, ...props });
55
+ return function LeftNavIcon(props) {
56
+ const { leftNavProps } = import_react.default.useContext(import_LeftNavigationContext.LeftNavContext);
57
+ const getOwnerProps = import_react.default.useCallback(() => leftNavProps, [leftNavProps]);
58
+ const getOwnerPropsArguments = import_react.default.useCallback(() => ({}), []);
59
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
60
+ StyledComponent,
61
+ {
62
+ color: ["brand-primary", "800"],
63
+ tabIndex: 0,
64
+ getOwnerProps,
65
+ getOwnerPropsArguments,
66
+ ...props
67
+ }
68
+ );
69
+ };
49
70
  };
50
71
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/exported-related/Icon/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { type SvgIconT } from '@elliemae/ds-icons';\n\nconst AugmentedIcon = (Icon: React.ComponentType<{ color: unknown; tabIndex: number }>) => styled(Icon)`\n cursor: pointer;\n\n outline: 0;\n :focus,\n :active {\n outline: 1px solid #1e79c2;\n }\n`;\n\nexport const Icon = (IconComponent: React.ComponentType<{ color: unknown; tabIndex: number }>) =>\n function (props?: SvgIconT.Props): JSX.Element {\n const StyledComponent = AugmentedIcon(IconComponent);\n return <StyledComponent color={['brand-primary', '800']} tabIndex={0} {...props} />;\n };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADiBZ;AAhBX,uBAAuB;AAGvB,MAAM,gBAAgB,CAACA,cAAoE,yBAAOA,KAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAU/F,MAAM,OAAO,CAAC,kBACnB,SAAU,OAAqC;AAC7C,QAAM,kBAAkB,cAAc,aAAa;AACnD,SAAO,4CAAC,mBAAgB,OAAO,CAAC,iBAAiB,KAAK,GAAG,UAAU,GAAI,GAAG,OAAO;AACnF;",
6
- "names": ["Icon"]
4
+ "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { type SvgIconT } from '@elliemae/ds-icons';\nimport { DSLeftNavigationName, LEFT_NAVIGATION_SLOTS } from '../../constants/index.js';\nimport { LeftNavContext } from '../../LeftNavigationContext.js';\n\n/**\n * preserveLegacyDataTestId keeps the ds-icons generated data-testid on the svg wrapper,\n * the left-nav slot must not override a data-testid QA may already rely on.\n */\nconst AugmentedIcon = (Icon: React.ComponentType<{ color: unknown; tabIndex: number }>) => styled(Icon, {\n name: DSLeftNavigationName,\n slot: LEFT_NAVIGATION_SLOTS.ICON,\n preserveLegacyDataTestId: true,\n})`\n cursor: pointer;\n\n outline: 0;\n :focus,\n :active {\n outline: 1px solid #1e79c2;\n }\n`;\n\n/**\n * The styled component is created once per Icon() call, not per render:\n * a new component type on every render would remount the icon and drop its focus.\n */\nexport const Icon = (IconComponent: React.ComponentType<{ color: unknown; tabIndex: number }>) => {\n const StyledComponent = AugmentedIcon(IconComponent);\n return function LeftNavIcon(props?: SvgIconT.Props): JSX.Element {\n const { leftNavProps } = React.useContext(LeftNavContext);\n const getOwnerProps = React.useCallback(() => leftNavProps, [leftNavProps]);\n const getOwnerPropsArguments = React.useCallback(() => ({}), []);\n return (\n <StyledComponent\n color={['brand-primary', '800']}\n tabIndex={0}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n {...props}\n />\n );\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADmCjB;AAnCN,mBAAkB;AAClB,uBAAuB;AAEvB,uBAA4D;AAC5D,mCAA+B;AAM/B,MAAM,gBAAgB,CAACA,cAAoE,yBAAOA,OAAM;AAAA,EACtG,MAAM;AAAA,EACN,MAAM,uCAAsB;AAAA,EAC5B,0BAA0B;AAC5B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcM,MAAM,OAAO,CAAC,kBAA6E;AAChG,QAAM,kBAAkB,cAAc,aAAa;AACnD,SAAO,SAAS,YAAY,OAAqC;AAC/D,UAAM,EAAE,aAAa,IAAI,aAAAC,QAAM,WAAW,2CAAc;AACxD,UAAM,gBAAgB,aAAAA,QAAM,YAAY,MAAM,cAAc,CAAC,YAAY,CAAC;AAC1E,UAAM,yBAAyB,aAAAA,QAAM,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/D,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,CAAC,iBAAiB,KAAK;AAAA,QAC9B,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;",
6
+ "names": ["Icon", "React"]
7
7
  }
@@ -34,14 +34,35 @@ __export(OpenWindowItem_exports, {
34
34
  module.exports = __toCommonJS(OpenWindowItem_exports);
35
35
  var React = __toESM(require("react"));
36
36
  var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_react = __toESM(require("react"));
37
38
  var import_ds_system = require("@elliemae/ds-system");
38
39
  var import_ds_icons = require("@elliemae/ds-icons");
39
- const StyledOpenWindow = (0, import_ds_system.styled)(import_ds_icons.OpenWindow)`
40
+ var import_constants = require("../../constants/index.js");
41
+ var import_LeftNavigationContext = require("../../LeftNavigationContext.js");
42
+ const StyledOpenWindow = (0, import_ds_system.styled)(import_ds_icons.OpenWindow, {
43
+ name: import_constants.DSLeftNavigationName,
44
+ slot: import_constants.LEFT_NAVIGATION_SLOTS.OPEN_WINDOW_ICON,
45
+ preserveLegacyDataTestId: true
46
+ })`
40
47
  cursor: pointer;
41
48
  :focus {
42
49
  outline: 1px solid ${(props) => props.theme.colors.brand[800]};
43
50
  }
44
51
  `;
45
- const OpenWindow = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledOpenWindow, { size: "s", color: ["brand-primary", "800"], ...props });
52
+ const OpenWindow = (props) => {
53
+ const { leftNavProps } = import_react.default.useContext(import_LeftNavigationContext.LeftNavContext);
54
+ const getOwnerProps = import_react.default.useCallback(() => leftNavProps, [leftNavProps]);
55
+ const getOwnerPropsArguments = import_react.default.useCallback(() => ({}), []);
56
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
57
+ StyledOpenWindow,
58
+ {
59
+ size: "s",
60
+ color: ["brand-primary", "800"],
61
+ getOwnerProps,
62
+ getOwnerPropsArguments,
63
+ ...props
64
+ }
65
+ );
66
+ };
46
67
  var OpenWindowItem_default = OpenWindow;
47
68
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/exported-related/OpenWindowItem/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { OpenWindow as OpenWindowIcon, type SvgIconT } from '@elliemae/ds-icons';\n\nconst StyledOpenWindow = styled(OpenWindowIcon)`\n cursor: pointer;\n :focus {\n outline: 1px solid ${(props) => props.theme.colors.brand[800]};\n }\n`;\n\nexport const OpenWindow = (props: SvgIconT.Props): JSX.Element => (\n <StyledOpenWindow size=\"s\" color={['brand-primary', '800']} {...props} />\n);\n\nexport default OpenWindow;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADYrB;AAXF,uBAAuB;AACvB,sBAA4D;AAE5D,MAAM,uBAAmB,yBAAO,gBAAAA,UAAc;AAAA;AAAA;AAAA,yBAGrB,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM,GAAG,CAAC;AAAA;AAAA;AAI1D,MAAM,aAAa,CAAC,UACzB,4CAAC,oBAAiB,MAAK,KAAI,OAAO,CAAC,iBAAiB,KAAK,GAAI,GAAG,OAAO;AAGzE,IAAO,yBAAQ;",
6
- "names": ["OpenWindowIcon"]
4
+ "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { OpenWindow as OpenWindowIcon, type SvgIconT } from '@elliemae/ds-icons';\nimport { DSLeftNavigationName, LEFT_NAVIGATION_SLOTS } from '../../constants/index.js';\nimport { LeftNavContext } from '../../LeftNavigationContext.js';\n\n/**\n * preserveLegacyDataTestId keeps the ds-icons generated data-testid on the svg wrapper,\n * the left-nav slot must not override a data-testid QA may already rely on.\n */\nconst StyledOpenWindow = styled(OpenWindowIcon, {\n name: DSLeftNavigationName,\n slot: LEFT_NAVIGATION_SLOTS.OPEN_WINDOW_ICON,\n preserveLegacyDataTestId: true,\n})`\n cursor: pointer;\n :focus {\n outline: 1px solid ${(props) => props.theme.colors.brand[800]};\n }\n`;\n\nexport const OpenWindow = (props: SvgIconT.Props): JSX.Element => {\n const { leftNavProps } = React.useContext(LeftNavContext);\n const getOwnerProps = React.useCallback(() => leftNavProps, [leftNavProps]);\n const getOwnerPropsArguments = React.useCallback(() => ({}), []);\n return (\n <StyledOpenWindow\n size=\"s\"\n color={['brand-primary', '800']}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n {...props}\n />\n );\n};\n\nexport default OpenWindow;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD0BnB;AA1BJ,mBAAkB;AAClB,uBAAuB;AACvB,sBAA4D;AAC5D,uBAA4D;AAC5D,mCAA+B;AAM/B,MAAM,uBAAmB,yBAAO,gBAAAA,YAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,MAAM,uCAAsB;AAAA,EAC5B,0BAA0B;AAC5B,CAAC;AAAA;AAAA;AAAA,yBAGwB,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM,GAAG,CAAC;AAAA;AAAA;AAI1D,MAAM,aAAa,CAAC,UAAuC;AAChE,QAAM,EAAE,aAAa,IAAI,aAAAC,QAAM,WAAW,2CAAc;AACxD,QAAM,gBAAgB,aAAAA,QAAM,YAAY,MAAM,cAAc,CAAC,YAAY,CAAC;AAC1E,QAAM,yBAAyB,aAAAA,QAAM,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAO,CAAC,iBAAiB,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,IAAO,yBAAQ;",
6
+ "names": ["OpenWindowIcon", "React"]
7
7
  }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var conversionConstants_exports = {};
30
+ __export(conversionConstants_exports, {
31
+ DRILLDOWN_TYPES: () => DRILLDOWN_TYPES,
32
+ DROPPED_TYPE_CODES: () => DROPPED_TYPE_CODES,
33
+ HEADER_TYPES: () => HEADER_TYPES,
34
+ LEAF_TYPES: () => LEAF_TYPES,
35
+ NO_RAIL_TYPES: () => NO_RAIL_TYPES,
36
+ OUT_OF_THE_BOX_TYPES: () => OUT_OF_THE_BOX_TYPES,
37
+ getOwn: () => getOwn
38
+ });
39
+ module.exports = __toCommonJS(conversionConstants_exports);
40
+ var React = __toESM(require("react"));
41
+ var import_constants = require("../../constants/index.js");
42
+ const DRILLDOWN_TYPES = [
43
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN,
44
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN
45
+ ];
46
+ const LEAF_TYPES = [
47
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_LINK,
48
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL,
49
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE
50
+ ];
51
+ const getOwn = (map, key) => Object.prototype.hasOwnProperty.call(map, key) ? map[key] : void 0;
52
+ const HEADER_TYPES = [import_constants.ITEM_TYPES.LEFT_NAV_ITEM_HEADER, ...LEAF_TYPES];
53
+ const OUT_OF_THE_BOX_TYPES = Object.values(import_constants.ITEM_TYPES);
54
+ const NO_RAIL_TYPES = [
55
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL,
56
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE,
57
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN,
58
+ import_constants.ITEM_TYPES.LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN
59
+ ];
60
+ const DROPPED_TYPE_CODES = {
61
+ [import_constants.ITEM_TYPES.LEFT_NAV_ITEM_HEADER]: ["header-item-dropped", "Header items are not part of the list"],
62
+ [import_constants.ITEM_TYPES.LEFT_NAV_ITEM_SKELETON]: ["skeleton-dropped", "Skeleton items are not supported"]
63
+ };
64
+ //# sourceMappingURL=conversionConstants.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/exported-related/conversion-utils/conversionConstants.ts", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import { ITEM_TYPES } from '../../constants/index.js';\n\nexport const DRILLDOWN_TYPES: string[] = [\n ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN,\n ITEM_TYPES.LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN,\n];\nexport const LEAF_TYPES: string[] = [\n ITEM_TYPES.LEFT_NAV_ITEM_LINK,\n ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL,\n ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE,\n];\n\n/**\n * Reads only own entries, so ids and types like \"constructor\" or \"toString\" do not resolve to inherited members.\n */\nexport const getOwn = <T>(map: Record<string, T>, key: string): T | undefined =>\n Object.prototype.hasOwnProperty.call(map, key) ? map[key] : undefined;\n\n/**\n * The types a `HeaderComponent` can have and still be the tree header: a header, or a leaf when the header is only a link.\n */\nexport const HEADER_TYPES: string[] = [ITEM_TYPES.LEFT_NAV_ITEM_HEADER, ...LEAF_TYPES];\n\nexport const OUT_OF_THE_BOX_TYPES: string[] = Object.values(ITEM_TYPES);\n\n/**\n * LeftNavigation renders no `CollapsedComponent` for these types (it forces it to null), so they were never in its rail.\n */\nexport const NO_RAIL_TYPES: string[] = [\n ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL,\n ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE,\n ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN,\n ITEM_TYPES.LEFT_NAV_ITEM_UNCONTROLLED_DRILLDOWN,\n];\n\nexport const DROPPED_TYPE_CODES = {\n [ITEM_TYPES.LEFT_NAV_ITEM_HEADER]: ['header-item-dropped', 'Header items are not part of the list'],\n [ITEM_TYPES.LEFT_NAV_ITEM_SKELETON]: ['skeleton-dropped', 'Skeleton items are not supported'],\n} as const;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAA2B;AAEpB,MAAM,kBAA4B;AAAA,EACvC,4BAAW;AAAA,EACX,4BAAW;AACb;AACO,MAAM,aAAuB;AAAA,EAClC,4BAAW;AAAA,EACX,4BAAW;AAAA,EACX,4BAAW;AACb;AAKO,MAAM,SAAS,CAAI,KAAwB,QAChD,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI;AAKvD,MAAM,eAAyB,CAAC,4BAAW,sBAAsB,GAAG,UAAU;AAE9E,MAAM,uBAAiC,OAAO,OAAO,2BAAU;AAK/D,MAAM,gBAA0B;AAAA,EACrC,4BAAW;AAAA,EACX,4BAAW;AAAA,EACX,4BAAW;AAAA,EACX,4BAAW;AACb;AAEO,MAAM,qBAAqB;AAAA,EAChC,CAAC,4BAAW,oBAAoB,GAAG,CAAC,uBAAuB,uCAAuC;AAAA,EAClG,CAAC,4BAAW,sBAAsB,GAAG,CAAC,oBAAoB,kCAAkC;AAC9F;",
6
+ "names": []
7
+ }
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var conversionHelpers_exports = {};
30
+ __export(conversionHelpers_exports, {
31
+ convertHeader: () => convertHeader,
32
+ convertList: () => convertList
33
+ });
34
+ module.exports = __toCommonJS(conversionHelpers_exports);
35
+ var React = __toESM(require("react"));
36
+ var import_ds_left_navigation_tree = require("@elliemae/ds-left-navigation-tree");
37
+ var import_constants = require("../../constants/index.js");
38
+ var import_conversionConstants = require("./conversionConstants.js");
39
+ var import_convertItemOpts = require("./convertItemOpts.js");
40
+ var import_report = require("./report.js");
41
+ const convertCollapsed = (item, report) => {
42
+ if (!item.CollapsedComponent || import_conversionConstants.NO_RAIL_TYPES.includes(item.type ?? "")) return {};
43
+ (0, import_report.markLost)(report, {
44
+ code: "collapsed-component-ctx",
45
+ dsId: item.dsId ?? "",
46
+ message: "CollapsedComponent is kept, it only receives { item }"
47
+ });
48
+ return { CollapsedComponent: item.CollapsedComponent };
49
+ };
50
+ const joinSectionLabel = (label, rightSection) => typeof label === "string" && typeof rightSection === "string" ? `${label}, ${rightSection}` : label;
51
+ const convertSubmenu = (item, args) => {
52
+ const { report, childrenByParentId, recurse } = args;
53
+ const dsId = item.dsId ?? "";
54
+ const children = (0, import_conversionConstants.getOwn)(childrenByParentId, dsId);
55
+ if (!children)
56
+ (0, import_report.markLost)(report, { code: "submenu-without-children", dsId, message: "No entry in childrenByParentId" });
57
+ return {
58
+ dsId,
59
+ type: import_ds_left_navigation_tree.LEFT_NAVIGATION_TREE_ITEM_TYPES.PARENT,
60
+ ...convertCollapsed(item, report),
61
+ itemOpts: { ...(0, import_convertItemOpts.convertItemOpts)({ item, report, kind: "submenu" }), items: recurse(children ?? []) }
62
+ };
63
+ };
64
+ const convertDrilldown = (item, args) => {
65
+ const { report, recurse } = args;
66
+ const dsId = item.dsId ?? "";
67
+ const { startOpened, isOpened, items = [] } = item.itemOpts ?? {};
68
+ const opts = (0, import_convertItemOpts.convertItemOpts)({ item, report, kind: "drilldown" });
69
+ const isControlled = item.type === import_constants.ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN;
70
+ return {
71
+ dsId,
72
+ type: import_ds_left_navigation_tree.LEFT_NAVIGATION_TREE_ITEM_TYPES.PARENT,
73
+ ...convertCollapsed(item, report),
74
+ itemOpts: {
75
+ ...opts,
76
+ ...isControlled && { isOpened: !!isOpened },
77
+ ...!isControlled && startOpened !== void 0 && { startOpened },
78
+ items: recurse(items)
79
+ }
80
+ };
81
+ };
82
+ const convertOne = (item, args) => {
83
+ const { report } = args;
84
+ const dsId = item.dsId ?? "";
85
+ const { type } = item;
86
+ if (typeof type !== "string") {
87
+ (0, import_report.markLost)(report, {
88
+ code: "custom-component-dropped",
89
+ dsId,
90
+ message: "Items with a custom Component are not supported"
91
+ });
92
+ return null;
93
+ }
94
+ if (import_conversionConstants.LEAF_TYPES.includes(type)) {
95
+ return {
96
+ dsId,
97
+ type: import_ds_left_navigation_tree.LEFT_NAVIGATION_TREE_ITEM_TYPES.LEAF,
98
+ ...convertCollapsed(item, report),
99
+ itemOpts: (0, import_convertItemOpts.convertItemOpts)({ item, report, kind: "leaf" })
100
+ };
101
+ }
102
+ if (type === import_constants.ITEM_TYPES.LEFT_NAV_ITEM_SUBMENU) return convertSubmenu(item, args);
103
+ if (import_conversionConstants.DRILLDOWN_TYPES.includes(type)) return convertDrilldown(item, args);
104
+ const [code, message] = (0, import_conversionConstants.getOwn)(import_conversionConstants.DROPPED_TYPE_CODES, type) ?? [
105
+ "unknown-type-dropped",
106
+ `Type "${type}" is not out of the box`
107
+ ];
108
+ (0, import_report.markLost)(report, { code, dsId, message });
109
+ return null;
110
+ };
111
+ const convertSection = (item, report, items) => {
112
+ const { label, labelRightSection } = item.itemOpts ?? {};
113
+ const joinable = typeof label === "string" && typeof labelRightSection === "string";
114
+ const opts = (0, import_convertItemOpts.convertItemOpts)({ item, report, kind: "section", joinable });
115
+ return {
116
+ dsId: item.dsId ?? "",
117
+ type: import_ds_left_navigation_tree.LEFT_NAVIGATION_TREE_ITEM_TYPES.SECTION,
118
+ itemOpts: {
119
+ ...opts,
120
+ label: joinSectionLabel(label, labelRightSection),
121
+ items
122
+ }
123
+ };
124
+ };
125
+ const convertList = (args) => {
126
+ const { list, isRoot, report, ancestors = [] } = args;
127
+ const converted = [];
128
+ let sectionItems = null;
129
+ list.forEach((item) => {
130
+ const { type, dsId = "" } = item;
131
+ const isSection = type === import_constants.ITEM_TYPES.LEFT_NAV_ITEM_SECTION;
132
+ if (isSection || type === import_constants.ITEM_TYPES.LEFT_NAV_ITEM_SEPARATOR) {
133
+ if (!isRoot) {
134
+ (0, import_report.markLost)(report, {
135
+ code: "section-in-nested-list-dropped",
136
+ dsId,
137
+ message: "Sections and separators are only supported at the root level"
138
+ });
139
+ return;
140
+ }
141
+ sectionItems = isSection ? [] : null;
142
+ converted.push(sectionItems ? convertSection(item, report, sectionItems) : { dsId, type: import_ds_left_navigation_tree.LEFT_NAVIGATION_TREE_ITEM_TYPES.SEPARATOR });
143
+ return;
144
+ }
145
+ const ancestorKey = dsId || item;
146
+ const isOwnAncestor = ancestors.includes(ancestorKey);
147
+ const convertedItem = convertOne(item, {
148
+ report,
149
+ childrenByParentId: args.childrenByParentId,
150
+ recurse: (children) => isOwnAncestor ? [] : convertList({ ...args, list: children, isRoot: false, ancestors: [...ancestors, ancestorKey] })
151
+ });
152
+ if (!convertedItem) return;
153
+ if (sectionItems) sectionItems.push(convertedItem);
154
+ else converted.push(convertedItem);
155
+ });
156
+ return converted;
157
+ };
158
+ const convertHeader = (header, report) => {
159
+ if (header.type === import_constants.ITEM_TYPES.LEFT_NAV_ITEM_SKELETON) {
160
+ const [code, message] = import_conversionConstants.DROPPED_TYPE_CODES[import_constants.ITEM_TYPES.LEFT_NAV_ITEM_SKELETON];
161
+ (0, import_report.markLost)(report, { code, dsId: header.dsId ?? "", message });
162
+ return null;
163
+ }
164
+ if (typeof header.type !== "string" || !import_conversionConstants.OUT_OF_THE_BOX_TYPES.includes(header.type)) {
165
+ (0, import_report.markLost)(report, {
166
+ code: "custom-component-dropped",
167
+ dsId: header.dsId ?? "",
168
+ message: "A HeaderComponent with a custom Component is not supported"
169
+ });
170
+ return null;
171
+ }
172
+ if (!import_conversionConstants.HEADER_TYPES.includes(header.type)) {
173
+ (0, import_report.markLost)(report, {
174
+ code: "unknown-type-dropped",
175
+ dsId: header.dsId ?? "",
176
+ message: `A HeaderComponent of type "${header.type}" is not supported, use a header or a leaf type`
177
+ });
178
+ return null;
179
+ }
180
+ return {
181
+ dsId: header.dsId ?? "",
182
+ type: import_ds_left_navigation_tree.LEFT_NAVIGATION_TREE_ITEM_TYPES.LEAF,
183
+ ...convertCollapsed(header, report),
184
+ /** A header of a leaf type is drawn by LeftNavigation as that leaf (a with-date header shows its date), so it converts as one. */
185
+ itemOpts: (0, import_convertItemOpts.convertItemOpts)({
186
+ item: header,
187
+ report,
188
+ kind: header.type === import_constants.ITEM_TYPES.LEFT_NAV_ITEM_HEADER ? "header" : "leaf"
189
+ })
190
+ };
191
+ };
192
+ //# sourceMappingURL=conversionHelpers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/exported-related/conversion-utils/conversionHelpers.ts", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import {\n LEFT_NAVIGATION_TREE_ITEM_TYPES as TREE_TYPES,\n type DSLeftNavigationTreeT,\n} from '@elliemae/ds-left-navigation-tree';\nimport { ITEM_TYPES } from '../../constants/index.js';\nimport type { DSLeftNavigationT } from '../../react-desc-prop-types.js';\nimport {\n DRILLDOWN_TYPES,\n DROPPED_TYPE_CODES,\n HEADER_TYPES,\n LEAF_TYPES,\n NO_RAIL_TYPES,\n OUT_OF_THE_BOX_TYPES,\n getOwn,\n} from './conversionConstants.js';\nimport { convertItemOpts } from './convertItemOpts.js';\nimport { markLost } from './report.js';\nimport type { DSLeftNavBridgeT } from './types.js';\n\ntype OldItemT = DSLeftNavigationT.GenericItemItemProps;\ntype NewItemT = DSLeftNavigationTreeT.Item;\ntype ReportT = DSLeftNavBridgeT.ReportMutableT;\n\ntype ConvertListArgsT = {\n list: readonly OldItemT[];\n isRoot: boolean;\n /** The dsIds (or the items themselves, when they have none) of the submenus and drilldowns being expanded, to stop a branch that contains itself. */\n ancestors?: readonly (string | OldItemT)[];\n report: ReportT;\n childrenByParentId: DSLeftNavBridgeT.ChildrenByParentIdT;\n};\n\nconst convertCollapsed = (item: OldItemT, report: ReportT): Partial<NewItemT> => {\n if (!item.CollapsedComponent || NO_RAIL_TYPES.includes(item.type ?? '')) return {};\n markLost(report, {\n code: 'collapsed-component-ctx',\n dsId: item.dsId ?? '',\n message: 'CollapsedComponent is kept, it only receives { item }',\n });\n return { CollapsedComponent: item.CollapsedComponent as unknown as NewItemT['CollapsedComponent'] };\n};\n\nconst joinSectionLabel = (label: unknown, rightSection: unknown) =>\n typeof label === 'string' && typeof rightSection === 'string' ? `${label}, ${rightSection}` : label;\n\ntype RecurseT = (children: readonly OldItemT[]) => NewItemT[];\n\nconst convertSubmenu = (item: OldItemT, args: ConvertOneArgsT): NewItemT => {\n const { report, childrenByParentId, recurse } = args;\n const dsId = item.dsId ?? '';\n const children = getOwn(childrenByParentId, dsId);\n if (!children)\n markLost(report, { code: 'submenu-without-children', dsId, message: 'No entry in childrenByParentId' });\n return {\n dsId,\n type: TREE_TYPES.PARENT,\n ...convertCollapsed(item, report),\n itemOpts: { ...convertItemOpts({ item, report, kind: 'submenu' }), items: recurse(children ?? []) },\n };\n};\n\n/**\n * Both legacy drilldowns already open their children in place, so they map one to one to a tree parent. The open state\n * follows the legacy type: the controlled one reads only `isOpened` (closed when omitted), the uncontrolled one only\n * `startOpened`. The tree treats a parent as controlled when `isOpened` is defined, so each option is carried only where\n * LeftNavigation used it.\n */\nconst convertDrilldown = (item: OldItemT, args: ConvertOneArgsT): NewItemT => {\n const { report, recurse } = args;\n const dsId = item.dsId ?? '';\n const { startOpened, isOpened, items = [] } = item.itemOpts ?? {};\n const opts = convertItemOpts({ item, report, kind: 'drilldown' });\n const isControlled = item.type === ITEM_TYPES.LEFT_NAV_ITEM_CONTROLLED_DRILLDOWN;\n return {\n dsId,\n type: TREE_TYPES.PARENT,\n ...convertCollapsed(item, report),\n itemOpts: {\n ...opts,\n ...(isControlled && { isOpened: !!isOpened }),\n ...(!isControlled && startOpened !== undefined && { startOpened }),\n items: recurse(items),\n },\n };\n};\n\ntype ConvertOneArgsT = Omit<ConvertListArgsT, 'list' | 'isRoot'> & { recurse: RecurseT };\n\n/**\n * Converts one item that is neither a section nor a separator. Returns null when the tree cannot carry it over.\n */\nconst convertOne = (item: OldItemT, args: ConvertOneArgsT): NewItemT | null => {\n const { report } = args;\n const dsId = item.dsId ?? '';\n const { type } = item;\n\n if (typeof type !== 'string') {\n markLost(report, {\n code: 'custom-component-dropped',\n dsId,\n message: 'Items with a custom Component are not supported',\n });\n return null;\n }\n if (LEAF_TYPES.includes(type)) {\n return {\n dsId,\n type: TREE_TYPES.LEAF,\n ...convertCollapsed(item, report),\n itemOpts: convertItemOpts({ item, report, kind: 'leaf' }),\n };\n }\n if (type === ITEM_TYPES.LEFT_NAV_ITEM_SUBMENU) return convertSubmenu(item, args);\n if (DRILLDOWN_TYPES.includes(type)) return convertDrilldown(item, args);\n const [code, message] = getOwn(DROPPED_TYPE_CODES as Record<string, readonly [string, string]>, type) ?? [\n 'unknown-type-dropped',\n `Type \"${type}\" is not out of the box`,\n ];\n markLost(report, { code: code as DSLeftNavBridgeT.LostCodeT, dsId, message });\n return null;\n};\n\nconst convertSection = (item: OldItemT, report: ReportT, items: NewItemT[]): NewItemT => {\n const { label, labelRightSection } = item.itemOpts ?? {};\n const joinable = typeof label === 'string' && typeof labelRightSection === 'string';\n const opts = convertItemOpts({ item, report, kind: 'section', joinable });\n return {\n dsId: item.dsId ?? '',\n type: TREE_TYPES.SECTION,\n itemOpts: {\n ...opts,\n label: joinSectionLabel(label, labelRightSection) as NonNullable<NewItemT['itemOpts']>['label'],\n items,\n },\n };\n};\n\n/**\n * LeftNavigation lists are flat: a section is a label and the items that follow it belong to it until the next section or separator.\n * The tree holds the children of a section inside it, so the conversion groups them.\n */\nexport const convertList = (args: ConvertListArgsT): NewItemT[] => {\n const { list, isRoot, report, ancestors = [] } = args;\n const converted: NewItemT[] = [];\n let sectionItems: NewItemT[] | null = null;\n\n list.forEach((item) => {\n const { type, dsId = '' } = item;\n const isSection = type === ITEM_TYPES.LEFT_NAV_ITEM_SECTION;\n if (isSection || type === ITEM_TYPES.LEFT_NAV_ITEM_SEPARATOR) {\n if (!isRoot) {\n markLost(report, {\n code: 'section-in-nested-list-dropped',\n dsId,\n message: 'Sections and separators are only supported at the root level',\n });\n return;\n }\n sectionItems = isSection ? [] : null;\n converted.push(sectionItems ? convertSection(item, report, sectionItems) : { dsId, type: TREE_TYPES.SEPARATOR });\n return;\n }\n /** An item that is its own ancestor (by dsId, or by identity when it has none) would expand forever: its repeated branch stays empty and `duplicate-id` or `missing-id` reports it. */\n const ancestorKey = dsId || item;\n const isOwnAncestor = ancestors.includes(ancestorKey);\n const convertedItem = convertOne(item, {\n report,\n childrenByParentId: args.childrenByParentId,\n recurse: (children) =>\n isOwnAncestor\n ? []\n : convertList({ ...args, list: children, isRoot: false, ancestors: [...ancestors, ancestorKey] }),\n });\n if (!convertedItem) return;\n if (sectionItems) sectionItems.push(convertedItem);\n else converted.push(convertedItem);\n });\n return converted;\n};\n\n/**\n * Returns null when the header cannot be carried over: a skeleton (the same policy as the items of the list), or a custom\n * `Component` (no type, or a type that is not out of the box).\n */\nexport const convertHeader = (header: OldItemT, report: ReportT): NewItemT | null => {\n if (header.type === ITEM_TYPES.LEFT_NAV_ITEM_SKELETON) {\n const [code, message] = DROPPED_TYPE_CODES[ITEM_TYPES.LEFT_NAV_ITEM_SKELETON];\n markLost(report, { code, dsId: header.dsId ?? '', message });\n return null;\n }\n if (typeof header.type !== 'string' || !OUT_OF_THE_BOX_TYPES.includes(header.type)) {\n markLost(report, {\n code: 'custom-component-dropped',\n dsId: header.dsId ?? '',\n message: 'A HeaderComponent with a custom Component is not supported',\n });\n return null;\n }\n if (!HEADER_TYPES.includes(header.type)) {\n markLost(report, {\n code: 'unknown-type-dropped',\n dsId: header.dsId ?? '',\n message: `A HeaderComponent of type \"${header.type}\" is not supported, use a header or a leaf type`,\n });\n return null;\n }\n return {\n dsId: header.dsId ?? '',\n type: TREE_TYPES.LEAF,\n ...convertCollapsed(header, report),\n /** A header of a leaf type is drawn by LeftNavigation as that leaf (a with-date header shows its date), so it converts as one. */\n itemOpts: convertItemOpts({\n item: header,\n report,\n kind: header.type === ITEM_TYPES.LEFT_NAV_ITEM_HEADER ? 'header' : 'leaf',\n }),\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,qCAGO;AACP,uBAA2B;AAE3B,iCAQO;AACP,6BAAgC;AAChC,oBAAyB;AAgBzB,MAAM,mBAAmB,CAAC,MAAgB,WAAuC;AAC/E,MAAI,CAAC,KAAK,sBAAsB,yCAAc,SAAS,KAAK,QAAQ,EAAE,EAAG,QAAO,CAAC;AACjF,8BAAS,QAAQ;AAAA,IACf,MAAM;AAAA,IACN,MAAM,KAAK,QAAQ;AAAA,IACnB,SAAS;AAAA,EACX,CAAC;AACD,SAAO,EAAE,oBAAoB,KAAK,mBAAgE;AACpG;AAEA,MAAM,mBAAmB,CAAC,OAAgB,iBACxC,OAAO,UAAU,YAAY,OAAO,iBAAiB,WAAW,GAAG,KAAK,KAAK,YAAY,KAAK;AAIhG,MAAM,iBAAiB,CAAC,MAAgB,SAAoC;AAC1E,QAAM,EAAE,QAAQ,oBAAoB,QAAQ,IAAI;AAChD,QAAM,OAAO,KAAK,QAAQ;AAC1B,QAAM,eAAW,mCAAO,oBAAoB,IAAI;AAChD,MAAI,CAAC;AACH,gCAAS,QAAQ,EAAE,MAAM,4BAA4B,MAAM,SAAS,iCAAiC,CAAC;AACxG,SAAO;AAAA,IACL;AAAA,IACA,MAAM,+BAAAA,gCAAW;AAAA,IACjB,GAAG,iBAAiB,MAAM,MAAM;AAAA,IAChC,UAAU,EAAE,OAAG,wCAAgB,EAAE,MAAM,QAAQ,MAAM,UAAU,CAAC,GAAG,OAAO,QAAQ,YAAY,CAAC,CAAC,EAAE;AAAA,EACpG;AACF;AAQA,MAAM,mBAAmB,CAAC,MAAgB,SAAoC;AAC5E,QAAM,EAAE,QAAQ,QAAQ,IAAI;AAC5B,QAAM,OAAO,KAAK,QAAQ;AAC1B,QAAM,EAAE,aAAa,UAAU,QAAQ,CAAC,EAAE,IAAI,KAAK,YAAY,CAAC;AAChE,QAAM,WAAO,wCAAgB,EAAE,MAAM,QAAQ,MAAM,YAAY,CAAC;AAChE,QAAM,eAAe,KAAK,SAAS,4BAAW;AAC9C,SAAO;AAAA,IACL;AAAA,IACA,MAAM,+BAAAA,gCAAW;AAAA,IACjB,GAAG,iBAAiB,MAAM,MAAM;AAAA,IAChC,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAI,gBAAgB,EAAE,UAAU,CAAC,CAAC,SAAS;AAAA,MAC3C,GAAI,CAAC,gBAAgB,gBAAgB,UAAa,EAAE,YAAY;AAAA,MAChE,OAAO,QAAQ,KAAK;AAAA,IACtB;AAAA,EACF;AACF;AAOA,MAAM,aAAa,CAAC,MAAgB,SAA2C;AAC7E,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,OAAO,KAAK,QAAQ;AAC1B,QAAM,EAAE,KAAK,IAAI;AAEjB,MAAI,OAAO,SAAS,UAAU;AAC5B,gCAAS,QAAQ;AAAA,MACf,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACX,CAAC;AACD,WAAO;AAAA,EACT;AACA,MAAI,sCAAW,SAAS,IAAI,GAAG;AAC7B,WAAO;AAAA,MACL;AAAA,MACA,MAAM,+BAAAA,gCAAW;AAAA,MACjB,GAAG,iBAAiB,MAAM,MAAM;AAAA,MAChC,cAAU,wCAAgB,EAAE,MAAM,QAAQ,MAAM,OAAO,CAAC;AAAA,IAC1D;AAAA,EACF;AACA,MAAI,SAAS,4BAAW,sBAAuB,QAAO,eAAe,MAAM,IAAI;AAC/E,MAAI,2CAAgB,SAAS,IAAI,EAAG,QAAO,iBAAiB,MAAM,IAAI;AACtE,QAAM,CAAC,MAAM,OAAO,QAAI,mCAAO,+CAAiE,IAAI,KAAK;AAAA,IACvG;AAAA,IACA,SAAS,IAAI;AAAA,EACf;AACA,8BAAS,QAAQ,EAAE,MAA0C,MAAM,QAAQ,CAAC;AAC5E,SAAO;AACT;AAEA,MAAM,iBAAiB,CAAC,MAAgB,QAAiB,UAAgC;AACvF,QAAM,EAAE,OAAO,kBAAkB,IAAI,KAAK,YAAY,CAAC;AACvD,QAAM,WAAW,OAAO,UAAU,YAAY,OAAO,sBAAsB;AAC3E,QAAM,WAAO,wCAAgB,EAAE,MAAM,QAAQ,MAAM,WAAW,SAAS,CAAC;AACxE,SAAO;AAAA,IACL,MAAM,KAAK,QAAQ;AAAA,IACnB,MAAM,+BAAAA,gCAAW;AAAA,IACjB,UAAU;AAAA,MACR,GAAG;AAAA,MACH,OAAO,iBAAiB,OAAO,iBAAiB;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AACF;AAMO,MAAM,cAAc,CAAC,SAAuC;AACjE,QAAM,EAAE,MAAM,QAAQ,QAAQ,YAAY,CAAC,EAAE,IAAI;AACjD,QAAM,YAAwB,CAAC;AAC/B,MAAI,eAAkC;AAEtC,OAAK,QAAQ,CAAC,SAAS;AACrB,UAAM,EAAE,MAAM,OAAO,GAAG,IAAI;AAC5B,UAAM,YAAY,SAAS,4BAAW;AACtC,QAAI,aAAa,SAAS,4BAAW,yBAAyB;AAC5D,UAAI,CAAC,QAAQ;AACX,oCAAS,QAAQ;AAAA,UACf,MAAM;AAAA,UACN;AAAA,UACA,SAAS;AAAA,QACX,CAAC;AACD;AAAA,MACF;AACA,qBAAe,YAAY,CAAC,IAAI;AAChC,gBAAU,KAAK,eAAe,eAAe,MAAM,QAAQ,YAAY,IAAI,EAAE,MAAM,MAAM,+BAAAA,gCAAW,UAAU,CAAC;AAC/G;AAAA,IACF;AAEA,UAAM,cAAc,QAAQ;AAC5B,UAAM,gBAAgB,UAAU,SAAS,WAAW;AACpD,UAAM,gBAAgB,WAAW,MAAM;AAAA,MACrC;AAAA,MACA,oBAAoB,KAAK;AAAA,MACzB,SAAS,CAAC,aACR,gBACI,CAAC,IACD,YAAY,EAAE,GAAG,MAAM,MAAM,UAAU,QAAQ,OAAO,WAAW,CAAC,GAAG,WAAW,WAAW,EAAE,CAAC;AAAA,IACtG,CAAC;AACD,QAAI,CAAC,cAAe;AACpB,QAAI,aAAc,cAAa,KAAK,aAAa;AAAA,QAC5C,WAAU,KAAK,aAAa;AAAA,EACnC,CAAC;AACD,SAAO;AACT;AAMO,MAAM,gBAAgB,CAAC,QAAkB,WAAqC;AACnF,MAAI,OAAO,SAAS,4BAAW,wBAAwB;AACrD,UAAM,CAAC,MAAM,OAAO,IAAI,8CAAmB,4BAAW,sBAAsB;AAC5E,gCAAS,QAAQ,EAAE,MAAM,MAAM,OAAO,QAAQ,IAAI,QAAQ,CAAC;AAC3D,WAAO;AAAA,EACT;AACA,MAAI,OAAO,OAAO,SAAS,YAAY,CAAC,gDAAqB,SAAS,OAAO,IAAI,GAAG;AAClF,gCAAS,QAAQ;AAAA,MACf,MAAM;AAAA,MACN,MAAM,OAAO,QAAQ;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AACD,WAAO;AAAA,EACT;AACA,MAAI,CAAC,wCAAa,SAAS,OAAO,IAAI,GAAG;AACvC,gCAAS,QAAQ;AAAA,MACf,MAAM;AAAA,MACN,MAAM,OAAO,QAAQ;AAAA,MACrB,SAAS,8BAA8B,OAAO,IAAI;AAAA,IACpD,CAAC;AACD,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,MAAM,OAAO,QAAQ;AAAA,IACrB,MAAM,+BAAAA,gCAAW;AAAA,IACjB,GAAG,iBAAiB,QAAQ,MAAM;AAAA;AAAA,IAElC,cAAU,wCAAgB;AAAA,MACxB,MAAM;AAAA,MACN;AAAA,MACA,MAAM,OAAO,SAAS,4BAAW,uBAAuB,WAAW;AAAA,IACrE,CAAC;AAAA,EACH;AACF;",
6
+ "names": ["TREE_TYPES"]
7
+ }