{"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;;"}