AmberSnapsvg.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. define("amber-snapsvg/AmberSnapsvg", ["amber/boot", "amber_core/Kernel-Objects"], function($boot){
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. $core.addPackage('AmberSnapsvg');
  4. $core.packages["AmberSnapsvg"].transport = {"type":"amd","amdNamespace":"amber-snapsvg"};
  5. $core.addClass('AmberSnapsvg', $globals.Object, [], 'AmberSnapsvg');
  6. $core.addMethod(
  7. $core.method({
  8. selector: "augmentPage",
  9. protocol: 'starting',
  10. fn: function (){
  11. var self=this;
  12. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  13. return $core.withContext(function($ctx1) {
  14. //>>excludeEnd("ctx");
  15. var $1,$2;
  16. $1="#amber-with"._asJQuery();
  17. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  18. $ctx1.sendIdx["asJQuery"]=1;
  19. //>>excludeEnd("ctx");
  20. $recv($1)._click_((function(){
  21. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  22. return $core.withContext(function($ctx2) {
  23. //>>excludeEnd("ctx");
  24. return self._doAmberWith();
  25. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  26. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  27. //>>excludeEnd("ctx");
  28. }));
  29. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  30. $ctx1.sendIdx["click:"]=1;
  31. //>>excludeEnd("ctx");
  32. $2="#jquery-append"._asJQuery();
  33. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  34. $ctx1.sendIdx["asJQuery"]=2;
  35. //>>excludeEnd("ctx");
  36. $recv($2)._click_((function(){
  37. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  38. return $core.withContext(function($ctx2) {
  39. //>>excludeEnd("ctx");
  40. return self._doJQueryAppend();
  41. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  42. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  43. //>>excludeEnd("ctx");
  44. }));
  45. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  46. $ctx1.sendIdx["click:"]=2;
  47. //>>excludeEnd("ctx");
  48. $recv("#snapsvg-button"._asJQuery())._click_((function(){
  49. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  50. return $core.withContext(function($ctx2) {
  51. //>>excludeEnd("ctx");
  52. return self._doSnapSvg();
  53. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  54. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
  55. //>>excludeEnd("ctx");
  56. }));
  57. return self;
  58. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  59. }, function($ctx1) {$ctx1.fill(self,"augmentPage",{},$globals.AmberSnapsvg)});
  60. //>>excludeEnd("ctx");
  61. },
  62. //>>excludeStart("ide", pragmas.excludeIdeData);
  63. args: [],
  64. source: "augmentPage\x0a\x09'#amber-with' asJQuery click: [ self doAmberWith ].\x0a\x09'#jquery-append' asJQuery click: [ self doJQueryAppend ].\x0a\x09'#snapsvg-button' asJQuery click: [self doSnapSvg]",
  65. referencedClasses: [],
  66. //>>excludeEnd("ide");
  67. messageSends: ["click:", "asJQuery", "doAmberWith", "doJQueryAppend", "doSnapSvg"]
  68. }),
  69. $globals.AmberSnapsvg);
  70. $core.addMethod(
  71. $core.method({
  72. selector: "doAmberWith",
  73. protocol: 'action',
  74. fn: function (){
  75. var self=this;
  76. var tag;
  77. function $HTMLCanvas(){return $globals.HTMLCanvas||(typeof HTMLCanvas=="undefined"?nil:HTMLCanvas)}
  78. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  79. return $core.withContext(function($ctx1) {
  80. //>>excludeEnd("ctx");
  81. tag=$recv($recv($HTMLCanvas())._onJQuery_("#output-list"._asJQuery()))._root();
  82. $recv(tag)._with_((function(html){
  83. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  84. return $core.withContext(function($ctx2) {
  85. //>>excludeEnd("ctx");
  86. return $recv($recv(html)._li())._with_("Amber Web #with: added me!");
  87. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  88. }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1,1)});
  89. //>>excludeEnd("ctx");
  90. }));
  91. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  92. $ctx1.sendIdx["with:"]=1;
  93. //>>excludeEnd("ctx");
  94. return self;
  95. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  96. }, function($ctx1) {$ctx1.fill(self,"doAmberWith",{tag:tag},$globals.AmberSnapsvg)});
  97. //>>excludeEnd("ctx");
  98. },
  99. //>>excludeStart("ide", pragmas.excludeIdeData);
  100. args: [],
  101. source: "doAmberWith\x0a\x09| tag |\x0a\x09tag := (HTMLCanvas onJQuery: '#output-list' asJQuery) root.\x0a\x09tag with: [ :html | html li with: 'Amber Web #with: added me!' ]",
  102. referencedClasses: ["HTMLCanvas"],
  103. //>>excludeEnd("ide");
  104. messageSends: ["root", "onJQuery:", "asJQuery", "with:", "li"]
  105. }),
  106. $globals.AmberSnapsvg);
  107. $core.addMethod(
  108. $core.method({
  109. selector: "doJQueryAppend",
  110. protocol: 'action',
  111. fn: function (){
  112. var self=this;
  113. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  114. return $core.withContext(function($ctx1) {
  115. //>>excludeEnd("ctx");
  116. $recv("#output-list"._asJQuery())._append_("<li>jQuery append added me!</li>");
  117. return self;
  118. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  119. }, function($ctx1) {$ctx1.fill(self,"doJQueryAppend",{},$globals.AmberSnapsvg)});
  120. //>>excludeEnd("ctx");
  121. },
  122. //>>excludeStart("ide", pragmas.excludeIdeData);
  123. args: [],
  124. source: "doJQueryAppend\x0a\x09'#output-list' asJQuery append: '<li>jQuery append added me!</li>'",
  125. referencedClasses: [],
  126. //>>excludeEnd("ide");
  127. messageSends: ["append:", "asJQuery"]
  128. }),
  129. $globals.AmberSnapsvg);
  130. $core.addMethod(
  131. $core.method({
  132. selector: "doSnapSvg",
  133. protocol: 'action',
  134. fn: function (){
  135. var self=this;
  136. var s,snapLib,bigCircle,smallCircle;
  137. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  138. return $core.withContext(function($ctx1) {
  139. //>>excludeEnd("ctx");
  140. snapLib=$recv(require)._value_("snap.svg");
  141. s=$recv(snapLib)._value_value_((300),(600));
  142. bigCircle=$recv(s)._circle_value_value_((150),(150),(100));
  143. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  144. $ctx1.sendIdx["circle:value:value:"]=1;
  145. //>>excludeEnd("ctx");
  146. $recv(bigCircle)._attr_($globals.HashedCollection._newFromPairs_(["fill","#bada55","stroke","#000","strokeWidth",(5)]));
  147. smallCircle=$recv(s)._circle_value_value_((100),(150),(70));
  148. return self;
  149. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  150. }, function($ctx1) {$ctx1.fill(self,"doSnapSvg",{s:s,snapLib:snapLib,bigCircle:bigCircle,smallCircle:smallCircle},$globals.AmberSnapsvg)});
  151. //>>excludeEnd("ctx");
  152. },
  153. //>>excludeStart("ide", pragmas.excludeIdeData);
  154. args: [],
  155. source: "doSnapSvg\x0a\x22translation to Smalltalk points 1 to 4 of\x0ahttp://snapsvg.io/start/ \x22\x0a\x0a| s snapLib bigCircle smallCircle |\x0a\x0asnapLib := require value: 'snap.svg'.\x0as := snapLib value: 300 value: 600.\x0a\x0abigCircle := s circle: 150 value: 150 value: 100.\x0abigCircle attr: #{'fill' -> '#bada55'. 'stroke' -> '#000'. 'strokeWidth' -> 5}.\x0asmallCircle := s circle: 100 value: 150 value: 70.\x0a\x22Transcript show: s outerSVG.\x22\x0a\x22s inspect\x22",
  156. referencedClasses: [],
  157. //>>excludeEnd("ide");
  158. messageSends: ["value:", "value:value:", "circle:value:value:", "attr:"]
  159. }),
  160. $globals.AmberSnapsvg);
  161. $core.addMethod(
  162. $core.method({
  163. selector: "start",
  164. protocol: 'starting',
  165. fn: function (){
  166. var self=this;
  167. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  168. return $core.withContext(function($ctx1) {
  169. //>>excludeEnd("ctx");
  170. $recv(self._new())._augmentPage();
  171. return self;
  172. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  173. }, function($ctx1) {$ctx1.fill(self,"start",{},$globals.AmberSnapsvg.klass)});
  174. //>>excludeEnd("ctx");
  175. },
  176. //>>excludeStart("ide", pragmas.excludeIdeData);
  177. args: [],
  178. source: "start\x0a\x09self new augmentPage",
  179. referencedClasses: [],
  180. //>>excludeEnd("ide");
  181. messageSends: ["augmentPage", "new"]
  182. }),
  183. $globals.AmberSnapsvg.klass);
  184. });