{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-function-completion/src/babylonian-programming-editor/ui/buttons.js"],"names":["Button","callback","additionalClasses","hoverText","button","addEventListener","cls","classList","add","DeleteButton","SwitchButton","isOn","ExpandButton","ErrorButton","Function","PrePostscriptButton","classes","push","InstanceButton","AddButton","MinusButton","TextButton","text","length"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,eAASA,MAAT,CAAgBC,QAAhB,EAA0BC,oBAAoB,EAA9C,EAAkDC,YAAY,EAA9D,EAAkE;AACvE,YAAIC,uEAAqB,MAArB,iCAAmCD,SAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAAJ;AACAC,eAAOC,gBAAP,CAAwB,OAAxB,EAAiCJ,QAAjC;AACA,aAAI,IAAIK,GAAR,IAAeJ,iBAAf,EAAkC;AAChCE,iBAAOG,SAAP,CAAiBC,GAAjB,CAAqBF,GAArB;AACD;AACD,eAAOF,MAAP;AACD;;;;AAEM,eAASK,YAAT,CAAsBR,QAAtB,EAAgC;AACrC,eAAOD,OAAOC,QAAP,EAAiB,CAAC,eAAD,CAAjB,EAAoC,QAApC,CAAP;AACD;;;;AAEM,eAASS,YAAT,CAAsBT,QAAtB,EAAgCU,IAAhC,EAAsC;AAC3C,eAAOX,OAAOC,QAAP,EAAiB,CAAC,eAAD,EAAkB,cAAlB,EAAkCU,OAAO,IAAP,GAAc,KAAhD,CAAjB,CAAP;AACD;;;;AAEM,eAASC,YAAT,CAAsBX,QAAtB,EAAgC;AACrC,eAAOD,OAAOC,QAAP,EAAiB,CAAC,QAAD,EAAW,cAAX,CAAjB,EAA6C,oBAA7C,CAAP;AACD;;;;AAEM,eAASY,WAAT,CAAqBV,SAArB,EAAgC;AACrC,eAAOH,OAAOc,UAAP,EAAmB,CAAC,MAAD,EAAS,cAAT,CAAnB,EAA6CX,SAA7C,CAAP;AACD;;;;AAEM,eAASY,mBAAT,CAA6Bd,QAA7B,EAAuCU,IAAvC,EAA6C;AAClD,cAAMK,UAAU,CAAC,UAAD,EAAa,cAAb,CAAhB;AACA,YAAGL,IAAH,EAAS;AACPK,kBAAQC,IAAR,CAAa,IAAb;AACD;AACD,eAAOjB,OAAOC,QAAP,EAAiBe,OAAjB,EAA0B,qBAA1B,CAAP;AACD;;;;AAEM,eAASE,cAAT,CAAwBjB,QAAxB,EAAkC;AACvC,eAAOD,OAAOC,QAAP,EAAiB,CAAC,cAAD,EAAiB,cAAjB,CAAjB,EAAmD,gBAAnD,CAAP;AACD;;;;AAEM,eAASkB,SAAT,CAAmBlB,QAAnB,EAA6B;AAClC,eAAOD,OAAOC,QAAP,EAAiB,CAAC,MAAD,CAAjB,EAA2B,KAA3B,CAAP;AACD;;;;AAEM,eAASmB,WAAT,CAAqBnB,QAArB,EAA+B;AACpC,eAAOD,OAAOC,QAAP,EAAiB,CAAC,OAAD,CAAjB,EAA4B,QAA5B,CAAP;AACD;;;;AAEM,eAASoB,UAAT,CAAoBC,IAApB,EAA0BhB,GAA1B,EAA+BL,QAA/B,EAAyC;AAC9C,YAAIG,wJACe,UAAUE,GADzB,iCACqCgB,IADrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wDAEGA,KAAKC,MAAL,iEAA0B,MAA1B,+BAAkCD,IAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAiD,EAFpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAAJ;AAIAlB,eAAOC,gBAAP,CAAwB,OAAxB,EAAiCJ,QAAjC;AACA,eAAOG,MAAP;AACD","file":"buttons.js","sourcesContent":["export function Button(callback, additionalClasses = [], hoverText = \"\") {\n  let button = <span class=\"icon\" title={hoverText}></span>\n  button.addEventListener(\"click\", callback);\n  for(let cls of additionalClasses) {\n    button.classList.add(cls);\n  }\n  return button;\n}\n\nexport function DeleteButton(callback) {\n  return Button(callback, [\"delete-button\"], \"Delete\");\n}\n\nexport function SwitchButton(callback, isOn) {\n  return Button(callback, [\"switch-button\", \"space-before\", isOn ? \"on\" : \"off\"]);\n}\n\nexport function ExpandButton(callback) {\n  return Button(callback, [\"expand\", \"space-before\"], \"Switch form layout\");\n}\n\nexport function ErrorButton(hoverText) {\n  return Button(Function(), [\"warn\", \"space-before\"], hoverText);\n}\n\nexport function PrePostscriptButton(callback, isOn) {\n  const classes = [\"exchange\", \"space-before\"];\n  if(isOn) {\n    classes.push(\"on\");\n  }\n  return Button(callback, classes, \"Edit Pre/Postscript\");\n}\n\nexport function InstanceButton(callback) {\n  return Button(callback, [\"object-group\", \"space-before\"], \"Edit Instances\");\n}\n\nexport function AddButton(callback) {\n  return Button(callback, [\"plus\"], \"Add\");\n}\n\nexport function MinusButton(callback) {\n  return Button(callback, [\"minus\"], \"Delete\");\n}\n\nexport function TextButton(text, cls, callback) {\n  let button = <button>\n        <span class={\"icon \" + cls} title={text}></span>\n        {text.length ? <span class=\"text\">{text}</span> : \"\"}\n      </button>;\n  button.addEventListener(\"click\", callback);\n  return button;\n}"]}