@macrostrat/feedback-components 1.1.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/extractions/index.cjs +198 -0
  3. package/dist/extractions/index.cjs.map +1 -0
  4. package/dist/extractions/index.d.ts +30 -0
  5. package/dist/extractions/index.js +198 -0
  6. package/dist/extractions/index.js.map +1 -0
  7. package/dist/extractions/main.module.sass.cjs +12 -0
  8. package/dist/extractions/main.module.sass.cjs.map +1 -0
  9. package/dist/extractions/main.module.sass.js +12 -0
  10. package/dist/extractions/main.module.sass.js.map +1 -0
  11. package/dist/extractions/types.d.ts +32 -0
  12. package/dist/feedback/edit-state.cjs +382 -0
  13. package/dist/feedback/edit-state.cjs.map +1 -0
  14. package/dist/feedback/edit-state.d.ts +127 -0
  15. package/dist/feedback/edit-state.js +382 -0
  16. package/dist/feedback/edit-state.js.map +1 -0
  17. package/dist/feedback/feedback.module.sass.cjs +47 -0
  18. package/dist/feedback/feedback.module.sass.cjs.map +1 -0
  19. package/dist/feedback/feedback.module.sass.js +47 -0
  20. package/dist/feedback/feedback.module.sass.js.map +1 -0
  21. package/dist/feedback/graph.cjs +124 -0
  22. package/dist/feedback/graph.cjs.map +1 -0
  23. package/dist/feedback/graph.d.ts +9 -0
  24. package/dist/feedback/graph.js +124 -0
  25. package/dist/feedback/graph.js.map +1 -0
  26. package/dist/feedback/index.cjs +347 -0
  27. package/dist/feedback/index.cjs.map +1 -0
  28. package/dist/feedback/index.d.ts +15 -0
  29. package/dist/feedback/index.js +348 -0
  30. package/dist/feedback/index.js.map +1 -0
  31. package/dist/feedback/matches.cjs +244 -0
  32. package/dist/feedback/matches.cjs.map +1 -0
  33. package/dist/feedback/matches.d.ts +17 -0
  34. package/dist/feedback/matches.js +244 -0
  35. package/dist/feedback/matches.js.map +1 -0
  36. package/dist/feedback/node.cjs +63 -0
  37. package/dist/feedback/node.cjs.map +1 -0
  38. package/dist/feedback/node.d.ts +5 -0
  39. package/dist/feedback/node.js +63 -0
  40. package/dist/feedback/node.js.map +1 -0
  41. package/dist/feedback/text-visualizer.cjs +288 -0
  42. package/dist/feedback/text-visualizer.cjs.map +1 -0
  43. package/dist/feedback/text-visualizer.d.ts +36 -0
  44. package/dist/feedback/text-visualizer.js +288 -0
  45. package/dist/feedback/text-visualizer.js.map +1 -0
  46. package/dist/feedback/type-selector/index.cjs +47 -0
  47. package/dist/feedback/type-selector/index.cjs.map +1 -0
  48. package/dist/feedback/type-selector/index.d.ts +20 -0
  49. package/dist/feedback/type-selector/index.js +47 -0
  50. package/dist/feedback/type-selector/index.js.map +1 -0
  51. package/dist/feedback/type-selector/main.module.sass.cjs +13 -0
  52. package/dist/feedback/type-selector/main.module.sass.cjs.map +1 -0
  53. package/dist/feedback/type-selector/main.module.sass.js +13 -0
  54. package/dist/feedback/type-selector/main.module.sass.js.map +1 -0
  55. package/dist/feedback/typelist.cjs +293 -0
  56. package/dist/feedback/typelist.cjs.map +1 -0
  57. package/dist/feedback/typelist.d.ts +8 -0
  58. package/dist/feedback/typelist.js +293 -0
  59. package/dist/feedback/typelist.js.map +1 -0
  60. package/dist/feedback/types.d.ts +64 -0
  61. package/dist/feedback-components.css +343 -0
  62. package/dist/index.cjs +14 -0
  63. package/dist/index.cjs.map +1 -0
  64. package/dist/index.d.ts +2 -0
  65. package/dist/index.js +14 -0
  66. package/dist/index.js.map +1 -0
  67. package/package.json +43 -41
  68. package/src/extractions/index.ts +2 -2
  69. package/src/feedback/text-visualizer.ts +0 -1
  70. package/src/feedback/types.ts +2 -2
  71. package/dist/esm/feedback-components.2364179b.js +0 -287
  72. package/dist/esm/feedback-components.2364179b.js.map +0 -1
  73. package/dist/esm/feedback-components.6d32ee91.js +0 -16
  74. package/dist/esm/feedback-components.6d32ee91.js.map +0 -1
  75. package/dist/esm/feedback-components.7dd42a9f.js +0 -248
  76. package/dist/esm/feedback-components.7dd42a9f.js.map +0 -1
  77. package/dist/esm/feedback-components.7f72e5e9.js +0 -64
  78. package/dist/esm/feedback-components.7f72e5e9.js.map +0 -1
  79. package/dist/esm/feedback-components.ad9f284e.js +0 -63
  80. package/dist/esm/feedback-components.ad9f284e.js.map +0 -1
  81. package/dist/esm/feedback-components.ba79c0ef.js +0 -204
  82. package/dist/esm/feedback-components.ba79c0ef.js.map +0 -1
  83. package/dist/esm/feedback-components.bf93773c.css +0 -17
  84. package/dist/esm/feedback-components.bf93773c.css.map +0 -1
  85. package/dist/esm/feedback-components.c6e2c296.js +0 -148
  86. package/dist/esm/feedback-components.c6e2c296.js.map +0 -1
  87. package/dist/esm/feedback-components.ca78c2d4.js +0 -287
  88. package/dist/esm/feedback-components.ca78c2d4.js.map +0 -1
  89. package/dist/esm/feedback-components.d769ffa5.css +0 -205
  90. package/dist/esm/feedback-components.d769ffa5.css.map +0 -1
  91. package/dist/esm/feedback-components.e273ed5b.css +0 -14
  92. package/dist/esm/feedback-components.e273ed5b.css.map +0 -1
  93. package/dist/esm/feedback-components.e702eece.js +0 -97
  94. package/dist/esm/feedback-components.e702eece.js.map +0 -1
  95. package/dist/esm/feedback-components.edc606bb.js +0 -360
  96. package/dist/esm/feedback-components.edc606bb.js.map +0 -1
  97. package/dist/esm/feedback-components.f9850d85.js +0 -19
  98. package/dist/esm/feedback-components.f9850d85.js.map +0 -1
  99. package/dist/esm/feedback-components.fa847634.js +0 -453
  100. package/dist/esm/feedback-components.fa847634.js.map +0 -1
  101. package/dist/esm/index.d.ts +0 -96
  102. package/dist/esm/index.d.ts.map +0 -1
  103. package/dist/esm/index.js +0 -9
  104. package/dist/esm/index.js.map +0 -1
  105. package/dist/node/feedback-components.1bd49bf0.js +0 -2
  106. package/dist/node/feedback-components.1bd49bf0.js.map +0 -1
  107. package/dist/node/feedback-components.2f391fa4.js +0 -2
  108. package/dist/node/feedback-components.2f391fa4.js.map +0 -1
  109. package/dist/node/feedback-components.6a4a1290.js +0 -2
  110. package/dist/node/feedback-components.6a4a1290.js.map +0 -1
  111. package/dist/node/feedback-components.70780da4.js +0 -2
  112. package/dist/node/feedback-components.70780da4.js.map +0 -1
  113. package/dist/node/feedback-components.794f429b.js +0 -2
  114. package/dist/node/feedback-components.794f429b.js.map +0 -1
  115. package/dist/node/feedback-components.83c21466.css +0 -2
  116. package/dist/node/feedback-components.83c21466.css.map +0 -1
  117. package/dist/node/feedback-components.97518e90.css +0 -2
  118. package/dist/node/feedback-components.97518e90.css.map +0 -1
  119. package/dist/node/feedback-components.9eb1d41a.css +0 -2
  120. package/dist/node/feedback-components.9eb1d41a.css.map +0 -1
  121. package/dist/node/feedback-components.acac789b.js +0 -2
  122. package/dist/node/feedback-components.acac789b.js.map +0 -1
  123. package/dist/node/feedback-components.c84ff10e.js +0 -2
  124. package/dist/node/feedback-components.c84ff10e.js.map +0 -1
  125. package/dist/node/feedback-components.db72d0e1.js +0 -2
  126. package/dist/node/feedback-components.db72d0e1.js.map +0 -1
  127. package/dist/node/feedback-components.dc76072c.js +0 -2
  128. package/dist/node/feedback-components.dc76072c.js.map +0 -1
  129. package/dist/node/feedback-components.ddd11fe8.js +0 -2
  130. package/dist/node/feedback-components.ddd11fe8.js.map +0 -1
  131. package/dist/node/feedback-components.e59a061f.js +0 -2
  132. package/dist/node/feedback-components.e59a061f.js.map +0 -1
  133. package/dist/node/feedback-components.feab0bd0.js +0 -2
  134. package/dist/node/feedback-components.feab0bd0.js.map +0 -1
  135. package/dist/node/index.js +0 -2
  136. package/dist/node/index.js.map +0 -1
@@ -1,64 +0,0 @@
1
- import {EntityTag as $03d8811e9c9b360d$export$117e56c71b172cde} from "./feedback-components.ba79c0ef.js";
2
- import {useTreeDispatch as $b79bf29960412ca7$export$e1068f2d1c68f87e} from "./feedback-components.fa847634.js";
3
- import "./feedback-components.d769ffa5.css";
4
- import $gIldz$feedbackcomponentse702eecejs from "./feedback-components.e702eece.js";
5
- import $gIldz$macrostrathyper from "@macrostrat/hyper";
6
-
7
-
8
- function $parcel$interopDefault(a) {
9
- return a && a.__esModule ? a.default : a;
10
- }
11
-
12
-
13
-
14
-
15
- const $b6b9741bf83336eb$var$h = (0, $gIldz$macrostrathyper).styled((0, ($parcel$interopDefault($gIldz$feedbackcomponentse702eecejs))));
16
- function $b6b9741bf83336eb$var$isSelected(searchNode, treeNode) {
17
- return searchNode.id == treeNode.id;
18
- // We could also select children of the search node here if we wanted to
19
- }
20
- function $b6b9741bf83336eb$var$isNodeHighlighted(node, tree) {
21
- // We treat no selection as all nodes being active. We may add some nuance later
22
- if (tree.selectedNodes.length == 0) return true;
23
- for (const selectedNode of tree.selectedNodes){
24
- if ($b6b9741bf83336eb$var$isSelected(node.data, selectedNode.data)) return true;
25
- }
26
- // Check if the parent node is highlighted
27
- if (node.parent != null && $b6b9741bf83336eb$var$isNodeHighlighted(node.parent, tree)) return true;
28
- return false;
29
- }
30
- function $b6b9741bf83336eb$var$isNodeActive(node, tree) {
31
- for (const selectedNode of tree.selectedNodes){
32
- if ($b6b9741bf83336eb$var$isSelected(node.data, selectedNode.data)) return true;
33
- }
34
- return false;
35
- }
36
- function $b6b9741bf83336eb$var$Node({ node: node, style: style, dragHandle: dragHandle, tree: tree, matchComponent: matchComponent, viewOnly: viewOnly }) {
37
- let highlighted = $b6b9741bf83336eb$var$isNodeHighlighted(node, tree);
38
- let active = $b6b9741bf83336eb$var$isNodeActive(node, tree);
39
- console.log("viewOnly", viewOnly);
40
- const dispatch = (0, $b79bf29960412ca7$export$e1068f2d1c68f87e)();
41
- if (!node.data?.type) node.data.type = {
42
- name: "lith",
43
- color: "rgb(107, 255, 91)"
44
- };
45
- return $b6b9741bf83336eb$var$h("div.node" + (!viewOnly ? ".clickable" : ""), {
46
- style: style,
47
- ref: dragHandle
48
- }, $b6b9741bf83336eb$var$h((0, $03d8811e9c9b360d$export$117e56c71b172cde), {
49
- data: node.data,
50
- active: viewOnly ? false : active,
51
- highlighted: viewOnly ? true : highlighted,
52
- matchComponent: matchComponent,
53
- onClickType () {
54
- dispatch({
55
- type: "toggle-entity-type-selector"
56
- });
57
- }
58
- }));
59
- }
60
- var $b6b9741bf83336eb$export$2e2bcd8739ae039 = $b6b9741bf83336eb$var$Node;
61
-
62
-
63
- export {$b6b9741bf83336eb$export$2e2bcd8739ae039 as default};
64
- //# sourceMappingURL=feedback-components.7f72e5e9.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;AAOA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,8EAAK;AAE5B,SAAS,iCAAW,UAAoB,EAAE,QAAkB;IAC1D,OAAO,WAAW,EAAE,IAAI,SAAS,EAAE;AACnC,wEAAwE;AAC1E;AAEA,SAAS,wCAAkB,IAAuB,EAAE,IAAuB;IACzE,gFAAgF;IAChF,IAAI,KAAK,aAAa,CAAC,MAAM,IAAI,GAC/B,OAAO;IAGT,KAAK,MAAM,gBAAgB,KAAK,aAAa,CAAE;QAC7C,IAAI,iCAAW,KAAK,IAAI,EAAE,aAAa,IAAI,GACzC,OAAO;IAEX;IAEA,0CAA0C;IAC1C,IAAI,KAAK,MAAM,IAAI,QAAQ,wCAAkB,KAAK,MAAM,EAAE,OACxD,OAAO;IAGT,OAAO;AACT;AAEA,SAAS,mCAAa,IAAuB,EAAE,IAAuB;IACpE,KAAK,MAAM,gBAAgB,KAAK,aAAa,CAAE;QAC7C,IAAI,iCAAW,KAAK,IAAI,EAAE,aAAa,IAAI,GACzC,OAAO;IAEX;IACA,OAAO;AACT;AAEA,SAAS,2BAAK,QACZ,IAAI,SACJ,KAAK,cACL,UAAU,QACV,IAAI,kBACJ,cAAc,YACd,QAAQ,EACJ;IACJ,IAAI,cAAuB,wCAAkB,MAAM;IACnD,IAAI,SAAkB,mCAAa,MAAM;IAEzC,QAAQ,GAAG,CAAC,YAAY;IAExB,MAAM,WAAW,CAAA,GAAA,yCAAc;IAE/B,IAAI,CAAC,KAAK,IAAI,EAAE,MACd,KAAK,IAAI,CAAC,IAAI,GAAG;QAAE,MAAM;QAAQ,OAAO;IAAoB;IAG9D,OAAO,wBACL,aAAc,CAAA,CAAC,WAAW,eAAe,EAAC,GAC1C;eAAE;QAAO,KAAK;IAAW,GACzB,wBAAE,CAAA,GAAA,yCAAQ,GAAG;QACX,MAAM,KAAK,IAAI;QACf,QAAQ,WAAW,QAAQ;QAC3B,aAAa,WAAW,OAAO;wBAC/B;QACA;YACE,SAAS;gBAAE,MAAM;YAA8B;QACjD;IACF;AAEJ;IAEA,2CAAe","sources":["packages/feedback-components/src/feedback/node.ts"],"sourcesContent":["import { NodeApi, TreeApi } from \"react-arborist\";\nimport { TreeData } from \"./types\";\nimport { EntityTag } from \"../extractions\";\nimport { useTreeDispatch } from \"./edit-state\";\nimport styles from \"./feedback.module.sass\";\nimport hyper from \"@macrostrat/hyper\";\n\nconst h = hyper.styled(styles);\n\nfunction isSelected(searchNode: TreeData, treeNode: TreeData) {\n return searchNode.id == treeNode.id;\n // We could also select children of the search node here if we wanted to\n}\n\nfunction isNodeHighlighted(node: NodeApi<TreeData>, tree: TreeApi<TreeData>) {\n // We treat no selection as all nodes being active. We may add some nuance later\n if (tree.selectedNodes.length == 0) {\n return true;\n }\n\n for (const selectedNode of tree.selectedNodes) {\n if (isSelected(node.data, selectedNode.data)) {\n return true;\n }\n }\n\n // Check if the parent node is highlighted\n if (node.parent != null && isNodeHighlighted(node.parent, tree)) {\n return true;\n }\n\n return false;\n}\n\nfunction isNodeActive(node: NodeApi<TreeData>, tree: TreeApi<TreeData>) {\n for (const selectedNode of tree.selectedNodes) {\n if (isSelected(node.data, selectedNode.data)) {\n return true;\n }\n }\n return false;\n}\n\nfunction Node({\n node,\n style,\n dragHandle,\n tree,\n matchComponent,\n viewOnly,\n}: any) {\n let highlighted: boolean = isNodeHighlighted(node, tree);\n let active: boolean = isNodeActive(node, tree);\n\n console.log(\"viewOnly\", viewOnly);\n\n const dispatch = useTreeDispatch();\n\n if (!node.data?.type) {\n node.data.type = { name: \"lith\", color: \"rgb(107, 255, 91)\" };\n }\n\n return h(\n \"div.node\" + (!viewOnly ? \".clickable\" : \"\"),\n { style, ref: dragHandle },\n h(EntityTag, {\n data: node.data,\n active: viewOnly ? false : active,\n highlighted: viewOnly ? true : highlighted,\n matchComponent,\n onClickType() {\n dispatch({ type: \"toggle-entity-type-selector\" });\n },\n }),\n );\n}\n\nexport default Node;\n"],"names":[],"version":3,"file":"feedback-components.7f72e5e9.js.map"}
@@ -1,63 +0,0 @@
1
- import "./feedback-components.bf93773c.css";
2
- import $N2zU5$feedbackcomponentsf9850d85js from "./feedback-components.f9850d85.js";
3
- import $N2zU5$macrostrathyper from "@macrostrat/hyper";
4
- import $N2zU5$classnames from "classnames";
5
- import {Omnibar as $N2zU5$Omnibar} from "@blueprintjs/select";
6
- import "@blueprintjs/select/lib/css/blueprint-select.css";
7
-
8
-
9
- function $parcel$interopDefault(a) {
10
- return a && a.__esModule ? a.default : a;
11
- }
12
- /**
13
- * Entity type selector
14
- */
15
-
16
-
17
-
18
-
19
- const $fda9ef5406c1cfb4$var$h = (0, $N2zU5$macrostrathyper).styled((0, ($parcel$interopDefault($N2zU5$feedbackcomponentsf9850d85js))));
20
- const $fda9ef5406c1cfb4$var$TagListItem = (props)=>{
21
- /** Render a tag for the omnibox list */ let { active: active, selected: selected, className: className, onSelect: onSelect, item: item, children: children } = props;
22
- className = (0, $N2zU5$classnames)({
23
- active: active,
24
- selected: selected
25
- }, className);
26
- const onClick = ()=>onSelect(item);
27
- return $fda9ef5406c1cfb4$var$h("div.item-container", {
28
- key: item.id,
29
- className: className,
30
- onClick: onClick
31
- }, [
32
- $fda9ef5406c1cfb4$var$h("div.swatch", {
33
- style: {
34
- backgroundColor: item.color
35
- }
36
- }),
37
- $fda9ef5406c1cfb4$var$h("div.item", {}, item.name)
38
- ]);
39
- };
40
- function $fda9ef5406c1cfb4$export$d8660660a589068c(props) {
41
- /** A general omnibox for annotation types */ const { onSelectItem: onSelectItem, items: items, isOpen: isOpen, onClose: onClose, onQueryChange: onQueryChange } = props;
42
- return $fda9ef5406c1cfb4$var$h((0, $N2zU5$Omnibar), {
43
- onItemSelect: onSelectItem,
44
- items: items,
45
- onQueryChange: onQueryChange,
46
- resetOnSelect: false,
47
- isOpen: isOpen,
48
- onClose: onClose,
49
- itemRenderer (item, { handleClick: handleClick, modifiers: modifiers }) {
50
- return $fda9ef5406c1cfb4$var$h($fda9ef5406c1cfb4$var$TagListItem, {
51
- key: item.id,
52
- item: item,
53
- onSelect: handleClick,
54
- active: modifiers.active,
55
- selected: modifiers.active
56
- });
57
- }
58
- });
59
- }
60
-
61
-
62
- export {$fda9ef5406c1cfb4$export$d8660660a589068c as OmniboxSelector};
63
- //# sourceMappingURL=feedback-components.ad9f284e.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;AAAA;;CAEC;;;;;AAUD,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,8EAAK;AAa5B,MAAM,oCAAoD,CAAC;IACzD,sCAAsC,GACtC,IAAI,UAAE,MAAM,YAAE,QAAQ,aAAE,SAAS,YAAE,QAAQ,QAAE,IAAI,YAAE,QAAQ,EAAE,GAAG;IAChE,YAAY,CAAA,GAAA,iBAAS,EAAE;gBAAE;kBAAQ;IAAS,GAAG;IAC7C,MAAM,UAAU,IAAM,SAAS;IAE/B,OAAO,wBACL,sBACA;QACE,KAAK,KAAK,EAAE;mBACZ;iBACA;IACF,GACA;QACE,wBAAE,cAAc;YAAE,OAAO;gBAAE,iBAAiB,KAAK,KAAK;YAAC;QAAE;QACzD,wBAAE,YAAY,CAAC,GAAG,KAAK,IAAI;KAC5B;AAEL;AAYO,SAAS,0CAAmB,KAAsB;IACvD,2CAA2C,GAC3C,MAAM,gBAAE,YAAY,SAAE,KAAK,UAAE,MAAM,WAAE,OAAO,iBAAE,aAAa,EAAE,GAAG;IAEhE,OAAO,wBAAE,CAAA,GAAA,cAAM,GAAG;QAChB,cAAc;eACd;uBACA;QACA,eAAe;gBACf;iBACA;QACA,cAAa,IAAO,EAAE,eAAE,WAAW,aAAE,SAAS,EAAE;YAC9C,OAAO,wBAAE,mCAAa;gBACpB,KAAK,KAAK,EAAE;sBACZ;gBACA,UAAU;gBACV,QAAQ,UAAU,MAAM;gBACxB,UAAU,UAAU,MAAM;YAC5B;QACF;IACF;AACF","sources":["packages/feedback-components/src/feedback/type-selector/index.ts"],"sourcesContent":["/**\n * Entity type selector\n */\n\nimport styles from \"./main.module.sass\";\nimport hyper from \"@macrostrat/hyper\";\n\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Omnibar, OmnibarProps } from \"@blueprintjs/select\";\nimport \"@blueprintjs/select/lib/css/blueprint-select.css\";\n\nconst h = hyper.styled(styles);\n\ninterface TagItemProps<T> {\n selected: boolean;\n active: boolean;\n className?: string;\n item: T;\n\n onSelect(t: T): void;\n\n children?: React.ReactElement;\n}\n\nconst TagListItem: React.ComponentType<TagItemProps<T>> = (props) => {\n /** Render a tag for the omnibox list */\n let { active, selected, className, onSelect, item, children } = props;\n className = classNames({ active, selected }, className);\n const onClick = () => onSelect(item);\n\n return h(\n \"div.item-container\",\n {\n key: item.id,\n className,\n onClick,\n },\n [\n h(\"div.swatch\", { style: { backgroundColor: item.color } }),\n h(\"div.item\", {}, item.name),\n ],\n );\n};\n\ntype BoxLifecycleProps<T> = Pick<OmnibarProps<T>, \"onClose\" | \"isOpen\">;\n\ninterface OmniboxProps<T> extends BoxLifecycleProps<T> {\n items: T[];\n selectedItem: T;\n onSelectItem: (t: T) => void;\n onQueryChange: (query: string) => void;\n listItemComponent?: React.ComponentType<TagItemProps<T>>;\n}\n\nexport function OmniboxSelector<T>(props: OmniboxProps<T>) {\n /** A general omnibox for annotation types */\n const { onSelectItem, items, isOpen, onClose, onQueryChange } = props;\n\n return h(Omnibar, {\n onItemSelect: onSelectItem,\n items,\n onQueryChange,\n resetOnSelect: false,\n isOpen,\n onClose,\n itemRenderer(item: T, { handleClick, modifiers }) {\n return h(TagListItem, {\n key: item.id,\n item,\n onSelect: handleClick,\n active: modifiers.active,\n selected: modifiers.active,\n });\n },\n });\n}\n"],"names":[],"version":3,"file":"feedback-components.ad9f284e.js.map"}
@@ -1,204 +0,0 @@
1
- import "./feedback-components.e273ed5b.css";
2
- import $9y0hV$feedbackcomponents6d32ee91js from "./feedback-components.6d32ee91.js";
3
- import $9y0hV$classnames from "classnames";
4
- import {Tag as $9y0hV$Tag} from "@blueprintjs/core";
5
- import {asChromaColor as $9y0hV$asChromaColor} from "@macrostrat/color-utils";
6
- import $9y0hV$macrostrathyper from "@macrostrat/hyper";
7
- import {useDarkMode as $9y0hV$useDarkMode} from "@macrostrat/ui-components";
8
-
9
-
10
- function $parcel$interopDefault(a) {
11
- return a && a.__esModule ? a.default : a;
12
- }
13
-
14
-
15
-
16
-
17
-
18
-
19
- const $03d8811e9c9b360d$var$h = (0, $9y0hV$macrostrathyper).styled((0, ($parcel$interopDefault($9y0hV$feedbackcomponents6d32ee91js))));
20
- function $03d8811e9c9b360d$export$c4b91360064ad200(entities, parent) {
21
- let highlights = [];
22
- let parents = [];
23
- if (parent != null) parents = [
24
- parent.id,
25
- ...parent.parents ?? []
26
- ];
27
- for (const entity of entities){
28
- highlights.push({
29
- start: entity.indices[0],
30
- end: entity.indices[1],
31
- text: entity.name,
32
- backgroundColor: entity.type?.color,
33
- tag: entity.type?.name ?? "lith",
34
- id: entity.id,
35
- parents: parents,
36
- match: entity.match
37
- });
38
- highlights.push(...$03d8811e9c9b360d$export$c4b91360064ad200(entity.children ?? [], entity));
39
- }
40
- return highlights;
41
- }
42
- function $03d8811e9c9b360d$export$d60b563f571177d(extractionData, models, entityTypes) {
43
- return {
44
- ...extractionData,
45
- model: models.get(extractionData.model_id),
46
- entities: extractionData.entities?.map((d)=>$03d8811e9c9b360d$var$enhanceEntity(d, entityTypes))
47
- };
48
- }
49
- function $03d8811e9c9b360d$export$35baa338324d8550(baseColor, options = {}) {
50
- const _baseColor = (0, $9y0hV$asChromaColor)(baseColor ?? "#fff");
51
- const { highlighted: highlighted = true, inDarkMode: inDarkMode = (0, $9y0hV$useDarkMode)().isEnabled, active: active = false } = options;
52
- let mixAmount = highlighted ? 0.8 : 0.5;
53
- let backgroundAlpha = highlighted ? 0.8 : 0.2;
54
- if (active) {
55
- mixAmount = 1;
56
- backgroundAlpha = 1;
57
- }
58
- const mixTarget = "black";
59
- const color = active ? "#000" : _baseColor.mix(mixTarget, mixAmount).hex();
60
- const borderColor = highlighted ? _baseColor.mix(mixTarget, mixAmount / 1.1).hex() : "transparent";
61
- let backgroundColor = active ? _baseColor.alpha(backgroundAlpha).hex() : $03d8811e9c9b360d$var$normalizeColor(_baseColor.alpha(backgroundAlpha).hex());
62
- // handle white backgrounds in light mode
63
- if (!inDarkMode && backgroundColor === "#ffffff") backgroundColor = "#f0f0f0";
64
- return {
65
- color: color,
66
- backgroundColor: backgroundColor,
67
- boxSizing: "border-box",
68
- borderStyle: "solid",
69
- borderColor: borderColor,
70
- borderWidth: "1.5px",
71
- fontWeight: active ? "bold" : "normal",
72
- fontSize: "0.9em"
73
- };
74
- }
75
- function $03d8811e9c9b360d$var$enhanceEntity(entity, entityTypes) {
76
- return {
77
- ...entity,
78
- type: $03d8811e9c9b360d$var$addColor(entityTypes.get(entity.type), entity.match != null),
79
- children: entity.children?.map((d)=>$03d8811e9c9b360d$var$enhanceEntity(d, entityTypes))
80
- };
81
- }
82
- function $03d8811e9c9b360d$var$addColor(entityType, match = false) {
83
- const color = (0, $9y0hV$asChromaColor)(entityType.color ?? "#fff").brighten(match ? 1 : 2);
84
- return {
85
- ...entityType,
86
- color: color.css()
87
- };
88
- }
89
- function $03d8811e9c9b360d$export$2b07158757c249e0({ data: data, entityTypes: entityTypes, matchComponent: matchComponent }) {
90
- const highlights = $03d8811e9c9b360d$export$c4b91360064ad200(data.entities, null);
91
- return $03d8811e9c9b360d$var$h("div", [
92
- $03d8811e9c9b360d$var$h("p", $03d8811e9c9b360d$var$h($03d8811e9c9b360d$var$HighlightedText, {
93
- text: data.paragraph_text,
94
- highlights: highlights
95
- })),
96
- $03d8811e9c9b360d$var$h($03d8811e9c9b360d$export$4eb2a0ce903ce967, {
97
- data: data.model
98
- }),
99
- $03d8811e9c9b360d$var$h("ul.entities", data.entities.map((d)=>$03d8811e9c9b360d$var$h($03d8811e9c9b360d$var$ExtractionInfo, {
100
- data: d,
101
- matchComponent: matchComponent
102
- })))
103
- ]);
104
- }
105
- function $03d8811e9c9b360d$export$4eb2a0ce903ce967({ data: data }) {
106
- if (!data) return null;
107
- return $03d8811e9c9b360d$var$h("p.model-name", [
108
- "Model: ",
109
- $03d8811e9c9b360d$var$h("code.bp5-code", data.name)
110
- ]);
111
- }
112
- function $03d8811e9c9b360d$export$117e56c71b172cde({ data: data, highlighted: highlighted = true, active: active = false, onClickType: onClickType, matchComponent: matchComponent = null }) {
113
- const { name: name, type: type, match: match } = data;
114
- const className = (0, $9y0hV$classnames)({
115
- matched: match != null,
116
- type: data.type?.name ?? "lith"
117
- }, "entity");
118
- const style = $03d8811e9c9b360d$export$35baa338324d8550(type?.color, {
119
- highlighted: highlighted,
120
- active: active
121
- });
122
- let _matchLink = null;
123
- if (match != null && matchComponent != null) _matchLink = $03d8811e9c9b360d$var$h(matchComponent, {
124
- data: match
125
- });
126
- return $03d8811e9c9b360d$var$h((0, $9y0hV$Tag), {
127
- style: style,
128
- className: className
129
- }, [
130
- $03d8811e9c9b360d$var$h("span.entity-name", name),
131
- " ",
132
- $03d8811e9c9b360d$var$h("code.entity-type.bp5-code", {
133
- onClick (evt) {
134
- if (active && onClickType != null) {
135
- onClickType(type);
136
- evt.stopPropagation();
137
- }
138
- }
139
- }, [
140
- type?.name,
141
- _matchLink
142
- ])
143
- ]);
144
- }
145
- function $03d8811e9c9b360d$var$ExtractionInfo({ data: data, matchComponent: matchComponent = null }) {
146
- const children = data.children ?? [];
147
- return $03d8811e9c9b360d$var$h("li.entity-row", [
148
- $03d8811e9c9b360d$var$h($03d8811e9c9b360d$export$117e56c71b172cde, {
149
- data: data,
150
- matchComponent: matchComponent
151
- }),
152
- $03d8811e9c9b360d$var$h.if(children.length > 0)([
153
- $03d8811e9c9b360d$var$h("ul.children", children.map((d)=>$03d8811e9c9b360d$var$h($03d8811e9c9b360d$var$ExtractionInfo, {
154
- data: d,
155
- matchComponent: matchComponent
156
- })))
157
- ])
158
- ]);
159
- }
160
- function $03d8811e9c9b360d$var$HighlightedText(props) {
161
- const { text: text, highlights: highlights = [] } = props;
162
- const parts = [];
163
- let start = 0;
164
- const sortedHighlights = highlights.sort((a, b)=>a.start - b.start);
165
- const deconflictedHighlights = sortedHighlights.map((highlight, i)=>{
166
- if (i === 0) return highlight;
167
- const prev = sortedHighlights[i - 1];
168
- if (highlight.start < prev.end) highlight.start = prev.end;
169
- return highlight;
170
- });
171
- for (const highlight of deconflictedHighlights){
172
- const { start: s, end: end, ...rest } = highlight;
173
- parts.push(text.slice(start, s));
174
- parts.push($03d8811e9c9b360d$var$h("span.highlight", {
175
- style: rest
176
- }, text.slice(s, end)));
177
- start = end;
178
- }
179
- parts.push(text.slice(start));
180
- return $03d8811e9c9b360d$var$h("span", parts);
181
- }
182
- function $03d8811e9c9b360d$var$normalizeColor(hex8) {
183
- const background = (0, $9y0hV$useDarkMode)().isEnabled ? "#000000" : "#ffffff";
184
- const r = parseInt(hex8.slice(1, 3), 16);
185
- const g = parseInt(hex8.slice(3, 5), 16);
186
- const b = parseInt(hex8.slice(5, 7), 16);
187
- const a = parseInt(hex8.slice(7, 9), 16) / 255;
188
- const bgR = parseInt(background.slice(1, 3), 16);
189
- const bgG = parseInt(background.slice(3, 5), 16);
190
- const bgB = parseInt(background.slice(5, 7), 16);
191
- const blend = (fg, bg)=>Math.round((1 - a) * bg + a * fg);
192
- const blendedR = blend(r, bgR);
193
- const blendedG = blend(g, bgG);
194
- const blendedB = blend(b, bgB);
195
- return "#" + blendedR.toString(16).padStart(2, "0") + blendedG.toString(16).padStart(2, "0") + blendedB.toString(16).padStart(2, "0");
196
- }
197
- function $03d8811e9c9b360d$var$isHighlighted(id, selectedNodes, nodes) {
198
- if (selectedNodes?.length === 0) return true;
199
- return selectedNodes?.includes(id) || nodes?.some((node)=>selectedNodes?.includes(node.id) && node.children.some((child)=>child.id === id));
200
- }
201
-
202
-
203
- export {$03d8811e9c9b360d$export$c4b91360064ad200 as buildHighlights, $03d8811e9c9b360d$export$d60b563f571177d as enhanceData, $03d8811e9c9b360d$export$35baa338324d8550 as getTagStyle, $03d8811e9c9b360d$export$2b07158757c249e0 as ExtractionContext, $03d8811e9c9b360d$export$4eb2a0ce903ce967 as ModelInfo, $03d8811e9c9b360d$export$117e56c71b172cde as EntityTag};
204
- //# sourceMappingURL=feedback-components.ba79c0ef.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/feedback-components/src/extractions/index.ts"],"sourcesContent":["import styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { Tag } from \"@blueprintjs/core\";\nimport type { Entity, EntityExt, Highlight, EntityType } from \"./types\";\nimport { CSSProperties } from \"react\";\nimport { asChromaColor } from \"@macrostrat/color-utils\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDarkMode } from \"@macrostrat/ui-components\";\n\nexport type { Entity, EntityExt };\n\nconst h = hyper.styled(styles);\n\nexport function buildHighlights(\n entities: EntityExt[],\n parent: EntityExt | null,\n): Highlight[] {\n let highlights = [];\n let parents = [];\n if (parent != null) {\n parents = [parent.id, ...(parent.parents ?? [])];\n }\n\n for (const entity of entities) {\n highlights.push({\n start: entity.indices[0],\n end: entity.indices[1],\n text: entity.name,\n backgroundColor: entity.type?.color,\n tag: entity.type?.name ?? \"lith\",\n id: entity.id,\n parents,\n match: entity.match,\n });\n highlights.push(...buildHighlights(entity.children ?? [], entity));\n }\n return highlights;\n}\n\nexport function enhanceData(extractionData, models, entityTypes) {\n return {\n ...extractionData,\n model: models.get(extractionData.model_id),\n entities: extractionData.entities?.map((d) =>\n enhanceEntity(d, entityTypes),\n ),\n };\n}\n\nexport function getTagStyle(\n baseColor: string,\n options: {\n highlighted?: boolean;\n inDarkMode?: boolean;\n active?: boolean;\n showMatches?: boolean;\n } = {},\n): CSSProperties {\n const _baseColor = asChromaColor(baseColor ?? \"#fff\");\n const {\n highlighted = true,\n inDarkMode = useDarkMode().isEnabled,\n active = false,\n } = options;\n\n let mixAmount = highlighted ? 0.8 : 0.5;\n let backgroundAlpha = highlighted ? 0.8 : 0.2;\n\n if (active) {\n mixAmount = 1;\n backgroundAlpha = 1;\n }\n\n const mixTarget = \"black\";\n\n const color = active ? \"#000\" : _baseColor.mix(mixTarget, mixAmount).hex();\n const borderColor = highlighted\n ? _baseColor.mix(mixTarget, mixAmount / 1.1).hex()\n : \"transparent\";\n\n let backgroundColor = active\n ? _baseColor.alpha(backgroundAlpha).hex()\n : normalizeColor(_baseColor.alpha(backgroundAlpha).hex());\n\n // handle white backgrounds in light mode\n if (!inDarkMode && backgroundColor === \"#ffffff\") {\n backgroundColor = \"#f0f0f0\";\n }\n\n return {\n color,\n backgroundColor,\n boxSizing: \"border-box\",\n borderStyle: \"solid\",\n borderColor,\n borderWidth: \"1.5px\",\n fontWeight: active ? \"bold\" : \"normal\",\n fontSize: \"0.9em\",\n };\n}\n\nfunction enhanceEntity(\n entity: Entity,\n entityTypes: Map<number, EntityType>,\n): EntityExt {\n return {\n ...entity,\n type: addColor(entityTypes.get(entity.type), entity.match != null),\n children: entity.children?.map((d) => enhanceEntity(d, entityTypes)),\n };\n}\n\nfunction addColor(entityType: EntityType, match = false) {\n const color = asChromaColor(entityType.color ?? \"#fff\").brighten(\n match ? 1 : 2,\n );\n\n return { ...entityType, color: color.css() };\n}\n\nexport function ExtractionContext({\n data,\n entityTypes,\n matchComponent,\n}: {\n data: any;\n entityTypes: Map<number, EntityType>;\n matchComponent: MatchComponent;\n}) {\n const highlights = buildHighlights(data.entities, null);\n\n return h(\"div\", [\n h(\"p\", h(HighlightedText, { text: data.paragraph_text, highlights })),\n h(ModelInfo, { data: data.model }),\n h(\n \"ul.entities\",\n data.entities.map((d) => h(ExtractionInfo, { data: d, matchComponent })),\n ),\n ]);\n}\n\nexport function ModelInfo({ data }) {\n if (!data) return null;\n return h(\"p.model-name\", [\"Model: \", h(\"code.bp5-code\", data.name)]);\n}\n\nexport type MatchComponent = (props: { data: any }) => any;\n\ntype EntityTagProps = {\n data: EntityExt;\n highlighted?: boolean;\n active?: boolean;\n onClickType?: (type: EntityType) => void;\n matchComponent?: MatchComponent;\n};\n\nexport function EntityTag({\n data,\n highlighted = true,\n active = false,\n onClickType,\n matchComponent = null,\n}: EntityTagProps) {\n const { name, type, match } = data;\n\n const className = classNames(\n {\n matched: match != null,\n type: data.type?.name ?? \"lith\",\n },\n \"entity\",\n );\n\n const style = getTagStyle(type?.color, { highlighted, active });\n\n let _matchLink = null;\n if (match != null && matchComponent != null) {\n _matchLink = h(matchComponent, { data: match });\n }\n\n return h(Tag, { style, className }, [\n h(\"span.entity-name\", name),\n \" \",\n h(\n \"code.entity-type.bp5-code\",\n {\n onClick(evt) {\n if (active && onClickType != null) {\n onClickType(type);\n evt.stopPropagation();\n }\n },\n },\n [type?.name, _matchLink],\n ),\n ]);\n}\n\nfunction ExtractionInfo({\n data,\n matchComponent = null,\n}: {\n data: EntityExt;\n matchComponent: MatchComponent;\n}) {\n const children = data.children ?? [];\n\n return h(\"li.entity-row\", [\n h(EntityTag, { data, matchComponent }),\n h.if(children.length > 0)([\n h(\n \"ul.children\",\n children.map((d) => h(ExtractionInfo, { data: d, matchComponent })),\n ),\n ]),\n ]);\n}\n\nfunction HighlightedText(props: { text: string; highlights: Highlight[] }) {\n const { text, highlights = [] } = props;\n const parts = [];\n let start = 0;\n\n const sortedHighlights = highlights.sort((a, b) => a.start - b.start);\n const deconflictedHighlights = sortedHighlights.map((highlight, i) => {\n if (i === 0) return highlight;\n const prev = sortedHighlights[i - 1];\n if (highlight.start < prev.end) {\n highlight.start = prev.end;\n }\n return highlight;\n });\n\n for (const highlight of deconflictedHighlights) {\n const { start: s, end, ...rest } = highlight;\n parts.push(text.slice(start, s));\n parts.push(h(\"span.highlight\", { style: rest }, text.slice(s, end)));\n start = end;\n }\n parts.push(text.slice(start));\n return h(\"span\", parts);\n}\n\nfunction normalizeColor(hex8) {\n const background = useDarkMode().isEnabled ? \"#000000\" : \"#ffffff\";\n\n const r = parseInt(hex8.slice(1, 3), 16);\n const g = parseInt(hex8.slice(3, 5), 16);\n const b = parseInt(hex8.slice(5, 7), 16);\n const a = parseInt(hex8.slice(7, 9), 16) / 255;\n\n const bgR = parseInt(background.slice(1, 3), 16);\n const bgG = parseInt(background.slice(3, 5), 16);\n const bgB = parseInt(background.slice(5, 7), 16);\n\n const blend = (fg, bg) => Math.round((1 - a) * bg + a * fg);\n\n const blendedR = blend(r, bgR);\n const blendedG = blend(g, bgG);\n const blendedB = blend(b, bgB);\n\n return (\n \"#\" +\n blendedR.toString(16).padStart(2, \"0\") +\n blendedG.toString(16).padStart(2, \"0\") +\n blendedB.toString(16).padStart(2, \"0\")\n );\n}\n\nfunction isHighlighted(id: number, selectedNodes: number[], nodes: any[]) {\n if (selectedNodes?.length === 0) return true;\n return (\n selectedNodes?.includes(id) ||\n nodes?.some(\n (node) =>\n selectedNodes?.includes(node.id) &&\n node.children.some((child) => child.id === id),\n )\n );\n}\n"],"names":[],"version":3,"file":"feedback-components.ba79c0ef.js.map"}
@@ -1,17 +0,0 @@
1
- .WofFTa_item-container {
2
- align-items: center;
3
- gap: 1em;
4
- min-height: 40px;
5
- display: flex;
6
- }
7
-
8
- .WofFTa_item-container.WofFTa_selected {
9
- background-color: var(--panel-background-color);
10
- }
11
-
12
- .WofFTa_swatch {
13
- border-radius: 4px;
14
- width: 30px;
15
- height: 30px;
16
- }
17
- /*# sourceMappingURL=feedback-components.bf93773c.css.map */
@@ -1 +0,0 @@
1
- {"mappings":"AAAA;;;;;;;AAME;;;;AAGF","sources":["packages/feedback-components/src/feedback/type-selector/main.module.sass"],"sourcesContent":[".item-container\n min-height: 40px\n display: flex\n align-items: center\n gap: 1em\n\n &.selected\n background-color: var(--panel-background-color)\n\n.swatch\n width: 30px\n height: 30px\n border-radius: 4px\n"],"names":[],"version":3,"file":"feedback-components.bf93773c.css.map"}
@@ -1,148 +0,0 @@
1
- import {treeToGraph as $b79bf29960412ca7$export$8d9dbb7a64bf2a5e} from "./feedback-components.fa847634.js";
2
- import "./feedback-components.d769ffa5.css";
3
- import $phGch$feedbackcomponentse702eecejs from "./feedback-components.e702eece.js";
4
- import {getTagStyle as $03d8811e9c9b360d$export$35baa338324d8550} from "./feedback-components.ba79c0ef.js";
5
- import $phGch$macrostrathyper from "@macrostrat/hyper";
6
- import {forceSimulation as $phGch$forceSimulation, forceLink as $phGch$forceLink, forceManyBody as $phGch$forceManyBody, forceCenter as $phGch$forceCenter, forceCollide as $phGch$forceCollide} from "d3-force";
7
- import {useState as $phGch$useState, useEffect as $phGch$useEffect} from "react";
8
- import {Spinner as $phGch$Spinner, Switch as $phGch$Switch} from "@blueprintjs/core";
9
- import {ErrorBoundary as $phGch$ErrorBoundary} from "@macrostrat/ui-components";
10
-
11
-
12
- function $parcel$interopDefault(a) {
13
- return a && a.__esModule ? a.default : a;
14
- }
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
- const $ff8c3e7f2bc22925$var$h = (0, $phGch$macrostrathyper).styled((0, ($parcel$interopDefault($phGch$feedbackcomponentse702eecejs))));
24
- function $ff8c3e7f2bc22925$export$6a7fe3ef90e8d566(props) {
25
- // A graph view with react-flow
26
- // Get positions of nodes using force simulation
27
- const { tree: tree, width: width, height: height, dispatch: dispatch, selectedNodes: selectedNodes, viewOnly: viewOnly } = props;
28
- const [nodes, setNodes] = (0, $phGch$useState)(null);
29
- const [links, setLinks] = (0, $phGch$useState)(null);
30
- const [showLabels, setShowLabels] = (0, $phGch$useState)(false);
31
- (0, $phGch$useEffect)(()=>{
32
- const { nodes: nodes, edges: edges } = (0, $b79bf29960412ca7$export$8d9dbb7a64bf2a5e)(tree);
33
- const nodesMap = new Map(nodes.map((d)=>[
34
- d.id,
35
- d
36
- ]));
37
- const links = edges.map((d)=>{
38
- return {
39
- source: nodesMap.get(d.source),
40
- target: nodesMap.get(d.dest),
41
- strength: 1
42
- };
43
- });
44
- const simulation = (0, $phGch$forceSimulation)(nodes).force("link", (0, $phGch$forceLink)(links)).force("charge", (0, $phGch$forceManyBody)().strength(-50)).force("center", (0, $phGch$forceCenter)(width / 2, height / 2)).force("collide", (0, $phGch$forceCollide)().radius(20)).on("tick", ()=>{
45
- // Update the positions of the nodes
46
- // setNodes(nodes);
47
- console.log("Simulation tick");
48
- }).on("end", ()=>{
49
- // Update the positions of the nodes
50
- setNodes(nodes);
51
- setLinks(links);
52
- });
53
- return ()=>{
54
- simulation.stop();
55
- };
56
- }, [
57
- tree,
58
- width,
59
- height
60
- ]);
61
- if (nodes == null || links == null) return $ff8c3e7f2bc22925$var$h((0, $phGch$Spinner));
62
- console.log("Graph", nodes, links, selectedNodes);
63
- return $ff8c3e7f2bc22925$var$h((0, $phGch$ErrorBoundary), {
64
- description: "An error occurred while rendering the graph view."
65
- }, $ff8c3e7f2bc22925$var$h("div.graph-view", {
66
- style: {
67
- width: width,
68
- height: height
69
- }
70
- }, [
71
- $ff8c3e7f2bc22925$var$h((0, $phGch$Switch), {
72
- className: "show-labels-switch",
73
- label: "Show Labels",
74
- checked: showLabels,
75
- onChange: (e)=>setShowLabels(e.target.checked)
76
- }),
77
- $ff8c3e7f2bc22925$var$h("svg", {
78
- width: width,
79
- height: height
80
- }, [
81
- $ff8c3e7f2bc22925$var$h("g.links", links.map((d)=>{
82
- return $ff8c3e7f2bc22925$var$h("line", {
83
- x1: d.source.x,
84
- y1: d.source.y,
85
- x2: d.target.x,
86
- y2: d.target.y,
87
- stroke: "black"
88
- });
89
- })),
90
- $ff8c3e7f2bc22925$var$h("g.nodes", nodes.map((d)=>{
91
- const active = selectedNodes.includes(d.id);
92
- const stroke = active ? "white" : "black";
93
- const highlighted = $ff8c3e7f2bc22925$var$isHighlighted(d.id, selectedNodes, nodes);
94
- const style = (0, $03d8811e9c9b360d$export$35baa338324d8550)(d.color, {
95
- highlighted: highlighted,
96
- active: active
97
- });
98
- return $ff8c3e7f2bc22925$var$h("g", [
99
- $ff8c3e7f2bc22925$var$h("circle", {
100
- cx: d.x,
101
- cy: d.y,
102
- r: 8,
103
- fill: style.backgroundColor || "blue",
104
- onClick: (e)=>{
105
- e.stopPropagation();
106
- if (e.ctrlKey || e.metaKey || selectedNodes[0] === d.id && selectedNodes.length === 1) {
107
- // Toggle selection on ctrl/cmd click or when node is only selected node
108
- e.stopPropagation();
109
- dispatch({
110
- type: "toggle-node-selected",
111
- payload: {
112
- ids: [
113
- d.id
114
- ]
115
- }
116
- });
117
- } else dispatch({
118
- type: "select-node",
119
- payload: {
120
- ids: [
121
- d.id
122
- ]
123
- }
124
- });
125
- },
126
- className: active ? "selected" : "" + (viewOnly ? "" : " clickable"),
127
- stroke: stroke,
128
- strokeWidth: 2
129
- }),
130
- $ff8c3e7f2bc22925$var$h.if(showLabels)("text", {
131
- x: d.x + 10,
132
- y: d.y + 4,
133
- className: "node-label"
134
- }, d.name || `Node ${d.id}`),
135
- $ff8c3e7f2bc22925$var$h.if(!showLabels)("title", d.name || `Node ${d.id}`)
136
- ]);
137
- }))
138
- ])
139
- ]));
140
- }
141
- function $ff8c3e7f2bc22925$var$isHighlighted(id, selectedNodes, nodes) {
142
- if (selectedNodes.length === 0) return true;
143
- return selectedNodes.includes(id) || nodes.some((node)=>selectedNodes.includes(node.id) && node.children.some((child)=>child.id === id));
144
- }
145
-
146
-
147
- export {$ff8c3e7f2bc22925$export$6a7fe3ef90e8d566 as GraphView};
148
- //# sourceMappingURL=feedback-components.c6e2c296.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/feedback-components/src/feedback/graph.ts"],"sourcesContent":["import { TreeData } from \"./types\";\nimport { treeToGraph } from \"./edit-state\";\nimport styles from \"./feedback.module.sass\";\nimport hyper from \"@macrostrat/hyper\";\nimport {\n forceSimulation,\n SimulationNodeDatum,\n SimulationLinkDatum,\n forceCenter,\n forceLink,\n forceManyBody,\n forceCollide,\n} from \"d3-force\";\nimport { useEffect, useState } from \"react\";\nimport { Spinner, Switch } from \"@blueprintjs/core\";\nimport { ErrorBoundary } from \"@macrostrat/ui-components\";\nimport { getTagStyle } from \"../extractions\";\n\nconst h = hyper.styled(styles);\n\nexport function GraphView(props: {\n tree: TreeData[];\n width: number;\n height: number;\n dispatch: (action: any) => void;\n selectedNodes: number[];\n viewOnly?: boolean;\n}) {\n // A graph view with react-flow\n // Get positions of nodes using force simulation\n const { tree, width, height, dispatch, selectedNodes, viewOnly } = props;\n\n const [nodes, setNodes] = useState<SimulationNodeDatum[]>(null);\n const [links, setLinks] = useState<SimulationLinkDatum[]>(null);\n const [showLabels, setShowLabels] = useState(false);\n\n useEffect(() => {\n const { nodes, edges } = treeToGraph(tree);\n\n const nodesMap = new Map<number, SimulationNodeDatum>(\n nodes.map((d) => [d.id, d]),\n );\n\n const links = edges.map((d) => {\n return {\n source: nodesMap.get(d.source),\n target: nodesMap.get(d.dest),\n strength: 1,\n };\n });\n\n const simulation = forceSimulation(nodes)\n .force(\"link\", forceLink(links))\n .force(\"charge\", forceManyBody().strength(-50))\n .force(\"center\", forceCenter(width / 2, height / 2))\n .force(\"collide\", forceCollide().radius(20))\n .on(\"tick\", () => {\n // Update the positions of the nodes\n // setNodes(nodes);\n console.log(\"Simulation tick\");\n })\n .on(\"end\", () => {\n // Update the positions of the nodes\n setNodes(nodes);\n setLinks(links);\n });\n\n return () => {\n simulation.stop();\n };\n }, [tree, width, height]);\n\n if (nodes == null || links == null) {\n return h(Spinner);\n }\n\n console.log(\"Graph\", nodes, links, selectedNodes);\n\n return h(\n ErrorBoundary,\n {\n description: \"An error occurred while rendering the graph view.\",\n },\n h(\"div.graph-view\", { style: { width, height } }, [\n h(Switch, {\n className: \"show-labels-switch\",\n label: \"Show Labels\",\n checked: showLabels,\n onChange: (e) => setShowLabels(e.target.checked),\n }),\n h(\"svg\", { width, height }, [\n h(\n \"g.links\",\n links.map((d) => {\n return h(\"line\", {\n x1: d.source.x,\n y1: d.source.y,\n x2: d.target.x,\n y2: d.target.y,\n stroke: \"black\",\n });\n }),\n ),\n h(\n \"g.nodes\",\n nodes.map((d) => {\n const active = selectedNodes.includes(d.id);\n const stroke = active ? \"white\" : \"black\";\n const highlighted = isHighlighted(d.id, selectedNodes, nodes);\n const style = getTagStyle(d.color, { highlighted, active });\n\n return h(\"g\", [\n h(\"circle\", {\n cx: d.x,\n cy: d.y,\n r: 8,\n fill: style.backgroundColor || \"blue\",\n onClick: (e) => {\n e.stopPropagation();\n if (\n e.ctrlKey ||\n e.metaKey ||\n (selectedNodes[0] === d.id && selectedNodes.length === 1)\n ) {\n // Toggle selection on ctrl/cmd click or when node is only selected node\n e.stopPropagation();\n dispatch({\n type: \"toggle-node-selected\",\n payload: { ids: [d.id] },\n });\n } else {\n dispatch({\n type: \"select-node\",\n payload: { ids: [d.id] },\n });\n }\n },\n className: active\n ? \"selected\"\n : \"\" + (viewOnly ? \"\" : \" clickable\"),\n stroke,\n strokeWidth: 2,\n }),\n h.if(showLabels)(\n \"text\",\n {\n x: d.x + 10,\n y: d.y + 4,\n className: \"node-label\",\n },\n d.name || `Node ${d.id}`,\n ),\n h.if(!showLabels)(\"title\", d.name || `Node ${d.id}`),\n ]);\n }),\n ),\n ]),\n ]),\n );\n}\n\nfunction isHighlighted(id: number, selectedNodes: number[], nodes: TreeData[]) {\n if (selectedNodes.length === 0) return true;\n return (\n selectedNodes.includes(id) ||\n nodes.some(\n (node) =>\n selectedNodes.includes(node.id) &&\n node.children.some((child) => child.id === id),\n )\n );\n}\n"],"names":[],"version":3,"file":"feedback-components.c6e2c296.js.map"}