{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-RP19-4/src/client/reactive/components/rewritten/jumping-cubes-cube.js"],"names":["Morph","uuid","shake","JumpingCubesCube","initialize","registerButtons","addEventListener","evt","onDblClick","v","get","getAttribute","div","createElement","appendChild","inc","notify","animate","backgroundColor","duration","onPlusButton","onMinusButton","livelyPrepareSave","setAttribute","livelyPreMigrate","livelyMigrate","other","livelyInspect","contentNode","inspector","livelyExample"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;AAEOA,W;;AACEC,U,UAAAA,I;AAAMC,W,UAAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,YAAMC,gBAAN,SAA+BH,KAA/B,CAAqC;AAClD,cAAMI,UAAN,GAAmB;AAAA;;AACjB,0CAAmB,kBAAnB;AADiB;AAEjB,eAAKC,eAAL;;AAFiB;AAIjB,oFAAOC,gBAAP,CAAwB,UAAxB,EAAoC,IAApC,EAA0C,UAA1C,EACEC;AAAA;AAAO,qGAAKC,UAAL,6EAAgBD,GAAhB;AAAP,WADF;;AAGA,mCAAM;AAAM;AAAN,WAAN,CAAuC,yBAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA2EE;AAAA;AAAK,0GAAKC,GAAL,CAAS,cAAT,yFAAqCD,CAArC;AAAL,WAA3E;AACC,iGAAKC,GAAL,CAAS,YAAT,aAA+B,qFAAKC,YAAL,CAAkB,aAAlB,MAAoC,CAAnE;;AAEA,iGAAKD,GAAL,CAAS,YAAT,aAA+B,qFAAKC,YAAL,CAAkB,aAAlB,MAAoC,CAAnE;AACD,gBAAMC,8GAAM,8EAASC,aAAT,CAAuB,MAAvB,CAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAN;AACA,oHAAgB,MAAhB;AAZiB;AAajB,eAAKC,WAAL,6EAAiBF,GAAjB;AACD;;AAEDG,cAAM;AAAA;;AACJ,oFAAOC,MAAP,CAAc,uBAAY,IAAZ,UAAd;AACD;;AAEDR,qBAAa;AACX,gGAAM,IAAN;AADW;AAEX,eAAKS,OAAL,CAAa,CACX,EAACC,iBAAiB,WAAlB,EADW,EAEX,EAACA,iBAAiB,KAAlB,EAFW,EAGX,EAACA,iBAAiB,WAAlB,EAHW,CAAb,EAIG;AACDC,sBAAU;AADT,WAJH;AAOD;;AAED,SAAC,eAAD,IAAoB;AAAA;;AAClB,eAAKJ,GAAL;AACD;AACD;AACAK,uBAAe;AACb,iGAAKV,GAAL,CAAS,YAAT,aAAgC,oKAAW,KAAKA,GAAL,CAAS,YAAT,CAAX,eAA2C,CAA3E;AACD;;AAEDW,wBAAgB;AACd,iGAAKX,GAAL,CAAS,YAAT,aAAgC,oKAAW,KAAKA,GAAL,CAAS,YAAT,CAAX,eAA2C,CAA3E;AACD;;AAED;;AAEA;AACAY,4BAAoB;AAAA;;AAClB,eAAKC,YAAL,CAAkB,aAAlB,oFAAiC,KAAKb,GAAL,CAAS,YAAT,CAAjC;AACD;;AAEDc,2BAAmB;AACjB;AACD;;AAEDC,sBAAcC,KAAd,EAAqB;AAAA;;AACnB;AACA;AACA,gJAA8BA,KAA9B;AACD;;AAEDC,sBAAcC,WAAd,EAA2BC,SAA3B,EAAsC;AACpC;AACD;;AAED,cAAMC,aAAN,GAAsB;AACpB;AACA;AACA,mEAA6B,WAA7B;AACA,qDAA8B,EAA9B;AAJoB;AAKpB,eAAKhB,WAAL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACD;;AAvEiD;;yBAA/BX,gB","file":"jumping-cubes-cube.js","sourcesContent":["\"enable aexpr\";\n\nimport Morph from 'src/components/widgets/lively-morph.js';\nimport { uuid, shake } from 'utils';\n\nexport default class JumpingCubesCube extends Morph {\n  async initialize() {\n    this.windowTitle = \"JumpingCubesCube\";\n    this.registerButtons();\n\n    lively.addEventListener(\"template\", this, \"dblclick\", \n      evt => this.onDblClick(evt))\n    \n    aexpr(() => this.someJavaScriptProperty/*getAttribute('value')*/).dataflow(v => this.get('#value-label').innerHTML = v);\n     this.get(\"#textField\").value = this.getAttribute(\"data-mydata\") || 2;\n    \n     this.get(\"#textField\").value = this.getAttribute(\"data-mydata\") || 2;\n    const div = document.createElement('span')\n    div.innerHTML = 'test'\n    this.appendChild(div)\n  }\n  \n  inc() {\n    lively.notify('inc to ' + this.value);\n  }\n  \n  onDblClick() {\n    shake(this);\n    this.animate([\n      {backgroundColor: \"lightgray\"},\n      {backgroundColor: \"red\"},\n      {backgroundColor: \"lightgray\"},\n    ], {\n      duration: 1000\n    })\n  }\n  \n  ['onTemp-button']() {\n    this.inc();\n  }\n  // this method is automatically registered as handler through ``registerButtons``\n  onPlusButton() {\n    this.get(\"#textField\").value =  parseFloat(this.get(\"#textField\").value) + 1\n  }\n  \n  onMinusButton() {\n    this.get(\"#textField\").value =  parseFloat(this.get(\"#textField\").value) - 1\n  }\n\n  /* Lively-specific API */\n\n  // store something that would be lost\n  livelyPrepareSave() {\n    this.setAttribute(\"data-mydata\", this.get(\"#textField\").value)\n  }\n  \n  livelyPreMigrate() {\n    // is called on the old object before the migration\n  }\n  \n  livelyMigrate(other) {\n    // whenever a component is replaced with a newer version during development\n    // this method is called on the new object during migration, but before initialization\n    this.someJavaScriptProperty = other.someJavaScriptProperty\n  }\n  \n  livelyInspect(contentNode, inspector) {\n    // do nothing\n  }\n  \n  async livelyExample() {\n    // this customizes a default instance to a pretty example\n    // this is used by the \n    this.style.backgroundColor = \"lightgray\"\n    this.someJavaScriptProperty = 42\n    this.appendChild(<div>This is my content</div>)\n  }\n  \n  \n}"]}