@macrostrat/feedback-components 1.1.4 → 1.1.5
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.
- package/CHANGELOG.md +5 -0
- package/dist/esm/{feedback-components.7e879290.js → feedback-components.03f08dc7.js} +10 -9
- package/dist/esm/feedback-components.03f08dc7.js.map +1 -0
- package/dist/esm/{feedback-components.204f7d2b.js → feedback-components.06a79c6a.js} +46 -21
- package/dist/esm/feedback-components.06a79c6a.js.map +1 -0
- package/dist/esm/{feedback-components.1c15f37f.js → feedback-components.3f59f2a5.js} +14 -97
- package/dist/esm/feedback-components.3f59f2a5.js.map +1 -0
- package/dist/esm/{feedback-components.d55a1d18.js → feedback-components.4cbd249a.js} +5 -5
- package/dist/esm/{feedback-components.d55a1d18.js.map → feedback-components.4cbd249a.js.map} +1 -1
- package/dist/esm/{feedback-components.d591ffec.css → feedback-components.5a8f0185.css} +11 -5
- package/dist/esm/feedback-components.5a8f0185.css.map +1 -0
- package/dist/esm/{feedback-components.f6605b83.js → feedback-components.6cec1102.js} +79 -46
- package/dist/esm/feedback-components.6cec1102.js.map +1 -0
- package/dist/esm/{feedback-components.00434ff7.js → feedback-components.7c2fe400.js} +7 -1
- package/dist/esm/feedback-components.7c2fe400.js.map +1 -0
- package/dist/esm/{feedback-components.28ba71be.js → feedback-components.939a3a9f.js} +7 -7
- package/dist/esm/feedback-components.939a3a9f.js.map +1 -0
- package/dist/esm/{feedback-components.fd8ac9ca.js → feedback-components.e53837d9.js} +114 -96
- package/dist/esm/feedback-components.e53837d9.js.map +1 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/node/{feedback-components.2f740fc7.js → feedback-components.3888aa2a.js} +2 -2
- package/dist/node/{feedback-components.2f740fc7.js.map → feedback-components.3888aa2a.js.map} +1 -1
- package/dist/node/feedback-components.388de4ac.js +2 -0
- package/dist/node/feedback-components.388de4ac.js.map +1 -0
- package/dist/node/feedback-components.827f8d80.js +2 -0
- package/dist/node/feedback-components.827f8d80.js.map +1 -0
- package/dist/node/feedback-components.9e1d4e4c.js +2 -0
- package/dist/node/feedback-components.9e1d4e4c.js.map +1 -0
- package/dist/node/feedback-components.b8da3bce.js +2 -0
- package/dist/node/feedback-components.b8da3bce.js.map +1 -0
- package/dist/node/feedback-components.c31cf831.js +2 -0
- package/dist/node/feedback-components.c31cf831.js.map +1 -0
- package/dist/node/feedback-components.db4d0a14.css +2 -0
- package/dist/node/feedback-components.db4d0a14.css.map +1 -0
- package/dist/node/feedback-components.f91331e9.js +2 -0
- package/dist/node/feedback-components.f91331e9.js.map +1 -0
- package/dist/node/feedback-components.fc0395df.js +2 -0
- package/dist/node/feedback-components.fc0395df.js.map +1 -0
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +2 -2
- package/src/feedback/edit-state.ts +96 -49
- package/src/feedback/feedback.module.sass +9 -5
- package/src/feedback/graph.ts +5 -2
- package/src/feedback/index.ts +29 -4
- package/src/feedback/matches.ts +123 -85
- package/src/feedback/text-visualizer.ts +32 -86
- package/src/feedback/typelist.ts +13 -4
- package/dist/esm/feedback-components.00434ff7.js.map +0 -1
- package/dist/esm/feedback-components.1c15f37f.js.map +0 -1
- package/dist/esm/feedback-components.204f7d2b.js.map +0 -1
- package/dist/esm/feedback-components.28ba71be.js.map +0 -1
- package/dist/esm/feedback-components.7e879290.js.map +0 -1
- package/dist/esm/feedback-components.d591ffec.css.map +0 -1
- package/dist/esm/feedback-components.f6605b83.js.map +0 -1
- package/dist/esm/feedback-components.fd8ac9ca.js.map +0 -1
- package/dist/node/feedback-components.0eef8d0c.js +0 -2
- package/dist/node/feedback-components.0eef8d0c.js.map +0 -1
- package/dist/node/feedback-components.41db283a.js +0 -2
- package/dist/node/feedback-components.41db283a.js.map +0 -1
- package/dist/node/feedback-components.69d0ccd0.js +0 -2
- package/dist/node/feedback-components.69d0ccd0.js.map +0 -1
- package/dist/node/feedback-components.a7b43cfa.js +0 -2
- package/dist/node/feedback-components.a7b43cfa.js.map +0 -1
- package/dist/node/feedback-components.b9317f9c.js +0 -2
- package/dist/node/feedback-components.b9317f9c.js.map +0 -1
- package/dist/node/feedback-components.e096504e.css +0 -2
- package/dist/node/feedback-components.e096504e.css.map +0 -1
- package/dist/node/feedback-components.e140ac86.js +0 -2
- package/dist/node/feedback-components.e140ac86.js.map +0 -1
- package/dist/node/feedback-components.f8373b58.js +0 -2
- package/dist/node/feedback-components.f8373b58.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICAA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,E,E,C,E,E,E,W,I,E,A,G,E,G,E,E,mB,I,E,A,G,E,G,E,E,Y,I,E,A,G,E,G,E,E,Y,I,E,A,G,E,G,E,E,kB,I,E,A,G,E,G,E,E,gB,I,E,A,G,E,G,E,E,c,I,E,A,G,E,G,E,E,e,I,E,A,G,E,G,E,E,qB,I,E,A,G,E,G,E,E,qB,I,E,A,G,E,G,E,E,gB,I,E,A,G,E,G,E,E,wB,I,E,A,G,E,G,E,E,a,I,E,A,G,E,G,E,E,Y,I,E,A,G,E,G,E,E,Q,I,E,A,G,E,G,E,E,kB,I,E,A,G,E,G,E,E,a,I,E,A,G,E,G,E,E,c,I,E,A,G,E,G,E,E,O,I,E,A,G,E,G,E,E,a,I,E,A,G,E,G,E,E,oB,I,E,A,G,E,G,E,E,e,I,E,A,G,E,G,E,E,W,I,E,A,G,E,G,E,E,iB,I,E,A,G,E,G,E,E,c,I,E,A,G,E,G,E,E,Q,I,E,A,G,E,G,E,E,iB,I,E,A,G,E,G,E,E,Y,I,E,A,G,E,G,E,E,W,I,E,A,G,E,GA5BA,EAA6B,kBAC7B,EAAqC,0BACrC,EAA8B,mBAC9B,EAA8B,mBAC9B,EAAoC,yBACpC,EAAkC,uBAClC,EAAgC,qBAChC,EAAiC,sBACjC,EAAuC,4BACvC,EAAuC,4BACvC,EAAkC,uBAClC,EAA0C,+BAC1C,EAA+B,oBAC/B,EAA8B,mBAC9B,EAA0B,eAC1B,EAAoC,yBACpC,EAA+B,oBAC/B,EAAgC,qBAChC,EAAyB,cACzB,EAA+B,oBAC/B,EAAsC,2BACtC,EAAiC,sBACjC,EAA6B,kBAC7B,EAAmC,wBACnC,EAAgC,qBAChC,EAA0B,eAC1B,EAAmC,wBACnC,EAA8B,mBAC9B,EAA6B,yB,K,O","sources":["<anon>","packages/feedback-components/src/feedback/feedback.module.sass"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $01ca2f1f49a3a114$exports = {};\n\n$parcel$export($01ca2f1f49a3a114$exports, \"add-type\", () => $01ca2f1f49a3a114$export$cb889aaddfa2926c, (v) => $01ca2f1f49a3a114$export$cb889aaddfa2926c = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"add-type-overlay\", () => $01ca2f1f49a3a114$export$5f8f750fd71deeed, (v) => $01ca2f1f49a3a114$export$5f8f750fd71deeed = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"clickable\", () => $01ca2f1f49a3a114$export$60d5655c6babb2a0, (v) => $01ca2f1f49a3a114$export$60d5655c6babb2a0 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"close-btn\", () => $01ca2f1f49a3a114$export$f5032a039312e50b, (v) => $01ca2f1f49a3a114$export$f5032a039312e50b = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"control-content\", () => $01ca2f1f49a3a114$export$42e8b5293e69631e, (v) => $01ca2f1f49a3a114$export$42e8b5293e69631e = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"control-panel\", () => $01ca2f1f49a3a114$export$a0a23f31d5562853, (v) => $01ca2f1f49a3a114$export$a0a23f31d5562853 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"description\", () => $01ca2f1f49a3a114$export$6d59db4903f20f7d, (v) => $01ca2f1f49a3a114$export$6d59db4903f20f7d = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"entity-panel\", () => $01ca2f1f49a3a114$export$38f2cd12e45697e, (v) => $01ca2f1f49a3a114$export$38f2cd12e45697e = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"feedback-component\", () => $01ca2f1f49a3a114$export$579bd45c78bf5510, (v) => $01ca2f1f49a3a114$export$579bd45c78bf5510 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"feedback-container\", () => $01ca2f1f49a3a114$export$23889d205b405f6e, (v) => $01ca2f1f49a3a114$export$23889d205b405f6e = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"feedback-text\", () => $01ca2f1f49a3a114$export$890489be1870bed5, (v) => $01ca2f1f49a3a114$export$890489be1870bed5 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"feedback-text-wrapper\", () => $01ca2f1f49a3a114$export$6bd0fd0a746c88f, (v) => $01ca2f1f49a3a114$export$6bd0fd0a746c88f = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"form-group\", () => $01ca2f1f49a3a114$export$55a1f87a143fb302, (v) => $01ca2f1f49a3a114$export$55a1f87a143fb302 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"highlight\", () => $01ca2f1f49a3a114$export$e4043f67d36cbb26, (v) => $01ca2f1f49a3a114$export$e4043f67d36cbb26 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"icons\", () => $01ca2f1f49a3a114$export$df03f54e09e486fa, (v) => $01ca2f1f49a3a114$export$df03f54e09e486fa = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"match-container\", () => $01ca2f1f49a3a114$export$864d1dadc1dd3f57, (v) => $01ca2f1f49a3a114$export$864d1dadc1dd3f57 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"match-item\", () => $01ca2f1f49a3a114$export$a7bcc8ced81f8d07, (v) => $01ca2f1f49a3a114$export$a7bcc8ced81f8d07 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"match-label\", () => $01ca2f1f49a3a114$export$be49c8f7a120829f, (v) => $01ca2f1f49a3a114$export$be49c8f7a120829f = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"node\", () => $01ca2f1f49a3a114$export$35059013cd4a06db, (v) => $01ca2f1f49a3a114$export$35059013cd4a06db = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"node-label\", () => $01ca2f1f49a3a114$export$75d14899fb692bb6, (v) => $01ca2f1f49a3a114$export$75d14899fb692bb6 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"overlay-container\", () => $01ca2f1f49a3a114$export$6a1093e41947f68e, (v) => $01ca2f1f49a3a114$export$6a1093e41947f68e = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"page-wrapper\", () => $01ca2f1f49a3a114$export$7c414e944018fb15, (v) => $01ca2f1f49a3a114$export$7c414e944018fb15 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"selected\", () => $01ca2f1f49a3a114$export$d90250155de6d7e7, (v) => $01ca2f1f49a3a114$export$d90250155de6d7e7 = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"selection-tree\", () => $01ca2f1f49a3a114$export$3ae1b51693c80a9c, (v) => $01ca2f1f49a3a114$export$3ae1b51693c80a9c = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"text-inputs\", () => $01ca2f1f49a3a114$export$bc7581b048bdc9d, (v) => $01ca2f1f49a3a114$export$bc7581b048bdc9d = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"title\", () => $01ca2f1f49a3a114$export$fb184b623420d9be, (v) => $01ca2f1f49a3a114$export$fb184b623420d9be = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"type-container\", () => $01ca2f1f49a3a114$export$b2d17fca990bb66c, (v) => $01ca2f1f49a3a114$export$b2d17fca990bb66c = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"type-list\", () => $01ca2f1f49a3a114$export$915fe2ca68846e4c, (v) => $01ca2f1f49a3a114$export$915fe2ca68846e4c = v);\n$parcel$export($01ca2f1f49a3a114$exports, \"type-tag\", () => $01ca2f1f49a3a114$export$5e5acbc770fb0e4, (v) => $01ca2f1f49a3a114$export$5e5acbc770fb0e4 = v);\nvar $01ca2f1f49a3a114$export$cb889aaddfa2926c;\nvar $01ca2f1f49a3a114$export$5f8f750fd71deeed;\nvar $01ca2f1f49a3a114$export$60d5655c6babb2a0;\nvar $01ca2f1f49a3a114$export$f5032a039312e50b;\nvar $01ca2f1f49a3a114$export$42e8b5293e69631e;\nvar $01ca2f1f49a3a114$export$a0a23f31d5562853;\nvar $01ca2f1f49a3a114$export$6d59db4903f20f7d;\nvar $01ca2f1f49a3a114$export$38f2cd12e45697e;\nvar $01ca2f1f49a3a114$export$579bd45c78bf5510;\nvar $01ca2f1f49a3a114$export$23889d205b405f6e;\nvar $01ca2f1f49a3a114$export$890489be1870bed5;\nvar $01ca2f1f49a3a114$export$6bd0fd0a746c88f;\nvar $01ca2f1f49a3a114$export$55a1f87a143fb302;\nvar $01ca2f1f49a3a114$export$e4043f67d36cbb26;\nvar $01ca2f1f49a3a114$export$df03f54e09e486fa;\nvar $01ca2f1f49a3a114$export$864d1dadc1dd3f57;\nvar $01ca2f1f49a3a114$export$a7bcc8ced81f8d07;\nvar $01ca2f1f49a3a114$export$be49c8f7a120829f;\nvar $01ca2f1f49a3a114$export$35059013cd4a06db;\nvar $01ca2f1f49a3a114$export$75d14899fb692bb6;\nvar $01ca2f1f49a3a114$export$6a1093e41947f68e;\nvar $01ca2f1f49a3a114$export$7c414e944018fb15;\nvar $01ca2f1f49a3a114$export$d90250155de6d7e7;\nvar $01ca2f1f49a3a114$export$3ae1b51693c80a9c;\nvar $01ca2f1f49a3a114$export$bc7581b048bdc9d;\nvar $01ca2f1f49a3a114$export$fb184b623420d9be;\nvar $01ca2f1f49a3a114$export$b2d17fca990bb66c;\nvar $01ca2f1f49a3a114$export$915fe2ca68846e4c;\nvar $01ca2f1f49a3a114$export$5e5acbc770fb0e4;\n$01ca2f1f49a3a114$export$cb889aaddfa2926c = `QoX8-W_add-type`;\n$01ca2f1f49a3a114$export$5f8f750fd71deeed = `QoX8-W_add-type-overlay`;\n$01ca2f1f49a3a114$export$60d5655c6babb2a0 = `QoX8-W_clickable`;\n$01ca2f1f49a3a114$export$f5032a039312e50b = `QoX8-W_close-btn`;\n$01ca2f1f49a3a114$export$42e8b5293e69631e = `QoX8-W_control-content`;\n$01ca2f1f49a3a114$export$a0a23f31d5562853 = `QoX8-W_control-panel`;\n$01ca2f1f49a3a114$export$6d59db4903f20f7d = `QoX8-W_description`;\n$01ca2f1f49a3a114$export$38f2cd12e45697e = `QoX8-W_entity-panel`;\n$01ca2f1f49a3a114$export$579bd45c78bf5510 = `QoX8-W_feedback-component`;\n$01ca2f1f49a3a114$export$23889d205b405f6e = `QoX8-W_feedback-container`;\n$01ca2f1f49a3a114$export$890489be1870bed5 = `QoX8-W_feedback-text`;\n$01ca2f1f49a3a114$export$6bd0fd0a746c88f = `QoX8-W_feedback-text-wrapper`;\n$01ca2f1f49a3a114$export$55a1f87a143fb302 = `QoX8-W_form-group`;\n$01ca2f1f49a3a114$export$e4043f67d36cbb26 = `QoX8-W_highlight`;\n$01ca2f1f49a3a114$export$df03f54e09e486fa = `QoX8-W_icons`;\n$01ca2f1f49a3a114$export$864d1dadc1dd3f57 = `QoX8-W_match-container`;\n$01ca2f1f49a3a114$export$a7bcc8ced81f8d07 = `QoX8-W_match-item`;\n$01ca2f1f49a3a114$export$be49c8f7a120829f = `QoX8-W_match-label`;\n$01ca2f1f49a3a114$export$35059013cd4a06db = `QoX8-W_node`;\n$01ca2f1f49a3a114$export$75d14899fb692bb6 = `QoX8-W_node-label`;\n$01ca2f1f49a3a114$export$6a1093e41947f68e = `QoX8-W_overlay-container`;\n$01ca2f1f49a3a114$export$7c414e944018fb15 = `QoX8-W_page-wrapper`;\n$01ca2f1f49a3a114$export$d90250155de6d7e7 = `QoX8-W_selected`;\n$01ca2f1f49a3a114$export$3ae1b51693c80a9c = `QoX8-W_selection-tree`;\n$01ca2f1f49a3a114$export$bc7581b048bdc9d = `QoX8-W_text-inputs`;\n$01ca2f1f49a3a114$export$fb184b623420d9be = `QoX8-W_title`;\n$01ca2f1f49a3a114$export$b2d17fca990bb66c = `QoX8-W_type-container`;\n$01ca2f1f49a3a114$export$915fe2ca68846e4c = `QoX8-W_type-list`;\n$01ca2f1f49a3a114$export$5e5acbc770fb0e4 = `QoX8-W_type-tag`;\n\n\nexport {$01ca2f1f49a3a114$exports as default};\n//# sourceMappingURL=feedback-components.c31cf831.js.map\n",null],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$01ca2f1f49a3a114$export$cb889aaddfa2926c","$01ca2f1f49a3a114$export$5f8f750fd71deeed","$01ca2f1f49a3a114$export$60d5655c6babb2a0","$01ca2f1f49a3a114$export$f5032a039312e50b","$01ca2f1f49a3a114$export$42e8b5293e69631e","$01ca2f1f49a3a114$export$a0a23f31d5562853","$01ca2f1f49a3a114$export$6d59db4903f20f7d","$01ca2f1f49a3a114$export$38f2cd12e45697e","$01ca2f1f49a3a114$export$579bd45c78bf5510","$01ca2f1f49a3a114$export$23889d205b405f6e","$01ca2f1f49a3a114$export$890489be1870bed5","$01ca2f1f49a3a114$export$6bd0fd0a746c88f","$01ca2f1f49a3a114$export$55a1f87a143fb302","$01ca2f1f49a3a114$export$e4043f67d36cbb26","$01ca2f1f49a3a114$export$df03f54e09e486fa","$01ca2f1f49a3a114$export$864d1dadc1dd3f57","$01ca2f1f49a3a114$export$a7bcc8ced81f8d07","$01ca2f1f49a3a114$export$be49c8f7a120829f","$01ca2f1f49a3a114$export$35059013cd4a06db","$01ca2f1f49a3a114$export$75d14899fb692bb6","$01ca2f1f49a3a114$export$6a1093e41947f68e","$01ca2f1f49a3a114$export$7c414e944018fb15","$01ca2f1f49a3a114$export$d90250155de6d7e7","$01ca2f1f49a3a114$export$3ae1b51693c80a9c","$01ca2f1f49a3a114$export$bc7581b048bdc9d","$01ca2f1f49a3a114$export$fb184b623420d9be","$01ca2f1f49a3a114$export$b2d17fca990bb66c","$01ca2f1f49a3a114$export$915fe2ca68846e4c","$01ca2f1f49a3a114$export$5e5acbc770fb0e4","$01ca2f1f49a3a114$exports","default"],"version":3,"file":"feedback-components.c31cf831.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root{--text-line-height:3em;--main-extra-width:200px}.QoX8-W_page-wrapper{flex-direction:row;align-items:flex-start;gap:2em;display:flex;position:relative}.QoX8-W_feedback-container{flex:4}.QoX8-W_control-panel{flex:1;height:auto}.QoX8-W_control-content{position:sticky;top:0}.QoX8-W_feedback-component{width:800px;position:relative}.QoX8-W_feedback-component>svg{width:800px}.QoX8-W_node{cursor:pointer}circle{border:1px solid #000}.QoX8-W_selected{border:1px solid #fff}.QoX8-W_feedback-text{margin-bottom:2em}.QoX8-W_entity-panel{background:var(--panel-secondary-background-color);width:calc(100% - 2em);min-height:100px;max-height:600px;box-shadow:0 0 0 1px var(--panel-border-color)inset;border-radius:4px;flex:1;padding:1em;position:relative}.QoX8-W_selection-tree{margin:-1em 0;padding:1em 0}.QoX8-W_type-list{grid-template-rows:repeat(10,auto);grid-auto-flow:column;gap:.2em;display:grid}.QoX8-W_type-list .QoX8-W_type-tag{border-radius:.2em;padding:.2em .5em}.QoX8-W_description{max-width:300px;padding:.5em}mark{cursor:pointer;border-radius:.2em;color:#000!important}[role=treeitem]{width:auto!important}.QoX8-W_highlight{zIndex:10;border-radius:.2em;padding:.2em 0;position:relative}.QoX8-W_clickable{cursor:pointer}.QoX8-W_feedback-text-wrapper{z-index:0;line-height:var(--text-line-height);position:relative;overflow:visible}.QoX8-W_type-container{justify-content:space-between;align-items:center;column-gap:1em;display:flex}.QoX8-W_add-type{cursor:pointer;justify-content:space-between;align-items:center;padding:0 .5em;display:flex}.QoX8-W_add-type p{margin:0}.QoX8-W_overlay-container{justify-content:center;align-items:center;width:100vw;height:80vh;display:flex}.QoX8-W_overlay-container .QoX8-W_add-type-overlay{background-color:var(--tertiary-background);border-radius:.2em;flex-direction:column;gap:1em;padding:.5em 1em;display:flex}.QoX8-W_overlay-container .QoX8-W_add-type-overlay .QoX8-W_title{justify-content:space-between;align-items:center;display:flex}.QoX8-W_overlay-container .QoX8-W_add-type-overlay h2{margin:0}.QoX8-W_overlay-container .QoX8-W_add-type-overlay .QoX8-W_form-group{gap:3em;display:flex}.QoX8-W_overlay-container .QoX8-W_add-type-overlay .QoX8-W_form-group .QoX8-W_text-inputs{flex-direction:column;gap:1em;display:flex}.QoX8-W_icons{gap:.25em;display:flex}.QoX8-W_node-label{fill:var(--text-emphasized-color);fontSize:10px;pointerEvents:none}.QoX8-W_match-item{color:var(--text-emphasized-color);cursor:pointer;border-radius:.2em;margin-bottom:4px;padding:.1em .2em}.QoX8-W_match-item .QoX8-W_match-label{color:var(--text-color);margin:0}.QoX8-W_match-container{justify-content:space-between;align-items:center;display:flex}.QoX8-W_match-container .QoX8-W_close-btn{cursor:pointer}
|
|
2
|
+
/*# sourceMappingURL=feedback-components.db4d0a14.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"ACAA,sDAIA,sGAOA,kCAGA,yCAIA,8CAIA,yDAIE,2CAGF,4BAGA,6BAGA,uCAGA,wCAGA,4OAYA,mDAIA,iGAME,wEAIF,iDAIA,4DAKA,qCAGA,gFAMA,iCAGA,+GAMA,oGAMA,6GAOE,4BAGF,yGAOE,8KAQE,+HAKA,+DAGA,2FAIE,qIAKN,qCAIA,sFAKA,4HAOE,wEAIF,sFAKE","sources":["feedback-components.db4d0a14.css","packages/feedback-components/src/feedback/feedback.module.sass"],"sourcesContent":[":root {\n --text-line-height: 3em;\n --main-extra-width: 200px;\n}\n\n.QoX8-W_page-wrapper {\n flex-direction: row;\n align-items: flex-start;\n gap: 2em;\n display: flex;\n position: relative;\n}\n\n.QoX8-W_feedback-container {\n flex: 4;\n}\n\n.QoX8-W_control-panel {\n flex: 1;\n height: auto;\n}\n\n.QoX8-W_control-content {\n position: sticky;\n top: 0;\n}\n\n.QoX8-W_feedback-component {\n width: 800px;\n position: relative;\n}\n\n.QoX8-W_feedback-component > svg {\n width: 800px;\n}\n\n.QoX8-W_node {\n cursor: pointer;\n}\n\ncircle {\n border: 1px solid #000;\n}\n\n.QoX8-W_selected {\n border: 1px solid #fff;\n}\n\n.QoX8-W_feedback-text {\n margin-bottom: 2em;\n}\n\n.QoX8-W_entity-panel {\n background: var(--panel-secondary-background-color);\n width: calc(100% - 2em);\n min-height: 100px;\n max-height: 600px;\n box-shadow: 0 0 0 1px var(--panel-border-color) inset;\n border-radius: 4px;\n flex: 1;\n padding: 1em;\n position: relative;\n}\n\n.QoX8-W_selection-tree {\n margin: -1em 0;\n padding: 1em 0;\n}\n\n.QoX8-W_type-list {\n grid-template-rows: repeat(10, auto);\n grid-auto-flow: column;\n gap: .2em;\n display: grid;\n}\n\n.QoX8-W_type-list .QoX8-W_type-tag {\n border-radius: .2em;\n padding: .2em .5em;\n}\n\n.QoX8-W_description {\n max-width: 300px;\n padding: .5em;\n}\n\nmark {\n cursor: pointer;\n border-radius: .2em;\n color: #000 !important;\n}\n\n[role=\"treeitem\"] {\n width: auto !important;\n}\n\n.QoX8-W_highlight {\n zIndex: 10;\n border-radius: .2em;\n padding: .2em 0;\n position: relative;\n}\n\n.QoX8-W_clickable {\n cursor: pointer;\n}\n\n.QoX8-W_feedback-text-wrapper {\n z-index: 0;\n line-height: var(--text-line-height);\n position: relative;\n overflow: visible;\n}\n\n.QoX8-W_type-container {\n justify-content: space-between;\n align-items: center;\n column-gap: 1em;\n display: flex;\n}\n\n.QoX8-W_add-type {\n cursor: pointer;\n justify-content: space-between;\n align-items: center;\n padding: 0 .5em;\n display: flex;\n}\n\n.QoX8-W_add-type p {\n margin: 0;\n}\n\n.QoX8-W_overlay-container {\n justify-content: center;\n align-items: center;\n width: 100vw;\n height: 80vh;\n display: flex;\n}\n\n.QoX8-W_overlay-container .QoX8-W_add-type-overlay {\n background-color: var(--tertiary-background);\n border-radius: .2em;\n flex-direction: column;\n gap: 1em;\n padding: .5em 1em;\n display: flex;\n}\n\n.QoX8-W_overlay-container .QoX8-W_add-type-overlay .QoX8-W_title {\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n\n.QoX8-W_overlay-container .QoX8-W_add-type-overlay h2 {\n margin: 0;\n}\n\n.QoX8-W_overlay-container .QoX8-W_add-type-overlay .QoX8-W_form-group {\n gap: 3em;\n display: flex;\n}\n\n.QoX8-W_overlay-container .QoX8-W_add-type-overlay .QoX8-W_form-group .QoX8-W_text-inputs {\n flex-direction: column;\n gap: 1em;\n display: flex;\n}\n\n.QoX8-W_icons {\n gap: .25em;\n display: flex;\n}\n\n.QoX8-W_node-label {\n fill: var(--text-emphasized-color);\n fontSize: 10px;\n pointerEvents: none;\n}\n\n.QoX8-W_match-item {\n color: var(--text-emphasized-color);\n cursor: pointer;\n border-radius: .2em;\n margin-bottom: 4px;\n padding: .1em .2em;\n}\n\n.QoX8-W_match-item .QoX8-W_match-label {\n color: var(--text-color);\n margin: 0;\n}\n\n.QoX8-W_match-container {\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n\n.QoX8-W_match-container .QoX8-W_close-btn {\n cursor: pointer;\n}\n/*# sourceMappingURL=feedback-components.db4d0a14.css.map */\n",":root\n --text-line-height: 3em\n --main-extra-width: 200px\n\n.page-wrapper\n display: flex\n flex-direction: row\n position: relative\n gap: 2em\n align-items: flex-start // makes control-content lose stick\n\n.feedback-container\n flex: 4\n\n.control-panel\n flex: 1\n height: auto\n\n.control-content\n position: sticky\n top: 0\n\n.feedback-component\n position: relative\n width: 800px\n\n & > svg\n width: 800px\n\n.node\n cursor: pointer\n\ncircle\n border: 1px solid black\n\n.selected\n border: 1px solid white\n \n.feedback-text\n margin-bottom: 2em\n\n.entity-panel\n position: relative\n max-height: 600px\n width: calc(100% - 2em)\n flex: 1\n min-height: 100px\n padding: 1em\n background: var(--panel-secondary-background-color)\n border-radius: 4px\n // Inset box shadow\n box-shadow: 0 0 0 1px var(--panel-border-color) inset\n\n.selection-tree\n margin: -1em 0\n padding: 1em 0\n \n.type-list\n display: grid\n grid-auto-flow: column\n grid-template-rows: repeat(10, auto)\n gap: 0.2em\n\n .type-tag\n padding: .2em .5em\n border-radius: .2em\n\n.description\n max-width: 300px\n padding: .5em\n\nmark\n border-radius: .2em\n cursor: pointer\n color: black !important\n\n[role=\"treeitem\"]\n width: auto !important\n\n.highlight\n padding: .2em 0\n border-radius: .2em\n position: relative\n zIndex: 10\n\n.clickable\n cursor: pointer\n\n.feedback-text-wrapper \n position: relative\n z-index: 0\n overflow: visible\n line-height: var(--text-line-height)\n\n.type-container\n display: flex\n justify-content: space-between\n align-items: center\n column-gap: 1em\n\n.add-type\n cursor: pointer\n display: flex\n justify-content: space-between\n padding: 0 .5em\n align-items: center\n\n p\n margin: 0\n\n.overlay-container\n height: 80vh\n width: 100vw\n display: flex\n justify-content: center\n align-items: center\n\n .add-type-overlay\n background-color: var(--tertiary-background)\n padding: .5em 1em\n display: flex\n flex-direction: column\n gap: 1em\n border-radius: .2em\n\n .title\n display: flex\n justify-content: space-between\n align-items: center\n\n h2\n margin: 0\n\n .form-group\n display: flex\n gap: 3em\n\n .text-inputs\n display: flex\n flex-direction: column\n gap: 1em\n\n.icons\n display: flex\n gap: .25em\n\n.node-label\n fill: var(--text-emphasized-color)\n fontSize: 10px\n pointerEvents: none\n\n.match-item\n color: var(--text-emphasized-color)\n padding: .1em .2em\n border-radius: .2em\n margin-bottom: 4px\n cursor: pointer\n \n .match-label\n margin: 0\n color: var(--text-color)\n\n.match-container\n display: flex\n justify-content: space-between\n align-items: center\n\n .close-btn\n cursor: pointer\n"],"names":[],"version":3,"file":"feedback-components.db4d0a14.css.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./feedback-components.c31cf831.js";import{Divider as a,Switch as t,Icon as e,Overlay2 as i}from"@blueprintjs/core";import{Select as n}from"@blueprintjs/select";import r from"@macrostrat/hyper";import{useState as l}from"react";import{useAPIResult as o,SaveButton as c,DataField as d,JSONView as s}from"@macrostrat/ui-components";import{LithologyTag as m}from"@macrostrat/data-components";var p=globalThis,h={},u={},v=p.parcelRequirea149;null==v&&((v=function(a){if(a in h)return h[a].exports;if(a in u){var t=u[a];delete u[a];var e={id:a,exports:{}};return h[a]=e,t.call(e.exports,e,e.exports),e.exports}var i=Error("Cannot find module '"+a+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(a,t){u[a]=t},p.parcelRequirea149=v),v.register;var _=v("9wFEx");let y=r.styled(_&&_.__esModule?_.default:_);function f({match:i,setMatchLinks:n,matchLinks:r,selectedNodes:o,tree:c,dispatch:d}){var s,m;let p,[h,u]=l(!1),v=null;return 1===o.length&&(s=c,m=o[0],p=null,s.forEach(function a(t){if(t.id===m)return p=t,!0;if(Array.isArray(t.children)){for(let e of t.children)if(a(e))return!0}return!1}),v=p),y.if(r)("div",[y(a),y(t,{label:"Match mode",checked:null!==i,onChange:a=>{n(null===i?r||{}:null),d({type:"toggle-match-mode"})}}),y.if(v&&i)(b,{data:v?.match,matchLinks:r,dispatch:d,nodeId:v?.id}),y.if(1==o.length&&!v?.match&&i)("div.add-match-container",[y("div.add-type",{onClick:()=>{u(!0)}},[y("p.add-match-text","Add match"),y(e,{icon:"plus"})]),y(k,{isOpen:h,setOverlayOpen:u,nodeMatch:v,dispatch:d})])])}function k({isOpen:a,setOverlayOpen:t,nodeMatch:r,dispatch:d}){let[s,m]=l(r?.name||""),[p,h]=l(y("div","Select a match")),[u,v]=l(!0),[_,f]=l({}),k=o("https://dev.macrostrat.org/api/pg/type_lookup?name=ilike.*"+s+"*"),b=k?.map(a=>y(g,{data:a,setPayload:f}));return y(i,{isOpen:a},y("div.overlay-container",y("div.add-type-overlay",[y("h2.title",["Add match with "+r.name,y(e,{icon:"cross",className:"close-icon",onClick:()=>{t(!1)},style:{cursor:"pointer",color:"red"}})]),y("div.form-group",[y(n,{items:b||[],itemRenderer:(a,{handleClick:t})=>y("div.match-item",{onClick:t},a),onItemSelect:a=>{v(!1),h(a)},onQueryChange:a=>m(a),popoverProps:{minimal:!0},query:s,placeholder:"Enter match name"},p)]),y(c,{className:"save-btn",small:!0,onClick:()=>{d({type:"add-match",payload:{id:r.id,payload:_}}),t(!1)},disabled:u},"Save changes")])))}function b({data:a,matchLinks:t,dispatch:i,nodeId:n}){return y.if(a)("div.match-container",[g({data:a,matchLinks:t}),y(e,{icon:"cross",color:"red",className:"close-btn",onClick:()=>{i({type:"remove-match",payload:{id:n}})}})])}function g({data:a,matchLinks:t,setPayload:e}){if(a&&0!==Object.keys(a).length)return a.lith_id||a?.type==="lith"?y("div",{onClick:()=>{"lith"===a.type&&e({lith_id:a.id,name:a.name})}},y(d,{className:"match-item",label:"Stratigraphic name",value:y(m,{data:{name:a.name,id:a.id,color:a.color},onClick:()=>window.open(t.strat_name+"/"+a.strat_name_id,"_blank")})})):a.strat_name_id||a?.type==="strat_name"?y("div",{onClick:()=>{"strat_name"===a.type&&e({strat_name_id:a.id,name:a.name})}},y(d,{className:"match-item",label:"Stratigraphic name",value:y(m,{data:{name:a.name,id:a.id,color:a.color},onClick:()=>window.open(t.strat_name+"/"+a.strat_name_id,"_blank")})})):a.lith_att_id||a?.type==="lith_att"?y("div",{onClick:()=>{"lith_att"===a.type&&e({lith_att_id:a.id,name:a.name})}},y(d,{className:"match-item",label:"Lithology attribute",value:y(m,{data:{name:a.name,id:a.lith_att_id},onClick:()=>window.open(t.lith_att+"/"+a.lith_att_id,"_blank")})})):a.int_id||a?.type==="interval"?y("div",{onClick:()=>{"interval"===a.type&&e({int_id:a.id,name:a.name})}},y(d,{label:"Interval",className:"match-item",value:y(m,{data:{name:a.name,id:a.id},onClick:()=>window.open(t.interval+"/"+a.int_id,"_blank")})})):y(s,{data:a})}export{f as Matches};
|
|
2
|
+
//# sourceMappingURL=feedback-components.f91331e9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,oD,A,Q,W,C,C,U,C,C,Q,C,C,Y,C,K,mB,A,Q,U,C,K,qB,A,Q,M,mB,A,Q,Y,C,K,O,A,Q,gB,C,C,c,C,C,a,C,C,Y,C,K,2B,A,Q,gB,C,K,6B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,SCUA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAEhB,SAAS,EAAQ,CAAA,MACtB,CAAK,CAAA,cACL,CAAa,CAAA,WACb,CAAU,CAAA,cACV,CAAa,CAAA,KACb,CAAI,CAAA,SACJ,CAAQ,CACT,MA+CyB,EAAM,EA9C9B,IA+CI,EA/CE,CAAC,EAAa,EAAe,CAAG,AAAA,EAAS,CAAA,GAE3C,EAAY,KAKhB,OAJI,AAAyB,IAAzB,EAAc,MAAM,GA2CA,EA1CO,EA0CD,EA1CO,CAAa,CAAC,EAAE,CA2CjD,EAAQ,KAeZ,EAAK,OAAO,CAbZ,SAAS,EAAS,CAAI,EACpB,GAAI,EAAK,EAAE,GAAK,EAEd,OADA,EAAQ,EACD,CAAA,EAET,GAAI,MAAM,OAAO,CAAC,EAAK,QAAQ,EAC7B,CAAA,IAAK,IAAM,KAAS,EAAK,QAAQ,CAC/B,GAAI,EAAS,GAAQ,MAAO,CAAA,CAC9B,CAEF,MAAO,CAAA,CACT,GAxDE,EA2DK,GAxDA,EAAE,EAAE,CAAC,GAAY,MAAO,CAC7B,EAAE,GACF,EAAE,EAAQ,CACR,MAAO,aACP,QAAS,AAAU,OAAV,EACT,SAAU,AAAC,IACT,EAAc,AAAU,OAAV,EAAiB,GAAc,CAAC,EAAI,MAClD,EAAS,CAAE,KAAM,mBAAoB,EACvC,CACF,GACA,EAAE,EAAE,CAAC,GAAa,GAAO,EAAO,CAC9B,KAAM,GAAW,MACjB,WAAY,EACZ,SAAA,EACA,OAAQ,GAAW,EACrB,GACA,EAAE,EAAE,CAAC,AAAwB,GAAxB,EAAc,MAAM,EAAS,CAAC,GAAW,OAAS,GACrD,0BACA,CACE,EACE,eACA,CACE,QAAS,KACP,EAAe,CAAA,EACjB,CACF,EACA,CAAC,EAAE,mBAAoB,aAAc,EAAE,EAAM,CAAE,KAAM,MAAO,GAAG,EAEjE,EAAE,EAAc,CACd,OAAQ,EACR,eAAA,EACA,UAAA,EACA,SAAA,CACF,GACD,EAEJ,CACH,CAsBA,SAAS,EAAa,CAAA,OAAE,CAAM,CAAA,eAAE,CAAc,CAAA,UAAE,CAAS,CAAA,SAAE,CAAQ,CAAE,EACnE,GAAM,CAAC,EAAY,EAAc,CAAG,AAAA,EAAS,GAAW,MAAQ,IAC1D,CAAC,EAAc,EAAgB,CAAG,AAAA,EAAS,EAAE,MAAO,mBACpD,CAAC,EAAU,EAAY,CAAG,AAAA,EAAS,CAAA,GACnC,CAAC,EAAS,EAAW,CAAG,AAAA,EAAS,CAAC,GAElC,EAAO,AAAA,EACX,6DACE,EACA,KAEE,EAAQ,GAAM,IAAI,AAAC,GAAS,EAAE,EAAU,CAAE,KAAA,EAAM,WAAA,CAAW,IAEjE,OAAO,EACL,EACA,CACE,OAAA,CACF,EACA,EACE,wBACA,EAAE,uBAAwB,CACxB,EAAE,WAAY,CACZ,kBAAoB,EAAU,IAAI,CAClC,EAAE,EAAM,CACN,KAAM,QACN,UAAW,aACX,QAAS,KACP,EAAe,CAAA,EACjB,EACA,MAAO,CAAE,OAAQ,UAAW,MAAO,KAAM,CAC3C,GACD,EACD,EAAE,iBAAkB,CAClB,EACE,EACA,CACE,MAAO,GAAS,EAAE,CAClB,aAAc,CAAC,EAAM,CAAA,YAAE,CAAW,CAAE,GAC3B,EAAE,iBAAkB,CAAE,QAAS,CAAY,EAAG,GAEvD,aAAc,AAAC,IACb,EAAY,CAAA,GACZ,EAAgB,EAClB,EACA,cAAe,AAAC,GAAU,EAAc,GACxC,aAAc,CAAE,QAAS,CAAA,CAAK,EAC9B,MAAO,EACP,YAAa,kBACf,EACA,GAEH,EACD,EACE,EACA,CACE,UAAW,WACX,MAAO,CAAA,EACP,QAAS,KAEP,EAAS,CACP,KAAM,YACN,QAAS,CAAE,GAAI,EAAU,EAAE,CAAE,QAAA,CAAQ,CACvC,GACA,EAAe,CAAA,EACjB,EACA,SAAA,CACF,EACA,gBAEH,GAGP,CAEA,SAAS,EAAM,CAAA,KAAE,CAAI,CAAA,WAAE,CAAU,CAAA,SAAE,CAAQ,CAAA,OAAE,CAAM,CAAE,EACnD,OAAO,EAAE,EAAE,CAAC,GAAM,sBAAuB,CACvC,EAAS,CAAE,KAAA,EAAM,WAAA,CAAW,GAC5B,EAAE,EAAM,CACN,KAAM,QACN,MAAO,MACP,UAAW,YACX,QAAS,KACP,EAAS,CAAE,KAAM,eAAgB,QAAS,CAAE,GAAI,CAAO,CAAE,EAC3D,CACF,GACD,CACH,CAQA,SAAS,EAAS,CAAA,KAAE,CAAI,CAAA,WAAE,CAAU,CAAA,WAAE,CAAU,CAAiB,EAC/D,GAAI,AAAC,GAAQ,AAA6B,IAA7B,OAAO,IAAI,CAAC,GAAM,MAAM,QAErC,AAAI,EAAK,OAAO,EAAI,GAAM,OAAS,OAC1B,EACL,MACA,CACE,QAAS,KACP,AAAc,SAAd,EAAK,IAAI,EACL,EAAW,CAAE,QAAS,EAAK,EAAE,CAAE,KAAM,EAAK,IAAI,AAAC,EAErD,CACF,EACA,EAAE,EAAW,CACX,UAAW,aACX,MAAO,qBACP,MAAO,EAAE,EAAc,CACrB,KAAM,CAAE,KAAM,EAAK,IAAI,CAAE,GAAI,EAAK,EAAE,CAAE,MAAO,EAAK,KAAK,AAAC,EACxD,QAAS,IACP,OAAO,IAAI,CACT,EAAW,UAAU,CAAG,IAAM,EAAK,aAAa,CAChD,SAEN,EACF,IAIA,EAAK,aAAa,EAAI,GAAM,OAAS,aAChC,EACL,MACA,CACE,QAAS,KACP,AAAc,eAAd,EAAK,IAAI,EACL,EAAW,CAAE,cAAe,EAAK,EAAE,CAAE,KAAM,EAAK,IAAI,AAAC,EAE3D,CACF,EACA,EAAE,EAAW,CACX,UAAW,aACX,MAAO,qBACP,MAAO,EAAE,EAAc,CACrB,KAAM,CAAE,KAAM,EAAK,IAAI,CAAE,GAAI,EAAK,EAAE,CAAE,MAAO,EAAK,KAAK,AAAC,EACxD,QAAS,IACP,OAAO,IAAI,CACT,EAAW,UAAU,CAAG,IAAM,EAAK,aAAa,CAChD,SAEN,EACF,IAIA,EAAK,WAAW,EAAI,GAAM,OAAS,WAC9B,EACL,MACA,CACE,QAAS,KACP,AAAc,aAAd,EAAK,IAAI,EACL,EAAW,CAAE,YAAa,EAAK,EAAE,CAAE,KAAM,EAAK,IAAI,AAAC,EAEzD,CACF,EACA,EAAE,EAAW,CACX,UAAW,aACX,MAAO,sBACP,MAAO,EAAE,EAAc,CACrB,KAAM,CAAE,KAAM,EAAK,IAAI,CAAE,GAAI,EAAK,WAAW,AAAC,EAC9C,QAAS,IACP,OAAO,IAAI,CAAC,EAAW,QAAQ,CAAG,IAAM,EAAK,WAAW,CAAE,SAC9D,EACF,IAIA,EAAK,MAAM,EAAI,GAAM,OAAS,WACzB,EACL,MACA,CACE,QAAS,KACP,AAAc,aAAd,EAAK,IAAI,EACL,EAAW,CAAE,OAAQ,EAAK,EAAE,CAAE,KAAM,EAAK,IAAI,AAAC,EAEpD,CACF,EACA,EAAE,EAAW,CACX,MAAO,WACP,UAAW,aACX,MAAO,EAAE,EAAc,CACrB,KAAM,CAAE,KAAM,EAAK,IAAI,CAAE,GAAI,EAAK,EAAE,AAAC,EACrC,QAAS,IACP,OAAO,IAAI,CAAC,EAAW,QAAQ,CAAG,IAAM,EAAK,MAAM,CAAE,SACzD,EACF,IAIG,EAAE,EAAU,CAAE,KAAA,CAAK,EAC5B,Q,K,O","sources":["<anon>","packages/feedback-components/src/feedback/matches.ts"],"sourcesContent":["import \"./feedback-components.c31cf831.js\";\nimport {Divider as $locXJ$Divider, Switch as $locXJ$Switch, Icon as $locXJ$Icon, Overlay2 as $locXJ$Overlay2} from \"@blueprintjs/core\";\nimport {Select as $locXJ$Select} from \"@blueprintjs/select\";\nimport $locXJ$macrostrathyper from \"@macrostrat/hyper\";\nimport {useState as $locXJ$useState} from \"react\";\nimport {useAPIResult as $locXJ$useAPIResult, SaveButton as $locXJ$SaveButton, DataField as $locXJ$DataField, JSONView as $locXJ$JSONView} from \"@macrostrat/ui-components\";\nimport {LithologyTag as $locXJ$LithologyTag} from \"@macrostrat/data-components\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\nvar $9wFEx = parcelRequire(\"9wFEx\");\n\n\n\n\nconst $7accc8160d3205c1$var$h = (0, $locXJ$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($9wFEx))));\nfunction $7accc8160d3205c1$export$6479cfcac2b87c0({ match: match, setMatchLinks: setMatchLinks, matchLinks: matchLinks, selectedNodes: selectedNodes, tree: tree, dispatch: dispatch }) {\n const [overlayOpen, setOverlayOpen] = (0, $locXJ$useState)(false);\n let nodeMatch = null;\n if (selectedNodes.length === 1) nodeMatch = $7accc8160d3205c1$var$findMatchingNode(tree, selectedNodes[0]);\n return $7accc8160d3205c1$var$h.if(matchLinks)(\"div\", [\n $7accc8160d3205c1$var$h((0, $locXJ$Divider)),\n $7accc8160d3205c1$var$h((0, $locXJ$Switch), {\n label: \"Match mode\",\n checked: match !== null,\n onChange: (e)=>{\n setMatchLinks(match === null ? matchLinks || {} : null);\n dispatch({\n type: \"toggle-match-mode\"\n });\n }\n }),\n $7accc8160d3205c1$var$h.if(nodeMatch && match)($7accc8160d3205c1$var$Match, {\n data: nodeMatch?.match,\n matchLinks: matchLinks,\n dispatch: dispatch,\n nodeId: nodeMatch?.id\n }),\n $7accc8160d3205c1$var$h.if(selectedNodes.length == 1 && !nodeMatch?.match && match)(\"div.add-match-container\", [\n $7accc8160d3205c1$var$h(\"div.add-type\", {\n onClick: ()=>{\n setOverlayOpen(true);\n }\n }, [\n $7accc8160d3205c1$var$h(\"p.add-match-text\", \"Add match\"),\n $7accc8160d3205c1$var$h((0, $locXJ$Icon), {\n icon: \"plus\"\n })\n ]),\n $7accc8160d3205c1$var$h($7accc8160d3205c1$var$MatchOverlay, {\n isOpen: overlayOpen,\n setOverlayOpen: setOverlayOpen,\n nodeMatch: nodeMatch,\n dispatch: dispatch\n })\n ])\n ]);\n}\nfunction $7accc8160d3205c1$var$findMatchingNode(tree, nodeId) {\n let match = null;\n function traverse(node) {\n if (node.id === nodeId) {\n match = node;\n return true;\n }\n if (Array.isArray(node.children)) for (const child of node.children){\n if (traverse(child)) return true;\n }\n return false;\n }\n tree.forEach(traverse);\n return match;\n}\nfunction $7accc8160d3205c1$var$MatchOverlay({ isOpen: isOpen, setOverlayOpen: setOverlayOpen, nodeMatch: nodeMatch, dispatch: dispatch }) {\n const [inputValue, setInputValue] = (0, $locXJ$useState)(nodeMatch?.name || \"\");\n const [selectedItem, setSelectedItem] = (0, $locXJ$useState)($7accc8160d3205c1$var$h(\"div\", \"Select a match\"));\n const [disabled, setDisabled] = (0, $locXJ$useState)(true);\n const [payload, setPayload] = (0, $locXJ$useState)({});\n const data = (0, $locXJ$useAPIResult)(\"https://dev.macrostrat.org/api/pg/type_lookup?name=ilike.*\" + inputValue + \"*\");\n const items = data?.map((data)=>$7accc8160d3205c1$var$h($7accc8160d3205c1$var$MatchTag, {\n data: data,\n setPayload: setPayload\n }));\n return $7accc8160d3205c1$var$h((0, $locXJ$Overlay2), {\n isOpen: isOpen\n }, $7accc8160d3205c1$var$h(\"div.overlay-container\", $7accc8160d3205c1$var$h(\"div.add-type-overlay\", [\n $7accc8160d3205c1$var$h(\"h2.title\", [\n \"Add match with \" + nodeMatch.name,\n $7accc8160d3205c1$var$h((0, $locXJ$Icon), {\n icon: \"cross\",\n className: \"close-icon\",\n onClick: ()=>{\n setOverlayOpen(false);\n },\n style: {\n cursor: \"pointer\",\n color: \"red\"\n }\n })\n ]),\n $7accc8160d3205c1$var$h(\"div.form-group\", [\n $7accc8160d3205c1$var$h((0, $locXJ$Select), {\n items: items || [],\n itemRenderer: (item, { handleClick: handleClick })=>{\n return $7accc8160d3205c1$var$h(\"div.match-item\", {\n onClick: handleClick\n }, item);\n },\n onItemSelect: (item)=>{\n setDisabled(false);\n setSelectedItem(item);\n },\n onQueryChange: (query)=>setInputValue(query),\n popoverProps: {\n minimal: true\n },\n query: inputValue,\n placeholder: \"Enter match name\"\n }, selectedItem)\n ]),\n $7accc8160d3205c1$var$h((0, $locXJ$SaveButton), {\n className: \"save-btn\",\n small: true,\n onClick: ()=>{\n // Handle save changes\n dispatch({\n type: \"add-match\",\n payload: {\n id: nodeMatch.id,\n payload: payload\n }\n });\n setOverlayOpen(false);\n },\n disabled: disabled\n }, \"Save changes\")\n ])));\n}\nfunction $7accc8160d3205c1$var$Match({ data: data, matchLinks: matchLinks, dispatch: dispatch, nodeId: nodeId }) {\n return $7accc8160d3205c1$var$h.if(data)(\"div.match-container\", [\n $7accc8160d3205c1$var$MatchTag({\n data: data,\n matchLinks: matchLinks\n }),\n $7accc8160d3205c1$var$h((0, $locXJ$Icon), {\n icon: \"cross\",\n color: \"red\",\n className: \"close-btn\",\n onClick: ()=>{\n dispatch({\n type: \"remove-match\",\n payload: {\n id: nodeId\n }\n });\n }\n })\n ]);\n}\nfunction $7accc8160d3205c1$var$MatchTag({ data: data, matchLinks: matchLinks, setPayload: setPayload }) {\n if (!data || Object.keys(data).length === 0) return;\n if (data.lith_id || data?.type === \"lith\") return $7accc8160d3205c1$var$h(\"div\", {\n onClick: ()=>{\n data.type === \"lith\" && setPayload({\n lith_id: data.id,\n name: data.name\n });\n }\n }, $7accc8160d3205c1$var$h((0, $locXJ$DataField), {\n className: \"match-item\",\n label: \"Stratigraphic name\",\n value: $7accc8160d3205c1$var$h((0, $locXJ$LithologyTag), {\n data: {\n name: data.name,\n id: data.id,\n color: data.color\n },\n onClick: ()=>window.open(matchLinks.strat_name + \"/\" + data.strat_name_id, \"_blank\")\n })\n }));\n if (data.strat_name_id || data?.type === \"strat_name\") return $7accc8160d3205c1$var$h(\"div\", {\n onClick: ()=>{\n data.type === \"strat_name\" && setPayload({\n strat_name_id: data.id,\n name: data.name\n });\n }\n }, $7accc8160d3205c1$var$h((0, $locXJ$DataField), {\n className: \"match-item\",\n label: \"Stratigraphic name\",\n value: $7accc8160d3205c1$var$h((0, $locXJ$LithologyTag), {\n data: {\n name: data.name,\n id: data.id,\n color: data.color\n },\n onClick: ()=>window.open(matchLinks.strat_name + \"/\" + data.strat_name_id, \"_blank\")\n })\n }));\n if (data.lith_att_id || data?.type === \"lith_att\") return $7accc8160d3205c1$var$h(\"div\", {\n onClick: ()=>{\n data.type === \"lith_att\" && setPayload({\n lith_att_id: data.id,\n name: data.name\n });\n }\n }, $7accc8160d3205c1$var$h((0, $locXJ$DataField), {\n className: \"match-item\",\n label: \"Lithology attribute\",\n value: $7accc8160d3205c1$var$h((0, $locXJ$LithologyTag), {\n data: {\n name: data.name,\n id: data.lith_att_id\n },\n onClick: ()=>window.open(matchLinks.lith_att + \"/\" + data.lith_att_id, \"_blank\")\n })\n }));\n if (data.int_id || data?.type === \"interval\") return $7accc8160d3205c1$var$h(\"div\", {\n onClick: ()=>{\n data.type === \"interval\" && setPayload({\n int_id: data.id,\n name: data.name\n });\n }\n }, $7accc8160d3205c1$var$h((0, $locXJ$DataField), {\n label: \"Interval\",\n className: \"match-item\",\n value: $7accc8160d3205c1$var$h((0, $locXJ$LithologyTag), {\n data: {\n name: data.name,\n id: data.id\n },\n onClick: ()=>window.open(matchLinks.interval + \"/\" + data.int_id, \"_blank\")\n })\n }));\n return $7accc8160d3205c1$var$h((0, $locXJ$JSONView), {\n data: data\n });\n}\n\n\nexport {$7accc8160d3205c1$export$6479cfcac2b87c0 as Matches};\n//# sourceMappingURL=feedback-components.f91331e9.js.map\n","import { Switch } from \"@blueprintjs/core\";\nimport { Select } from \"@blueprintjs/select\";\nimport styles from \"./feedback.module.sass\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useState } from \"react\";\nimport { Icon, Divider, Overlay2 } from \"@blueprintjs/core\";\nimport { JSONView, SaveButton } from \"@macrostrat/ui-components\";\nimport { useAPIResult, DataField } from \"@macrostrat/ui-components\";\nimport { LithologyTag } from \"@macrostrat/data-components\";\n\nconst h = hyper.styled(styles);\n\nexport function Matches({\n match,\n setMatchLinks,\n matchLinks,\n selectedNodes,\n tree,\n dispatch,\n}) {\n const [overlayOpen, setOverlayOpen] = useState(false);\n\n let nodeMatch = null;\n if (selectedNodes.length === 1) {\n nodeMatch = findMatchingNode(tree, selectedNodes[0]);\n }\n\n return h.if(matchLinks)(\"div\", [\n h(Divider),\n h(Switch, {\n label: \"Match mode\",\n checked: match !== null,\n onChange: (e) => {\n setMatchLinks(match === null ? matchLinks || {} : null);\n dispatch({ type: \"toggle-match-mode\" });\n },\n }),\n h.if(nodeMatch && match)(Match, {\n data: nodeMatch?.match,\n matchLinks: matchLinks,\n dispatch,\n nodeId: nodeMatch?.id,\n }),\n h.if(selectedNodes.length == 1 && !nodeMatch?.match && match)(\n \"div.add-match-container\",\n [\n h(\n \"div.add-type\",\n {\n onClick: () => {\n setOverlayOpen(true);\n },\n },\n [h(\"p.add-match-text\", \"Add match\"), h(Icon, { icon: \"plus\" })],\n ),\n h(MatchOverlay, {\n isOpen: overlayOpen,\n setOverlayOpen,\n nodeMatch,\n dispatch,\n }),\n ],\n ),\n ]);\n}\n\nfunction findMatchingNode(tree, nodeId) {\n let match = null;\n\n function traverse(node) {\n if (node.id === nodeId) {\n match = node;\n return true;\n }\n if (Array.isArray(node.children)) {\n for (const child of node.children) {\n if (traverse(child)) return true;\n }\n }\n return false;\n }\n\n tree.forEach(traverse);\n return match;\n}\n\nfunction MatchOverlay({ isOpen, setOverlayOpen, nodeMatch, dispatch }) {\n const [inputValue, setInputValue] = useState(nodeMatch?.name || \"\");\n const [selectedItem, setSelectedItem] = useState(h(\"div\", \"Select a match\"));\n const [disabled, setDisabled] = useState(true);\n const [payload, setPayload] = useState({});\n\n const data = useAPIResult(\n \"https://dev.macrostrat.org/api/pg/type_lookup?name=ilike.*\" +\n inputValue +\n \"*\",\n );\n const items = data?.map((data) => h(MatchTag, { data, setPayload }));\n\n return h(\n Overlay2,\n {\n isOpen,\n },\n h(\n \"div.overlay-container\",\n h(\"div.add-type-overlay\", [\n h(\"h2.title\", [\n \"Add match with \" + nodeMatch.name,\n h(Icon, {\n icon: \"cross\",\n className: \"close-icon\",\n onClick: () => {\n setOverlayOpen(false);\n },\n style: { cursor: \"pointer\", color: \"red\" },\n }),\n ]),\n h(\"div.form-group\", [\n h(\n Select,\n {\n items: items || [],\n itemRenderer: (item, { handleClick }) => {\n return h(\"div.match-item\", { onClick: handleClick }, item);\n },\n onItemSelect: (item) => {\n setDisabled(false);\n setSelectedItem(item);\n },\n onQueryChange: (query) => setInputValue(query),\n popoverProps: { minimal: true },\n query: inputValue,\n placeholder: \"Enter match name\",\n },\n selectedItem,\n ),\n ]),\n h(\n SaveButton,\n {\n className: \"save-btn\",\n small: true,\n onClick: () => {\n // Handle save changes\n dispatch({\n type: \"add-match\",\n payload: { id: nodeMatch.id, payload },\n });\n setOverlayOpen(false);\n },\n disabled,\n },\n \"Save changes\",\n ),\n ]),\n ),\n );\n}\n\nfunction Match({ data, matchLinks, dispatch, nodeId }) {\n return h.if(data)(\"div.match-container\", [\n MatchTag({ data, matchLinks }),\n h(Icon, {\n icon: \"cross\",\n color: \"red\",\n className: \"close-btn\",\n onClick: () => {\n dispatch({ type: \"remove-match\", payload: { id: nodeId } });\n },\n }),\n ]);\n}\n\ninterface MatchTagProps {\n data: any;\n matchLinks?: Record<string, string>;\n setPayload?: (payload: Record<string, any>) => void;\n}\n\nfunction MatchTag({ data, matchLinks, setPayload }: MatchTagProps) {\n if (!data || Object.keys(data).length === 0) return;\n\n if (data.lith_id || data?.type === \"lith\") {\n return h(\n \"div\",\n {\n onClick: () => {\n data.type === \"lith\"\n ? setPayload({ lith_id: data.id, name: data.name })\n : null;\n },\n },\n h(DataField, {\n className: \"match-item\",\n label: \"Stratigraphic name\",\n value: h(LithologyTag, {\n data: { name: data.name, id: data.id, color: data.color },\n onClick: () =>\n window.open(\n matchLinks.strat_name + \"/\" + data.strat_name_id,\n \"_blank\",\n ),\n }),\n }),\n );\n }\n\n if (data.strat_name_id || data?.type === \"strat_name\") {\n return h(\n \"div\",\n {\n onClick: () => {\n data.type === \"strat_name\"\n ? setPayload({ strat_name_id: data.id, name: data.name })\n : null;\n },\n },\n h(DataField, {\n className: \"match-item\",\n label: \"Stratigraphic name\",\n value: h(LithologyTag, {\n data: { name: data.name, id: data.id, color: data.color },\n onClick: () =>\n window.open(\n matchLinks.strat_name + \"/\" + data.strat_name_id,\n \"_blank\",\n ),\n }),\n }),\n );\n }\n\n if (data.lith_att_id || data?.type === \"lith_att\") {\n return h(\n \"div\",\n {\n onClick: () => {\n data.type === \"lith_att\"\n ? setPayload({ lith_att_id: data.id, name: data.name })\n : null;\n },\n },\n h(DataField, {\n className: \"match-item\",\n label: \"Lithology attribute\",\n value: h(LithologyTag, {\n data: { name: data.name, id: data.lith_att_id },\n onClick: () =>\n window.open(matchLinks.lith_att + \"/\" + data.lith_att_id, \"_blank\"),\n }),\n }),\n );\n }\n\n if (data.int_id || data?.type === \"interval\") {\n return h(\n \"div\",\n {\n onClick: () => {\n data.type === \"interval\"\n ? setPayload({ int_id: data.id, name: data.name })\n : null;\n },\n },\n h(DataField, {\n label: \"Interval\",\n className: \"match-item\",\n value: h(LithologyTag, {\n data: { name: data.name, id: data.id },\n onClick: () =>\n window.open(matchLinks.interval + \"/\" + data.int_id, \"_blank\"),\n }),\n }),\n );\n }\n\n return h(JSONView, { data });\n}\n"],"names":["Divider","$locXJ$Divider","Switch","$locXJ$Switch","Icon","$locXJ$Icon","Overlay2","$locXJ$Overlay2","Select","$locXJ$Select","$locXJ$macrostrathyper","useState","$locXJ$useState","useAPIResult","$locXJ$useAPIResult","SaveButton","$locXJ$SaveButton","DataField","$locXJ$DataField","JSONView","$locXJ$JSONView","LithologyTag","$locXJ$LithologyTag","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$9wFEx","$7accc8160d3205c1$var$h","styled","a","__esModule","default","$7accc8160d3205c1$export$6479cfcac2b87c0","match","setMatchLinks","matchLinks","selectedNodes","tree","dispatch","nodeId","overlayOpen","setOverlayOpen","nodeMatch","length","forEach","traverse","node","Array","isArray","children","child","if","label","checked","onChange","e","type","$7accc8160d3205c1$var$Match","data","onClick","icon","$7accc8160d3205c1$var$MatchOverlay","isOpen","inputValue","setInputValue","name","selectedItem","setSelectedItem","disabled","setDisabled","payload","setPayload","items","map","$7accc8160d3205c1$var$MatchTag","className","style","cursor","color","itemRenderer","item","handleClick","onItemSelect","onQueryChange","query","popoverProps","minimal","placeholder","small","Object","keys","lith_id","value","window","open","strat_name","strat_name_id","lith_att_id","lith_att","int_id","interval","Matches"],"version":3,"file":"feedback-components.f91331e9.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./feedback-components.388de4ac.js";import"./feedback-components.c31cf831.js";import"./feedback-components.b22d37d1.js";import e from"@macrostrat/hyper";import{forceSimulation as r,forceLink as t,forceManyBody as o,forceCenter as a,forceCollide as i}from"d3-force";import{useState as l,useEffect as s}from"react";import{Spinner as c,Switch as n}from"@blueprintjs/core";import{ErrorBoundary as d}from"@macrostrat/ui-components";var p=globalThis,h={},g={},f=p.parcelRequirea149;null==f&&((f=function(e){if(e in h)return h[e].exports;if(e in g){var r=g[e];delete g[e];var t={id:e,exports:{}};return h[e]=t,r.call(t.exports,t,t.exports),t.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,r){g[e]=r},p.parcelRequirea149=f),f.register;var u=f("eedTh"),m=f("9wFEx"),y=f("edvRb");let b=e.styled(m&&m.__esModule?m.default:m);function k(e){let{tree:p,width:h,height:g,dispatch:f,selectedNodes:m,viewOnly:k}=e,[x,w]=l(null),[v,S]=l(null),[_,E]=l(!1);return(s(()=>{let{nodes:e,edges:l}=(0,u.treeToGraph)(p),s=new Map(e.map(e=>[e.id,e])),c=l.map(e=>({source:s.get(e.source),target:s.get(e.dest),strength:1})),n=r(e).force("link",t(c)).force("charge",o().strength(-50)).force("center",a(h/2,g/2)).force("collide",i().radius(20)).on("tick",()=>{console.log("Simulation tick")}).on("end",()=>{w(e),S(c)});return()=>{n.stop()}},[p,h,g]),null==x||null==v)?b(c):(console.log("Graph",x,v,m),b(d,{description:"An error occurred while rendering the graph view."},b("div.graph-view",{style:{width:h,height:g}},[b(n,{className:"show-labels-switch",label:"Show Labels",checked:_,onChange:e=>E(e.target.checked)}),b("svg",{width:h,height:g},[b("g.links",v.map(e=>b("line",{x1:e.source.x,y1:e.source.y,x2:e.target.x,y2:e.target.y,stroke:"black"}))),b("g.nodes",x.map(e=>{var r,t,o;let a=m.includes(e.id),i=(r=e.id,t=m,o=x,0===t.length||t.includes(r)||o.some(e=>t.includes(e.id)&&e.children.some(e=>e.id===r))),l=(0,y.getTagStyle)(e.color,{highlighted:i,active:a});return b("g",[b("circle",{cx:e.x,cy:e.y,r:8,fill:l.backgroundColor||"blue",onClick:r=>{r.stopPropagation(),r.ctrlKey||r.metaKey||m[0]===e.id&&1===m.length?(r.stopPropagation(),f({type:"toggle-node-selected",payload:{ids:[e.id]}})):f({type:"select-node",payload:{ids:[e.id]}})},className:a?"selected":k?"":" clickable",stroke:a?"white":"black",strokeWidth:2}),b.if(_)("text",{x:e.x+10,y:e.y+4,className:"node-label"},e.name||`Node ${e.id}`),b.if(!_)("title",e.name||`Node ${e.id}`)])}))])])))}export{k as GraphView};
|
|
2
|
+
//# sourceMappingURL=feedback-components.fc0395df.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,oD,A,O,oD,A,O,oD,A,Q,M,mB,A,Q,mB,C,C,a,C,C,iB,C,C,e,C,C,gB,C,K,U,A,Q,Y,C,C,a,C,K,O,A,Q,W,C,C,U,C,K,mB,A,Q,iB,C,K,2B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,S,E,E,SCkBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAEhB,SAAS,EAAU,CAOzB,EAGC,GAAM,CAAA,KAAE,CAAI,CAAA,MAAE,CAAK,CAAA,OAAE,CAAM,CAAA,SAAE,CAAQ,CAAA,cAAE,CAAa,CAAA,SAAE,CAAQ,CAAE,CAAG,EAE7D,CAAC,EAAO,EAAS,CAAG,AAAA,EAAgC,MACpD,CAAC,EAAO,EAAS,CAAG,AAAA,EAAgC,MACpD,CAAC,EAAY,EAAc,CAAG,AAAA,EAAS,CAAA,SAsC7C,CApCA,AAAA,EAAU,KACR,GAAM,CAAA,MAAE,CAAK,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,GAE/B,EAAW,IAAI,IACnB,EAAM,GAAG,CAAC,AAAC,GAAM,CAAC,EAAE,EAAE,CAAE,EAAE,GAGtB,EAAQ,EAAM,GAAG,CAAC,AAAC,GAChB,CAAA,CACL,OAAQ,EAAS,GAAG,CAAC,EAAE,MAAM,EAC7B,OAAQ,EAAS,GAAG,CAAC,EAAE,IAAI,EAC3B,SAAU,CACZ,CAAA,GAGI,EAAa,AAAA,EAAgB,GAChC,KAAK,CAAC,OAAQ,AAAA,EAAU,IACxB,KAAK,CAAC,SAAU,AAAA,IAAgB,QAAQ,CAAC,MACzC,KAAK,CAAC,SAAU,AAAA,EAAY,EAAQ,EAAG,EAAS,IAChD,KAAK,CAAC,UAAW,AAAA,IAAe,MAAM,CAAC,KACvC,EAAE,CAAC,OAAQ,KAGV,QAAQ,GAAG,CAAC,kBACd,GACC,EAAE,CAAC,MAAO,KAET,EAAS,GACT,EAAS,EACX,GAEF,MAAO,KACL,EAAW,IAAI,EACjB,CACF,EAAG,CAAC,EAAM,EAAO,EAAO,EAEpB,AAAS,MAAT,GAAiB,AAAS,MAAT,GACZ,EAAE,IAGX,QAAQ,GAAG,CAAC,QAAS,EAAO,EAAO,GAE5B,EACL,EACA,CACE,YAAa,mDACf,EACA,EAAE,iBAAkB,CAAE,MAAO,CAAE,MAAA,EAAO,OAAA,CAAO,CAAE,EAAG,CAChD,EAAE,EAAQ,CACR,UAAW,qBACX,MAAO,cACP,QAAS,EACT,SAAU,AAAC,GAAM,EAAc,EAAE,MAAM,CAAC,OAAO,CACjD,GACA,EAAE,MAAO,CAAE,MAAA,EAAO,OAAA,CAAO,EAAG,CAC1B,EACE,UACA,EAAM,GAAG,CAAC,AAAC,GACF,EAAE,OAAQ,CACf,GAAI,EAAE,MAAM,CAAC,CAAC,CACd,GAAI,EAAE,MAAM,CAAC,CAAC,CACd,GAAI,EAAE,MAAM,CAAC,CAAC,CACd,GAAI,EAAE,MAAM,CAAC,CAAC,CACd,OAAQ,OACV,KAGJ,EACE,UACA,EAAM,GAAG,CAAC,AAAC,QAwDE,EAAY,EAAyB,EAvDhD,IAAM,EAAS,EAAc,QAAQ,CAAC,EAAE,EAAE,EAEpC,GAqDK,EArDuB,EAAE,EAAE,CAqDf,EArDiB,EAqDQ,EArDO,EAsDjE,AAA6B,IAAzB,EAAc,MAAM,EAEtB,EAAc,QAAQ,CAAC,IACvB,EAAM,IAAI,CACR,AAAC,GACC,EAAc,QAAQ,CAAC,EAAK,EAAE,GAC9B,EAAK,QAAQ,CAAC,IAAI,CAAC,AAAC,GAAU,EAAM,EAAE,GAAK,KA3DjC,EAAQ,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,EAAE,KAAK,CAAE,CAAE,YAAA,EAAa,OAAA,CAAO,GAEzD,OAAO,EAAE,IAAK,CACZ,EAAE,SAAU,CACV,GAAI,EAAE,CAAC,CACP,GAAI,EAAE,CAAC,CACP,EAAG,EACH,KAAM,EAAM,eAAe,EAAI,OAC/B,QAAS,AAAC,IACR,EAAE,eAAe,GAEf,EAAE,OAAO,EACT,EAAE,OAAO,EACR,CAAa,CAAC,EAAE,GAAK,EAAE,EAAE,EAAI,AAAyB,IAAzB,EAAc,MAAM,EAGlD,EAAE,eAAe,GACjB,EAAS,CACP,KAAM,uBACN,QAAS,CAAE,IAAK,CAAC,EAAE,EAAE,CAAC,AAAC,CACzB,IAEA,EAAS,CACP,KAAM,cACN,QAAS,CAAE,IAAK,CAAC,EAAE,EAAE,CAAC,AAAC,CACzB,EAEJ,EACA,UAAW,EACP,WACM,EAAW,GAAK,aAC1B,OAjCW,EAAS,QAAU,QAkC9B,YAAa,CACf,GACA,EAAE,EAAE,CAAC,GACH,OACA,CACE,EAAG,EAAE,CAAC,CAAG,GACT,EAAG,EAAE,CAAC,CAAG,EACT,UAAW,YACb,EACA,EAAE,IAAI,EAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAA,CAAE,EAE1B,EAAE,EAAE,CAAC,CAAC,GAAY,QAAS,EAAE,IAAI,EAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAA,CAAE,EACpD,CACH,IAEH,EACF,GAEL,Q,K,S","sources":["<anon>","packages/feedback-components/src/feedback/graph.ts"],"sourcesContent":["import \"./feedback-components.388de4ac.js\";\nimport \"./feedback-components.c31cf831.js\";\nimport \"./feedback-components.b22d37d1.js\";\nimport $9bqpz$macrostrathyper from \"@macrostrat/hyper\";\nimport {forceSimulation as $9bqpz$forceSimulation, forceLink as $9bqpz$forceLink, forceManyBody as $9bqpz$forceManyBody, forceCenter as $9bqpz$forceCenter, forceCollide as $9bqpz$forceCollide} from \"d3-force\";\nimport {useState as $9bqpz$useState, useEffect as $9bqpz$useEffect} from \"react\";\nimport {Spinner as $9bqpz$Spinner, Switch as $9bqpz$Switch} from \"@blueprintjs/core\";\nimport {ErrorBoundary as $9bqpz$ErrorBoundary} from \"@macrostrat/ui-components\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\nvar $eedTh = parcelRequire(\"eedTh\");\n\nvar $9wFEx = parcelRequire(\"9wFEx\");\n\n\n\n\n\n\nvar $edvRb = parcelRequire(\"edvRb\");\nconst $8732cb0ae0ae3dfd$var$h = (0, $9bqpz$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($9wFEx))));\nfunction $8732cb0ae0ae3dfd$export$6a7fe3ef90e8d566(props) {\n // A graph view with react-flow\n // Get positions of nodes using force simulation\n const { tree: tree, width: width, height: height, dispatch: dispatch, selectedNodes: selectedNodes, viewOnly: viewOnly } = props;\n const [nodes, setNodes] = (0, $9bqpz$useState)(null);\n const [links, setLinks] = (0, $9bqpz$useState)(null);\n const [showLabels, setShowLabels] = (0, $9bqpz$useState)(false);\n (0, $9bqpz$useEffect)(()=>{\n const { nodes: nodes, edges: edges } = (0, $eedTh.treeToGraph)(tree);\n const nodesMap = new Map(nodes.map((d)=>[\n d.id,\n d\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 const simulation = (0, $9bqpz$forceSimulation)(nodes).force(\"link\", (0, $9bqpz$forceLink)(links)).force(\"charge\", (0, $9bqpz$forceManyBody)().strength(-50)).force(\"center\", (0, $9bqpz$forceCenter)(width / 2, height / 2)).force(\"collide\", (0, $9bqpz$forceCollide)().radius(20)).on(\"tick\", ()=>{\n // Update the positions of the nodes\n // setNodes(nodes);\n console.log(\"Simulation tick\");\n }).on(\"end\", ()=>{\n // Update the positions of the nodes\n setNodes(nodes);\n setLinks(links);\n });\n return ()=>{\n simulation.stop();\n };\n }, [\n tree,\n width,\n height\n ]);\n if (nodes == null || links == null) return $8732cb0ae0ae3dfd$var$h((0, $9bqpz$Spinner));\n console.log(\"Graph\", nodes, links, selectedNodes);\n return $8732cb0ae0ae3dfd$var$h((0, $9bqpz$ErrorBoundary), {\n description: \"An error occurred while rendering the graph view.\"\n }, $8732cb0ae0ae3dfd$var$h(\"div.graph-view\", {\n style: {\n width: width,\n height: height\n }\n }, [\n $8732cb0ae0ae3dfd$var$h((0, $9bqpz$Switch), {\n className: \"show-labels-switch\",\n label: \"Show Labels\",\n checked: showLabels,\n onChange: (e)=>setShowLabels(e.target.checked)\n }),\n $8732cb0ae0ae3dfd$var$h(\"svg\", {\n width: width,\n height: height\n }, [\n $8732cb0ae0ae3dfd$var$h(\"g.links\", links.map((d)=>{\n return $8732cb0ae0ae3dfd$var$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 $8732cb0ae0ae3dfd$var$h(\"g.nodes\", nodes.map((d)=>{\n const active = selectedNodes.includes(d.id);\n const stroke = active ? \"white\" : \"black\";\n const highlighted = $8732cb0ae0ae3dfd$var$isHighlighted(d.id, selectedNodes, nodes);\n const style = (0, $edvRb.getTagStyle)(d.color, {\n highlighted: highlighted,\n active: active\n });\n return $8732cb0ae0ae3dfd$var$h(\"g\", [\n $8732cb0ae0ae3dfd$var$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 (e.ctrlKey || e.metaKey || selectedNodes[0] === d.id && selectedNodes.length === 1) {\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: {\n ids: [\n d.id\n ]\n }\n });\n } else dispatch({\n type: \"select-node\",\n payload: {\n ids: [\n d.id\n ]\n }\n });\n },\n className: active ? \"selected\" : \"\" + (viewOnly ? \"\" : \" clickable\"),\n stroke: stroke,\n strokeWidth: 2\n }),\n $8732cb0ae0ae3dfd$var$h.if(showLabels)(\"text\", {\n x: d.x + 10,\n y: d.y + 4,\n className: \"node-label\"\n }, d.name || `Node ${d.id}`),\n $8732cb0ae0ae3dfd$var$h.if(!showLabels)(\"title\", d.name || `Node ${d.id}`)\n ]);\n }))\n ])\n ]));\n}\nfunction $8732cb0ae0ae3dfd$var$isHighlighted(id, selectedNodes, nodes) {\n if (selectedNodes.length === 0) return true;\n return selectedNodes.includes(id) || nodes.some((node)=>selectedNodes.includes(node.id) && node.children.some((child)=>child.id === id));\n}\n\n\nexport {$8732cb0ae0ae3dfd$export$6a7fe3ef90e8d566 as GraphView};\n//# sourceMappingURL=feedback-components.fc0395df.js.map\n","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":["$9bqpz$macrostrathyper","forceSimulation","$9bqpz$forceSimulation","forceLink","$9bqpz$forceLink","forceManyBody","$9bqpz$forceManyBody","forceCenter","$9bqpz$forceCenter","forceCollide","$9bqpz$forceCollide","useState","$9bqpz$useState","useEffect","$9bqpz$useEffect","Spinner","$9bqpz$Spinner","Switch","$9bqpz$Switch","ErrorBoundary","$9bqpz$ErrorBoundary","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$eedTh","$9wFEx","$edvRb","$8732cb0ae0ae3dfd$var$h","styled","a","__esModule","default","$8732cb0ae0ae3dfd$export$6a7fe3ef90e8d566","props","tree","width","height","dispatch","selectedNodes","viewOnly","nodes","setNodes","links","setLinks","showLabels","setShowLabels","edges","treeToGraph","nodesMap","Map","map","d","source","get","target","dest","strength","simulation","force","radius","on","console","log","stop","description","style","className","label","checked","onChange","e","x1","x","y1","y","x2","y2","stroke","active","includes","highlighted","length","some","node","children","child","getTagStyle","color","cx","cy","r","fill","backgroundColor","onClick","stopPropagation","ctrlKey","metaKey","type","payload","ids","strokeWidth","if","name","GraphView"],"version":3,"file":"feedback-components.fc0395df.js.map","sourceRoot":"../../../../"}
|
package/dist/node/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./feedback-components.b22d37d1.js";import"./feedback-components.
|
|
1
|
+
import"./feedback-components.b22d37d1.js";import"./feedback-components.b8da3bce.js";function e(e,a){return Object.keys(a).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return a[t]}})}),e}var a=globalThis,t={},r={},c=a.parcelRequirea149;null==c&&((c=function(e){if(e in t)return t[e].exports;if(e in r){var a=r[e];delete r[e];var c={id:e,exports:{}};return t[e]=c,a.call(c.exports,c,c.exports),c.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,a){r[e]=a},a.parcelRequirea149=c),c.register;var o={},n=c("edvRb"),d=c("aZPCw");e(o,n),e(o,d);export{$8c534c0378e15a46$export$c4b91360064ad200 as buildHighlights,$8c534c0378e15a46$export$d60b563f571177d as enhanceData,$8c534c0378e15a46$export$35baa338324d8550 as getTagStyle,$8c534c0378e15a46$export$2b07158757c249e0 as ExtractionContext,$8c534c0378e15a46$export$4eb2a0ce903ce967 as ModelInfo,$8c534c0378e15a46$export$117e56c71b172cde as EntityTag,$2c86488f2f3c1edd$export$a90600c9da52b40c as FeedbackComponent,$330ae695507d96f5$export$8d9dbb7a64bf2a5e as treeToGraph};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,oD,A,O,oD,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,e,C,4C,W,C,6C,W,C,6C,iB,C,6C,S,C,6C,S,C,6C,iB,C,6C,W","sources":["<anon>","packages/feedback-components/src/index.ts"],"sourcesContent":["import \"./feedback-components.b22d37d1.js\";\nimport \"./feedback-components.
|
|
1
|
+
{"mappings":"A,M,oD,A,O,oD,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,e,C,4C,W,C,6C,W,C,6C,iB,C,6C,S,C,6C,S,C,6C,iB,C,6C,W","sources":["<anon>","packages/feedback-components/src/index.ts"],"sourcesContent":["import \"./feedback-components.b22d37d1.js\";\nimport \"./feedback-components.b8da3bce.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $c688386f08592f9c$exports = {};\n\nvar $edvRb = parcelRequire(\"edvRb\");\n\nvar $aZPCw = parcelRequire(\"aZPCw\");\n$parcel$exportWildcard($c688386f08592f9c$exports, $edvRb);\n$parcel$exportWildcard($c688386f08592f9c$exports, $aZPCw);\n\n\nexport {$8c534c0378e15a46$export$c4b91360064ad200 as buildHighlights, $8c534c0378e15a46$export$d60b563f571177d as enhanceData, $8c534c0378e15a46$export$35baa338324d8550 as getTagStyle, $8c534c0378e15a46$export$2b07158757c249e0 as ExtractionContext, $8c534c0378e15a46$export$4eb2a0ce903ce967 as ModelInfo, $8c534c0378e15a46$export$117e56c71b172cde as EntityTag, $2c86488f2f3c1edd$export$a90600c9da52b40c as FeedbackComponent, $330ae695507d96f5$export$8d9dbb7a64bf2a5e as treeToGraph};\n//# sourceMappingURL=index.js.map\n","export * from \"./extractions\";\nexport * from \"./feedback\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$c688386f08592f9c$exports","$edvRb","$aZPCw","$8c534c0378e15a46$export$c4b91360064ad200","buildHighlights","$8c534c0378e15a46$export$d60b563f571177d","enhanceData","$8c534c0378e15a46$export$35baa338324d8550","getTagStyle","$8c534c0378e15a46$export$2b07158757c249e0","ExtractionContext","$8c534c0378e15a46$export$4eb2a0ce903ce967","ModelInfo","$8c534c0378e15a46$export$117e56c71b172cde","EntityTag","$2c86488f2f3c1edd$export$a90600c9da52b40c","FeedbackComponent","$330ae695507d96f5$export$8d9dbb7a64bf2a5e","treeToGraph"],"version":3,"file":"index.js.map","sourceRoot":"../../../../"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@macrostrat/feedback-components",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@macrostrat/data-components": "^0.2.0",
|
|
40
40
|
"@macrostrat/data-sheet": "^2.1.1",
|
|
41
41
|
"@macrostrat/hyper": "^3.0.6",
|
|
42
|
-
"@macrostrat/ui-components": "^4.4.
|
|
42
|
+
"@macrostrat/ui-components": "^4.4.4",
|
|
43
43
|
"@xyflow/react": "^12.3.6",
|
|
44
44
|
"classnames": "^2.5.1",
|
|
45
45
|
"d3-force": "^3.0.0",
|
|
@@ -17,6 +17,8 @@ interface TreeState {
|
|
|
17
17
|
lastInternalId: number;
|
|
18
18
|
isSelectingEntityType: boolean;
|
|
19
19
|
viewMode: ViewMode;
|
|
20
|
+
viewOnly: boolean;
|
|
21
|
+
matchMode: boolean;
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
type TextRange = {
|
|
@@ -50,13 +52,16 @@ type TreeAction =
|
|
|
50
52
|
}
|
|
51
53
|
| { type: "select-range"; payload: { ids: number[] } }
|
|
52
54
|
| { type: "add-match"; payload: { id: number; payload: any } }
|
|
53
|
-
| { type: "remove-match"; payload: { id: number } }
|
|
55
|
+
| { type: "remove-match"; payload: { id: number } }
|
|
56
|
+
| { type: "toggle-match-mode" };
|
|
54
57
|
|
|
55
58
|
export type TreeDispatch = Dispatch<TreeAction>;
|
|
56
59
|
|
|
57
60
|
export function useUpdatableTree(
|
|
58
61
|
initialTree: TreeData[],
|
|
59
62
|
entityTypes: Map<number, EntityType>,
|
|
63
|
+
viewOnly: boolean,
|
|
64
|
+
matchMode: boolean,
|
|
60
65
|
): [TreeState, TreeDispatch] {
|
|
61
66
|
// Get the first entity type
|
|
62
67
|
// issue: grabs second entity instead of selected one
|
|
@@ -71,6 +76,8 @@ export function useUpdatableTree(
|
|
|
71
76
|
lastInternalId: 0,
|
|
72
77
|
isSelectingEntityType: false,
|
|
73
78
|
viewMode: ViewMode.Tree,
|
|
79
|
+
viewOnly,
|
|
80
|
+
matchMode,
|
|
74
81
|
});
|
|
75
82
|
}
|
|
76
83
|
|
|
@@ -85,6 +92,14 @@ export function useTreeDispatch() {
|
|
|
85
92
|
}
|
|
86
93
|
|
|
87
94
|
function treeReducer(state: TreeState, action: TreeAction) {
|
|
95
|
+
if (action.type === "toggle-match-mode") {
|
|
96
|
+
return { ...state, matchMode: !state.matchMode };
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (state.viewOnly) return viewMode(state, action);
|
|
100
|
+
|
|
101
|
+
if (state.matchMode) return matchMode(state, action);
|
|
102
|
+
|
|
88
103
|
switch (action.type) {
|
|
89
104
|
case "add-entity-type": {
|
|
90
105
|
// Add a new entity type to the map
|
|
@@ -264,54 +279,6 @@ function treeReducer(state: TreeState, action: TreeAction) {
|
|
|
264
279
|
};
|
|
265
280
|
}
|
|
266
281
|
|
|
267
|
-
case "add-match": {
|
|
268
|
-
const { id } = action.payload;
|
|
269
|
-
|
|
270
|
-
// Find the node path
|
|
271
|
-
const keyPath = findNode(state.tree, id);
|
|
272
|
-
if (!keyPath) {
|
|
273
|
-
console.warn(`Node with id ${id} not found`);
|
|
274
|
-
return state;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// Build update spec to set the `match` property
|
|
278
|
-
const matchUpdateSpec = buildNestedSpec(keyPath, {
|
|
279
|
-
match: { $set: action.payload.payload },
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
const updatedTree = update(state.tree, matchUpdateSpec);
|
|
283
|
-
|
|
284
|
-
return {
|
|
285
|
-
...state,
|
|
286
|
-
tree: updatedTree,
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
case "remove-match": {
|
|
291
|
-
const { id } = action.payload;
|
|
292
|
-
|
|
293
|
-
console.log("Removing match for node with id:", id);
|
|
294
|
-
|
|
295
|
-
// Find the node path
|
|
296
|
-
const keyPath = findNode(state.tree, id);
|
|
297
|
-
if (!keyPath) {
|
|
298
|
-
console.warn(`Node with id ${id} not found`);
|
|
299
|
-
return state;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
// Build update spec to unset the `match` property
|
|
303
|
-
const matchUpdateSpec = buildNestedSpec(keyPath, {
|
|
304
|
-
match: { $set: null },
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
const updatedTree = update(state.tree, matchUpdateSpec);
|
|
308
|
-
|
|
309
|
-
return {
|
|
310
|
-
...state,
|
|
311
|
-
tree: updatedTree,
|
|
312
|
-
};
|
|
313
|
-
}
|
|
314
|
-
|
|
315
282
|
/** Entity type selection */
|
|
316
283
|
case "toggle-entity-type-selector":
|
|
317
284
|
return {
|
|
@@ -526,3 +493,83 @@ function flattenAndSort(nodes) {
|
|
|
526
493
|
// sort by start
|
|
527
494
|
return result.sort((a, b) => a.indices[0] - b.indices[0]);
|
|
528
495
|
}
|
|
496
|
+
|
|
497
|
+
function matchMode(state, action) {
|
|
498
|
+
if (action.type === "select-node" || action.type === "toggle-node-selected") {
|
|
499
|
+
const { ids } = action.payload;
|
|
500
|
+
|
|
501
|
+
if (ids.length != 1) return state;
|
|
502
|
+
|
|
503
|
+
if (state.selectedNodes.length === 1) {
|
|
504
|
+
if (ids[0] === state.selectedNodes[0]) {
|
|
505
|
+
// If the selected node is the same as the current selection, deselect it
|
|
506
|
+
return { ...state, selectedNodes: [] };
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
const type =
|
|
511
|
+
action.payload.ids.length > 0
|
|
512
|
+
? findNodeById(state.tree, ids[0])?.type
|
|
513
|
+
: null;
|
|
514
|
+
|
|
515
|
+
return { ...state, selectedNodes: ids, selectedEntityType: type };
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
if (action.type === "add-match") {
|
|
519
|
+
const { id } = action.payload;
|
|
520
|
+
|
|
521
|
+
// Find the node path
|
|
522
|
+
const keyPath = findNode(state.tree, id);
|
|
523
|
+
if (!keyPath) {
|
|
524
|
+
console.warn(`Node with id ${id} not found`);
|
|
525
|
+
return state;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
// Build update spec to set the `match` property
|
|
529
|
+
const matchUpdateSpec = buildNestedSpec(keyPath, {
|
|
530
|
+
match: { $set: action.payload.payload },
|
|
531
|
+
});
|
|
532
|
+
|
|
533
|
+
const updatedTree = update(state.tree, matchUpdateSpec);
|
|
534
|
+
|
|
535
|
+
return {
|
|
536
|
+
...state,
|
|
537
|
+
tree: updatedTree,
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
if (action.type === "remove-match") {
|
|
542
|
+
const { id } = action.payload;
|
|
543
|
+
|
|
544
|
+
console.log("Removing match for node with id:", id);
|
|
545
|
+
|
|
546
|
+
// Find the node path
|
|
547
|
+
const keyPath = findNode(state.tree, id);
|
|
548
|
+
if (!keyPath) {
|
|
549
|
+
console.warn(`Node with id ${id} not found`);
|
|
550
|
+
return state;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// Build update spec to unset the `match` property
|
|
554
|
+
const matchUpdateSpec = buildNestedSpec(keyPath, {
|
|
555
|
+
match: { $set: null },
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
const updatedTree = update(state.tree, matchUpdateSpec);
|
|
559
|
+
|
|
560
|
+
return {
|
|
561
|
+
...state,
|
|
562
|
+
tree: updatedTree,
|
|
563
|
+
};
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
return state;
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
function viewMode(state, action) {
|
|
570
|
+
if (action.type === "set-view-mode") {
|
|
571
|
+
return { ...state, viewMode: action.payload };
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
return state;
|
|
575
|
+
}
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
cursor: pointer
|
|
32
32
|
|
|
33
33
|
circle
|
|
34
|
-
cursor: pointer
|
|
35
34
|
border: 1px solid black
|
|
36
35
|
|
|
37
36
|
.selected
|
|
@@ -79,12 +78,14 @@ mark
|
|
|
79
78
|
width: auto !important
|
|
80
79
|
|
|
81
80
|
.highlight
|
|
82
|
-
cursor: pointer
|
|
83
81
|
padding: .2em 0
|
|
84
82
|
border-radius: .2em
|
|
85
83
|
position: relative
|
|
86
84
|
zIndex: 10
|
|
87
85
|
|
|
86
|
+
.clickable
|
|
87
|
+
cursor: pointer
|
|
88
|
+
|
|
88
89
|
.feedback-text-wrapper
|
|
89
90
|
position: relative
|
|
90
91
|
z-index: 0
|
|
@@ -115,7 +116,7 @@ mark
|
|
|
115
116
|
align-items: center
|
|
116
117
|
|
|
117
118
|
.add-type-overlay
|
|
118
|
-
background-color: var(--
|
|
119
|
+
background-color: var(--tertiary-background)
|
|
119
120
|
padding: .5em 1em
|
|
120
121
|
display: flex
|
|
121
122
|
flex-direction: column
|
|
@@ -149,12 +150,15 @@ mark
|
|
|
149
150
|
pointerEvents: none
|
|
150
151
|
|
|
151
152
|
.match-item
|
|
152
|
-
background-color: var(--background-color)
|
|
153
153
|
color: var(--text-emphasized-color)
|
|
154
154
|
padding: .1em .2em
|
|
155
155
|
border-radius: .2em
|
|
156
156
|
margin-bottom: 4px
|
|
157
157
|
cursor: pointer
|
|
158
|
+
|
|
159
|
+
.match-label
|
|
160
|
+
margin: 0
|
|
161
|
+
color: var(--text-color)
|
|
158
162
|
|
|
159
163
|
.match-container
|
|
160
164
|
display: flex
|
|
@@ -162,4 +166,4 @@ mark
|
|
|
162
166
|
align-items: center
|
|
163
167
|
|
|
164
168
|
.close-btn
|
|
165
|
-
cursor: pointer
|
|
169
|
+
cursor: pointer
|
package/src/feedback/graph.ts
CHANGED
|
@@ -24,10 +24,11 @@ export function GraphView(props: {
|
|
|
24
24
|
height: number;
|
|
25
25
|
dispatch: (action: any) => void;
|
|
26
26
|
selectedNodes: number[];
|
|
27
|
+
viewOnly?: boolean;
|
|
27
28
|
}) {
|
|
28
29
|
// A graph view with react-flow
|
|
29
30
|
// Get positions of nodes using force simulation
|
|
30
|
-
const { tree, width, height, dispatch, selectedNodes } = props;
|
|
31
|
+
const { tree, width, height, dispatch, selectedNodes, viewOnly } = props;
|
|
31
32
|
|
|
32
33
|
const [nodes, setNodes] = useState<SimulationNodeDatum[]>(null);
|
|
33
34
|
const [links, setLinks] = useState<SimulationLinkDatum[]>(null);
|
|
@@ -134,7 +135,9 @@ export function GraphView(props: {
|
|
|
134
135
|
});
|
|
135
136
|
}
|
|
136
137
|
},
|
|
137
|
-
className: active
|
|
138
|
+
className: active
|
|
139
|
+
? "selected"
|
|
140
|
+
: "" + (viewOnly ? "" : " clickable"),
|
|
138
141
|
stroke,
|
|
139
142
|
strokeWidth: 2,
|
|
140
143
|
}),
|
package/src/feedback/index.ts
CHANGED
|
@@ -56,13 +56,19 @@ export function FeedbackComponent({
|
|
|
56
56
|
onSave,
|
|
57
57
|
allowOverlap,
|
|
58
58
|
matchLinks,
|
|
59
|
+
view = false,
|
|
59
60
|
}) {
|
|
61
|
+
const [viewOnly, setViewOnly] = useState(view);
|
|
62
|
+
const [match, setMatchLinks] = useState(matchLinks);
|
|
63
|
+
const matchMode = match !== null;
|
|
64
|
+
|
|
60
65
|
// Get the input arguments
|
|
61
66
|
const [state, dispatch] = useUpdatableTree(
|
|
62
67
|
entities.map(processEntity) as any,
|
|
63
68
|
entityTypes,
|
|
69
|
+
viewOnly,
|
|
70
|
+
matchMode,
|
|
64
71
|
);
|
|
65
|
-
const [match, setMatchLinks] = useState(matchLinks || {});
|
|
66
72
|
|
|
67
73
|
const {
|
|
68
74
|
selectedNodes,
|
|
@@ -78,6 +84,18 @@ export function FeedbackComponent({
|
|
|
78
84
|
h(
|
|
79
85
|
"div.feedback-container",
|
|
80
86
|
h(TreeDispatchContext.Provider, { value: dispatch }, [
|
|
87
|
+
h.if(!view)(SegmentedControl, {
|
|
88
|
+
options: [
|
|
89
|
+
{ label: "View", value: "view" },
|
|
90
|
+
{ label: "Edit", value: "edit" },
|
|
91
|
+
],
|
|
92
|
+
value: viewOnly ? "view" : "edit",
|
|
93
|
+
small: true,
|
|
94
|
+
onValueChange() {
|
|
95
|
+
setViewOnly(!viewOnly);
|
|
96
|
+
},
|
|
97
|
+
role: "toolbar",
|
|
98
|
+
}),
|
|
81
99
|
h(
|
|
82
100
|
ErrorBoundary,
|
|
83
101
|
{
|
|
@@ -92,6 +110,7 @@ export function FeedbackComponent({
|
|
|
92
110
|
selectedNodes,
|
|
93
111
|
allowOverlap,
|
|
94
112
|
matchLinks: match,
|
|
113
|
+
viewOnly,
|
|
95
114
|
}),
|
|
96
115
|
),
|
|
97
116
|
h(
|
|
@@ -133,6 +152,7 @@ export function FeedbackComponent({
|
|
|
133
152
|
height,
|
|
134
153
|
dispatch,
|
|
135
154
|
selectedNodes,
|
|
155
|
+
viewOnly,
|
|
136
156
|
}),
|
|
137
157
|
],
|
|
138
158
|
),
|
|
@@ -140,7 +160,7 @@ export function FeedbackComponent({
|
|
|
140
160
|
),
|
|
141
161
|
h(Card, { className: "control-panel" }, [
|
|
142
162
|
h("div.control-content", [
|
|
143
|
-
h(
|
|
163
|
+
h.if(!viewOnly)(
|
|
144
164
|
ButtonGroup,
|
|
145
165
|
{
|
|
146
166
|
vertical: true,
|
|
@@ -172,7 +192,7 @@ export function FeedbackComponent({
|
|
|
172
192
|
),
|
|
173
193
|
],
|
|
174
194
|
),
|
|
175
|
-
h(Matches, {
|
|
195
|
+
h.if(!viewOnly)(Matches, {
|
|
176
196
|
match,
|
|
177
197
|
setMatchLinks,
|
|
178
198
|
matchLinks,
|
|
@@ -180,7 +200,7 @@ export function FeedbackComponent({
|
|
|
180
200
|
tree,
|
|
181
201
|
dispatch,
|
|
182
202
|
}),
|
|
183
|
-
h(Divider),
|
|
203
|
+
h.if(!viewOnly)(Divider),
|
|
184
204
|
h(EntityTypeSelector, {
|
|
185
205
|
entityTypes: entityTypesMap,
|
|
186
206
|
selected: selectedEntityType,
|
|
@@ -196,6 +216,8 @@ export function FeedbackComponent({
|
|
|
196
216
|
type: "toggle-entity-type-selector",
|
|
197
217
|
payload: isOpen,
|
|
198
218
|
}),
|
|
219
|
+
viewOnly,
|
|
220
|
+
matchMode,
|
|
199
221
|
}),
|
|
200
222
|
]),
|
|
201
223
|
]),
|
|
@@ -222,6 +244,8 @@ function EntityTypeSelector({
|
|
|
222
244
|
tree,
|
|
223
245
|
dispatch,
|
|
224
246
|
selectedNodes = [],
|
|
247
|
+
viewOnly,
|
|
248
|
+
matchMode,
|
|
225
249
|
}) {
|
|
226
250
|
// Show all entity types when selected is null
|
|
227
251
|
const _selected = selected != null ? selected : undefined;
|
|
@@ -242,6 +266,7 @@ function EntityTypeSelector({
|
|
|
242
266
|
dispatch,
|
|
243
267
|
selectedNodes,
|
|
244
268
|
tree,
|
|
269
|
+
viewOnly: viewOnly || matchMode,
|
|
245
270
|
}),
|
|
246
271
|
h(OmniboxSelector, {
|
|
247
272
|
isOpen,
|