{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-function-completion/src/components/widgets/lively-crayoncolors.js"],"names":["Morph","ContextMenu","Colors","CrayonColors","initialize","drawColorTable","get","style","display","addEventListener","evt","onChooseColor","onChooseCustomColor","chooser","colorTable","forEach","row","rowElement","document","createElement","classList","add","appendChild","color","colorField","backgroundColor","value","onColorChoosen","useAlwaysCustom","forceAlwaysCustom","visibility","dispatchEvent","CustomEvent","detail"],"mappings":";;;;;;;;;AAAOA,W;;AACAC,iB;;AACAC,Y;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGQ,YAAMC,YAAN,SAA2BH,KAA3B,CAAiC;;AAE9CI,qBAAa;AACX,eAAKC,cAAL;AACA,eAAKC,GAAL,CAAS,eAAT,EAA0BC,KAA1B,CAAgCC,OAAhC,GAA0C,MAA1C;AACA,eAAKF,GAAL,CAAS,QAAT,EAAmBG,gBAAnB,CAAoC,OAApC,EAA6CC,OAAO,KAAKC,aAAL,CAAmBD,GAAnB,CAApD;AACA,eAAKJ,GAAL,CAAS,eAAT,EAA0BG,gBAA1B,CAA2C,OAA3C,EAAoDC,OAAO,KAAKE,mBAAL,CAAyBF,GAAzB,CAA3D;AAED;;AAEDL,yBAAiB;AACf,cAAIQ,UAAU,KAAKP,GAAL,CAAS,eAAT,CAAd;AACAJ,iBAAOY,UAAP,GAAoBC,OAApB,CAA4BC,OAAO;AACjC,gBAAIC,gCAAaC,SAASC,aAAT,CAAuB,KAAvB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAJ;AACAF,uBAAWG,SAAX,CAAqBC,GAArB,CAAyB,KAAzB;AACAR,oBAAQS,WAAR,CAAoBL,UAApB;AACAD,gBAAID,OAAJ,CAAaQ,SAAS;AACpB,kBAAIC,gCAAaN,SAASC,aAAT,CAAuB,KAAvB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAJ;AACAK,yBAAWJ,SAAX,CAAqBC,GAArB,CAAyB,OAAzB;AACAJ,yBAAWK,WAAX,CAAuBE,UAAvB;AACAA,yBAAWjB,KAAX,CAAiBkB,eAAjB,GAAmCF,MAAMG,KAAzC;AACAF,yBAAWf,gBAAX,CAA4B,OAA5B,EAAqCC,OAAO,KAAKiB,cAAL,CAAoBJ,MAAMG,KAA1B,CAA5C;AACD,aAND;AAQD,WAZD;AAaD;;AAEDE,0BAAkB;AAChB,eAAKC,iBAAL,GAAyB,IAAzB;AACA,eAAKvB,GAAL,CAAS,eAAT,EAA0BC,KAA1B,CAAgCuB,UAAhC,GAA6C,QAA7C;AACD;;AAEDnB,wBAAgB;AACd,cAAI,KAAKkB,iBAAT,EAA4B;AAC1B,iBAAKjB,mBAAL;AACD,WAFD,MAEO;AACL,iBAAKc,KAAL,GAAa,KAAKA,KAAlB,CADK,CACoB;AAC1B;AACF;;AAEDd,8BAAsB;AACpB,cAAG,KAAKN,GAAL,CAAS,eAAT,EAA0BC,KAA1B,CAAgCC,OAAhC,IAA2C,OAA9C,EACE,KAAKF,GAAL,CAAS,eAAT,EAA0BC,KAA1B,CAAgCC,OAAhC,GAA0C,MAA1C,CADF,KAGE,KAAKF,GAAL,CAAS,eAAT,EAA0BC,KAA1B,CAAgCC,OAAhC,GAA0C,OAA1C;AACH;;AAEDmB,uBAAeJ,KAAf,EAAsB;AACpB,eAAKG,KAAL,GAAaH,KAAb;AACA,eAAKjB,GAAL,CAAS,eAAT,EAA0BC,KAA1B,CAAgCC,OAAhC,GAA0C,MAA1C;AACD;;AAED,YAAIkB,KAAJ,GAAY;AACV,iBAAO,KAAKpB,GAAL,CAAS,QAAT,EAAmBC,KAAnB,CAAyBkB,eAAhC;AACD;;AAED,YAAIC,KAAJ,CAAUH,KAAV,EAAiB;AACf,eAAKjB,GAAL,CAAS,QAAT,EAAmBC,KAAnB,CAAyBkB,eAAzB,GAA2CF,KAA3C;AACA,eAAKQ,aAAL,CAAmB,IAAIC,WAAJ,CAAgB,eAAhB,EAAiC,EAACC,QAAQ,EAACP,OAAOH,KAAR,EAAT,EAAjC,CAAnB;AACD;;AA3D6C;;yBAA3BpB,Y","file":"lively-crayoncolors.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js';\nimport ContextMenu from 'src/client/contextmenu.js';\nimport Colors from 'src/client/crayoncolors.js';\n\n\nexport default class CrayonColors extends Morph {\n      \n  initialize() {\n    this.drawColorTable()\n    this.get(\"#colorChooser\").style.display = \"none\"\n    this.get(\"#field\").addEventListener(\"click\", evt => this.onChooseColor(evt))\n    this.get(\"#selectCustom\").addEventListener(\"click\", evt => this.onChooseCustomColor(evt))\n    \n  }\n\n  drawColorTable() { \n    var chooser = this.get(\"#colorChooser\")\n    Colors.colorTable().forEach(row => {\n      var rowElement = document.createElement(\"div\")\n      rowElement.classList.add(\"row\")\n      chooser.appendChild(rowElement)\n      row.forEach( color => {\n        var colorField = document.createElement(\"div\")\n        colorField.classList.add(\"color\")\n        rowElement.appendChild(colorField)\n        colorField.style.backgroundColor = color.value\n        colorField.addEventListener(\"click\", evt => this.onColorChoosen(color.value))\n      })\n      \n    })\n  }\n\n  useAlwaysCustom() {\n    this.forceAlwaysCustom = true;\n    this.get(\"#selectCustom\").style.visibility = \"hidden\"\n  }\n  \n  onChooseColor() {\n    if (this.forceAlwaysCustom) {\n      this.onChooseCustomColor()\n    } else {\n      this.value = this.value; // emit event\n    }\n  }\n\n  onChooseCustomColor() {\n    if(this.get(\"#colorChooser\").style.display == \"block\")\n      this.get(\"#colorChooser\").style.display = \"none\"\n    else\n      this.get(\"#colorChooser\").style.display = \"block\"\n  }\n\n  onColorChoosen(color) {\n    this.value = color\n    this.get(\"#colorChooser\").style.display = \"none\"\n  }\n  \n  get value() {\n    return this.get(\"#field\").style.backgroundColor\n  }\n\n  set value(color) {\n    this.get(\"#field\").style.backgroundColor = color\n    this.dispatchEvent(new CustomEvent(\"value-changed\", {detail: {value: color}}))\n  }\n  \n}\n      \n\n     \n      "]}