@netless/forge-imagery-doc 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +4 -0
- package/dist/Container.d.ts +1 -1
- package/dist/Container.d.ts.map +1 -1
- package/dist/ContinuousContainer.d.ts +5 -5
- package/dist/ContinuousContainer.d.ts.map +1 -1
- package/dist/FooterView.d.ts +1 -1
- package/dist/FooterView.d.ts.map +1 -1
- package/dist/ImageryDoc.d.ts +18 -18
- package/dist/ImageryDoc.d.ts.map +1 -1
- package/dist/ImageryDocApplication.d.ts +3 -3
- package/dist/ImageryDocApplication.d.ts.map +1 -1
- package/dist/ImageryDocPermissions.d.ts +26 -25
- package/dist/ImageryDocPermissions.d.ts.map +1 -1
- package/dist/InfinityScroll.d.ts +1 -1
- package/dist/InfinityScroll.d.ts.map +1 -1
- package/dist/LazyImage.d.ts.map +1 -1
- package/dist/SingleContainer.d.ts +6 -6
- package/dist/SingleContainer.d.ts.map +1 -1
- package/dist/imagery-doc.esm.js +92 -51
- package/dist/imagery-doc.esm.js.map +2 -2
- package/dist/imagery-doc.js +92 -51
- package/dist/imagery-doc.js.map +2 -2
- package/dist/index.d.ts +4 -4
- package/package.json +5 -4
- package/src/Container.ts +6 -6
- package/src/ContinuousContainer.ts +135 -135
- package/src/FooterView.ts +121 -121
- package/src/ImageryDoc.ts +17 -17
- package/src/ImageryDocApplication.ts +212 -199
- package/src/ImageryDocPermissions.ts +95 -85
- package/src/InfinityScroll.ts +43 -42
- package/src/LazyImage.ts +55 -55
- package/src/SingleContainer.ts +236 -226
- package/src/icons.ts +3 -3
- package/src/index.ts +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/ImageryDoc.ts", "../src/ImageryDocApplication.ts", "../src/LazyImage.ts", "../src/ImageryDocPermissions.ts", "../src/icons.ts", "../src/FooterView.ts", "../src/InfinityScroll.ts", "../src/Container.ts", "../src/ContinuousContainer.ts", "../src/SingleContainer.ts"],
|
|
4
|
-
"sourcesContent": ["function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from \"eventemitter3\";\nexport class ImageryDoc extends EventEmitter {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"view\", void 0);\n /**\n * \u5E95\u90E8\u64CD\u4F5C\u680F\n */\n _defineProperty(this, \"footView\", void 0);\n _defineProperty(this, \"permissions\", void 0);\n /**\n * \u5F53\u524D\u9875\u9762\u7D22\u5F15, \u4ECE 0 \u5F00\u59CB\n */\n _defineProperty(this, \"pageIndex\", void 0);\n /**\n * \u603B\u9875\u6570\n */\n _defineProperty(this, \"pageCount\", void 0);\n /**\n * \u5207\u6362\u5230\u53C2\u6570\u6307\u5B9A\u9875\u9762, index \u4ECE 0 \u5F00\u59CB\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"goto\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5185\u5BB9, base64 \u7F16\u7801\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgContent\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5C3A\u5BF8\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgSize\", void 0);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { AbstractApplication } from \"@netless/forge-room\";\nimport { WhiteboardApplication, WhiteboardPermissionFlag } from \"@netless/forge-whiteboard\";\nimport { ImageryDoc } from \"./ImageryDoc\";\nimport { LazyImage } from \"./LazyImage\";\nimport { ImageryDocPermissionFlag, ImageryDocPermissions } from \"./ImageryDocPermissions\";\nimport { FooterView } from \"./FooterView\";\nimport { ContinuousContainer } from \"./ContinuousContainer\";\nimport { SingleContainer } from \"./SingleContainer\";\nexport const IMAGERY_DOC_APP_NAME = \"imagery_doc\";\n\n/**\n * \u9700\u7528\u6237\u81EA\u884C\u4FDD\u8BC1 ImageryDocApplication.view \u7684\u9AD8\u5BBD\u6BD4\u4E00\u81F4\n */\nexport class ImageryDocApplication extends AbstractApplication {\n constructor() {\n super();\n _defineProperty(this, \"name\", IMAGERY_DOC_APP_NAME);\n _defineProperty(this, \"emitter\", new ImageryDoc());\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"whiteboard\", void 0);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"rootView\", document.createElement(\"div\"));\n _defineProperty(this, \"contentContainer\", document.createElement(\"div\"));\n _defineProperty(this, \"whiteboardContainer\", document.createElement(\"div\"));\n _defineProperty(this, \"footerContainer\", document.createElement(\"div\"));\n _defineProperty(this, \"permissions\", void 0);\n _defineProperty(this, \"footer\", void 0);\n _defineProperty(this, \"images\", []);\n this.rootView.setAttribute(\"data-forge-app\", \"imagery-doc\");\n this.rootView.style.background = \"red\";\n this.rootView.style.overflow = \"hidden\";\n this.contentContainer.style.width = \"100%\";\n this.contentContainer.style.height = \"100%\";\n this.contentContainer.style.display = \"flex\";\n this.contentContainer.style.flexDirection = \"column\";\n this.footer = new FooterView(this.emitter);\n this.rootView.appendChild(this.contentContainer);\n this.emitter.on(\"renderStart\", pageIndex => {\n this.footer.prevPageState(pageIndex !== 0);\n this.footer.nextPageState(pageIndex !== this.images.length - 1);\n });\n const that = this;\n Object.defineProperty(this.emitter, \"footView\", {\n get() {\n return that.footerContainer;\n }\n });\n Object.defineProperty(this.emitter, \"view\", {\n get() {\n return that.rootView;\n }\n });\n Object.defineProperty(this.emitter, \"permissions\", {\n get() {\n return that.permissions;\n }\n });\n Object.defineProperty(this.emitter, \"pageIndex\", {\n get() {\n return that.container.pageIndex;\n }\n });\n Object.defineProperty(this.emitter, \"pageCount\", {\n get() {\n return that.images.length;\n }\n });\n Object.defineProperty(this.emitter, \"goto\", {\n get() {\n return index => {\n if (that.permissions.hasPermission(ImageryDocPermissionFlag.switchPage)) {\n that.container.goto(index);\n }\n };\n }\n });\n Object.defineProperty(this.emitter, \"imgContent\", {\n get() {\n return index => {\n return that.images[index].getImgContent();\n };\n }\n });\n Object.defineProperty(this.emitter, \"imgSize\", {\n get() {\n return index => {\n return {\n width: that.images[index].width,\n height: that.images[index].height\n };\n };\n }\n });\n }\n async initialize(option) {\n const whiteboardApp = new WhiteboardApplication();\n // @ts-ignore\n whiteboardApp.roomDoc = this.roomDoc;\n // @ts-ignore\n whiteboardApp.appId = `${this.appId}_wb`;\n // @ts-ignore\n whiteboardApp.userId = this.userId;\n // @ts-ignore\n whiteboardApp.userManager = this.userManager;\n // @ts-ignore\n whiteboardApp.applicationManager = this.applicationManager;\n await whiteboardApp.initialize({\n width: -1,\n height: -1\n });\n this.whiteboardApp = whiteboardApp;\n this.whiteboard = whiteboardApp.emitter;\n this.whiteboard.enableCameraByMouse = false;\n this.whiteboard.enableCameraByTouch = false;\n this.whiteboard.view.style.width = \"100%\";\n this.whiteboard.view.style.height = \"100%\";\n this.whiteboard.view.style.position = \"absolute\";\n this.whiteboard.view.style.top = \"0\";\n this.whiteboard.view.style.left = \"0\";\n this.whiteboard.setCanvasBackgroundColor(\"#f0f0f000\");\n if (option.displayMode === \"single\") {\n this.container = new SingleContainer(this.getMap(\"single-container\"), whiteboardApp, this.whiteboardContainer, this.emitter);\n } else {\n this.container = new ContinuousContainer(this.getMap(\"continuous-container\"), whiteboardApp, this.whiteboardContainer, this.emitter);\n }\n this.whiteboardContainer.style.position = \"relative\";\n this.whiteboardContainer.style.flex = \"1 1 auto\";\n this.whiteboardContainer.style.overflow = \"hidden\";\n this.whiteboardContainer.appendChild(this.container.view);\n this.whiteboardContainer.appendChild(this.whiteboard.view);\n this.contentContainer.appendChild(this.whiteboardContainer);\n this.contentContainer.appendChild(this.footerContainer);\n this.footerContainer.appendChild(this.footer.root);\n this.whiteboard.setViewModeToMain();\n let i = 0;\n this.whiteboard.permissions.addPermission(WhiteboardPermissionFlag.mainView);\n while (i < option.images.length) {\n const image = option.images[i];\n this.images[i] = new LazyImage(image.src, image.width, image.height);\n this.container.append(this.images[i]);\n if (option.displayMode === \"single\") {\n this.whiteboard.addPage(`doc_${i}`);\n }\n i += 1;\n }\n if (option.displayMode === \"continuous\") {\n this.whiteboard.addPage(\"doc_continuous\");\n this.whiteboard.gotoPage(\"doc_continuous\");\n }\n if (option.displayMode === \"single\") {\n this.whiteboard.setViewModeToMain();\n } else {\n this.whiteboard.setViewModeToFree();\n }\n this.permissions = new ImageryDocPermissions(this.userManager, userId => {\n return this.userMap(userId);\n });\n this.permissions.addPermission(ImageryDocPermissionFlag.all);\n this.whiteboardApp.disableViewModel();\n this.container.init();\n this.whiteboard.permissions.removePermission(WhiteboardPermissionFlag.mainView);\n if (option.inheritWhiteboardId) {\n whiteboardApp.linkToWhiteboard(option.inheritWhiteboardId);\n }\n return Promise.resolve(undefined);\n }\n userMap(userId) {\n return this.getMap(`user/${userId}`);\n }\n async dispose() {\n await this.whiteboardApp.dispose();\n this.rootView.parentElement?.removeChild(this.rootView);\n this.container.dispose();\n return Promise.resolve(undefined);\n }\n}\n_defineProperty(ImageryDocApplication, \"applicationName\", IMAGERY_DOC_APP_NAME);", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { kvStore } from \"@netless/forge-room\";\nexport class LazyImage {\n constructor(src, width, height) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"width\", void 0);\n _defineProperty(this, \"height\", void 0);\n _defineProperty(this, \"src\", void 0);\n this.src = src;\n this.width = width;\n this.height = height;\n this.view = document.createElement(\"div\");\n this.view.setAttribute(\"data-forge-src\", src);\n this.view.style.width = `${width}px`;\n this.view.style.height = `${height}px`;\n this.view.style.transformOrigin = \"0 0\";\n }\n scale(scale) {\n // this.localScale = scale;\n this.view.style.width = `${this.width * scale}px`;\n this.view.style.height = `${this.height * scale}px`;\n // this.img.style.width = \"100%\";\n }\n async getImgContent() {\n let base64Data = null;\n try {\n base64Data = await kvStore.getItem(this.src);\n } catch {\n // ignore\n }\n if (base64Data) {\n return base64Data;\n }\n const response = await fetch(this.src);\n const blob = await response.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = e => {\n kvStore.setItem(this.src, reader.result);\n resolve(reader.result);\n };\n reader.onerror = () => {\n reject(reader.error);\n };\n reader.readAsDataURL(blob);\n });\n }\n async prepare() {\n if (this.view.children.length > 0) {\n return;\n }\n const base64Data = await this.getImgContent();\n const img = document.createElement(\"img\");\n img.src = base64Data;\n img.style.width = \"100%\";\n if (this.view.children.length === 0) {\n this.view.appendChild(img);\n }\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from \"eventemitter3\";\nexport let ImageryDocPermissionFlag = function (ImageryDocPermissionFlag) {\n /**\n * \u6CA1\u6709\u4EFB\u4F55\u6743\u9650, \u53EA\u80FD\u540C\u6B65\u4ED6\u4EBA\u7684\u64CD\u4F5C\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"none\"] = 0] = \"none\";\n /**\n * \u53EF\u4EE5\u5207\u6362\u9875\u9762\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"switchPage\"] = 1] = \"switchPage\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u76F8\u673A, \u5305\u62EC\u7F29\u653E, \u5E73\u79FB\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"camera\"] = 2] = \"camera\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u4FA7\u8FB9\u680F\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"sideBar\"] = 4] = \"sideBar\";\n /**\n * \u62E5\u6709\u6240\u6709\u6743\u9650\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"all\"] = ImageryDocPermissionFlag.switchPage | ImageryDocPermissionFlag.camera | ImageryDocPermissionFlag.sideBar] = \"all\";\n return ImageryDocPermissionFlag;\n}({});\nexport class ImageryDocPermissions extends EventEmitter {\n constructor(userManager, requestUserMap) {\n super();\n _defineProperty(this, \"requestUserMap\", void 0);\n _defineProperty(this, \"userManager\", void 0);\n _defineProperty(this, \"observers\", new Map());\n _defineProperty(this, \"handleUserLeave\", user => {\n const cb = this.observers.get(user.id);\n if (cb) {\n this.requestUserMap(user.id).unobserve(cb);\n }\n });\n _defineProperty(this, \"handleUserJoin\", user => {\n this.addObserve(user.id);\n });\n this.userManager = userManager;\n this.requestUserMap = requestUserMap;\n this.createModel(this.userManager.selfId);\n this.userManager.userIdList().forEach(userId => {\n this.addObserve(userId);\n });\n this.userManager.on(\"join\", this.handleUserJoin);\n this.userManager.on(\"leave\", this.handleUserLeave);\n }\n addObserve(userId) {\n const observer = evt => {\n this.handleUserPermissionChange(userId, evt);\n };\n this.observers.set(userId, observer);\n this.requestUserMap(userId).observe(observer);\n }\n createModel(userId) {\n const userMap = this.requestUserMap(userId);\n if (!userMap.has(\"permission\")) {\n userMap.set(\"permission\", 0);\n }\n }\n handleUserPermissionChange(userId, evt) {\n for (const [key, value] of evt.changes.keys.entries()) {\n if (key === \"permission\") {\n if (value.action === \"add\" || value.action === \"update\") {\n const newValue = this.requestUserMap(userId).get(\"permission\");\n this.emit(\"change\", userId, this.resolveFlags(newValue), newValue);\n }\n }\n }\n }\n\n /**\n * \u89E3\u6790\u6743\u9650\u5217\u8868\u7EC4\u5408\n * @param {number} value - \u6743\u9650\u6570\u5B57\u503C\n * @return {WhiteboardPermissionFlag[]} - \u6743\u9650\u5217\u8868\n */\n resolveFlags(value) {\n return [ImageryDocPermissionFlag.switchPage, ImageryDocPermissionFlag.sideBar, ImageryDocPermissionFlag.camera].filter(v => (v & value) !== 0);\n }\n\n /**\n * \u83B7\u53D6\u6743\u9650\u5217\u8868\u7EC4\u5408\u5BF9\u5E94\u7684\u6570\u503C\n * @param { string } userId \u4E0D\u4F20\u8868\u793A\u83B7\u53D6\u81EA\u5DF1\n */\n getPermissionValue(userId) {\n return this.requestUserMap(userId ?? this.userManager.selfId).get(\"permission\") ?? 0;\n }\n\n /**\n * \u83B7\u53D6\u6743\u9650\u5217\u8868\n * @param {string=} userId \u53EF\u9009, \u4E0D\u4F20\u8868\u793A\u83B7\u53D6\u81EA\u5DF1\n */\n getPermissionFlags(userId) {\n const value = this.requestUserMap(userId ?? this.userManager.selfId).get(\"permission\") ?? 0;\n return this.resolveFlags(value);\n }\n\n /**\n * \u8FD4\u56DE\u5BF9\u5E94 userId \u662F\u5426\u6709\u76F8\u5E94\u6743\u9650\n * @param {string=} userId \u53EF\u9009, \u4E0D\u4F20\u8868\u793A\u8FD4\u56DE\u81EA\u5DF1\u662F\u5426\u6709\u76F8\u5E94\u6743\u9650\n * @param {WhiteboardPermissionFlag} flag\n */\n hasPermission(flag, userId) {\n return ((this.requestUserMap(userId ?? this.userManager.selfId).get(\"permission\") ?? 0) & flag) !== 0;\n }\n\n /**\n * \u6DFB\u52A0\u6743\u9650\n * @param {WhiteboardPermissionFlag} flag \u6743\u9650\u6807\u8BB0\n * @param {string=} userId \u53EF\u9009, \u4E3A userId \u6DFB\u52A0\u6743\u9650, \u4E0D\u4F20\u8868\u793A\u4E3A\u81EA\u5DF1\u6DFB\u52A0\u6743\u9650\n */\n addPermission(flag, userId) {\n const userMap = this.requestUserMap(userId ?? this.userManager.selfId);\n const oldValue = userMap.get(\"permission\") ?? 0;\n this.requestUserMap(userId ?? this.userManager.selfId).set(\"permission\", oldValue | flag);\n }\n\n /**\n * \u79FB\u9664\u6743\u9650\n * @param {WhiteboardPermissionFlag} flag \u6743\u9650\u6807\u8BB0\n * @param {string=} userId \u53EF\u9009, \u4E3A userId \u79FB\u9664\u6743\u9650, \u4E0D\u4F20\u8868\u793A\u4E3A\u81EA\u5DF1\u79FB\u9664\u6743\u9650\n */\n removePermission(flag, userId) {\n const userMap = this.requestUserMap(userId ?? this.userManager.selfId);\n const oldValue = userMap.get(\"permission\") ?? 0;\n this.requestUserMap(userId ?? this.userManager.selfId).set(\"permission\", oldValue & ~flag);\n }\n}", "const chevronLeft = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 12.3926 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"12.3926\" x=\"0\" y=\"0\"/><path d=\"M0 8.47656C0 8.7207 0.0878906 8.93555 0.273438 9.12109L8.01758 16.6895C8.18359 16.8652 8.39844 16.9531 8.65234 16.9531C9.16016 16.9531 9.55078 16.5723 9.55078 16.0645C9.55078 15.8105 9.44336 15.5957 9.28711 15.4297L2.17773 8.47656L9.28711 1.52344C9.44336 1.35742 9.55078 1.13281 9.55078 0.888672C9.55078 0.380859 9.16016 0 8.65234 0C8.39844 0 8.18359 0.0878906 8.01758 0.253906L0.273438 7.83203C0.0878906 8.00781 0 8.23242 0 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst chevronRight = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 11.6895 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"11.6895\" x=\"0\" y=\"0\"/><path d=\"M11.6895 8.47656C11.6895 8.23242 11.5918 8.00781 11.4062 7.83203L3.67188 0.253906C3.49609 0.0878906 3.28125 0 3.02734 0C2.5293 0 2.13867 0.380859 2.13867 0.888672C2.13867 1.13281 2.23633 1.35742 2.39258 1.52344L9.50195 8.47656L2.39258 15.4297C2.23633 15.5957 2.13867 15.8105 2.13867 16.0645C2.13867 16.5723 2.5293 16.9531 3.02734 16.9531C3.28125 16.9531 3.49609 16.8652 3.67188 16.6895L11.4062 9.12109C11.5918 8.93555 11.6895 8.7207 11.6895 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst sideBar = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 23.3887 17.998\"><g><rect height=\"17.998\" opacity=\"0\" width=\"23.3887\" x=\"0\" y=\"0\"/><path d=\"M3.06641 17.998L19.9609 17.998C22.0117 17.998 23.0273 16.9824 23.0273 14.9707L23.0273 3.04688C23.0273 1.03516 22.0117 0.0195312 19.9609 0.0195312L3.06641 0.0195312C1.02539 0.0195312 0 1.02539 0 3.04688L0 14.9707C0 16.9922 1.02539 17.998 3.06641 17.998ZM3.08594 16.4258C2.10938 16.4258 1.57227 15.9082 1.57227 14.8926L1.57227 3.125C1.57227 2.10938 2.10938 1.5918 3.08594 1.5918L19.9414 1.5918C20.9082 1.5918 21.4551 2.10938 21.4551 3.125L21.4551 14.8926C21.4551 15.9082 20.9082 16.4258 19.9414 16.4258ZM7.44141 16.7285L8.97461 16.7285L8.97461 1.29883L7.44141 1.29883ZM5.56641 5.21484C5.85938 5.21484 6.12305 4.95117 6.12305 4.66797C6.12305 4.375 5.85938 4.12109 5.56641 4.12109L3.4668 4.12109C3.17383 4.12109 2.91992 4.375 2.91992 4.66797C2.91992 4.95117 3.17383 5.21484 3.4668 5.21484ZM5.56641 7.74414C5.85938 7.74414 6.12305 7.48047 6.12305 7.1875C6.12305 6.89453 5.85938 6.65039 5.56641 6.65039L3.4668 6.65039C3.17383 6.65039 2.91992 6.89453 2.91992 7.1875C2.91992 7.48047 3.17383 7.74414 3.4668 7.74414ZM5.56641 10.2637C5.85938 10.2637 6.12305 10.0195 6.12305 9.72656C6.12305 9.43359 5.85938 9.17969 5.56641 9.17969L3.4668 9.17969C3.17383 9.17969 2.91992 9.43359 2.91992 9.72656C2.91992 10.0195 3.17383 10.2637 3.4668 10.2637Z\" fill=\"${color}\"/></g></svg>`;\nexport const Icons = {\n chevronLeft,\n chevronRight,\n sideBar\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Icons } from \"./icons\";\nconst EM_COLOR = \"#8C8C8C\";\nexport class FooterView {\n constructor(imageryDoc) {\n _defineProperty(this, \"root\", void 0);\n _defineProperty(this, \"prevPage\", void 0);\n _defineProperty(this, \"nextPage\", void 0);\n _defineProperty(this, \"sideBarToggle\", void 0);\n _defineProperty(this, \"sideBarContainer\", document.createElement(\"div\"));\n _defineProperty(this, \"isSlideBarVisible\", false);\n _defineProperty(this, \"imageryDoc\", void 0);\n _defineProperty(this, \"handleSideBarClick\", evt => {\n const target = evt.target;\n const targetIndex = target.getAttribute(\"data-doc-index\");\n if (targetIndex) {\n this.imageryDoc.goto(parseInt(targetIndex, 10));\n }\n });\n this.imageryDoc = imageryDoc;\n this.root = document.createElement(\"div\");\n this.root.style.height = \"24px\";\n this.root.style.zIndex = \"2\";\n this.root.style.display = \"flex\";\n this.root.style.alignItems = \"center\";\n this.root.style.backgroundColor = \"#fff\";\n this.root.style.borderTop = \"1px solid #f0f0f0\";\n this.prevPage = this.createIcon(Icons.chevronLeft(EM_COLOR), \"18px\", () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex - 1);\n });\n this.nextPage = this.createIcon(Icons.chevronRight(EM_COLOR), \"18px\", () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex + 1);\n });\n this.sideBarToggle = this.createIcon(Icons.sideBar(EM_COLOR), \"20px\", () => {\n this.createSideBar();\n this.isSlideBarVisible = !this.isSlideBarVisible;\n if (this.isSlideBarVisible) {\n this.sideBarContainer.style.display = \"block\";\n } else {\n this.sideBarContainer.style.display = \"none\";\n }\n });\n this.root.appendChild(this.sideBarToggle);\n this.root.appendChild(this.createSpacer());\n this.root.appendChild(this.prevPage);\n this.root.appendChild(this.nextPage);\n this.root.appendChild(this.createSpacer());\n }\n prevPageState(enable) {\n if (enable) {\n this.prevPage.style.pointerEvents = \"all\";\n this.prevPage.style.opacity = \"1\";\n } else {\n this.prevPage.style.pointerEvents = \"none\";\n this.prevPage.style.opacity = \"0.5\";\n }\n }\n nextPageState(enable) {\n if (enable) {\n this.nextPage.style.pointerEvents = \"all\";\n this.nextPage.style.opacity = \"1\";\n } else {\n this.nextPage.style.pointerEvents = \"none\";\n this.nextPage.style.opacity = \"0.5\";\n }\n }\n createSpacer() {\n const div = document.createElement(\"div\");\n div.style.flex = \"1 1 auto\";\n return div;\n }\n createIcon(svgContent, size, action) {\n const icon = document.createElement(\"div\");\n icon.style.width = size;\n icon.style.height = size;\n icon.style.borderRadius = \"2px\";\n icon.style.margin = \"6px\";\n icon.innerHTML = svgContent;\n icon.addEventListener(\"click\", () => {\n action();\n });\n icon.addEventListener(\"mouseover\", () => {\n icon.style.backgroundColor = \"#f0f0f0\";\n });\n icon.addEventListener(\"mouseout\", () => {\n icon.style.backgroundColor = \"transparent\";\n });\n return icon;\n }\n createSideBar() {\n if (this.imageryDoc.pageCount === 0) {\n return;\n }\n if (this.root.contains(this.sideBarContainer)) {\n return;\n }\n this.sideBarContainer.style.width = \"24%\";\n this.sideBarContainer.style.maxWidth = \"180px\";\n this.sideBarContainer.style.height = \"calc(100% - 24px)\";\n this.sideBarContainer.style.position = \"absolute\";\n this.sideBarContainer.style.bottom = \"24px\";\n this.sideBarContainer.style.left = \"0\";\n this.sideBarContainer.style.fontSize = \"0px\";\n this.sideBarContainer.style.overflow = \"auto\";\n this.sideBarContainer.style.backgroundColor = \"#EFEFEF\";\n this.root.appendChild(this.sideBarContainer);\n for (let i = 0, l = this.imageryDoc.pageCount; i < l; i++) {\n const reviewPage = document.createElement(\"div\");\n reviewPage.style.width = \"100%\";\n reviewPage.style.marginTop = \"12px\";\n const reviewIndex = document.createElement(\"div\");\n reviewIndex.style.cssText = \"font-size:12px;width:100%;text-align:center;height:24px;line-height:24px;color:#585858\";\n reviewIndex.textContent = `${i + 1}`;\n const reviewImg = document.createElement(\"img\");\n reviewImg.setAttribute(\"data-doc-index\", `${i}`);\n reviewImg.style.cssText = \"width:80%;margin:0 10%;box-shadow:1px 1px 5px #9e9e9e\";\n this.imageryDoc.imgContent(i).then(base64Data => {\n reviewImg.src = base64Data;\n });\n reviewPage.appendChild(reviewImg);\n reviewPage.appendChild(reviewIndex);\n this.sideBarContainer.appendChild(reviewPage);\n }\n this.sideBarContainer.addEventListener(\"click\", this.handleSideBarClick);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from \"eventemitter3\";\nexport class InfinityScroll extends EventEmitter {\n constructor(view) {\n super();\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"lastDelta\", {\n x: 0,\n y: 0\n });\n _defineProperty(this, \"lastTriggerTime\", 0);\n _defineProperty(this, \"handleWheel\", evt => {\n evt.preventDefault();\n evt.stopImmediatePropagation();\n evt.stopPropagation();\n if (Date.now() - this.lastTriggerTime < 32) {\n this.lastDelta.y += evt.deltaY;\n this.lastDelta.x += evt.deltaX;\n return;\n }\n if (evt.ctrlKey) {\n // \u53CC\u6307\u634F\u5408\n // @ts-ignore\n const wheelDelta = Math.sign(evt.wheelDelta || 100) * 120;\n const deltaY = evt.deltaY + this.lastDelta.y;\n let scale;\n if (deltaY > 0) {\n scale = Math.max(1 - Math.abs(deltaY / wheelDelta), 0.00000001);\n } else {\n // \u653E\u5927\n scale = 1 + Math.abs(deltaY / wheelDelta);\n }\n scale = Math.max(0.9, scale);\n scale = Math.min(1.1, scale);\n this.emit(\"scale\", scale);\n } else {\n // \u62D6\u52A8\n const deltaX = this.lastDelta.x + evt.deltaX;\n const deltaY = this.lastDelta.y + evt.deltaY;\n this.emit(\"translate\", deltaX, deltaY);\n }\n this.lastTriggerTime = Date.now();\n this.lastDelta = {\n x: 0,\n y: 0\n };\n });\n this.view = view;\n this.view.addEventListener(\"wheel\", this.handleWheel, {\n passive: false,\n capture: true\n });\n }\n dispose() {\n this.view.removeEventListener(\"wheel\", this.handleWheel);\n }\n}", "export const ContainerKeys = {\n scale: \"scale\",\n translateX: \"translateX\",\n translateY: \"translateY\",\n pageIndex: \"pageIndex\"\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from \"./InfinityScroll\";\nimport { ContainerKeys } from \"./Container\";\nexport class ContinuousContainer {\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n const step = 1 / this.images.length;\n for (let i = 0; i < this.images.length; i++) {\n if (this.translateY < step * i && Math.abs(this.translateY - step * i) >= 0.0001) {\n return i - 1;\n }\n }\n return this.images.length - 1;\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"totalHeight\", 0);\n _defineProperty(this, \"localScale\", 1);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.view.getBoundingClientRect();\n let scaledHeight = 0;\n for (const image of this.images) {\n let scale = bound.width / image.width;\n image.scale(scale);\n scaledHeight += image.height * scale;\n }\n this.localScale = scaledHeight / this.totalHeight;\n this.whiteboardApp.updateOptionSize(bound.width, bound.height);\n this.whiteboardApp.adjustByOutFrame(bound.width, bound.height);\n this.updateSyncedTransform();\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n const bounds = this.view.getBoundingClientRect();\n const maxTy = this.totalHeight * this.localScale - bounds.height;\n let ty = this.translateY * this.totalHeight * this.localScale;\n ty = Math.min(ty, maxTy);\n ty = Math.max(ty, 0);\n this.view.style.transform = `translate(0, ${-ty}px)`;\n this.whiteboardApp.emitter.resetCamera();\n this.whiteboardApp.emitter.translateCamera(0, -ty);\n this.whiteboardApp.emitter.scaleCamera(this.localScale, \"top-left\");\n console.log(\"localScale: \", this.localScale, this.translateY);\n this.handleGoto(this.pageIndex);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement(\"div\");\n this.view.style.width = \"100%\";\n this.view.style.height = \"100%\";\n this.view.style.position = \"absolute\";\n this.view.style.top = \"0\";\n this.view.style.left = \"0\";\n this.view.style.transformOrigin = \"0, 0\";\n this.view.setAttribute(\"data-imagery-container\", \"continuous\");\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n this.scroll.on(\"translate\", (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n }\n init() {\n this.updateSyncedTransform();\n this.totalHeight = this.images.reduce((prev, curr) => prev + curr.height, 0);\n }\n handleTranslate(dx, dy) {\n const dyNormalized = dy / this.totalHeight;\n let nextTy = this.translateY + dyNormalized;\n nextTy = Math.max(0, nextTy);\n nextTy = Math.min(1, nextTy);\n this.translateY = nextTy;\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.translateY = nextIndex / this.images.length;\n }\n append(image) {\n this.images.push(image);\n this.view.appendChild(image.view);\n }\n async handleGoto(index) {\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit(\"renderStart\", index);\n const target = this.images[index];\n if (target) {\n await target.prepare();\n }\n this.imageDoc.emit(\"renderEnd\", index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from \"./InfinityScroll\";\nimport { ContainerKeys } from \"./Container\";\nexport const delay = value => new Promise(resolve => setTimeout(resolve, value));\nasync function waitUntil(fn, timeout) {\n let start = Date.now();\n while (!fn() && Date.now() - start < timeout) {\n await delay(50);\n start = Date.now();\n }\n}\nexport class SingleContainer {\n get scale() {\n return this.map.get(ContainerKeys.scale);\n }\n set scale(value) {\n this.map.set(ContainerKeys.scale, value);\n }\n get translateX() {\n return this.map.get(ContainerKeys.translateX);\n }\n set translateX(value) {\n this.map.set(ContainerKeys.translateX, value);\n }\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n return this.map.get(ContainerKeys.pageIndex);\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"currentImage\", null);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"timeoutId\", null);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.scale) || event.keysChanged.has(ContainerKeys.translateX) || event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n if (event.keysChanged.has(ContainerKeys.pageIndex)) {\n this.handleGoto(this.pageIndex).catch(error => {\n // todo error\n });\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.parentView.getBoundingClientRect();\n if (this.currentImage) {\n let scale = bound.width / this.currentImage.width;\n if (this.currentImage.height * scale > bound.height) {\n scale = bound.height / this.currentImage.height;\n }\n const tx = Math.round((bound.width - this.currentImage.width * scale) / 2 / scale);\n const ty = Math.round((bound.height - this.currentImage.height * scale) / 2 / scale);\n this.currentImage.view.style.transform = `scale(${scale}) translate(${tx}px, ${ty}px)`;\n this.updateSyncedTransform();\n }\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n if (!this.currentImage) {\n return;\n }\n const parentBounds = this.parentView.getBoundingClientRect();\n const tx = -this.translateX * parentBounds.width / this.scale;\n const ty = -this.translateY * parentBounds.height / this.scale;\n this.view.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;\n const whiteboardView = this.whiteboardApp.emitter.view;\n whiteboardView.style.width = `${parentBounds.width}px`;\n whiteboardView.style.height = `${parentBounds.height}px`;\n whiteboardView.style.top = \"0\";\n whiteboardView.style.left = \"0\";\n whiteboardView.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;\n this.whiteboardApp.adjustByOutFrame(parentBounds.width, parentBounds.height);\n window.clearTimeout(this.timeoutId);\n this.timeoutId = window.setTimeout(() => {\n whiteboardView.style.width = `${parentBounds.width * this.scale}px`;\n whiteboardView.style.height = `${parentBounds.height * this.scale}px`;\n whiteboardView.style.top = `${-(this.scale - 1) * parentBounds.height / 2 + ty * this.scale}px`;\n whiteboardView.style.left = `${-(this.scale - 1) * parentBounds.width / 2 + tx * this.scale}px`;\n whiteboardView.style.transform = `scale(1) translate(0px, 0px)`;\n this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);\n }, 200);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement(\"div\");\n this.view.style.width = \"100%\";\n this.view.style.height = \"100%\";\n this.view.style.position = \"absolute\";\n this.view.style.top = \"0\";\n this.view.style.left = \"0\";\n this.view.style.transformOrigin = \"center\";\n this.view.setAttribute(\"data-imagery-container\", \"single\");\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n window.imageWhiteboard = this.whiteboardApp;\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n if (!this.map.has(ContainerKeys.pageIndex)) {\n this.map.set(ContainerKeys.pageIndex, 0);\n }\n this.scroll.on(\"translate\", (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n this.scroll.on(\"scale\", scale => {\n let nextScale = this.scale * scale;\n nextScale = Math.max(1, nextScale);\n nextScale = Math.min(2, nextScale);\n this.scale = nextScale;\n this.handleTranslate(0, 0);\n });\n }\n init() {\n this.handleGoto(this.pageIndex).catch(error => {\n // todo error\n });\n this.updateSyncedTransform();\n }\n handleTranslate(dx, dy) {\n const image = this.view.children[0];\n if (!image) {\n return;\n }\n const imageBounds = image.getBoundingClientRect();\n const parentBounds = this.parentView.getBoundingClientRect();\n const maxDx = (imageBounds.width - parentBounds.width) / 2;\n const maxDy = (imageBounds.height - parentBounds.height) / 2;\n if (maxDx > 0) {\n let nextDx = this.translateX * parentBounds.width + dx;\n if (nextDx >= 0) {\n nextDx = Math.min(nextDx, maxDx);\n } else {\n nextDx = Math.max(nextDx, -maxDx);\n }\n this.translateX = nextDx / parentBounds.width;\n } else {\n this.translateX = 0;\n }\n if (maxDy > 0) {\n let nextDy = this.translateY * parentBounds.height + dy;\n if (nextDy >= 0) {\n nextDy = Math.min(nextDy, maxDy);\n } else {\n nextDy = Math.max(nextDy, -maxDy);\n }\n this.translateY = nextDy / parentBounds.height;\n } else {\n this.translateY = 0;\n }\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.map.set(ContainerKeys.pageIndex, nextIndex);\n }\n append(image) {\n this.images.push(image);\n }\n async handleGoto(index) {\n await waitUntil(() => this.images.length > 0, 3000);\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit(\"renderStart\", index);\n if (this.view.children[0]) {\n this.view.removeChild(this.view.children[0]);\n }\n this.whiteboardApp.emitter.view.style.opacity = \"0\";\n const target = this.images[index];\n if (target) {\n await target.prepare();\n this.view.appendChild(target.view);\n this.currentImage = target;\n this.whiteboardApp.emitter.gotoPage(`doc_${index}`);\n this.whiteboardApp.updateOptionSize(this.currentImage.width, this.currentImage.height);\n this.whiteboardApp.emitter.view.style.opacity = \"1\";\n this.handleResize();\n }\n this.imageDoc.emit(\"renderEnd\", index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n window.clearTimeout(this.timeoutId);\n }\n}"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from 'eventemitter3';\nexport class ImageryDoc extends EventEmitter {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"view\", void 0);\n /**\n * \u5E95\u90E8\u64CD\u4F5C\u680F\n */\n _defineProperty(this, \"footView\", void 0);\n _defineProperty(this, \"permissions\", void 0);\n /**\n * \u5F53\u524D\u9875\u9762\u7D22\u5F15, \u4ECE 0 \u5F00\u59CB\n */\n _defineProperty(this, \"pageIndex\", void 0);\n /**\n * \u603B\u9875\u6570\n */\n _defineProperty(this, \"pageCount\", void 0);\n /**\n * \u5207\u6362\u5230\u53C2\u6570\u6307\u5B9A\u9875\u9762, index \u4ECE 0 \u5F00\u59CB\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"goto\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5185\u5BB9, base64 \u7F16\u7801\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgContent\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5C3A\u5BF8\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgSize\", void 0);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { AbstractApplication } from '@netless/forge-room';\nimport { WhiteboardApplication, WhiteboardPermissionFlag } from '@netless/forge-whiteboard';\nimport { ImageryDoc } from './ImageryDoc';\nimport { LazyImage } from './LazyImage';\nimport { ImageryDocPermissionFlag, ImageryDocPermissions } from './ImageryDocPermissions';\nimport { FooterView } from './FooterView';\nimport { ContinuousContainer } from './ContinuousContainer';\nimport { SingleContainer } from './SingleContainer';\nexport const IMAGERY_DOC_APP_NAME = 'imagery_doc';\n\n/**\n * \u9700\u7528\u6237\u81EA\u884C\u4FDD\u8BC1 ImageryDocApplication.view \u7684\u9AD8\u5BBD\u6BD4\u4E00\u81F4\n */\nexport class ImageryDocApplication extends AbstractApplication {\n constructor() {\n super();\n _defineProperty(this, \"name\", IMAGERY_DOC_APP_NAME);\n _defineProperty(this, \"emitter\", new ImageryDoc());\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"whiteboard\", void 0);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"rootView\", document.createElement('div'));\n _defineProperty(this, \"contentContainer\", document.createElement('div'));\n _defineProperty(this, \"whiteboardContainer\", document.createElement('div'));\n _defineProperty(this, \"footerContainer\", document.createElement('div'));\n _defineProperty(this, \"permissions\", void 0);\n _defineProperty(this, \"footer\", void 0);\n _defineProperty(this, \"images\", []);\n this.rootView.setAttribute('data-forge-app', 'imagery-doc');\n this.rootView.style.background = 'red';\n this.rootView.style.overflow = 'hidden';\n this.contentContainer.style.width = '100%';\n this.contentContainer.style.height = '100%';\n this.contentContainer.style.display = 'flex';\n this.contentContainer.style.flexDirection = 'column';\n this.footer = new FooterView(this.emitter);\n this.rootView.appendChild(this.contentContainer);\n this.emitter.on('renderStart', pageIndex => {\n this.footer.prevPageState(pageIndex !== 0);\n this.footer.nextPageState(pageIndex !== this.images.length - 1);\n });\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n Object.defineProperty(this.emitter, 'footView', {\n get() {\n return that.footerContainer;\n }\n });\n Object.defineProperty(this.emitter, 'view', {\n get() {\n return that.rootView;\n }\n });\n Object.defineProperty(this.emitter, 'permissions', {\n get() {\n return that.permissions;\n }\n });\n Object.defineProperty(this.emitter, 'pageIndex', {\n get() {\n return that.container.pageIndex;\n }\n });\n Object.defineProperty(this.emitter, 'pageCount', {\n get() {\n return that.images.length;\n }\n });\n Object.defineProperty(this.emitter, 'goto', {\n get() {\n return index => {\n if (that.permissions.hasPermission(ImageryDocPermissionFlag.switchPage)) {\n that.container.goto(index);\n }\n };\n }\n });\n Object.defineProperty(this.emitter, 'imgContent', {\n get() {\n return index => {\n return that.images[index].getImgContent();\n };\n }\n });\n Object.defineProperty(this.emitter, 'imgSize', {\n get() {\n return index => {\n return {\n width: that.images[index].width,\n height: that.images[index].height\n };\n };\n }\n });\n }\n async initialize(option) {\n const whiteboardApp = new WhiteboardApplication();\n // @ts-ignore\n whiteboardApp.roomDoc = this.roomDoc;\n // @ts-ignore\n whiteboardApp.appId = `${this.appId}_wb`;\n // @ts-ignore\n whiteboardApp.userId = this.userId;\n // @ts-ignore\n whiteboardApp.userManager = this.userManager;\n // @ts-ignore\n whiteboardApp.applicationManager = this.applicationManager;\n await whiteboardApp.initialize({\n width: -1,\n height: -1\n });\n this.whiteboardApp = whiteboardApp;\n this.whiteboard = whiteboardApp.emitter;\n this.whiteboard.enableCameraByMouse = false;\n this.whiteboard.enableCameraByTouch = false;\n this.whiteboard.view.style.width = '100%';\n this.whiteboard.view.style.height = '100%';\n this.whiteboard.view.style.position = 'absolute';\n this.whiteboard.view.style.top = '0';\n this.whiteboard.view.style.left = '0';\n this.whiteboard.setCanvasBackgroundColor('#f0f0f000');\n if (option.displayMode === 'single') {\n this.container = new SingleContainer(this.getMap('single-container'), whiteboardApp, this.whiteboardContainer, this.emitter);\n } else {\n this.container = new ContinuousContainer(this.getMap('continuous-container'), whiteboardApp, this.whiteboardContainer, this.emitter);\n }\n this.whiteboardContainer.style.position = 'relative';\n this.whiteboardContainer.style.flex = '1 1 auto';\n this.whiteboardContainer.style.overflow = 'hidden';\n this.whiteboardContainer.appendChild(this.container.view);\n this.whiteboardContainer.appendChild(this.whiteboard.view);\n this.contentContainer.appendChild(this.whiteboardContainer);\n this.contentContainer.appendChild(this.footerContainer);\n this.footerContainer.appendChild(this.footer.root);\n let i = 0;\n this.whiteboard.permissions.addPermission(WhiteboardPermissionFlag.mainView);\n this.whiteboard.setViewModeToMain();\n while (i < option.images.length) {\n const image = option.images[i];\n this.images[i] = new LazyImage(image.src, image.width, image.height);\n this.container.append(this.images[i]);\n if (option.displayMode === 'single') {\n this.whiteboard.addPage(`doc_${i}`);\n }\n i += 1;\n }\n if (option.displayMode === 'continuous') {\n this.whiteboard.addPage('doc_continuous');\n this.whiteboard.gotoPage('doc_continuous');\n }\n this.whiteboard.setViewModeToFree();\n this.permissions = new ImageryDocPermissions(this.userManager, userId => {\n return this.userMap(userId);\n });\n this.permissions.on('change', (userId, flags, value) => {\n this.emitter.emit('permissionChange', userId, flags, value);\n });\n this.permissions.addPermission(ImageryDocPermissionFlag.all);\n this.whiteboardApp.disableViewModel();\n this.container.init();\n this.whiteboard.permissions.removePermission(WhiteboardPermissionFlag.mainView);\n if (option.inheritWhiteboardId) {\n whiteboardApp.linkToWhiteboard(option.inheritWhiteboardId);\n }\n return Promise.resolve(undefined);\n }\n userMap(userId) {\n return this.getMap(`user/${userId}`);\n }\n async dispose() {\n await this.whiteboardApp.dispose();\n this.rootView.parentElement?.removeChild(this.rootView);\n this.container.dispose();\n this.permissions.dispose();\n Object.defineProperty(this.emitter, 'footView', {\n value: null\n });\n Object.defineProperty(this.emitter, 'view', {\n value: null\n });\n Object.defineProperty(this.emitter, 'permissions', {\n value: null\n });\n Object.defineProperty(this.emitter, 'pageIndex', {\n value: null\n });\n Object.defineProperty(this.emitter, 'pageCount', {\n value: null\n });\n Object.defineProperty(this.emitter, 'goto', {\n value: null\n });\n Object.defineProperty(this.emitter, 'imgContent', {\n value: null\n });\n Object.defineProperty(this.emitter, 'imgSize', {\n value: null\n });\n this.emitter.removeAllListeners();\n return Promise.resolve(undefined);\n }\n}\n\n// @ts-ignore\n_defineProperty(ImageryDocApplication, \"applicationName\", IMAGERY_DOC_APP_NAME);\nwindow.__ImageryDocApplication = ImageryDocApplication;", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { kvStore } from '@netless/forge-room';\nexport class LazyImage {\n constructor(src, width, height) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"width\", void 0);\n _defineProperty(this, \"height\", void 0);\n _defineProperty(this, \"src\", void 0);\n this.src = src;\n this.width = width;\n this.height = height;\n this.view = document.createElement('div');\n this.view.setAttribute('data-forge-src', src);\n this.view.style.width = `${width}px`;\n this.view.style.height = `${height}px`;\n this.view.style.transformOrigin = '0 0';\n }\n scale(scale) {\n // this.localScale = scale;\n this.view.style.width = `${this.width * scale}px`;\n this.view.style.height = `${this.height * scale}px`;\n // this.img.style.width = \"100%\";\n }\n async getImgContent() {\n let base64Data = null;\n try {\n base64Data = await kvStore.getItem(this.src);\n } catch {\n // ignore\n }\n if (base64Data) {\n return base64Data;\n }\n const response = await fetch(this.src);\n const blob = await response.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = _e => {\n kvStore.setItem(this.src, reader.result);\n resolve(reader.result);\n };\n reader.onerror = () => {\n reject(reader.error);\n };\n reader.readAsDataURL(blob);\n });\n }\n async prepare() {\n if (this.view.children.length > 0) {\n return;\n }\n const base64Data = await this.getImgContent();\n const img = document.createElement('img');\n img.src = base64Data;\n img.style.width = '100%';\n if (this.view.children.length === 0) {\n this.view.appendChild(img);\n }\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from 'eventemitter3';\nexport let ImageryDocPermissionFlag = function (ImageryDocPermissionFlag) {\n /**\n * \u6CA1\u6709\u4EFB\u4F55\u6743\u9650, \u53EA\u80FD\u540C\u6B65\u4ED6\u4EBA\u7684\u64CD\u4F5C\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"none\"] = 0] = \"none\";\n /**\n * \u53EF\u4EE5\u5207\u6362\u9875\u9762\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"switchPage\"] = 1] = \"switchPage\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u76F8\u673A, \u5305\u62EC\u7F29\u653E, \u5E73\u79FB\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"camera\"] = 2] = \"camera\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u4FA7\u8FB9\u680F\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"sideBar\"] = 4] = \"sideBar\";\n /**\n * \u62E5\u6709\u6240\u6709\u6743\u9650\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"all\"] = ImageryDocPermissionFlag.switchPage | ImageryDocPermissionFlag.camera | ImageryDocPermissionFlag.sideBar] = \"all\";\n return ImageryDocPermissionFlag;\n}({});\nexport class ImageryDocPermissions extends EventEmitter {\n constructor(userManager, requestUserMap) {\n super();\n _defineProperty(this, \"requestUserMap\", void 0);\n _defineProperty(this, \"userManager\", void 0);\n _defineProperty(this, \"observers\", new Map());\n _defineProperty(this, \"handleUserLeave\", user => {\n const cb = this.observers.get(user.id);\n if (cb) {\n this.requestUserMap(user.id).unobserve(cb);\n }\n });\n _defineProperty(this, \"handleUserJoin\", user => {\n this.addObserve(user.id);\n });\n this.userManager = userManager;\n this.requestUserMap = requestUserMap;\n this.createModel(this.userManager.selfId);\n this.userManager.userIdList().forEach(userId => {\n this.addObserve(userId);\n });\n this.userManager.on('join', this.handleUserJoin);\n this.userManager.on('leave', this.handleUserLeave);\n }\n addObserve(userId) {\n const observer = evt => {\n this.handleUserPermissionChange(userId, evt);\n };\n this.observers.set(userId, observer);\n this.requestUserMap(userId).observe(observer);\n }\n createModel(userId) {\n const userMap = this.requestUserMap(userId);\n if (!userMap.has('permission')) {\n userMap.set('permission', 0);\n }\n }\n handleUserPermissionChange(userId, evt) {\n for (const [key, value] of evt.changes.keys.entries()) {\n if (key === 'permission') {\n if (value.action === 'add' || value.action === 'update') {\n const newValue = this.requestUserMap(userId).get('permission');\n this.emit('change', userId, this.resolveFlags(newValue), newValue);\n }\n }\n }\n }\n\n /**\n * \u89E3\u6790\u6743\u9650\u5217\u8868\u7EC4\u5408\n * @param {number} value - \u6743\u9650\u6570\u5B57\u503C\n * @return {WhiteboardPermissionFlag[]} - \u6743\u9650\u5217\u8868\n */\n resolveFlags(value) {\n return [ImageryDocPermissionFlag.switchPage, ImageryDocPermissionFlag.sideBar, ImageryDocPermissionFlag.camera].filter(v => (v & value) !== 0);\n }\n\n /**\n * \u83B7\u53D6\u6743\u9650\u5217\u8868\u7EC4\u5408\u5BF9\u5E94\u7684\u6570\u503C\n * @param { string } userId \u4E0D\u4F20\u8868\u793A\u83B7\u53D6\u81EA\u5DF1\n */\n getPermissionValue(userId) {\n return this.requestUserMap(userId ?? this.userManager.selfId).get('permission') ?? 0;\n }\n\n /**\n * \u83B7\u53D6\u6743\u9650\u5217\u8868\n * @param {string=} userId \u53EF\u9009, \u4E0D\u4F20\u8868\u793A\u83B7\u53D6\u81EA\u5DF1\n */\n getPermissionFlags(userId) {\n const value = this.requestUserMap(userId ?? this.userManager.selfId).get('permission') ?? 0;\n return this.resolveFlags(value);\n }\n\n /**\n * \u8FD4\u56DE\u5BF9\u5E94 userId \u662F\u5426\u6709\u76F8\u5E94\u6743\u9650\n * @param {string=} userId \u53EF\u9009, \u4E0D\u4F20\u8868\u793A\u8FD4\u56DE\u81EA\u5DF1\u662F\u5426\u6709\u76F8\u5E94\u6743\u9650\n * @param {WhiteboardPermissionFlag} flag\n */\n hasPermission(flag, userId) {\n return ((this.requestUserMap(userId ?? this.userManager.selfId).get('permission') ?? 0) & flag) !== 0;\n }\n\n /**\n * \u6DFB\u52A0\u6743\u9650\n * @param {WhiteboardPermissionFlag} flag \u6743\u9650\u6807\u8BB0\n * @param {string=} userId \u53EF\u9009, \u4E3A userId \u6DFB\u52A0\u6743\u9650, \u4E0D\u4F20\u8868\u793A\u4E3A\u81EA\u5DF1\u6DFB\u52A0\u6743\u9650\n */\n addPermission(flag, userId) {\n const userMap = this.requestUserMap(userId ?? this.userManager.selfId);\n const oldValue = userMap.get('permission') ?? 0;\n this.requestUserMap(userId ?? this.userManager.selfId).set('permission', oldValue | flag);\n }\n\n /**\n * \u79FB\u9664\u6743\u9650\n * @param {WhiteboardPermissionFlag} flag \u6743\u9650\u6807\u8BB0\n * @param {string=} userId \u53EF\u9009, \u4E3A userId \u79FB\u9664\u6743\u9650, \u4E0D\u4F20\u8868\u793A\u4E3A\u81EA\u5DF1\u79FB\u9664\u6743\u9650\n */\n removePermission(flag, userId) {\n const userMap = this.requestUserMap(userId ?? this.userManager.selfId);\n const oldValue = userMap.get('permission') ?? 0;\n this.requestUserMap(userId ?? this.userManager.selfId).set('permission', oldValue & ~flag);\n }\n dispose() {\n this.userManager.off('join', this.handleUserJoin);\n this.userManager.off('leave', this.handleUserLeave);\n for (const [userId, observer] of this.observers) {\n this.requestUserMap(userId).unobserve(observer);\n }\n this.observers.clear();\n this.removeAllListeners();\n }\n}", "const chevronLeft = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 12.3926 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"12.3926\" x=\"0\" y=\"0\"/><path d=\"M0 8.47656C0 8.7207 0.0878906 8.93555 0.273438 9.12109L8.01758 16.6895C8.18359 16.8652 8.39844 16.9531 8.65234 16.9531C9.16016 16.9531 9.55078 16.5723 9.55078 16.0645C9.55078 15.8105 9.44336 15.5957 9.28711 15.4297L2.17773 8.47656L9.28711 1.52344C9.44336 1.35742 9.55078 1.13281 9.55078 0.888672C9.55078 0.380859 9.16016 0 8.65234 0C8.39844 0 8.18359 0.0878906 8.01758 0.253906L0.273438 7.83203C0.0878906 8.00781 0 8.23242 0 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst chevronRight = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 11.6895 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"11.6895\" x=\"0\" y=\"0\"/><path d=\"M11.6895 8.47656C11.6895 8.23242 11.5918 8.00781 11.4062 7.83203L3.67188 0.253906C3.49609 0.0878906 3.28125 0 3.02734 0C2.5293 0 2.13867 0.380859 2.13867 0.888672C2.13867 1.13281 2.23633 1.35742 2.39258 1.52344L9.50195 8.47656L2.39258 15.4297C2.23633 15.5957 2.13867 15.8105 2.13867 16.0645C2.13867 16.5723 2.5293 16.9531 3.02734 16.9531C3.28125 16.9531 3.49609 16.8652 3.67188 16.6895L11.4062 9.12109C11.5918 8.93555 11.6895 8.7207 11.6895 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst sideBar = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 23.3887 17.998\"><g><rect height=\"17.998\" opacity=\"0\" width=\"23.3887\" x=\"0\" y=\"0\"/><path d=\"M3.06641 17.998L19.9609 17.998C22.0117 17.998 23.0273 16.9824 23.0273 14.9707L23.0273 3.04688C23.0273 1.03516 22.0117 0.0195312 19.9609 0.0195312L3.06641 0.0195312C1.02539 0.0195312 0 1.02539 0 3.04688L0 14.9707C0 16.9922 1.02539 17.998 3.06641 17.998ZM3.08594 16.4258C2.10938 16.4258 1.57227 15.9082 1.57227 14.8926L1.57227 3.125C1.57227 2.10938 2.10938 1.5918 3.08594 1.5918L19.9414 1.5918C20.9082 1.5918 21.4551 2.10938 21.4551 3.125L21.4551 14.8926C21.4551 15.9082 20.9082 16.4258 19.9414 16.4258ZM7.44141 16.7285L8.97461 16.7285L8.97461 1.29883L7.44141 1.29883ZM5.56641 5.21484C5.85938 5.21484 6.12305 4.95117 6.12305 4.66797C6.12305 4.375 5.85938 4.12109 5.56641 4.12109L3.4668 4.12109C3.17383 4.12109 2.91992 4.375 2.91992 4.66797C2.91992 4.95117 3.17383 5.21484 3.4668 5.21484ZM5.56641 7.74414C5.85938 7.74414 6.12305 7.48047 6.12305 7.1875C6.12305 6.89453 5.85938 6.65039 5.56641 6.65039L3.4668 6.65039C3.17383 6.65039 2.91992 6.89453 2.91992 7.1875C2.91992 7.48047 3.17383 7.74414 3.4668 7.74414ZM5.56641 10.2637C5.85938 10.2637 6.12305 10.0195 6.12305 9.72656C6.12305 9.43359 5.85938 9.17969 5.56641 9.17969L3.4668 9.17969C3.17383 9.17969 2.91992 9.43359 2.91992 9.72656C2.91992 10.0195 3.17383 10.2637 3.4668 10.2637Z\" fill=\"${color}\"/></g></svg>`;\nexport const Icons = {\n chevronLeft,\n chevronRight,\n sideBar\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Icons } from './icons';\nconst EM_COLOR = '#8C8C8C';\nexport class FooterView {\n constructor(imageryDoc) {\n _defineProperty(this, \"root\", void 0);\n _defineProperty(this, \"prevPage\", void 0);\n _defineProperty(this, \"nextPage\", void 0);\n _defineProperty(this, \"sideBarToggle\", void 0);\n _defineProperty(this, \"sideBarContainer\", document.createElement('div'));\n _defineProperty(this, \"isSlideBarVisible\", false);\n _defineProperty(this, \"imageryDoc\", void 0);\n _defineProperty(this, \"handleSideBarClick\", evt => {\n const target = evt.target;\n const targetIndex = target.getAttribute('data-doc-index');\n if (targetIndex) {\n this.imageryDoc.goto(parseInt(targetIndex, 10));\n }\n });\n this.imageryDoc = imageryDoc;\n this.root = document.createElement('div');\n this.root.style.height = '24px';\n this.root.style.zIndex = '2';\n this.root.style.display = 'flex';\n this.root.style.alignItems = 'center';\n this.root.style.backgroundColor = '#fff';\n this.root.style.borderTop = '1px solid #f0f0f0';\n this.prevPage = this.createIcon(Icons.chevronLeft(EM_COLOR), '18px', () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex - 1);\n });\n this.nextPage = this.createIcon(Icons.chevronRight(EM_COLOR), '18px', () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex + 1);\n });\n this.sideBarToggle = this.createIcon(Icons.sideBar(EM_COLOR), '20px', () => {\n this.createSideBar();\n this.isSlideBarVisible = !this.isSlideBarVisible;\n if (this.isSlideBarVisible) {\n this.sideBarContainer.style.display = 'block';\n } else {\n this.sideBarContainer.style.display = 'none';\n }\n });\n this.root.appendChild(this.sideBarToggle);\n this.root.appendChild(this.createSpacer());\n this.root.appendChild(this.prevPage);\n this.root.appendChild(this.nextPage);\n this.root.appendChild(this.createSpacer());\n }\n prevPageState(enable) {\n if (enable) {\n this.prevPage.style.pointerEvents = 'all';\n this.prevPage.style.opacity = '1';\n } else {\n this.prevPage.style.pointerEvents = 'none';\n this.prevPage.style.opacity = '0.5';\n }\n }\n nextPageState(enable) {\n if (enable) {\n this.nextPage.style.pointerEvents = 'all';\n this.nextPage.style.opacity = '1';\n } else {\n this.nextPage.style.pointerEvents = 'none';\n this.nextPage.style.opacity = '0.5';\n }\n }\n createSpacer() {\n const div = document.createElement('div');\n div.style.flex = '1 1 auto';\n return div;\n }\n createIcon(svgContent, size, action) {\n const icon = document.createElement('div');\n icon.style.width = size;\n icon.style.height = size;\n icon.style.borderRadius = '2px';\n icon.style.margin = '6px';\n icon.innerHTML = svgContent;\n icon.addEventListener('click', () => {\n action();\n });\n icon.addEventListener('mouseover', () => {\n icon.style.backgroundColor = '#f0f0f0';\n });\n icon.addEventListener('mouseout', () => {\n icon.style.backgroundColor = 'transparent';\n });\n return icon;\n }\n createSideBar() {\n if (this.imageryDoc.pageCount === 0) {\n return;\n }\n if (this.root.contains(this.sideBarContainer)) {\n return;\n }\n this.sideBarContainer.style.width = '24%';\n this.sideBarContainer.style.maxWidth = '180px';\n this.sideBarContainer.style.height = 'calc(100% - 24px)';\n this.sideBarContainer.style.position = 'absolute';\n this.sideBarContainer.style.bottom = '24px';\n this.sideBarContainer.style.left = '0';\n this.sideBarContainer.style.fontSize = '0px';\n this.sideBarContainer.style.overflow = 'auto';\n this.sideBarContainer.style.backgroundColor = '#EFEFEF';\n this.root.appendChild(this.sideBarContainer);\n for (let i = 0, l = this.imageryDoc.pageCount; i < l; i++) {\n const reviewPage = document.createElement('div');\n reviewPage.style.width = '100%';\n reviewPage.style.marginTop = '12px';\n const reviewIndex = document.createElement('div');\n reviewIndex.style.cssText = 'font-size:12px;width:100%;text-align:center;height:24px;line-height:24px;color:#585858';\n reviewIndex.textContent = `${i + 1}`;\n const reviewImg = document.createElement('img');\n reviewImg.setAttribute('data-doc-index', `${i}`);\n reviewImg.style.cssText = 'width:80%;margin:0 10%;box-shadow:1px 1px 5px #9e9e9e';\n this.imageryDoc.imgContent(i).then(base64Data => {\n reviewImg.src = base64Data;\n });\n reviewPage.appendChild(reviewImg);\n reviewPage.appendChild(reviewIndex);\n this.sideBarContainer.appendChild(reviewPage);\n }\n this.sideBarContainer.addEventListener('click', this.handleSideBarClick);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from 'eventemitter3';\nexport class InfinityScroll extends EventEmitter {\n constructor(view) {\n super();\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"lastDelta\", {\n x: 0,\n y: 0\n });\n _defineProperty(this, \"lastTriggerTime\", 0);\n _defineProperty(this, \"handleWheel\", evt => {\n evt.preventDefault();\n evt.stopImmediatePropagation();\n evt.stopPropagation();\n if (Date.now() - this.lastTriggerTime < 32) {\n this.lastDelta.y += evt.deltaY;\n this.lastDelta.x += evt.deltaX;\n return;\n }\n if (evt.ctrlKey) {\n // \u53CC\u6307\u634F\u5408\n // @ts-ignore\n const wheelDelta = Math.sign(evt.wheelDelta || 100) * 120;\n const deltaY = evt.deltaY + this.lastDelta.y;\n let scale;\n if (deltaY > 0) {\n scale = Math.max(1 - Math.abs(deltaY / wheelDelta), 0.00000001);\n } else {\n // \u653E\u5927\n scale = 1 + Math.abs(deltaY / wheelDelta);\n }\n scale = Math.max(0.9, scale);\n scale = Math.min(1.1, scale);\n this.emit('scale', scale);\n } else {\n // \u62D6\u52A8\n const deltaX = this.lastDelta.x + evt.deltaX;\n const deltaY = this.lastDelta.y + evt.deltaY;\n this.emit('translate', deltaX, deltaY);\n }\n this.lastTriggerTime = Date.now();\n this.lastDelta = {\n x: 0,\n y: 0\n };\n });\n this.view = view;\n this.view.addEventListener('wheel', this.handleWheel, {\n passive: false,\n capture: true\n });\n }\n dispose() {\n this.view.removeEventListener('wheel', this.handleWheel);\n this.removeAllListeners();\n }\n}", "export const ContainerKeys = {\n scale: 'scale',\n translateX: 'translateX',\n translateY: 'translateY',\n pageIndex: 'pageIndex'\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from './InfinityScroll';\nimport { ContainerKeys } from './Container';\nexport class ContinuousContainer {\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n const step = 1 / this.images.length;\n for (let i = 0; i < this.images.length; i++) {\n if (this.translateY < step * i && Math.abs(this.translateY - step * i) >= 0.0001) {\n return i - 1;\n }\n }\n return this.images.length - 1;\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"totalHeight\", 0);\n _defineProperty(this, \"localScale\", 1);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.view.getBoundingClientRect();\n let scaledHeight = 0;\n for (const image of this.images) {\n const scale = bound.width / image.width;\n image.scale(scale);\n scaledHeight += image.height * scale;\n }\n this.localScale = scaledHeight / this.totalHeight;\n this.whiteboardApp.updateOptionSize(bound.width, bound.height);\n this.whiteboardApp.adjustByOutFrame(bound.width, bound.height);\n this.updateSyncedTransform();\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n const bounds = this.view.getBoundingClientRect();\n const maxTy = this.totalHeight * this.localScale - bounds.height;\n let ty = this.translateY * this.totalHeight * this.localScale;\n ty = Math.min(ty, maxTy);\n ty = Math.max(ty, 0);\n this.view.style.transform = `translate(0, ${-ty}px)`;\n this.whiteboardApp.emitter.resetCamera();\n this.whiteboardApp.emitter.translateCamera(0, -ty);\n this.whiteboardApp.emitter.scaleCamera(this.localScale, 'top-left');\n console.log('localScale: ', this.localScale, this.translateY);\n this.handleGoto(this.pageIndex);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement('div');\n this.view.style.width = '100%';\n this.view.style.height = '100%';\n this.view.style.position = 'absolute';\n this.view.style.top = '0';\n this.view.style.left = '0';\n this.view.style.transformOrigin = '0, 0';\n this.view.setAttribute('data-imagery-container', 'continuous');\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n this.scroll.on('translate', (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n }\n init() {\n this.updateSyncedTransform();\n this.totalHeight = this.images.reduce((prev, curr) => prev + curr.height, 0);\n }\n handleTranslate(dx, dy) {\n const dyNormalized = dy / this.totalHeight;\n let nextTy = this.translateY + dyNormalized;\n nextTy = Math.max(0, nextTy);\n nextTy = Math.min(1, nextTy);\n this.translateY = nextTy;\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.translateY = nextIndex / this.images.length;\n }\n append(image) {\n this.images.push(image);\n this.view.appendChild(image.view);\n }\n async handleGoto(index) {\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit('renderStart', index);\n const target = this.images[index];\n if (target) {\n await target.prepare();\n }\n this.imageDoc.emit('renderEnd', index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from './InfinityScroll';\nimport { ContainerKeys } from './Container';\nexport const delay = value => new Promise(resolve => setTimeout(resolve, value));\nasync function waitUntil(fn, timeout) {\n let start = Date.now();\n while (!fn() && Date.now() - start < timeout) {\n await delay(50);\n start = Date.now();\n }\n}\nexport class SingleContainer {\n get scale() {\n return this.map.get(ContainerKeys.scale);\n }\n set scale(value) {\n this.map.set(ContainerKeys.scale, value);\n }\n get translateX() {\n return this.map.get(ContainerKeys.translateX);\n }\n set translateX(value) {\n this.map.set(ContainerKeys.translateX, value);\n }\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n return this.map.get(ContainerKeys.pageIndex);\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"currentImage\", null);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.scale) || event.keysChanged.has(ContainerKeys.translateX) || event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n if (event.keysChanged.has(ContainerKeys.pageIndex)) {\n this.handleGoto(this.pageIndex).catch(_error => {\n // todo error\n });\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.parentView.getBoundingClientRect();\n if (this.currentImage) {\n let scale = bound.width / this.currentImage.width;\n if (this.currentImage.height * scale > bound.height) {\n scale = bound.height / this.currentImage.height;\n }\n const tx = Math.round((bound.width - this.currentImage.width * scale) / 2 / scale);\n const ty = Math.round((bound.height - this.currentImage.height * scale) / 2 / scale);\n this.currentImage.view.style.transform = `scale(${scale}) translate(${tx}px, ${ty}px)`;\n this.updateSyncedTransform();\n this.resetTranslateOnResize();\n }\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n if (!this.currentImage) {\n return;\n }\n const parentBounds = this.parentView.getBoundingClientRect();\n const tx = -this.translateX * parentBounds.width / this.scale;\n const ty = -this.translateY * parentBounds.height / this.scale;\n this.view.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;\n this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);\n const whiteboardSize = this.whiteboardApp.getViewSize();\n const whiteboardScale = this.whiteboardApp.getInherentScale();\n this.whiteboardApp.emitter.resetCamera();\n this.whiteboardApp.emitter.translateCamera(-this.translateX * whiteboardSize[0] / whiteboardScale / this.scale, -this.translateY * whiteboardSize[1] / whiteboardScale / this.scale);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement('div');\n this.view.style.width = '100%';\n this.view.style.height = '100%';\n this.view.style.position = 'absolute';\n this.view.style.top = '0';\n this.view.style.left = '0';\n this.view.style.transformOrigin = 'center';\n this.view.setAttribute('data-imagery-container', 'single');\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n if (!this.map.has(ContainerKeys.pageIndex)) {\n this.map.set(ContainerKeys.pageIndex, 0);\n }\n this.scroll.on('translate', (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n this.scroll.on('scale', scale => {\n let nextScale = this.scale * scale;\n nextScale = Math.max(1, nextScale);\n nextScale = Math.min(2, nextScale);\n this.scale = nextScale;\n this.handleTranslate(0, 0);\n });\n //@ts-ignore\n window.__doc = this;\n }\n init() {\n this.handleGoto(this.pageIndex).catch(_error => {\n // todo error\n });\n this.updateSyncedTransform();\n }\n resetTranslateOnResize() {\n const image = this.view.children[0];\n if (!image) {\n return;\n }\n const imageBounds = image.getBoundingClientRect();\n const parentBounds = this.parentView.getBoundingClientRect();\n const maxDx = (imageBounds.width - parentBounds.width) / 2;\n const maxDy = (imageBounds.height - parentBounds.height) / 2;\n if (maxDx < 0) {\n this.translateX = 0;\n }\n if (maxDy < 0) {\n this.translateY = 0;\n }\n }\n handleTranslate(dx, dy) {\n const image = this.view.children[0];\n if (!image) {\n return;\n }\n const imageBounds = image.getBoundingClientRect();\n const parentBounds = this.parentView.getBoundingClientRect();\n const maxDx = (imageBounds.width - parentBounds.width) / 2;\n const maxDy = (imageBounds.height - parentBounds.height) / 2;\n if (maxDx > 0) {\n let nextDx = this.translateX * parentBounds.width + dx;\n if (nextDx >= 0) {\n nextDx = Math.min(nextDx, maxDx);\n } else {\n nextDx = Math.max(nextDx, -maxDx);\n }\n this.translateX = nextDx / parentBounds.width;\n } else {\n this.translateX = 0;\n }\n if (maxDy > 0) {\n let nextDy = this.translateY * parentBounds.height + dy;\n if (nextDy >= 0) {\n nextDy = Math.min(nextDy, maxDy);\n } else {\n nextDy = Math.max(nextDy, -maxDy);\n }\n this.translateY = nextDy / parentBounds.height;\n } else {\n this.translateY = 0;\n }\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.map.set(ContainerKeys.pageIndex, nextIndex);\n }\n append(image) {\n this.images.push(image);\n }\n async handleGoto(index) {\n await waitUntil(() => this.images.length > 0, 3000);\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit('renderStart', index);\n if (this.view.children[0]) {\n this.view.removeChild(this.view.children[0]);\n }\n this.whiteboardApp.emitter.view.style.opacity = '0';\n const target = this.images[index];\n if (target) {\n await target.prepare();\n this.view.appendChild(target.view);\n this.currentImage = target;\n this.whiteboardApp.emitter.gotoPage(`doc_${index}`);\n this.whiteboardApp.updateOptionSize(this.currentImage.width, this.currentImage.height);\n this.whiteboardApp.emitter.view.style.opacity = '1';\n this.handleResize();\n }\n this.imageDoc.emit('renderEnd', index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n this.map.unobserve(this.handleMapChange);\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["_defineProperty", "_toPropertyKey", "_toPrimitive", "EventEmitter", "_defineProperty", "_toPropertyKey", "_toPrimitive", "ImageryDocPermissionFlag", "_defineProperty", "_toPropertyKey", "_toPrimitive", "EventEmitter", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive"]
|
|
7
7
|
}
|
package/dist/imagery-doc.js
CHANGED
|
@@ -124,7 +124,7 @@ var LazyImage = class {
|
|
|
124
124
|
const blob = await response.blob();
|
|
125
125
|
return new Promise((resolve, reject) => {
|
|
126
126
|
const reader = new FileReader();
|
|
127
|
-
reader.onload = (
|
|
127
|
+
reader.onload = (_e) => {
|
|
128
128
|
import_forge_room.kvStore.setItem(this.src, reader.result);
|
|
129
129
|
resolve(reader.result);
|
|
130
130
|
};
|
|
@@ -223,56 +223,65 @@ var ImageryDocPermissions = class extends import_eventemitter32.default {
|
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
/**
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
226
|
+
* 解析权限列表组合
|
|
227
|
+
* @param {number} value - 权限数字值
|
|
228
|
+
* @return {WhiteboardPermissionFlag[]} - 权限列表
|
|
229
|
+
*/
|
|
230
230
|
resolveFlags(value) {
|
|
231
231
|
return [ImageryDocPermissionFlag.switchPage, ImageryDocPermissionFlag.sideBar, ImageryDocPermissionFlag.camera].filter((v) => (v & value) !== 0);
|
|
232
232
|
}
|
|
233
233
|
/**
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
234
|
+
* 获取权限列表组合对应的数值
|
|
235
|
+
* @param { string } userId 不传表示获取自己
|
|
236
|
+
*/
|
|
237
237
|
getPermissionValue(userId) {
|
|
238
238
|
return this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
|
|
239
239
|
}
|
|
240
240
|
/**
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
* 获取权限列表
|
|
242
|
+
* @param {string=} userId 可选, 不传表示获取自己
|
|
243
|
+
*/
|
|
244
244
|
getPermissionFlags(userId) {
|
|
245
245
|
const value = this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
|
|
246
246
|
return this.resolveFlags(value);
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
249
|
+
* 返回对应 userId 是否有相应权限
|
|
250
|
+
* @param {string=} userId 可选, 不传表示返回自己是否有相应权限
|
|
251
|
+
* @param {WhiteboardPermissionFlag} flag
|
|
252
|
+
*/
|
|
253
253
|
hasPermission(flag, userId) {
|
|
254
254
|
return ((this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0) & flag) !== 0;
|
|
255
255
|
}
|
|
256
256
|
/**
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
257
|
+
* 添加权限
|
|
258
|
+
* @param {WhiteboardPermissionFlag} flag 权限标记
|
|
259
|
+
* @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
|
|
260
|
+
*/
|
|
261
261
|
addPermission(flag, userId) {
|
|
262
262
|
const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
|
|
263
263
|
const oldValue = userMap.get("permission") ?? 0;
|
|
264
264
|
this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue | flag);
|
|
265
265
|
}
|
|
266
266
|
/**
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
267
|
+
* 移除权限
|
|
268
|
+
* @param {WhiteboardPermissionFlag} flag 权限标记
|
|
269
|
+
* @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
|
|
270
|
+
*/
|
|
271
271
|
removePermission(flag, userId) {
|
|
272
272
|
const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
|
|
273
273
|
const oldValue = userMap.get("permission") ?? 0;
|
|
274
274
|
this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue & ~flag);
|
|
275
275
|
}
|
|
276
|
+
dispose() {
|
|
277
|
+
this.userManager.off("join", this.handleUserJoin);
|
|
278
|
+
this.userManager.off("leave", this.handleUserLeave);
|
|
279
|
+
for (const [userId, observer] of this.observers) {
|
|
280
|
+
this.requestUserMap(userId).unobserve(observer);
|
|
281
|
+
}
|
|
282
|
+
this.observers.clear();
|
|
283
|
+
this.removeAllListeners();
|
|
284
|
+
}
|
|
276
285
|
};
|
|
277
286
|
|
|
278
287
|
// src/icons.ts
|
|
@@ -496,6 +505,7 @@ var InfinityScroll = class extends import_eventemitter33.default {
|
|
|
496
505
|
}
|
|
497
506
|
dispose() {
|
|
498
507
|
this.view.removeEventListener("wheel", this.handleWheel);
|
|
508
|
+
this.removeAllListeners();
|
|
499
509
|
}
|
|
500
510
|
};
|
|
501
511
|
|
|
@@ -561,7 +571,7 @@ var ContinuousContainer = class {
|
|
|
561
571
|
const bound = this.view.getBoundingClientRect();
|
|
562
572
|
let scaledHeight = 0;
|
|
563
573
|
for (const image of this.images) {
|
|
564
|
-
|
|
574
|
+
const scale = bound.width / image.width;
|
|
565
575
|
image.scale(scale);
|
|
566
576
|
scaledHeight += image.height * scale;
|
|
567
577
|
}
|
|
@@ -713,14 +723,13 @@ var SingleContainer = class {
|
|
|
713
723
|
_defineProperty7(this, "scroll", void 0);
|
|
714
724
|
_defineProperty7(this, "map", void 0);
|
|
715
725
|
_defineProperty7(this, "whiteboardApp", void 0);
|
|
716
|
-
_defineProperty7(this, "timeoutId", null);
|
|
717
726
|
_defineProperty7(this, "imageDoc", void 0);
|
|
718
727
|
_defineProperty7(this, "handleMapChange", (event) => {
|
|
719
728
|
if (event.keysChanged.has(ContainerKeys.scale) || event.keysChanged.has(ContainerKeys.translateX) || event.keysChanged.has(ContainerKeys.translateY)) {
|
|
720
729
|
this.updateSyncedTransform();
|
|
721
730
|
}
|
|
722
731
|
if (event.keysChanged.has(ContainerKeys.pageIndex)) {
|
|
723
|
-
this.handleGoto(this.pageIndex).catch((
|
|
732
|
+
this.handleGoto(this.pageIndex).catch((_error) => {
|
|
724
733
|
});
|
|
725
734
|
}
|
|
726
735
|
});
|
|
@@ -735,6 +744,7 @@ var SingleContainer = class {
|
|
|
735
744
|
const ty = Math.round((bound.height - this.currentImage.height * scale) / 2 / scale);
|
|
736
745
|
this.currentImage.view.style.transform = `scale(${scale}) translate(${tx}px, ${ty}px)`;
|
|
737
746
|
this.updateSyncedTransform();
|
|
747
|
+
this.resetTranslateOnResize();
|
|
738
748
|
}
|
|
739
749
|
});
|
|
740
750
|
_defineProperty7(this, "updateSyncedTransform", () => {
|
|
@@ -745,22 +755,11 @@ var SingleContainer = class {
|
|
|
745
755
|
const tx = -this.translateX * parentBounds.width / this.scale;
|
|
746
756
|
const ty = -this.translateY * parentBounds.height / this.scale;
|
|
747
757
|
this.view.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
whiteboardView.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;
|
|
754
|
-
this.whiteboardApp.adjustByOutFrame(parentBounds.width, parentBounds.height);
|
|
755
|
-
window.clearTimeout(this.timeoutId);
|
|
756
|
-
this.timeoutId = window.setTimeout(() => {
|
|
757
|
-
whiteboardView.style.width = `${parentBounds.width * this.scale}px`;
|
|
758
|
-
whiteboardView.style.height = `${parentBounds.height * this.scale}px`;
|
|
759
|
-
whiteboardView.style.top = `${-(this.scale - 1) * parentBounds.height / 2 + ty * this.scale}px`;
|
|
760
|
-
whiteboardView.style.left = `${-(this.scale - 1) * parentBounds.width / 2 + tx * this.scale}px`;
|
|
761
|
-
whiteboardView.style.transform = `scale(1) translate(0px, 0px)`;
|
|
762
|
-
this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);
|
|
763
|
-
}, 200);
|
|
758
|
+
this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);
|
|
759
|
+
const whiteboardSize = this.whiteboardApp.getViewSize();
|
|
760
|
+
const whiteboardScale = this.whiteboardApp.getInherentScale();
|
|
761
|
+
this.whiteboardApp.emitter.resetCamera();
|
|
762
|
+
this.whiteboardApp.emitter.translateCamera(-this.translateX * whiteboardSize[0] / whiteboardScale / this.scale, -this.translateY * whiteboardSize[1] / whiteboardScale / this.scale);
|
|
764
763
|
});
|
|
765
764
|
this.imageDoc = imageDoc;
|
|
766
765
|
this.parentView = parentView;
|
|
@@ -777,7 +776,6 @@ var SingleContainer = class {
|
|
|
777
776
|
this.view.setAttribute("data-imagery-container", "single");
|
|
778
777
|
this.resizeObserver = new ResizeObserver(this.handleResize);
|
|
779
778
|
this.resizeObserver.observe(this.view);
|
|
780
|
-
window.imageWhiteboard = this.whiteboardApp;
|
|
781
779
|
this.whiteboardApp.updateInternalResizeObserverStatus(false);
|
|
782
780
|
this.map.observe(this.handleMapChange);
|
|
783
781
|
if (!this.map.has(ContainerKeys.scale)) {
|
|
@@ -802,12 +800,29 @@ var SingleContainer = class {
|
|
|
802
800
|
this.scale = nextScale;
|
|
803
801
|
this.handleTranslate(0, 0);
|
|
804
802
|
});
|
|
803
|
+
window.__doc = this;
|
|
805
804
|
}
|
|
806
805
|
init() {
|
|
807
|
-
this.handleGoto(this.pageIndex).catch((
|
|
806
|
+
this.handleGoto(this.pageIndex).catch((_error) => {
|
|
808
807
|
});
|
|
809
808
|
this.updateSyncedTransform();
|
|
810
809
|
}
|
|
810
|
+
resetTranslateOnResize() {
|
|
811
|
+
const image = this.view.children[0];
|
|
812
|
+
if (!image) {
|
|
813
|
+
return;
|
|
814
|
+
}
|
|
815
|
+
const imageBounds = image.getBoundingClientRect();
|
|
816
|
+
const parentBounds = this.parentView.getBoundingClientRect();
|
|
817
|
+
const maxDx = (imageBounds.width - parentBounds.width) / 2;
|
|
818
|
+
const maxDy = (imageBounds.height - parentBounds.height) / 2;
|
|
819
|
+
if (maxDx < 0) {
|
|
820
|
+
this.translateX = 0;
|
|
821
|
+
}
|
|
822
|
+
if (maxDy < 0) {
|
|
823
|
+
this.translateY = 0;
|
|
824
|
+
}
|
|
825
|
+
}
|
|
811
826
|
handleTranslate(dx, dy) {
|
|
812
827
|
const image = this.view.children[0];
|
|
813
828
|
if (!image) {
|
|
@@ -877,9 +892,9 @@ var SingleContainer = class {
|
|
|
877
892
|
}
|
|
878
893
|
}
|
|
879
894
|
dispose() {
|
|
895
|
+
this.map.unobserve(this.handleMapChange);
|
|
880
896
|
this.resizeObserver.disconnect();
|
|
881
897
|
this.scroll.dispose();
|
|
882
|
-
window.clearTimeout(this.timeoutId);
|
|
883
898
|
}
|
|
884
899
|
};
|
|
885
900
|
|
|
@@ -1017,9 +1032,9 @@ var ImageryDocApplication = class extends import_forge_room2.AbstractApplication
|
|
|
1017
1032
|
this.contentContainer.appendChild(this.whiteboardContainer);
|
|
1018
1033
|
this.contentContainer.appendChild(this.footerContainer);
|
|
1019
1034
|
this.footerContainer.appendChild(this.footer.root);
|
|
1020
|
-
this.whiteboard.setViewModeToMain();
|
|
1021
1035
|
let i = 0;
|
|
1022
1036
|
this.whiteboard.permissions.addPermission(import_forge_whiteboard.WhiteboardPermissionFlag.mainView);
|
|
1037
|
+
this.whiteboard.setViewModeToMain();
|
|
1023
1038
|
while (i < option.images.length) {
|
|
1024
1039
|
const image = option.images[i];
|
|
1025
1040
|
this.images[i] = new LazyImage(image.src, image.width, image.height);
|
|
@@ -1033,14 +1048,13 @@ var ImageryDocApplication = class extends import_forge_room2.AbstractApplication
|
|
|
1033
1048
|
this.whiteboard.addPage("doc_continuous");
|
|
1034
1049
|
this.whiteboard.gotoPage("doc_continuous");
|
|
1035
1050
|
}
|
|
1036
|
-
|
|
1037
|
-
this.whiteboard.setViewModeToMain();
|
|
1038
|
-
} else {
|
|
1039
|
-
this.whiteboard.setViewModeToFree();
|
|
1040
|
-
}
|
|
1051
|
+
this.whiteboard.setViewModeToFree();
|
|
1041
1052
|
this.permissions = new ImageryDocPermissions(this.userManager, (userId) => {
|
|
1042
1053
|
return this.userMap(userId);
|
|
1043
1054
|
});
|
|
1055
|
+
this.permissions.on("change", (userId, flags, value) => {
|
|
1056
|
+
this.emitter.emit("permissionChange", userId, flags, value);
|
|
1057
|
+
});
|
|
1044
1058
|
this.permissions.addPermission(ImageryDocPermissionFlag.all);
|
|
1045
1059
|
this.whiteboardApp.disableViewModel();
|
|
1046
1060
|
this.container.init();
|
|
@@ -1057,8 +1071,35 @@ var ImageryDocApplication = class extends import_forge_room2.AbstractApplication
|
|
|
1057
1071
|
await this.whiteboardApp.dispose();
|
|
1058
1072
|
this.rootView.parentElement?.removeChild(this.rootView);
|
|
1059
1073
|
this.container.dispose();
|
|
1074
|
+
this.permissions.dispose();
|
|
1075
|
+
Object.defineProperty(this.emitter, "footView", {
|
|
1076
|
+
value: null
|
|
1077
|
+
});
|
|
1078
|
+
Object.defineProperty(this.emitter, "view", {
|
|
1079
|
+
value: null
|
|
1080
|
+
});
|
|
1081
|
+
Object.defineProperty(this.emitter, "permissions", {
|
|
1082
|
+
value: null
|
|
1083
|
+
});
|
|
1084
|
+
Object.defineProperty(this.emitter, "pageIndex", {
|
|
1085
|
+
value: null
|
|
1086
|
+
});
|
|
1087
|
+
Object.defineProperty(this.emitter, "pageCount", {
|
|
1088
|
+
value: null
|
|
1089
|
+
});
|
|
1090
|
+
Object.defineProperty(this.emitter, "goto", {
|
|
1091
|
+
value: null
|
|
1092
|
+
});
|
|
1093
|
+
Object.defineProperty(this.emitter, "imgContent", {
|
|
1094
|
+
value: null
|
|
1095
|
+
});
|
|
1096
|
+
Object.defineProperty(this.emitter, "imgSize", {
|
|
1097
|
+
value: null
|
|
1098
|
+
});
|
|
1099
|
+
this.emitter.removeAllListeners();
|
|
1060
1100
|
return Promise.resolve(void 0);
|
|
1061
1101
|
}
|
|
1062
1102
|
};
|
|
1063
1103
|
_defineProperty8(ImageryDocApplication, "applicationName", IMAGERY_DOC_APP_NAME);
|
|
1104
|
+
window.__ImageryDocApplication = ImageryDocApplication;
|
|
1064
1105
|
//# sourceMappingURL=imagery-doc.js.map
|