@zohodesk/react-cli 1.1.16-exp.3 → 1.1.16-exp.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (450) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -180
  3. package/.prettierrc +6 -6
  4. package/.vscode/settings.json +24 -24
  5. package/Changelog.md +1019 -1019
  6. package/README.md +1445 -1435
  7. package/bin/cli.js +466 -458
  8. package/docs/AutoPrefixer.md +27 -0
  9. package/docs/ComposeMinification.md +13 -13
  10. package/docs/CustomChunks.md +29 -29
  11. package/docs/DevServerPort.md +39 -39
  12. package/docs/DevStart.md +18 -18
  13. package/docs/HoverActive.md +12 -12
  14. package/docs/InstallNode.md +28 -28
  15. package/docs/MarkdownParser.md +17 -17
  16. package/docs/ReactLive.md +13 -13
  17. package/docs/SelectorWeight.md +8 -8
  18. package/docs/TODOS.md +10 -10
  19. package/docs/ValueReplacer.md +86 -86
  20. package/docs/VariableConversion.md +729 -729
  21. package/docs/patternFiltering.md +56 -56
  22. package/docs/warnings_while_install.txt +35 -35
  23. package/files/eslintrc.js +62 -62
  24. package/files/prettierrc.js +3 -3
  25. package/lib/configs/webpack.css.umd.config.js +4 -4
  26. package/lib/configs/webpack.dev.config.js +3 -4
  27. package/lib/configs/webpack.docs.config.js +2 -4
  28. package/lib/configs/webpack.impact.config.js +2 -0
  29. package/lib/configs/webpack.prod.config.js +4 -5
  30. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  31. package/lib/loaderUtils/getCSSLoaders.js +57 -53
  32. package/lib/loaders/workerLoader.js +9 -9
  33. package/lib/pluginUtils/getDevPlugins.js +5 -5
  34. package/lib/pluginUtils/getProdPlugins.js +5 -5
  35. package/lib/plugins/CustomAttributePlugin.md +35 -35
  36. package/lib/plugins/EFCPlugin.md +6 -6
  37. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  38. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +43 -72
  39. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  40. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  41. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  42. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  43. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  44. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  45. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  46. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  47. package/lib/plugins/SelectorPlugin.js +29 -29
  48. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  49. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  50. package/lib/plugins/VariableConversionCollector.js +59 -59
  51. package/lib/plugins/utils/fileHandling.js +6 -5
  52. package/lib/plugins/variableConvertorUtils.js +9 -9
  53. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  54. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  55. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  56. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  57. package/lib/schemas/index.js +35 -4
  58. package/lib/sh/pre-commit.sh +34 -34
  59. package/lib/sh/reportPublish.sh +45 -45
  60. package/lib/utils/autoprefixer.js +52 -0
  61. package/lib/utils/buildstats.html +148 -148
  62. package/lib/utils/cssClassNameGenerate.js +13 -13
  63. package/lib/utils/object-manipulation.js +5 -5
  64. package/lib/utils/resultSchema.json +73 -73
  65. package/npm-shrinkwrap.json +14483 -33485
  66. package/npm8.md +9 -9
  67. package/package.json +124 -126
  68. package/packages/client_build_tool/lib/allCommandsConfigs.js +25 -0
  69. package/packages/client_build_tool/lib/commands/build/commandExecutor.js +17 -0
  70. package/packages/client_build_tool/lib/commands/build/config.js +12 -0
  71. package/packages/client_build_tool/lib/commands/build/errorHander.js +10 -0
  72. package/packages/client_build_tool/lib/commands/build/optionsProcessor.js +45 -0
  73. package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +33 -0
  74. package/packages/client_build_tool/lib/commands/buildEs/config.js +12 -0
  75. package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +33 -0
  76. package/packages/client_build_tool/lib/commands/buildLib/config.js +12 -0
  77. package/packages/client_build_tool/lib/commands/mockserver/commandExecutor.js +43 -0
  78. package/packages/client_build_tool/lib/commands/mockserver/config.js +12 -0
  79. package/packages/client_build_tool/lib/commands/start/commandExecutor.js +12 -0
  80. package/packages/client_build_tool/lib/commands/start/config.js +12 -0
  81. package/packages/client_build_tool/lib/commands/start/deprecationHandler.js +10 -0
  82. package/packages/client_build_tool/lib/commands/start/errorHander.js +10 -0
  83. package/packages/client_build_tool/lib/commands/start/optionsProcessor.js +40 -0
  84. package/packages/client_build_tool/lib/commands/start/postProcessor.js +10 -0
  85. package/packages/client_build_tool/lib/commands/start/preProcessor.js +10 -0
  86. package/packages/client_build_tool/lib/commands/template/commandExecutor.js +32 -0
  87. package/packages/client_build_tool/lib/commands/template/config.js +12 -0
  88. package/packages/client_build_tool/lib/commands/version/commandExecutor.js +14 -0
  89. package/packages/client_build_tool/lib/commands/version/config.js +12 -0
  90. package/packages/client_build_tool/lib/commands/version/errorHander.js +10 -0
  91. package/packages/client_build_tool/lib/commandsRouter.js +76 -0
  92. package/packages/client_build_tool/lib/index.js +12 -0
  93. package/packages/client_build_tool/lib/logger.js +34 -0
  94. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/otherTestCases.test.js +234 -0
  95. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingDifferentDataTypesToSchema.test.js +103 -0
  96. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingEmptyObjects.test.js +41 -0
  97. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertArray.test.js +68 -0
  98. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertNumber.test.js +68 -0
  99. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertObject.test.js +141 -0
  100. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertString.test.js +68 -0
  101. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertUndefinedAndNull.test.js +132 -0
  102. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertArray.test.js +71 -0
  103. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertNumber.test.js +71 -0
  104. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertObject.test.js +73 -0
  105. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertString.test.js +71 -0
  106. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertUndefinedAndNull.test.js +138 -0
  107. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/index.js +34 -0
  108. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isObject.js +10 -0
  109. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isValid.js +14 -0
  110. package/packages/client_build_tool/lib/schemas/cliArgsToObject.js +39 -0
  111. package/packages/client_build_tool/lib/schemas/defaultConfigValues.js +244 -0
  112. package/packages/client_build_tool/lib/schemas/defaultConfigValuesOnly.js +161 -0
  113. package/packages/client_build_tool/lib/schemas/deprecatedOptionsHandler.js +67 -0
  114. package/packages/client_build_tool/lib/schemas/getNpmVersion.js +22 -0
  115. package/packages/client_build_tool/lib/schemas/giveDefaultValue.js +18 -0
  116. package/packages/client_build_tool/lib/schemas/npmConfigToObject.js +35 -0
  117. package/packages/client_build_tool/lib/schemas/readOptions.js +54 -0
  118. package/packages/client_build_tool/lib/schemas/readOptionsForConfigFile.js +42 -0
  119. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Map.test.js +15 -0
  120. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/MathAndNumberMethod.test.js +30 -0
  121. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/ObjectAndModules.test.js +47 -0
  122. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Sets.test.js +18 -0
  123. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Symbol.test.js +25 -0
  124. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/arrowFunction.test.js +34 -0
  125. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/block-scoping.test.js +18 -0
  126. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/classes.test.js +55 -0
  127. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/defaultParameterValues.test.js +18 -0
  128. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/extraFeatures.test.js +82 -0
  129. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/forOf.test.js +20 -0
  130. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/promise.test.js +22 -0
  131. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadOperator.test.js +20 -0
  132. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadParams.test.js +24 -0
  133. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/stringAndArrayMethods.test.js +67 -0
  134. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/variables.test.js +21 -0
  135. package/packages/client_build_tool/lib/shared/babel/__test__/es2016/array-includes.test.js +13 -0
  136. package/packages/client_build_tool/lib/shared/babel/__test__/es2016/exponentationOperator.test.js +20 -0
  137. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/asyncAndawait.test.js +23 -0
  138. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-entries.test.js +24 -0
  139. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-getOwnproperties.test.js +24 -0
  140. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-values.test.js +24 -0
  141. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/stringMethods.test.js +20 -0
  142. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/asynchronous-iterator.test.js +19 -0
  143. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/object-rest-spread.test.js +24 -0
  144. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/promise-finally.test.js +26 -0
  145. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/regularExpressions.test.js +35 -0
  146. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/Json.stringify.test.js +21 -0
  147. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/arrayMethods.test.js +31 -0
  148. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/object-fromEntriesMethod.test.js +13 -0
  149. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/optionalCatchBinding.test.js +23 -0
  150. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/revisedFunctionToString.test.js +17 -0
  151. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/trim-startAndend-method.test.js +20 -0
  152. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/AssignmentOperator.test.js +27 -0
  153. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/Dynamic-Import.test.js +19 -0
  154. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/NullishOperator.test.js +15 -0
  155. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/bigInt.test.js +13 -0
  156. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/chainOperator.test.js +17 -0
  157. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/export-namespace-from.test.js +12 -0
  158. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/promiseAllSettledMathod.test.js +17 -0
  159. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/stringMatchMethod.test.js +13 -0
  160. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/NumericSeparator.test.js +23 -0
  161. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/logicalOperatorAssignments.test.js +25 -0
  162. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/promiseAny.test.js +16 -0
  163. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/stringReplaceMethod.test.js +16 -0
  164. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/Array-atMethod.test.js +13 -0
  165. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjectKeyCheck.test.js +27 -0
  166. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjecthasOwnMethod.test.js +19 -0
  167. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/RegexMatchIndices.test.js +20 -0
  168. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/String-atMethod.test.js +15 -0
  169. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/error.Cause.test.js +23 -0
  170. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/keysCheckinPrivateFields.test.js +27 -0
  171. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/privateMethodsAndFields.test.js +23 -0
  172. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/staticFieldsAndMethod.test.js +54 -0
  173. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/topLevelAwait.test.js +11 -0
  174. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/weakRef.test.js +17 -0
  175. package/packages/client_build_tool/lib/shared/babel/__test__/utilities.js +28 -0
  176. package/packages/client_build_tool/lib/shared/babel/babelWebConfig.js +49 -0
  177. package/packages/client_build_tool/lib/shared/babel/runBabelForJSFile.js +24 -0
  178. package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +42 -0
  179. package/packages/client_build_tool/lib/shared/bundler/webpack/common/libAlias.js +31 -0
  180. package/packages/client_build_tool/lib/shared/bundler/webpack/common/modeUtils.js +31 -0
  181. package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +70 -0
  182. package/packages/client_build_tool/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
  183. package/packages/client_build_tool/lib/shared/bundler/webpack/cssLoaders.js +16 -0
  184. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/AddManifestJson/addFilesToManifestJson.js +19 -0
  185. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/AddManifestJson/utilities.js +18 -0
  186. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +102 -0
  187. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
  188. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
  189. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +172 -0
  190. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +76 -0
  191. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +203 -0
  192. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  193. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
  194. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
  195. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
  196. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
  197. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
  198. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +76 -0
  199. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +39 -0
  200. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
  201. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +68 -0
  202. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
  203. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
  204. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +43 -0
  205. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
  206. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/classesAndObject.test.js +56 -0
  207. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/conditionalOperation.test.js +154 -0
  208. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function.test.js +89 -0
  209. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function2.test.js +71 -0
  210. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/loop.test.js +112 -0
  211. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minifyBooleanValues.test.js +43 -0
  212. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minimizeVariableNames.test.js +45 -0
  213. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/promise.test.js +53 -0
  214. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeCommentsAndEmptySpace.test.js +13 -0
  215. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeUnusedStrings.test.js +14 -0
  216. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/variableDeclaration.test.js +30 -0
  217. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +66 -0
  218. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
  219. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
  220. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
  221. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +129 -0
  222. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +54 -0
  223. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/addFilesNamesToManifestJson.test.js +51 -0
  224. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/createInitialEntries.test.js +95 -0
  225. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/removeHashFromFileName.test.js +91 -0
  226. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +24 -0
  227. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +17 -0
  228. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
  229. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
  230. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +44 -0
  231. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
  232. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
  233. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +165 -0
  234. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +62 -0
  235. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +84 -0
  236. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
  237. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +27 -0
  238. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +20 -0
  239. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +78 -0
  240. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +51 -0
  241. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +16 -0
  242. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +110 -0
  243. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +38 -0
  244. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifyCss1.test.js +74 -0
  245. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifycss.test.js +64 -0
  246. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/utilities.js +28 -0
  247. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/index.js.js +49 -0
  248. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
  249. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +361 -0
  250. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
  251. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
  252. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
  253. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/classesAndObject.test.js +56 -0
  254. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/conditionalOperation.test.js +154 -0
  255. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function.test.js +89 -0
  256. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function2.test.js +71 -0
  257. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/loop.test.js +112 -0
  258. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minifyBooleanValues.test.js +43 -0
  259. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minimizeVariableNames.test.js +45 -0
  260. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/promise.test.js +53 -0
  261. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeCommentsAndEmptySpace.test.js +13 -0
  262. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeUnusedStrings.test.js +14 -0
  263. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/variableDeclaration.test.js +30 -0
  264. package/packages/client_build_tool/lib/shared/bundler/webpack/entryConfig.js +28 -0
  265. package/packages/client_build_tool/lib/shared/bundler/webpack/externals.js +13 -0
  266. package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +27 -0
  267. package/packages/client_build_tool/lib/shared/bundler/webpack/getSourceMapType.js +10 -0
  268. package/packages/client_build_tool/lib/shared/bundler/webpack/jsLoaders.js +17 -0
  269. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +12 -0
  270. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +18 -0
  271. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +52 -0
  272. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
  273. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
  274. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
  275. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +138 -0
  276. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +59 -0
  277. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +21 -0
  278. package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
  279. package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +43 -0
  280. package/packages/client_build_tool/lib/shared/bundler/webpack/outputConfig.js +28 -0
  281. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
  282. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +24 -0
  283. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +27 -0
  284. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +80 -0
  285. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
  286. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +27 -0
  287. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +56 -0
  288. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +41 -0
  289. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
  290. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +32 -0
  291. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +23 -0
  292. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +24 -0
  293. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +19 -0
  294. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
  295. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
  296. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +40 -0
  297. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
  298. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
  299. package/packages/client_build_tool/lib/shared/bundler/webpack/plugins.js +48 -0
  300. package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +49 -0
  301. package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +128 -0
  302. package/packages/client_build_tool/lib/shared/bundler/webpack/statsConfig.js +21 -0
  303. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/index.js +26 -0
  304. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +18 -0
  305. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackBuild.js +27 -0
  306. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +52 -0
  307. package/packages/client_build_tool/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
  308. package/packages/client_build_tool/lib/shared/commands-utils/getCliPath.js +39 -0
  309. package/packages/client_build_tool/lib/shared/commands-utils/index.js +29 -0
  310. package/packages/client_build_tool/lib/shared/commands-utils/log.js +13 -0
  311. package/packages/client_build_tool/lib/shared/commands-utils/readArgsFormCommandLine.js +11 -0
  312. package/packages/client_build_tool/lib/shared/commands-utils/readOptionFormCommandLine.js +11 -0
  313. package/packages/client_build_tool/lib/shared/commands-utils/spawnSyncIO.js +38 -0
  314. package/packages/client_build_tool/lib/shared/constants.js +45 -0
  315. package/packages/client_build_tool/lib/shared/fileUtils/copyFile.js +38 -0
  316. package/packages/client_build_tool/lib/shared/fileUtils/directoryIterator.js +21 -0
  317. package/packages/client_build_tool/lib/shared/fileUtils/watchRun.js +100 -0
  318. package/packages/client_build_tool/lib/shared/postcss/__test__/ignoreTestCases.test.js +80 -0
  319. package/packages/client_build_tool/lib/shared/postcss/__test__/postcss-rtl-all-cases.test.js +119 -0
  320. package/packages/client_build_tool/lib/shared/postcss/__test__/postcssRtl.spec.js +34 -0
  321. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
  322. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
  323. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
  324. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
  325. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
  326. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
  327. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
  328. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
  329. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
  330. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
  331. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/RTLSplitPlugin.js +139 -0
  332. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
  333. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
  334. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +343 -0
  335. package/packages/client_build_tool/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
  336. package/packages/client_build_tool/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
  337. package/packages/client_build_tool/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
  338. package/packages/client_build_tool/lib/shared/postcss/runPostCssForCssFile.js +37 -0
  339. package/packages/client_build_tool/lib/shared/server/configWebpackDevMiddleware.js +41 -0
  340. package/packages/client_build_tool/lib/shared/server/corsHandling.js +21 -0
  341. package/packages/client_build_tool/lib/shared/server/getIp.js +30 -0
  342. package/packages/client_build_tool/lib/shared/server/getServerURL.js +29 -0
  343. package/packages/client_build_tool/lib/shared/server/httpsOptions.js +46 -0
  344. package/packages/client_build_tool/lib/shared/server/initExpressApp.js +19 -0
  345. package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +99 -0
  346. package/packages/client_build_tool/lib/shared/server/mockApiHandler.js +60 -0
  347. package/packages/client_build_tool/lib/shared/server/mockServer.js +41 -0
  348. package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +25 -0
  349. package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +36 -0
  350. package/packages/client_build_tool/lib/shared/server/startHttpServer.js +26 -0
  351. package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +38 -0
  352. package/packages/client_build_tool/lib/shared/server/unwanted/addHttp2Server.js +41 -0
  353. package/packages/client_build_tool/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
  354. package/packages/client_build_tool/lib/shared/server/unwanted/mockApiSupport.js +19 -0
  355. package/packages/client_build_tool/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
  356. package/packages/client_build_tool/lib/shared/server/urlConcat.js +32 -0
  357. package/packages/client_build_tool/lib/shared/utils/requireLocalOrGlobal.js +81 -0
  358. package/packages/client_build_tool/lib/shared/utils/utils.js +1 -0
  359. package/packages/client_build_tool/lib/shared/utils/versionPrint.js +20 -0
  360. package/packages/client_build_tool/node_modules/history/CHANGES.md +395 -0
  361. package/packages/client_build_tool/node_modules/history/DOMUtils.js +3 -0
  362. package/packages/client_build_tool/node_modules/history/ExecutionEnvironment.js +3 -0
  363. package/packages/client_build_tool/node_modules/history/LICENSE +21 -0
  364. package/packages/client_build_tool/node_modules/history/LocationUtils.js +3 -0
  365. package/packages/client_build_tool/node_modules/history/PathUtils.js +3 -0
  366. package/packages/client_build_tool/node_modules/history/README.md +282 -0
  367. package/packages/client_build_tool/node_modules/history/cjs/history.js +933 -0
  368. package/packages/client_build_tool/node_modules/history/cjs/history.min.js +1 -0
  369. package/packages/client_build_tool/node_modules/history/createBrowserHistory.js +3 -0
  370. package/packages/client_build_tool/node_modules/history/createHashHistory.js +3 -0
  371. package/packages/client_build_tool/node_modules/history/createMemoryHistory.js +3 -0
  372. package/packages/client_build_tool/node_modules/history/createTransitionManager.js +3 -0
  373. package/packages/client_build_tool/node_modules/history/es/DOMUtils.js +7 -0
  374. package/packages/client_build_tool/node_modules/history/es/ExecutionEnvironment.js +7 -0
  375. package/packages/client_build_tool/node_modules/history/es/LocationUtils.js +7 -0
  376. package/packages/client_build_tool/node_modules/history/es/PathUtils.js +7 -0
  377. package/packages/client_build_tool/node_modules/history/es/createBrowserHistory.js +7 -0
  378. package/packages/client_build_tool/node_modules/history/es/createHashHistory.js +7 -0
  379. package/packages/client_build_tool/node_modules/history/es/createMemoryHistory.js +7 -0
  380. package/packages/client_build_tool/node_modules/history/es/createTransitionManager.js +7 -0
  381. package/packages/client_build_tool/node_modules/history/es/warnAboutDeprecatedESMImport.js +35 -0
  382. package/packages/client_build_tool/node_modules/history/esm/history.js +904 -0
  383. package/packages/client_build_tool/node_modules/history/index.js +7 -0
  384. package/packages/client_build_tool/node_modules/history/package.json +120 -0
  385. package/packages/client_build_tool/node_modules/history/umd/history.js +1059 -0
  386. package/packages/client_build_tool/node_modules/history/umd/history.min.js +1 -0
  387. package/packages/client_build_tool/node_modules/history/warnAboutDeprecatedCJSRequire.js +35 -0
  388. package/postpublish.js +8 -8
  389. package/result.json +1 -0
  390. package/templates/app/.eslintrc.js +140 -140
  391. package/templates/app/README.md +12 -12
  392. package/templates/app/app/index.html +24 -24
  393. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  394. package/templates/app/app/properties/i18nkeys.json +3 -3
  395. package/templates/app/docs/all.html +69 -69
  396. package/templates/app/mockapi/index.js +18 -18
  397. package/templates/app/package.json +37 -37
  398. package/templates/app/src/actions/SampleActions/index.js +37 -37
  399. package/templates/app/src/actions/index.js +65 -65
  400. package/templates/app/src/appUrls.js +19 -19
  401. package/templates/app/src/components/Alert/Alert.js +134 -134
  402. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  403. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  404. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  405. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  406. package/templates/app/src/components/Sample/SampleList.js +61 -61
  407. package/templates/app/src/components/Slider/Slider.css +41 -41
  408. package/templates/app/src/components/Slider/Slider.js +55 -55
  409. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  410. package/templates/app/src/containers/AppContainer/index.js +96 -96
  411. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  412. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  413. package/templates/app/src/containers/DevTools/index.js +10 -10
  414. package/templates/app/src/containers/Header/index.js +67 -67
  415. package/templates/app/src/containers/Header/index.module.css +43 -43
  416. package/templates/app/src/containers/Redirect/index.js +63 -63
  417. package/templates/app/src/containers/Redirector/index.js +47 -47
  418. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  419. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  420. package/templates/app/src/historyChange.js +5 -5
  421. package/templates/app/src/index.html +10 -10
  422. package/templates/app/src/index.js +24 -24
  423. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  424. package/templates/app/src/reducers/alertData.js +11 -11
  425. package/templates/app/src/reducers/index.js +6 -6
  426. package/templates/app/src/reducers/samples.js +19 -19
  427. package/templates/app/src/store/configureStore.dev.js +51 -51
  428. package/templates/app/src/store/configureStore.js +5 -5
  429. package/templates/app/src/store/configureStore.prod.js +26 -26
  430. package/templates/app/src/util/Common.js +5 -5
  431. package/templates/app/src/util/RequestAPI.js +132 -132
  432. package/templates/docs/all.html +250 -250
  433. package/templates/docs/component.html +179 -179
  434. package/templates/docs/components.html +222 -222
  435. package/templates/docs/css/b.min.css +6 -6
  436. package/templates/docs/css/component.css +42 -42
  437. package/templates/docs/css/componentTest.css +6 -6
  438. package/templates/docs/css/hopscotch.css +585 -585
  439. package/templates/docs/css/markdown.css +202 -202
  440. package/templates/docs/css/style.css +988 -988
  441. package/templates/docs/impactReportTemplate.html +154 -154
  442. package/templates/docs/index.html +1664 -1664
  443. package/templates/docs/js/active-line.js +72 -72
  444. package/templates/docs/js/b.min.js +7 -7
  445. package/templates/docs/js/codemirror.js +9680 -9680
  446. package/templates/docs/js/designTokens.js +334 -334
  447. package/templates/docs/js/j.min.js +4 -4
  448. package/templates/docs/js/javascript.js +874 -874
  449. package/templates/docs/js/matchbrackets.js +145 -145
  450. package/unittest/index.html +37 -0
@@ -1,1665 +1,1665 @@
1
- <!DOCTYPE html>
2
- <html dir="ltr">
3
-
4
- <head>
5
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <link rel=stylesheet href="./css/style.css">
8
- <link rel="stylesheet" href="https://webfonts.zoho.com/css?family=Poppins:400,600,700">
9
- <link
10
- href="https://fonts.googleapis.com/css?family=Frank+Ruhl+Libre|Lemonada|Lora|Open+Sans+Condensed:300|PT+Sans+Narrow|Slabo+27px|Source+Sans+Pro"
11
- rel="stylesheet" />
12
- <link href="https://supportclientapp.localzoho.com/support/images/support-2.ico" type="IMAGE/X-ICON"
13
- rel="SHORTCUT ICON" />
14
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/styles/github-dark.min.css">
15
- <script src="./js/codemirror.js"></script>
16
- <script src="./js/javascript.js"></script>
17
- <script src="./js/active-line.js"></script>
18
- <script src="./js/matchbrackets.js"></script>
19
- <link rel="stylesheet" type="text/css" href="./css/hopscotch.css">
20
- <link rel="stylesheet" href="./css/markdown.css">
21
- <title>Zoho Desk - React Components</title>
22
- <script>
23
-
24
- function selectText(containerid) {
25
- if (document.selection) {
26
- // IE
27
- var range = document.body.createTextRange();
28
- range.moveToElementText(document.getElementById(containerid));
29
- range.select();
30
- document.execCommand('copy');
31
- } else if (window.getSelection) {
32
- var range = document.createRange();
33
- range.selectNode(document.getElementById(containerid));
34
- window.getSelection().removeAllRanges();
35
- window.getSelection().addRange(range);
36
- document.execCommand('copy');
37
- }
38
- }
39
- </script>
40
- </head>
41
-
42
- <body>
43
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js"></script>
44
- <div id="react"></div>
45
- <div class="iframeCentering">
46
- <span class="posAb">Zoho Desk - React Components</span>
47
- <iframe src="about:blank" id="ifm"></iframe>
48
- </div>
49
-
50
- <script src="/docs/js/babel.min.js"></script>
51
- <script type="text/babel">
52
- window.loadDOC = function (Component, mdata) {
53
- window.RTLmode = false;
54
- var ReactDOM = Component.ReactDOM;
55
- window.React = Component.React;
56
- window.ReactDOM = Component.ReactDOM;
57
- var React = Component.React;
58
- class Doc extends React.Component {
59
- constructor(props) {
60
- super(props);
61
- let folderNameDefault = '';
62
- let groupNameDefault = '';
63
- (location.hash && props.componentObj) ? Object.keys(props.componentObj).map((flName) => {
64
- let fname = props.componentObj[flName]
65
- Object.keys(fname).map((grName) => {
66
- if ((fname[grName].indexOf(location.hash.substring(1)) > -1)) {
67
- folderNameDefault = flName;
68
- groupNameDefault = grName;
69
- }
70
- })
71
- }) : null
72
- if (folderNameDefault == '' && groupNameDefault == '') {
73
- folderNameDefault = 'Global'
74
- groupNameDefault = 'General'
75
- }
76
- this.state = {
77
- componentObj: props.componentObj,
78
- duplicates: props.duplicates,
79
- search: '',
80
- selectedComponent: location.hash,
81
- Components: Component,
82
- //popUp: '',
83
- fullScreenSrc: '',
84
- viewGroup: groupNameDefault,
85
- viewFolder: folderNameDefault,
86
- moreInform: false,
87
- infoTab: 'component',
88
- changeset: null,
89
- version: '',
90
- frameWidth: '100%',
91
- isMenuClose: false,
92
- isRTL: false,
93
- isRem: true,
94
- isRemOpen: false,
95
- rootSize: 16,
96
- pixelSize: 16,
97
- resultRem: '1rem',
98
- responsiveMenu: false,
99
- device: 'LAPTOP_M',
100
- compList: 'Unused',
101
- windowSize: { height: 0, width: 0 },
102
- isEditMode: false
103
-
104
- };
105
- this.search = this.search.bind(this);
106
- this.clear = this.clear.bind(this);
107
- // this.toggleRemContainer = this.toggleRemContainer.bind(this);
108
- this.hashChange = this.hashChange.bind(this);
109
- //this.popupToggle = this.popupToggle.bind(this);
110
- //this.popupToggleDoc = this.popupToggleDoc.bind(this);
111
- this.removeClose = this.removeClose.bind(this);
112
- //this.fullScreenSrcToggle = this.fullScreenSrcToggle.bind(this);
113
- this.toggleFolder = this.toggleFolder.bind(this);
114
- this.toggleGroup = this.toggleGroup.bind(this);
115
- this.onTabinfo = this.onTabinfo.bind(this);
116
- this.codeview = this.codeview.bind(this);
117
- this.reloadFrame = this.reloadFrame.bind(this);
118
- this.getFileDetails = this.getFileDetails.bind(this);
119
- this.iframeSize = this.iframeSize.bind(this);
120
- this.menuOpen = this.menuOpen.bind(this);
121
- this.onRtlView = this.onRtlView.bind(this);
122
- this.onREMView = this.onREMView.bind(this);
123
- this.toggleEditMode = this.toggleEditMode.bind(this);
124
- // this.calculatePxToRem = this.calculatePxToRem.bind(this);
125
- // this.calculateRemToPx = this.calculateRemToPx.bind(this);
126
- // this.onChangeRem = this.onChangeRem.bind(this);
127
- // this.onChangePixel = this.onChangePixel.bind(this);
128
- // this.onChangeBase = this.onChangeBase.bind(this);
129
- this.responseMenu = this.responseMenu.bind(this);
130
- this.getWindow = this.getWindow.bind(this);
131
- this.fullView = this.fullView.bind(this);
132
- this.handleURL = this.handleURL.bind(this);
133
- this.compList = this.compList.bind(this);
134
- this.unusedList = this.unusedList.bind(this);
135
- this.getHookType = this.getHookType.bind(this);
136
- }
137
-
138
- fullView() {
139
- this.setState({ isMenuClose: !this.state.isMenuClose })
140
- }
141
- toggleEditMode() {
142
- var iframe = document.getElementById('componentIframe');
143
- if (iframe) {
144
- var currentMode = iframe.contentDocument.documentElement.getAttribute('contenteditable');
145
- if (currentMode == "true") {
146
- iframe.contentDocument.documentElement.setAttribute('contenteditable', "false");
147
- this.setState({ isEditMode: false });
148
- }
149
- else {
150
- iframe.contentDocument.documentElement.setAttribute('contenteditable', "true");
151
- this.setState({ isEditMode: true });
152
- }
153
- }
154
-
155
- }
156
-
157
- compList(e) {
158
- if (e == this.state.compList) {
159
- }
160
- else if (e !== this.state.compList) {
161
- this.setState({ compList: e })
162
- }
163
- else {
164
- this.setState({ compList: '' })
165
- }
166
- }
167
-
168
- getWindow() {
169
- var iframe = document.getElementById('componentIframe')
170
- if (iframe) {
171
- this.setState({ windowSize: { height: iframe.offsetHeight, width: iframe.offsetWidth } })
172
- }
173
- }
174
-
175
- responseMenu() {
176
- this.setState({ responsiveMenu: !this.state.responsiveMenu })
177
- }
178
-
179
- // toggleRemContainer() {
180
- // this.setState({ isRemOpen: !this.state.isRemOpen });
181
- // }
182
-
183
- // calculatePxToRem() {
184
- // let result = Number((this.state.pixelSize / this.state.rootSize).toFixed(4));
185
- // this.setState({ resultRem: result + "rem" });
186
- // }
187
-
188
- // calculateRemToPx() {
189
- // let result = Number(((Number(parseFloat(this.state.resultRem)) * this.state.rootSize).toFixed(4)));
190
- // this.setState({ pixelSize: result });
191
- // }
192
-
193
- // onChangeBase(e) {
194
- // let result = Number((this.state.pixelSize / e.target.value).toFixed(4));
195
- // this.setState({ rootSize: e.target.value, resultRem: result + "rem" });
196
- // }
197
-
198
- // onChangePixel(e) {
199
- // let result = Number((e.target.value / this.state.rootSize).toFixed(4));
200
- // this.setState({ pixelSize: e.target.value, resultRem: result + "rem" });
201
- // }
202
-
203
- // onChangeRem(e) {
204
- // let result = Number(((Number(parseFloat(e.target.value)) * this.state.rootSize).toFixed(4)));
205
- // this.setState({ resultRem: e.target.value, pixelSize: result });
206
- // }
207
-
208
- toggleFolder(name, e) {
209
- let { viewFolder } = this.state;
210
- if (name == viewFolder) {
211
- name = ''
212
- }
213
- this.setState({ viewFolder: name });
214
- }
215
- hashChange() {
216
- let ele = document.getElementById('componentIframe')
217
- if (ele) {
218
- var src = document.getElementById('componentIframe').src;
219
- var url = src && src.split('#')[0];
220
- document.getElementById('componentIframe').src = url + location.hash;
221
- }
222
- this.setState({ selectedComponent: location.hash, infoTab: 'component' });
223
- }
224
- toggleGroup(name) {
225
- let element = name;
226
- let { viewGroup } = this.state;
227
- if (name == viewGroup) {
228
- name = ''
229
- }
230
- this.setState({ viewGroup: name });
231
- }
232
-
233
- componentDidMount() {
234
- window.addEventListener('hashchange', this.hashChange);
235
- onLoader()
236
- let iframeEle = document.getElementById('componentIframe')
237
- iframeEle.contentWindow.addEventListener('resize', this.getWindow)
238
- this.getWindow()
239
- let index = document.getElementsByClassName('iframeCentering')
240
- index ? index[0].style.display = 'none' : null
241
- if (!this.state.selectedComponent) {
242
- this.setState({ infoTab: 'dashboard' })
243
- }
244
- //document.addEventListener('click', this.popupToggleDoc);
245
- fetch('/cli/version').then((res) => { return res.json() }).then((response) => {
246
- (response && response.version) ? this.setState({ version: response.version }) : this.setState({ version: "version get failure" })
247
- }).catch(function (err) {
248
- this.setState({ changeset: "Error accured" })
249
- });
250
- }
251
-
252
- codeview() {
253
-
254
- let compName = location.hash != '' ? location.hash.substring(1) : null;
255
- let element = document.getElementById('codeView')
256
- if (componentList[compName] && typeof CodeMirror !== 'undefined' && element) {
257
- CodeMirror(element, {
258
- value: '',
259
- lineNumbers: false,
260
- styleActiveLine: false,
261
- matchBrackets: false,
262
- theme: 'blackboard',
263
- });
264
- }
265
-
266
- }
267
-
268
- componentWillUnmount() {
269
- let iframe = document.getElementById('componentIframe');
270
- //document.removeEventListener('click', this.popupToggleDoc);
271
- iframe.contentWindow.removeEventListener('resize', this.getWindow)
272
- window.removeEventListener('hashchange', this.hashChange);
273
- window.removeEventListener('error', this.reloadFrame);
274
- }
275
-
276
- search(e) {
277
- this.setState({ search: e.target.value });
278
- }
279
-
280
- clear(e) {
281
- this.setState({ search: '' });
282
- }
283
-
284
- // popupToggleDoc() {
285
- // this.setState({ popUp: ''});
286
- // }
287
-
288
- // fullScreenSrcToggle(select) {
289
- // this.setState({ fullScreenSrc: select });
290
- // this.popupToggleDoc();
291
- // }
292
-
293
- removeClose(e) {
294
- e.stopPropagation && e.stopPropagation();
295
- e.nativeEvent.stopImmediatePropagation &&
296
- e.nativeEvent.stopImmediatePropagation();
297
- }
298
-
299
- filter(list, str) {
300
- list = list.sort((a, b) => {
301
- var at = a.toLowerCase();
302
- var bt = b.toLowerCase();
303
- return at > bt ? 1 : at < bt ? -1 : 0;
304
- });
305
- // return list.filter(
306
- // item => item.toUpperCase().indexOf(str.toUpperCase()) != -1
307
- // );
308
-
309
- return list.filter((item) => {
310
- let value = item.split('__')[0]
311
-
312
- return value.toUpperCase().indexOf(str.toUpperCase()) != -1
313
- })
314
- }
315
-
316
- onTabinfo(name) {
317
- this.setState({ infoTab: name })
318
- }
319
-
320
- reloadFrame() {
321
- let iframeEle = document.getElementById('componentIframe');
322
- //this.getWindow()
323
- iframeEle.contentDocument.location.reload()
324
- parent.document.getElementById("loadingText").style.display = 'block'
325
- }
326
-
327
- getFileDetails() {
328
- this.onTabinfo('changeset')
329
- let compName = location.hash != '' ? location.hash.substring(1) : null;
330
- let compNameSub = window.componentList ? window.componentList[compName].docs.filePath : Component[compName].docs.filePath || ''
331
- let name = compNameSub ? compNameSub.split('__')[0] : '';
332
- let propComName = name.replace("docs", "/").split('/')[0] + name.split("docs")[1]
333
- fetch('/author/get?componentName=' + propComName + '.js').then((res) => { return res.json() }).then((response) => {
334
- (response && response.stdout) ? this.setState({ changeset: response.stdout }) : this.setState({ changeset: "response is empty" })
335
- }).catch(function (err) {
336
- this.setState({ changeset: "Error accured" })
337
- });
338
- }
339
-
340
- iframeSize() {
341
- let slider = document.getElementById('myRange')
342
- let iframe = document.getElementById('componentIframe');
343
- let value = slider.value;
344
- let borderSize = 30;
345
- let sizes = {
346
- '1': { device: 'MOBILE_XS', frameWidth: 320 + borderSize },
347
- '2': { device: 'MOBILE_S', frameWidth: 360 + borderSize },
348
- '3': { device: 'MOBILE_M', frameWidth: 375.04 + borderSize },
349
- '4': { device: 'MOBILE', frameWidth: 480 + borderSize },
350
- '5': { device: 'TABLET_S', frameWidth: 640 + borderSize },
351
- '6': { device: 'TABLET_M', frameWidth: 720 + borderSize },
352
- '7': { device: 'TABLET', frameWidth: 768 + borderSize },
353
- '8': { device: 'LAPTOP_S', frameWidth: 1024 + borderSize },
354
- '9': { device: 'LAPTOP_M', frameWidth: 1280 + borderSize },
355
- '10': { device: 'LAPTOP', frameWidth: 1440 + borderSize },
356
- '11': { device: 'MONITOR_M', frameWidth: 1600 + borderSize },
357
- '12': { device: 'MONITOR', frameWidth: 1920 + borderSize }
358
- }
359
- this.setState(sizes[value]);
360
- this.getWindow()
361
- }
362
-
363
- menuOpen() {
364
- this.setState({ isMenuClose: !this.state.isMenuClose })
365
- }
366
-
367
- onRtlView(e) {
368
- let iframeEle = document.getElementById('componentIframe');
369
- let ele = e.target.element || null
370
- if (!this.state.isRTL) {
371
- this.setState({ isRTL: true })
372
- window.RTLmode = true;
373
- iframeEle.contentDocument.documentElement.setAttribute('dir', 'rtl');
374
- } else {
375
- this.setState({ isRTL: false })
376
- iframeEle.contentDocument.documentElement.setAttribute('dir', 'ltr');
377
- window.RTLmode = false;
378
- }
379
- }
380
-
381
- onREMView(e) {
382
- let iframeEle = document.getElementById('componentIframe');
383
- let ele = e.target.element || null
384
- if (!this.state.isRem) {
385
- this.setState({ isRem: true })
386
- iframeEle.contentDocument.documentElement.classList.add('isRem');
387
- } else {
388
- this.setState({ isRem: false })
389
- iframeEle.contentDocument.documentElement.classList.remove('isRem');
390
- }
391
- }
392
-
393
-
394
- handleURL() {
395
- this.setState({ viewFolder: 'General', viewGroup: 'Global', infoTab: 'dashboard' })
396
- window.history.pushState("", "", '/docs/');
397
- }
398
-
399
- unusedList(mdata) {
400
- let dbList = [];
401
- Object.keys(mdata).map((item, i) => {
402
- if (mdata[item].references.length <= 0 && mdata[item].referencedby.length <= 0) {
403
- return dbList.push(item);
404
- }
405
- })
406
- return dbList
407
- }
408
- getHookType(propInfo, value) {
409
- if (propInfo[value]) {
410
- if (propInfo[value].hookType) {
411
- let hookType = propInfo[value].hookType;
412
-
413
- if (hookType.includes("union")) {
414
- hookType = hookType.replace("union", 'oneOfType ');
415
- }
416
-
417
- if (hookType.includes("enum")) {
418
- hookType = hookType.replace("enum", "oneOf ");
419
- }
420
-
421
- return hookType;
422
- } else {
423
- return '';
424
- }
425
- } else {
426
- return '';
427
- }
428
- }
429
-
430
- render() {
431
- const {
432
- Components,
433
- componentObj,
434
- search,
435
- selectedComponent,
436
- //popUp,
437
- viewGroup,
438
- viewFolder,
439
- moreInform,
440
- infoTab,
441
- changeset,
442
- version,
443
- frameWidth,
444
- isMenuClose,
445
- isRTL,
446
- isRem,
447
- isRemOpen,
448
- rootSize,
449
- pixelSize,
450
- resultRem,
451
- duplicates,
452
- isEditMode
453
- } = this.state;/* Components & componentObj no need in the state access in props itself*/
454
- let devices = [{ device: 'MOBILE', sizes: ['XS', 'S', 'M', 'D'] }, { device: 'TABLET', sizes: ['S', 'M', 'D'] }, { device: 'LAPTOP', sizes: [, 'S', 'M', 'D'] }, { device: 'MONITOR', sizes: ['M', 'D'] }]
455
- let compValue = 'compValue';
456
- let reactCliVersion = version.split(' ').filter(function (el) { return el.toLowerCase().indexOf("fz-react-cli@") > -1; });
457
- //let versionFz = reactCliVersion.length ? reactCliVersion[0].substring(reactCliVersion[0].indexOf('@') + 1, reactCliVersion[0].length) : '';
458
- let compName = location.hash != '' ? location.hash.substring(1) : null;
459
- let propComName = compName;
460
-
461
- let propsObj = Window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.propTypes || (Components[propComName] && Components[propComName].docs.propTypes) || {};
462
- let currentCompProps = propsObj;
463
- let defaultProps = Window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.defaultProps || (Components[propComName] && Components[propComName].docs.defaultProps) || {};
464
- let currentCompPropsDescription = window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.propsDescription || (Components[propComName] && Components[propComName].docs.propsDescription) || {};
465
- let currentCompDefault = Window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.defaultProps || (Components[propComName] && Components[propComName].docs.defaultProps) || {};
466
- let componentsObj = componentObj && this.filter(Object.keys(componentObj), '').map((item, i) => {
467
- return ({ key: item, value: componentObj[item], length: Object.keys(componentObj[item]).length })
468
- })
469
- let compObjList = componentsObj
470
-
471
- let dashboardList = [
472
- this.unusedList(mdata) && { name: 'Unused', componentList: this.unusedList(mdata) },
473
- duplicates && { name: 'Duplicates', componentList: duplicates }
474
- ]
475
- let defaultPropsArray = []
476
- let currentDefaultPropsArray = []
477
- defaultProps.length && defaultProps.forEach((value) => {
478
- currentDefaultPropsArray.push(value)
479
- })
480
- let _propTypesToDefaultPropsArray = []
481
- let propsDesArray = []
482
- let _propTypesToPropsDesArray = []
483
- return (
484
- <main className="dflex flexrow">
485
- <div className="showToggleLeft" onClick={this.menuOpen}>
486
- <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGOSURBVGhD7ZrBKkVBHIdPSNKV5A3YKSvvYG/BE0jI3tbGxsYGdTeeQnY8gcLOTigba1KE73ewOGUxc8/8/2fUfPXVndOd23ydM92ae6sIeniIT/iZgW94hYsYxTH+9YFd+4pzGMQIvqAmzepCBgzhESpmRxdCmERNuKtH+bCBWpeCgighxpSQEmJECSkhRpSQkJBRvMFTHNcFQ0xDxvAW9f5ztIwxf7Rm8B6tY1z2iEeM22a3jnELEZYxriHCKsY9RFjERIfo4OECT+rR4KSOiQ5JScqYRsgULji7jM/YNqYR8vAz6NIz1KlILI2QfdTz762Ol7SID1zFQeh0j4gtVECbCBEdMox6tufrUTtSRYjokBTfIyJlhOgkJHWEcA+xiBCuIVYRwi3EMkK4hFhHCPMQjwhhGjKN72gdIczvyDYufb80xW2zW1NCSogRJaSEGFFC/n3IBGrCYz3Kh03Uug7qUSC/x0Z7uJaB63iNWpPuTDArqP9IaWJOXqJ+JYtCJym72M9A7QvdFSKq6gtlqbpowcg25wAAAABJRU5ErkJggg==" />
487
- </div>
488
-
489
- <div className={"menuBar " + (isMenuClose ? "isMenuClose" : "isMenuOpen")}>
490
- <div className="dflex flexcolumn">
491
- <div className="flexshrink logoPart dflex">
492
- <img src="./css/desklogo.png" />
493
- <div className={'home'} onClick={this.handleURL}>
494
- <span className='homeIcon'>
495
- <svg className='svg'>
496
- <use xlinkHref='#home'></use>
497
- </svg>
498
- </span>
499
- </div>
500
- </div>
501
- <div className="flexgrow flexbasis sliderContainer">
502
- <div className="dflex flexcolumn">
503
- <div className="flexshrink searchPart">
504
- <Search onChange={this.search} value={search} onClear={this.clear} />
505
- </div>
506
- <menu className="flexgrow flexbasis scrollY menuContainer" id="leftPanel">
507
- {
508
- compObjList && Object.keys(compObjList).length && compObjList.map(comp => {
509
- let folderName = comp.key
510
- let folderCompCount = 0;
511
- let sortList = this.filter(Object.keys(componentObj[folderName]), '').map(grpName => {
512
- return ({
513
- fName: grpName,
514
- components: componentObj[folderName][grpName],
515
- length: (componentObj[folderName][grpName].filter(function (el) { return el.toLowerCase().indexOf('__') > -1 }).length)
516
- })
517
- })
518
-
519
- let outcomp = Object.keys(componentObj[folderName]).sort().map(
520
- grn => {
521
- let searchList = this.filter(
522
- componentObj[folderName][grn],
523
- search
524
- );
525
- if (searchList.length) {
526
- folderCompCount = folderCompCount + 1;
527
- }
528
- return searchList.length ? true : false;
529
- }
530
- );
531
- if (outcomp.indexOf(true) != -1) {
532
- return (
533
- <div>
534
- <div
535
- onClick={this.toggleFolder.bind(
536
- this,
537
- folderName
538
- )}
539
- className={'mainMenu dflex flexrow alignVertical offSelection' + ' ' +
540
- (viewFolder == folderName
541
- ? 'mainMenuActive'
542
- : '')
543
- }
544
- >
545
- <span className={'flexgrow mainMenutitle dotted'}>{folderName}</span>
546
- <span className={'flexshrink mainMenuCount'}>{folderCompCount}</span>
547
- <i className={'flexshrink mainMenuArrow'}>
548
- <svg className='svg'>
549
- <use xlinkHref='#bottomArrow'></use>
550
- </svg>
551
- </i>
552
- </div>
553
- <div
554
- className={
555
- viewFolder == folderName || search
556
- ? 'folderOpen'
557
- : 'hide'
558
- }
559
- >
560
- {
561
- sortList.map((grpName) => {
562
- return (
563
- <ComponentList
564
- type={grpName.fName}
565
- components={this.filter(
566
- componentObj[folderName][grpName.fName],
567
- search
568
- )}
569
- selectedComponent={selectedComponent}
570
- toggleGroup={this.toggleGroup}
571
- viewGroup={
572
- search ? grpName.fName : viewGroup
573
- }
574
- />)
575
- })
576
- }
577
- </div>
578
- </div>
579
- );
580
- } else {
581
- return null;
582
- }
583
- })
584
- }
585
- </menu>
586
- {
587
- // versionFz != '' &&
588
- // <div className="flexshrink versionPart ">
589
- // <span>Version {versionFz}</span>
590
- // </div>
591
- }
592
- {/*<div className="flexshrink tools" onClick={this.toggleRemContainer}>
593
- <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDE3NC4yNDggMTc0LjI0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTc0LjI0OCAxNzQuMjQ4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnPgoJPHBhdGggZD0iTTE3My4xNDUsNzMuOTFjLTAuNDEzLTIuNzIyLTIuMjktNC45OTMtNC44ODEtNS45MTJsLTEzLjcyNy00Ljg4MWMtMC44MTItMi4zLTEuNzMzLTQuNTM2LTIuNzU0LTYuNjk5bDYuMjQ3LTEzLjE0NiAgIGMxLjE3OS0yLjQ3OSwwLjg5OS01LjQxMS0wLjcyOS03LjYyOGMtNS4yNjUtNy4xNjEtMTEuNTU2LTEzLjQ1Mi0xOC42OTgtMTguNjkzYy0yLjIxOS0xLjYyOS01LjE0MS0xLjkwNi03LjYyNS0wLjcyNCAgIGwtMTMuMTM4LDYuMjQyYy0yLjE2My0xLjAyMS00LjQwMi0xLjk0LTYuNzA0LTIuNzUybC00Ljg4My0xMy43MjljLTAuOTE5LTIuNTg2LTMuMTg0LTQuNDU4LTUuOS00Ljg3NiAgIGMtOS42NS0xLjQ4My0xNi43OTItMS40ODMtMjYuNDU3LDBjLTIuNzEzLDAuNDE4LTQuOTgxLDIuMjktNS45LDQuODc2bC00Ljg4MywxMy43MjljLTIuMzAyLDAuODEyLTQuNTQxLDEuNzMxLTYuNzAyLDIuNzUyICAgbC0xMy4xNDMtNi4yNDJjLTIuNDc5LTEuMTgxLTUuNDA2LTAuOTA0LTcuNjIzLDAuNzI0Yy03LjE0Miw1LjI0MS0xMy40MzMsMTEuNTMyLTE4LjY5OCwxOC42OTMgICBjLTEuNjI5LDIuMjE3LTEuOTA4LDUuMTQ4LTAuNzI5LDcuNjI4bDYuMjQ3LDEzLjE0NmMtMS4wMjEsMi4xNTktMS45NCw0LjQtMi43NTQsNi42OTlMNS45ODIsNjguMDAzICAgYy0yLjU4OSwwLjkxOS00LjQ2MywzLjE4OS00Ljg3OSw1LjkwN2MtMC43NDksNC45Mi0xLjA5OSw5LjExNS0xLjA5OSwxMy4yMTljMCw0LjA5OCwwLjM1LDguMjk5LDEuMDk5LDEzLjIxOSAgIGMwLjQxMywyLjcyMiwyLjI5LDQuOTkzLDQuODgxLDUuOTEybDEzLjcyNyw0Ljg4MWMwLjgxNCwyLjMwNCwxLjczNiw0LjU0MSwyLjc1NCw2LjcwNGwtNi4yNDcsMTMuMTQxICAgYy0xLjE3OSwyLjQ3OS0wLjg5OSw1LjQxMSwwLjcyNyw3LjYyM2M1LjI1OCw3LjE1NiwxMS41NDksMTMuNDQ3LDE4LjcsMTguNjk4YzIuMjE3LDEuNjI5LDUuMTQ0LDEuOTExLDcuNjI1LDAuNzI0bDEzLjEzOC02LjI0MiAgIGMyLjE2MywxLjAyMSw0LjQwMiwxLjk0LDYuNzA0LDIuNzUybDQuODgzLDEzLjcyOWMwLjkxOSwyLjU4NiwzLjE4NCw0LjQ1OCw1LjksNC44NzZjNC44MjgsMC43NDQsOS4xNTQsMS4xMDQsMTMuMjI4LDEuMTA0ICAgYzQuMDc0LDAsOC40MDEtMC4zNiwxMy4yMjgtMS4xMDRjMi43MTUtMC40MTgsNC45ODEtMi4yOSw1LjktNC44NzZsNC44ODMtMTMuNzI5YzIuMzAyLTAuODEyLDQuNTQxLTEuNzMxLDYuNzA0LTIuNzUyICAgbDEzLjEzOCw2LjI0MmMyLjQ4NCwxLjE4Niw1LjQxMSwwLjkwNCw3LjYyOC0wLjcyNGM3LjE1OS01LjI2LDEzLjQ1LTExLjU1MSwxOC42OTgtMTguNjk4YzEuNjI2LTIuMjEyLDEuOTA2LTUuMTQ0LDAuNzI3LTcuNjIzICAgbC02LjI0Ny0xMy4xNDFjMS4wMjEtMi4xNjMsMS45NDItNC40MDUsMi43NTQtNi43MDRsMTMuNzI3LTQuODgxYzIuNTkxLTAuOTE5LDQuNDY4LTMuMTg5LDQuODgxLTUuOTEyICAgYzAuNzQ5LTQuOTIsMS4wOTktOS4xMiwxLjA5OS0xMy4yMTlTMTczLjg5NCw3OC44MjksMTczLjE0NSw3My45MXogTTE1OC45NDksOTMuNzJsLTEyLjg3OCw0LjU4ICAgYy0yLjI1MSwwLjc5Ny0zLjk4MiwyLjYyNS00LjY2LDQuOTJjLTEuMTUsMy44ODktMi42NjQsNy41NjktNC41MDQsMTAuOTQzYy0xLjE0MiwyLjEtMS4yMTMsNC42MTktMC4xODcsNi43NzdsNS44NDEsMTIuMjg1ICAgYy0yLjgyMiwzLjM4OS01Ljk0Myw2LjUxNS05LjMzNyw5LjMzNGwtMTIuMjgzLTUuODM0Yy0yLjE2MS0xLjAzNi00LjY3Mi0wLjk1My02Ljc3NSwwLjE4NWMtMy4zNzksMS44MzgtNy4wNjEsMy4zNS0xMC45NTMsNC41MDIgICBjLTIuMjksMC42NzYtNC4xMTgsMi40MDYtNC45MTcsNC42NTdsLTQuNTgyLDEyLjg4M2MtNC42NzcsMC40NzYtOC41MDMsMC40NzYtMTMuMTgsMGwtNC41ODItMTIuODgzICAgYy0wLjgtMi4yNDYtMi42MjgtMy45ODItNC45MTctNC42NTdjLTMuODk0LTEuMTUyLTcuNTc5LTIuNjY0LTEwLjk1My00LjUwMmMtMi4xMDMtMS4xNDctNC42MTktMS4yMi02Ljc3NS0wLjE4NWwtMTIuMjgzLDUuODM5ICAgYy0zLjM5MS0yLjgyNS02LjUxMi01Ljk0Ni05LjMzNy05LjMzOWw1Ljg0MS0xMi4yODVjMS4wMjYtMi4xNTksMC45NTUtNC42NzctMC4xODctNi43NzdjLTEuODM1LTMuMzY0LTMuMzUtNy4wNDktNC41MDQtMTAuOTQ4ICAgYy0wLjY3OC0yLjI5LTIuNDExLTQuMTE4LTQuNjYtNC45MTVsLTEyLjg3OC00LjU4Yy0wLjI0My0yLjM0My0wLjM2LTQuNTAyLTAuMzYtNi41OTJzMC4xMTctNC4yNDQsMC4zNi02LjU4N2wxMi44ODEtNC41ODQgICBjMi4yNDgtMC43OTcsMy45NzktMi42MjUsNC42NTctNC45MTVjMS4xNTItMy44ODksMi42NjctNy41NzQsNC41MDQtMTAuOTUzYzEuMTQyLTIuMDk1LDEuMjEzLTQuNjE5LDAuMTg3LTYuNzcybC01Ljg0MS0xMi4yODUgICBjMi44MjctMy4zOTMsNS45NDgtNi41MTksOS4zMzctOS4zMzlsMTIuMjg4LDUuODM5YzIuMTUxLDEuMDM2LDQuNjc3LDAuOTUzLDYuNzc1LTAuMTg1YzMuMzcyLTEuODM4LDcuMDU0LTMuMzUsMTAuOTQ4LTQuNTAyICAgYzIuMjktMC42NzYsNC4xMTgtMi40MTEsNC45MTctNC42NTdsNC41ODItMTIuODgzYzQuNjMzLTAuNDgxLDguNDY2LTAuNDgxLDEzLjE4LDBsNC41ODIsMTIuODgzICAgYzAuOCwyLjI0NiwyLjYyOCwzLjk4Miw0LjkxNyw0LjY1N2MzLjg5NCwxLjE1Miw3LjU3OSwyLjY2NCwxMC45NTMsNC41MDJjMi4xMDMsMS4xNDcsNC42MTQsMS4yMiw2Ljc3NSwwLjE4NWwxMi4yODMtNS44MzkgICBjMy4zODksMi44Miw2LjUxLDUuOTQ2LDkuMzM3LDkuMzM5bC01Ljg0MSwxMi4yODVjLTEuMDI2LDIuMTU0LTAuOTU1LDQuNjc3LDAuMTg3LDYuNzcyYzEuODQzLDMuMzg5LDMuMzU3LDcuMDY5LDQuNTA0LDEwLjk0OCAgIGMwLjY3OCwyLjI5NSwyLjQwOSw0LjEyMyw0LjY2LDQuOTJsMTIuODc4LDQuNThjMC4yNDMsMi4zNDMsMC4zNiw0LjUwMiwwLjM2LDYuNTkyUzE1OS4xOTIsOTEuMzc3LDE1OC45NDksOTMuNzJ6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8cGF0aCBkPSJNODcuMTI0LDUwLjgwMmMtMTkuMDYyLDAtMzQuNTcxLDE1LjUwOC0zNC41NzEsMzQuNTcxczE1LjUwOCwzNC41NzEsMzQuNTcxLDM0LjU3MXMzNC41NzEtMTUuNTA4LDM0LjU3MS0zNC41NzEgICBTMTA2LjE4Niw1MC44MDIsODcuMTI0LDUwLjgwMnogTTg3LjEyNCwxMDUuMDA5Yy0xMC44MjcsMC0xOS42MzYtOC44MDktMTkuNjM2LTE5LjYzNnM4LjgwOS0xOS42MzYsMTkuNjM2LTE5LjYzNiAgIHMxOS42MzYsOC44MDksMTkuNjM2LDE5LjYzNlM5Ny45NTEsMTA1LjAwOSw4Ny4xMjQsMTA1LjAwOXoiIGZpbGw9IiNGRkZGRkYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" />
594
- <span>REM Converter</span>
595
- </div>
596
- */}
597
- </div>
598
- {/* <div className={"slider " + (isRemOpen ? 'sopen' : '')}>
599
- <div className="tools sliderHeader">
600
- <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDE3NC4yNDggMTc0LjI0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTc0LjI0OCAxNzQuMjQ4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnPgoJPHBhdGggZD0iTTE3My4xNDUsNzMuOTFjLTAuNDEzLTIuNzIyLTIuMjktNC45OTMtNC44ODEtNS45MTJsLTEzLjcyNy00Ljg4MWMtMC44MTItMi4zLTEuNzMzLTQuNTM2LTIuNzU0LTYuNjk5bDYuMjQ3LTEzLjE0NiAgIGMxLjE3OS0yLjQ3OSwwLjg5OS01LjQxMS0wLjcyOS03LjYyOGMtNS4yNjUtNy4xNjEtMTEuNTU2LTEzLjQ1Mi0xOC42OTgtMTguNjkzYy0yLjIxOS0xLjYyOS01LjE0MS0xLjkwNi03LjYyNS0wLjcyNCAgIGwtMTMuMTM4LDYuMjQyYy0yLjE2My0xLjAyMS00LjQwMi0xLjk0LTYuNzA0LTIuNzUybC00Ljg4My0xMy43MjljLTAuOTE5LTIuNTg2LTMuMTg0LTQuNDU4LTUuOS00Ljg3NiAgIGMtOS42NS0xLjQ4My0xNi43OTItMS40ODMtMjYuNDU3LDBjLTIuNzEzLDAuNDE4LTQuOTgxLDIuMjktNS45LDQuODc2bC00Ljg4MywxMy43MjljLTIuMzAyLDAuODEyLTQuNTQxLDEuNzMxLTYuNzAyLDIuNzUyICAgbC0xMy4xNDMtNi4yNDJjLTIuNDc5LTEuMTgxLTUuNDA2LTAuOTA0LTcuNjIzLDAuNzI0Yy03LjE0Miw1LjI0MS0xMy40MzMsMTEuNTMyLTE4LjY5OCwxOC42OTMgICBjLTEuNjI5LDIuMjE3LTEuOTA4LDUuMTQ4LTAuNzI5LDcuNjI4bDYuMjQ3LDEzLjE0NmMtMS4wMjEsMi4xNTktMS45NCw0LjQtMi43NTQsNi42OTlMNS45ODIsNjguMDAzICAgYy0yLjU4OSwwLjkxOS00LjQ2MywzLjE4OS00Ljg3OSw1LjkwN2MtMC43NDksNC45Mi0xLjA5OSw5LjExNS0xLjA5OSwxMy4yMTljMCw0LjA5OCwwLjM1LDguMjk5LDEuMDk5LDEzLjIxOSAgIGMwLjQxMywyLjcyMiwyLjI5LDQuOTkzLDQuODgxLDUuOTEybDEzLjcyNyw0Ljg4MWMwLjgxNCwyLjMwNCwxLjczNiw0LjU0MSwyLjc1NCw2LjcwNGwtNi4yNDcsMTMuMTQxICAgYy0xLjE3OSwyLjQ3OS0wLjg5OSw1LjQxMSwwLjcyNyw3LjYyM2M1LjI1OCw3LjE1NiwxMS41NDksMTMuNDQ3LDE4LjcsMTguNjk4YzIuMjE3LDEuNjI5LDUuMTQ0LDEuOTExLDcuNjI1LDAuNzI0bDEzLjEzOC02LjI0MiAgIGMyLjE2MywxLjAyMSw0LjQwMiwxLjk0LDYuNzA0LDIuNzUybDQuODgzLDEzLjcyOWMwLjkxOSwyLjU4NiwzLjE4NCw0LjQ1OCw1LjksNC44NzZjNC44MjgsMC43NDQsOS4xNTQsMS4xMDQsMTMuMjI4LDEuMTA0ICAgYzQuMDc0LDAsOC40MDEtMC4zNiwxMy4yMjgtMS4xMDRjMi43MTUtMC40MTgsNC45ODEtMi4yOSw1LjktNC44NzZsNC44ODMtMTMuNzI5YzIuMzAyLTAuODEyLDQuNTQxLTEuNzMxLDYuNzA0LTIuNzUyICAgbDEzLjEzOCw2LjI0MmMyLjQ4NCwxLjE4Niw1LjQxMSwwLjkwNCw3LjYyOC0wLjcyNGM3LjE1OS01LjI2LDEzLjQ1LTExLjU1MSwxOC42OTgtMTguNjk4YzEuNjI2LTIuMjEyLDEuOTA2LTUuMTQ0LDAuNzI3LTcuNjIzICAgbC02LjI0Ny0xMy4xNDFjMS4wMjEtMi4xNjMsMS45NDItNC40MDUsMi43NTQtNi43MDRsMTMuNzI3LTQuODgxYzIuNTkxLTAuOTE5LDQuNDY4LTMuMTg5LDQuODgxLTUuOTEyICAgYzAuNzQ5LTQuOTIsMS4wOTktOS4xMiwxLjA5OS0xMy4yMTlTMTczLjg5NCw3OC44MjksMTczLjE0NSw3My45MXogTTE1OC45NDksOTMuNzJsLTEyLjg3OCw0LjU4ICAgYy0yLjI1MSwwLjc5Ny0zLjk4MiwyLjYyNS00LjY2LDQuOTJjLTEuMTUsMy44ODktMi42NjQsNy41NjktNC41MDQsMTAuOTQzYy0xLjE0MiwyLjEtMS4yMTMsNC42MTktMC4xODcsNi43NzdsNS44NDEsMTIuMjg1ICAgYy0yLjgyMiwzLjM4OS01Ljk0Myw2LjUxNS05LjMzNyw5LjMzNGwtMTIuMjgzLTUuODM0Yy0yLjE2MS0xLjAzNi00LjY3Mi0wLjk1My02Ljc3NSwwLjE4NWMtMy4zNzksMS44MzgtNy4wNjEsMy4zNS0xMC45NTMsNC41MDIgICBjLTIuMjksMC42NzYtNC4xMTgsMi40MDYtNC45MTcsNC42NTdsLTQuNTgyLDEyLjg4M2MtNC42NzcsMC40NzYtOC41MDMsMC40NzYtMTMuMTgsMGwtNC41ODItMTIuODgzICAgYy0wLjgtMi4yNDYtMi42MjgtMy45ODItNC45MTctNC42NTdjLTMuODk0LTEuMTUyLTcuNTc5LTIuNjY0LTEwLjk1My00LjUwMmMtMi4xMDMtMS4xNDctNC42MTktMS4yMi02Ljc3NS0wLjE4NWwtMTIuMjgzLDUuODM5ICAgYy0zLjM5MS0yLjgyNS02LjUxMi01Ljk0Ni05LjMzNy05LjMzOWw1Ljg0MS0xMi4yODVjMS4wMjYtMi4xNTksMC45NTUtNC42NzctMC4xODctNi43NzdjLTEuODM1LTMuMzY0LTMuMzUtNy4wNDktNC41MDQtMTAuOTQ4ICAgYy0wLjY3OC0yLjI5LTIuNDExLTQuMTE4LTQuNjYtNC45MTVsLTEyLjg3OC00LjU4Yy0wLjI0My0yLjM0My0wLjM2LTQuNTAyLTAuMzYtNi41OTJzMC4xMTctNC4yNDQsMC4zNi02LjU4N2wxMi44ODEtNC41ODQgICBjMi4yNDgtMC43OTcsMy45NzktMi42MjUsNC42NTctNC45MTVjMS4xNTItMy44ODksMi42NjctNy41NzQsNC41MDQtMTAuOTUzYzEuMTQyLTIuMDk1LDEuMjEzLTQuNjE5LDAuMTg3LTYuNzcybC01Ljg0MS0xMi4yODUgICBjMi44MjctMy4zOTMsNS45NDgtNi41MTksOS4zMzctOS4zMzlsMTIuMjg4LDUuODM5YzIuMTUxLDEuMDM2LDQuNjc3LDAuOTUzLDYuNzc1LTAuMTg1YzMuMzcyLTEuODM4LDcuMDU0LTMuMzUsMTAuOTQ4LTQuNTAyICAgYzIuMjktMC42NzYsNC4xMTgtMi40MTEsNC45MTctNC42NTdsNC41ODItMTIuODgzYzQuNjMzLTAuNDgxLDguNDY2LTAuNDgxLDEzLjE4LDBsNC41ODIsMTIuODgzICAgYzAuOCwyLjI0NiwyLjYyOCwzLjk4Miw0LjkxNyw0LjY1N2MzLjg5NCwxLjE1Miw3LjU3OSwyLjY2NCwxMC45NTMsNC41MDJjMi4xMDMsMS4xNDcsNC42MTQsMS4yMiw2Ljc3NSwwLjE4NWwxMi4yODMtNS44MzkgICBjMy4zODksMi44Miw2LjUxLDUuOTQ2LDkuMzM3LDkuMzM5bC01Ljg0MSwxMi4yODVjLTEuMDI2LDIuMTU0LTAuOTU1LDQuNjc3LDAuMTg3LDYuNzcyYzEuODQzLDMuMzg5LDMuMzU3LDcuMDY5LDQuNTA0LDEwLjk0OCAgIGMwLjY3OCwyLjI5NSwyLjQwOSw0LjEyMyw0LjY2LDQuOTJsMTIuODc4LDQuNThjMC4yNDMsMi4zNDMsMC4zNiw0LjUwMiwwLjM2LDYuNTkyUzE1OS4xOTIsOTEuMzc3LDE1OC45NDksOTMuNzJ6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8cGF0aCBkPSJNODcuMTI0LDUwLjgwMmMtMTkuMDYyLDAtMzQuNTcxLDE1LjUwOC0zNC41NzEsMzQuNTcxczE1LjUwOCwzNC41NzEsMzQuNTcxLDM0LjU3MXMzNC41NzEtMTUuNTA4LDM0LjU3MS0zNC41NzEgICBTMTA2LjE4Niw1MC44MDIsODcuMTI0LDUwLjgwMnogTTg3LjEyNCwxMDUuMDA5Yy0xMC44MjcsMC0xOS42MzYtOC44MDktMTkuNjM2LTE5LjYzNnM4LjgwOS0xOS42MzYsMTkuNjM2LTE5LjYzNiAgIHMxOS42MzYsOC44MDksMTkuNjM2LDE5LjYzNlM5Ny45NTEsMTA1LjAwOSw4Ny4xMjQsMTA1LjAwOXoiIGZpbGw9IiNGRkZGRkYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" />
601
- <span className="sliderTitle">REM Converter</span>
602
- <span className="searchClose" onClick={this.toggleRemContainer}>
603
- <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIxMi45ODIgMjEyLjk4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjEyLjk4MiAyMTIuOTgyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnIGlkPSJDbG9zZSI+Cgk8cGF0aCBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7IiBkPSJNMTMxLjgwNCwxMDYuNDkxbDc1LjkzNi03NS45MzZjNi45OS02Ljk5LDYuOTktMTguMzIzLDAtMjUuMzEyICAgYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBsLTc1LjkzNyw3NS45MzdMMzAuNTU0LDUuMjQyYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBjLTYuOTg5LDYuOTktNi45ODksMTguMzIzLDAsMjUuMzEyICAgbDc1LjkzNyw3NS45MzZMNS4yNDIsMTgyLjQyN2MtNi45ODksNi45OS02Ljk4OSwxOC4zMjMsMCwyNS4zMTJjNi45OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwbDc1LjkzNy03NS45MzdsNzUuOTM3LDc1LjkzNyAgIGM2Ljk4OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwYzYuOTktNi45OSw2Ljk5LTE4LjMyMiwwLTI1LjMxMkwxMzEuODA0LDEwNi40OTF6IiBmaWxsPSIjRkZGRkZGIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==" />
604
- </span>
605
- </div>
606
- <div className="sliderFormContainer">
607
- <div className="sliderInputContainer">
608
- <label className="sliderInputTitle">Base font-size (in px)</label>
609
- <input type="number" className="sliderInput" min="1" placeholder="Base font-size (in px)" value={rootSize} onChange={this.onChangeBase} />
610
- </div>
611
- <div className="sliderInputContainer">
612
- <label className="sliderInputTitle">PX size to convert</label>
613
- <input type="number" className="sliderInput" placeholder="PX size to convert" value={pixelSize} onChange={this.onChangePixel} />
614
- </div>
615
- <div className="sliderInputContainer">
616
- <label className="sliderInputTitle">Result</label>
617
- <div className="sliderResult">
618
- <input type="text" className="sliderInput" placeholder="Result" value={resultRem} onChange={this.onChangeRem} />
619
- <span id="remoutput" className="copyTxtHiden">{resultRem}</span>
620
- <span className="copyResult" onClick={selectText.bind(this, 'remoutput')}>
621
- <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC4zIDQ4OC4zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0ODguMyA0ODguMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTMxNC4yNSw4NS40aC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42djMyNS43YzAsMjEuMywxNy4zLDM4LjYsMzguNiwzOC42aDIyN2MyMS4zLDAsMzguNi0xNy4zLDM4LjYtMzguNlYxMjQgICAgQzM1Mi43NSwxMDIuNywzMzUuNDUsODUuNCwzMTQuMjUsODUuNHogTTMyNS43NSw0NDkuNmMwLDYuNC01LjIsMTEuNi0xMS42LDExLjZoLTIyN2MtNi40LDAtMTEuNi01LjItMTEuNi0xMS42VjEyNCAgICBjMC02LjQsNS4yLTExLjYsMTEuNi0xMS42aDIyN2M2LjQsMCwxMS42LDUuMiwxMS42LDExLjZWNDQ5LjZ6IiBmaWxsPSIjRkZGRkZGIi8+CgkJPHBhdGggZD0iTTQwMS4wNSwwaC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42YzAsNy41LDYsMTMuNSwxMy41LDEzLjVzMTMuNS02LDEzLjUtMTMuNWMwLTYuNCw1LjItMTEuNiwxMS42LTExLjZoMjI3ICAgIGM2LjQsMCwxMS42LDUuMiwxMS42LDExLjZ2MzI1LjdjMCw2LjQtNS4yLDExLjYtMTEuNiwxMS42Yy03LjUsMC0xMy41LDYtMTMuNSwxMy41czYsMTMuNSwxMy41LDEzLjVjMjEuMywwLDM4LjYtMTcuMywzOC42LTM4LjYgICAgVjM4LjZDNDM5LjY1LDE3LjMsNDIyLjM1LDAsNDAxLjA1LDB6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==" />
622
- </span>
623
- </div>
624
- </div>
625
- </div>
626
- </div>
627
- */}
628
- </div>
629
- </div>
630
- </div>
631
- <div className="flexgrow flexbasis">
632
- <div id="container" className="dflex flexcolumn flexbasis">
633
- {
634
- infoTab == 'dashboard' ?
635
- <div className='dflex flexcolumn'>
636
- <div className="flexshrink cheader">
637
- <div className="dflex flexrow flexbasis alignVertical">
638
- <div className="flexshrink">
639
- <h1 className="cheadertitle">{'Dashboard'}</h1>
640
- </div>
641
- <div className='flexgrow flexbasis infoTabs dflex'>
642
- {
643
- dashboardList.map((item, i) => {
644
- return (
645
- <span key={i} onClick={this.compList.bind(this, item.name)} className={this.state.compList == item.name ? 'dotted infoactive' : 'dotted'}>
646
- {item.name}
647
- </span>
648
- )
649
- })
650
- }
651
- </div>
652
- </div>
653
- </div>
654
- <div className='flexgrow scrollY'>
655
- {
656
- dashboardList.map((item, i) => {
657
- if (this.state.compList == item.name) {
658
- return (
659
- item.componentList.length > 0 ? <ul key={i}>
660
- {
661
- (item.componentList).map((component, val) => {
662
- if (component !== undefined) {
663
- return (<li key={val} className="compListItem">{component}</li>)
664
- }
665
- })
666
- }
667
- </ul> :
668
- <div className='dflex alignHorizontal alignVertical flexcolumn'>
669
- <span className='smileIcon'>
670
- <svg className='svg'>
671
- <use xlinkHref='#smileIcon'></use>
672
- </svg>
673
- </span>
674
- <div>{'Sorry! there is no ' + this.state.compList + ' components'}</div>
675
- </div>
676
- )
677
- }
678
- })
679
- }
680
- </div>
681
- </div>
682
- : null
683
- }
684
- {
685
- compName ?
686
- <div className="flexshrink cheader">
687
- <div className="dflex flexrow flexbasis alignVertical">
688
- <div className="flexshrink"><h1 className="cheadertitle">{compName && compName.split('__')[0]}</h1></div>
689
- <div className='flexgrow flexbasis infoTabs dflex'>
690
- <span onClick={this.onTabinfo.bind(this, 'component')} className={infoTab == 'component' ? 'dotted infoactive' : 'dotted'}>Component view</span>
691
- <span onClick={this.onTabinfo.bind(this, 'proptypes')} className={infoTab == 'proptypes' ? 'dotted infoactive' : 'dotted'}>PropTypes</span>
692
- <span onClick={this.onTabinfo.bind(this, 'code')} className={infoTab == 'code' ? 'dotted infoactive' : 'dotted'}>Docs Code</span>
693
- {
694
- /*
695
- <span onClick={this.onTabinfo.bind(this,'src')} className={infoTab == 'src' ? 'dotted infoactive' : 'dotted'}>Source</span>
696
- <span onClick={this.onTabinfo.bind(this,'visual')} className={infoTab == 'visual' ? 'dotted infoactive' : 'dotted'}>Visual Design</span>
697
- */
698
- }
699
- <span onClick={this.onTabinfo.bind(this, 'references')} className={infoTab == 'references' ? 'dotted infoactive' : 'dotted'}>References</span>
700
- </div>
701
- </div>
702
- </div>
703
- : null
704
- }
705
-
706
- <div className="flexgrow flexbasis cfooter ">
707
- <div className="dflex flexcolumn flexbasis">
708
- <div className="flexgrow flexbasis ccontent">
709
- {
710
- infoTab == 'code' ?
711
- <CodeView compName={compName} src={window.componentList ? window.componentList[compName].docs.source : Component[compName].docs.source} />
712
- : null
713
- }
714
- {
715
- infoTab == 'src' ?
716
- <CodeView compName={compName + 'src'} src={window.componentList ? window.componentList[propComName].source : Component[propComName].source} />
717
- : null
718
- }
719
- {
720
- infoTab == 'component' &&
721
- <div className='dflex flexcolumn'>
722
- <div className={'flexgrow flexshrink flexbasis toolarea'}>
723
- <section id="resize" style={{ "width": ((frameWidth) + 'px') }} className={"dflex flexcolumn flexbasis iframeSection" + " " + (frameWidth < 481 ? 'section' : '')}>
724
- <span className="loadingText" id='loadingText'>
725
- <div className="lds-ripple">
726
- <div></div>
727
- <div></div>
728
- </div>
729
- </span>
730
- <iframe
731
- id="componentIframe"
732
- className="iframe"
733
- src={'/docs/component.html' + location.hash}
734
- mdata={mdata}
735
- />
736
- </section>
737
- </div>
738
- <div className={'flexshrink toolOptions'}>
739
- <div className={'dflex flexrow alignVertical alignHorizontal'}>
740
-
741
- <div className={'responsive offSelection'}>
742
- <span className={"responsiveOption iconOption"} onClick={this.reloadFrame}>
743
- <svg className='svg'>
744
- <use xlinkHref='#reload'></use>
745
- </svg>
746
- </span>
747
- <a className={'responsiveOption iconOption'} href={'/docs/component.html' + location.hash} target="_blank" >
748
- <svg className='svg'>
749
- <use xlinkHref='#newTab'></use>
750
- </svg>
751
- </a>
752
- <span className={'responsiveOption iconOption' + ' ' + (this.state.isRTL ? 'activeOption transform' : '')} onClick={this.onRtlView}>
753
- <svg className='svg'>
754
- <use xlinkHref='#RTL'></use>
755
- </svg>
756
- </span>
757
- <span className={'responsiveOption iconOption textSize' + ' ' + (this.state.isRem ? 'activeOption' : '')} onClick={this.onREMView} >
758
- <svg className='svg'>
759
- <use xlinkHref='#rem'></use>
760
- </svg>
761
- </span>
762
- <span className={'responsiveOption iconOption textSize' + ' ' + (this.state.isEditMode ? 'activeOption' : '')} onClick={this.toggleEditMode} >
763
- <svg className='svg'>
764
- <use xlinkHref='#pencil'></use>
765
- </svg>
766
- </span>
767
- <span className={'responsiveOption iconOption fullScreen' + ' ' + (this.state.isMenuClose ? 'activeOption' : '')} onClick={this.fullView} >
768
- <svg className='svg'>
769
- <use xlinkHref='#fullScreen'></use>
770
- </svg>
771
- </span>
772
- </div>
773
- <div className={'dflex alignVertical alignHorizontal range'}>
774
- <input min='1' max='12' type='range' defaultValue='9' step='1' id="myRange" onChange={this.iframeSize} className='rangeInput' />
775
- <span className='tooltip'>{this.state.device}</span>
776
- {
777
- this.state.windowSize ?
778
- <React.Fragment>
779
- <span className='window'>{this.state.windowSize.width}</span>
780
- <span className='tooltipVal'>x</span>
781
- <span className='window'>{this.state.windowSize.height}</span>
782
- </React.Fragment> : null
783
- }
784
- </div>
785
- </div>
786
- </div>
787
- </div>
788
- }
789
- {
790
- infoTab === 'proptypes' ? (
791
- propsObj.length ?
792
- (
793
- currentCompProps.map((result, i) => {
794
- const currentDefaultProps = defaultProps[i] || { "undefined": '' };
795
- const _defaultProps = Object.keys(currentDefaultProps)[0].split('_')[0];
796
- defaultPropsArray.push(_defaultProps);
797
- const compName = Object.keys(result)[0];
798
- const _propTypes = Object.keys(result)[0].split('_')[0];
799
- const _propTypesToDefaultProps = _propTypes + '_defaultProps';
800
- const propInfo = result[compName];
801
- _propTypesToDefaultPropsArray.push(defaultPropsArray.includes(_propTypes) ? _propTypesToDefaultProps : "undefined");
802
-
803
- const currentPropDes = currentCompPropsDescription[i] || { "undefined": '' };
804
- const _propDes = Object.keys(currentPropDes)[0].split('_')[0];
805
- propsDesArray.push(_propDes);
806
- const _propTypesToPropsDes = _propTypes + '_propsDescription';
807
- _propTypesToPropsDesArray.push(propsDesArray.includes(_propTypes) ? _propTypesToPropsDes : "undefined");
808
-
809
- return (
810
- <div className='propsTableContainer'>
811
- <div className="compName">{compName.split('_')[0]}</div>
812
- <div className="propsTable" key={compName}>
813
- <div className="tableHeader">
814
- <span className="brR">PropsName</span>
815
- <span className="brR">Type</span>
816
- <span className="brR">isRequired</span>
817
- <span className="brR">Default Props</span>
818
- {
819
- currentCompPropsDescription ? <span className="brR">Props Description</span> : null
820
- }
821
- </div>
822
- {Object.keys(propInfo).sort().map((value, j) => (
823
- <div
824
- className={'tableHeader'}
825
- key={`${i}-${j}`}
826
- >
827
- <span>
828
- <div >{value}</div>
829
- </span>
830
- <span>
831
- {(() => {
832
- const hookInfo = propInfo[value];
833
- const hookType = hookInfo && hookInfo.hookType;
834
-
835
- if (!hookType) return null;
836
-
837
- let typeTagClass = 'typeTag';
838
-
839
- if (hookType === 'string') {
840
- typeTagClass += ' stringType';
841
- } else if (hookType === 'bool') {
842
- typeTagClass += ' boolType';
843
- } else if (hookType === 'func') {
844
- typeTagClass += ' funcType';
845
- } else if (hookType.includes('union') || hookType.includes('enum')) {
846
- typeTagClass += ' oneOfType';
847
- } else if (hookType === 'object') {
848
- typeTagClass += ' objectType';
849
- } else if (hookType === 'element') {
850
- typeTagClass += ' elementType';
851
- } else if (hookType === 'array') {
852
- typeTagClass += ' arrayType';
853
- } else if (hookType === 'shape') {
854
- typeTagClass += ' shapeType';
855
- } else if (hookType === 'number') {
856
- typeTagClass += ' numberType';
857
- }
858
- return <div className={typeTagClass}>{this.getHookType(propInfo, value)}</div>;
859
- })()}
860
- </span>
861
- <span>
862
- {
863
- propInfo[value] && propInfo[value].isRequired ? (
864
- <input type="checkbox" disabled></input>
865
- ) : (
866
- <input type="checkbox" onclick="return false" checked></input>
867
- )
868
- }
869
- </span>
870
- <span>
871
- <div>
872
- {_propTypesToDefaultPropsArray[i] !== 'undefined'
873
- ? JSON.stringify(
874
- currentDefaultPropsArray.find(
875
- (element) => Object.keys(element)[0] === _propTypesToDefaultPropsArray[i]
876
- )[_propTypesToDefaultProps][value]
877
- ) || '-'
878
- : ''}
879
- </div>
880
- </span>
881
- {
882
- currentCompPropsDescription ? (
883
- <span>
884
- <div>
885
- {
886
- _propTypesToPropsDesArray[i] !== 'undefined'
887
- ? currentCompPropsDescription.find(
888
- (element) => Object.keys(element)[0] === _propTypesToPropsDesArray[i]
889
- )[_propTypesToPropsDes][value] || '-'
890
- : '-'
891
- }
892
- </div>
893
- </span>
894
- ) : null
895
- }
896
- </div>
897
- ))}
898
- </div>
899
- </div>
900
- );
901
- })
902
- ) : (
903
- <div className='propsTableContainer'>
904
- <div className="compName">{compName.split('_')[1].split('__')[0]}</div>
905
- <div className="propsTable">
906
- <div className="tableHeader">
907
- <span className="brR">PropsName</span>
908
- <span className="brR">Type</span>
909
- <span className="brR">isRequired</span>
910
- <span className="brR">Default Props</span>
911
- {
912
- Object.keys(currentCompPropsDescription).length > 0 ? <span className="brR">Props Description</span> : null
913
- }
914
- </div>
915
- {
916
- Object.keys(currentCompProps).sort().map((result, i) => {
917
- return (
918
- <div
919
- className={'tableHeader'}
920
- key={`${i}`}
921
- >
922
- <span>
923
- <div>{result}</div>
924
- </span>
925
- <span>
926
- {(() => {
927
- const hookInfo = propsObj[result];
928
- const hookType = hookInfo && hookInfo.hookType;
929
-
930
- if (!hookType) return null;
931
-
932
- let typeTagClass = 'typeTag';
933
-
934
- if (hookType === 'string') {
935
- typeTagClass += ' stringType';
936
- } else if (hookType === 'bool') {
937
- typeTagClass += ' boolType';
938
- } else if (hookType === 'func') {
939
- typeTagClass += ' funcType';
940
- } else if (hookType.includes('union') || hookType.includes('enum')) {
941
- typeTagClass += ' oneOfType';
942
- } else if (hookType === 'object') {
943
- typeTagClass += ' objectType';
944
- } else if (hookType === 'element') {
945
- typeTagClass += ' elementType';
946
- } else if (hookType === 'array') {
947
- typeTagClass += ' arrayType';
948
- } else if (hookType === 'shape') {
949
- typeTagClass += ' shapeType';
950
- } else if (hookType === 'number') {
951
- typeTagClass += ' numberType';
952
- }
953
- return <div className={typeTagClass}>{this.getHookType(propsObj, result)}</div>;
954
- })()}
955
- </span>
956
- <span>
957
- {
958
- propsObj[result] && propsObj[result].isRequired ? (
959
- <input type="checkbox" disabled></input>
960
- ) : (
961
- <input type="checkbox" onclick="return false" checked></input>
962
- )
963
- }
964
- </span>
965
- <span>
966
- <div>{JSON.stringify(defaultProps[result]) || '-'}</div>
967
- </span>
968
- {
969
- Object.keys(currentCompPropsDescription).length > 0 ? (
970
- <span>
971
- <div>{currentCompPropsDescription[result] || '-'}</div>
972
- </span>
973
- ) : null
974
- }
975
- </div>
976
- );
977
- })
978
-
979
- }
980
- </div>
981
- </div>
982
- )
983
- ) : null
984
- }
985
- {
986
- infoTab == 'references' ?
987
- <div className="referContainer">
988
- <div className='refsBy'>ReferencedBy :</div>
989
- <ul>
990
- {
991
- compName ?
992
- compName.indexOf('__') > -1 ?
993
- mdata[compName.substring(0, compName.indexOf('_'))] &&
994
- mdata[compName.substring(0, compName.indexOf('_'))].referencedby.map((val, i) => {
995
- return (
996
- <li key={i} className='refsLin'>
997
- <a className="link" href={'#' + val}>
998
- {val}
999
- </a>
1000
- </li>
1001
- );
1002
- })
1003
- : mdata[compName].referencedby.map((val, i) => {
1004
- return (
1005
- <li key={i} className='refsLin'>
1006
- <a className="link" href={'#' + val}>
1007
- {val}
1008
- </a>
1009
- </li>
1010
- );
1011
- })
1012
- : null
1013
- }
1014
- </ul>
1015
- <div className='refsBy'>References : </div>
1016
- <ul>
1017
- {
1018
- compName ? compName.indexOf('__') > -1
1019
- ? mdata[
1020
- compName.substring(0, compName.indexOf('_'))
1021
- ] &&
1022
- mdata[
1023
- compName.substring(0, compName.indexOf('_'))
1024
- ].references.map((val, i) => {
1025
- return (
1026
- <li key={i} className='refsLin'>
1027
- <a className="link" href={'#' + val}>
1028
- {val}
1029
- </a>
1030
- </li>
1031
- );
1032
- })
1033
- : mdata[compName].references.map((val, i) => {
1034
- return (
1035
- <li key={i} className='refsLin'>
1036
- <a className="link" href={'#' + val}>
1037
- {val}
1038
- </a>
1039
- </li>
1040
- );
1041
- })
1042
- : null
1043
- }
1044
- </ul>
1045
- </div>
1046
- : null
1047
- }
1048
- {
1049
- /*infoTab == 'visual' ?
1050
- <div>
1051
- {
1052
- Component[propComName] &&
1053
- Component[propComName].docs &&
1054
- Component[propComName].docs.images &&
1055
- Component[propComName].docs.images.map(image => {
1056
- return (
1057
- <div className="psdContainer">
1058
- <div className="imageContainer">
1059
- <img className="psdImage" src={image.view} />
1060
- </div>
1061
- <div>
1062
- <a className="psdLink" href={image.psd} target="_blank" download>
1063
- Download PSD
1064
- </a>
1065
- </div>
1066
- <div>
1067
- <a className="psdLink" href={image.view} target="_blank" download>
1068
- Download Image
1069
- </a>
1070
- </div>
1071
- </div>
1072
- );
1073
- })
1074
- }
1075
- </div>
1076
- : null */
1077
- }
1078
- </div>
1079
- </div>
1080
- </div>
1081
- </div>
1082
- </div>
1083
- </main>
1084
- );
1085
- }
1086
- }
1087
- class Search extends React.Component {
1088
- render() {
1089
- return (
1090
- <div className="searchContainer">
1091
- <input
1092
- type="text"
1093
- onChange={this.props.onChange}
1094
- placeholder="Search"
1095
- className="inputSearch" value={this.props.value}
1096
- />
1097
- {this.props.value.length >= 1 &&
1098
- <span className="searchClose" onClick={this.props.onClear}><img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIxMi45ODIgMjEyLjk4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjEyLjk4MiAyMTIuOTgyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnIGlkPSJDbG9zZSI+Cgk8cGF0aCBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7IiBkPSJNMTMxLjgwNCwxMDYuNDkxbDc1LjkzNi03NS45MzZjNi45OS02Ljk5LDYuOTktMTguMzIzLDAtMjUuMzEyICAgYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBsLTc1LjkzNyw3NS45MzdMMzAuNTU0LDUuMjQyYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBjLTYuOTg5LDYuOTktNi45ODksMTguMzIzLDAsMjUuMzEyICAgbDc1LjkzNyw3NS45MzZMNS4yNDIsMTgyLjQyN2MtNi45ODksNi45OS02Ljk4OSwxOC4zMjMsMCwyNS4zMTJjNi45OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwbDc1LjkzNy03NS45MzdsNzUuOTM3LDc1LjkzNyAgIGM2Ljk4OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwYzYuOTktNi45OSw2Ljk5LTE4LjMyMiwwLTI1LjMxMkwxMzEuODA0LDEwNi40OTF6IiBmaWxsPSIjRkZGRkZGIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==" /></span>}
1099
- </div>
1100
- );
1101
- }
1102
- }
1103
-
1104
- class ComponentList extends React.Component {
1105
- constructor(props) {
1106
- super(props);
1107
- this.state = {
1108
- toggle: false
1109
- };
1110
- }
1111
- componentDidMount() {
1112
- let { type, viewGroup } = this.props;
1113
- let element = document.getElementById(type);
1114
- viewGroup == type && element ?
1115
- element.scrollIntoView(true) && element.scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest" })
1116
- : null
1117
- }
1118
-
1119
- render() {
1120
- const { components, type, toggleGroup, viewGroup } = this.props;
1121
- let classNameTab = type == viewGroup ? " selected " : '';
1122
-
1123
- return (
1124
- <div data-title={type}>
1125
- {
1126
- components.length > 0 && <div className={"listItem dflex flexrow flexbasis alignVertical offSelection " + classNameTab} onClick={toggleGroup.bind(this, type)} id={type}>
1127
- <i className={"flexshrink listIcon"}>
1128
- <svg className='svg'>
1129
- <use xlinkHref='#folder'></use>
1130
- </svg>
1131
- </i>
1132
- <span className="dotted flexgrow flexbasis listTitle">{type}</span>
1133
- {
1134
- components.length > 0 && <i className={"flexshrink listCount"}>{(components.filter(function (el) { return el.toLowerCase().indexOf('__') > -1 }).length)}</i>
1135
- }
1136
- </div>
1137
- }
1138
- <div className={viewGroup == type ? 'activeComponent' : 'hide'}>
1139
- {
1140
- components.map((component, i) => {
1141
- let docsComp = component.search('__');
1142
- return (
1143
- <div className={((docsComp == -1) ? "componentMain" : "componentDocs")} key={'component' + i} >
1144
- <a
1145
- href={docsComp == -1 && type != 'Global' && type != 'Page' ? 'javascript:void(0);' : '#' + component}
1146
- className={"dflex flexrow flexbasis alignVertical offSelection " + (this.props.selectedComponent == '#' + component ? 'active' : '')} >
1147
- <i className={"listIcon"}>
1148
- <svg className='svg'>
1149
- <use xlinkHref='#file'></use>
1150
- </svg>
1151
- </i>
1152
- <span className="dotted flexgrow flexbasis listTitle"> {docsComp == -1 ? component : component.split('__')[1]}</span>
1153
- {(components.filter(function (el) { return el.indexOf(component + '__') > -1 }).length) > 0 && (docsComp == -1) && <i className={"flexshrink listCount subCount"}>{(components.filter(function (el) { return el.indexOf(component + '__') > -1 }).length)}</i>}
1154
- </a>
1155
- </div>
1156
- );
1157
- })}
1158
- </div>
1159
- </div>
1160
- );
1161
- }
1162
- }
1163
-
1164
- class CodeView extends React.Component {
1165
- constructor(props) {
1166
- super(props);
1167
-
1168
- }
1169
- componentDidMount() {
1170
- hljs.highlightAll();
1171
- }
1172
-
1173
- render() {
1174
- let { src, compName } = this.props
1175
- return (
1176
- <pre className="CodeTag">
1177
- <code class="javascript hljs language-javascript" id="code-block">
1178
- {src}
1179
- </code>
1180
- </pre>
1181
- );
1182
- }
1183
- }
1184
- var user = {
1185
- componentObj: {},
1186
- componentList: {},
1187
- dupCompList: [],
1188
- objList: function (fName, gName, key, comp) {
1189
- if (this.componentList[key]) {
1190
- this.componentList[key] = comp;
1191
- this.dupCompList.push(key)
1192
- }
1193
- else {
1194
- this.componentList[key] = comp;
1195
- }
1196
- if (gName) {
1197
- if (!this.componentObj[fName]) {
1198
- this.componentObj[fName] = {}
1199
- }
1200
- if (!this.componentObj[fName][gName]) {
1201
- this.componentObj[fName][gName] = [];
1202
- this.componentObj[fName][gName].push(key)
1203
- }
1204
- else {
1205
- this.componentObj[fName][gName].push(key)
1206
- }
1207
- }
1208
- return { componentObj: this.componentObj, componentList: this.componentList }
1209
- },
1210
- renderDoc: function (compOBJ, dupCompList) {
1211
- return (
1212
- ReactDOM.render(
1213
- <Doc
1214
- components={Component}
1215
- componentObj={compOBJ}
1216
- duplicates={dupCompList}
1217
- />,
1218
- react
1219
- )
1220
- )
1221
- }
1222
- }
1223
- var compGroupObj = function (comp, key, compGroup) {
1224
- if (comp == 'React' || comp == 'ReactDOM' || comp == 'renderToStaticMarkup') {
1225
- return;
1226
- }
1227
- else if (comp == '_provider') {
1228
- return user.objList(null, null, comp, compGroup[comp])
1229
- }
1230
- else {
1231
- if (compGroup[comp].docs && compGroup[comp].docs.componentGroup) {
1232
- let groupName = compGroup[comp].docs.componentGroup;
1233
- let folderName = compGroup[comp].docs.folderName || "General";
1234
- if (comp == 'default') {
1235
- return user.objList(folderName, groupName, key, compGroup[comp])
1236
- }
1237
- else {
1238
- return user.objList(folderName, groupName, comp, compGroup[comp])
1239
- }
1240
- }
1241
- }
1242
- }
1243
- Promise.all(Object.keys(Component).map((key) => {
1244
- let componentKey = Component[key];
1245
- if (key == 'React' || key == 'ReactDOM' || key == 'renderToStaticMarkup') {
1246
- return;
1247
- }
1248
- if (key == '_provider') {
1249
- return compGroupObj(key, null, Component)
1250
- }
1251
- try {
1252
- return (
1253
- componentKey && componentKey.then((res) => {
1254
- let compList;
1255
- Object.keys(res).forEach((comp) => {
1256
- let compGroup = res[comp];
1257
- Object.keys(compGroup).forEach((comps) => {
1258
- compGroupObj(comps, key, compGroup)
1259
- })
1260
- })
1261
- })
1262
- )
1263
- } catch (error) {
1264
- compGroupObj(key, null, Component)
1265
- }
1266
- })).then(() => {
1267
- window.componentList = user.componentList
1268
- user.renderDoc(user.componentObj, user.dupCompList)
1269
- })
1270
- };
1271
- var onLoader = function () {
1272
- // Minimum resizable area
1273
- var minWidth = 60;
1274
- var minHeight = 40;
1275
-
1276
- // Thresholds
1277
- var FULLSCREEN_MARGINS = -10;
1278
- var MARGINS = 15;
1279
-
1280
- // End of what's configurable.
1281
- var clicked = null;
1282
- var onRightEdge, onBottomEdge, onLeftEdge, onTopEdge;
1283
-
1284
- var rightScreenEdge, bottomScreenEdge;
1285
-
1286
- var preSnapped;
1287
-
1288
- var b, x, y;
1289
-
1290
- var redraw = false;
1291
-
1292
- var pane = document.getElementById('resize');
1293
- var ghostpane = document.getElementById('ghostpane');
1294
- function setBounds(element, x, y, w, h) {
1295
- element.style.left = x + 'px';
1296
- element.style.top = y + 'px';
1297
- element.style.width = w + 'px';
1298
- element.style.height = h + 'px';
1299
- }
1300
-
1301
- function hintHide() {
1302
- //setBounds(ghostpane, b.left, b.top, b.width, b.height);
1303
- //ghostpane.style.opacity = 0;
1304
- // var b = ghostpane.getBoundingClientRect();
1305
- // ghostpane.style.top = b.top + b.height / 2;
1306
- // ghostpane.style.left = b.left + b.width / 2;
1307
- // ghostpane.style.width = 0;
1308
- // ghostpane.style.height = 0;
1309
- }
1310
-
1311
- // Mouse events
1312
- pane && pane.addEventListener('mousedown', onMouseDown);
1313
- pane && document.addEventListener('mousemove', onMove);
1314
- pane && document.addEventListener('mouseup', onUp);
1315
-
1316
- // Touch events
1317
- pane && pane.addEventListener('touchstart', onTouchDown);
1318
- pane && document.addEventListener('touchmove', onTouchMove);
1319
- pane && document.addEventListener('touchend', onTouchEnd);
1320
-
1321
- function onTouchDown(e) {
1322
- onDown(e.touches[0]);
1323
- e.preventDefault();
1324
- }
1325
-
1326
- function onTouchMove(e) {
1327
- onMove(e.touches[0]);
1328
- }
1329
-
1330
- function onTouchEnd(e) {
1331
- if (e.touches.length == 0) onUp(e.changedTouches[0]);
1332
- }
1333
-
1334
- function onMouseDown(e) {
1335
- onDown(e);
1336
- e.preventDefault();
1337
- }
1338
-
1339
- function onDown(e) {
1340
- calc(e);
1341
-
1342
- var isResizing = onRightEdge || onBottomEdge || onTopEdge || onLeftEdge;
1343
-
1344
- clicked = {
1345
- x: x,
1346
- y: y,
1347
- cx: e.clientX,
1348
- cy: e.clientY,
1349
- w: b.width,
1350
- h: b.height,
1351
- isResizing: isResizing,
1352
- isMoving: !isResizing && canMove(),
1353
- onTopEdge: onTopEdge,
1354
- onLeftEdge: onLeftEdge,
1355
- onRightEdge: onRightEdge,
1356
- onBottomEdge: onBottomEdge
1357
- };
1358
- }
1359
-
1360
- function canMove() {
1361
- return x > 0 && x < b.width && y > 0 && y < b.height && y < 30;
1362
- }
1363
-
1364
- function calc(e) {
1365
- b = pane.getBoundingClientRect();
1366
- x = e.clientX - b.left;
1367
- y = e.clientY - b.top;
1368
-
1369
- onTopEdge = y < MARGINS;
1370
- onLeftEdge = x < MARGINS;
1371
- onRightEdge = x >= b.width - MARGINS;
1372
- onBottomEdge = y >= b.height - MARGINS;
1373
-
1374
- rightScreenEdge = window.innerWidth - MARGINS;
1375
- bottomScreenEdge = window.innerHeight - MARGINS;
1376
- }
1377
-
1378
- var e;
1379
-
1380
- function onMove(ee) {
1381
- calc(ee);
1382
-
1383
- e = ee;
1384
-
1385
- redraw = true;
1386
- }
1387
-
1388
- function animate() {
1389
- requestAnimationFrame(animate);
1390
-
1391
- if (!redraw) return;
1392
-
1393
- redraw = false;
1394
-
1395
- if (clicked && clicked.isResizing) {
1396
- if (clicked.onRightEdge) pane.style.width = Math.max(x, minWidth) + 'px';
1397
- if (clicked.onBottomEdge)
1398
- pane.style.height = Math.max(y, minHeight) + 'px';
1399
-
1400
- if (clicked.onLeftEdge) {
1401
- var currentWidth = Math.max(
1402
- clicked.cx - e.clientX + clicked.w,
1403
- minWidth
1404
- );
1405
- if (currentWidth > minWidth) {
1406
- pane.style.width = currentWidth + 'px';
1407
- // pane.style.left = e.clientX + 'px';
1408
- }
1409
- }
1410
-
1411
- if (clicked.onTopEdge) {
1412
- var currentHeight = Math.max(
1413
- clicked.cy - e.clientY + clicked.h,
1414
- minHeight
1415
- );
1416
- if (currentHeight > minHeight) {
1417
- pane.style.height = currentHeight + 'px';
1418
- pane.style.top = e.clientY + 'px';
1419
- }
1420
- }
1421
-
1422
- hintHide();
1423
-
1424
- return;
1425
- }
1426
-
1427
- if (clicked && clicked.isMoving) {
1428
- if (
1429
- b.top < FULLSCREEN_MARGINS ||
1430
- b.left < FULLSCREEN_MARGINS ||
1431
- b.right > window.innerWidth - FULLSCREEN_MARGINS ||
1432
- b.bottom > window.innerHeight - FULLSCREEN_MARGINS
1433
- ) {
1434
- // hintFull();
1435
- setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight);
1436
- ghostpane.style.opacity = 0.2;
1437
- } else if (b.top < MARGINS) {
1438
- // hintTop();
1439
- setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight / 2);
1440
- ghostpane.style.opacity = 0.2;
1441
- } else if (b.left < MARGINS) {
1442
- // hintLeft();
1443
- setBounds(ghostpane, 0, 0, window.innerWidth / 2, window.innerHeight);
1444
- ghostpane.style.opacity = 0.2;
1445
- } else if (b.right > rightScreenEdge) {
1446
- // hintRight();
1447
- setBounds(
1448
- ghostpane,
1449
- window.innerWidth / 2,
1450
- 0,
1451
- window.innerWidth / 2,
1452
- window.innerHeight
1453
- );
1454
- ghostpane.style.opacity = 0.2;
1455
- } else if (b.bottom > bottomScreenEdge) {
1456
- // hintBottom();
1457
- setBounds(
1458
- ghostpane,
1459
- 0,
1460
- window.innerHeight / 2,
1461
- window.innerWidth,
1462
- window.innerWidth / 2
1463
- );
1464
- ghostpane.style.opacity = 0.2;
1465
- } else {
1466
- hintHide();
1467
- }
1468
-
1469
- if (preSnapped) {
1470
- setBounds(
1471
- pane,
1472
- e.clientX - preSnapped.width / 2,
1473
- e.clientY - Math.min(clicked.y, preSnapped.height),
1474
- preSnapped.width,
1475
- preSnapped.height
1476
- );
1477
- return;
1478
- }
1479
-
1480
- // moving
1481
- pane.style.top = e.clientY - clicked.y + 'px';
1482
- //pane.style.left = e.clientX - clicked.x + 'px';
1483
-
1484
- return;
1485
- }
1486
-
1487
- // This code executes when mouse moves without clicking
1488
-
1489
- // style cursor
1490
- if ((onRightEdge && onBottomEdge) || (onLeftEdge && onTopEdge)) {
1491
- pane.style.cursor = 'nwse-resize';
1492
- } else if ((onRightEdge && onTopEdge) || (onBottomEdge && onLeftEdge)) {
1493
- pane.style.cursor = 'nesw-resize';
1494
- } else if (onRightEdge || onLeftEdge) {
1495
- pane.style.cursor = 'ew-resize';
1496
- } else if (onBottomEdge || onTopEdge) {
1497
- pane.style.cursor = 'ns-resize';
1498
- } else if (canMove()) {
1499
- pane.style.cursor = 'move';
1500
- } else {
1501
- pane.style.cursor = 'default';
1502
- }
1503
- }
1504
-
1505
- animate();
1506
-
1507
- function onUp(e) {
1508
- calc(e);
1509
-
1510
- if (clicked && clicked.isMoving) {
1511
- // Snap
1512
- var snapped = {
1513
- width: b.width,
1514
- height: b.height
1515
- };
1516
-
1517
- if (
1518
- b.top < FULLSCREEN_MARGINS ||
1519
- b.left < FULLSCREEN_MARGINS ||
1520
- b.right > window.innerWidth - FULLSCREEN_MARGINS ||
1521
- b.bottom > window.innerHeight - FULLSCREEN_MARGINS
1522
- ) {
1523
- // hintFull();
1524
- setBounds(pane, 0, 0, window.innerWidth, window.innerHeight);
1525
- preSnapped = snapped;
1526
- } else if (b.top < MARGINS) {
1527
- // hintTop();
1528
- setBounds(pane, 0, 0, window.innerWidth, window.innerHeight / 2);
1529
- preSnapped = snapped;
1530
- } else if (b.left < MARGINS) {
1531
- // hintLeft();
1532
- setBounds(pane, 0, 0, window.innerWidth / 2, window.innerHeight);
1533
- preSnapped = snapped;
1534
- } else if (b.right > rightScreenEdge) {
1535
- // hintRight();
1536
- setBounds(
1537
- pane,
1538
- window.innerWidth / 2,
1539
- 0,
1540
- window.innerWidth / 2,
1541
- window.innerHeight
1542
- );
1543
- preSnapped = snapped;
1544
- } else if (b.bottom > bottomScreenEdge) {
1545
- // hintBottom();
1546
- setBounds(
1547
- pane,
1548
- 0,
1549
- window.innerHeight / 2,
1550
- window.innerWidth,
1551
- window.innerWidth / 2
1552
- );
1553
- preSnapped = snapped;
1554
- } else {
1555
- preSnapped = null;
1556
- }
1557
-
1558
- hintHide();
1559
- }
1560
-
1561
- clicked = null;
1562
- }
1563
- };
1564
-
1565
- </script>
1566
- <script type="text/javascript">
1567
- var html =
1568
- "<body><script src='/docs/js/vendor.js'><\/script><script src='/docs/js/main.js'><\/script><script src='/docs/js/moduleStats.js'><\/script> <script> if(typeof mdata==\"undefined\"){mdata={};}parent.loadDOC(Component, mdata) <\/script> <\/body>";
1569
- var iframe = document.getElementById('ifm');
1570
- var frameDoc = iframe.document;
1571
- if (iframe.contentWindow) {
1572
- frameDoc = iframe.contentWindow.document;
1573
- frameDoc.open();
1574
- frameDoc.writeln(html);
1575
- frameDoc.close();
1576
- } else {
1577
- }
1578
- </script>
1579
- <div style="visibility: hidden;height: 0;width: 0;height:0">
1580
- <svg xmlSpace="preserve" version="1.1" xmlns="http://www.w3.org/2000/svg"
1581
- xmlnsXlink="http://www.w3.org/1999/xlink">
1582
- <symbol id="home" x="0px" y="0px" viewBox="0 0 495.398 495.398" fill='#FFFFFF'
1583
- enableBackground="new 0 0 495.398 495.398">
1584
- <path
1585
- d="M487.083,225.514l-75.08-75.08V63.704c0-15.682-12.708-28.391-28.413-28.391c-15.669,0-28.377,12.709-28.377,28.391 v29.941L299.31,37.74c-27.639-27.624-75.694-27.575-103.27,0.05L8.312,225.514c-11.082,11.104-11.082,29.071,0,40.158 c11.087,11.101,29.089,11.101,40.172,0l187.71-187.729c6.115-6.083,16.893-6.083,22.976-0.018l187.742,187.747 c5.567,5.551,12.825,8.312,20.081,8.312c7.271,0,14.541-2.764,20.091-8.312C498.17,254.586,498.17,236.619,487.083,225.514z" />
1586
- <path
1587
- d="M257.561,131.836c-5.454-5.451-14.285-5.451-19.723,0L72.712,296.913c-2.607,2.606-4.085,6.164-4.085,9.877v120.401 c0,28.253,22.908,51.16,51.16,51.16h81.754v-126.61h92.299v126.61h81.755c28.251,0,51.159-22.907,51.159-51.159V306.79 c0-3.713-1.465-7.271-4.085-9.877L257.561,131.836z" />
1588
- </symbol>
1589
- <symbol id='bottomArrow' viewBox="0 0 792 792">
1590
- <polygon
1591
- points="580.802,369.604 580.802,369.604 211.198,0 184.802,26.396 554.405,396 184.802,765.604 211.198,792 607.198,396" />
1592
-
1593
- </symbol>
1594
- <symbol id="reload" viewBox="0 0 28.265 28.265">
1595
- <path
1596
- d="M14.133,28.265c-7.061,0-12.805-5.75-12.805-12.809c0-7.06,5.744-12.807,12.805-12.807c0.469,0,0.943,0.027,1.414,0.08 v-2.07c0-0.266,0.164-0.508,0.406-0.611c0.252-0.098,0.531-0.043,0.723,0.148l4.537,4.547c0.258,0.258,0.258,0.67,0,0.932 l-4.535,4.557c-0.193,0.188-0.473,0.246-0.725,0.143c-0.242-0.104-0.406-0.344-0.406-0.609V7.47 c-0.469-0.086-0.941-0.125-1.414-0.125c-4.473,0-8.113,3.639-8.113,8.111c0,4.471,3.641,8.113,8.113,8.113s8.111-3.643,8.111-8.113 c0-0.363,0.295-0.66,0.662-0.66h3.369c0.365,0,0.662,0.297,0.662,0.66C26.937,22.515,21.189,28.265,14.133,28.265z" />
1597
- </symbol>
1598
- <symbol id='newTab' x="0px" y="0px" viewBox="0 0 26 26" enableBackground='new 0 0 26 26'>
1599
- <path
1600
- d="M18,17.759v3.366C18,22.159,17.159,23,16.125,23H4.875C3.841,23,3,22.159,3,21.125V9.875C3,8.841,3.841,8,4.875,8h3.429l3.001-3h-6.43C2.182,5,0,7.182,0,9.875v11.25C0,23.818,2.182,26,4.875,26h11.25C18.818,26,21,23.818,21,21.125v-6.367L18,17.759z" />
1601
- <path
1602
- d="M22.581,0H12.322c-1.886,0.002-1.755,0.51-0.76,1.504l3.22,3.22l-5.52,5.519c-1.145,1.144-1.144,2.998,0,4.141l2.41,2.411c1.144,1.141,2.996,1.142,4.14-0.001l5.52-5.52l3.16,3.16c1.101,1.1,1.507,1.129,1.507-0.757L26,3.419C25.999-0.018,26.024-0.001,22.581,0z" />
1603
- </symbol>
1604
- <symbol id='RTL' width="13" height="16" viewBox="0 0 13 16" fill="none">
1605
- <path
1606
- d="M12.2415 0.318399H3.92167C3.37879 0.318399 2.87197 0.404799 2.39552 0.575999C1.92097 0.747199 1.50527 0.984 1.15221 1.2848C0.799141 1.5856 0.518208 1.936 0.311304 2.3376C0.104401 2.7392 0 3.1632 0 3.616C0 4.0736 0.104401 4.5008 0.311304 4.9024C0.518208 5.3024 0.799141 5.6528 1.15221 5.9552C1.50527 6.2576 1.92097 6.4928 2.39552 6.664C2.87007 6.8352 3.37879 6.9216 3.92167 6.9216H4.89735V10.6368C4.89735 10.7504 4.9448 10.8464 5.04161 10.9264C5.13842 11.0064 5.25231 11.048 5.38518 11.048C5.52565 11.048 5.64334 11.008 5.73825 10.9264C5.83316 10.8464 5.88251 10.7488 5.88251 10.6368V1.1408H8.81902V10.6368C8.81902 10.7504 8.86648 10.8464 8.96328 10.9264C9.06009 11.0064 9.17398 11.048 9.30686 11.048C9.44163 11.048 9.55552 11.008 9.65043 10.9264C9.74534 10.8448 9.79469 10.7488 9.79469 10.6368V1.1408H12.2434C12.3781 1.1408 12.492 1.1008 12.5869 1.0192C12.6818 0.9376 12.7312 0.841599 12.7312 0.729599C12.7312 0.615999 12.6837 0.52 12.5869 0.44C12.4901 0.36 12.3762 0.318399 12.2415 0.318399ZM4.89735 6.0992H3.92167C3.51356 6.0992 3.13013 6.0336 2.77326 5.9024C2.4164 5.7712 2.1051 5.5936 1.84125 5.3696C1.5774 5.1472 1.3686 4.8848 1.21485 4.584C1.06109 4.2832 0.985164 3.96 0.985164 3.616C0.985164 3.2768 1.06109 2.9584 1.21485 2.656C1.3686 2.3552 1.5774 2.0928 1.84125 1.8704C2.1051 1.648 2.4164 1.4704 2.77326 1.3376C3.13013 1.2064 3.51356 1.1408 3.92167 1.1408H4.89735V6.0992ZM11.2658 13.5232H2.16205L3.29147 12.5792C3.38638 12.4992 3.43574 12.4 3.43574 12.2848C3.43574 12.1696 3.38828 12.0704 3.29147 11.9904C3.19656 11.9104 3.07887 11.8688 2.9422 11.8688C2.80553 11.8688 2.68785 11.9088 2.59294 11.9904L0.630201 13.6448C0.535291 13.7248 0.485938 13.824 0.485938 13.9392C0.485938 14.0544 0.533393 14.1536 0.630201 14.2336L2.59104 15.8784C2.64229 15.9216 2.69734 15.952 2.75808 15.9712C2.81882 15.9904 2.87767 16 2.93461 16C2.99915 16 3.05989 15.9904 3.12064 15.9712C3.18138 15.952 3.23642 15.9216 3.28768 15.8784C3.38259 15.7984 3.43194 15.7008 3.43194 15.5888C3.43194 15.4752 3.38448 15.3792 3.28768 15.2992L2.15825 14.3552H11.2639C11.3987 14.3552 11.5126 14.3152 11.6075 14.2336C11.7024 14.1536 11.7517 14.0528 11.7517 13.936C11.7517 13.8224 11.7043 13.7264 11.6075 13.6464C11.5145 13.5632 11.4006 13.5232 11.2658 13.5232Z"
1607
- fill="white" />
1608
- </symbol>
1609
- <symbol id="rem" enableBackground="new 0 0 458.353 458.353" viewBox="0 0 458.353 458.353">
1610
- <path
1611
- d="m415.382 200.529h42.971l-57.294-57.294-57.294 57.294h42.971v171.882h-42.971l57.294 57.294 57.294-57.294h-42.971z" />
1612
- <path
1613
- d="m343.765 85.941v-85.941h-343.765v85.941h28.647v-57.294h128.912v401.059h-71.618v28.647h171.882v-28.647h-71.618v-401.059h128.912v57.294z" />
1614
- </symbol>
1615
- <symbol id='fullScreen' viewBox="0 0 18 18">
1616
- <path
1617
- d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z" />
1618
- </symbol>
1619
- <symbol id='folder' viewBox="0 0 60 60">
1620
- <path
1621
- d="M56.98,11.5H28.02V6.52c0-1.665-1.354-3.02-3.02-3.02H3.02C1.354,3.5,0,4.854,0,6.52V20.5v2v30.98 c0,1.665,1.354,3.02,3.02,3.02H56.98c1.665,0,3.02-1.354,3.02-3.02V22.5v-2v-5.98C60,12.854,58.646,11.5,56.98,11.5z M58,53.48 c0,0.563-0.457,1.02-1.02,1.02H3.02C2.457,54.5,2,54.043,2,53.48V22.5h56V53.48z M2,20.5V6.52C2,5.957,2.457,5.5,3.02,5.5H25 c0.562,0,1.02,0.457,1.02,1.02v6.98H56.98c0.563,0,1.02,0.457,1.02,1.02v5.98H2z"
1622
- fill="#FFFFFF" />
1623
- </symbol>
1624
- <symbol id='file' viewBox="0 0 512 512">
1625
- <path
1626
- d="M405.333,42.667h-44.632c-4.418-12.389-16.147-21.333-30.035-21.333h-32.219C288.427,8.042,272.677,0,256,0 s-32.427,8.042-42.448,21.333h-32.219c-13.888,0-25.617,8.944-30.035,21.333h-44.631C83.135,42.667,64,61.802,64,85.333v384 C64,492.865,83.135,512,106.667,512h298.667C428.865,512,448,492.865,448,469.333v-384C448,61.802,428.865,42.667,405.333,42.667 z M170.667,53.333c0-5.885,4.781-10.667,10.667-10.667h37.917c3.792,0,7.302-2.021,9.219-5.302 c5.844-10.042,16.135-16.031,27.531-16.031s21.688,5.99,27.531,16.031c1.917,3.281,5.427,5.302,9.219,5.302h37.917 c5.885,0,10.667,4.781,10.667,10.667V64c0,11.76-9.573,21.333-21.333,21.333H192c-11.76,0-21.333-9.573-21.333-21.333V53.333z M426.667,469.333c0,11.76-9.573,21.333-21.333,21.333H106.667c-11.76,0-21.333-9.573-21.333-21.333v-384 c0-11.76,9.573-21.333,21.333-21.333h42.667c0,23.531,19.135,42.667,42.667,42.667h128c23.531,0,42.667-19.135,42.667-42.667 h42.667c11.76,0,21.333,9.573,21.333,21.333V469.333z"
1627
- fill="#FFFFFF" />
1628
- <path
1629
- d="M352,234.667H160c-5.896,0-10.667,4.771-10.667,10.667c0,5.896,4.771,10.667,10.667,10.667h192 c5.896,0,10.667-4.771,10.667-10.667C362.667,239.438,357.896,234.667,352,234.667z"
1630
- fill="#FFFFFF" />
1631
- <path
1632
- d="M352,277.333H160c-5.896,0-10.667,4.771-10.667,10.667s4.771,10.667,10.667,10.667h192 c5.896,0,10.667-4.771,10.667-10.667S357.896,277.333,352,277.333z"
1633
- fill="#FFFFFF" />
1634
- <path
1635
- d="M352,320H160c-5.896,0-10.667,4.771-10.667,10.667c0,5.896,4.771,10.667,10.667,10.667h192 c5.896,0,10.667-4.771,10.667-10.667C362.667,324.771,357.896,320,352,320z"
1636
- fill="#FFFFFF" />
1637
- <path
1638
- d="M266.667,362.667H160c-5.896,0-10.667,4.771-10.667,10.667c0,5.896,4.771,10.667,10.667,10.667h106.667 c5.896,0,10.667-4.771,10.667-10.667C277.333,367.438,272.563,362.667,266.667,362.667z"
1639
- fill="#FFFFFF" />
1640
- </symbol>
1641
- <symbol id="pencil" viewBox="0 0 512 512">
1642
- <g>
1643
- <polygon points="85.333,282.64 85.333,362.64 165.333,362.64 378.667,149.307 298.667,69.307 " />
1644
- <path d="M441.707,56.08L391.893,6.267c-8.32-8.32-21.867-8.32-30.187,0L320,47.973l80,80l41.707-41.707
1645
- C450.027,77.947,450.027,64.4,441.707,56.08z" />
1646
- </g>
1647
- <g>
1648
- <rect y="426.64" width="512" height="85.333" />
1649
- </g>
1650
- </symbol>
1651
- <svg x='0px' y='0px' viewBox='0 0 512 512' enableBackground='new 0 0 512 512' id='smileIcon'>
1652
- <path fill='#f00' d='M344.354,381.58c-1.33-1.651-33.207-40.458-88.354-40.458
1653
- c-55.832,0-87.972,39.974-88.29,40.378l-31.42-24.756c1.79-2.271,44.687-55.622,119.71-55.622s117.92,53.352,119.71,55.622
1654
- L344.29,381.5L344.354,381.58z M437.02,437.02C485.371,388.668,512,324.38,512,256s-26.629-132.667-74.98-181.02
1655
- C388.667,26.629,324.38,0,256,0S123.333,26.629,74.98,74.98C26.629,123.333,0,187.62,0,256s26.629,132.668,74.98,181.02
1656
- C123.333,485.371,187.62,512,256,512S388.667,485.371,437.02,437.02z M472,256c0,119.103-96.897,216-216,216S40,375.103,40,256
1657
- S136.897,40,256,40S472,136.897,472,256z M168,212.122c17.673,0,32-14.327,32-32s-14.327-32-32-32s-32,14.327-32,32
1658
- S150.327,212.122,168,212.122z M344,212.122c17.673,0,32-14.327,32-32s-14.327-32-32-32s-32,14.327-32,32
1659
- S326.327,212.122,344,212.122z' />
1660
- </svg>
1661
- </svg>
1662
- </div>
1663
- </body>
1664
-
1
+ <!DOCTYPE html>
2
+ <html dir="ltr">
3
+
4
+ <head>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <link rel=stylesheet href="./css/style.css">
8
+ <link rel="stylesheet" href="https://webfonts.zoho.com/css?family=Poppins:400,600,700">
9
+ <link
10
+ href="https://fonts.googleapis.com/css?family=Frank+Ruhl+Libre|Lemonada|Lora|Open+Sans+Condensed:300|PT+Sans+Narrow|Slabo+27px|Source+Sans+Pro"
11
+ rel="stylesheet" />
12
+ <link href="https://supportclientapp.localzoho.com/support/images/support-2.ico" type="IMAGE/X-ICON"
13
+ rel="SHORTCUT ICON" />
14
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/styles/github-dark.min.css">
15
+ <script src="./js/codemirror.js"></script>
16
+ <script src="./js/javascript.js"></script>
17
+ <script src="./js/active-line.js"></script>
18
+ <script src="./js/matchbrackets.js"></script>
19
+ <link rel="stylesheet" type="text/css" href="./css/hopscotch.css">
20
+ <link rel="stylesheet" href="./css/markdown.css">
21
+ <title>Zoho Desk - React Components</title>
22
+ <script>
23
+
24
+ function selectText(containerid) {
25
+ if (document.selection) {
26
+ // IE
27
+ var range = document.body.createTextRange();
28
+ range.moveToElementText(document.getElementById(containerid));
29
+ range.select();
30
+ document.execCommand('copy');
31
+ } else if (window.getSelection) {
32
+ var range = document.createRange();
33
+ range.selectNode(document.getElementById(containerid));
34
+ window.getSelection().removeAllRanges();
35
+ window.getSelection().addRange(range);
36
+ document.execCommand('copy');
37
+ }
38
+ }
39
+ </script>
40
+ </head>
41
+
42
+ <body>
43
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js"></script>
44
+ <div id="react"></div>
45
+ <div class="iframeCentering">
46
+ <span class="posAb">Zoho Desk - React Components</span>
47
+ <iframe src="about:blank" id="ifm"></iframe>
48
+ </div>
49
+
50
+ <script src="/docs/js/babel.min.js"></script>
51
+ <script type="text/babel">
52
+ window.loadDOC = function (Component, mdata) {
53
+ window.RTLmode = false;
54
+ var ReactDOM = Component.ReactDOM;
55
+ window.React = Component.React;
56
+ window.ReactDOM = Component.ReactDOM;
57
+ var React = Component.React;
58
+ class Doc extends React.Component {
59
+ constructor(props) {
60
+ super(props);
61
+ let folderNameDefault = '';
62
+ let groupNameDefault = '';
63
+ (location.hash && props.componentObj) ? Object.keys(props.componentObj).map((flName) => {
64
+ let fname = props.componentObj[flName]
65
+ Object.keys(fname).map((grName) => {
66
+ if ((fname[grName].indexOf(location.hash.substring(1)) > -1)) {
67
+ folderNameDefault = flName;
68
+ groupNameDefault = grName;
69
+ }
70
+ })
71
+ }) : null
72
+ if (folderNameDefault == '' && groupNameDefault == '') {
73
+ folderNameDefault = 'Global'
74
+ groupNameDefault = 'General'
75
+ }
76
+ this.state = {
77
+ componentObj: props.componentObj,
78
+ duplicates: props.duplicates,
79
+ search: '',
80
+ selectedComponent: location.hash,
81
+ Components: Component,
82
+ //popUp: '',
83
+ fullScreenSrc: '',
84
+ viewGroup: groupNameDefault,
85
+ viewFolder: folderNameDefault,
86
+ moreInform: false,
87
+ infoTab: 'component',
88
+ changeset: null,
89
+ version: '',
90
+ frameWidth: '100%',
91
+ isMenuClose: false,
92
+ isRTL: false,
93
+ isRem: true,
94
+ isRemOpen: false,
95
+ rootSize: 16,
96
+ pixelSize: 16,
97
+ resultRem: '1rem',
98
+ responsiveMenu: false,
99
+ device: 'LAPTOP_M',
100
+ compList: 'Unused',
101
+ windowSize: { height: 0, width: 0 },
102
+ isEditMode: false
103
+
104
+ };
105
+ this.search = this.search.bind(this);
106
+ this.clear = this.clear.bind(this);
107
+ // this.toggleRemContainer = this.toggleRemContainer.bind(this);
108
+ this.hashChange = this.hashChange.bind(this);
109
+ //this.popupToggle = this.popupToggle.bind(this);
110
+ //this.popupToggleDoc = this.popupToggleDoc.bind(this);
111
+ this.removeClose = this.removeClose.bind(this);
112
+ //this.fullScreenSrcToggle = this.fullScreenSrcToggle.bind(this);
113
+ this.toggleFolder = this.toggleFolder.bind(this);
114
+ this.toggleGroup = this.toggleGroup.bind(this);
115
+ this.onTabinfo = this.onTabinfo.bind(this);
116
+ this.codeview = this.codeview.bind(this);
117
+ this.reloadFrame = this.reloadFrame.bind(this);
118
+ this.getFileDetails = this.getFileDetails.bind(this);
119
+ this.iframeSize = this.iframeSize.bind(this);
120
+ this.menuOpen = this.menuOpen.bind(this);
121
+ this.onRtlView = this.onRtlView.bind(this);
122
+ this.onREMView = this.onREMView.bind(this);
123
+ this.toggleEditMode = this.toggleEditMode.bind(this);
124
+ // this.calculatePxToRem = this.calculatePxToRem.bind(this);
125
+ // this.calculateRemToPx = this.calculateRemToPx.bind(this);
126
+ // this.onChangeRem = this.onChangeRem.bind(this);
127
+ // this.onChangePixel = this.onChangePixel.bind(this);
128
+ // this.onChangeBase = this.onChangeBase.bind(this);
129
+ this.responseMenu = this.responseMenu.bind(this);
130
+ this.getWindow = this.getWindow.bind(this);
131
+ this.fullView = this.fullView.bind(this);
132
+ this.handleURL = this.handleURL.bind(this);
133
+ this.compList = this.compList.bind(this);
134
+ this.unusedList = this.unusedList.bind(this);
135
+ this.getHookType = this.getHookType.bind(this);
136
+ }
137
+
138
+ fullView() {
139
+ this.setState({ isMenuClose: !this.state.isMenuClose })
140
+ }
141
+ toggleEditMode() {
142
+ var iframe = document.getElementById('componentIframe');
143
+ if (iframe) {
144
+ var currentMode = iframe.contentDocument.documentElement.getAttribute('contenteditable');
145
+ if (currentMode == "true") {
146
+ iframe.contentDocument.documentElement.setAttribute('contenteditable', "false");
147
+ this.setState({ isEditMode: false });
148
+ }
149
+ else {
150
+ iframe.contentDocument.documentElement.setAttribute('contenteditable', "true");
151
+ this.setState({ isEditMode: true });
152
+ }
153
+ }
154
+
155
+ }
156
+
157
+ compList(e) {
158
+ if (e == this.state.compList) {
159
+ }
160
+ else if (e !== this.state.compList) {
161
+ this.setState({ compList: e })
162
+ }
163
+ else {
164
+ this.setState({ compList: '' })
165
+ }
166
+ }
167
+
168
+ getWindow() {
169
+ var iframe = document.getElementById('componentIframe')
170
+ if (iframe) {
171
+ this.setState({ windowSize: { height: iframe.offsetHeight, width: iframe.offsetWidth } })
172
+ }
173
+ }
174
+
175
+ responseMenu() {
176
+ this.setState({ responsiveMenu: !this.state.responsiveMenu })
177
+ }
178
+
179
+ // toggleRemContainer() {
180
+ // this.setState({ isRemOpen: !this.state.isRemOpen });
181
+ // }
182
+
183
+ // calculatePxToRem() {
184
+ // let result = Number((this.state.pixelSize / this.state.rootSize).toFixed(4));
185
+ // this.setState({ resultRem: result + "rem" });
186
+ // }
187
+
188
+ // calculateRemToPx() {
189
+ // let result = Number(((Number(parseFloat(this.state.resultRem)) * this.state.rootSize).toFixed(4)));
190
+ // this.setState({ pixelSize: result });
191
+ // }
192
+
193
+ // onChangeBase(e) {
194
+ // let result = Number((this.state.pixelSize / e.target.value).toFixed(4));
195
+ // this.setState({ rootSize: e.target.value, resultRem: result + "rem" });
196
+ // }
197
+
198
+ // onChangePixel(e) {
199
+ // let result = Number((e.target.value / this.state.rootSize).toFixed(4));
200
+ // this.setState({ pixelSize: e.target.value, resultRem: result + "rem" });
201
+ // }
202
+
203
+ // onChangeRem(e) {
204
+ // let result = Number(((Number(parseFloat(e.target.value)) * this.state.rootSize).toFixed(4)));
205
+ // this.setState({ resultRem: e.target.value, pixelSize: result });
206
+ // }
207
+
208
+ toggleFolder(name, e) {
209
+ let { viewFolder } = this.state;
210
+ if (name == viewFolder) {
211
+ name = ''
212
+ }
213
+ this.setState({ viewFolder: name });
214
+ }
215
+ hashChange() {
216
+ let ele = document.getElementById('componentIframe')
217
+ if (ele) {
218
+ var src = document.getElementById('componentIframe').src;
219
+ var url = src && src.split('#')[0];
220
+ document.getElementById('componentIframe').src = url + location.hash;
221
+ }
222
+ this.setState({ selectedComponent: location.hash, infoTab: 'component' });
223
+ }
224
+ toggleGroup(name) {
225
+ let element = name;
226
+ let { viewGroup } = this.state;
227
+ if (name == viewGroup) {
228
+ name = ''
229
+ }
230
+ this.setState({ viewGroup: name });
231
+ }
232
+
233
+ componentDidMount() {
234
+ window.addEventListener('hashchange', this.hashChange);
235
+ onLoader()
236
+ let iframeEle = document.getElementById('componentIframe')
237
+ iframeEle.contentWindow.addEventListener('resize', this.getWindow)
238
+ this.getWindow()
239
+ let index = document.getElementsByClassName('iframeCentering')
240
+ index ? index[0].style.display = 'none' : null
241
+ if (!this.state.selectedComponent) {
242
+ this.setState({ infoTab: 'dashboard' })
243
+ }
244
+ //document.addEventListener('click', this.popupToggleDoc);
245
+ fetch('/cli/version').then((res) => { return res.json() }).then((response) => {
246
+ (response && response.version) ? this.setState({ version: response.version }) : this.setState({ version: "version get failure" })
247
+ }).catch(function (err) {
248
+ this.setState({ changeset: "Error accured" })
249
+ });
250
+ }
251
+
252
+ codeview() {
253
+
254
+ let compName = location.hash != '' ? location.hash.substring(1) : null;
255
+ let element = document.getElementById('codeView')
256
+ if (componentList[compName] && typeof CodeMirror !== 'undefined' && element) {
257
+ CodeMirror(element, {
258
+ value: '',
259
+ lineNumbers: false,
260
+ styleActiveLine: false,
261
+ matchBrackets: false,
262
+ theme: 'blackboard',
263
+ });
264
+ }
265
+
266
+ }
267
+
268
+ componentWillUnmount() {
269
+ let iframe = document.getElementById('componentIframe');
270
+ //document.removeEventListener('click', this.popupToggleDoc);
271
+ iframe.contentWindow.removeEventListener('resize', this.getWindow)
272
+ window.removeEventListener('hashchange', this.hashChange);
273
+ window.removeEventListener('error', this.reloadFrame);
274
+ }
275
+
276
+ search(e) {
277
+ this.setState({ search: e.target.value });
278
+ }
279
+
280
+ clear(e) {
281
+ this.setState({ search: '' });
282
+ }
283
+
284
+ // popupToggleDoc() {
285
+ // this.setState({ popUp: ''});
286
+ // }
287
+
288
+ // fullScreenSrcToggle(select) {
289
+ // this.setState({ fullScreenSrc: select });
290
+ // this.popupToggleDoc();
291
+ // }
292
+
293
+ removeClose(e) {
294
+ e.stopPropagation && e.stopPropagation();
295
+ e.nativeEvent.stopImmediatePropagation &&
296
+ e.nativeEvent.stopImmediatePropagation();
297
+ }
298
+
299
+ filter(list, str) {
300
+ list = list.sort((a, b) => {
301
+ var at = a.toLowerCase();
302
+ var bt = b.toLowerCase();
303
+ return at > bt ? 1 : at < bt ? -1 : 0;
304
+ });
305
+ // return list.filter(
306
+ // item => item.toUpperCase().indexOf(str.toUpperCase()) != -1
307
+ // );
308
+
309
+ return list.filter((item) => {
310
+ let value = item.split('__')[0]
311
+
312
+ return value.toUpperCase().indexOf(str.toUpperCase()) != -1
313
+ })
314
+ }
315
+
316
+ onTabinfo(name) {
317
+ this.setState({ infoTab: name })
318
+ }
319
+
320
+ reloadFrame() {
321
+ let iframeEle = document.getElementById('componentIframe');
322
+ //this.getWindow()
323
+ iframeEle.contentDocument.location.reload()
324
+ parent.document.getElementById("loadingText").style.display = 'block'
325
+ }
326
+
327
+ getFileDetails() {
328
+ this.onTabinfo('changeset')
329
+ let compName = location.hash != '' ? location.hash.substring(1) : null;
330
+ let compNameSub = window.componentList ? window.componentList[compName].docs.filePath : Component[compName].docs.filePath || ''
331
+ let name = compNameSub ? compNameSub.split('__')[0] : '';
332
+ let propComName = name.replace("docs", "/").split('/')[0] + name.split("docs")[1]
333
+ fetch('/author/get?componentName=' + propComName + '.js').then((res) => { return res.json() }).then((response) => {
334
+ (response && response.stdout) ? this.setState({ changeset: response.stdout }) : this.setState({ changeset: "response is empty" })
335
+ }).catch(function (err) {
336
+ this.setState({ changeset: "Error accured" })
337
+ });
338
+ }
339
+
340
+ iframeSize() {
341
+ let slider = document.getElementById('myRange')
342
+ let iframe = document.getElementById('componentIframe');
343
+ let value = slider.value;
344
+ let borderSize = 30;
345
+ let sizes = {
346
+ '1': { device: 'MOBILE_XS', frameWidth: 320 + borderSize },
347
+ '2': { device: 'MOBILE_S', frameWidth: 360 + borderSize },
348
+ '3': { device: 'MOBILE_M', frameWidth: 375.04 + borderSize },
349
+ '4': { device: 'MOBILE', frameWidth: 480 + borderSize },
350
+ '5': { device: 'TABLET_S', frameWidth: 640 + borderSize },
351
+ '6': { device: 'TABLET_M', frameWidth: 720 + borderSize },
352
+ '7': { device: 'TABLET', frameWidth: 768 + borderSize },
353
+ '8': { device: 'LAPTOP_S', frameWidth: 1024 + borderSize },
354
+ '9': { device: 'LAPTOP_M', frameWidth: 1280 + borderSize },
355
+ '10': { device: 'LAPTOP', frameWidth: 1440 + borderSize },
356
+ '11': { device: 'MONITOR_M', frameWidth: 1600 + borderSize },
357
+ '12': { device: 'MONITOR', frameWidth: 1920 + borderSize }
358
+ }
359
+ this.setState(sizes[value]);
360
+ this.getWindow()
361
+ }
362
+
363
+ menuOpen() {
364
+ this.setState({ isMenuClose: !this.state.isMenuClose })
365
+ }
366
+
367
+ onRtlView(e) {
368
+ let iframeEle = document.getElementById('componentIframe');
369
+ let ele = e.target.element || null
370
+ if (!this.state.isRTL) {
371
+ this.setState({ isRTL: true })
372
+ window.RTLmode = true;
373
+ iframeEle.contentDocument.documentElement.setAttribute('dir', 'rtl');
374
+ } else {
375
+ this.setState({ isRTL: false })
376
+ iframeEle.contentDocument.documentElement.setAttribute('dir', 'ltr');
377
+ window.RTLmode = false;
378
+ }
379
+ }
380
+
381
+ onREMView(e) {
382
+ let iframeEle = document.getElementById('componentIframe');
383
+ let ele = e.target.element || null
384
+ if (!this.state.isRem) {
385
+ this.setState({ isRem: true })
386
+ iframeEle.contentDocument.documentElement.classList.add('isRem');
387
+ } else {
388
+ this.setState({ isRem: false })
389
+ iframeEle.contentDocument.documentElement.classList.remove('isRem');
390
+ }
391
+ }
392
+
393
+
394
+ handleURL() {
395
+ this.setState({ viewFolder: 'General', viewGroup: 'Global', infoTab: 'dashboard' })
396
+ window.history.pushState("", "", '/docs/');
397
+ }
398
+
399
+ unusedList(mdata) {
400
+ let dbList = [];
401
+ Object.keys(mdata).map((item, i) => {
402
+ if (mdata[item].references.length <= 0 && mdata[item].referencedby.length <= 0) {
403
+ return dbList.push(item);
404
+ }
405
+ })
406
+ return dbList
407
+ }
408
+ getHookType(propInfo, value) {
409
+ if (propInfo[value]) {
410
+ if (propInfo[value].hookType) {
411
+ let hookType = propInfo[value].hookType;
412
+
413
+ if (hookType.includes("union")) {
414
+ hookType = hookType.replace("union", 'oneOfType ');
415
+ }
416
+
417
+ if (hookType.includes("enum")) {
418
+ hookType = hookType.replace("enum", "oneOf ");
419
+ }
420
+
421
+ return hookType;
422
+ } else {
423
+ return '';
424
+ }
425
+ } else {
426
+ return '';
427
+ }
428
+ }
429
+
430
+ render() {
431
+ const {
432
+ Components,
433
+ componentObj,
434
+ search,
435
+ selectedComponent,
436
+ //popUp,
437
+ viewGroup,
438
+ viewFolder,
439
+ moreInform,
440
+ infoTab,
441
+ changeset,
442
+ version,
443
+ frameWidth,
444
+ isMenuClose,
445
+ isRTL,
446
+ isRem,
447
+ isRemOpen,
448
+ rootSize,
449
+ pixelSize,
450
+ resultRem,
451
+ duplicates,
452
+ isEditMode
453
+ } = this.state;/* Components & componentObj no need in the state access in props itself*/
454
+ let devices = [{ device: 'MOBILE', sizes: ['XS', 'S', 'M', 'D'] }, { device: 'TABLET', sizes: ['S', 'M', 'D'] }, { device: 'LAPTOP', sizes: [, 'S', 'M', 'D'] }, { device: 'MONITOR', sizes: ['M', 'D'] }]
455
+ let compValue = 'compValue';
456
+ let reactCliVersion = version.split(' ').filter(function (el) { return el.toLowerCase().indexOf("fz-react-cli@") > -1; });
457
+ //let versionFz = reactCliVersion.length ? reactCliVersion[0].substring(reactCliVersion[0].indexOf('@') + 1, reactCliVersion[0].length) : '';
458
+ let compName = location.hash != '' ? location.hash.substring(1) : null;
459
+ let propComName = compName;
460
+
461
+ let propsObj = Window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.propTypes || (Components[propComName] && Components[propComName].docs.propTypes) || {};
462
+ let currentCompProps = propsObj;
463
+ let defaultProps = Window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.defaultProps || (Components[propComName] && Components[propComName].docs.defaultProps) || {};
464
+ let currentCompPropsDescription = window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.propsDescription || (Components[propComName] && Components[propComName].docs.propsDescription) || {};
465
+ let currentCompDefault = Window.componentList && window.componentList[propComName] && window.componentList[propComName].docs.defaultProps || (Components[propComName] && Components[propComName].docs.defaultProps) || {};
466
+ let componentsObj = componentObj && this.filter(Object.keys(componentObj), '').map((item, i) => {
467
+ return ({ key: item, value: componentObj[item], length: Object.keys(componentObj[item]).length })
468
+ })
469
+ let compObjList = componentsObj
470
+
471
+ let dashboardList = [
472
+ this.unusedList(mdata) && { name: 'Unused', componentList: this.unusedList(mdata) },
473
+ duplicates && { name: 'Duplicates', componentList: duplicates }
474
+ ]
475
+ let defaultPropsArray = []
476
+ let currentDefaultPropsArray = []
477
+ defaultProps.length && defaultProps.forEach((value) => {
478
+ currentDefaultPropsArray.push(value)
479
+ })
480
+ let _propTypesToDefaultPropsArray = []
481
+ let propsDesArray = []
482
+ let _propTypesToPropsDesArray = []
483
+ return (
484
+ <main className="dflex flexrow">
485
+ <div className="showToggleLeft" onClick={this.menuOpen}>
486
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGOSURBVGhD7ZrBKkVBHIdPSNKV5A3YKSvvYG/BE0jI3tbGxsYGdTeeQnY8gcLOTigba1KE73ewOGUxc8/8/2fUfPXVndOd23ydM92ae6sIeniIT/iZgW94hYsYxTH+9YFd+4pzGMQIvqAmzepCBgzhESpmRxdCmERNuKtH+bCBWpeCgighxpSQEmJECSkhRpSQkJBRvMFTHNcFQ0xDxvAW9f5ztIwxf7Rm8B6tY1z2iEeM22a3jnELEZYxriHCKsY9RFjERIfo4OECT+rR4KSOiQ5JScqYRsgULji7jM/YNqYR8vAz6NIz1KlILI2QfdTz762Ol7SID1zFQeh0j4gtVECbCBEdMox6tufrUTtSRYjokBTfIyJlhOgkJHWEcA+xiBCuIVYRwi3EMkK4hFhHCPMQjwhhGjKN72gdIczvyDYufb80xW2zW1NCSogRJaSEGFFC/n3IBGrCYz3Kh03Uug7qUSC/x0Z7uJaB63iNWpPuTDArqP9IaWJOXqJ+JYtCJym72M9A7QvdFSKq6gtlqbpowcg25wAAAABJRU5ErkJggg==" />
487
+ </div>
488
+
489
+ <div className={"menuBar " + (isMenuClose ? "isMenuClose" : "isMenuOpen")}>
490
+ <div className="dflex flexcolumn">
491
+ <div className="flexshrink logoPart dflex">
492
+ <img src="./css/desklogo.png" />
493
+ <div className={'home'} onClick={this.handleURL}>
494
+ <span className='homeIcon'>
495
+ <svg className='svg'>
496
+ <use xlinkHref='#home'></use>
497
+ </svg>
498
+ </span>
499
+ </div>
500
+ </div>
501
+ <div className="flexgrow flexbasis sliderContainer">
502
+ <div className="dflex flexcolumn">
503
+ <div className="flexshrink searchPart">
504
+ <Search onChange={this.search} value={search} onClear={this.clear} />
505
+ </div>
506
+ <menu className="flexgrow flexbasis scrollY menuContainer" id="leftPanel">
507
+ {
508
+ compObjList && Object.keys(compObjList).length && compObjList.map(comp => {
509
+ let folderName = comp.key
510
+ let folderCompCount = 0;
511
+ let sortList = this.filter(Object.keys(componentObj[folderName]), '').map(grpName => {
512
+ return ({
513
+ fName: grpName,
514
+ components: componentObj[folderName][grpName],
515
+ length: (componentObj[folderName][grpName].filter(function (el) { return el.toLowerCase().indexOf('__') > -1 }).length)
516
+ })
517
+ })
518
+
519
+ let outcomp = Object.keys(componentObj[folderName]).sort().map(
520
+ grn => {
521
+ let searchList = this.filter(
522
+ componentObj[folderName][grn],
523
+ search
524
+ );
525
+ if (searchList.length) {
526
+ folderCompCount = folderCompCount + 1;
527
+ }
528
+ return searchList.length ? true : false;
529
+ }
530
+ );
531
+ if (outcomp.indexOf(true) != -1) {
532
+ return (
533
+ <div>
534
+ <div
535
+ onClick={this.toggleFolder.bind(
536
+ this,
537
+ folderName
538
+ )}
539
+ className={'mainMenu dflex flexrow alignVertical offSelection' + ' ' +
540
+ (viewFolder == folderName
541
+ ? 'mainMenuActive'
542
+ : '')
543
+ }
544
+ >
545
+ <span className={'flexgrow mainMenutitle dotted'}>{folderName}</span>
546
+ <span className={'flexshrink mainMenuCount'}>{folderCompCount}</span>
547
+ <i className={'flexshrink mainMenuArrow'}>
548
+ <svg className='svg'>
549
+ <use xlinkHref='#bottomArrow'></use>
550
+ </svg>
551
+ </i>
552
+ </div>
553
+ <div
554
+ className={
555
+ viewFolder == folderName || search
556
+ ? 'folderOpen'
557
+ : 'hide'
558
+ }
559
+ >
560
+ {
561
+ sortList.map((grpName) => {
562
+ return (
563
+ <ComponentList
564
+ type={grpName.fName}
565
+ components={this.filter(
566
+ componentObj[folderName][grpName.fName],
567
+ search
568
+ )}
569
+ selectedComponent={selectedComponent}
570
+ toggleGroup={this.toggleGroup}
571
+ viewGroup={
572
+ search ? grpName.fName : viewGroup
573
+ }
574
+ />)
575
+ })
576
+ }
577
+ </div>
578
+ </div>
579
+ );
580
+ } else {
581
+ return null;
582
+ }
583
+ })
584
+ }
585
+ </menu>
586
+ {
587
+ // versionFz != '' &&
588
+ // <div className="flexshrink versionPart ">
589
+ // <span>Version {versionFz}</span>
590
+ // </div>
591
+ }
592
+ {/*<div className="flexshrink tools" onClick={this.toggleRemContainer}>
593
+ <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDE3NC4yNDggMTc0LjI0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTc0LjI0OCAxNzQuMjQ4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnPgoJPHBhdGggZD0iTTE3My4xNDUsNzMuOTFjLTAuNDEzLTIuNzIyLTIuMjktNC45OTMtNC44ODEtNS45MTJsLTEzLjcyNy00Ljg4MWMtMC44MTItMi4zLTEuNzMzLTQuNTM2LTIuNzU0LTYuNjk5bDYuMjQ3LTEzLjE0NiAgIGMxLjE3OS0yLjQ3OSwwLjg5OS01LjQxMS0wLjcyOS03LjYyOGMtNS4yNjUtNy4xNjEtMTEuNTU2LTEzLjQ1Mi0xOC42OTgtMTguNjkzYy0yLjIxOS0xLjYyOS01LjE0MS0xLjkwNi03LjYyNS0wLjcyNCAgIGwtMTMuMTM4LDYuMjQyYy0yLjE2My0xLjAyMS00LjQwMi0xLjk0LTYuNzA0LTIuNzUybC00Ljg4My0xMy43MjljLTAuOTE5LTIuNTg2LTMuMTg0LTQuNDU4LTUuOS00Ljg3NiAgIGMtOS42NS0xLjQ4My0xNi43OTItMS40ODMtMjYuNDU3LDBjLTIuNzEzLDAuNDE4LTQuOTgxLDIuMjktNS45LDQuODc2bC00Ljg4MywxMy43MjljLTIuMzAyLDAuODEyLTQuNTQxLDEuNzMxLTYuNzAyLDIuNzUyICAgbC0xMy4xNDMtNi4yNDJjLTIuNDc5LTEuMTgxLTUuNDA2LTAuOTA0LTcuNjIzLDAuNzI0Yy03LjE0Miw1LjI0MS0xMy40MzMsMTEuNTMyLTE4LjY5OCwxOC42OTMgICBjLTEuNjI5LDIuMjE3LTEuOTA4LDUuMTQ4LTAuNzI5LDcuNjI4bDYuMjQ3LDEzLjE0NmMtMS4wMjEsMi4xNTktMS45NCw0LjQtMi43NTQsNi42OTlMNS45ODIsNjguMDAzICAgYy0yLjU4OSwwLjkxOS00LjQ2MywzLjE4OS00Ljg3OSw1LjkwN2MtMC43NDksNC45Mi0xLjA5OSw5LjExNS0xLjA5OSwxMy4yMTljMCw0LjA5OCwwLjM1LDguMjk5LDEuMDk5LDEzLjIxOSAgIGMwLjQxMywyLjcyMiwyLjI5LDQuOTkzLDQuODgxLDUuOTEybDEzLjcyNyw0Ljg4MWMwLjgxNCwyLjMwNCwxLjczNiw0LjU0MSwyLjc1NCw2LjcwNGwtNi4yNDcsMTMuMTQxICAgYy0xLjE3OSwyLjQ3OS0wLjg5OSw1LjQxMSwwLjcyNyw3LjYyM2M1LjI1OCw3LjE1NiwxMS41NDksMTMuNDQ3LDE4LjcsMTguNjk4YzIuMjE3LDEuNjI5LDUuMTQ0LDEuOTExLDcuNjI1LDAuNzI0bDEzLjEzOC02LjI0MiAgIGMyLjE2MywxLjAyMSw0LjQwMiwxLjk0LDYuNzA0LDIuNzUybDQuODgzLDEzLjcyOWMwLjkxOSwyLjU4NiwzLjE4NCw0LjQ1OCw1LjksNC44NzZjNC44MjgsMC43NDQsOS4xNTQsMS4xMDQsMTMuMjI4LDEuMTA0ICAgYzQuMDc0LDAsOC40MDEtMC4zNiwxMy4yMjgtMS4xMDRjMi43MTUtMC40MTgsNC45ODEtMi4yOSw1LjktNC44NzZsNC44ODMtMTMuNzI5YzIuMzAyLTAuODEyLDQuNTQxLTEuNzMxLDYuNzA0LTIuNzUyICAgbDEzLjEzOCw2LjI0MmMyLjQ4NCwxLjE4Niw1LjQxMSwwLjkwNCw3LjYyOC0wLjcyNGM3LjE1OS01LjI2LDEzLjQ1LTExLjU1MSwxOC42OTgtMTguNjk4YzEuNjI2LTIuMjEyLDEuOTA2LTUuMTQ0LDAuNzI3LTcuNjIzICAgbC02LjI0Ny0xMy4xNDFjMS4wMjEtMi4xNjMsMS45NDItNC40MDUsMi43NTQtNi43MDRsMTMuNzI3LTQuODgxYzIuNTkxLTAuOTE5LDQuNDY4LTMuMTg5LDQuODgxLTUuOTEyICAgYzAuNzQ5LTQuOTIsMS4wOTktOS4xMiwxLjA5OS0xMy4yMTlTMTczLjg5NCw3OC44MjksMTczLjE0NSw3My45MXogTTE1OC45NDksOTMuNzJsLTEyLjg3OCw0LjU4ICAgYy0yLjI1MSwwLjc5Ny0zLjk4MiwyLjYyNS00LjY2LDQuOTJjLTEuMTUsMy44ODktMi42NjQsNy41NjktNC41MDQsMTAuOTQzYy0xLjE0MiwyLjEtMS4yMTMsNC42MTktMC4xODcsNi43NzdsNS44NDEsMTIuMjg1ICAgYy0yLjgyMiwzLjM4OS01Ljk0Myw2LjUxNS05LjMzNyw5LjMzNGwtMTIuMjgzLTUuODM0Yy0yLjE2MS0xLjAzNi00LjY3Mi0wLjk1My02Ljc3NSwwLjE4NWMtMy4zNzksMS44MzgtNy4wNjEsMy4zNS0xMC45NTMsNC41MDIgICBjLTIuMjksMC42NzYtNC4xMTgsMi40MDYtNC45MTcsNC42NTdsLTQuNTgyLDEyLjg4M2MtNC42NzcsMC40NzYtOC41MDMsMC40NzYtMTMuMTgsMGwtNC41ODItMTIuODgzICAgYy0wLjgtMi4yNDYtMi42MjgtMy45ODItNC45MTctNC42NTdjLTMuODk0LTEuMTUyLTcuNTc5LTIuNjY0LTEwLjk1My00LjUwMmMtMi4xMDMtMS4xNDctNC42MTktMS4yMi02Ljc3NS0wLjE4NWwtMTIuMjgzLDUuODM5ICAgYy0zLjM5MS0yLjgyNS02LjUxMi01Ljk0Ni05LjMzNy05LjMzOWw1Ljg0MS0xMi4yODVjMS4wMjYtMi4xNTksMC45NTUtNC42NzctMC4xODctNi43NzdjLTEuODM1LTMuMzY0LTMuMzUtNy4wNDktNC41MDQtMTAuOTQ4ICAgYy0wLjY3OC0yLjI5LTIuNDExLTQuMTE4LTQuNjYtNC45MTVsLTEyLjg3OC00LjU4Yy0wLjI0My0yLjM0My0wLjM2LTQuNTAyLTAuMzYtNi41OTJzMC4xMTctNC4yNDQsMC4zNi02LjU4N2wxMi44ODEtNC41ODQgICBjMi4yNDgtMC43OTcsMy45NzktMi42MjUsNC42NTctNC45MTVjMS4xNTItMy44ODksMi42NjctNy41NzQsNC41MDQtMTAuOTUzYzEuMTQyLTIuMDk1LDEuMjEzLTQuNjE5LDAuMTg3LTYuNzcybC01Ljg0MS0xMi4yODUgICBjMi44MjctMy4zOTMsNS45NDgtNi41MTksOS4zMzctOS4zMzlsMTIuMjg4LDUuODM5YzIuMTUxLDEuMDM2LDQuNjc3LDAuOTUzLDYuNzc1LTAuMTg1YzMuMzcyLTEuODM4LDcuMDU0LTMuMzUsMTAuOTQ4LTQuNTAyICAgYzIuMjktMC42NzYsNC4xMTgtMi40MTEsNC45MTctNC42NTdsNC41ODItMTIuODgzYzQuNjMzLTAuNDgxLDguNDY2LTAuNDgxLDEzLjE4LDBsNC41ODIsMTIuODgzICAgYzAuOCwyLjI0NiwyLjYyOCwzLjk4Miw0LjkxNyw0LjY1N2MzLjg5NCwxLjE1Miw3LjU3OSwyLjY2NCwxMC45NTMsNC41MDJjMi4xMDMsMS4xNDcsNC42MTQsMS4yMiw2Ljc3NSwwLjE4NWwxMi4yODMtNS44MzkgICBjMy4zODksMi44Miw2LjUxLDUuOTQ2LDkuMzM3LDkuMzM5bC01Ljg0MSwxMi4yODVjLTEuMDI2LDIuMTU0LTAuOTU1LDQuNjc3LDAuMTg3LDYuNzcyYzEuODQzLDMuMzg5LDMuMzU3LDcuMDY5LDQuNTA0LDEwLjk0OCAgIGMwLjY3OCwyLjI5NSwyLjQwOSw0LjEyMyw0LjY2LDQuOTJsMTIuODc4LDQuNThjMC4yNDMsMi4zNDMsMC4zNiw0LjUwMiwwLjM2LDYuNTkyUzE1OS4xOTIsOTEuMzc3LDE1OC45NDksOTMuNzJ6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8cGF0aCBkPSJNODcuMTI0LDUwLjgwMmMtMTkuMDYyLDAtMzQuNTcxLDE1LjUwOC0zNC41NzEsMzQuNTcxczE1LjUwOCwzNC41NzEsMzQuNTcxLDM0LjU3MXMzNC41NzEtMTUuNTA4LDM0LjU3MS0zNC41NzEgICBTMTA2LjE4Niw1MC44MDIsODcuMTI0LDUwLjgwMnogTTg3LjEyNCwxMDUuMDA5Yy0xMC44MjcsMC0xOS42MzYtOC44MDktMTkuNjM2LTE5LjYzNnM4LjgwOS0xOS42MzYsMTkuNjM2LTE5LjYzNiAgIHMxOS42MzYsOC44MDksMTkuNjM2LDE5LjYzNlM5Ny45NTEsMTA1LjAwOSw4Ny4xMjQsMTA1LjAwOXoiIGZpbGw9IiNGRkZGRkYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" />
594
+ <span>REM Converter</span>
595
+ </div>
596
+ */}
597
+ </div>
598
+ {/* <div className={"slider " + (isRemOpen ? 'sopen' : '')}>
599
+ <div className="tools sliderHeader">
600
+ <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDE3NC4yNDggMTc0LjI0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTc0LjI0OCAxNzQuMjQ4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnPgoJPHBhdGggZD0iTTE3My4xNDUsNzMuOTFjLTAuNDEzLTIuNzIyLTIuMjktNC45OTMtNC44ODEtNS45MTJsLTEzLjcyNy00Ljg4MWMtMC44MTItMi4zLTEuNzMzLTQuNTM2LTIuNzU0LTYuNjk5bDYuMjQ3LTEzLjE0NiAgIGMxLjE3OS0yLjQ3OSwwLjg5OS01LjQxMS0wLjcyOS03LjYyOGMtNS4yNjUtNy4xNjEtMTEuNTU2LTEzLjQ1Mi0xOC42OTgtMTguNjkzYy0yLjIxOS0xLjYyOS01LjE0MS0xLjkwNi03LjYyNS0wLjcyNCAgIGwtMTMuMTM4LDYuMjQyYy0yLjE2My0xLjAyMS00LjQwMi0xLjk0LTYuNzA0LTIuNzUybC00Ljg4My0xMy43MjljLTAuOTE5LTIuNTg2LTMuMTg0LTQuNDU4LTUuOS00Ljg3NiAgIGMtOS42NS0xLjQ4My0xNi43OTItMS40ODMtMjYuNDU3LDBjLTIuNzEzLDAuNDE4LTQuOTgxLDIuMjktNS45LDQuODc2bC00Ljg4MywxMy43MjljLTIuMzAyLDAuODEyLTQuNTQxLDEuNzMxLTYuNzAyLDIuNzUyICAgbC0xMy4xNDMtNi4yNDJjLTIuNDc5LTEuMTgxLTUuNDA2LTAuOTA0LTcuNjIzLDAuNzI0Yy03LjE0Miw1LjI0MS0xMy40MzMsMTEuNTMyLTE4LjY5OCwxOC42OTMgICBjLTEuNjI5LDIuMjE3LTEuOTA4LDUuMTQ4LTAuNzI5LDcuNjI4bDYuMjQ3LDEzLjE0NmMtMS4wMjEsMi4xNTktMS45NCw0LjQtMi43NTQsNi42OTlMNS45ODIsNjguMDAzICAgYy0yLjU4OSwwLjkxOS00LjQ2MywzLjE4OS00Ljg3OSw1LjkwN2MtMC43NDksNC45Mi0xLjA5OSw5LjExNS0xLjA5OSwxMy4yMTljMCw0LjA5OCwwLjM1LDguMjk5LDEuMDk5LDEzLjIxOSAgIGMwLjQxMywyLjcyMiwyLjI5LDQuOTkzLDQuODgxLDUuOTEybDEzLjcyNyw0Ljg4MWMwLjgxNCwyLjMwNCwxLjczNiw0LjU0MSwyLjc1NCw2LjcwNGwtNi4yNDcsMTMuMTQxICAgYy0xLjE3OSwyLjQ3OS0wLjg5OSw1LjQxMSwwLjcyNyw3LjYyM2M1LjI1OCw3LjE1NiwxMS41NDksMTMuNDQ3LDE4LjcsMTguNjk4YzIuMjE3LDEuNjI5LDUuMTQ0LDEuOTExLDcuNjI1LDAuNzI0bDEzLjEzOC02LjI0MiAgIGMyLjE2MywxLjAyMSw0LjQwMiwxLjk0LDYuNzA0LDIuNzUybDQuODgzLDEzLjcyOWMwLjkxOSwyLjU4NiwzLjE4NCw0LjQ1OCw1LjksNC44NzZjNC44MjgsMC43NDQsOS4xNTQsMS4xMDQsMTMuMjI4LDEuMTA0ICAgYzQuMDc0LDAsOC40MDEtMC4zNiwxMy4yMjgtMS4xMDRjMi43MTUtMC40MTgsNC45ODEtMi4yOSw1LjktNC44NzZsNC44ODMtMTMuNzI5YzIuMzAyLTAuODEyLDQuNTQxLTEuNzMxLDYuNzA0LTIuNzUyICAgbDEzLjEzOCw2LjI0MmMyLjQ4NCwxLjE4Niw1LjQxMSwwLjkwNCw3LjYyOC0wLjcyNGM3LjE1OS01LjI2LDEzLjQ1LTExLjU1MSwxOC42OTgtMTguNjk4YzEuNjI2LTIuMjEyLDEuOTA2LTUuMTQ0LDAuNzI3LTcuNjIzICAgbC02LjI0Ny0xMy4xNDFjMS4wMjEtMi4xNjMsMS45NDItNC40MDUsMi43NTQtNi43MDRsMTMuNzI3LTQuODgxYzIuNTkxLTAuOTE5LDQuNDY4LTMuMTg5LDQuODgxLTUuOTEyICAgYzAuNzQ5LTQuOTIsMS4wOTktOS4xMiwxLjA5OS0xMy4yMTlTMTczLjg5NCw3OC44MjksMTczLjE0NSw3My45MXogTTE1OC45NDksOTMuNzJsLTEyLjg3OCw0LjU4ICAgYy0yLjI1MSwwLjc5Ny0zLjk4MiwyLjYyNS00LjY2LDQuOTJjLTEuMTUsMy44ODktMi42NjQsNy41NjktNC41MDQsMTAuOTQzYy0xLjE0MiwyLjEtMS4yMTMsNC42MTktMC4xODcsNi43NzdsNS44NDEsMTIuMjg1ICAgYy0yLjgyMiwzLjM4OS01Ljk0Myw2LjUxNS05LjMzNyw5LjMzNGwtMTIuMjgzLTUuODM0Yy0yLjE2MS0xLjAzNi00LjY3Mi0wLjk1My02Ljc3NSwwLjE4NWMtMy4zNzksMS44MzgtNy4wNjEsMy4zNS0xMC45NTMsNC41MDIgICBjLTIuMjksMC42NzYtNC4xMTgsMi40MDYtNC45MTcsNC42NTdsLTQuNTgyLDEyLjg4M2MtNC42NzcsMC40NzYtOC41MDMsMC40NzYtMTMuMTgsMGwtNC41ODItMTIuODgzICAgYy0wLjgtMi4yNDYtMi42MjgtMy45ODItNC45MTctNC42NTdjLTMuODk0LTEuMTUyLTcuNTc5LTIuNjY0LTEwLjk1My00LjUwMmMtMi4xMDMtMS4xNDctNC42MTktMS4yMi02Ljc3NS0wLjE4NWwtMTIuMjgzLDUuODM5ICAgYy0zLjM5MS0yLjgyNS02LjUxMi01Ljk0Ni05LjMzNy05LjMzOWw1Ljg0MS0xMi4yODVjMS4wMjYtMi4xNTksMC45NTUtNC42NzctMC4xODctNi43NzdjLTEuODM1LTMuMzY0LTMuMzUtNy4wNDktNC41MDQtMTAuOTQ4ICAgYy0wLjY3OC0yLjI5LTIuNDExLTQuMTE4LTQuNjYtNC45MTVsLTEyLjg3OC00LjU4Yy0wLjI0My0yLjM0My0wLjM2LTQuNTAyLTAuMzYtNi41OTJzMC4xMTctNC4yNDQsMC4zNi02LjU4N2wxMi44ODEtNC41ODQgICBjMi4yNDgtMC43OTcsMy45NzktMi42MjUsNC42NTctNC45MTVjMS4xNTItMy44ODksMi42NjctNy41NzQsNC41MDQtMTAuOTUzYzEuMTQyLTIuMDk1LDEuMjEzLTQuNjE5LDAuMTg3LTYuNzcybC01Ljg0MS0xMi4yODUgICBjMi44MjctMy4zOTMsNS45NDgtNi41MTksOS4zMzctOS4zMzlsMTIuMjg4LDUuODM5YzIuMTUxLDEuMDM2LDQuNjc3LDAuOTUzLDYuNzc1LTAuMTg1YzMuMzcyLTEuODM4LDcuMDU0LTMuMzUsMTAuOTQ4LTQuNTAyICAgYzIuMjktMC42NzYsNC4xMTgtMi40MTEsNC45MTctNC42NTdsNC41ODItMTIuODgzYzQuNjMzLTAuNDgxLDguNDY2LTAuNDgxLDEzLjE4LDBsNC41ODIsMTIuODgzICAgYzAuOCwyLjI0NiwyLjYyOCwzLjk4Miw0LjkxNyw0LjY1N2MzLjg5NCwxLjE1Miw3LjU3OSwyLjY2NCwxMC45NTMsNC41MDJjMi4xMDMsMS4xNDcsNC42MTQsMS4yMiw2Ljc3NSwwLjE4NWwxMi4yODMtNS44MzkgICBjMy4zODksMi44Miw2LjUxLDUuOTQ2LDkuMzM3LDkuMzM5bC01Ljg0MSwxMi4yODVjLTEuMDI2LDIuMTU0LTAuOTU1LDQuNjc3LDAuMTg3LDYuNzcyYzEuODQzLDMuMzg5LDMuMzU3LDcuMDY5LDQuNTA0LDEwLjk0OCAgIGMwLjY3OCwyLjI5NSwyLjQwOSw0LjEyMyw0LjY2LDQuOTJsMTIuODc4LDQuNThjMC4yNDMsMi4zNDMsMC4zNiw0LjUwMiwwLjM2LDYuNTkyUzE1OS4xOTIsOTEuMzc3LDE1OC45NDksOTMuNzJ6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8cGF0aCBkPSJNODcuMTI0LDUwLjgwMmMtMTkuMDYyLDAtMzQuNTcxLDE1LjUwOC0zNC41NzEsMzQuNTcxczE1LjUwOCwzNC41NzEsMzQuNTcxLDM0LjU3MXMzNC41NzEtMTUuNTA4LDM0LjU3MS0zNC41NzEgICBTMTA2LjE4Niw1MC44MDIsODcuMTI0LDUwLjgwMnogTTg3LjEyNCwxMDUuMDA5Yy0xMC44MjcsMC0xOS42MzYtOC44MDktMTkuNjM2LTE5LjYzNnM4LjgwOS0xOS42MzYsMTkuNjM2LTE5LjYzNiAgIHMxOS42MzYsOC44MDksMTkuNjM2LDE5LjYzNlM5Ny45NTEsMTA1LjAwOSw4Ny4xMjQsMTA1LjAwOXoiIGZpbGw9IiNGRkZGRkYiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" />
601
+ <span className="sliderTitle">REM Converter</span>
602
+ <span className="searchClose" onClick={this.toggleRemContainer}>
603
+ <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIxMi45ODIgMjEyLjk4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjEyLjk4MiAyMTIuOTgyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnIGlkPSJDbG9zZSI+Cgk8cGF0aCBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7IiBkPSJNMTMxLjgwNCwxMDYuNDkxbDc1LjkzNi03NS45MzZjNi45OS02Ljk5LDYuOTktMTguMzIzLDAtMjUuMzEyICAgYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBsLTc1LjkzNyw3NS45MzdMMzAuNTU0LDUuMjQyYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBjLTYuOTg5LDYuOTktNi45ODksMTguMzIzLDAsMjUuMzEyICAgbDc1LjkzNyw3NS45MzZMNS4yNDIsMTgyLjQyN2MtNi45ODksNi45OS02Ljk4OSwxOC4zMjMsMCwyNS4zMTJjNi45OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwbDc1LjkzNy03NS45MzdsNzUuOTM3LDc1LjkzNyAgIGM2Ljk4OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwYzYuOTktNi45OSw2Ljk5LTE4LjMyMiwwLTI1LjMxMkwxMzEuODA0LDEwNi40OTF6IiBmaWxsPSIjRkZGRkZGIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==" />
604
+ </span>
605
+ </div>
606
+ <div className="sliderFormContainer">
607
+ <div className="sliderInputContainer">
608
+ <label className="sliderInputTitle">Base font-size (in px)</label>
609
+ <input type="number" className="sliderInput" min="1" placeholder="Base font-size (in px)" value={rootSize} onChange={this.onChangeBase} />
610
+ </div>
611
+ <div className="sliderInputContainer">
612
+ <label className="sliderInputTitle">PX size to convert</label>
613
+ <input type="number" className="sliderInput" placeholder="PX size to convert" value={pixelSize} onChange={this.onChangePixel} />
614
+ </div>
615
+ <div className="sliderInputContainer">
616
+ <label className="sliderInputTitle">Result</label>
617
+ <div className="sliderResult">
618
+ <input type="text" className="sliderInput" placeholder="Result" value={resultRem} onChange={this.onChangeRem} />
619
+ <span id="remoutput" className="copyTxtHiden">{resultRem}</span>
620
+ <span className="copyResult" onClick={selectText.bind(this, 'remoutput')}>
621
+ <img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC4zIDQ4OC4zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0ODguMyA0ODguMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTMxNC4yNSw4NS40aC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42djMyNS43YzAsMjEuMywxNy4zLDM4LjYsMzguNiwzOC42aDIyN2MyMS4zLDAsMzguNi0xNy4zLDM4LjYtMzguNlYxMjQgICAgQzM1Mi43NSwxMDIuNywzMzUuNDUsODUuNCwzMTQuMjUsODUuNHogTTMyNS43NSw0NDkuNmMwLDYuNC01LjIsMTEuNi0xMS42LDExLjZoLTIyN2MtNi40LDAtMTEuNi01LjItMTEuNi0xMS42VjEyNCAgICBjMC02LjQsNS4yLTExLjYsMTEuNi0xMS42aDIyN2M2LjQsMCwxMS42LDUuMiwxMS42LDExLjZWNDQ5LjZ6IiBmaWxsPSIjRkZGRkZGIi8+CgkJPHBhdGggZD0iTTQwMS4wNSwwaC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42YzAsNy41LDYsMTMuNSwxMy41LDEzLjVzMTMuNS02LDEzLjUtMTMuNWMwLTYuNCw1LjItMTEuNiwxMS42LTExLjZoMjI3ICAgIGM2LjQsMCwxMS42LDUuMiwxMS42LDExLjZ2MzI1LjdjMCw2LjQtNS4yLDExLjYtMTEuNiwxMS42Yy03LjUsMC0xMy41LDYtMTMuNSwxMy41czYsMTMuNSwxMy41LDEzLjVjMjEuMywwLDM4LjYtMTcuMywzOC42LTM4LjYgICAgVjM4LjZDNDM5LjY1LDE3LjMsNDIyLjM1LDAsNDAxLjA1LDB6IiBmaWxsPSIjRkZGRkZGIi8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==" />
622
+ </span>
623
+ </div>
624
+ </div>
625
+ </div>
626
+ </div>
627
+ */}
628
+ </div>
629
+ </div>
630
+ </div>
631
+ <div className="flexgrow flexbasis">
632
+ <div id="container" className="dflex flexcolumn flexbasis">
633
+ {
634
+ infoTab == 'dashboard' ?
635
+ <div className='dflex flexcolumn'>
636
+ <div className="flexshrink cheader">
637
+ <div className="dflex flexrow flexbasis alignVertical">
638
+ <div className="flexshrink">
639
+ <h1 className="cheadertitle">{'Dashboard'}</h1>
640
+ </div>
641
+ <div className='flexgrow flexbasis infoTabs dflex'>
642
+ {
643
+ dashboardList.map((item, i) => {
644
+ return (
645
+ <span key={i} onClick={this.compList.bind(this, item.name)} className={this.state.compList == item.name ? 'dotted infoactive' : 'dotted'}>
646
+ {item.name}
647
+ </span>
648
+ )
649
+ })
650
+ }
651
+ </div>
652
+ </div>
653
+ </div>
654
+ <div className='flexgrow scrollY'>
655
+ {
656
+ dashboardList.map((item, i) => {
657
+ if (this.state.compList == item.name) {
658
+ return (
659
+ item.componentList.length > 0 ? <ul key={i}>
660
+ {
661
+ (item.componentList).map((component, val) => {
662
+ if (component !== undefined) {
663
+ return (<li key={val} className="compListItem">{component}</li>)
664
+ }
665
+ })
666
+ }
667
+ </ul> :
668
+ <div className='dflex alignHorizontal alignVertical flexcolumn'>
669
+ <span className='smileIcon'>
670
+ <svg className='svg'>
671
+ <use xlinkHref='#smileIcon'></use>
672
+ </svg>
673
+ </span>
674
+ <div>{'Sorry! there is no ' + this.state.compList + ' components'}</div>
675
+ </div>
676
+ )
677
+ }
678
+ })
679
+ }
680
+ </div>
681
+ </div>
682
+ : null
683
+ }
684
+ {
685
+ compName ?
686
+ <div className="flexshrink cheader">
687
+ <div className="dflex flexrow flexbasis alignVertical">
688
+ <div className="flexshrink"><h1 className="cheadertitle">{compName && compName.split('__')[compName.split('__').length -1]}</h1></div>
689
+ <div className='flexgrow flexbasis infoTabs dflex'>
690
+ <span onClick={this.onTabinfo.bind(this, 'component')} className={infoTab == 'component' ? 'dotted infoactive' : 'dotted'}>Component view</span>
691
+ <span onClick={this.onTabinfo.bind(this, 'proptypes')} className={infoTab == 'proptypes' ? 'dotted infoactive' : 'dotted'}>PropTypes</span>
692
+ <span onClick={this.onTabinfo.bind(this, 'code')} className={infoTab == 'code' ? 'dotted infoactive' : 'dotted'}>Docs Code</span>
693
+ {
694
+ /*
695
+ <span onClick={this.onTabinfo.bind(this,'src')} className={infoTab == 'src' ? 'dotted infoactive' : 'dotted'}>Source</span>
696
+ <span onClick={this.onTabinfo.bind(this,'visual')} className={infoTab == 'visual' ? 'dotted infoactive' : 'dotted'}>Visual Design</span>
697
+ */
698
+ }
699
+ <span onClick={this.onTabinfo.bind(this, 'references')} className={infoTab == 'references' ? 'dotted infoactive' : 'dotted'}>References</span>
700
+ </div>
701
+ </div>
702
+ </div>
703
+ : null
704
+ }
705
+
706
+ <div className="flexgrow flexbasis cfooter ">
707
+ <div className="dflex flexcolumn flexbasis">
708
+ <div className="flexgrow flexbasis ccontent">
709
+ {
710
+ infoTab == 'code' ?
711
+ <CodeView compName={compName} src={window.componentList ? window.componentList[compName].docs.source : Component[compName].docs.source} />
712
+ : null
713
+ }
714
+ {
715
+ infoTab == 'src' ?
716
+ <CodeView compName={compName + 'src'} src={window.componentList ? window.componentList[propComName].source : Component[propComName].source} />
717
+ : null
718
+ }
719
+ {
720
+ infoTab == 'component' &&
721
+ <div className='dflex flexcolumn'>
722
+ <div className={'flexgrow flexshrink flexbasis toolarea'}>
723
+ <section id="resize" style={{ "width": ((frameWidth) + 'px') }} className={"dflex flexcolumn flexbasis iframeSection" + " " + (frameWidth < 481 ? 'section' : '')}>
724
+ <span className="loadingText" id='loadingText'>
725
+ <div className="lds-ripple">
726
+ <div></div>
727
+ <div></div>
728
+ </div>
729
+ </span>
730
+ <iframe
731
+ id="componentIframe"
732
+ className="iframe"
733
+ src={'/docs/component.html' + location.hash}
734
+ mdata={mdata}
735
+ />
736
+ </section>
737
+ </div>
738
+ <div className={'flexshrink toolOptions'}>
739
+ <div className={'dflex flexrow alignVertical alignHorizontal'}>
740
+
741
+ <div className={'responsive offSelection'}>
742
+ <span className={"responsiveOption iconOption"} onClick={this.reloadFrame}>
743
+ <svg className='svg'>
744
+ <use xlinkHref='#reload'></use>
745
+ </svg>
746
+ </span>
747
+ <a className={'responsiveOption iconOption'} href={'/docs/component.html' + location.hash} target="_blank" >
748
+ <svg className='svg'>
749
+ <use xlinkHref='#newTab'></use>
750
+ </svg>
751
+ </a>
752
+ <span className={'responsiveOption iconOption' + ' ' + (this.state.isRTL ? 'activeOption transform' : '')} onClick={this.onRtlView}>
753
+ <svg className='svg'>
754
+ <use xlinkHref='#RTL'></use>
755
+ </svg>
756
+ </span>
757
+ <span className={'responsiveOption iconOption textSize' + ' ' + (this.state.isRem ? 'activeOption' : '')} onClick={this.onREMView} >
758
+ <svg className='svg'>
759
+ <use xlinkHref='#rem'></use>
760
+ </svg>
761
+ </span>
762
+ <span className={'responsiveOption iconOption textSize' + ' ' + (this.state.isEditMode ? 'activeOption' : '')} onClick={this.toggleEditMode} >
763
+ <svg className='svg'>
764
+ <use xlinkHref='#pencil'></use>
765
+ </svg>
766
+ </span>
767
+ <span className={'responsiveOption iconOption fullScreen' + ' ' + (this.state.isMenuClose ? 'activeOption' : '')} onClick={this.fullView} >
768
+ <svg className='svg'>
769
+ <use xlinkHref='#fullScreen'></use>
770
+ </svg>
771
+ </span>
772
+ </div>
773
+ <div className={'dflex alignVertical alignHorizontal range'}>
774
+ <input min='1' max='12' type='range' defaultValue='9' step='1' id="myRange" onChange={this.iframeSize} className='rangeInput' />
775
+ <span className='tooltip'>{this.state.device}</span>
776
+ {
777
+ this.state.windowSize ?
778
+ <React.Fragment>
779
+ <span className='window'>{this.state.windowSize.width}</span>
780
+ <span className='tooltipVal'>x</span>
781
+ <span className='window'>{this.state.windowSize.height}</span>
782
+ </React.Fragment> : null
783
+ }
784
+ </div>
785
+ </div>
786
+ </div>
787
+ </div>
788
+ }
789
+ {
790
+ infoTab === 'proptypes' ? (
791
+ propsObj.length ?
792
+ (
793
+ currentCompProps.map((result, i) => {
794
+ const currentDefaultProps = defaultProps[i] || { "undefined": '' };
795
+ const _defaultProps = Object.keys(currentDefaultProps)[0].split('_')[0];
796
+ defaultPropsArray.push(_defaultProps);
797
+ const compName = Object.keys(result)[0];
798
+ const _propTypes = Object.keys(result)[0].split('_')[0];
799
+ const _propTypesToDefaultProps = _propTypes + '_defaultProps';
800
+ const propInfo = result[compName];
801
+ _propTypesToDefaultPropsArray.push(defaultPropsArray.includes(_propTypes) ? _propTypesToDefaultProps : "undefined");
802
+
803
+ const currentPropDes = currentCompPropsDescription[i] || { "undefined": '' };
804
+ const _propDes = Object.keys(currentPropDes)[0].split('_')[0];
805
+ propsDesArray.push(_propDes);
806
+ const _propTypesToPropsDes = _propTypes + '_propsDescription';
807
+ _propTypesToPropsDesArray.push(propsDesArray.includes(_propTypes) ? _propTypesToPropsDes : "undefined");
808
+
809
+ return (
810
+ <div className='propsTableContainer'>
811
+ <div className="compName">{compName.split('_')[0]}</div>
812
+ <div className="propsTable" key={compName}>
813
+ <div className="tableHeader">
814
+ <span className="brR">PropsName</span>
815
+ <span className="brR">Type</span>
816
+ <span className="brR">isRequired</span>
817
+ <span className="brR">Default Props</span>
818
+ {
819
+ currentCompPropsDescription ? <span className="brR">Props Description</span> : null
820
+ }
821
+ </div>
822
+ {Object.keys(propInfo).sort().map((value, j) => (
823
+ <div
824
+ className={'tableHeader'}
825
+ key={`${i}-${j}`}
826
+ >
827
+ <span>
828
+ <div >{value}</div>
829
+ </span>
830
+ <span>
831
+ {(() => {
832
+ const hookInfo = propInfo[value];
833
+ const hookType = hookInfo && hookInfo.hookType;
834
+
835
+ if (!hookType) return null;
836
+
837
+ let typeTagClass = 'typeTag';
838
+
839
+ if (hookType === 'string') {
840
+ typeTagClass += ' stringType';
841
+ } else if (hookType === 'bool') {
842
+ typeTagClass += ' boolType';
843
+ } else if (hookType === 'func') {
844
+ typeTagClass += ' funcType';
845
+ } else if (hookType.includes('union') || hookType.includes('enum')) {
846
+ typeTagClass += ' oneOfType';
847
+ } else if (hookType === 'object') {
848
+ typeTagClass += ' objectType';
849
+ } else if (hookType === 'element') {
850
+ typeTagClass += ' elementType';
851
+ } else if (hookType === 'array') {
852
+ typeTagClass += ' arrayType';
853
+ } else if (hookType === 'shape') {
854
+ typeTagClass += ' shapeType';
855
+ } else if (hookType === 'number') {
856
+ typeTagClass += ' numberType';
857
+ }
858
+ return <div className={typeTagClass}>{this.getHookType(propInfo, value)}</div>;
859
+ })()}
860
+ </span>
861
+ <span>
862
+ {
863
+ propInfo[value] && propInfo[value].isRequired ? (
864
+ <input type="checkbox" disabled></input>
865
+ ) : (
866
+ <input type="checkbox" onclick="return false" checked></input>
867
+ )
868
+ }
869
+ </span>
870
+ <span>
871
+ <div>
872
+ {_propTypesToDefaultPropsArray[i] !== 'undefined'
873
+ ? JSON.stringify(
874
+ currentDefaultPropsArray.find(
875
+ (element) => Object.keys(element)[0] === _propTypesToDefaultPropsArray[i]
876
+ )[_propTypesToDefaultProps][value]
877
+ ) || '-'
878
+ : ''}
879
+ </div>
880
+ </span>
881
+ {
882
+ currentCompPropsDescription ? (
883
+ <span>
884
+ <div>
885
+ {
886
+ _propTypesToPropsDesArray[i] !== 'undefined'
887
+ ? currentCompPropsDescription.find(
888
+ (element) => Object.keys(element)[0] === _propTypesToPropsDesArray[i]
889
+ )[_propTypesToPropsDes][value] || '-'
890
+ : '-'
891
+ }
892
+ </div>
893
+ </span>
894
+ ) : null
895
+ }
896
+ </div>
897
+ ))}
898
+ </div>
899
+ </div>
900
+ );
901
+ })
902
+ ) : (
903
+ <div className='propsTableContainer'>
904
+ <div className="compName">{compName.split('__')[compName.split('__').length -1]}</div>
905
+ <div className="propsTable">
906
+ <div className="tableHeader">
907
+ <span className="brR">PropsName</span>
908
+ <span className="brR">Type</span>
909
+ <span className="brR">isRequired</span>
910
+ <span className="brR">Default Props</span>
911
+ {
912
+ Object.keys(currentCompPropsDescription).length > 0 ? <span className="brR">Props Description</span> : null
913
+ }
914
+ </div>
915
+ {
916
+ Object.keys(currentCompProps).sort().map((result, i) => {
917
+ return (
918
+ <div
919
+ className={'tableHeader'}
920
+ key={`${i}`}
921
+ >
922
+ <span>
923
+ <div>{result}</div>
924
+ </span>
925
+ <span>
926
+ {(() => {
927
+ const hookInfo = propsObj[result];
928
+ const hookType = hookInfo && hookInfo.hookType;
929
+
930
+ if (!hookType) return null;
931
+
932
+ let typeTagClass = 'typeTag';
933
+
934
+ if (hookType === 'string') {
935
+ typeTagClass += ' stringType';
936
+ } else if (hookType === 'bool') {
937
+ typeTagClass += ' boolType';
938
+ } else if (hookType === 'func') {
939
+ typeTagClass += ' funcType';
940
+ } else if (hookType.includes('union') || hookType.includes('enum')) {
941
+ typeTagClass += ' oneOfType';
942
+ } else if (hookType === 'object') {
943
+ typeTagClass += ' objectType';
944
+ } else if (hookType === 'element') {
945
+ typeTagClass += ' elementType';
946
+ } else if (hookType === 'array') {
947
+ typeTagClass += ' arrayType';
948
+ } else if (hookType === 'shape') {
949
+ typeTagClass += ' shapeType';
950
+ } else if (hookType === 'number') {
951
+ typeTagClass += ' numberType';
952
+ }
953
+ return <div className={typeTagClass}>{this.getHookType(propsObj, result)}</div>;
954
+ })()}
955
+ </span>
956
+ <span>
957
+ {
958
+ propsObj[result] && propsObj[result].isRequired ? (
959
+ <input type="checkbox" disabled></input>
960
+ ) : (
961
+ <input type="checkbox" onclick="return false" checked></input>
962
+ )
963
+ }
964
+ </span>
965
+ <span>
966
+ <div>{JSON.stringify(defaultProps[result]) || '-'}</div>
967
+ </span>
968
+ {
969
+ Object.keys(currentCompPropsDescription).length > 0 ? (
970
+ <span>
971
+ <div>{currentCompPropsDescription[result] || '-'}</div>
972
+ </span>
973
+ ) : null
974
+ }
975
+ </div>
976
+ );
977
+ })
978
+
979
+ }
980
+ </div>
981
+ </div>
982
+ )
983
+ ) : null
984
+ }
985
+ {
986
+ infoTab == 'references' ?
987
+ <div className="referContainer">
988
+ <div className='refsBy'>ReferencedBy :</div>
989
+ <ul>
990
+ {
991
+ compName ?
992
+ compName.indexOf('__') > -1 ?
993
+ mdata[compName.substring(0, compName.indexOf('_'))] &&
994
+ mdata[compName.substring(0, compName.indexOf('_'))].referencedby.map((val, i) => {
995
+ return (
996
+ <li key={i} className='refsLin'>
997
+ <a className="link" href={'#' + val}>
998
+ {val}
999
+ </a>
1000
+ </li>
1001
+ );
1002
+ })
1003
+ : mdata[compName].referencedby.map((val, i) => {
1004
+ return (
1005
+ <li key={i} className='refsLin'>
1006
+ <a className="link" href={'#' + val}>
1007
+ {val}
1008
+ </a>
1009
+ </li>
1010
+ );
1011
+ })
1012
+ : null
1013
+ }
1014
+ </ul>
1015
+ <div className='refsBy'>References : </div>
1016
+ <ul>
1017
+ {
1018
+ compName ? compName.indexOf('__') > -1
1019
+ ? mdata[
1020
+ compName.substring(0, compName.indexOf('_'))
1021
+ ] &&
1022
+ mdata[
1023
+ compName.substring(0, compName.indexOf('_'))
1024
+ ].references.map((val, i) => {
1025
+ return (
1026
+ <li key={i} className='refsLin'>
1027
+ <a className="link" href={'#' + val}>
1028
+ {val}
1029
+ </a>
1030
+ </li>
1031
+ );
1032
+ })
1033
+ : mdata[compName].references.map((val, i) => {
1034
+ return (
1035
+ <li key={i} className='refsLin'>
1036
+ <a className="link" href={'#' + val}>
1037
+ {val}
1038
+ </a>
1039
+ </li>
1040
+ );
1041
+ })
1042
+ : null
1043
+ }
1044
+ </ul>
1045
+ </div>
1046
+ : null
1047
+ }
1048
+ {
1049
+ /*infoTab == 'visual' ?
1050
+ <div>
1051
+ {
1052
+ Component[propComName] &&
1053
+ Component[propComName].docs &&
1054
+ Component[propComName].docs.images &&
1055
+ Component[propComName].docs.images.map(image => {
1056
+ return (
1057
+ <div className="psdContainer">
1058
+ <div className="imageContainer">
1059
+ <img className="psdImage" src={image.view} />
1060
+ </div>
1061
+ <div>
1062
+ <a className="psdLink" href={image.psd} target="_blank" download>
1063
+ Download PSD
1064
+ </a>
1065
+ </div>
1066
+ <div>
1067
+ <a className="psdLink" href={image.view} target="_blank" download>
1068
+ Download Image
1069
+ </a>
1070
+ </div>
1071
+ </div>
1072
+ );
1073
+ })
1074
+ }
1075
+ </div>
1076
+ : null */
1077
+ }
1078
+ </div>
1079
+ </div>
1080
+ </div>
1081
+ </div>
1082
+ </div>
1083
+ </main>
1084
+ );
1085
+ }
1086
+ }
1087
+ class Search extends React.Component {
1088
+ render() {
1089
+ return (
1090
+ <div className="searchContainer">
1091
+ <input
1092
+ type="text"
1093
+ onChange={this.props.onChange}
1094
+ placeholder="Search"
1095
+ className="inputSearch" value={this.props.value}
1096
+ />
1097
+ {this.props.value.length >= 1 &&
1098
+ <span className="searchClose" onClick={this.props.onClear}><img src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIxMi45ODIgMjEyLjk4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjEyLjk4MiAyMTIuOTgyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnIGlkPSJDbG9zZSI+Cgk8cGF0aCBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7IiBkPSJNMTMxLjgwNCwxMDYuNDkxbDc1LjkzNi03NS45MzZjNi45OS02Ljk5LDYuOTktMTguMzIzLDAtMjUuMzEyICAgYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBsLTc1LjkzNyw3NS45MzdMMzAuNTU0LDUuMjQyYy02Ljk5LTYuOTktMTguMzIyLTYuOTktMjUuMzEyLDBjLTYuOTg5LDYuOTktNi45ODksMTguMzIzLDAsMjUuMzEyICAgbDc1LjkzNyw3NS45MzZMNS4yNDIsMTgyLjQyN2MtNi45ODksNi45OS02Ljk4OSwxOC4zMjMsMCwyNS4zMTJjNi45OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwbDc1LjkzNy03NS45MzdsNzUuOTM3LDc1LjkzNyAgIGM2Ljk4OSw2Ljk5LDE4LjMyMiw2Ljk5LDI1LjMxMiwwYzYuOTktNi45OSw2Ljk5LTE4LjMyMiwwLTI1LjMxMkwxMzEuODA0LDEwNi40OTF6IiBmaWxsPSIjRkZGRkZGIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==" /></span>}
1099
+ </div>
1100
+ );
1101
+ }
1102
+ }
1103
+
1104
+ class ComponentList extends React.Component {
1105
+ constructor(props) {
1106
+ super(props);
1107
+ this.state = {
1108
+ toggle: false
1109
+ };
1110
+ }
1111
+ componentDidMount() {
1112
+ let { type, viewGroup } = this.props;
1113
+ let element = document.getElementById(type);
1114
+ viewGroup == type && element ?
1115
+ element.scrollIntoView(true) && element.scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest" })
1116
+ : null
1117
+ }
1118
+
1119
+ render() {
1120
+ const { components, type, toggleGroup, viewGroup } = this.props;
1121
+ let classNameTab = type == viewGroup ? " selected " : '';
1122
+
1123
+ return (
1124
+ <div data-title={type}>
1125
+ {
1126
+ components.length > 0 && <div className={"listItem dflex flexrow flexbasis alignVertical offSelection " + classNameTab} onClick={toggleGroup.bind(this, type)} id={type}>
1127
+ <i className={"flexshrink listIcon"}>
1128
+ <svg className='svg'>
1129
+ <use xlinkHref='#folder'></use>
1130
+ </svg>
1131
+ </i>
1132
+ <span className="dotted flexgrow flexbasis listTitle">{type}</span>
1133
+ {
1134
+ components.length > 0 && <i className={"flexshrink listCount"}>{(components.filter(function (el) { return el.toLowerCase().indexOf('__') > -1 }).length)}</i>
1135
+ }
1136
+ </div>
1137
+ }
1138
+ <div className={viewGroup == type ? 'activeComponent' : 'hide'}>
1139
+ {
1140
+ components.map((component, i) => {
1141
+ let docsComp = component.search('__');
1142
+ return (
1143
+ <div className={((docsComp == -1) ? "componentMain" : "componentDocs")} key={'component' + i} >
1144
+ <a
1145
+ href={docsComp == -1 && type != 'Global' && type != 'Page' ? 'javascript:void(0);' : '#' + component}
1146
+ className={"dflex flexrow flexbasis alignVertical offSelection " + (this.props.selectedComponent == '#' + component ? 'active' : '')} >
1147
+ <i className={"listIcon"}>
1148
+ <svg className='svg'>
1149
+ <use xlinkHref='#file'></use>
1150
+ </svg>
1151
+ </i>
1152
+ <span className="dotted flexgrow flexbasis listTitle"> {docsComp == -1 ? component : component.split('__')[1]}</span>
1153
+ {(components.filter(function (el) { return el.indexOf(component + '__') > -1 }).length) > 0 && (docsComp == -1) && <i className={"flexshrink listCount subCount"}>{(components.filter(function (el) { return el.indexOf(component + '__') > -1 }).length)}</i>}
1154
+ </a>
1155
+ </div>
1156
+ );
1157
+ })}
1158
+ </div>
1159
+ </div>
1160
+ );
1161
+ }
1162
+ }
1163
+
1164
+ class CodeView extends React.Component {
1165
+ constructor(props) {
1166
+ super(props);
1167
+
1168
+ }
1169
+ componentDidMount() {
1170
+ hljs.highlightAll();
1171
+ }
1172
+
1173
+ render() {
1174
+ let { src, compName } = this.props
1175
+ return (
1176
+ <pre className="CodeTag">
1177
+ <code class="javascript hljs language-javascript" id="code-block">
1178
+ {src}
1179
+ </code>
1180
+ </pre>
1181
+ );
1182
+ }
1183
+ }
1184
+ var user = {
1185
+ componentObj: {},
1186
+ componentList: {},
1187
+ dupCompList: [],
1188
+ objList: function (fName, gName, key, comp) {
1189
+ if (this.componentList[key]) {
1190
+ this.componentList[key] = comp;
1191
+ this.dupCompList.push(key)
1192
+ }
1193
+ else {
1194
+ this.componentList[key] = comp;
1195
+ }
1196
+ if (gName) {
1197
+ if (!this.componentObj[fName]) {
1198
+ this.componentObj[fName] = {}
1199
+ }
1200
+ if (!this.componentObj[fName][gName]) {
1201
+ this.componentObj[fName][gName] = [];
1202
+ this.componentObj[fName][gName].push(key)
1203
+ }
1204
+ else {
1205
+ this.componentObj[fName][gName].push(key)
1206
+ }
1207
+ }
1208
+ return { componentObj: this.componentObj, componentList: this.componentList }
1209
+ },
1210
+ renderDoc: function (compOBJ, dupCompList) {
1211
+ return (
1212
+ ReactDOM.render(
1213
+ <Doc
1214
+ components={Component}
1215
+ componentObj={compOBJ}
1216
+ duplicates={dupCompList}
1217
+ />,
1218
+ react
1219
+ )
1220
+ )
1221
+ }
1222
+ }
1223
+ var compGroupObj = function (comp, key, compGroup) {
1224
+ if (comp == 'React' || comp == 'ReactDOM' || comp == 'renderToStaticMarkup') {
1225
+ return;
1226
+ }
1227
+ else if (comp == '_provider') {
1228
+ return user.objList(null, null, comp, compGroup[comp])
1229
+ }
1230
+ else {
1231
+ if (compGroup[comp].docs && compGroup[comp].docs.componentGroup) {
1232
+ let groupName = compGroup[comp].docs.componentGroup;
1233
+ let folderName = compGroup[comp].docs.folderName || "General";
1234
+ if (comp == 'default') {
1235
+ return user.objList(folderName, groupName, key, compGroup[comp])
1236
+ }
1237
+ else {
1238
+ return user.objList(folderName, groupName, comp, compGroup[comp])
1239
+ }
1240
+ }
1241
+ }
1242
+ }
1243
+ Promise.all(Object.keys(Component).map((key) => {
1244
+ let componentKey = Component[key];
1245
+ if (key == 'React' || key == 'ReactDOM' || key == 'renderToStaticMarkup') {
1246
+ return;
1247
+ }
1248
+ if (key == '_provider') {
1249
+ return compGroupObj(key, null, Component)
1250
+ }
1251
+ try {
1252
+ return (
1253
+ componentKey && componentKey.then((res) => {
1254
+ let compList;
1255
+ Object.keys(res).forEach((comp) => {
1256
+ let compGroup = res[comp];
1257
+ Object.keys(compGroup).forEach((comps) => {
1258
+ compGroupObj(comps, key, compGroup)
1259
+ })
1260
+ })
1261
+ })
1262
+ )
1263
+ } catch (error) {
1264
+ compGroupObj(key, null, Component)
1265
+ }
1266
+ })).then(() => {
1267
+ window.componentList = user.componentList
1268
+ user.renderDoc(user.componentObj, user.dupCompList)
1269
+ })
1270
+ };
1271
+ var onLoader = function () {
1272
+ // Minimum resizable area
1273
+ var minWidth = 60;
1274
+ var minHeight = 40;
1275
+
1276
+ // Thresholds
1277
+ var FULLSCREEN_MARGINS = -10;
1278
+ var MARGINS = 15;
1279
+
1280
+ // End of what's configurable.
1281
+ var clicked = null;
1282
+ var onRightEdge, onBottomEdge, onLeftEdge, onTopEdge;
1283
+
1284
+ var rightScreenEdge, bottomScreenEdge;
1285
+
1286
+ var preSnapped;
1287
+
1288
+ var b, x, y;
1289
+
1290
+ var redraw = false;
1291
+
1292
+ var pane = document.getElementById('resize');
1293
+ var ghostpane = document.getElementById('ghostpane');
1294
+ function setBounds(element, x, y, w, h) {
1295
+ element.style.left = x + 'px';
1296
+ element.style.top = y + 'px';
1297
+ element.style.width = w + 'px';
1298
+ element.style.height = h + 'px';
1299
+ }
1300
+
1301
+ function hintHide() {
1302
+ //setBounds(ghostpane, b.left, b.top, b.width, b.height);
1303
+ //ghostpane.style.opacity = 0;
1304
+ // var b = ghostpane.getBoundingClientRect();
1305
+ // ghostpane.style.top = b.top + b.height / 2;
1306
+ // ghostpane.style.left = b.left + b.width / 2;
1307
+ // ghostpane.style.width = 0;
1308
+ // ghostpane.style.height = 0;
1309
+ }
1310
+
1311
+ // Mouse events
1312
+ pane && pane.addEventListener('mousedown', onMouseDown);
1313
+ pane && document.addEventListener('mousemove', onMove);
1314
+ pane && document.addEventListener('mouseup', onUp);
1315
+
1316
+ // Touch events
1317
+ pane && pane.addEventListener('touchstart', onTouchDown);
1318
+ pane && document.addEventListener('touchmove', onTouchMove);
1319
+ pane && document.addEventListener('touchend', onTouchEnd);
1320
+
1321
+ function onTouchDown(e) {
1322
+ onDown(e.touches[0]);
1323
+ e.preventDefault();
1324
+ }
1325
+
1326
+ function onTouchMove(e) {
1327
+ onMove(e.touches[0]);
1328
+ }
1329
+
1330
+ function onTouchEnd(e) {
1331
+ if (e.touches.length == 0) onUp(e.changedTouches[0]);
1332
+ }
1333
+
1334
+ function onMouseDown(e) {
1335
+ onDown(e);
1336
+ e.preventDefault();
1337
+ }
1338
+
1339
+ function onDown(e) {
1340
+ calc(e);
1341
+
1342
+ var isResizing = onRightEdge || onBottomEdge || onTopEdge || onLeftEdge;
1343
+
1344
+ clicked = {
1345
+ x: x,
1346
+ y: y,
1347
+ cx: e.clientX,
1348
+ cy: e.clientY,
1349
+ w: b.width,
1350
+ h: b.height,
1351
+ isResizing: isResizing,
1352
+ isMoving: !isResizing && canMove(),
1353
+ onTopEdge: onTopEdge,
1354
+ onLeftEdge: onLeftEdge,
1355
+ onRightEdge: onRightEdge,
1356
+ onBottomEdge: onBottomEdge
1357
+ };
1358
+ }
1359
+
1360
+ function canMove() {
1361
+ return x > 0 && x < b.width && y > 0 && y < b.height && y < 30;
1362
+ }
1363
+
1364
+ function calc(e) {
1365
+ b = pane.getBoundingClientRect();
1366
+ x = e.clientX - b.left;
1367
+ y = e.clientY - b.top;
1368
+
1369
+ onTopEdge = y < MARGINS;
1370
+ onLeftEdge = x < MARGINS;
1371
+ onRightEdge = x >= b.width - MARGINS;
1372
+ onBottomEdge = y >= b.height - MARGINS;
1373
+
1374
+ rightScreenEdge = window.innerWidth - MARGINS;
1375
+ bottomScreenEdge = window.innerHeight - MARGINS;
1376
+ }
1377
+
1378
+ var e;
1379
+
1380
+ function onMove(ee) {
1381
+ calc(ee);
1382
+
1383
+ e = ee;
1384
+
1385
+ redraw = true;
1386
+ }
1387
+
1388
+ function animate() {
1389
+ requestAnimationFrame(animate);
1390
+
1391
+ if (!redraw) return;
1392
+
1393
+ redraw = false;
1394
+
1395
+ if (clicked && clicked.isResizing) {
1396
+ if (clicked.onRightEdge) pane.style.width = Math.max(x, minWidth) + 'px';
1397
+ if (clicked.onBottomEdge)
1398
+ pane.style.height = Math.max(y, minHeight) + 'px';
1399
+
1400
+ if (clicked.onLeftEdge) {
1401
+ var currentWidth = Math.max(
1402
+ clicked.cx - e.clientX + clicked.w,
1403
+ minWidth
1404
+ );
1405
+ if (currentWidth > minWidth) {
1406
+ pane.style.width = currentWidth + 'px';
1407
+ // pane.style.left = e.clientX + 'px';
1408
+ }
1409
+ }
1410
+
1411
+ if (clicked.onTopEdge) {
1412
+ var currentHeight = Math.max(
1413
+ clicked.cy - e.clientY + clicked.h,
1414
+ minHeight
1415
+ );
1416
+ if (currentHeight > minHeight) {
1417
+ pane.style.height = currentHeight + 'px';
1418
+ pane.style.top = e.clientY + 'px';
1419
+ }
1420
+ }
1421
+
1422
+ hintHide();
1423
+
1424
+ return;
1425
+ }
1426
+
1427
+ if (clicked && clicked.isMoving) {
1428
+ if (
1429
+ b.top < FULLSCREEN_MARGINS ||
1430
+ b.left < FULLSCREEN_MARGINS ||
1431
+ b.right > window.innerWidth - FULLSCREEN_MARGINS ||
1432
+ b.bottom > window.innerHeight - FULLSCREEN_MARGINS
1433
+ ) {
1434
+ // hintFull();
1435
+ setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight);
1436
+ ghostpane.style.opacity = 0.2;
1437
+ } else if (b.top < MARGINS) {
1438
+ // hintTop();
1439
+ setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight / 2);
1440
+ ghostpane.style.opacity = 0.2;
1441
+ } else if (b.left < MARGINS) {
1442
+ // hintLeft();
1443
+ setBounds(ghostpane, 0, 0, window.innerWidth / 2, window.innerHeight);
1444
+ ghostpane.style.opacity = 0.2;
1445
+ } else if (b.right > rightScreenEdge) {
1446
+ // hintRight();
1447
+ setBounds(
1448
+ ghostpane,
1449
+ window.innerWidth / 2,
1450
+ 0,
1451
+ window.innerWidth / 2,
1452
+ window.innerHeight
1453
+ );
1454
+ ghostpane.style.opacity = 0.2;
1455
+ } else if (b.bottom > bottomScreenEdge) {
1456
+ // hintBottom();
1457
+ setBounds(
1458
+ ghostpane,
1459
+ 0,
1460
+ window.innerHeight / 2,
1461
+ window.innerWidth,
1462
+ window.innerWidth / 2
1463
+ );
1464
+ ghostpane.style.opacity = 0.2;
1465
+ } else {
1466
+ hintHide();
1467
+ }
1468
+
1469
+ if (preSnapped) {
1470
+ setBounds(
1471
+ pane,
1472
+ e.clientX - preSnapped.width / 2,
1473
+ e.clientY - Math.min(clicked.y, preSnapped.height),
1474
+ preSnapped.width,
1475
+ preSnapped.height
1476
+ );
1477
+ return;
1478
+ }
1479
+
1480
+ // moving
1481
+ pane.style.top = e.clientY - clicked.y + 'px';
1482
+ //pane.style.left = e.clientX - clicked.x + 'px';
1483
+
1484
+ return;
1485
+ }
1486
+
1487
+ // This code executes when mouse moves without clicking
1488
+
1489
+ // style cursor
1490
+ if ((onRightEdge && onBottomEdge) || (onLeftEdge && onTopEdge)) {
1491
+ pane.style.cursor = 'nwse-resize';
1492
+ } else if ((onRightEdge && onTopEdge) || (onBottomEdge && onLeftEdge)) {
1493
+ pane.style.cursor = 'nesw-resize';
1494
+ } else if (onRightEdge || onLeftEdge) {
1495
+ pane.style.cursor = 'ew-resize';
1496
+ } else if (onBottomEdge || onTopEdge) {
1497
+ pane.style.cursor = 'ns-resize';
1498
+ } else if (canMove()) {
1499
+ pane.style.cursor = 'move';
1500
+ } else {
1501
+ pane.style.cursor = 'default';
1502
+ }
1503
+ }
1504
+
1505
+ animate();
1506
+
1507
+ function onUp(e) {
1508
+ calc(e);
1509
+
1510
+ if (clicked && clicked.isMoving) {
1511
+ // Snap
1512
+ var snapped = {
1513
+ width: b.width,
1514
+ height: b.height
1515
+ };
1516
+
1517
+ if (
1518
+ b.top < FULLSCREEN_MARGINS ||
1519
+ b.left < FULLSCREEN_MARGINS ||
1520
+ b.right > window.innerWidth - FULLSCREEN_MARGINS ||
1521
+ b.bottom > window.innerHeight - FULLSCREEN_MARGINS
1522
+ ) {
1523
+ // hintFull();
1524
+ setBounds(pane, 0, 0, window.innerWidth, window.innerHeight);
1525
+ preSnapped = snapped;
1526
+ } else if (b.top < MARGINS) {
1527
+ // hintTop();
1528
+ setBounds(pane, 0, 0, window.innerWidth, window.innerHeight / 2);
1529
+ preSnapped = snapped;
1530
+ } else if (b.left < MARGINS) {
1531
+ // hintLeft();
1532
+ setBounds(pane, 0, 0, window.innerWidth / 2, window.innerHeight);
1533
+ preSnapped = snapped;
1534
+ } else if (b.right > rightScreenEdge) {
1535
+ // hintRight();
1536
+ setBounds(
1537
+ pane,
1538
+ window.innerWidth / 2,
1539
+ 0,
1540
+ window.innerWidth / 2,
1541
+ window.innerHeight
1542
+ );
1543
+ preSnapped = snapped;
1544
+ } else if (b.bottom > bottomScreenEdge) {
1545
+ // hintBottom();
1546
+ setBounds(
1547
+ pane,
1548
+ 0,
1549
+ window.innerHeight / 2,
1550
+ window.innerWidth,
1551
+ window.innerWidth / 2
1552
+ );
1553
+ preSnapped = snapped;
1554
+ } else {
1555
+ preSnapped = null;
1556
+ }
1557
+
1558
+ hintHide();
1559
+ }
1560
+
1561
+ clicked = null;
1562
+ }
1563
+ };
1564
+
1565
+ </script>
1566
+ <script type="text/javascript">
1567
+ var html =
1568
+ "<body><script src='/docs/js/vendor.js'><\/script><script src='/docs/js/main.js'><\/script><script src='/docs/js/moduleStats.js'><\/script> <script> if(typeof mdata==\"undefined\"){mdata={};}parent.loadDOC(Component, mdata) <\/script> <\/body>";
1569
+ var iframe = document.getElementById('ifm');
1570
+ var frameDoc = iframe.document;
1571
+ if (iframe.contentWindow) {
1572
+ frameDoc = iframe.contentWindow.document;
1573
+ frameDoc.open();
1574
+ frameDoc.writeln(html);
1575
+ frameDoc.close();
1576
+ } else {
1577
+ }
1578
+ </script>
1579
+ <div style="visibility: hidden;height: 0;width: 0;height:0">
1580
+ <svg xmlSpace="preserve" version="1.1" xmlns="http://www.w3.org/2000/svg"
1581
+ xmlnsXlink="http://www.w3.org/1999/xlink">
1582
+ <symbol id="home" x="0px" y="0px" viewBox="0 0 495.398 495.398" fill='#FFFFFF'
1583
+ enableBackground="new 0 0 495.398 495.398">
1584
+ <path
1585
+ d="M487.083,225.514l-75.08-75.08V63.704c0-15.682-12.708-28.391-28.413-28.391c-15.669,0-28.377,12.709-28.377,28.391 v29.941L299.31,37.74c-27.639-27.624-75.694-27.575-103.27,0.05L8.312,225.514c-11.082,11.104-11.082,29.071,0,40.158 c11.087,11.101,29.089,11.101,40.172,0l187.71-187.729c6.115-6.083,16.893-6.083,22.976-0.018l187.742,187.747 c5.567,5.551,12.825,8.312,20.081,8.312c7.271,0,14.541-2.764,20.091-8.312C498.17,254.586,498.17,236.619,487.083,225.514z" />
1586
+ <path
1587
+ d="M257.561,131.836c-5.454-5.451-14.285-5.451-19.723,0L72.712,296.913c-2.607,2.606-4.085,6.164-4.085,9.877v120.401 c0,28.253,22.908,51.16,51.16,51.16h81.754v-126.61h92.299v126.61h81.755c28.251,0,51.159-22.907,51.159-51.159V306.79 c0-3.713-1.465-7.271-4.085-9.877L257.561,131.836z" />
1588
+ </symbol>
1589
+ <symbol id='bottomArrow' viewBox="0 0 792 792">
1590
+ <polygon
1591
+ points="580.802,369.604 580.802,369.604 211.198,0 184.802,26.396 554.405,396 184.802,765.604 211.198,792 607.198,396" />
1592
+
1593
+ </symbol>
1594
+ <symbol id="reload" viewBox="0 0 28.265 28.265">
1595
+ <path
1596
+ d="M14.133,28.265c-7.061,0-12.805-5.75-12.805-12.809c0-7.06,5.744-12.807,12.805-12.807c0.469,0,0.943,0.027,1.414,0.08 v-2.07c0-0.266,0.164-0.508,0.406-0.611c0.252-0.098,0.531-0.043,0.723,0.148l4.537,4.547c0.258,0.258,0.258,0.67,0,0.932 l-4.535,4.557c-0.193,0.188-0.473,0.246-0.725,0.143c-0.242-0.104-0.406-0.344-0.406-0.609V7.47 c-0.469-0.086-0.941-0.125-1.414-0.125c-4.473,0-8.113,3.639-8.113,8.111c0,4.471,3.641,8.113,8.113,8.113s8.111-3.643,8.111-8.113 c0-0.363,0.295-0.66,0.662-0.66h3.369c0.365,0,0.662,0.297,0.662,0.66C26.937,22.515,21.189,28.265,14.133,28.265z" />
1597
+ </symbol>
1598
+ <symbol id='newTab' x="0px" y="0px" viewBox="0 0 26 26" enableBackground='new 0 0 26 26'>
1599
+ <path
1600
+ d="M18,17.759v3.366C18,22.159,17.159,23,16.125,23H4.875C3.841,23,3,22.159,3,21.125V9.875C3,8.841,3.841,8,4.875,8h3.429l3.001-3h-6.43C2.182,5,0,7.182,0,9.875v11.25C0,23.818,2.182,26,4.875,26h11.25C18.818,26,21,23.818,21,21.125v-6.367L18,17.759z" />
1601
+ <path
1602
+ d="M22.581,0H12.322c-1.886,0.002-1.755,0.51-0.76,1.504l3.22,3.22l-5.52,5.519c-1.145,1.144-1.144,2.998,0,4.141l2.41,2.411c1.144,1.141,2.996,1.142,4.14-0.001l5.52-5.52l3.16,3.16c1.101,1.1,1.507,1.129,1.507-0.757L26,3.419C25.999-0.018,26.024-0.001,22.581,0z" />
1603
+ </symbol>
1604
+ <symbol id='RTL' width="13" height="16" viewBox="0 0 13 16" fill="none">
1605
+ <path
1606
+ d="M12.2415 0.318399H3.92167C3.37879 0.318399 2.87197 0.404799 2.39552 0.575999C1.92097 0.747199 1.50527 0.984 1.15221 1.2848C0.799141 1.5856 0.518208 1.936 0.311304 2.3376C0.104401 2.7392 0 3.1632 0 3.616C0 4.0736 0.104401 4.5008 0.311304 4.9024C0.518208 5.3024 0.799141 5.6528 1.15221 5.9552C1.50527 6.2576 1.92097 6.4928 2.39552 6.664C2.87007 6.8352 3.37879 6.9216 3.92167 6.9216H4.89735V10.6368C4.89735 10.7504 4.9448 10.8464 5.04161 10.9264C5.13842 11.0064 5.25231 11.048 5.38518 11.048C5.52565 11.048 5.64334 11.008 5.73825 10.9264C5.83316 10.8464 5.88251 10.7488 5.88251 10.6368V1.1408H8.81902V10.6368C8.81902 10.7504 8.86648 10.8464 8.96328 10.9264C9.06009 11.0064 9.17398 11.048 9.30686 11.048C9.44163 11.048 9.55552 11.008 9.65043 10.9264C9.74534 10.8448 9.79469 10.7488 9.79469 10.6368V1.1408H12.2434C12.3781 1.1408 12.492 1.1008 12.5869 1.0192C12.6818 0.9376 12.7312 0.841599 12.7312 0.729599C12.7312 0.615999 12.6837 0.52 12.5869 0.44C12.4901 0.36 12.3762 0.318399 12.2415 0.318399ZM4.89735 6.0992H3.92167C3.51356 6.0992 3.13013 6.0336 2.77326 5.9024C2.4164 5.7712 2.1051 5.5936 1.84125 5.3696C1.5774 5.1472 1.3686 4.8848 1.21485 4.584C1.06109 4.2832 0.985164 3.96 0.985164 3.616C0.985164 3.2768 1.06109 2.9584 1.21485 2.656C1.3686 2.3552 1.5774 2.0928 1.84125 1.8704C2.1051 1.648 2.4164 1.4704 2.77326 1.3376C3.13013 1.2064 3.51356 1.1408 3.92167 1.1408H4.89735V6.0992ZM11.2658 13.5232H2.16205L3.29147 12.5792C3.38638 12.4992 3.43574 12.4 3.43574 12.2848C3.43574 12.1696 3.38828 12.0704 3.29147 11.9904C3.19656 11.9104 3.07887 11.8688 2.9422 11.8688C2.80553 11.8688 2.68785 11.9088 2.59294 11.9904L0.630201 13.6448C0.535291 13.7248 0.485938 13.824 0.485938 13.9392C0.485938 14.0544 0.533393 14.1536 0.630201 14.2336L2.59104 15.8784C2.64229 15.9216 2.69734 15.952 2.75808 15.9712C2.81882 15.9904 2.87767 16 2.93461 16C2.99915 16 3.05989 15.9904 3.12064 15.9712C3.18138 15.952 3.23642 15.9216 3.28768 15.8784C3.38259 15.7984 3.43194 15.7008 3.43194 15.5888C3.43194 15.4752 3.38448 15.3792 3.28768 15.2992L2.15825 14.3552H11.2639C11.3987 14.3552 11.5126 14.3152 11.6075 14.2336C11.7024 14.1536 11.7517 14.0528 11.7517 13.936C11.7517 13.8224 11.7043 13.7264 11.6075 13.6464C11.5145 13.5632 11.4006 13.5232 11.2658 13.5232Z"
1607
+ fill="white" />
1608
+ </symbol>
1609
+ <symbol id="rem" enableBackground="new 0 0 458.353 458.353" viewBox="0 0 458.353 458.353">
1610
+ <path
1611
+ d="m415.382 200.529h42.971l-57.294-57.294-57.294 57.294h42.971v171.882h-42.971l57.294 57.294 57.294-57.294h-42.971z" />
1612
+ <path
1613
+ d="m343.765 85.941v-85.941h-343.765v85.941h28.647v-57.294h128.912v401.059h-71.618v28.647h171.882v-28.647h-71.618v-401.059h128.912v57.294z" />
1614
+ </symbol>
1615
+ <symbol id='fullScreen' viewBox="0 0 18 18">
1616
+ <path
1617
+ d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z" />
1618
+ </symbol>
1619
+ <symbol id='folder' viewBox="0 0 60 60">
1620
+ <path
1621
+ d="M56.98,11.5H28.02V6.52c0-1.665-1.354-3.02-3.02-3.02H3.02C1.354,3.5,0,4.854,0,6.52V20.5v2v30.98 c0,1.665,1.354,3.02,3.02,3.02H56.98c1.665,0,3.02-1.354,3.02-3.02V22.5v-2v-5.98C60,12.854,58.646,11.5,56.98,11.5z M58,53.48 c0,0.563-0.457,1.02-1.02,1.02H3.02C2.457,54.5,2,54.043,2,53.48V22.5h56V53.48z M2,20.5V6.52C2,5.957,2.457,5.5,3.02,5.5H25 c0.562,0,1.02,0.457,1.02,1.02v6.98H56.98c0.563,0,1.02,0.457,1.02,1.02v5.98H2z"
1622
+ fill="#FFFFFF" />
1623
+ </symbol>
1624
+ <symbol id='file' viewBox="0 0 512 512">
1625
+ <path
1626
+ d="M405.333,42.667h-44.632c-4.418-12.389-16.147-21.333-30.035-21.333h-32.219C288.427,8.042,272.677,0,256,0 s-32.427,8.042-42.448,21.333h-32.219c-13.888,0-25.617,8.944-30.035,21.333h-44.631C83.135,42.667,64,61.802,64,85.333v384 C64,492.865,83.135,512,106.667,512h298.667C428.865,512,448,492.865,448,469.333v-384C448,61.802,428.865,42.667,405.333,42.667 z M170.667,53.333c0-5.885,4.781-10.667,10.667-10.667h37.917c3.792,0,7.302-2.021,9.219-5.302 c5.844-10.042,16.135-16.031,27.531-16.031s21.688,5.99,27.531,16.031c1.917,3.281,5.427,5.302,9.219,5.302h37.917 c5.885,0,10.667,4.781,10.667,10.667V64c0,11.76-9.573,21.333-21.333,21.333H192c-11.76,0-21.333-9.573-21.333-21.333V53.333z M426.667,469.333c0,11.76-9.573,21.333-21.333,21.333H106.667c-11.76,0-21.333-9.573-21.333-21.333v-384 c0-11.76,9.573-21.333,21.333-21.333h42.667c0,23.531,19.135,42.667,42.667,42.667h128c23.531,0,42.667-19.135,42.667-42.667 h42.667c11.76,0,21.333,9.573,21.333,21.333V469.333z"
1627
+ fill="#FFFFFF" />
1628
+ <path
1629
+ d="M352,234.667H160c-5.896,0-10.667,4.771-10.667,10.667c0,5.896,4.771,10.667,10.667,10.667h192 c5.896,0,10.667-4.771,10.667-10.667C362.667,239.438,357.896,234.667,352,234.667z"
1630
+ fill="#FFFFFF" />
1631
+ <path
1632
+ d="M352,277.333H160c-5.896,0-10.667,4.771-10.667,10.667s4.771,10.667,10.667,10.667h192 c5.896,0,10.667-4.771,10.667-10.667S357.896,277.333,352,277.333z"
1633
+ fill="#FFFFFF" />
1634
+ <path
1635
+ d="M352,320H160c-5.896,0-10.667,4.771-10.667,10.667c0,5.896,4.771,10.667,10.667,10.667h192 c5.896,0,10.667-4.771,10.667-10.667C362.667,324.771,357.896,320,352,320z"
1636
+ fill="#FFFFFF" />
1637
+ <path
1638
+ d="M266.667,362.667H160c-5.896,0-10.667,4.771-10.667,10.667c0,5.896,4.771,10.667,10.667,10.667h106.667 c5.896,0,10.667-4.771,10.667-10.667C277.333,367.438,272.563,362.667,266.667,362.667z"
1639
+ fill="#FFFFFF" />
1640
+ </symbol>
1641
+ <symbol id="pencil" viewBox="0 0 512 512">
1642
+ <g>
1643
+ <polygon points="85.333,282.64 85.333,362.64 165.333,362.64 378.667,149.307 298.667,69.307 " />
1644
+ <path d="M441.707,56.08L391.893,6.267c-8.32-8.32-21.867-8.32-30.187,0L320,47.973l80,80l41.707-41.707
1645
+ C450.027,77.947,450.027,64.4,441.707,56.08z" />
1646
+ </g>
1647
+ <g>
1648
+ <rect y="426.64" width="512" height="85.333" />
1649
+ </g>
1650
+ </symbol>
1651
+ <svg x='0px' y='0px' viewBox='0 0 512 512' enableBackground='new 0 0 512 512' id='smileIcon'>
1652
+ <path fill='#f00' d='M344.354,381.58c-1.33-1.651-33.207-40.458-88.354-40.458
1653
+ c-55.832,0-87.972,39.974-88.29,40.378l-31.42-24.756c1.79-2.271,44.687-55.622,119.71-55.622s117.92,53.352,119.71,55.622
1654
+ L344.29,381.5L344.354,381.58z M437.02,437.02C485.371,388.668,512,324.38,512,256s-26.629-132.667-74.98-181.02
1655
+ C388.667,26.629,324.38,0,256,0S123.333,26.629,74.98,74.98C26.629,123.333,0,187.62,0,256s26.629,132.668,74.98,181.02
1656
+ C123.333,485.371,187.62,512,256,512S388.667,485.371,437.02,437.02z M472,256c0,119.103-96.897,216-216,216S40,375.103,40,256
1657
+ S136.897,40,256,40S472,136.897,472,256z M168,212.122c17.673,0,32-14.327,32-32s-14.327-32-32-32s-32,14.327-32,32
1658
+ S150.327,212.122,168,212.122z M344,212.122c17.673,0,32-14.327,32-32s-14.327-32-32-32s-32,14.327-32,32
1659
+ S326.327,212.122,344,212.122z' />
1660
+ </svg>
1661
+ </svg>
1662
+ </div>
1663
+ </body>
1664
+
1665
1665
  </html>