{"version":3,"file":"picker-base.cjs","sources":["../../src/editor/picker-base.ts"],"sourcesContent":["/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * DS206: Consider reworking classes to avoid initClass\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nimport h from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { Component } from \"react\";\n\ninterface PickerControlProps {\n  states: { label: string; value: string }[];\n  activeState: string;\n  vertical: boolean;\n  isNullable: boolean;\n  onUpdate: (value: string) => void;\n}\n\nexport class PickerControl extends Component<PickerControlProps> {\n  constructor(props) {\n    super(props);\n    this.onUpdate = this.onUpdate.bind(this);\n  }\n\n  static defaultProps = {\n    states: [\n      { label: \"State 1\", value: \"state1\" },\n      { label: \"State 2\", value: \"state2\" },\n    ],\n    vertical: true,\n    isNullable: false,\n  };\n\n  render() {\n    const { states, activeState, vertical } = this.props;\n    let className = classNames(\"bp6-button-group\", \"bp6-fill\", {\n      \"bp6-vertical\": vertical,\n      \"bp6-align-left\": vertical,\n    });\n\n    return h(\"div.picker-control\", [\n      h(\n        \"div\",\n        { className },\n        states.map((d) => {\n          className = classNames(\"bp6-button\", {\n            \"bp6-active\": this.props.activeState === d.value,\n          });\n          return h(\n            \"button\",\n            {\n              type: \"button\",\n              className,\n              onClick: this.onUpdate(d.value),\n            },\n            d.label,\n          );\n        }),\n      ),\n    ]);\n  }\n  onUpdate(value) {\n    return () => {\n      if (value === this.props.activeState) {\n        if (!this.props.isNullable) {\n          return;\n        }\n        value = null;\n      }\n      if (this.props.onUpdate == null) {\n        return;\n      }\n      return this.props.onUpdate(value);\n    };\n  }\n}\n"],"names":["Component","classNames","h"],"mappings":";;;;;;;;AAmBO,MAAM,sBAAsBA,MAAAA,UAA8B;AAAA,EAC/D,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AAAA,EACzC;AAAA,EAEA,OAAO,eAAe;AAAA,IACpB,QAAQ;AAAA,MACN,EAAE,OAAO,WAAW,OAAO,SAAA;AAAA,MAC3B,EAAE,OAAO,WAAW,OAAO,SAAA;AAAA,IAAS;AAAA,IAEtC,UAAU;AAAA,IACV,YAAY;AAAA,EAAA;AAAA,EAGd,SAAS;AACP,UAAM,EAAE,QAAQ,aAAa,SAAA,IAAa,KAAK;AAC/C,QAAI,YAAYC,oBAAAA,QAAW,oBAAoB,YAAY;AAAA,MACzD,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,IAAA,CACnB;AAED,WAAOC,WAAAA,QAAE,sBAAsB;AAAA,MAC7BA,WAAAA;AAAAA,QACE;AAAA,QACA,EAAE,UAAA;AAAA,QACF,OAAO,IAAI,CAAC,MAAM;AAChB,sBAAYD,oBAAAA,QAAW,cAAc;AAAA,YACnC,cAAc,KAAK,MAAM,gBAAgB,EAAE;AAAA,UAAA,CAC5C;AACD,iBAAOC,WAAAA;AAAAA,YACL;AAAA,YACA;AAAA,cACE,MAAM;AAAA,cACN;AAAA,cACA,SAAS,KAAK,SAAS,EAAE,KAAK;AAAA,YAAA;AAAA,YAEhC,EAAE;AAAA,UAAA;AAAA,QAEN,CAAC;AAAA,MAAA;AAAA,IACH,CACD;AAAA,EACH;AAAA,EACA,SAAS,OAAO;AACd,WAAO,MAAM;AACX,UAAI,UAAU,KAAK,MAAM,aAAa;AACpC,YAAI,CAAC,KAAK,MAAM,YAAY;AAC1B;AAAA,QACF;AACA,gBAAQ;AAAA,MACV;AACA,UAAI,KAAK,MAAM,YAAY,MAAM;AAC/B;AAAA,MACF;AACA,aAAO,KAAK,MAAM,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AACF;;"}