DOMite.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. define("domite/DOMite", ["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('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.Object, ['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\x0aCreation API:\x0a\x0a - `Domite new` creates an insertion point at the bottom of `<body>`.\x0a - `Domite open` 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\x0aManipulation API:\x0a\x0a - `aDomite insertDomite:` and `aDomite insertString:` insert either a Domite or a text content at the insertion point.\x0a - `aDomite clearHere` 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 seekHereStart` would move `d` to be at `[2]`,\x0a - `d seekHereEnd` would move `d` to be at `[3]`,\x0a - `d seekBeforeHere` would move `d` to be at `[4]`, and\x0a - `d seekAfterHere` would move `d` to be at `[5]`.\x0a\x0aIt is not presumed one would use `seekXxx`\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 seekAfterHere`.";
  9. //>>excludeEnd("ide");
  10. $core.addMethod(
  11. $core.method({
  12. selector: "canSeekOutOfHere",
  13. protocol: 'testing',
  14. fn: function (){
  15. var self=this;
  16. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  17. return $core.withContext(function($ctx1) {
  18. //>>excludeEnd("ctx");
  19. var $1;
  20. $1=$recv($recv(self._element())._parentNode())._notNil();
  21. return $1;
  22. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  23. }, function($ctx1) {$ctx1.fill(self,"canSeekOutOfHere",{},$globals.Domite)});
  24. //>>excludeEnd("ctx");
  25. },
  26. //>>excludeStart("ide", pragmas.excludeIdeData);
  27. args: [],
  28. source: "canSeekOutOfHere\x0a\x09^ self element parentNode notNil",
  29. referencedClasses: [],
  30. //>>excludeEnd("ide");
  31. messageSends: ["notNil", "parentNode", "element"]
  32. }),
  33. $globals.Domite);
  34. $core.addMethod(
  35. $core.method({
  36. selector: "clearHere",
  37. protocol: 'deletion',
  38. fn: function (){
  39. var self=this;
  40. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  41. return $core.withContext(function($ctx1) {
  42. //>>excludeEnd("ctx");
  43. var element = self['@element'], child;
  44. while (child = element.firstChild) element.removeChild(child);
  45. self['@reference'] = null;;
  46. return self;
  47. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  48. }, function($ctx1) {$ctx1.fill(self,"clearHere",{},$globals.Domite)});
  49. //>>excludeEnd("ctx");
  50. },
  51. //>>excludeStart("ide", pragmas.excludeIdeData);
  52. args: [],
  53. source: "clearHere\x0a<\x0a\x09var element = self['@element'], child;\x0a\x09while (child = element.firstChild) element.removeChild(child);\x0a\x09self['@reference'] = null;\x0a>",
  54. referencedClasses: [],
  55. //>>excludeEnd("ide");
  56. messageSends: []
  57. }),
  58. $globals.Domite);
  59. $core.addMethod(
  60. $core.method({
  61. selector: "element",
  62. protocol: 'accessing',
  63. fn: function (){
  64. var self=this;
  65. var $1;
  66. $1=self["@element"];
  67. return $1;
  68. },
  69. //>>excludeStart("ide", pragmas.excludeIdeData);
  70. args: [],
  71. source: "element\x0a\x09^ element",
  72. referencedClasses: [],
  73. //>>excludeEnd("ide");
  74. messageSends: []
  75. }),
  76. $globals.Domite);
  77. $core.addMethod(
  78. $core.method({
  79. selector: "element:",
  80. protocol: 'accessing',
  81. fn: function (anObject){
  82. var self=this;
  83. self["@element"]=anObject;
  84. return self;
  85. },
  86. //>>excludeStart("ide", pragmas.excludeIdeData);
  87. args: ["anObject"],
  88. source: "element: anObject\x0a\x09element := anObject",
  89. referencedClasses: [],
  90. //>>excludeEnd("ide");
  91. messageSends: []
  92. }),
  93. $globals.Domite);
  94. $core.addMethod(
  95. $core.method({
  96. selector: "initialize",
  97. protocol: 'initialization',
  98. fn: function (){
  99. var self=this;
  100. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  101. return $core.withContext(function($ctx1) {
  102. //>>excludeEnd("ctx");
  103. (
  104. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  105. $ctx1.supercall = true,
  106. //>>excludeEnd("ctx");
  107. $globals.Domite.superclass.fn.prototype._initialize.apply($recv(self), []));
  108. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  109. $ctx1.supercall = false;
  110. //>>excludeEnd("ctx");;
  111. self["@element"]=$recv(document)._body();
  112. self["@reference"]=nil._asJSON();
  113. return self;
  114. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  115. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.Domite)});
  116. //>>excludeEnd("ctx");
  117. },
  118. //>>excludeStart("ide", pragmas.excludeIdeData);
  119. args: [],
  120. source: "initialize\x0a\x09super initialize.\x0a\x09element := document body.\x0a\x09reference := nil asJSON",
  121. referencedClasses: [],
  122. //>>excludeEnd("ide");
  123. messageSends: ["initialize", "body", "asJSON"]
  124. }),
  125. $globals.Domite);
  126. $core.addMethod(
  127. $core.method({
  128. selector: "insertDomite:",
  129. protocol: 'insertion',
  130. fn: function (aDomite){
  131. var self=this;
  132. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  133. return $core.withContext(function($ctx1) {
  134. //>>excludeEnd("ctx");
  135. self._insertElement_($recv(aDomite)._element());
  136. return self;
  137. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  138. }, function($ctx1) {$ctx1.fill(self,"insertDomite:",{aDomite:aDomite},$globals.Domite)});
  139. //>>excludeEnd("ctx");
  140. },
  141. //>>excludeStart("ide", pragmas.excludeIdeData);
  142. args: ["aDomite"],
  143. source: "insertDomite: aDomite\x0a\x09self insertElement: aDomite element",
  144. referencedClasses: [],
  145. //>>excludeEnd("ide");
  146. messageSends: ["insertElement:", "element"]
  147. }),
  148. $globals.Domite);
  149. $core.addMethod(
  150. $core.method({
  151. selector: "insertElement:",
  152. protocol: 'insertion',
  153. fn: function (aDomElement){
  154. var self=this;
  155. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  156. return $core.withContext(function($ctx1) {
  157. //>>excludeEnd("ctx");
  158. $recv(self._element())._insertBefore_reference_(aDomElement,self._reference());
  159. return self;
  160. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  161. }, function($ctx1) {$ctx1.fill(self,"insertElement:",{aDomElement:aDomElement},$globals.Domite)});
  162. //>>excludeEnd("ctx");
  163. },
  164. //>>excludeStart("ide", pragmas.excludeIdeData);
  165. args: ["aDomElement"],
  166. source: "insertElement: aDomElement\x0a\x09self element\x0a\x09\x09insertBefore: aDomElement\x0a\x09\x09reference: self reference",
  167. referencedClasses: [],
  168. //>>excludeEnd("ide");
  169. messageSends: ["insertBefore:reference:", "element", "reference"]
  170. }),
  171. $globals.Domite);
  172. $core.addMethod(
  173. $core.method({
  174. selector: "insertString:",
  175. protocol: 'insertion',
  176. fn: function (aString){
  177. var self=this;
  178. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  179. return $core.withContext(function($ctx1) {
  180. //>>excludeEnd("ctx");
  181. self._insertElement_($recv(document)._createTextNode_($recv(aString)._asString()));
  182. return self;
  183. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  184. }, function($ctx1) {$ctx1.fill(self,"insertString:",{aString:aString},$globals.Domite)});
  185. //>>excludeEnd("ctx");
  186. },
  187. //>>excludeStart("ide", pragmas.excludeIdeData);
  188. args: ["aString"],
  189. source: "insertString: aString\x0a\x09self insertElement: (\x0a\x09\x09document createTextNode: aString asString )",
  190. referencedClasses: [],
  191. //>>excludeEnd("ide");
  192. messageSends: ["insertElement:", "createTextNode:", "asString"]
  193. }),
  194. $globals.Domite);
  195. $core.addMethod(
  196. $core.method({
  197. selector: "isInvalid",
  198. protocol: 'testing',
  199. fn: function (){
  200. var self=this;
  201. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  202. return $core.withContext(function($ctx1) {
  203. //>>excludeEnd("ctx");
  204. var $1;
  205. $1=$recv(self._element())._isNil();
  206. return $1;
  207. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  208. }, function($ctx1) {$ctx1.fill(self,"isInvalid",{},$globals.Domite)});
  209. //>>excludeEnd("ctx");
  210. },
  211. //>>excludeStart("ide", pragmas.excludeIdeData);
  212. args: [],
  213. source: "isInvalid\x0a\x09^ self element isNil",
  214. referencedClasses: [],
  215. //>>excludeEnd("ide");
  216. messageSends: ["isNil", "element"]
  217. }),
  218. $globals.Domite);
  219. $core.addMethod(
  220. $core.method({
  221. selector: "off:unbind:",
  222. protocol: 'events',
  223. fn: function (aString,aBlock){
  224. var self=this;
  225. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  226. return $core.withContext(function($ctx1) {
  227. //>>excludeEnd("ctx");
  228. self._removeEventListener_block_useCapture_(aString,aBlock,false);
  229. return self;
  230. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  231. }, function($ctx1) {$ctx1.fill(self,"off:unbind:",{aString:aString,aBlock:aBlock},$globals.Domite)});
  232. //>>excludeEnd("ctx");
  233. },
  234. //>>excludeStart("ide", pragmas.excludeIdeData);
  235. args: ["aString", "aBlock"],
  236. source: "off: aString unbind: aBlock\x0a\x09self removeEventListener: aString block: aBlock useCapture: false",
  237. referencedClasses: [],
  238. //>>excludeEnd("ide");
  239. messageSends: ["removeEventListener:block:useCapture:"]
  240. }),
  241. $globals.Domite);
  242. $core.addMethod(
  243. $core.method({
  244. selector: "on:bind:",
  245. protocol: 'events',
  246. fn: function (aString,aBlock){
  247. var self=this;
  248. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  249. return $core.withContext(function($ctx1) {
  250. //>>excludeEnd("ctx");
  251. self._addEventListener_block_useCapture_(aString,aBlock,false);
  252. return self;
  253. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  254. }, function($ctx1) {$ctx1.fill(self,"on:bind:",{aString:aString,aBlock:aBlock},$globals.Domite)});
  255. //>>excludeEnd("ctx");
  256. },
  257. //>>excludeStart("ide", pragmas.excludeIdeData);
  258. args: ["aString", "aBlock"],
  259. source: "on: aString bind: aBlock\x0a\x09self addEventListener: aString block: aBlock useCapture: false",
  260. referencedClasses: [],
  261. //>>excludeEnd("ide");
  262. messageSends: ["addEventListener:block:useCapture:"]
  263. }),
  264. $globals.Domite);
  265. $core.addMethod(
  266. $core.method({
  267. selector: "reference",
  268. protocol: 'accessing',
  269. fn: function (){
  270. var self=this;
  271. var $1;
  272. $1=self["@reference"];
  273. return $1;
  274. },
  275. //>>excludeStart("ide", pragmas.excludeIdeData);
  276. args: [],
  277. source: "reference\x0a\x09^ reference",
  278. referencedClasses: [],
  279. //>>excludeEnd("ide");
  280. messageSends: []
  281. }),
  282. $globals.Domite);
  283. $core.addMethod(
  284. $core.method({
  285. selector: "reference:",
  286. protocol: 'accessing',
  287. fn: function (anObject){
  288. var self=this;
  289. self["@reference"]=anObject;
  290. return self;
  291. },
  292. //>>excludeStart("ide", pragmas.excludeIdeData);
  293. args: ["anObject"],
  294. source: "reference: anObject\x0a\x09reference := anObject",
  295. referencedClasses: [],
  296. //>>excludeEnd("ide");
  297. messageSends: []
  298. }),
  299. $globals.Domite);
  300. $core.addMethod(
  301. $core.method({
  302. selector: "seekAfterHere",
  303. protocol: 'navigation',
  304. fn: function (){
  305. var self=this;
  306. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  307. return $core.withContext(function($ctx1) {
  308. //>>excludeEnd("ctx");
  309. var $2,$1,$3;
  310. $2=self._element();
  311. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  312. $ctx1.sendIdx["element"]=1;
  313. //>>excludeEnd("ctx");
  314. $1=$recv($2)._nextSibling();
  315. self._reference_($1);
  316. $3=self._element_($recv(self._element())._parentNode());
  317. return self;
  318. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  319. }, function($ctx1) {$ctx1.fill(self,"seekAfterHere",{},$globals.Domite)});
  320. //>>excludeEnd("ctx");
  321. },
  322. //>>excludeStart("ide", pragmas.excludeIdeData);
  323. args: [],
  324. source: "seekAfterHere\x0a\x09self\x0a\x09\x09reference: self element nextSibling;\x0a\x09\x09element: self element parentNode",
  325. referencedClasses: [],
  326. //>>excludeEnd("ide");
  327. messageSends: ["reference:", "nextSibling", "element", "element:", "parentNode"]
  328. }),
  329. $globals.Domite);
  330. $core.addMethod(
  331. $core.method({
  332. selector: "seekBeforeHere",
  333. protocol: 'navigation',
  334. fn: function (){
  335. var self=this;
  336. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  337. return $core.withContext(function($ctx1) {
  338. //>>excludeEnd("ctx");
  339. var $1,$2;
  340. $1=self._element();
  341. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  342. $ctx1.sendIdx["element"]=1;
  343. //>>excludeEnd("ctx");
  344. self._reference_($1);
  345. $2=self._element_($recv(self._element())._parentNode());
  346. return self;
  347. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  348. }, function($ctx1) {$ctx1.fill(self,"seekBeforeHere",{},$globals.Domite)});
  349. //>>excludeEnd("ctx");
  350. },
  351. //>>excludeStart("ide", pragmas.excludeIdeData);
  352. args: [],
  353. source: "seekBeforeHere\x0a\x09self\x0a\x09\x09reference: self element;\x0a\x09\x09element: self element parentNode",
  354. referencedClasses: [],
  355. //>>excludeEnd("ide");
  356. messageSends: ["reference:", "element", "element:", "parentNode"]
  357. }),
  358. $globals.Domite);
  359. $core.addMethod(
  360. $core.method({
  361. selector: "seekHereEnd",
  362. protocol: 'navigation',
  363. fn: function (){
  364. var self=this;
  365. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  366. return $core.withContext(function($ctx1) {
  367. //>>excludeEnd("ctx");
  368. self._reference_(nil._asJSON());
  369. return self;
  370. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  371. }, function($ctx1) {$ctx1.fill(self,"seekHereEnd",{},$globals.Domite)});
  372. //>>excludeEnd("ctx");
  373. },
  374. //>>excludeStart("ide", pragmas.excludeIdeData);
  375. args: [],
  376. source: "seekHereEnd\x0a\x09self reference: nil asJSON \x22null\x22",
  377. referencedClasses: [],
  378. //>>excludeEnd("ide");
  379. messageSends: ["reference:", "asJSON"]
  380. }),
  381. $globals.Domite);
  382. $core.addMethod(
  383. $core.method({
  384. selector: "seekHereStart",
  385. protocol: 'navigation',
  386. fn: function (){
  387. var self=this;
  388. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  389. return $core.withContext(function($ctx1) {
  390. //>>excludeEnd("ctx");
  391. self._reference_($recv(self._element())._firstChild());
  392. return self;
  393. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  394. }, function($ctx1) {$ctx1.fill(self,"seekHereStart",{},$globals.Domite)});
  395. //>>excludeEnd("ctx");
  396. },
  397. //>>excludeStart("ide", pragmas.excludeIdeData);
  398. args: [],
  399. source: "seekHereStart\x0a\x09self reference: self element firstChild",
  400. referencedClasses: [],
  401. //>>excludeEnd("ide");
  402. messageSends: ["reference:", "firstChild", "element"]
  403. }),
  404. $globals.Domite);
  405. $core.addMethod(
  406. $core.method({
  407. selector: "fromElement:",
  408. protocol: 'instance creation',
  409. fn: function (aDomElement){
  410. var self=this;
  411. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  412. return $core.withContext(function($ctx1) {
  413. //>>excludeEnd("ctx");
  414. var $2,$3,$1;
  415. $2=self._new();
  416. $recv($2)._element_(aDomElement);
  417. $3=$recv($2)._yourself();
  418. $1=$3;
  419. return $1;
  420. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  421. }, function($ctx1) {$ctx1.fill(self,"fromElement:",{aDomElement:aDomElement},$globals.Domite.klass)});
  422. //>>excludeEnd("ctx");
  423. },
  424. //>>excludeStart("ide", pragmas.excludeIdeData);
  425. args: ["aDomElement"],
  426. source: "fromElement: aDomElement\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09yourself",
  427. referencedClasses: [],
  428. //>>excludeEnd("ide");
  429. messageSends: ["element:", "new", "yourself"]
  430. }),
  431. $globals.Domite.klass);
  432. $core.addMethod(
  433. $core.method({
  434. selector: "fromElement:cursorBefore:",
  435. protocol: 'instance creation',
  436. fn: function (aDomElement,anotherDomElement){
  437. var self=this;
  438. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  439. return $core.withContext(function($ctx1) {
  440. //>>excludeEnd("ctx");
  441. var $2,$3,$1;
  442. $2=self._new();
  443. $recv($2)._element_(aDomElement);
  444. $recv($2)._referenceElement_(anotherDomElement);
  445. $3=$recv($2)._yourself();
  446. $1=$3;
  447. return $1;
  448. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  449. }, function($ctx1) {$ctx1.fill(self,"fromElement:cursorBefore:",{aDomElement:aDomElement,anotherDomElement:anotherDomElement},$globals.Domite.klass)});
  450. //>>excludeEnd("ctx");
  451. },
  452. //>>excludeStart("ide", pragmas.excludeIdeData);
  453. args: ["aDomElement", "anotherDomElement"],
  454. source: "fromElement: aDomElement cursorBefore: anotherDomElement\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09referenceElement: anotherDomElement;\x0a\x09\x09yourself",
  455. referencedClasses: [],
  456. //>>excludeEnd("ide");
  457. messageSends: ["element:", "new", "referenceElement:", "yourself"]
  458. }),
  459. $globals.Domite.klass);
  460. $core.addMethod(
  461. $core.method({
  462. selector: "fromSelector:",
  463. protocol: 'instance creation',
  464. fn: function (aString){
  465. var self=this;
  466. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  467. return $core.withContext(function($ctx1) {
  468. //>>excludeEnd("ctx");
  469. var $1;
  470. $1=self._fromElement_($recv(document)._querySelector_(aString));
  471. return $1;
  472. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  473. }, function($ctx1) {$ctx1.fill(self,"fromSelector:",{aString:aString},$globals.Domite.klass)});
  474. //>>excludeEnd("ctx");
  475. },
  476. //>>excludeStart("ide", pragmas.excludeIdeData);
  477. args: ["aString"],
  478. source: "fromSelector: aString\x0a\x09^ self fromElement: (document querySelector: aString)",
  479. referencedClasses: [],
  480. //>>excludeEnd("ide");
  481. messageSends: ["fromElement:", "querySelector:"]
  482. }),
  483. $globals.Domite.klass);
  484. $core.addMethod(
  485. $core.method({
  486. selector: "newElement:",
  487. protocol: 'instance creation',
  488. fn: function (aString){
  489. var self=this;
  490. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  491. return $core.withContext(function($ctx1) {
  492. //>>excludeEnd("ctx");
  493. var $1;
  494. $1=self._fromElement_($recv(document)._createElement_(aString));
  495. return $1;
  496. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  497. }, function($ctx1) {$ctx1.fill(self,"newElement:",{aString:aString},$globals.Domite.klass)});
  498. //>>excludeEnd("ctx");
  499. },
  500. //>>excludeStart("ide", pragmas.excludeIdeData);
  501. args: ["aString"],
  502. source: "newElement: aString\x0a\x09^ self fromElement: (document createElement: aString)",
  503. referencedClasses: [],
  504. //>>excludeEnd("ide");
  505. messageSends: ["fromElement:", "createElement:"]
  506. }),
  507. $globals.Domite.klass);
  508. $core.addMethod(
  509. $core.method({
  510. selector: "open",
  511. protocol: 'instance creation',
  512. fn: function (){
  513. var self=this;
  514. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  515. return $core.withContext(function($ctx1) {
  516. //>>excludeEnd("ctx");
  517. var $1;
  518. $1=self._fromElement_($recv(document)._createDocumentFragment());
  519. return $1;
  520. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  521. }, function($ctx1) {$ctx1.fill(self,"open",{},$globals.Domite.klass)});
  522. //>>excludeEnd("ctx");
  523. },
  524. //>>excludeStart("ide", pragmas.excludeIdeData);
  525. args: [],
  526. source: "open\x0a\x09^ self fromElement: document createDocumentFragment",
  527. referencedClasses: [],
  528. //>>excludeEnd("ide");
  529. messageSends: ["fromElement:", "createDocumentFragment"]
  530. }),
  531. $globals.Domite.klass);
  532. });