xmind.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. !function(e, t) {
  2. "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.XMindEmbedViewer = t() : e.XMindEmbedViewer = t()
  3. }(self, (function() {
  4. return (()=>{
  5. "use strict";
  6. var e = {
  7. 61: function(e, t) {
  8. var n = this && this.__awaiter || function(e, t, n, r) {
  9. return new (n || (n = Promise))((function(o, i) {
  10. function a(e) {
  11. try {
  12. l(r.next(e))
  13. } catch (e) {
  14. i(e)
  15. }
  16. }
  17. function s(e) {
  18. try {
  19. l(r.throw(e))
  20. } catch (e) {
  21. i(e)
  22. }
  23. }
  24. function l(e) {
  25. var t;
  26. e.done ? o(e.value) : (t = e.value,
  27. t instanceof n ? t : new n((function(e) {
  28. e(t)
  29. }
  30. ))).then(a, s)
  31. }
  32. l((r = r.apply(e, t || [])).next())
  33. }
  34. ))
  35. }
  36. , r = this && this.__generator || function(e, t) {
  37. var n, r, o, i, a = {
  38. label: 0,
  39. sent: function() {
  40. if (1 & o[0])
  41. throw o[1];
  42. return o[1]
  43. },
  44. trys: [],
  45. ops: []
  46. };
  47. return i = {
  48. next: s(0),
  49. throw: s(1),
  50. return: s(2)
  51. },
  52. "function" == typeof Symbol && (i[Symbol.iterator] = function() {
  53. return this
  54. }
  55. ),
  56. i;
  57. function s(i) {
  58. return function(s) {
  59. return function(i) {
  60. if (n)
  61. throw new TypeError("Generator is already executing.");
  62. for (; a; )
  63. try {
  64. if (n = 1,
  65. r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r),
  66. 0) : r.next) && !(o = o.call(r, i[1])).done)
  67. return o;
  68. switch (r = 0,
  69. o && (i = [2 & i[0], o.value]),
  70. i[0]) {
  71. case 0:
  72. case 1:
  73. o = i;
  74. break;
  75. case 4:
  76. return a.label++,
  77. {
  78. value: i[1],
  79. done: !1
  80. };
  81. case 5:
  82. a.label++,
  83. r = i[1],
  84. i = [0];
  85. continue;
  86. case 7:
  87. i = a.ops.pop(),
  88. a.trys.pop();
  89. continue;
  90. default:
  91. if (!((o = (o = a.trys).length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
  92. a = 0;
  93. continue
  94. }
  95. if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {
  96. a.label = i[1];
  97. break
  98. }
  99. if (6 === i[0] && a.label < o[1]) {
  100. a.label = o[1],
  101. o = i;
  102. break
  103. }
  104. if (o && a.label < o[2]) {
  105. a.label = o[2],
  106. a.ops.push(i);
  107. break
  108. }
  109. o[2] && a.ops.pop(),
  110. a.trys.pop();
  111. continue
  112. }
  113. i = t.call(e, a)
  114. } catch (e) {
  115. i = [6, e],
  116. r = 0
  117. } finally {
  118. n = o = 0
  119. }
  120. if (5 & i[0])
  121. throw i[1];
  122. return {
  123. value: i[0] ? i[1] : void 0,
  124. done: !0
  125. }
  126. }([i, s])
  127. }
  128. }
  129. }
  130. ;
  131. Object.defineProperty(t, "__esModule", {
  132. value: !0
  133. }),
  134. t.IframeEventChannelController = void 0;
  135. var o = function() {
  136. function e(e, t) {
  137. void 0 === t && (t = "*"),
  138. this.channel = new MessageChannel,
  139. this.eventIndex = 0,
  140. this.handlers = {};
  141. var o = e.getIframe();
  142. if (o.hasAttribute("data-event-channel-setup"))
  143. throw new Error("An embed viewer instance already initialized on the iframe!");
  144. o.setAttribute("data-event-channel-setup", "true"),
  145. this.channelSetupPromise = n(this, void 0, void 0, (function() {
  146. var e = this;
  147. return r(this, (function(n) {
  148. switch (n.label) {
  149. case 0:
  150. return [4, new Promise((function(n) {
  151. o.addEventListener("load", (function() {
  152. var r;
  153. e.channel.port1.start();
  154. var i = function(t) {
  155. "channel-ready" === t.data[0] && (t.preventDefault(),
  156. e.channel.port1.removeEventListener("message", i),
  157. e.channel.port1.addEventListener("message", e.eventDispatcher.bind(e)),
  158. n(void 0))
  159. };
  160. e.channel.port1.addEventListener("message", i),
  161. null === (r = o.contentWindow) || void 0 === r || r.postMessage(["setup-channel", {
  162. port: e.channel.port2
  163. }], t || "*", [e.channel.port2])
  164. }
  165. ))
  166. }
  167. ))];
  168. case 1:
  169. return n.sent(),
  170. [2]
  171. }
  172. }
  173. ))
  174. }
  175. ))
  176. }
  177. return e.prototype.eventDispatcher = function(e) {
  178. var t = e.data || []
  179. , n = t[0]
  180. , r = t[1]
  181. , o = t[2];
  182. "event" === n && r && this.handlers[r] && this.handlers[r].forEach((function(e) {
  183. return e(o)
  184. }
  185. ))
  186. }
  187. ,
  188. e.prototype.addEventListener = function(e, t) {
  189. this.handlers[e] = this.handlers[e] || [],
  190. this.handlers[e].includes(t) || this.handlers[e].push(t)
  191. }
  192. ,
  193. e.prototype.removeEventListener = function(e, t) {
  194. if (this.handlers[e]) {
  195. var n = this.handlers[e].findIndex((function(e) {
  196. return e === t
  197. }
  198. ));
  199. this.handlers[e].splice(n, 1)
  200. }
  201. }
  202. ,
  203. e.prototype.emit = function(e, t) {
  204. return n(this, void 0, void 0, (function() {
  205. var n, o = this;
  206. return r(this, (function(r) {
  207. switch (r.label) {
  208. case 0:
  209. return [4, this.channelSetupPromise];
  210. case 1:
  211. return r.sent(),
  212. n = "xmind-embed-viewer#" + this.eventIndex++,
  213. [4, new Promise((function(r) {
  214. var i = function(e) {
  215. var t = e.data
  216. , a = t[0]
  217. , s = t[1];
  218. a === n && (o.channel.port1.removeEventListener("message", i),
  219. r(s))
  220. };
  221. o.channel.port1.addEventListener("message", i),
  222. o.channel.port1.postMessage([e, t, n])
  223. }
  224. ))];
  225. case 2:
  226. return r.sent(),
  227. [2]
  228. }
  229. }
  230. ))
  231. }
  232. ))
  233. }
  234. ,
  235. e
  236. }();
  237. t.IframeEventChannelController = o
  238. },
  239. 860: (e,t)=>{
  240. Object.defineProperty(t, "__esModule", {
  241. value: !0
  242. }),
  243. t.IframeController = void 0;
  244. var n = function() {
  245. function e(e, t) {
  246. var n, r = "string" == typeof e ? document.querySelector(e) : e;
  247. if (null === r)
  248. throw new Error("IFrame or mount element not found by selector " + e);
  249. r instanceof HTMLIFrameElement ? n = r : (n = document.createElement("iframe"),
  250. r.appendChild(n)),
  251. n.setAttribute("frameborder", "0"),
  252. n.setAttribute("scrolling", "no"),
  253. n.setAttribute("allowfullscreen", "true"),
  254. n.setAttribute("allow", "allowfullscreen"),
  255. n.setAttribute("crossorigin", "anonymous"),
  256. n.setAttribute("src", t),
  257. this.iframe = n
  258. }
  259. return e.prototype.getIframe = function() {
  260. return this.iframe
  261. }
  262. ,
  263. e.prototype.setStyles = function(e) {
  264. for (var t = this.getIframe(), n = 0, r = Object.entries(e); n < r.length; n++) {
  265. var o = r[n]
  266. , i = o[0]
  267. , a = o[1];
  268. t.style[i] = a
  269. }
  270. }
  271. ,
  272. e
  273. }();
  274. t.IframeController = n
  275. }
  276. ,
  277. 341: (e,t,n)=>{
  278. t.XMindEmbedViewer = void 0;
  279. var r = n(61)
  280. , o = n(860)
  281. , i = function() {
  282. function e(e) {
  283. var t = this;
  284. this.internalState = {
  285. sheets: [],
  286. zoomScale: 100,
  287. currentSheetId: ""
  288. };
  289. var windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
  290. var windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
  291. windowWidth = windowWidth-30;
  292. windowHeight = windowHeight-30;
  293. windowWidth =windowWidth+"px";
  294. windowHeight =windowHeight+"px";
  295. var n = e.file
  296. , i = e.el
  297. , a = e.styles
  298. , s = void 0 === a ? {
  299. height: windowWidth,
  300. width: windowHeight
  301. } : a
  302. , l = new o.IframeController(i,"xmind/index.html")
  303. , u = new r.IframeEventChannelController(l,"");
  304. this.iframeController = l,
  305. this.iframeEventChannelController = u,
  306. u.addEventListener("sheet-switch", (function(e) {
  307. return t.internalState.currentSheetId = e
  308. }
  309. )),
  310. u.addEventListener("zoom-change", (function(e) {
  311. return t.internalState.zoomScale = e
  312. }
  313. )),
  314. u.addEventListener("sheets-load", (function(e) {
  315. return t.internalState.sheets = e
  316. }
  317. )),
  318. this.iframeController.setStyles(s),
  319. n && this.load(n)
  320. }
  321. return e.prototype.addEventListener = function(e, t) {
  322. this.iframeEventChannelController.addEventListener(e, t)
  323. }
  324. ,
  325. e.prototype.removeEventListener = function(e, t) {
  326. this.iframeEventChannelController.removeEventListener(e, t)
  327. }
  328. ,
  329. e.prototype.setStyles = function(e) {
  330. this.iframeController.setStyles(e)
  331. }
  332. ,
  333. e.prototype.load = function(e) {
  334. this.iframeEventChannelController.emit("open-file", e)
  335. }
  336. ,
  337. e.prototype.setZoomScale = function(e) {
  338. this.iframeEventChannelController.emit("zoom", e)
  339. }
  340. ,
  341. e.prototype.setFitMap = function() {
  342. this.iframeEventChannelController.emit("fit-map")
  343. }
  344. ,
  345. e.prototype.switchSheet = function(e) {
  346. this.iframeEventChannelController.emit("switch-sheet", e)
  347. }
  348. ,
  349. Object.defineProperty(e.prototype, "zoom", {
  350. get: function() {
  351. return this.internalState.zoomScale
  352. },
  353. enumerable: !1,
  354. configurable: !0
  355. }),
  356. Object.defineProperty(e.prototype, "sheets", {
  357. get: function() {
  358. return JSON.parse(JSON.stringify(this.internalState.sheets))
  359. },
  360. enumerable: !1,
  361. configurable: !0
  362. }),
  363. Object.defineProperty(e.prototype, "currentSheetId", {
  364. get: function() {
  365. return this.internalState.currentSheetId
  366. },
  367. enumerable: !1,
  368. configurable: !0
  369. }),
  370. e
  371. }();
  372. t.XMindEmbedViewer = i
  373. }
  374. }
  375. , t = {};
  376. return function n(r) {
  377. if (t[r])
  378. return t[r].exports;
  379. var o = t[r] = {
  380. exports: {}
  381. };
  382. return e[r].call(o.exports, o, o.exports, n),
  383. o.exports
  384. }(341)
  385. }
  386. )().XMindEmbedViewer
  387. }
  388. ));