@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
1 lines • 3.79 kB
Source Map (JSON)
{"version":3,"file":"swatch.cjs","sources":["../../../src/editor/facies/swatch.ts"],"sourcesContent":["import { Component } from \"react\";\nimport { ColumnDivision, FaciesContext } from \"../../context\";\nimport { RaisedSelect } from \"../util\";\nimport h from \"../main.module.scss\";\n\nconst FaciesRow = ({ facies }) =>\n h(\"span.facies-picker-row\", [\n h(BasicFaciesSwatch, { facies, className: \"facies-color-swatch\" }),\n h(\"span.facies-picker-name\", facies.name),\n ]);\n\ninterface FaciesPickerProps {\n interval: ColumnDivision;\n onChange: (f: number) => void;\n}\n\nexport class FaciesPicker extends Component<FaciesPickerProps> {\n static contextType = FaciesContext;\n declare context: any;\n\n render() {\n const { facies } = this.context;\n const { interval, onChange } = this.props;\n\n const options = facies.map((f) => ({\n value: f.id,\n label: h(FaciesRow, { facies: f }),\n }));\n\n let value = options.find((d) => d.value === interval.facies);\n if (value == null) {\n value = null;\n }\n\n return h(RaisedSelect, {\n id: \"facies-select\",\n options,\n value,\n selected: interval.facies,\n isClearable: true,\n onChange(res) {\n console.log(\"Changing\", res);\n const f = res != null ? res.value : null;\n return onChange(f);\n },\n });\n }\n}\n\n//import { Swatch } from \"@uiw/react-color\";\n//import { Popover } from \"@blueprintjs/core\";\n//import { FaciesContext } from \"../../context\";\n\ninterface FaciesColorPickerProps {\n facies: {\n id: number;\n color: string;\n };\n}\n\n// class FaciesColorPicker extends Component<FaciesColorPickerProps> {\n// static contextType = FaciesContext;\n// declare context: any;\n//\n// render() {\n// const { setFaciesColor } = this.context;\n// const { facies: d } = this.props;\n// return h(\"div\", [\n// h(Swatch, {\n// color: d.color || \"black\",\n// onChange(color) {\n// return setFaciesColor(d.id, color.hex);\n// },\n// }),\n// ]);\n// }\n// }\n\nexport const BasicFaciesSwatch = ({ facies: d, ...rest }) =>\n h(\"div.color-swatch\", {\n style: {\n backgroundColor: d.color || \"black\",\n width: \"2em\",\n height: \"2em\",\n },\n ...rest,\n });\n\ninterface FaciesSwatchProps {\n isEditable: boolean;\n facies: {\n id: number;\n color: string;\n } | null;\n}\n\nexport function FaciesSwatch(props: FaciesSwatchProps) {\n const { facies, isEditable = false } = props;\n return h(BasicFaciesSwatch, { facies });\n}\n"],"names":["facies","h","Component","FaciesContext","RaisedSelect"],"mappings":";;;;;;AAKA,MAAM,YAAY,CAAC,EAAE,QAAAA,cACnBC,YAAAA,QAAE,0BAA0B;AAAA,EAC1BA,YAAAA,QAAE,mBAAmB,EAAE,QAAAD,SAAQ,WAAW,uBAAuB;AAAA,EACjEC,oBAAE,2BAA2BD,QAAO,IAAI;AAC1C,CAAC;AAOI,MAAM,qBAAqBE,MAAAA,UAA6B;AAAA,EAC7D,OAAO,cAAcC,OAAAA;AAAAA,EAGrB,SAAS;AACP,UAAM,EAAE,QAAAH,YAAW,KAAK;AACxB,UAAM,EAAE,UAAU,SAAA,IAAa,KAAK;AAEpC,UAAM,UAAUA,QAAO,IAAI,CAAC,OAAO;AAAA,MACjC,OAAO,EAAE;AAAA,MACT,OAAOC,YAAAA,QAAE,WAAW,EAAE,QAAQ,GAAG;AAAA,IAAA,EACjC;AAEF,QAAI,QAAQ,QAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,SAAS,MAAM;AAC3D,QAAI,SAAS,MAAM;AACjB,cAAQ;AAAA,IACV;AAEA,WAAOA,YAAAA,QAAEG,KAAAA,cAAc;AAAA,MACrB,IAAI;AAAA,MACJ;AAAA,MACA;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,aAAa;AAAA,MACb,SAAS,KAAK;AACZ,gBAAQ,IAAI,YAAY,GAAG;AAC3B,cAAM,IAAI,OAAO,OAAO,IAAI,QAAQ;AACpC,eAAO,SAAS,CAAC;AAAA,MACnB;AAAA,IAAA,CACD;AAAA,EACH;AACF;AA+BO,MAAM,oBAAoB,CAAC,EAAE,QAAQ,GAAG,GAAG,KAAA,MAChDH,YAAAA,QAAE,oBAAoB;AAAA,EACpB,OAAO;AAAA,IACL,iBAAiB,EAAE,SAAS;AAAA,IAC5B,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,GAAG;AACL,CAAC;AAUI,SAAS,aAAa,OAA0B;AACrD,QAAM,EAAE,QAAAD,SAAQ,aAAa,MAAA,IAAU;AACvC,SAAOC,oBAAE,mBAAmB,EAAE,QAAAD,SAAQ;AACxC;;;;"}