UNPKG

@macrostrat/column-components

Version:

React rendering primitives for stratigraphic columns

1 lines 4.65 kB
{"version":3,"file":"new.cjs","sources":["../../src/notes/new.ts"],"sourcesContent":["/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nimport { useState, useContext } from \"react\";\nimport h from \"../hyper\";\nimport { NoteLayoutContext, NoteRect } from \"./layout\";\nimport { ModelEditorContext } from \"../context\";\nimport { NoteEditorContext } from \"./editor\";\nimport { HeightRangeAnnotation } from \"./height-range\";\nimport NoteDefs from \"./defs\";\n\nconst getHeights = function (position, tolerance = 0.1) {\n let { startHeight, dragHeight, ...rest } = position;\n if (dragHeight == null) {\n dragHeight = startHeight;\n }\n let rng = [startHeight, dragHeight];\n rng.sort();\n let [height, top_height] = rng;\n if (top_height - height < tolerance) {\n top_height = null;\n }\n return { height, top_height, ...rest };\n};\n\nconst HeightRange = function (props) {\n let { position, tolerance } = props;\n if (!position) {\n return null;\n }\n if (tolerance == null) {\n tolerance = 0.1;\n }\n const val = getHeights(position, tolerance);\n return h(HeightRangeAnnotation, val);\n};\n\nconst NewNotePositioner = function (props) {\n const { paddingLeft, scale } = useContext(NoteLayoutContext);\n const { onCreateNote } = useContext(NoteEditorContext) as any;\n if (onCreateNote == null) {\n return null;\n }\n const { tolerance } = props;\n const [notePosition, setPosition] = useState(null);\n const { model } = useContext(ModelEditorContext);\n if (model != null) {\n return null;\n }\n\n const eventHeight = (evt) => scale.invert(evt.nativeEvent.offsetY);\n\n return h(\"g.new-note\", [\n h(NoteDefs, { fill: \"dodgerblue\", size: 4, prefix: \"new_\" }),\n h(NoteRect, {\n width: paddingLeft,\n fill: \"transparent\",\n padding: 0,\n style: { cursor: \"drag\" },\n onMouseDown(evt) {\n if (notePosition != null) {\n return;\n }\n return setPosition({\n startHeight: eventHeight(evt),\n offsetX: evt.nativeEvent.offsetX,\n });\n },\n onMouseMove(evt) {\n if (notePosition == null) {\n return;\n }\n return setPosition({\n ...notePosition,\n dragHeight: eventHeight(evt),\n });\n },\n\n onMouseUp(evt) {\n const dragHeight = eventHeight(evt);\n const finalPos = getHeights({ ...notePosition, dragHeight });\n setPosition(null);\n return onCreateNote(finalPos);\n },\n }),\n h(HeightRange, { position: notePosition }),\n ]);\n};\n\nNewNotePositioner.defaultProps = {\n tolerance: 0.1,\n};\n\nexport { NewNotePositioner };\n"],"names":["h","HeightRangeAnnotation","useContext","NoteLayoutContext","NoteEditorContext","useState","ModelEditorContext","NoteDefs","NoteRect"],"mappings":";;;;;;;;;AAcA,MAAM,aAAa,SAAU,UAAU,YAAY,KAAK;AACtD,MAAI,EAAE,aAAa,YAAY,GAAG,SAAS;AAC3C,MAAI,cAAc,MAAM;AACtB,iBAAa;AAAA,EACf;AACA,MAAI,MAAM,CAAC,aAAa,UAAU;AAClC,MAAI,KAAA;AACJ,MAAI,CAAC,QAAQ,UAAU,IAAI;AAC3B,MAAI,aAAa,SAAS,WAAW;AACnC,iBAAa;AAAA,EACf;AACA,SAAO,EAAE,QAAQ,YAAY,GAAG,KAAA;AAClC;AAEA,MAAM,cAAc,SAAU,OAAO;AACnC,MAAI,EAAE,UAAU,UAAA,IAAc;AAC9B,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AACA,MAAI,aAAa,MAAM;AACrB,gBAAY;AAAA,EACd;AACA,QAAM,MAAM,WAAW,UAAU,SAAS;AAC1C,SAAOA,MAAEC,YAAAA,uBAAuB,GAAG;AACrC;AAEA,MAAM,oBAAoB,SAAU,OAAO;AACzC,QAAM,EAAE,aAAa,UAAUC,MAAAA,WAAWC,OAAAA,iBAAiB;AAC3D,QAAM,EAAE,aAAA,IAAiBD,MAAAA,WAAWE,wBAAiB;AACrD,MAAI,gBAAgB,MAAM;AACxB,WAAO;AAAA,EACT;AACA,QAAM,EAAE,cAAc;AACtB,QAAM,CAAC,cAAc,WAAW,IAAIC,MAAAA,SAAS,IAAI;AACjD,QAAM,EAAE,MAAA,IAAUH,MAAAA,WAAWI,8BAAkB;AAC/C,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,CAAC,QAAQ,MAAM,OAAO,IAAI,YAAY,OAAO;AAEjE,SAAON,MAAE,cAAc;AAAA,IACrBA,MAAEO,MAAU,EAAE,MAAM,cAAc,MAAM,GAAG,QAAQ,QAAQ;AAAA,IAC3DP,MAAEQ,OAAAA,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO,EAAE,QAAQ,OAAA;AAAA,MACjB,YAAY,KAAK;AACf,YAAI,gBAAgB,MAAM;AACxB;AAAA,QACF;AACA,eAAO,YAAY;AAAA,UACjB,aAAa,YAAY,GAAG;AAAA,UAC5B,SAAS,IAAI,YAAY;AAAA,QAAA,CAC1B;AAAA,MACH;AAAA,MACA,YAAY,KAAK;AACf,YAAI,gBAAgB,MAAM;AACxB;AAAA,QACF;AACA,eAAO,YAAY;AAAA,UACjB,GAAG;AAAA,UACH,YAAY,YAAY,GAAG;AAAA,QAAA,CAC5B;AAAA,MACH;AAAA,MAEA,UAAU,KAAK;AACb,cAAM,aAAa,YAAY,GAAG;AAClC,cAAM,WAAW,WAAW,EAAE,GAAG,cAAc,YAAY;AAC3D,oBAAY,IAAI;AAChB,eAAO,aAAa,QAAQ;AAAA,MAC9B;AAAA,IAAA,CACD;AAAA,IACDR,MAAE,aAAa,EAAE,UAAU,cAAc;AAAA,EAAA,CAC1C;AACH;AAEA,kBAAkB,eAAe;AAAA,EAC/B,WAAW;AACb;;"}