@netless/forge-imagery-doc 0.1.3 → 1.0.0

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../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": ["export { ImageryDoc } from './ImageryDoc';\nexport { ImageryDocApplication } from './ImageryDocApplication';\nexport { ImageryDocPermissionFlag } from './ImageryDocPermissions';", "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
- "names": ["EventEmitter", "import_forge_room", "_defineProperty", "_toPropertyKey", "_toPrimitive", "import_eventemitter3", "_defineProperty", "_toPropertyKey", "_toPrimitive", "ImageryDocPermissionFlag", "EventEmitter", "_defineProperty", "_toPropertyKey", "_toPrimitive", "import_eventemitter3", "_defineProperty", "_toPropertyKey", "_toPrimitive", "EventEmitter", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive"]
4
+ "sourcesContent": ["export { ImageryDoc } from './ImageryDoc';\nexport { ImageryDocApplication } from './ImageryDocApplication';\nexport { ImageryDocPermissionFlag } from './ImageryDocPermissions';", "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.overflow = 'hidden';\n this.rootView.style.userSelect = 'none';\n this.rootView.style.backgroundColor = '#f9f9fc';\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.appDoc = this.appDoc;\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.deleteSubDoc = this.deleteSubDoc;\n await whiteboardApp.initialize({\n width: -1,\n height: -1,\n maxScaleRatio: 1\n });\n this.whiteboardApp = whiteboardApp;\n this.whiteboard = whiteboardApp.emitter;\n this.whiteboard.enableCameraBoundaryHighlight = false;\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.setPermission(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 this.emitter.emit('ready');\n return Promise.resolve(undefined);\n }\n userMap(userId) {\n return this.getMap(`user/${userId}`);\n }\n async dispose(removeSubDoc) {\n if (removeSubDoc) {\n this.deleteSubDoc(this.appId);\n }\n await this.whiteboardApp.dispose(removeSubDoc);\n this.whiteboardApp.emitter.view.remove();\n this.container.dispose();\n this.permissions.dispose();\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}", "import { AbstractApplicationPermissions } from '@netless/forge-room';\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 AbstractApplicationPermissions {\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}", "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, \"navigator\", document.createElement('div'));\n _defineProperty(this, \"navigatorIndex\", document.createElement('span'));\n _defineProperty(this, \"navigatorTotal\", document.createElement('span'));\n _defineProperty(this, \"isSlideBarVisible\", false);\n _defineProperty(this, \"imageryDoc\", void 0);\n _defineProperty(this, \"updateIndex\", () => {\n this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;\n });\n _defineProperty(this, \"updateTotal\", () => {\n this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;\n });\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 this.createNavigator();\n this.imageryDoc.addListener('renderEnd', this.updateIndex);\n this.imageryDoc.addListener('ready', this.updateTotal);\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 createNavigator() {\n this.navigator.style.height = '24px';\n this.navigator.style.padding = '12px';\n this.navigator.style.display = 'flex';\n this.navigator.style.alignItems = 'center';\n this.navigator.style.justifyContent = 'center';\n this.navigator.style.fontSize = '12px';\n this.navigator.style.color = '#585858';\n this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;\n this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;\n this.navigator.appendChild(this.navigatorIndex);\n this.navigator.appendChild(this.navigatorTotal);\n this.root.appendChild(this.navigator);\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 = '25px';\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 #f9f9fc';\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 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';\nimport { removeObserver } from '@netless/forge-room';\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 }\n init() {\n this.handleGoto(this.pageIndex).catch(_error => {\n console.error(_error);\n }).finally(() => {\n this.handleResize();\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 removeObserver(this.map, this.handleMapChange);\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}"],
5
+ "mappings": "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",
6
+ "names": ["EventEmitter", "import_forge_room", "_defineProperty", "_toPropertyKey", "_toPrimitive", "import_forge_room", "ImageryDocPermissionFlag", "_defineProperty", "_toPropertyKey", "_toPrimitive", "import_eventemitter3", "_defineProperty", "_toPropertyKey", "_toPrimitive", "EventEmitter", "_defineProperty", "_toPropertyKey", "_toPrimitive", "import_forge_room", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netless/forge-imagery-doc",
3
- "version": "0.1.3",
3
+ "version": "1.0.0",
4
4
  "description": "",
5
5
  "main": "dist/imagery-doc.js",
6
6
  "module": "dist/imagery-doc.esm.js",
@@ -13,8 +13,8 @@
13
13
  "eventemitter3": "^5.0.1",
14
14
  "yjs": "^13.6.18",
15
15
  "localforage": "^1.10.0",
16
- "@netless/forge-room": "0.1.10",
17
- "@netless/forge-whiteboard": "0.1.14"
16
+ "@netless/forge-room": "1.0.0",
17
+ "@netless/forge-whiteboard": "1.0.0"
18
18
  },
19
19
  "scripts": {
20
20
  "dev": "onChange 'src/**/*' -- npm run build",
@@ -146,7 +146,6 @@ export class ContinuousContainer implements Container {
146
146
  this.whiteboardApp.emitter.resetCamera();
147
147
  this.whiteboardApp.emitter.translateCamera(0, -ty);
148
148
  this.whiteboardApp.emitter.scaleCamera(this.localScale, 'top-left');
149
- console.log('localScale: ', this.localScale, this.translateY);
150
149
  this.handleGoto(this.pageIndex);
151
150
  };
152
151
 
package/src/FooterView.ts CHANGED
@@ -11,6 +11,9 @@ export class FooterView {
11
11
  private nextPage: HTMLDivElement;
12
12
  private sideBarToggle: HTMLDivElement;
13
13
  private sideBarContainer: HTMLDivElement = document.createElement('div');
14
+ private navigator: HTMLDivElement = document.createElement('div');
15
+ private navigatorIndex: HTMLSpanElement = document.createElement('span');
16
+ private navigatorTotal: HTMLSpanElement = document.createElement('span');
14
17
 
15
18
  private isSlideBarVisible: boolean = false;
16
19
  private imageryDoc: ImageryDoc;
@@ -45,8 +48,20 @@ export class FooterView {
45
48
  this.root.appendChild(this.prevPage);
46
49
  this.root.appendChild(this.nextPage);
47
50
  this.root.appendChild(this.createSpacer());
51
+ this.createNavigator();
52
+
53
+ this.imageryDoc.addListener('renderEnd', this.updateIndex);
54
+ this.imageryDoc.addListener('ready', this.updateTotal);
48
55
  }
49
56
 
57
+ private updateIndex = () => {
58
+ this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;
59
+ };
60
+
61
+ private updateTotal = () => {
62
+ this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;
63
+ };
64
+
50
65
  public prevPageState(enable: boolean): void {
51
66
  if (enable) {
52
67
  this.prevPage.style.pointerEvents = 'all';
@@ -92,6 +107,23 @@ export class FooterView {
92
107
  return icon;
93
108
  }
94
109
 
110
+ private createNavigator(): void {
111
+ this.navigator.style.height = '24px';
112
+ this.navigator.style.padding = '12px';
113
+ this.navigator.style.display = 'flex';
114
+ this.navigator.style.alignItems = 'center';
115
+ this.navigator.style.justifyContent = 'center';
116
+ this.navigator.style.fontSize = '12px';
117
+ this.navigator.style.color = '#585858';
118
+
119
+ this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;
120
+ this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;
121
+
122
+ this.navigator.appendChild(this.navigatorIndex);
123
+ this.navigator.appendChild(this.navigatorTotal);
124
+ this.root.appendChild(this.navigator);
125
+ }
126
+
95
127
  private createSideBar() {
96
128
  if (this.imageryDoc.pageCount === 0) {
97
129
  return;
@@ -103,7 +135,7 @@ export class FooterView {
103
135
  this.sideBarContainer.style.maxWidth = '180px';
104
136
  this.sideBarContainer.style.height = 'calc(100% - 24px)';
105
137
  this.sideBarContainer.style.position = 'absolute';
106
- this.sideBarContainer.style.bottom = '24px';
138
+ this.sideBarContainer.style.bottom = '25px';
107
139
  this.sideBarContainer.style.left = '0';
108
140
  this.sideBarContainer.style.fontSize = '0px';
109
141
  this.sideBarContainer.style.overflow = 'auto';
@@ -118,7 +150,7 @@ export class FooterView {
118
150
  reviewIndex.textContent = `${i + 1}`;
119
151
  const reviewImg = document.createElement('img');
120
152
  reviewImg.setAttribute('data-doc-index', `${i}`);
121
- reviewImg.style.cssText = 'width:80%;margin:0 10%;box-shadow:1px 1px 5px #9e9e9e';
153
+ reviewImg.style.cssText = 'width:80%;margin:0 10%;box-shadow:1px 1px 5px #f9f9fc';
122
154
  this.imageryDoc.imgContent(i).then((base64Data) => {
123
155
  reviewImg.src = base64Data;
124
156
  });
package/src/ImageryDoc.ts CHANGED
@@ -23,6 +23,11 @@ export interface ImageryDocEvents {
23
23
  * @param {number} pageIndex 页面索引
24
24
  */
25
25
  renderEnd: (pageIndex: number) => void;
26
+
27
+ /**
28
+ * 初始化完成时触发
29
+ */
30
+ ready: () => void;
26
31
  }
27
32
 
28
33
 
@@ -50,8 +50,9 @@ export class ImageryDocApplication extends AbstractApplication<ImageryDocOption,
50
50
  public constructor() {
51
51
  super();
52
52
  this.rootView.setAttribute('data-forge-app', 'imagery-doc');
53
- this.rootView.style.background = 'red';
54
53
  this.rootView.style.overflow = 'hidden';
54
+ this.rootView.style.userSelect = 'none';
55
+ this.rootView.style.backgroundColor = '#f9f9fc';
55
56
 
56
57
  this.contentContainer.style.width = '100%';
57
58
  this.contentContainer.style.height = '100%';
@@ -124,7 +125,7 @@ export class ImageryDocApplication extends AbstractApplication<ImageryDocOption,
124
125
  public async initialize(option: ImageryDocOption): Promise<void> {
125
126
  const whiteboardApp = new WhiteboardApplication();
126
127
  // @ts-ignore
127
- whiteboardApp.roomDoc = this.roomDoc;
128
+ whiteboardApp.appDoc = this.appDoc;
128
129
  // @ts-ignore
129
130
  whiteboardApp.appId = `${this.appId}_wb`;
130
131
  // @ts-ignore
@@ -132,13 +133,15 @@ export class ImageryDocApplication extends AbstractApplication<ImageryDocOption,
132
133
  // @ts-ignore
133
134
  whiteboardApp.userManager = this.userManager;
134
135
  // @ts-ignore
135
- whiteboardApp.applicationManager = this.applicationManager;
136
+ whiteboardApp.deleteSubDoc = this.deleteSubDoc;
136
137
  await whiteboardApp.initialize({
137
138
  width: -1,
138
139
  height: -1,
140
+ maxScaleRatio: 1,
139
141
  });
140
142
  this.whiteboardApp = whiteboardApp;
141
143
  this.whiteboard = whiteboardApp.emitter;
144
+ this.whiteboard.enableCameraBoundaryHighlight = false;
142
145
  this.whiteboard.enableCameraByMouse = false;
143
146
  this.whiteboard.enableCameraByTouch = false;
144
147
  this.whiteboard.view.style.width = '100%';
@@ -200,7 +203,7 @@ export class ImageryDocApplication extends AbstractApplication<ImageryDocOption,
200
203
  this.emitter.emit('permissionChange', userId, flags, value);
201
204
  });
202
205
 
203
- this.permissions.addPermission(ImageryDocPermissionFlag.all);
206
+ this.permissions.setPermission(ImageryDocPermissionFlag.all);
204
207
  this.whiteboardApp.disableViewModel();
205
208
  this.container.init();
206
209
 
@@ -209,6 +212,7 @@ export class ImageryDocApplication extends AbstractApplication<ImageryDocOption,
209
212
  whiteboardApp.linkToWhiteboard(option.inheritWhiteboardId);
210
213
  }
211
214
 
215
+ this.emitter.emit('ready');
212
216
  return Promise.resolve(undefined);
213
217
  }
214
218
 
@@ -216,19 +220,14 @@ export class ImageryDocApplication extends AbstractApplication<ImageryDocOption,
216
220
  return this.getMap(`user/${userId}`);
217
221
  }
218
222
 
219
- public async dispose(): Promise<void> {
220
- await this.whiteboardApp.dispose();
221
- this.rootView.parentElement?.removeChild(this.rootView);
223
+ public async dispose(removeSubDoc: boolean): Promise<void> {
224
+ if (removeSubDoc) {
225
+ this.deleteSubDoc(this.appId);
226
+ }
227
+ await this.whiteboardApp.dispose(removeSubDoc);
228
+ this.whiteboardApp.emitter.view.remove();
222
229
  this.container.dispose();
223
230
  this.permissions.dispose();
224
- Object.defineProperty(this.emitter, 'footView', { value: null });
225
- Object.defineProperty(this.emitter, 'view', { value: null });
226
- Object.defineProperty(this.emitter, 'permissions', { value: null });
227
- Object.defineProperty(this.emitter, 'pageIndex', { value: null });
228
- Object.defineProperty(this.emitter, 'pageCount', { value: null });
229
- Object.defineProperty(this.emitter, 'goto', { value: null });
230
- Object.defineProperty(this.emitter, 'imgContent', { value: null });
231
- Object.defineProperty(this.emitter, 'imgSize', { value: null });
232
231
  this.emitter.removeAllListeners();
233
232
  return Promise.resolve(undefined);
234
233
  }