DOMite.js 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139
  1. define("domite/DOMite", ["amber/boot", "amber_core/Kernel-Collections"], function($boot){
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. $core.addPackage('DOMite');
  4. $core.packages["DOMite"].innerEval = function (expr) { return eval(expr); };
  5. $core.packages["DOMite"].transport = {"type":"amd","amdNamespace":"domite"};
  6. $core.addClass('Domite', $globals.ProtoStream, ['element', 'reference'], 'DOMite');
  7. //>>excludeStart("ide", pragmas.excludeIdeData);
  8. $globals.Domite.comment="I am (hopefully thin) wrapper around the notion of \x22cursor in a page\x22.\x0aI represent a DOM node _and_ a point where\x0ato insert new content into it.\x0a\x0aSo I play both the role of a container that inserts\x0aas well as the role of an element being inserted.\x0a\x0aI inherit from `ProtoStream`.\x0a\x0aCreation API:\x0a\x0a - `Domite new` creates an insertion point at the bottom of `<body>`.\x0a - `Domite newStream` is unique way to create pieces of content. It creates an instance \x22floating in thin air\x22 (wrapper around DOM DocumentFragment) that can be filled with any contents and then inserted in a page.\x0a - `Domite fromElement: aDomElement` wraps an element and set the cursor to its end.\x0a\x0aCSS selector API:\x0a\x0a - `Domite at: aSelector` wraps an element found by `document.querySelector(aSelector)`.\x0a\x0aManipulation API:\x0a\x0a - `aDomite << obj` inserts obj at the insertion point.\x0a - `aDomite resetContents` deletes contents of the wrapped element.\x0a\x0aCursor moving API:\x0a\x0aTake this sample HTML, where `[n]` are just markers, not real content:\x0a\x0a```\x0a<body>\x0a <h1>header</h1>\x0a [4]<p>[2]Hello[1]world[3]</p>[5]\x0a <small>footer</small>\x0a</body>\x0a```\x0a\x0aIf `d` is a `Domite` representing `[1]`, then:\x0a\x0a - `d setToStart` would move `d` to be at `[2]`,\x0a - `d setToEnd` would move `d` to be at `[3]`,\x0a - `d setToBefore` would move `d` to be at `[4]`, and\x0a - `d setToAfter` would move `d` to be at `[5]`.\x0a\x0aIt is not presumed one would use `setToXxx`\x0ato actually move around in a single instance.\x0aIt is envisioned this API will be used mostly\x0ain combination with `copy`, like\x0a`afterMe := self copy setToAfter`.";
  9. //>>excludeEnd("ide");
  10. $core.addMethod(
  11. $core.method({
  12. selector: "=",
  13. protocol: 'comparing',
  14. fn: function (aDomite){
  15. var self=this;
  16. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  17. return $core.withContext(function($ctx1) {
  18. //>>excludeEnd("ctx");
  19. var $3,$2,$5,$4,$6,$1;
  20. $3=self._class();
  21. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  22. $ctx1.sendIdx["class"]=1;
  23. //>>excludeEnd("ctx");
  24. $2=$recv($3).__eq($recv(aDomite)._class());
  25. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  26. $ctx1.sendIdx["="]=1;
  27. //>>excludeEnd("ctx");
  28. $1=$recv($2)._and_((function(){
  29. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  30. return $core.withContext(function($ctx2) {
  31. //>>excludeEnd("ctx");
  32. $5=self._element();
  33. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  34. $ctx2.sendIdx["element"]=1;
  35. //>>excludeEnd("ctx");
  36. $4=$recv($5).__eq($recv(aDomite)._element());
  37. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  38. $ctx2.sendIdx["="]=2;
  39. //>>excludeEnd("ctx");
  40. return $recv($4)._and_((function(){
  41. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  42. return $core.withContext(function($ctx3) {
  43. //>>excludeEnd("ctx");
  44. $6=self._reference();
  45. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  46. $ctx3.sendIdx["reference"]=1;
  47. //>>excludeEnd("ctx");
  48. return $recv($6).__eq($recv(aDomite)._reference());
  49. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  50. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  51. //>>excludeEnd("ctx");
  52. }));
  53. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  54. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  55. //>>excludeEnd("ctx");
  56. }));
  57. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  58. $ctx1.sendIdx["and:"]=1;
  59. //>>excludeEnd("ctx");
  60. return $1;
  61. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  62. }, function($ctx1) {$ctx1.fill(self,"=",{aDomite:aDomite},$globals.Domite)});
  63. //>>excludeEnd("ctx");
  64. },
  65. //>>excludeStart("ide", pragmas.excludeIdeData);
  66. args: ["aDomite"],
  67. source: "= aDomite\x0a\x09^ self class = aDomite class and: [\x0a\x09\x09self element = aDomite element and: [\x0a\x09\x09\x09self reference = aDomite reference ]]",
  68. referencedClasses: [],
  69. //>>excludeEnd("ide");
  70. messageSends: ["and:", "=", "class", "element", "reference"]
  71. }),
  72. $globals.Domite);
  73. $core.addMethod(
  74. $core.method({
  75. selector: "asJQuery",
  76. protocol: 'converting',
  77. fn: function (){
  78. var self=this;
  79. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  80. return $core.withContext(function($ctx1) {
  81. //>>excludeEnd("ctx");
  82. var $1;
  83. $1=$recv(self._element())._asJQuery();
  84. return $1;
  85. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  86. }, function($ctx1) {$ctx1.fill(self,"asJQuery",{},$globals.Domite)});
  87. //>>excludeEnd("ctx");
  88. },
  89. //>>excludeStart("ide", pragmas.excludeIdeData);
  90. args: [],
  91. source: "asJQuery\x0a\x09^ self element asJQuery",
  92. referencedClasses: [],
  93. //>>excludeEnd("ide");
  94. messageSends: ["asJQuery", "element"]
  95. }),
  96. $globals.Domite);
  97. $core.addMethod(
  98. $core.method({
  99. selector: "at:",
  100. protocol: 'accessing',
  101. fn: function (aString){
  102. var self=this;
  103. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  104. return $core.withContext(function($ctx1) {
  105. //>>excludeEnd("ctx");
  106. var $1;
  107. $1=$recv(self._class())._fromElement_($recv(self._element())._querySelector_(aString));
  108. return $1;
  109. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  110. }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},$globals.Domite)});
  111. //>>excludeEnd("ctx");
  112. },
  113. //>>excludeStart("ide", pragmas.excludeIdeData);
  114. args: ["aString"],
  115. source: "at: aString\x0a\x09^ self class fromElement: (self element querySelector: aString)",
  116. referencedClasses: [],
  117. //>>excludeEnd("ide");
  118. messageSends: ["fromElement:", "class", "querySelector:", "element"]
  119. }),
  120. $globals.Domite);
  121. $core.addMethod(
  122. $core.method({
  123. selector: "atEnd",
  124. protocol: 'testing',
  125. fn: function (){
  126. var self=this;
  127. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  128. return $core.withContext(function($ctx1) {
  129. //>>excludeEnd("ctx");
  130. var $1;
  131. $1=$recv(self._reference())._isNil();
  132. return $1;
  133. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  134. }, function($ctx1) {$ctx1.fill(self,"atEnd",{},$globals.Domite)});
  135. //>>excludeEnd("ctx");
  136. },
  137. //>>excludeStart("ide", pragmas.excludeIdeData);
  138. args: [],
  139. source: "atEnd\x0a\x09^ self reference isNil",
  140. referencedClasses: [],
  141. //>>excludeEnd("ide");
  142. messageSends: ["isNil", "reference"]
  143. }),
  144. $globals.Domite);
  145. $core.addMethod(
  146. $core.method({
  147. selector: "atStart",
  148. protocol: 'testing',
  149. fn: function (){
  150. var self=this;
  151. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  152. return $core.withContext(function($ctx1) {
  153. //>>excludeEnd("ctx");
  154. var $1;
  155. $1=$recv(self._reference()).__eq($recv(self._element())._firstChild());
  156. return $1;
  157. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  158. }, function($ctx1) {$ctx1.fill(self,"atStart",{},$globals.Domite)});
  159. //>>excludeEnd("ctx");
  160. },
  161. //>>excludeStart("ide", pragmas.excludeIdeData);
  162. args: [],
  163. source: "atStart\x0a\x09^ self reference = self element firstChild",
  164. referencedClasses: [],
  165. //>>excludeEnd("ide");
  166. messageSends: ["=", "reference", "firstChild", "element"]
  167. }),
  168. $globals.Domite);
  169. $core.addMethod(
  170. $core.method({
  171. selector: "attrAt:",
  172. protocol: 'accessing',
  173. fn: function (aString){
  174. var self=this;
  175. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  176. return $core.withContext(function($ctx1) {
  177. //>>excludeEnd("ctx");
  178. var $1,$2;
  179. $1=$recv(self["@element"])._hasAttribute_(aString);
  180. if($core.assert($1)){
  181. $2=$recv(self["@element"])._getAttribute_(aString);
  182. return $2;
  183. } else {
  184. return nil;
  185. };
  186. return self;
  187. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  188. }, function($ctx1) {$ctx1.fill(self,"attrAt:",{aString:aString},$globals.Domite)});
  189. //>>excludeEnd("ctx");
  190. },
  191. //>>excludeStart("ide", pragmas.excludeIdeData);
  192. args: ["aString"],
  193. source: "attrAt: aString\x0a\x09(element hasAttribute: aString)\x0a\x09\x09ifTrue: [ ^ element getAttribute: aString ]\x0a\x09\x09ifFalse: [ ^ nil ]",
  194. referencedClasses: [],
  195. //>>excludeEnd("ide");
  196. messageSends: ["ifTrue:ifFalse:", "hasAttribute:", "getAttribute:"]
  197. }),
  198. $globals.Domite);
  199. $core.addMethod(
  200. $core.method({
  201. selector: "attrAt:put:",
  202. protocol: 'accessing',
  203. fn: function (aString,anotherString){
  204. var self=this;
  205. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  206. return $core.withContext(function($ctx1) {
  207. //>>excludeEnd("ctx");
  208. $recv(self["@element"])._setAttribute_to_(aString,anotherString);
  209. return self;
  210. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  211. }, function($ctx1) {$ctx1.fill(self,"attrAt:put:",{aString:aString,anotherString:anotherString},$globals.Domite)});
  212. //>>excludeEnd("ctx");
  213. },
  214. //>>excludeStart("ide", pragmas.excludeIdeData);
  215. args: ["aString", "anotherString"],
  216. source: "attrAt: aString put: anotherString\x0a\x09element setAttribute: aString to: anotherString",
  217. referencedClasses: [],
  218. //>>excludeEnd("ide");
  219. messageSends: ["setAttribute:to:"]
  220. }),
  221. $globals.Domite);
  222. $core.addMethod(
  223. $core.method({
  224. selector: "canSetToUpperLevel",
  225. protocol: 'testing',
  226. fn: function (){
  227. var self=this;
  228. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  229. return $core.withContext(function($ctx1) {
  230. //>>excludeEnd("ctx");
  231. var $1;
  232. $1=$recv($recv(self._element())._parentNode())._notNil();
  233. return $1;
  234. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  235. }, function($ctx1) {$ctx1.fill(self,"canSetToUpperLevel",{},$globals.Domite)});
  236. //>>excludeEnd("ctx");
  237. },
  238. //>>excludeStart("ide", pragmas.excludeIdeData);
  239. args: [],
  240. source: "canSetToUpperLevel\x0a\x09^ self element parentNode notNil",
  241. referencedClasses: [],
  242. //>>excludeEnd("ide");
  243. messageSends: ["notNil", "parentNode", "element"]
  244. }),
  245. $globals.Domite);
  246. $core.addMethod(
  247. $core.method({
  248. selector: "element",
  249. protocol: 'accessing',
  250. fn: function (){
  251. var self=this;
  252. var $1;
  253. $1=self["@element"];
  254. return $1;
  255. },
  256. //>>excludeStart("ide", pragmas.excludeIdeData);
  257. args: [],
  258. source: "element\x0a\x09^ element",
  259. referencedClasses: [],
  260. //>>excludeEnd("ide");
  261. messageSends: []
  262. }),
  263. $globals.Domite);
  264. $core.addMethod(
  265. $core.method({
  266. selector: "element:",
  267. protocol: 'accessing',
  268. fn: function (anObject){
  269. var self=this;
  270. self["@element"]=anObject;
  271. return self;
  272. },
  273. //>>excludeStart("ide", pragmas.excludeIdeData);
  274. args: ["anObject"],
  275. source: "element: anObject\x0a\x09element := anObject",
  276. referencedClasses: [],
  277. //>>excludeEnd("ide");
  278. messageSends: []
  279. }),
  280. $globals.Domite);
  281. $core.addMethod(
  282. $core.method({
  283. selector: "initialize",
  284. protocol: 'initialization',
  285. fn: function (){
  286. var self=this;
  287. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  288. return $core.withContext(function($ctx1) {
  289. //>>excludeEnd("ctx");
  290. (
  291. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  292. $ctx1.supercall = true,
  293. //>>excludeEnd("ctx");
  294. $globals.Domite.superclass.fn.prototype._initialize.apply($recv(self), []));
  295. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  296. $ctx1.supercall = false;
  297. //>>excludeEnd("ctx");;
  298. self["@element"]=$recv(document)._body();
  299. self["@reference"]=nil._asJSON();
  300. return self;
  301. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  302. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.Domite)});
  303. //>>excludeEnd("ctx");
  304. },
  305. //>>excludeStart("ide", pragmas.excludeIdeData);
  306. args: [],
  307. source: "initialize\x0a\x09super initialize.\x0a\x09element := document body.\x0a\x09reference := nil asJSON",
  308. referencedClasses: [],
  309. //>>excludeEnd("ide");
  310. messageSends: ["initialize", "body", "asJSON"]
  311. }),
  312. $globals.Domite);
  313. $core.addMethod(
  314. $core.method({
  315. selector: "isInvalid",
  316. protocol: 'testing',
  317. fn: function (){
  318. var self=this;
  319. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  320. return $core.withContext(function($ctx1) {
  321. //>>excludeEnd("ctx");
  322. var $1;
  323. $1=$recv(self._element())._isNil();
  324. return $1;
  325. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  326. }, function($ctx1) {$ctx1.fill(self,"isInvalid",{},$globals.Domite)});
  327. //>>excludeEnd("ctx");
  328. },
  329. //>>excludeStart("ide", pragmas.excludeIdeData);
  330. args: [],
  331. source: "isInvalid\x0a\x09^ self element isNil",
  332. referencedClasses: [],
  333. //>>excludeEnd("ide");
  334. messageSends: ["isNil", "element"]
  335. }),
  336. $globals.Domite);
  337. $core.addMethod(
  338. $core.method({
  339. selector: "next",
  340. protocol: 'reading',
  341. fn: function (){
  342. var self=this;
  343. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  344. return $core.withContext(function($ctx1) {
  345. //>>excludeEnd("ctx");
  346. var $1,$2;
  347. $1=self._atEnd();
  348. if($core.assert($1)){
  349. return nil;
  350. } else {
  351. var result;
  352. result=self._peek();
  353. result;
  354. self._setToNext();
  355. $2=result;
  356. return $2;
  357. };
  358. return self;
  359. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  360. }, function($ctx1) {$ctx1.fill(self,"next",{},$globals.Domite)});
  361. //>>excludeEnd("ctx");
  362. },
  363. //>>excludeStart("ide", pragmas.excludeIdeData);
  364. args: [],
  365. source: "next\x0a\x09self atEnd\x0a\x09\x09ifTrue: [ ^ nil ]\x0a\x09\x09ifFalse: [ | result |\x0a\x09\x09\x09result := self peek.\x0a\x09\x09\x09self setToNext.\x0a\x09\x09\x09^ result ]",
  366. referencedClasses: [],
  367. //>>excludeEnd("ide");
  368. messageSends: ["ifTrue:ifFalse:", "atEnd", "peek", "setToNext"]
  369. }),
  370. $globals.Domite);
  371. $core.addMethod(
  372. $core.method({
  373. selector: "nextPut:",
  374. protocol: 'insertion',
  375. fn: function (anObject){
  376. var self=this;
  377. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  378. return $core.withContext(function($ctx1) {
  379. //>>excludeEnd("ctx");
  380. self._nextPutString_($recv(anObject)._printString());
  381. return self;
  382. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  383. }, function($ctx1) {$ctx1.fill(self,"nextPut:",{anObject:anObject},$globals.Domite)});
  384. //>>excludeEnd("ctx");
  385. },
  386. //>>excludeStart("ide", pragmas.excludeIdeData);
  387. args: ["anObject"],
  388. source: "nextPut: anObject\x0a\x09self nextPutString: anObject printString",
  389. referencedClasses: [],
  390. //>>excludeEnd("ide");
  391. messageSends: ["nextPutString:", "printString"]
  392. }),
  393. $globals.Domite);
  394. $core.addMethod(
  395. $core.method({
  396. selector: "nextPutDomNode:",
  397. protocol: 'insertion',
  398. fn: function (aDomElement){
  399. var self=this;
  400. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  401. return $core.withContext(function($ctx1) {
  402. //>>excludeEnd("ctx");
  403. $recv(self._element())._insertBefore_reference_(aDomElement,self._reference());
  404. return self;
  405. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  406. }, function($ctx1) {$ctx1.fill(self,"nextPutDomNode:",{aDomElement:aDomElement},$globals.Domite)});
  407. //>>excludeEnd("ctx");
  408. },
  409. //>>excludeStart("ide", pragmas.excludeIdeData);
  410. args: ["aDomElement"],
  411. source: "nextPutDomNode: aDomElement\x0a\x09self element\x0a\x09\x09insertBefore: aDomElement\x0a\x09\x09reference: self reference",
  412. referencedClasses: [],
  413. //>>excludeEnd("ide");
  414. messageSends: ["insertBefore:reference:", "element", "reference"]
  415. }),
  416. $globals.Domite);
  417. $core.addMethod(
  418. $core.method({
  419. selector: "nextPutJSObject:",
  420. protocol: 'insertion',
  421. fn: function (aJSObject){
  422. var self=this;
  423. function $Domite(){return $globals.Domite||(typeof Domite=="undefined"?nil:Domite)}
  424. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  425. return $core.withContext(function($ctx1) {
  426. //>>excludeEnd("ctx");
  427. var $1;
  428. $1=$recv($Domite())._isDomNode_(aJSObject);
  429. if($core.assert($1)){
  430. self._nextPutDomNode_(aJSObject);
  431. } else {
  432. self._nextPut_(aJSObject);
  433. };
  434. return self;
  435. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  436. }, function($ctx1) {$ctx1.fill(self,"nextPutJSObject:",{aJSObject:aJSObject},$globals.Domite)});
  437. //>>excludeEnd("ctx");
  438. },
  439. //>>excludeStart("ide", pragmas.excludeIdeData);
  440. args: ["aJSObject"],
  441. source: "nextPutJSObject: aJSObject\x0a\x09(Domite isDomNode: aJSObject)\x0a\x09\x09ifTrue: [ self nextPutDomNode: aJSObject ]\x0a\x09\x09ifFalse: [ self nextPut: aJSObject ]",
  442. referencedClasses: ["Domite"],
  443. //>>excludeEnd("ide");
  444. messageSends: ["ifTrue:ifFalse:", "isDomNode:", "nextPutDomNode:", "nextPut:"]
  445. }),
  446. $globals.Domite);
  447. $core.addMethod(
  448. $core.method({
  449. selector: "nextPutString:",
  450. protocol: 'insertion',
  451. fn: function (aString){
  452. var self=this;
  453. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  454. return $core.withContext(function($ctx1) {
  455. //>>excludeEnd("ctx");
  456. self._nextPutDomNode_($recv(document)._createTextNode_($recv(aString)._asString()));
  457. return self;
  458. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  459. }, function($ctx1) {$ctx1.fill(self,"nextPutString:",{aString:aString},$globals.Domite)});
  460. //>>excludeEnd("ctx");
  461. },
  462. //>>excludeStart("ide", pragmas.excludeIdeData);
  463. args: ["aString"],
  464. source: "nextPutString: aString\x0a\x09self nextPutDomNode: (\x0a\x09\x09document createTextNode: aString asString )",
  465. referencedClasses: [],
  466. //>>excludeEnd("ide");
  467. messageSends: ["nextPutDomNode:", "createTextNode:", "asString"]
  468. }),
  469. $globals.Domite);
  470. $core.addMethod(
  471. $core.method({
  472. selector: "off:unbind:",
  473. protocol: 'events',
  474. fn: function (aString,aBlock){
  475. var self=this;
  476. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  477. return $core.withContext(function($ctx1) {
  478. //>>excludeEnd("ctx");
  479. $recv(self._element())._removeEventListener_block_useCapture_(aString,aBlock,false);
  480. return self;
  481. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  482. }, function($ctx1) {$ctx1.fill(self,"off:unbind:",{aString:aString,aBlock:aBlock},$globals.Domite)});
  483. //>>excludeEnd("ctx");
  484. },
  485. //>>excludeStart("ide", pragmas.excludeIdeData);
  486. args: ["aString", "aBlock"],
  487. source: "off: aString unbind: aBlock\x0a\x09self element removeEventListener: aString block: aBlock useCapture: false",
  488. referencedClasses: [],
  489. //>>excludeEnd("ide");
  490. messageSends: ["removeEventListener:block:useCapture:", "element"]
  491. }),
  492. $globals.Domite);
  493. $core.addMethod(
  494. $core.method({
  495. selector: "on:bind:",
  496. protocol: 'events',
  497. fn: function (aString,aBlock){
  498. var self=this;
  499. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  500. return $core.withContext(function($ctx1) {
  501. //>>excludeEnd("ctx");
  502. $recv(self._element())._addEventListener_block_useCapture_(aString,aBlock,false);
  503. return self;
  504. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  505. }, function($ctx1) {$ctx1.fill(self,"on:bind:",{aString:aString,aBlock:aBlock},$globals.Domite)});
  506. //>>excludeEnd("ctx");
  507. },
  508. //>>excludeStart("ide", pragmas.excludeIdeData);
  509. args: ["aString", "aBlock"],
  510. source: "on: aString bind: aBlock\x0a\x09self element addEventListener: aString block: aBlock useCapture: false",
  511. referencedClasses: [],
  512. //>>excludeEnd("ide");
  513. messageSends: ["addEventListener:block:useCapture:", "element"]
  514. }),
  515. $globals.Domite);
  516. $core.addMethod(
  517. $core.method({
  518. selector: "peek",
  519. protocol: 'reading',
  520. fn: function (){
  521. var self=this;
  522. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  523. return $core.withContext(function($ctx1) {
  524. //>>excludeEnd("ctx");
  525. var $2,$1,$receiver;
  526. $2=self._reference();
  527. if(($receiver = $2) == null || $receiver.isNil){
  528. $1=$2;
  529. } else {
  530. var ref;
  531. ref=$receiver;
  532. $1=$recv(self._class())._fromElement_(ref);
  533. };
  534. return $1;
  535. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  536. }, function($ctx1) {$ctx1.fill(self,"peek",{},$globals.Domite)});
  537. //>>excludeEnd("ctx");
  538. },
  539. //>>excludeStart("ide", pragmas.excludeIdeData);
  540. args: [],
  541. source: "peek\x0a\x09^ self reference\x0a\x09\x09ifNotNil: [ :ref | self class fromElement: ref ]",
  542. referencedClasses: [],
  543. //>>excludeEnd("ide");
  544. messageSends: ["ifNotNil:", "reference", "fromElement:", "class"]
  545. }),
  546. $globals.Domite);
  547. $core.addMethod(
  548. $core.method({
  549. selector: "prev",
  550. protocol: 'reading',
  551. fn: function (){
  552. var self=this;
  553. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  554. return $core.withContext(function($ctx1) {
  555. //>>excludeEnd("ctx");
  556. var $1,$2;
  557. $1=self._atStart();
  558. if($core.assert($1)){
  559. return nil;
  560. } else {
  561. self._setToPrev();
  562. $2=self._peek();
  563. return $2;
  564. };
  565. return self;
  566. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  567. }, function($ctx1) {$ctx1.fill(self,"prev",{},$globals.Domite)});
  568. //>>excludeEnd("ctx");
  569. },
  570. //>>excludeStart("ide", pragmas.excludeIdeData);
  571. args: [],
  572. source: "prev\x0a\x09self atStart\x0a\x09\x09ifTrue: [ ^ nil ]\x0a\x09\x09ifFalse: [ self setToPrev. ^ self peek ]",
  573. referencedClasses: [],
  574. //>>excludeEnd("ide");
  575. messageSends: ["ifTrue:ifFalse:", "atStart", "setToPrev", "peek"]
  576. }),
  577. $globals.Domite);
  578. $core.addMethod(
  579. $core.method({
  580. selector: "propAt:",
  581. protocol: 'accessing',
  582. fn: function (aString){
  583. var self=this;
  584. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  585. return $core.withContext(function($ctx1) {
  586. //>>excludeEnd("ctx");
  587. var $1;
  588. $1=$recv(self["@element"])._at_(aString);
  589. return $1;
  590. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  591. }, function($ctx1) {$ctx1.fill(self,"propAt:",{aString:aString},$globals.Domite)});
  592. //>>excludeEnd("ctx");
  593. },
  594. //>>excludeStart("ide", pragmas.excludeIdeData);
  595. args: ["aString"],
  596. source: "propAt: aString\x0a\x09^ element at: aString",
  597. referencedClasses: [],
  598. //>>excludeEnd("ide");
  599. messageSends: ["at:"]
  600. }),
  601. $globals.Domite);
  602. $core.addMethod(
  603. $core.method({
  604. selector: "propAt:put:",
  605. protocol: 'accessing',
  606. fn: function (aString,anObject){
  607. var self=this;
  608. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  609. return $core.withContext(function($ctx1) {
  610. //>>excludeEnd("ctx");
  611. var $1;
  612. $1=$recv(self["@element"])._at_put_(aString,anObject);
  613. return $1;
  614. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  615. }, function($ctx1) {$ctx1.fill(self,"propAt:put:",{aString:aString,anObject:anObject},$globals.Domite)});
  616. //>>excludeEnd("ctx");
  617. },
  618. //>>excludeStart("ide", pragmas.excludeIdeData);
  619. args: ["aString", "anObject"],
  620. source: "propAt: aString put: anObject\x0a\x09^ element at: aString put: anObject",
  621. referencedClasses: [],
  622. //>>excludeEnd("ide");
  623. messageSends: ["at:put:"]
  624. }),
  625. $globals.Domite);
  626. $core.addMethod(
  627. $core.method({
  628. selector: "putOn:",
  629. protocol: 'streaming',
  630. fn: function (aStream){
  631. var self=this;
  632. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  633. return $core.withContext(function($ctx1) {
  634. //>>excludeEnd("ctx");
  635. $recv(aStream)._nextPutDomNode_(self._element());
  636. return self;
  637. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  638. }, function($ctx1) {$ctx1.fill(self,"putOn:",{aStream:aStream},$globals.Domite)});
  639. //>>excludeEnd("ctx");
  640. },
  641. //>>excludeStart("ide", pragmas.excludeIdeData);
  642. args: ["aStream"],
  643. source: "putOn: aStream\x0a\x09aStream nextPutDomNode: self element",
  644. referencedClasses: [],
  645. //>>excludeEnd("ide");
  646. messageSends: ["nextPutDomNode:", "element"]
  647. }),
  648. $globals.Domite);
  649. $core.addMethod(
  650. $core.method({
  651. selector: "reference",
  652. protocol: 'accessing',
  653. fn: function (){
  654. var self=this;
  655. var $1;
  656. $1=self["@reference"];
  657. return $1;
  658. },
  659. //>>excludeStart("ide", pragmas.excludeIdeData);
  660. args: [],
  661. source: "reference\x0a\x09^ reference",
  662. referencedClasses: [],
  663. //>>excludeEnd("ide");
  664. messageSends: []
  665. }),
  666. $globals.Domite);
  667. $core.addMethod(
  668. $core.method({
  669. selector: "reference:",
  670. protocol: 'accessing',
  671. fn: function (anObject){
  672. var self=this;
  673. self["@reference"]=anObject;
  674. return self;
  675. },
  676. //>>excludeStart("ide", pragmas.excludeIdeData);
  677. args: ["anObject"],
  678. source: "reference: anObject\x0a\x09reference := anObject",
  679. referencedClasses: [],
  680. //>>excludeEnd("ide");
  681. messageSends: []
  682. }),
  683. $globals.Domite);
  684. $core.addMethod(
  685. $core.method({
  686. selector: "reset",
  687. protocol: 'positioning',
  688. fn: function (){
  689. var self=this;
  690. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  691. return $core.withContext(function($ctx1) {
  692. //>>excludeEnd("ctx");
  693. self._reference_($recv(self._element())._firstChild());
  694. return self;
  695. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  696. }, function($ctx1) {$ctx1.fill(self,"reset",{},$globals.Domite)});
  697. //>>excludeEnd("ctx");
  698. },
  699. //>>excludeStart("ide", pragmas.excludeIdeData);
  700. args: [],
  701. source: "reset\x0a\x09self reference: self element firstChild",
  702. referencedClasses: [],
  703. //>>excludeEnd("ide");
  704. messageSends: ["reference:", "firstChild", "element"]
  705. }),
  706. $globals.Domite);
  707. $core.addMethod(
  708. $core.method({
  709. selector: "resetContents",
  710. protocol: 'deletion',
  711. fn: function (){
  712. var self=this;
  713. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  714. return $core.withContext(function($ctx1) {
  715. //>>excludeEnd("ctx");
  716. var element = self['@element'], child;
  717. while (child = element.firstChild) element.removeChild(child);
  718. self['@reference'] = null;;
  719. return self;
  720. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  721. }, function($ctx1) {$ctx1.fill(self,"resetContents",{},$globals.Domite)});
  722. //>>excludeEnd("ctx");
  723. },
  724. //>>excludeStart("ide", pragmas.excludeIdeData);
  725. args: [],
  726. source: "resetContents\x0a<\x0a\x09var element = self['@element'], child;\x0a\x09while (child = element.firstChild) element.removeChild(child);\x0a\x09self['@reference'] = null;\x0a>",
  727. referencedClasses: [],
  728. //>>excludeEnd("ide");
  729. messageSends: []
  730. }),
  731. $globals.Domite);
  732. $core.addMethod(
  733. $core.method({
  734. selector: "setToAfter",
  735. protocol: 'positioning',
  736. fn: function (){
  737. var self=this;
  738. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  739. return $core.withContext(function($ctx1) {
  740. //>>excludeEnd("ctx");
  741. var $2,$1,$3;
  742. $2=self._element();
  743. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  744. $ctx1.sendIdx["element"]=1;
  745. //>>excludeEnd("ctx");
  746. $1=$recv($2)._nextSibling();
  747. self._reference_($1);
  748. $3=self._element_($recv(self._element())._parentNode());
  749. return self;
  750. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  751. }, function($ctx1) {$ctx1.fill(self,"setToAfter",{},$globals.Domite)});
  752. //>>excludeEnd("ctx");
  753. },
  754. //>>excludeStart("ide", pragmas.excludeIdeData);
  755. args: [],
  756. source: "setToAfter\x0a\x09self\x0a\x09\x09reference: self element nextSibling;\x0a\x09\x09element: self element parentNode",
  757. referencedClasses: [],
  758. //>>excludeEnd("ide");
  759. messageSends: ["reference:", "nextSibling", "element", "element:", "parentNode"]
  760. }),
  761. $globals.Domite);
  762. $core.addMethod(
  763. $core.method({
  764. selector: "setToBefore",
  765. protocol: 'positioning',
  766. fn: function (){
  767. var self=this;
  768. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  769. return $core.withContext(function($ctx1) {
  770. //>>excludeEnd("ctx");
  771. var $1,$2;
  772. $1=self._element();
  773. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  774. $ctx1.sendIdx["element"]=1;
  775. //>>excludeEnd("ctx");
  776. self._reference_($1);
  777. $2=self._element_($recv(self._element())._parentNode());
  778. return self;
  779. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  780. }, function($ctx1) {$ctx1.fill(self,"setToBefore",{},$globals.Domite)});
  781. //>>excludeEnd("ctx");
  782. },
  783. //>>excludeStart("ide", pragmas.excludeIdeData);
  784. args: [],
  785. source: "setToBefore\x0a\x09self\x0a\x09\x09reference: self element;\x0a\x09\x09element: self element parentNode",
  786. referencedClasses: [],
  787. //>>excludeEnd("ide");
  788. messageSends: ["reference:", "element", "element:", "parentNode"]
  789. }),
  790. $globals.Domite);
  791. $core.addMethod(
  792. $core.method({
  793. selector: "setToEnd",
  794. protocol: 'positioning',
  795. fn: function (){
  796. var self=this;
  797. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  798. return $core.withContext(function($ctx1) {
  799. //>>excludeEnd("ctx");
  800. self._reference_(nil._asJSON());
  801. return self;
  802. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  803. }, function($ctx1) {$ctx1.fill(self,"setToEnd",{},$globals.Domite)});
  804. //>>excludeEnd("ctx");
  805. },
  806. //>>excludeStart("ide", pragmas.excludeIdeData);
  807. args: [],
  808. source: "setToEnd\x0a\x09self reference: nil asJSON \x22null\x22",
  809. referencedClasses: [],
  810. //>>excludeEnd("ide");
  811. messageSends: ["reference:", "asJSON"]
  812. }),
  813. $globals.Domite);
  814. $core.addMethod(
  815. $core.method({
  816. selector: "setToNext",
  817. protocol: 'positioning',
  818. fn: function (){
  819. var self=this;
  820. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  821. return $core.withContext(function($ctx1) {
  822. //>>excludeEnd("ctx");
  823. var $1;
  824. $1=self._atEnd();
  825. if(!$core.assert($1)){
  826. self._reference_($recv(self._reference())._nextSibling());
  827. };
  828. return self;
  829. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  830. }, function($ctx1) {$ctx1.fill(self,"setToNext",{},$globals.Domite)});
  831. //>>excludeEnd("ctx");
  832. },
  833. //>>excludeStart("ide", pragmas.excludeIdeData);
  834. args: [],
  835. source: "setToNext\x0a\x09self atEnd ifFalse: [\x0a\x09\x09self reference: self reference nextSibling ]",
  836. referencedClasses: [],
  837. //>>excludeEnd("ide");
  838. messageSends: ["ifFalse:", "atEnd", "reference:", "nextSibling", "reference"]
  839. }),
  840. $globals.Domite);
  841. $core.addMethod(
  842. $core.method({
  843. selector: "setToPrev",
  844. protocol: 'positioning',
  845. fn: function (){
  846. var self=this;
  847. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  848. return $core.withContext(function($ctx1) {
  849. //>>excludeEnd("ctx");
  850. var $1,$3,$2,$receiver;
  851. $1=self._atStart();
  852. if(!$core.assert($1)){
  853. $3=self._reference();
  854. if(($receiver = $3) == null || $receiver.isNil){
  855. $2=$recv(self._element())._lastChild();
  856. } else {
  857. var ref;
  858. ref=$receiver;
  859. $2=$recv(ref)._previousSibling();
  860. };
  861. self._reference_($2);
  862. };
  863. return self;
  864. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  865. }, function($ctx1) {$ctx1.fill(self,"setToPrev",{},$globals.Domite)});
  866. //>>excludeEnd("ctx");
  867. },
  868. //>>excludeStart("ide", pragmas.excludeIdeData);
  869. args: [],
  870. source: "setToPrev\x0a\x09self atStart ifFalse: [\x0a\x09\x09self reference: (self reference\x0a\x09\x09\x09ifNil: [ self element lastChild ]\x0a\x09\x09\x09ifNotNil: [ :ref | ref previousSibling ])]",
  871. referencedClasses: [],
  872. //>>excludeEnd("ide");
  873. messageSends: ["ifFalse:", "atStart", "reference:", "ifNil:ifNotNil:", "reference", "lastChild", "element", "previousSibling"]
  874. }),
  875. $globals.Domite);
  876. $core.addMethod(
  877. $core.method({
  878. selector: "at:",
  879. protocol: 'instance creation',
  880. fn: function (aString){
  881. var self=this;
  882. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  883. return $core.withContext(function($ctx1) {
  884. //>>excludeEnd("ctx");
  885. var $1;
  886. $1=self._fromElement_($recv(document)._querySelector_(aString));
  887. return $1;
  888. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  889. }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},$globals.Domite.klass)});
  890. //>>excludeEnd("ctx");
  891. },
  892. //>>excludeStart("ide", pragmas.excludeIdeData);
  893. args: ["aString"],
  894. source: "at: aString\x0a\x09^ self fromElement: (document querySelector: aString)",
  895. referencedClasses: [],
  896. //>>excludeEnd("ide");
  897. messageSends: ["fromElement:", "querySelector:"]
  898. }),
  899. $globals.Domite.klass);
  900. $core.addMethod(
  901. $core.method({
  902. selector: "fromElement:",
  903. protocol: 'instance creation',
  904. fn: function (aDomElement){
  905. var self=this;
  906. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  907. return $core.withContext(function($ctx1) {
  908. //>>excludeEnd("ctx");
  909. var $1,$3,$4,$2,$receiver;
  910. if(($receiver = aDomElement) == null || $receiver.isNil){
  911. aDomElement;
  912. } else {
  913. $1=self._isDomNode_(aDomElement);
  914. if(!$core.assert($1)){
  915. self._error_($recv(self._name()).__comma(": Need a DOM node"));
  916. };
  917. };
  918. $3=self._new();
  919. $recv($3)._element_(aDomElement);
  920. $4=$recv($3)._yourself();
  921. $2=$4;
  922. return $2;
  923. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  924. }, function($ctx1) {$ctx1.fill(self,"fromElement:",{aDomElement:aDomElement},$globals.Domite.klass)});
  925. //>>excludeEnd("ctx");
  926. },
  927. //>>excludeStart("ide", pragmas.excludeIdeData);
  928. args: ["aDomElement"],
  929. source: "fromElement: aDomElement\x0a\x09aDomElement ifNotNil: [\x0a\x09\x09(self isDomNode: aDomElement) ifFalse: [\x0a\x09\x09\x09self error: self name, ': Need a DOM node' ]].\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09yourself",
  930. referencedClasses: [],
  931. //>>excludeEnd("ide");
  932. messageSends: ["ifNotNil:", "ifFalse:", "isDomNode:", "error:", ",", "name", "element:", "new", "yourself"]
  933. }),
  934. $globals.Domite.klass);
  935. $core.addMethod(
  936. $core.method({
  937. selector: "fromElement:cursorBefore:",
  938. protocol: 'instance creation',
  939. fn: function (aDomElement,anotherDomElement){
  940. var self=this;
  941. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  942. return $core.withContext(function($ctx1) {
  943. //>>excludeEnd("ctx");
  944. var $1,$3,$4,$2,$receiver;
  945. if(($receiver = aDomElement) == null || $receiver.isNil){
  946. aDomElement;
  947. } else {
  948. $1=self._isDomNode_(aDomElement);
  949. if(!$core.assert($1)){
  950. self._error_($recv(self._name()).__comma(": Need a DOM node"));
  951. };
  952. };
  953. $3=self._new();
  954. $recv($3)._element_(aDomElement);
  955. $recv($3)._referenceElement_(anotherDomElement);
  956. $4=$recv($3)._yourself();
  957. $2=$4;
  958. return $2;
  959. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  960. }, function($ctx1) {$ctx1.fill(self,"fromElement:cursorBefore:",{aDomElement:aDomElement,anotherDomElement:anotherDomElement},$globals.Domite.klass)});
  961. //>>excludeEnd("ctx");
  962. },
  963. //>>excludeStart("ide", pragmas.excludeIdeData);
  964. args: ["aDomElement", "anotherDomElement"],
  965. source: "fromElement: aDomElement cursorBefore: anotherDomElement\x0a\x09aDomElement ifNotNil: [\x0a\x09\x09(self isDomNode: aDomElement) ifFalse: [\x0a\x09\x09\x09self error: self name, ': Need a DOM node' ]].\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09referenceElement: anotherDomElement;\x0a\x09\x09yourself",
  966. referencedClasses: [],
  967. //>>excludeEnd("ide");
  968. messageSends: ["ifNotNil:", "ifFalse:", "isDomNode:", "error:", ",", "name", "element:", "new", "referenceElement:", "yourself"]
  969. }),
  970. $globals.Domite.klass);
  971. $core.addMethod(
  972. $core.method({
  973. selector: "isDomNode:",
  974. protocol: 'testing',
  975. fn: function (anObject){
  976. var self=this;
  977. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  978. return $core.withContext(function($ctx1) {
  979. //>>excludeEnd("ctx");
  980. return anObject.nodeType > 0 &&
  981. Object.prototype.toString.call(anObject) !== "[object Object]";
  982. return self;
  983. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  984. }, function($ctx1) {$ctx1.fill(self,"isDomNode:",{anObject:anObject},$globals.Domite.klass)});
  985. //>>excludeEnd("ctx");
  986. },
  987. //>>excludeStart("ide", pragmas.excludeIdeData);
  988. args: ["anObject"],
  989. source: "isDomNode: anObject\x0a<\x0a\x09return anObject.nodeType >> 0 &&\x0a\x09\x09Object.prototype.toString.call(anObject) !== \x22[object Object]\x22\x0a>",
  990. referencedClasses: [],
  991. //>>excludeEnd("ide");
  992. messageSends: []
  993. }),
  994. $globals.Domite.klass);
  995. $core.addMethod(
  996. $core.method({
  997. selector: "newElement:",
  998. protocol: 'instance creation',
  999. fn: function (aString){
  1000. var self=this;
  1001. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1002. return $core.withContext(function($ctx1) {
  1003. //>>excludeEnd("ctx");
  1004. var $1;
  1005. $1=self._fromElement_($recv(document)._createElement_(aString));
  1006. return $1;
  1007. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1008. }, function($ctx1) {$ctx1.fill(self,"newElement:",{aString:aString},$globals.Domite.klass)});
  1009. //>>excludeEnd("ctx");
  1010. },
  1011. //>>excludeStart("ide", pragmas.excludeIdeData);
  1012. args: ["aString"],
  1013. source: "newElement: aString\x0a\x09^ self fromElement: (document createElement: aString)",
  1014. referencedClasses: [],
  1015. //>>excludeEnd("ide");
  1016. messageSends: ["fromElement:", "createElement:"]
  1017. }),
  1018. $globals.Domite.klass);
  1019. $core.addMethod(
  1020. $core.method({
  1021. selector: "newElement:xmlns:",
  1022. protocol: 'instance creation',
  1023. fn: function (aString,anotherString){
  1024. var self=this;
  1025. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1026. return $core.withContext(function($ctx1) {
  1027. //>>excludeEnd("ctx");
  1028. var $1;
  1029. $1=self._fromElement_($recv(document)._createElementNS_tagName_(anotherString,aString));
  1030. return $1;
  1031. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1032. }, function($ctx1) {$ctx1.fill(self,"newElement:xmlns:",{aString:aString,anotherString:anotherString},$globals.Domite.klass)});
  1033. //>>excludeEnd("ctx");
  1034. },
  1035. //>>excludeStart("ide", pragmas.excludeIdeData);
  1036. args: ["aString", "anotherString"],
  1037. source: "newElement: aString xmlns: anotherString \x0a\x0a\x09^ self fromElement: (document createElementNS: anotherString tagName: aString)",
  1038. referencedClasses: [],
  1039. //>>excludeEnd("ide");
  1040. messageSends: ["fromElement:", "createElementNS:tagName:"]
  1041. }),
  1042. $globals.Domite.klass);
  1043. $core.addMethod(
  1044. $core.method({
  1045. selector: "newStream",
  1046. protocol: 'instance creation',
  1047. fn: function (){
  1048. var self=this;
  1049. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1050. return $core.withContext(function($ctx1) {
  1051. //>>excludeEnd("ctx");
  1052. var $1;
  1053. $1=self._fromElement_($recv(document)._createDocumentFragment());
  1054. return $1;
  1055. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1056. }, function($ctx1) {$ctx1.fill(self,"newStream",{},$globals.Domite.klass)});
  1057. //>>excludeEnd("ctx");
  1058. },
  1059. //>>excludeStart("ide", pragmas.excludeIdeData);
  1060. args: [],
  1061. source: "newStream\x0a\x09^ self fromElement: document createDocumentFragment",
  1062. referencedClasses: [],
  1063. //>>excludeEnd("ide");
  1064. messageSends: ["fromElement:", "createDocumentFragment"]
  1065. }),
  1066. $globals.Domite.klass);
  1067. $core.addMethod(
  1068. $core.method({
  1069. selector: "nextPutDomNode:",
  1070. protocol: '*DOMite',
  1071. fn: function (aNode){
  1072. var self=this;
  1073. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1074. return $core.withContext(function($ctx1) {
  1075. //>>excludeEnd("ctx");
  1076. self._nextPut_(aNode);
  1077. return self;
  1078. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1079. }, function($ctx1) {$ctx1.fill(self,"nextPutDomNode:",{aNode:aNode},$globals.ProtoStream)});
  1080. //>>excludeEnd("ctx");
  1081. },
  1082. //>>excludeStart("ide", pragmas.excludeIdeData);
  1083. args: ["aNode"],
  1084. source: "nextPutDomNode: aNode\x0a\x09self nextPut: aNode",
  1085. referencedClasses: [],
  1086. //>>excludeEnd("ide");
  1087. messageSends: ["nextPut:"]
  1088. }),
  1089. $globals.ProtoStream);
  1090. });