csyjk 1.1.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. package/.babelrc +7 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/xx.iml +12 -0
  4. package/dist/app.js +43 -0
  5. package/{index.html → dist/index.html} +0 -0
  6. package/{style.css → dist/style.css} +1 -1
  7. package/package.json +40 -5
  8. package/public/gltf.js +2241 -0
  9. package/public/index.html +10 -0
  10. package/src/index.js +3 -0
  11. package/src/lib/gltf/assets/check.jpg +0 -0
  12. package/src/lib/gltf/assets/iconfont/iconfont.css +358 -0
  13. package/src/lib/gltf/assets/iconfont/iconfont.eot +0 -0
  14. package/src/lib/gltf/assets/iconfont/iconfont.js +1 -0
  15. package/src/lib/gltf/assets/iconfont/iconfont.json +604 -0
  16. package/src/lib/gltf/assets/iconfont/iconfont.svg +189 -0
  17. package/src/lib/gltf/assets/iconfont/iconfont.ttf +0 -0
  18. package/src/lib/gltf/assets/iconfont/iconfont.woff +0 -0
  19. package/src/lib/gltf/assets/iconfont/iconfont.woff2 +0 -0
  20. package/src/lib/gltf/assets/yjkkit-sdk/index.js +0 -0
  21. package/src/lib/gltf/assets/yjkkit-sdk/package.json +15 -0
  22. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/ContextMenu.js +863 -0
  23. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/index.js +1 -0
  24. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/index.js +1 -0
  25. package/src/lib/gltf/assets/yjkkit-sdk/src/index.js +3 -0
  26. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +462 -0
  27. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +279 -0
  28. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +262 -0
  29. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/index.js +1 -0
  30. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/Annotation.js +362 -0
  31. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +575 -0
  32. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/index.js +1 -0
  33. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +333 -0
  34. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/index.js +1 -0
  35. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +777 -0
  36. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/index.js +1 -0
  37. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +525 -0
  38. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +242 -0
  39. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +297 -0
  40. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/index.js +1 -0
  41. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/FastNavPlugin.js +345 -0
  42. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/index.js +1 -0
  43. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +122 -0
  44. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +462 -0
  45. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFPerformanceModelLoader.js +508 -0
  46. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFSceneGraphLoader.js +922 -0
  47. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/index.js +2 -0
  48. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/CubeTextureCanvas.js +273 -0
  49. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/NavCubePlugin.js +687 -0
  50. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/index.js +1 -0
  51. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +145 -0
  52. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +777 -0
  53. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/index.js +1 -0
  54. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +33 -0
  55. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +273 -0
  56. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +313 -0
  57. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/index.js +2 -0
  58. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Control.js +1328 -0
  59. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Overview.js +249 -0
  60. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Plane.js +169 -0
  61. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +403 -0
  62. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/index.js +1 -0
  63. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +134 -0
  64. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/index.js +1 -0
  65. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +77 -0
  66. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/Storey.js +61 -0
  67. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyMap.js +57 -0
  68. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +822 -0
  69. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/index.js +1 -0
  70. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/ModelTreeView.js +888 -0
  71. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewNode.js +88 -0
  72. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewPlugin.js +624 -0
  73. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/index.js +1 -0
  74. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/modelValidation.js +87 -0
  75. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/ViewCullPlugin.js +295 -0
  76. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/index.js +1 -0
  77. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +78 -0
  78. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +847 -0
  79. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/index.js +2 -0
  80. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +167 -0
  81. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +228 -0
  82. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +220 -0
  83. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +279 -0
  84. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +244 -0
  85. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +301 -0
  86. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +426 -0
  87. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +479 -0
  88. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +6818 -0
  89. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +238 -0
  90. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +1279 -0
  91. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/index.js +1 -0
  92. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +11 -0
  93. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +2060 -0
  94. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +2155 -0
  95. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +1002 -0
  96. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +64 -0
  97. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +153 -0
  98. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +267 -0
  99. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +553 -0
  100. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +991 -0
  101. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +49 -0
  102. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/index.js +17 -0
  103. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/culling/ObjectCullStates.js +205 -0
  104. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Dot.js +78 -0
  105. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Label.js +97 -0
  106. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Wire.js +95 -0
  107. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Plugin.js +112 -0
  108. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Viewer.js +372 -0
  109. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/index.js +3 -0
  110. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaultColors.js +162 -0
  111. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaults.js +39 -0
  112. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaModel.js +145 -0
  113. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaObject.js +215 -0
  114. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaScene.js +311 -0
  115. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/CameraControl.js +1669 -0
  116. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/cc.js +0 -0
  117. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/CameraUpdater.js +312 -0
  118. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PanController.js +112 -0
  119. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PickController.js +193 -0
  120. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +289 -0
  121. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/cu.js +0 -0
  122. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +122 -0
  123. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +186 -0
  124. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +68 -0
  125. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +439 -0
  126. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +361 -0
  127. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +258 -0
  128. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +197 -0
  129. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/mouspan.js +498 -0
  130. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Component.js +908 -0
  131. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Entity.js +475 -0
  132. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/ImagePlane.js +570 -0
  133. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/index.js +1 -0
  134. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/PerformanceModel.js +2623 -0
  135. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/index.js +1 -0
  136. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ENTITY_FLAGS.js +21 -0
  137. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceMesh.js +262 -0
  138. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceNode.js +697 -0
  139. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/RENDER_PASSES.js +34 -0
  140. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ScratchMemory.js +63 -0
  141. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/compression.js +183 -0
  142. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingBuffer.js +33 -0
  143. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingLayer.js +736 -0
  144. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingRenderers.js +68 -0
  145. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingColorRenderer.js +295 -0
  146. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +327 -0
  147. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingLayer.js +698 -0
  148. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingRenderers.js +68 -0
  149. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingColorRenderer.js +364 -0
  150. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +356 -0
  151. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingBuffer.js +33 -0
  152. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingLayer.js +776 -0
  153. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingRenderers.js +113 -0
  154. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingColorRenderer.js +340 -0
  155. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +312 -0
  156. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +343 -0
  157. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +331 -0
  158. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingShadowRenderer.js +242 -0
  159. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +348 -0
  160. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingLayer.js +737 -0
  161. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingRenderers.js +143 -0
  162. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingColorRenderer.js +373 -0
  163. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +366 -0
  164. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +370 -0
  165. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +386 -0
  166. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +376 -0
  167. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +293 -0
  168. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +382 -0
  169. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingBuffer.js +37 -0
  170. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingLayer.js +1017 -0
  171. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingRenderers.js +246 -0
  172. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorQualityRenderer.js +809 -0
  173. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +504 -0
  174. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +297 -0
  175. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +300 -0
  176. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +322 -0
  177. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +311 -0
  178. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +291 -0
  179. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +319 -0
  180. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +305 -0
  181. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +300 -0
  182. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +242 -0
  183. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +323 -0
  184. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingLayer.js +969 -0
  185. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingRenderers.js +246 -0
  186. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorQualityRenderer.js +859 -0
  187. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +557 -0
  188. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +341 -0
  189. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +338 -0
  190. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +356 -0
  191. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +354 -0
  192. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +329 -0
  193. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +358 -0
  194. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +349 -0
  195. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +363 -0
  196. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +284 -0
  197. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +354 -0
  198. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Camera.js +880 -0
  199. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraFlightAnimation.js +669 -0
  200. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPath.js +194 -0
  201. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPathAnimation.js +326 -0
  202. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CustomProjection.js +149 -0
  203. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Frustum.js +316 -0
  204. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Ortho.js +286 -0
  205. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Perspective.js +302 -0
  206. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/index.js +2 -0
  207. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Canvas.js +464 -0
  208. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Spinner.js +323 -0
  209. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/core.js +234 -0
  210. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/Geometry.js +33 -0
  211. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/ReadableGeometry.js +689 -0
  212. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/VBOGeometry.js +327 -0
  213. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxGeometry.js +238 -0
  214. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +106 -0
  215. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +271 -0
  216. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildGridGeometry.js +102 -0
  217. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +168 -0
  218. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildSphereGeometry.js +161 -0
  219. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildTorusGeometry.js +172 -0
  220. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +1721 -0
  221. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/index.js +8 -0
  222. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/index.js +4 -0
  223. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/index.js +2 -0
  224. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/load3DSGeometry.js +103 -0
  225. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +130 -0
  226. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/index.js +18 -0
  227. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/input/Input.js +1475 -0
  228. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/canvas2image.js +218 -0
  229. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/k3d.js +1032 -0
  230. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/AmbientLight.js +175 -0
  231. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/CubeTexture.js +156 -0
  232. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/DirLight.js +314 -0
  233. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Light.js +29 -0
  234. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/LightMap.js +77 -0
  235. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/PointLight.js +395 -0
  236. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/ReflectionMap.js +79 -0
  237. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Shadow.js +138 -0
  238. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/index.js +5 -0
  239. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/Marker.js +382 -0
  240. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/index.js +1 -0
  241. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EdgeMaterial.js +359 -0
  242. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EmphasisMaterial.js +577 -0
  243. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Fresnel.js +222 -0
  244. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LambertMaterial.js +378 -0
  245. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LinesMaterial.js +169 -0
  246. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Material.js +39 -0
  247. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/MetallicMaterial.js +820 -0
  248. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PhongMaterial.js +860 -0
  249. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PointsMaterial.js +320 -0
  250. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/SpecularMaterial.js +807 -0
  251. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Texture.js +522 -0
  252. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/index.js +8 -0
  253. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/Frustum.js +118 -0
  254. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/buildEdgeIndices.js +162 -0
  255. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/geometryCompressionUtils.js +353 -0
  256. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/index.js +1 -0
  257. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/math.js +5302 -0
  258. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/rtcCoords.js +132 -0
  259. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/CameraMemento.js +200 -0
  260. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ModelMemento.js +272 -0
  261. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ObjectsMemento.js +259 -0
  262. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/index.js +3 -0
  263. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/Mesh.js +2165 -0
  264. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawRenderer.js +978 -0
  265. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawShaderSource.js +1566 -0
  266. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +249 -0
  267. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +163 -0
  268. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +276 -0
  269. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +269 -0
  270. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/index.js +1 -0
  271. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +207 -0
  272. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +156 -0
  273. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshRenderer.js +210 -0
  274. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +146 -0
  275. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +186 -0
  276. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +120 -0
  277. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowRenderer.js +214 -0
  278. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +96 -0
  279. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/metriqs/Metriqs.js +259 -0
  280. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/Node.js +1356 -0
  281. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/index.js +1 -0
  282. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/CubicBezierCurve.js +194 -0
  283. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Curve.js +183 -0
  284. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Path.js +239 -0
  285. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/QuadraticBezierCurve.js +161 -0
  286. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/SplineCurve.js +133 -0
  287. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/index.js +5 -0
  288. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/postfx/SAO.js +547 -0
  289. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/scene/Scene.js +2481 -0
  290. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/SectionPlane.js +194 -0
  291. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/index.js +1 -0
  292. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/Skybox.js +119 -0
  293. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/index.js +1 -0
  294. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/stats.js +45 -0
  295. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Map.js +45 -0
  296. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Queue.js +56 -0
  297. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/index.js +2 -0
  298. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils.js +452 -0
  299. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/viewport/Viewport.js +212 -0
  300. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/ArrayBuf.js +121 -0
  301. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Attribute.js +23 -0
  302. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Drawable.js +270 -0
  303. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/FrameContext.js +259 -0
  304. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/PickResult.js +317 -0
  305. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Pickable.js +69 -0
  306. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Program.js +179 -0
  307. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderBuffer.js +315 -0
  308. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderFlags.js +203 -0
  309. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderState.js +40 -0
  310. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Renderer.js +1300 -0
  311. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Sampler.js +18 -0
  312. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Shader.js +49 -0
  313. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Texture2D.js +217 -0
  314. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +214 -0
  315. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionTester.js +432 -0
  316. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +326 -0
  317. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +375 -0
  318. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/webglEnums.js +61 -0
  319. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webglInfo.js +48 -0
  320. package/src/lib/gltf/gltf.css +392 -0
  321. package/src/lib/gltf/gltf.js +2241 -0
  322. package/webpack.config.js +70 -0
  323. package/app.js +0 -43
@@ -0,0 +1,991 @@
1
+ /*
2
+ Copyright (c) 2013 Gildas Lormeau. All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+
10
+ 2. Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in
12
+ the documentation and/or other materials provided with the distribution.
13
+
14
+ 3. The names of the authors may not be used to endorse or promote products
15
+ derived from this software without specific prior written permission.
16
+
17
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
18
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
19
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
20
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
21
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+ */
28
+
29
+ /**
30
+ * @private
31
+ * @type {{}}
32
+ */
33
+ var zipLib = {};
34
+
35
+ (function (obj) {
36
+ "use strict";
37
+
38
+ var ERR_BAD_FORMAT = "File format is not recognized.";
39
+ var ERR_CRC = "CRC failed.";
40
+ var ERR_ENCRYPTED = "File contains encrypted entry.";
41
+ var ERR_ZIP64 = "File is using Zip64 (4gb+ file size).";
42
+ var ERR_READ = "Error while reading zip file.";
43
+ var ERR_WRITE = "Error while writing zip file.";
44
+ var ERR_WRITE_DATA = "Error while writing file data.";
45
+ var ERR_READ_DATA = "Error while reading file data.";
46
+ var ERR_DUPLICATED_NAME = "File already exists.";
47
+ var CHUNK_SIZE = 512 * 1024;
48
+
49
+ var TEXT_PLAIN = "text/plain";
50
+
51
+ var appendABViewSupported;
52
+ try {
53
+ appendABViewSupported = new Blob([new DataView(new ArrayBuffer(0))]).size === 0;
54
+ } catch (e) {
55
+ }
56
+
57
+ function Crc32() {
58
+ this.crc = -1;
59
+ }
60
+
61
+ Crc32.prototype.append = function append(data) {
62
+ var crc = this.crc | 0, table = this.table;
63
+ for (var offset = 0, len = data.length | 0; offset < len; offset++)
64
+ crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];
65
+ this.crc = crc;
66
+ };
67
+ Crc32.prototype.get = function get() {
68
+ return ~this.crc;
69
+ };
70
+ Crc32.prototype.table = (function () {
71
+ var i, j, t, table = []; // Uint32Array is actually slower than []
72
+ for (i = 0; i < 256; i++) {
73
+ t = i;
74
+ for (j = 0; j < 8; j++)
75
+ if (t & 1)
76
+ t = (t >>> 1) ^ 0xEDB88320;
77
+ else
78
+ t = t >>> 1;
79
+ table[i] = t;
80
+ }
81
+ return table;
82
+ })();
83
+
84
+ // "no-op" codec
85
+ function NOOP() {
86
+ }
87
+
88
+ NOOP.prototype.append = function append(bytes, onprogress) {
89
+ return bytes;
90
+ };
91
+ NOOP.prototype.flush = function flush() {
92
+ };
93
+
94
+ function blobSlice(blob, index, length) {
95
+ if (index < 0 || length < 0 || index + length > blob.size)
96
+ throw new RangeError('offset:' + index + ', length:' + length + ', size:' + blob.size);
97
+ if (blob.slice)
98
+ return blob.slice(index, index + length);
99
+ else if (blob.webkitSlice)
100
+ return blob.webkitSlice(index, index + length);
101
+ else if (blob.mozSlice)
102
+ return blob.mozSlice(index, index + length);
103
+ else if (blob.msSlice)
104
+ return blob.msSlice(index, index + length);
105
+ }
106
+
107
+ function getDataHelper(byteLength, bytes) {
108
+ var dataBuffer, dataArray;
109
+ dataBuffer = new ArrayBuffer(byteLength);
110
+ dataArray = new Uint8Array(dataBuffer);
111
+ if (bytes)
112
+ dataArray.set(bytes, 0);
113
+ return {
114
+ buffer: dataBuffer,
115
+ array: dataArray,
116
+ view: new DataView(dataBuffer)
117
+ };
118
+ }
119
+
120
+ // Readers
121
+ function Reader() {
122
+ }
123
+
124
+ function TextReader(text) {
125
+ var that = this, blobReader;
126
+
127
+ function init(callback, onerror) {
128
+ var blob = new Blob([text], {
129
+ type: TEXT_PLAIN
130
+ });
131
+ blobReader = new BlobReader(blob);
132
+ blobReader.init(function () {
133
+ that.size = blobReader.size;
134
+ callback();
135
+ }, onerror);
136
+ }
137
+
138
+ function readUint8Array(index, length, callback, onerror) {
139
+ blobReader.readUint8Array(index, length, callback, onerror);
140
+ }
141
+
142
+ that.size = 0;
143
+ that.init = init;
144
+ that.readUint8Array = readUint8Array;
145
+ }
146
+
147
+ TextReader.prototype = new Reader();
148
+ TextReader.prototype.constructor = TextReader;
149
+
150
+ function Data64URIReader(dataURI) {
151
+ var that = this, dataStart;
152
+
153
+ function init(callback) {
154
+ var dataEnd = dataURI.length;
155
+ while (dataURI.charAt(dataEnd - 1) == "=")
156
+ dataEnd--;
157
+ dataStart = dataURI.indexOf(",") + 1;
158
+ that.size = Math.floor((dataEnd - dataStart) * 0.75);
159
+ callback();
160
+ }
161
+
162
+ function readUint8Array(index, length, callback) {
163
+ var i, data = getDataHelper(length);
164
+ var start = Math.floor(index / 3) * 4;
165
+ var end = Math.ceil((index + length) / 3) * 4;
166
+ var bytes = obj.atob(dataURI.substring(start + dataStart, end + dataStart));
167
+ var delta = index - Math.floor(start / 4) * 3;
168
+ for (i = delta; i < delta + length; i++)
169
+ data.array[i - delta] = bytes.charCodeAt(i);
170
+ callback(data.array);
171
+ }
172
+
173
+ that.size = 0;
174
+ that.init = init;
175
+ that.readUint8Array = readUint8Array;
176
+ }
177
+
178
+ Data64URIReader.prototype = new Reader();
179
+ Data64URIReader.prototype.constructor = Data64URIReader;
180
+
181
+ function BlobReader(blob) {
182
+ var that = this;
183
+
184
+ function init(callback) {
185
+ that.size = blob.size;
186
+ callback();
187
+ }
188
+
189
+ function readUint8Array(index, length, callback, onerror) {
190
+ var reader = new FileReader();
191
+ reader.onload = function (e) {
192
+ callback(new Uint8Array(e.target.result));
193
+ };
194
+ reader.onerror = onerror;
195
+ try {
196
+ reader.readAsArrayBuffer(blobSlice(blob, index, length));
197
+ } catch (e) {
198
+ onerror(e);
199
+ }
200
+ }
201
+
202
+ that.size = 0;
203
+ that.init = init;
204
+ that.readUint8Array = readUint8Array;
205
+ }
206
+
207
+ BlobReader.prototype = new Reader();
208
+ BlobReader.prototype.constructor = BlobReader;
209
+
210
+ // Writers
211
+
212
+ function Writer() {
213
+ }
214
+
215
+ Writer.prototype.getData = function (callback) {
216
+ callback(this.data);
217
+ };
218
+
219
+ function TextWriter(encoding) {
220
+ var that = this, blob;
221
+
222
+ function init(callback) {
223
+ blob = new Blob([], {
224
+ type: TEXT_PLAIN
225
+ });
226
+ callback();
227
+ }
228
+
229
+ function writeUint8Array(array, callback) {
230
+ blob = new Blob([blob, appendABViewSupported ? array : array.buffer], {
231
+ type: TEXT_PLAIN
232
+ });
233
+ callback();
234
+ }
235
+
236
+ function getData(callback, onerror) {
237
+ var reader = new FileReader();
238
+ reader.onload = function (e) {
239
+ callback(e.target.result);
240
+ };
241
+ reader.onerror = onerror;
242
+ reader.readAsText(blob, encoding);
243
+ }
244
+
245
+ that.init = init;
246
+ that.writeUint8Array = writeUint8Array;
247
+ that.getData = getData;
248
+ }
249
+
250
+ TextWriter.prototype = new Writer();
251
+ TextWriter.prototype.constructor = TextWriter;
252
+
253
+ function Data64URIWriter(contentType) {
254
+ var that = this, data = "", pending = "";
255
+
256
+ function init(callback) {
257
+ data += "data:" + (contentType || "") + ";base64,";
258
+ callback();
259
+ }
260
+
261
+ function writeUint8Array(array, callback) {
262
+ var i, delta = pending.length, dataString = pending;
263
+ pending = "";
264
+ for (i = 0; i < (Math.floor((delta + array.length) / 3) * 3) - delta; i++)
265
+ dataString += String.fromCharCode(array[i]);
266
+ for (; i < array.length; i++)
267
+ pending += String.fromCharCode(array[i]);
268
+ if (dataString.length > 2)
269
+ data += obj.btoa(dataString);
270
+ else
271
+ pending = dataString;
272
+ callback();
273
+ }
274
+
275
+ function getData(callback) {
276
+ callback(data + obj.btoa(pending));
277
+ }
278
+
279
+ that.init = init;
280
+ that.writeUint8Array = writeUint8Array;
281
+ that.getData = getData;
282
+ }
283
+
284
+ Data64URIWriter.prototype = new Writer();
285
+ Data64URIWriter.prototype.constructor = Data64URIWriter;
286
+
287
+ function BlobWriter(contentType) {
288
+ var blob, that = this;
289
+
290
+ function init(callback) {
291
+ blob = new Blob([], {
292
+ type: contentType
293
+ });
294
+ callback();
295
+ }
296
+
297
+ function writeUint8Array(array, callback) {
298
+ blob = new Blob([blob, appendABViewSupported ? array : array.buffer], {
299
+ type: contentType
300
+ });
301
+ callback();
302
+ }
303
+
304
+ function getData(callback) {
305
+ callback(blob);
306
+ }
307
+
308
+ that.init = init;
309
+ that.writeUint8Array = writeUint8Array;
310
+ that.getData = getData;
311
+ }
312
+
313
+ BlobWriter.prototype = new Writer();
314
+ BlobWriter.prototype.constructor = BlobWriter;
315
+
316
+ /**
317
+ * inflate/deflate core functions
318
+ * @param worker {Worker} web worker for the task.
319
+ * @param initialMessage {Object} initial message to be sent to the worker. should contain
320
+ * sn(serial number for distinguishing multiple tasks sent to the worker), and codecClass.
321
+ * This function may add more properties before sending.
322
+ */
323
+ function launchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror) {
324
+ var chunkIndex = 0, index, outputSize, sn = initialMessage.sn, crc;
325
+
326
+ function onflush() {
327
+ worker.removeEventListener('message', onmessage, false);
328
+ onend(outputSize, crc);
329
+ }
330
+
331
+ function onmessage(event) {
332
+ var message = event.data, data = message.data, err = message.error;
333
+ if (err) {
334
+ err.toString = function () {
335
+ return 'Error: ' + this.message;
336
+ };
337
+ onreaderror(err);
338
+ return;
339
+ }
340
+ if (message.sn !== sn)
341
+ return;
342
+ if (typeof message.codecTime === 'number')
343
+ worker.codecTime += message.codecTime; // should be before onflush()
344
+ if (typeof message.crcTime === 'number')
345
+ worker.crcTime += message.crcTime;
346
+
347
+ switch (message.type) {
348
+ case 'append':
349
+ if (data) {
350
+ outputSize += data.length;
351
+ writer.writeUint8Array(data, function () {
352
+ step();
353
+ }, onwriteerror);
354
+ } else
355
+ step();
356
+ break;
357
+ case 'flush':
358
+ crc = message.crc;
359
+ if (data) {
360
+ outputSize += data.length;
361
+ writer.writeUint8Array(data, function () {
362
+ onflush();
363
+ }, onwriteerror);
364
+ } else
365
+ onflush();
366
+ break;
367
+ case 'progress':
368
+ if (onprogress)
369
+ onprogress(index + message.loaded, size);
370
+ break;
371
+ case 'importScripts': //no need to handle here
372
+ case 'newTask':
373
+ case 'echo':
374
+ break;
375
+ default:
376
+ console.warn('zip.js:launchWorkerProcess: unknown message: ', message);
377
+ }
378
+ }
379
+
380
+ function step() {
381
+ index = chunkIndex * CHUNK_SIZE;
382
+ // use `<=` instead of `<`, because `size` may be 0.
383
+ if (index <= size) {
384
+ reader.readUint8Array(offset + index, Math.min(CHUNK_SIZE, size - index), function (array) {
385
+ if (onprogress)
386
+ onprogress(index, size);
387
+ var msg = index === 0 ? initialMessage : {sn: sn};
388
+ msg.type = 'append';
389
+ msg.data = array;
390
+
391
+ // posting a message with transferables will fail on IE10
392
+ try {
393
+ worker.postMessage(msg, [array.buffer]);
394
+ } catch (ex) {
395
+ worker.postMessage(msg); // retry without transferables
396
+ }
397
+ chunkIndex++;
398
+ }, onreaderror);
399
+ } else {
400
+ worker.postMessage({
401
+ sn: sn,
402
+ type: 'flush'
403
+ });
404
+ }
405
+ }
406
+
407
+ outputSize = 0;
408
+ worker.addEventListener('message', onmessage, false);
409
+ step();
410
+ }
411
+
412
+ function launchProcess(process, reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror) {
413
+ var chunkIndex = 0, index, outputSize = 0,
414
+ crcInput = crcType === 'input',
415
+ crcOutput = crcType === 'output',
416
+ crc = new Crc32();
417
+
418
+ function step() {
419
+ var outputData;
420
+ index = chunkIndex * CHUNK_SIZE;
421
+ if (index < size)
422
+ reader.readUint8Array(offset + index, Math.min(CHUNK_SIZE, size - index), function (inputData) {
423
+ var outputData;
424
+ try {
425
+ outputData = process.append(inputData, function (loaded) {
426
+ if (onprogress)
427
+ onprogress(index + loaded, size);
428
+ });
429
+ } catch (e) {
430
+ onreaderror(e);
431
+ return;
432
+ }
433
+ if (outputData) {
434
+ outputSize += outputData.length;
435
+ writer.writeUint8Array(outputData, function () {
436
+ chunkIndex++;
437
+ setTimeout(step, 1);
438
+ }, onwriteerror);
439
+ if (crcOutput)
440
+ crc.append(outputData);
441
+ } else {
442
+ chunkIndex++;
443
+ setTimeout(step, 1);
444
+ }
445
+ if (crcInput)
446
+ crc.append(inputData);
447
+ if (onprogress)
448
+ onprogress(index, size);
449
+ }, onreaderror);
450
+ else {
451
+ try {
452
+ outputData = process.flush();
453
+ } catch (e) {
454
+ onreaderror(e);
455
+ return;
456
+ }
457
+ if (outputData) {
458
+ if (crcOutput)
459
+ crc.append(outputData);
460
+ outputSize += outputData.length;
461
+ writer.writeUint8Array(outputData, function () {
462
+ onend(outputSize, crc.get());
463
+ }, onwriteerror);
464
+ } else
465
+ onend(outputSize, crc.get());
466
+ }
467
+ }
468
+
469
+ step();
470
+ }
471
+
472
+ function inflate(worker, sn, reader, writer, offset, size, computeCrc32, onend, onprogress, onreaderror, onwriteerror) {
473
+ var crcType = computeCrc32 ? 'output' : 'none';
474
+ if (obj.zip.useWebWorkers) {
475
+ var initialMessage = {
476
+ sn: sn,
477
+ codecClass: 'Inflater',
478
+ crcType: crcType,
479
+ };
480
+ launchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror);
481
+ } else
482
+ launchProcess(new obj.zip.Inflater(), reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror);
483
+ }
484
+
485
+ function deflate(worker, sn, reader, writer, level, onend, onprogress, onreaderror, onwriteerror) {
486
+ var crcType = 'input';
487
+ if (obj.zip.useWebWorkers) {
488
+ var initialMessage = {
489
+ sn: sn,
490
+ options: {level: level},
491
+ codecClass: 'Deflater',
492
+ crcType: crcType,
493
+ };
494
+ launchWorkerProcess(worker, initialMessage, reader, writer, 0, reader.size, onprogress, onend, onreaderror, onwriteerror);
495
+ } else
496
+ launchProcess(new obj.zip.Deflater(), reader, writer, 0, reader.size, crcType, onprogress, onend, onreaderror, onwriteerror);
497
+ }
498
+
499
+ function copy(worker, sn, reader, writer, offset, size, computeCrc32, onend, onprogress, onreaderror, onwriteerror) {
500
+ var crcType = 'input';
501
+ if (obj.zip.useWebWorkers && computeCrc32) {
502
+ var initialMessage = {
503
+ sn: sn,
504
+ codecClass: 'NOOP',
505
+ crcType: crcType,
506
+ };
507
+ launchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror);
508
+ } else
509
+ launchProcess(new NOOP(), reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror);
510
+ }
511
+
512
+ // ZipReader
513
+
514
+ function decodeASCII(str) {
515
+ var i, out = "", charCode, extendedASCII = ['\u00C7', '\u00FC', '\u00E9', '\u00E2', '\u00E4', '\u00E0', '\u00E5', '\u00E7', '\u00EA', '\u00EB',
516
+ '\u00E8', '\u00EF', '\u00EE', '\u00EC', '\u00C4', '\u00C5', '\u00C9', '\u00E6', '\u00C6', '\u00F4', '\u00F6', '\u00F2', '\u00FB', '\u00F9',
517
+ '\u00FF', '\u00D6', '\u00DC', '\u00F8', '\u00A3', '\u00D8', '\u00D7', '\u0192', '\u00E1', '\u00ED', '\u00F3', '\u00FA', '\u00F1', '\u00D1',
518
+ '\u00AA', '\u00BA', '\u00BF', '\u00AE', '\u00AC', '\u00BD', '\u00BC', '\u00A1', '\u00AB', '\u00BB', '_', '_', '_', '\u00A6', '\u00A6',
519
+ '\u00C1', '\u00C2', '\u00C0', '\u00A9', '\u00A6', '\u00A6', '+', '+', '\u00A2', '\u00A5', '+', '+', '-', '-', '+', '-', '+', '\u00E3',
520
+ '\u00C3', '+', '+', '-', '-', '\u00A6', '-', '+', '\u00A4', '\u00F0', '\u00D0', '\u00CA', '\u00CB', '\u00C8', 'i', '\u00CD', '\u00CE',
521
+ '\u00CF', '+', '+', '_', '_', '\u00A6', '\u00CC', '_', '\u00D3', '\u00DF', '\u00D4', '\u00D2', '\u00F5', '\u00D5', '\u00B5', '\u00FE',
522
+ '\u00DE', '\u00DA', '\u00DB', '\u00D9', '\u00FD', '\u00DD', '\u00AF', '\u00B4', '\u00AD', '\u00B1', '_', '\u00BE', '\u00B6', '\u00A7',
523
+ '\u00F7', '\u00B8', '\u00B0', '\u00A8', '\u00B7', '\u00B9', '\u00B3', '\u00B2', '_', ' '];
524
+ for (i = 0; i < str.length; i++) {
525
+ charCode = str.charCodeAt(i) & 0xFF;
526
+ if (charCode > 127)
527
+ out += extendedASCII[charCode - 128];
528
+ else
529
+ out += String.fromCharCode(charCode);
530
+ }
531
+ return out;
532
+ }
533
+
534
+ function decodeUTF8(string) {
535
+ return decodeURIComponent(escape(string));
536
+ }
537
+
538
+ function getString(bytes) {
539
+ var i, str = "";
540
+ for (i = 0; i < bytes.length; i++)
541
+ str += String.fromCharCode(bytes[i]);
542
+ return str;
543
+ }
544
+
545
+ function getDate(timeRaw) {
546
+ var date = (timeRaw & 0xffff0000) >> 16, time = timeRaw & 0x0000ffff;
547
+ try {
548
+ return new Date(1980 + ((date & 0xFE00) >> 9), ((date & 0x01E0) >> 5) - 1, date & 0x001F, (time & 0xF800) >> 11, (time & 0x07E0) >> 5,
549
+ (time & 0x001F) * 2, 0);
550
+ } catch (e) {
551
+ }
552
+ }
553
+
554
+ function readCommonHeader(entry, data, index, centralDirectory, onerror) {
555
+ entry.version = data.view.getUint16(index, true);
556
+ entry.bitFlag = data.view.getUint16(index + 2, true);
557
+ entry.compressionMethod = data.view.getUint16(index + 4, true);
558
+ entry.lastModDateRaw = data.view.getUint32(index + 6, true);
559
+ entry.lastModDate = getDate(entry.lastModDateRaw);
560
+ if ((entry.bitFlag & 0x01) === 0x01) {
561
+ onerror(ERR_ENCRYPTED);
562
+ return;
563
+ }
564
+ if (centralDirectory || (entry.bitFlag & 0x0008) != 0x0008) {
565
+ entry.crc32 = data.view.getUint32(index + 10, true);
566
+ entry.compressedSize = data.view.getUint32(index + 14, true);
567
+ entry.uncompressedSize = data.view.getUint32(index + 18, true);
568
+ }
569
+ if (entry.compressedSize === 0xFFFFFFFF || entry.uncompressedSize === 0xFFFFFFFF) {
570
+ onerror(ERR_ZIP64);
571
+ return;
572
+ }
573
+ entry.filenameLength = data.view.getUint16(index + 22, true);
574
+ entry.extraFieldLength = data.view.getUint16(index + 24, true);
575
+ }
576
+
577
+ function createZipReader(reader, callback, onerror) {
578
+ var inflateSN = 0;
579
+
580
+ function Entry() {
581
+ }
582
+
583
+ Entry.prototype.getData = function (writer, onend, onprogress, checkCrc32) {
584
+ var that = this;
585
+
586
+ function testCrc32(crc32) {
587
+ var dataCrc32 = getDataHelper(4);
588
+ dataCrc32.view.setUint32(0, crc32);
589
+ return that.crc32 == dataCrc32.view.getUint32(0);
590
+ }
591
+
592
+ function getWriterData(uncompressedSize, crc32) {
593
+ if (checkCrc32 && !testCrc32(crc32))
594
+ onerror(ERR_CRC);
595
+ else
596
+ writer.getData(function (data) {
597
+ onend(data);
598
+ });
599
+ }
600
+
601
+ function onreaderror(err) {
602
+ onerror(err || ERR_READ_DATA);
603
+ }
604
+
605
+ function onwriteerror(err) {
606
+ onerror(err || ERR_WRITE_DATA);
607
+ }
608
+
609
+ reader.readUint8Array(that.offset, 30, function (bytes) {
610
+ var data = getDataHelper(bytes.length, bytes), dataOffset;
611
+ if (data.view.getUint32(0) != 0x504b0304) {
612
+ onerror(ERR_BAD_FORMAT);
613
+ return;
614
+ }
615
+ readCommonHeader(that, data, 4, false, onerror);
616
+ dataOffset = that.offset + 30 + that.filenameLength + that.extraFieldLength;
617
+ writer.init(function () {
618
+ if (that.compressionMethod === 0)
619
+ copy(that._worker, inflateSN++, reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror);
620
+ else
621
+ inflate(that._worker, inflateSN++, reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror);
622
+ }, onwriteerror);
623
+ }, onreaderror);
624
+ };
625
+
626
+ function seekEOCDR(eocdrCallback) {
627
+ // "End of central directory record" is the last part of a zip archive, and is at least 22 bytes long.
628
+ // Zip file comment is the last part of EOCDR and has max length of 64KB,
629
+ // so we only have to search the last 64K + 22 bytes of a archive for EOCDR signature (0x06054b50).
630
+ var EOCDR_MIN = 22;
631
+ if (reader.size < EOCDR_MIN) {
632
+ onerror(ERR_BAD_FORMAT);
633
+ return;
634
+ }
635
+ var ZIP_COMMENT_MAX = 256 * 256, EOCDR_MAX = EOCDR_MIN + ZIP_COMMENT_MAX;
636
+
637
+ // In most cases, the EOCDR is EOCDR_MIN bytes long
638
+ doSeek(EOCDR_MIN, function () {
639
+ // If not found, try within EOCDR_MAX bytes
640
+ doSeek(Math.min(EOCDR_MAX, reader.size), function () {
641
+ onerror(ERR_BAD_FORMAT);
642
+ });
643
+ });
644
+
645
+ // seek last length bytes of file for EOCDR
646
+ function doSeek(length, eocdrNotFoundCallback) {
647
+ reader.readUint8Array(reader.size - length, length, function (bytes) {
648
+ for (var i = bytes.length - EOCDR_MIN; i >= 0; i--) {
649
+ if (bytes[i] === 0x50 && bytes[i + 1] === 0x4b && bytes[i + 2] === 0x05 && bytes[i + 3] === 0x06) {
650
+ eocdrCallback(new DataView(bytes.buffer, i, EOCDR_MIN));
651
+ return;
652
+ }
653
+ }
654
+ eocdrNotFoundCallback();
655
+ }, function () {
656
+ onerror(ERR_READ);
657
+ });
658
+ }
659
+ }
660
+
661
+ var zipReader = {
662
+ getEntries: function (callback) {
663
+ var worker = this._worker;
664
+ // look for End of central directory record
665
+ seekEOCDR(function (dataView) {
666
+ var datalength, fileslength;
667
+ datalength = dataView.getUint32(16, true);
668
+ fileslength = dataView.getUint16(8, true);
669
+ if (datalength < 0 || datalength >= reader.size) {
670
+ onerror(ERR_BAD_FORMAT);
671
+ return;
672
+ }
673
+ reader.readUint8Array(datalength, reader.size - datalength, function (bytes) {
674
+ var i, index = 0, entries = [], entry, filename, comment, data = getDataHelper(bytes.length, bytes);
675
+ for (i = 0; i < fileslength; i++) {
676
+ entry = new Entry();
677
+ entry._worker = worker;
678
+ if (data.view.getUint32(index) != 0x504b0102) {
679
+ onerror(ERR_BAD_FORMAT);
680
+ return;
681
+ }
682
+ readCommonHeader(entry, data, index + 6, true, onerror);
683
+ entry.commentLength = data.view.getUint16(index + 32, true);
684
+ entry.directory = ((data.view.getUint8(index + 38) & 0x10) == 0x10);
685
+ entry.offset = data.view.getUint32(index + 42, true);
686
+ filename = getString(data.array.subarray(index + 46, index + 46 + entry.filenameLength));
687
+ entry.filename = ((entry.bitFlag & 0x0800) === 0x0800) ? decodeUTF8(filename) : decodeASCII(filename);
688
+ if (!entry.directory && entry.filename.charAt(entry.filename.length - 1) == "/")
689
+ entry.directory = true;
690
+ comment = getString(data.array.subarray(index + 46 + entry.filenameLength + entry.extraFieldLength, index + 46
691
+ + entry.filenameLength + entry.extraFieldLength + entry.commentLength));
692
+ entry.comment = ((entry.bitFlag & 0x0800) === 0x0800) ? decodeUTF8(comment) : decodeASCII(comment);
693
+ entries.push(entry);
694
+ index += 46 + entry.filenameLength + entry.extraFieldLength + entry.commentLength;
695
+ }
696
+ callback(entries);
697
+ }, function () {
698
+ onerror(ERR_READ);
699
+ });
700
+ });
701
+ },
702
+ close: function (callback) {
703
+ if (this._worker) {
704
+ this._worker.terminate();
705
+ this._worker = null;
706
+ }
707
+ if (callback)
708
+ callback();
709
+ },
710
+ _worker: null
711
+ };
712
+
713
+ if (!obj.zip.useWebWorkers)
714
+ callback(zipReader);
715
+ else {
716
+ createWorker('inflater',
717
+ function (worker) {
718
+ zipReader._worker = worker;
719
+ callback(zipReader);
720
+ },
721
+ function (err) {
722
+ onerror(err);
723
+ }
724
+ );
725
+ }
726
+ }
727
+
728
+ // ZipWriter
729
+
730
+ function encodeUTF8(string) {
731
+ return unescape(encodeURIComponent(string));
732
+ }
733
+
734
+ function getBytes(str) {
735
+ var i, array = [];
736
+ for (i = 0; i < str.length; i++)
737
+ array.push(str.charCodeAt(i));
738
+ return array;
739
+ }
740
+
741
+ function createZipWriter(writer, callback, onerror, dontDeflate) {
742
+ var files = {}, filenames = [], datalength = 0;
743
+ var deflateSN = 0;
744
+
745
+ function onwriteerror(err) {
746
+ onerror(err || ERR_WRITE);
747
+ }
748
+
749
+ function onreaderror(err) {
750
+ onerror(err || ERR_READ_DATA);
751
+ }
752
+
753
+ var zipWriter = {
754
+ add: function (name, reader, onend, onprogress, options) {
755
+ var header, filename, date;
756
+ var worker = this._worker;
757
+
758
+ function writeHeader(callback) {
759
+ var data;
760
+ date = options.lastModDate || new Date();
761
+ header = getDataHelper(26);
762
+ files[name] = {
763
+ headerArray: header.array,
764
+ directory: options.directory,
765
+ filename: filename,
766
+ offset: datalength,
767
+ comment: getBytes(encodeUTF8(options.comment || ""))
768
+ };
769
+ header.view.setUint32(0, 0x14000808);
770
+ if (options.version)
771
+ header.view.setUint8(0, options.version);
772
+ if (!dontDeflate && options.level !== 0 && !options.directory)
773
+ header.view.setUint16(4, 0x0800);
774
+ header.view.setUint16(6, (((date.getHours() << 6) | date.getMinutes()) << 5) | date.getSeconds() / 2, true);
775
+ header.view.setUint16(8, ((((date.getFullYear() - 1980) << 4) | (date.getMonth() + 1)) << 5) | date.getDate(), true);
776
+ header.view.setUint16(22, filename.length, true);
777
+ data = getDataHelper(30 + filename.length);
778
+ data.view.setUint32(0, 0x504b0304);
779
+ data.array.set(header.array, 4);
780
+ data.array.set(filename, 30);
781
+ datalength += data.array.length;
782
+ writer.writeUint8Array(data.array, callback, onwriteerror);
783
+ }
784
+
785
+ function writeFooter(compressedLength, crc32) {
786
+ var footer = getDataHelper(16);
787
+ datalength += compressedLength || 0;
788
+ footer.view.setUint32(0, 0x504b0708);
789
+ if (typeof crc32 != "undefined") {
790
+ header.view.setUint32(10, crc32, true);
791
+ footer.view.setUint32(4, crc32, true);
792
+ }
793
+ if (reader) {
794
+ footer.view.setUint32(8, compressedLength, true);
795
+ header.view.setUint32(14, compressedLength, true);
796
+ footer.view.setUint32(12, reader.size, true);
797
+ header.view.setUint32(18, reader.size, true);
798
+ }
799
+ writer.writeUint8Array(footer.array, function () {
800
+ datalength += 16;
801
+ onend();
802
+ }, onwriteerror);
803
+ }
804
+
805
+ function writeFile() {
806
+ options = options || {};
807
+ name = name.trim();
808
+ if (options.directory && name.charAt(name.length - 1) != "/")
809
+ name += "/";
810
+ if (files.hasOwnProperty(name)) {
811
+ onerror(ERR_DUPLICATED_NAME);
812
+ return;
813
+ }
814
+ filename = getBytes(encodeUTF8(name));
815
+ filenames.push(name);
816
+ writeHeader(function () {
817
+ if (reader)
818
+ if (dontDeflate || options.level === 0)
819
+ copy(worker, deflateSN++, reader, writer, 0, reader.size, true, writeFooter, onprogress, onreaderror, onwriteerror);
820
+ else
821
+ deflate(worker, deflateSN++, reader, writer, options.level, writeFooter, onprogress, onreaderror, onwriteerror);
822
+ else
823
+ writeFooter();
824
+ }, onwriteerror);
825
+ }
826
+
827
+ if (reader)
828
+ reader.init(writeFile, onreaderror);
829
+ else
830
+ writeFile();
831
+ },
832
+ close: function (callback) {
833
+ if (this._worker) {
834
+ this._worker.terminate();
835
+ this._worker = null;
836
+ }
837
+
838
+ var data, length = 0, index = 0, indexFilename, file;
839
+ for (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {
840
+ file = files[filenames[indexFilename]];
841
+ length += 46 + file.filename.length + file.comment.length;
842
+ }
843
+ data = getDataHelper(length + 22);
844
+ for (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {
845
+ file = files[filenames[indexFilename]];
846
+ data.view.setUint32(index, 0x504b0102);
847
+ data.view.setUint16(index + 4, 0x1400);
848
+ data.array.set(file.headerArray, index + 6);
849
+ data.view.setUint16(index + 32, file.comment.length, true);
850
+ if (file.directory)
851
+ data.view.setUint8(index + 38, 0x10);
852
+ data.view.setUint32(index + 42, file.offset, true);
853
+ data.array.set(file.filename, index + 46);
854
+ data.array.set(file.comment, index + 46 + file.filename.length);
855
+ index += 46 + file.filename.length + file.comment.length;
856
+ }
857
+ data.view.setUint32(index, 0x504b0506);
858
+ data.view.setUint16(index + 8, filenames.length, true);
859
+ data.view.setUint16(index + 10, filenames.length, true);
860
+ data.view.setUint32(index + 12, length, true);
861
+ data.view.setUint32(index + 16, datalength, true);
862
+ writer.writeUint8Array(data.array, function () {
863
+ writer.getData(callback);
864
+ }, onwriteerror);
865
+ },
866
+ _worker: null
867
+ };
868
+
869
+ if (!obj.zip.useWebWorkers)
870
+ callback(zipWriter);
871
+ else {
872
+ createWorker('deflater',
873
+ function (worker) {
874
+ zipWriter._worker = worker;
875
+ callback(zipWriter);
876
+ },
877
+ function (err) {
878
+ onerror(err);
879
+ }
880
+ );
881
+ }
882
+ }
883
+
884
+ function resolveURLs(urls) {
885
+ var a = document.createElement('a');
886
+ return urls.map(function (url) {
887
+ a.href = url;
888
+ return a.href;
889
+ });
890
+ }
891
+
892
+ var DEFAULT_WORKER_SCRIPTS = {
893
+ deflater: ['z-worker.js', 'deflate.js'],
894
+ inflater: ['z-worker.js', 'inflate.js']
895
+ };
896
+
897
+ function createWorker(type, callback, onerror) {
898
+ if (obj.zip.workerScripts !== null && obj.zip.workerScriptsPath !== null) {
899
+ onerror(new Error('Either zip.workerScripts or zip.workerScriptsPath may be set, not both.'));
900
+ return;
901
+ }
902
+ var scripts;
903
+ if (obj.zip.workerScripts) {
904
+ scripts = obj.zip.workerScripts[type];
905
+ if (!Array.isArray(scripts)) {
906
+ onerror(new Error('zip.workerScripts.' + type + ' is not an array!'));
907
+ return;
908
+ }
909
+ scripts = resolveURLs(scripts);
910
+ } else {
911
+ scripts = DEFAULT_WORKER_SCRIPTS[type].slice(0);
912
+ scripts[0] = (obj.zip.workerScriptsPath || '') + scripts[0];
913
+ }
914
+ var worker = new Worker(scripts[0]);
915
+ // record total consumed time by inflater/deflater/crc32 in this worker
916
+ worker.codecTime = worker.crcTime = 0;
917
+ worker.postMessage({type: 'importScripts', scripts: scripts.slice(1)});
918
+ worker.addEventListener('message', onmessage);
919
+ function onmessage(ev) {
920
+ var msg = ev.data;
921
+ if (msg.error) {
922
+ worker.terminate(); // should before onerror(), because onerror() may throw.
923
+ onerror(msg.error);
924
+ return;
925
+ }
926
+ if (msg.type === 'importScripts') {
927
+ worker.removeEventListener('message', onmessage);
928
+ worker.removeEventListener('error', errorHandler);
929
+ callback(worker);
930
+ }
931
+ }
932
+
933
+ // catch entry script loading error and other unhandled errors
934
+ worker.addEventListener('error', errorHandler);
935
+ function errorHandler(err) {
936
+ worker.terminate();
937
+ onerror(err);
938
+ }
939
+ }
940
+
941
+ function onerror_default(error) {
942
+ console.error(error);
943
+ }
944
+
945
+ obj.zip = {
946
+ Reader: Reader,
947
+ Writer: Writer,
948
+ BlobReader: BlobReader,
949
+ Data64URIReader: Data64URIReader,
950
+ TextReader: TextReader,
951
+ BlobWriter: BlobWriter,
952
+ Data64URIWriter: Data64URIWriter,
953
+ TextWriter: TextWriter,
954
+ createReader: function (reader, callback, onerror) {
955
+ onerror = onerror || onerror_default;
956
+
957
+ reader.init(function () {
958
+ createZipReader(reader, callback, onerror);
959
+ }, onerror);
960
+ },
961
+ createWriter: function (writer, callback, onerror, dontDeflate) {
962
+ onerror = onerror || onerror_default;
963
+ dontDeflate = !!dontDeflate;
964
+
965
+ writer.init(function () {
966
+ createZipWriter(writer, callback, onerror, dontDeflate);
967
+ }, onerror);
968
+ },
969
+ useWebWorkers: true,
970
+ /**
971
+ * Directory containing the default worker scripts (z-worker.js, deflate.js, and inflate.js), relative to current base url.
972
+ * E.g.: zip.workerScripts = './';
973
+ */
974
+ workerScriptsPath: null,
975
+ /**
976
+ * Advanced option to control which scripts are loaded in the Web worker. If this option is specified, then workerScriptsPath must not be set.
977
+ * workerScripts.deflater/workerScripts.inflater should be arrays of urls to scripts for deflater/inflater, respectively.
978
+ * Scripts in the array are executed in order, and the first one should be z-worker.js, which is used to start the worker.
979
+ * All urls are relative to current base url.
980
+ * E.g.:
981
+ * zip.workerScripts = {
982
+ * deflater: ['z-worker.js', 'deflate.js'],
983
+ * inflater: ['z-worker.js', 'inflate.js']
984
+ * };
985
+ */
986
+ workerScripts: null,
987
+ };
988
+
989
+ })(zipLib);
990
+
991
+ export {zipLib};