sidechat.js 2.4.5 → 2.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/index.cjs +5 -5
  2. package/dist/index.mjs +5 -5
  3. package/docs/sidechat.js/2.4.6/SidechatAPIClient.html +3 -0
  4. package/docs/sidechat.js/2.4.6/SidechatAPIError.html +3 -0
  5. package/docs/sidechat.js/{2.3.3/classes_SidechatAPIError.js.html → 2.4.6/SidechatColorList.html} +2 -15
  6. package/docs/sidechat.js/{2.3.6 → 2.4.6}/classes_SidechatAPIClient.js.html +278 -97
  7. package/docs/sidechat.js/{2.3.6 → 2.4.6}/classes_SidechatAPIError.js.html +2 -2
  8. package/docs/sidechat.js/{2.3.6 → 2.4.6}/classes_SidechatColorList.js.html +7 -8
  9. package/docs/sidechat.js/2.4.6/data/search.json +1 -0
  10. package/docs/sidechat.js/2.4.6/global.html +3 -0
  11. package/docs/sidechat.js/{2.3.6 → 2.4.6}/index.html +2 -2
  12. package/docs/sidechat.js/{2.3.6 → 2.4.6}/scripts/core.js +24 -0
  13. package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/core.min.js +23 -23
  14. package/docs/sidechat.js/2.4.6/styles/clean-jsdoc-theme-base.css +1161 -0
  15. package/docs/sidechat.js/{2.3.6 → 2.4.6}/styles/clean-jsdoc-theme-dark.css +15 -10
  16. package/docs/sidechat.js/{2.3.6 → 2.4.6}/styles/clean-jsdoc-theme-light.css +196 -102
  17. package/docs/sidechat.js/2.4.6/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  18. package/docs/sidechat.js/2.4.6/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  19. package/docs/sidechat.js/2.4.6/styles/clean-jsdoc-theme.min.css +1 -0
  20. package/docs/sidechat.js/{2.3.6 → 2.4.6}/tutorial-Authentication.html +2 -2
  21. package/docs/sidechat.js/{2.3.6 → 2.4.6}/tutorial-Email Registration.html +2 -2
  22. package/docs/sidechat.js/{2.3.6 → 2.4.6}/types_SidechatTypes.js.html +28 -2
  23. package/package.json +1 -1
  24. package/src/classes/SidechatAPIClient.js +5 -5
  25. package/docs/sidechat.js/2.3.2/SidechatAPIClient.html +0 -3
  26. package/docs/sidechat.js/2.3.2/SidechatAPIError.html +0 -3
  27. package/docs/sidechat.js/2.3.2/classes_SidechatAPIClient.js.html +0 -750
  28. package/docs/sidechat.js/2.3.2/classes_SidechatAPIError.js.html +0 -16
  29. package/docs/sidechat.js/2.3.2/data/search.json +0 -1
  30. package/docs/sidechat.js/2.3.2/global.html +0 -3
  31. package/docs/sidechat.js/2.3.2/index.html +0 -4
  32. package/docs/sidechat.js/2.3.2/scripts/core.js +0 -702
  33. package/docs/sidechat.js/2.3.2/styles/clean-jsdoc-theme-base.css +0 -975
  34. package/docs/sidechat.js/2.3.2/styles/clean-jsdoc-theme-dark.css +0 -407
  35. package/docs/sidechat.js/2.3.2/styles/clean-jsdoc-theme-light.css +0 -388
  36. package/docs/sidechat.js/2.3.2/styles/clean-jsdoc-theme.min.css +0 -1
  37. package/docs/sidechat.js/2.3.2/tutorial-Authentication.html +0 -14
  38. package/docs/sidechat.js/2.3.2/tutorial-Email Registration.html +0 -6
  39. package/docs/sidechat.js/2.3.2/types_SidechatTypes.js.html +0 -134
  40. package/docs/sidechat.js/2.3.3/SidechatAPIClient.html +0 -3
  41. package/docs/sidechat.js/2.3.3/SidechatAPIError.html +0 -3
  42. package/docs/sidechat.js/2.3.3/classes_SidechatAPIClient.js.html +0 -752
  43. package/docs/sidechat.js/2.3.3/data/search.json +0 -1
  44. package/docs/sidechat.js/2.3.3/fonts/Inconsolata-Regular.ttf +0 -0
  45. package/docs/sidechat.js/2.3.3/fonts/OpenSans-Regular.ttf +0 -0
  46. package/docs/sidechat.js/2.3.3/fonts/WorkSans-Bold.ttf +0 -0
  47. package/docs/sidechat.js/2.3.3/global.html +0 -3
  48. package/docs/sidechat.js/2.3.3/index.html +0 -4
  49. package/docs/sidechat.js/2.3.3/scripts/core.js +0 -702
  50. package/docs/sidechat.js/2.3.3/scripts/core.min.js +0 -23
  51. package/docs/sidechat.js/2.3.3/scripts/resize.js +0 -90
  52. package/docs/sidechat.js/2.3.3/scripts/search.js +0 -265
  53. package/docs/sidechat.js/2.3.3/scripts/search.min.js +0 -6
  54. package/docs/sidechat.js/2.3.3/scripts/third-party/Apache-License-2.0.txt +0 -202
  55. package/docs/sidechat.js/2.3.3/scripts/third-party/fuse.js +0 -9
  56. package/docs/sidechat.js/2.3.3/scripts/third-party/hljs-line-num-original.js +0 -369
  57. package/docs/sidechat.js/2.3.3/scripts/third-party/hljs-line-num.js +0 -1
  58. package/docs/sidechat.js/2.3.3/scripts/third-party/hljs-original.js +0 -5171
  59. package/docs/sidechat.js/2.3.3/scripts/third-party/hljs.js +0 -1
  60. package/docs/sidechat.js/2.3.3/scripts/third-party/popper.js +0 -5
  61. package/docs/sidechat.js/2.3.3/scripts/third-party/tippy.js +0 -1
  62. package/docs/sidechat.js/2.3.3/scripts/third-party/tocbot.js +0 -672
  63. package/docs/sidechat.js/2.3.3/scripts/third-party/tocbot.min.js +0 -1
  64. package/docs/sidechat.js/2.3.3/styles/clean-jsdoc-theme-base.css +0 -975
  65. package/docs/sidechat.js/2.3.3/styles/clean-jsdoc-theme-dark.css +0 -407
  66. package/docs/sidechat.js/2.3.3/styles/clean-jsdoc-theme-light.css +0 -388
  67. package/docs/sidechat.js/2.3.3/styles/clean-jsdoc-theme.min.css +0 -1
  68. package/docs/sidechat.js/2.3.3/tutorial-Authentication.html +0 -14
  69. package/docs/sidechat.js/2.3.3/tutorial-Email Registration.html +0 -6
  70. package/docs/sidechat.js/2.3.3/types_SidechatTypes.js.html +0 -134
  71. package/docs/sidechat.js/2.3.6/SidechatAPIClient.html +0 -3
  72. package/docs/sidechat.js/2.3.6/SidechatAPIError.html +0 -3
  73. package/docs/sidechat.js/2.3.6/data/search.json +0 -1
  74. package/docs/sidechat.js/2.3.6/fonts/Inconsolata-Regular.ttf +0 -0
  75. package/docs/sidechat.js/2.3.6/fonts/OpenSans-Regular.ttf +0 -0
  76. package/docs/sidechat.js/2.3.6/fonts/WorkSans-Bold.ttf +0 -0
  77. package/docs/sidechat.js/2.3.6/global.html +0 -3
  78. package/docs/sidechat.js/2.3.6/scripts/core.min.js +0 -23
  79. package/docs/sidechat.js/2.3.6/scripts/resize.js +0 -90
  80. package/docs/sidechat.js/2.3.6/scripts/search.js +0 -265
  81. package/docs/sidechat.js/2.3.6/scripts/search.min.js +0 -6
  82. package/docs/sidechat.js/2.3.6/scripts/third-party/Apache-License-2.0.txt +0 -202
  83. package/docs/sidechat.js/2.3.6/scripts/third-party/fuse.js +0 -9
  84. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs-line-num-original.js +0 -369
  85. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs-line-num.js +0 -1
  86. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs-original.js +0 -5171
  87. package/docs/sidechat.js/2.3.6/scripts/third-party/hljs.js +0 -1
  88. package/docs/sidechat.js/2.3.6/scripts/third-party/popper.js +0 -5
  89. package/docs/sidechat.js/2.3.6/scripts/third-party/tippy.js +0 -1
  90. package/docs/sidechat.js/2.3.6/scripts/third-party/tocbot.js +0 -672
  91. package/docs/sidechat.js/2.3.6/scripts/third-party/tocbot.min.js +0 -1
  92. package/docs/sidechat.js/2.3.6/styles/clean-jsdoc-theme-base.css +0 -975
  93. package/docs/sidechat.js/2.3.6/styles/clean-jsdoc-theme.min.css +0 -1
  94. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/fonts/Inconsolata-Regular.ttf +0 -0
  95. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/fonts/OpenSans-Regular.ttf +0 -0
  96. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/fonts/WorkSans-Bold.ttf +0 -0
  97. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/resize.js +0 -0
  98. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/search.js +0 -0
  99. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/search.min.js +0 -0
  100. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/Apache-License-2.0.txt +0 -0
  101. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/fuse.js +0 -0
  102. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/hljs-line-num-original.js +0 -0
  103. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/hljs-line-num.js +0 -0
  104. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/hljs-original.js +0 -0
  105. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/hljs.js +0 -0
  106. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/popper.js +0 -0
  107. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/tippy.js +0 -0
  108. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/tocbot.js +0 -0
  109. /package/docs/sidechat.js/{2.3.2 → 2.4.6}/scripts/third-party/tocbot.min.js +0 -0
@@ -1,3 +0,0 @@
1
- <!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Global</title><!--[if lt IE 9]>
2
- <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
3
- <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(baseURL=(baseURL="https://micahlindley.com/sidechat.js/").replace(/https?:\/\//i,"")).substr(baseURL.indexOf("/"))</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">Home</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColorList">SidechatColorList</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://github.com/micahlt/offsides#README.md" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><article><div class="container-overview"></div><h2 id="members" class="subsection-title has-anchor">Members</h2><h3 class="name has-anchor" id="SidechatColorList"><span class="type-signature">(constant) </span>SidechatColorList<span class="type-signature"> :Object</span></h3><div class="description"><p>List of colors compatible with user conversation icons</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatColorList.js.html">classes/SidechatColorList.js</a>, <a href="classes_SidechatColorList.js.html#line12">line 12</a></li></ul></dd></div></dl><h2 id="type-definitions" class="subsection-title has-anchor">Type Definitions</h2><h3 class="name has-anchor" id="SidechatAssetMetadata">SidechatAssetMetadata</h3><div class="description"><p>An asset object, containing information about an image from the asset library</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>width</code></td><td class="type"><span class="param-type">Number</span></td><td class="description last"><p>width of asset</p></td></tr><tr><td class="name"><code>height</code></td><td class="type"><span class="param-type">Number</span></td><td class="description last"><p>height of asset</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"image"</span></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>content_type</code></td><td class="type"><span class="param-type">"jpeg"</span> |<wbr> <span class="param-type">"png"</span> |<wbr> <span class="param-type">"gif"</span></td><td class="description last"><p>file type of asset</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line68">line 68</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatAuthToken">SidechatAuthToken</h3><div class="description"><p>A user's bearer authentication token needed for most requests</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line119">line 119</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatColor">SidechatColor</h3><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>primary</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>hex code of primary color</p></td></tr><tr><td class="name"><code>secondary</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>hex code of secondary color</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatColorList.js.html">classes/SidechatColorList.js</a>, <a href="classes_SidechatColorList.js.html#line1">line 1</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatCurrentUser">SidechatCurrentUser</h3><div class="description"><p>The current user's information</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of current user</p></td></tr><tr><td class="name"><code>hashedVerifiedEmail</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>verified email of current user in an unreadable hashed form</p></td></tr><tr><td class="name"><code>isGlobalModerator</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>whether or not user is a moderator</p></td></tr><tr><td class="name"><code>isGlobalAdmin</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>whether or not user is an admin</p></td></tr><tr><td class="name"><code>memberships</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatMembership">SidechatMembership</a>></span></td><td class="description last"></td></tr><tr><td class="name"><code>roles</code></td><td class="type"><span class="param-type">Array</span></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>emailDomain</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>domain of verified email address on account</p></td></tr><tr><td class="name"><code>wildcardEmailDomain</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>domain of verified email address on account, preceeded by *. to support subdomains</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line84">line 84</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatCursorString">SidechatCursorString</h3><div class="description"><p>A cursor for paginating through post lists</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line109">line 109</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatGroup">SidechatGroup</h3><div class="description"><p>A group object, containing metadata about a group as well as its join conditions and states. Some properties vary based on the endpoint the object came from.</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of group</p></td></tr><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>human-readable name of group</p></td></tr><tr><td class="name"><code>analytics_name</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>name to file group under</p></td></tr><tr><td class="name"><code>membership_type</code></td><td class="type"><span class="param-type">"non_member"</span> |<wbr> <span class="param-type">"member"</span></td><td class="attributes"></td><td class="description last"><p>whether or not current user is a member of group</p></td></tr><tr><td class="name"><code>color</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>group's theme color as hex code (e.g., #FFFFFF)</p></td></tr><tr><td class="name"><code>group_join_type</code></td><td class="type"><span class="param-type">"open"</span> |<wbr> <span class="param-type">"closed"</span> |<wbr> <span class="param-type">"email_domain"</span></td><td class="attributes"></td><td class="description last"><p>basis on which group accepts new members</p></td></tr><tr><td class="name"><code>group_visibility</code></td><td class="type"><span class="param-type">"private"</span> |<wbr> <span class="param-type">"public_to_all"</span> |<wbr> <span class="param-type">"public_to_schools"</span></td><td class="attributes"></td><td class="description last"><p>group's visibility setting</p></td></tr><tr><td class="name"><code>asset_library_visibility</code></td><td class="type"><span class="param-type">"show"</span> |<wbr> <span class="param-type">"hide"</span></td><td class="attributes"></td><td class="description last"><p>whether or not group's asset library is visible</p></td></tr><tr><td class="name"><code>roles</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>description</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>description of group</p></td></tr><tr><td class="name"><code>icon_url</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>image URL for group icon</p></td></tr><tr><td class="name"><code>member_count</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>number of users in group</p></td></tr><tr><td class="name"><code>should_show_leaderboard</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>undocumented</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line30">line 30</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatIdentity">SidechatIdentity</h3><div class="description"><p>A user's anonymous identity information</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>representation of user's name (varies across app)</p></td></tr><tr><td class="name"><code>posted_with_username</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>undocumented</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line77">line 77</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatLibraryAsset">SidechatLibraryAsset</h3><div class="description"><p>An asset object, containing information about an image from the asset library</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of asset</p></td></tr><tr><td class="name"><code>created_at</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>date string of asset creation time</p></td></tr><tr><td class="name"><code>metadata</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></span></td><td class="description last"><p>metadata associated with asset</p></td></tr><tr><td class="name"><code>url</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></span></td><td class="description last"><p>URL string of asset's location</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line59">line 59</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatMembership">SidechatMembership</h3><div class="description"><p>Representation of a group membership</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>groupId</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of group</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>role of current user in group</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line97">line 97</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatPostOrComment">SidechatPostOrComment</h3><div class="description"><p>A user-created post or comment, depending on the &quot;type&quot; prop</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"post"</span> |<wbr> <span class="param-type">"comment"</span></td><td class="attributes"></td><td class="description last"><p>whether this object represents a post or a comment on a post</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of post or comment</p></td></tr><tr><td class="name"><code>authored_by_user</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>alias</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>post creator's name in-app</p></td></tr><tr><td class="name"><code>group_id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of group</p></td></tr><tr><td class="name"><code>group</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatGroup">SidechatGroup</a></span></td><td class="attributes"></td><td class="description last"><p>group in which post or comment was created</p></td></tr><tr><td class="name"><code>text</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>text content of post or comment</p></td></tr><tr><td class="name"><code>created_at</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>date string of post or comment creation time</p></td></tr><tr><td class="name"><code>vote_total</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes"></td><td class="description last"><p>sum of upvotes and downvotes</p></td></tr><tr><td class="name"><code>vote_status</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatVoteString">SidechatVoteString</a></span></td><td class="attributes"></td><td class="description last"><p>current user's vote on post or comment</p></td></tr><tr><td class="name"><code>assets</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a>></span></td><td class="attributes"></td><td class="description last"><p>array of simple assets attached to post or comment</p></td></tr><tr><td class="name"><code>attachments</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>dms_disabled</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>whether or not you can send a DM to creator of post</p></td></tr><tr><td class="name"><code>tags</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>identity</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatIdentity">SidechatIdentity</a></span></td><td class="attributes"></td><td class="description last"><p>creator's identity information</p></td></tr><tr><td class="name"><code>pinned</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>is_saved</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>follow_status</code></td><td class="type"><span class="param-type">"following"</span> |<wbr> <span class="param-type">"not_following"</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>destination</code></td><td class="type"><span class="param-type">"group"</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>comment_count</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>number of comments on post (only if type=post)</p></td></tr><tr><td class="name"><code>comments_disabled</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>whether or not you can comment on post (only if type=post)</p></td></tr><tr><td class="name"><code>parent_post_id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>alphanumeric ID of parent post (only if type=comment)</p></td></tr><tr><td class="name"><code>reply_post_id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>alphanumeric ID of comment being replied to, falls back to parent_post_id (only if type=comment)</p></td></tr><tr><td class="name"><code>context</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>text content of comment being replied to, falls back to text (only if type=comment)</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line1">line 1</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatPostsAndCursor">SidechatPostsAndCursor</h3><div class="description"><p>A list of posts and the associated cursor</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>posts</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>></span></td><td class="description last"></td></tr><tr><td class="name"><code>cursor</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatCursorString">SidechatCursorString</a></span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line124">line 124</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatPrivateAssetURL">SidechatPrivateAssetURL</h3><div class="description"><p>An asset URL that can only be accessed by making a request with a user's bearer token attached in the Authorization header</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line104">line 104</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatSimpleAsset">SidechatSimpleAsset</h3><div class="description"><p>An asset object, containing information about an image within a post or comment</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of asset</p></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">"image"</span></td><td class="attributes"></td><td class="description last"><p>undocumented</p></td></tr><tr><td class="name"><code>content_type</code></td><td class="type"><span class="param-type">"jpeg"</span> |<wbr> <span class="param-type">"png"</span> |<wbr> <span class="param-type">"gif"</span></td><td class="attributes"></td><td class="description last"><p>file type of asset</p></td></tr><tr><td class="name"><code>width</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes"></td><td class="description last"><p>width of asset</p></td></tr><tr><td class="name"><code>height</code></td><td class="type"><span class="param-type">Number</span></td><td class="attributes"></td><td class="description last"><p>height of asset</p></td></tr><tr><td class="name"><code>url</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>URL string of asset's location</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line48">line 48</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="SidechatVoteString">SidechatVoteString</h3><div class="description"><p>A vote on a comment or post</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">"upvote"</span> |<wbr> <span class="param-type">"downvote"</span> |<wbr> <span class="param-type">"none"</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="types_SidechatTypes.js.html">types/SidechatTypes.js</a>, <a href="types_SidechatTypes.js.html#line114">line 114</a></li></ul></dd></div></dl></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Home</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://github.com/micahlt/offsides#README.md" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColorList">SidechatColorList</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
@@ -1,23 +0,0 @@
1
- var accordionLocalStorageKey="accordion-id",themeLocalStorageKey="theme",fontSizeLocalStorageKey="font-size",html=document.querySelector("html"),MAX_FONT_SIZE=30,MIN_FONT_SIZE=10,localStorage=window.localStorage;function getTheme(){var e=localStorage.getItem(themeLocalStorageKey);if(e)return e;switch(e=document.body.getAttribute("data-theme")){case"dark":case"light":return e;case"fallback-dark":return window.matchMedia("(prefers-color-scheme)").matches&&window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark";case"fallback-light":return window.matchMedia("(prefers-color-scheme)").matches&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";default:return"dark"}}function localUpdateTheme(e){var t=document.body,o=document.querySelectorAll(".theme-svg-use"),n="dark"===e?"#light-theme-icon":"#dark-theme-icon";t.setAttribute("data-theme",e),t.classList.remove("dark","light"),t.classList.add(e),o.forEach(function(e){e.setAttribute("xlink:href",n)})}function updateTheme(e){localUpdateTheme(e),localStorage.setItem(themeLocalStorageKey,e)}function toggleTheme(){updateTheme("dark"===document.body.getAttribute("data-theme")?"light":"dark")}function setAccordionIdToLocalStorage(e){var t=JSON.parse(localStorage.getItem(accordionLocalStorageKey));t[e]=e,localStorage.setItem(accordionLocalStorageKey,JSON.stringify(t))}function removeAccordionIdFromLocalStorage(e){var t=JSON.parse(localStorage.getItem(accordionLocalStorageKey));delete t[e],localStorage.setItem(accordionLocalStorageKey,JSON.stringify(t))}function getAccordionIdsFromLocalStorage(){return JSON.parse(localStorage.getItem(accordionLocalStorageKey))||{}}function toggleAccordion(e){"false"===e.getAttribute("data-isopen")?(e.setAttribute("data-isopen","true"),setAccordionIdToLocalStorage(e.id)):(e.setAttribute("data-isopen","false"),removeAccordionIdFromLocalStorage(e.id))}function initAccordion(){void 0!==localStorage.getItem(accordionLocalStorageKey)&&null!==localStorage.getItem(accordionLocalStorageKey)||localStorage.setItem(accordionLocalStorageKey,"{}");var e=document.querySelectorAll(".sidebar-section-title"),t=getAccordionIdsFromLocalStorage();e.forEach(function(e){e.addEventListener("click",function(){toggleAccordion(e)}),e.id in t&&toggleAccordion(e)})}function isSourcePage(){return Boolean(document.querySelector("#source-page"))}function bringElementIntoView(e,t=!0){var o,n,i,c;e&&(tocbotInstance&&setTimeout(()=>tocbotInstance.updateTocListActiveElement(e),60),o=document.querySelector(".navbar-container"),n=document.querySelector(".main-content"),i=e.getBoundingClientRect().top,c=16,o&&(c+=o.scrollHeight),n&&n.scrollBy(0,i-c),t&&history.pushState(null,null,"#"+e.id))}function bringLinkToView(e){e.preventDefault(),e.stopPropagation();var e=e.currentTarget.getAttribute("href");!e||(e=document.getElementById(e.slice(1)))&&bringElementIntoView(e)}function bringIdToViewOnMount(){var e,t;isSourcePage()||""!==(e=window.location.hash)&&((t=document.getElementById(e.slice(1)))||(e=decodeURI(e),t=document.getElementById(e.slice(1))),t&&bringElementIntoView(t,!1))}function createAnchorElement(e){var t=document.createElement("a");return t.textContent="#",t.href="#"+e,t.classList.add("link-anchor"),t.onclick=bringLinkToView,t}function addAnchor(){var e=document.querySelector(".main-content").querySelector("section");[e.querySelectorAll("h1"),e.querySelectorAll("h2"),e.querySelectorAll("h3"),e.querySelectorAll("h4")].forEach(function(e){e.forEach(function(e){var t=createAnchorElement(e.id);e.classList.add("has-anchor"),e.append(t)})})}function copy(e){const t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}function showTooltip(e){var t=document.getElementById(e);t.classList.add("show-tooltip"),setTimeout(function(){t.classList.remove("show-tooltip")},3e3)}function copyFunction(e){var t=document.getElementById(e);copy((t.querySelector(".linenums")||t.querySelector("code")).innerText.trim().replace(/(^\t)/gm,"")),showTooltip("tooltip-"+e)}function hideTocOnSourcePage(){isSourcePage()&&(document.querySelector(".toc-container").style.display="none")}function getPreTopBar(e,t=""){e='<button aria-label="copy code" class="icon-button copy-code" onclick="copyFunction(\''+e+'\')"><svg class="sm-icon" alt="click to copy"><use xlink:href="#copy-icon"></use></svg>'+('<div class="tooltip" id="tooltip-'+e+'">Copied!</div>')+"</button>";return'<div class="pre-top-bar-container">'+('<div class="code-lang-name-container"><div class="code-lang-name">'+t.toLocaleUpperCase()+"</div></div>")+e+"</div>"}function getPreDiv(){var e=document.createElement("div");return e.classList.add("pre-div"),e}function processAllPre(){var e=document.querySelectorAll("pre"),t=document.querySelector("#PeOAagUepe"),o=document.querySelector("#VuAckcnZhf"),n=0,i=0,c=(t&&(i=t.getBoundingClientRect().height),o&&(n=o.getBoundingClientRect().height),window.innerHeight-n-i-250);e.forEach(function(e,t){var o,n=e.parentNode;n&&"true"===n.getAttribute("data-skip-pre-process")||(n=getPreDiv(),o=getPreTopBar(t="ScDloZOMdL"+t,e.getAttribute("data-lang")||"code"),n.innerHTML=o,e.style.maxHeight=c+"px",e.id=t,e.classList.add("prettyprint"),e.parentNode.insertBefore(n,e),n.appendChild(e))})}function highlightAndBringLineIntoView(){var e=window.location.hash.replace("#line","");try{var t='[data-line-number="'+e+'"',o=document.querySelector(t);o.scrollIntoView(),o.parentNode.classList.add("selected")}catch(e){console.error(e)}}function getFontSize(){var e=16;try{e=Number.parseInt(html.style.fontSize.split("px")[0],10)}catch(e){console.log(e)}return e}function localUpdateFontSize(e){html.style.fontSize=e+"px";var t=document.querySelector("#b77a68a492f343baabea06fad81f651e");t&&(t.innerHTML=e)}function updateFontSize(e){localUpdateFontSize(e),localStorage.setItem(fontSizeLocalStorageKey,e)}function incrementFont(e){var t=getFontSize();t<MAX_FONT_SIZE&&updateFontSize(t+1)}function decrementFont(e){var t=getFontSize();MIN_FONT_SIZE<t&&updateFontSize(t-1)}function fontSizeTooltip(){var e=getFontSize();return`
2
- <div class="font-size-tooltip">
3
- <button aria-label="decrease-font-size" class="icon-button ${MAX_FONT_SIZE<=e?"disabled":""}" onclick="decrementFont(event)">
4
- <svg>
5
- <use xlink:href="#minus-icon"></use>
6
- </svg>
7
- </button>
8
- <div class="font-size-text" id="b77a68a492f343baabea06fad81f651e">
9
- ${e}
10
- </div>
11
- <button aria-label="increase-font-size" class="icon-button ${e<=MIN_FONT_SIZE?"disabled":""}" onclick="incrementFont(event)">
12
- <svg>
13
- <use xlink:href="#add-icon"></use>
14
- </svg>
15
- </button>
16
- <button class="icon-button" onclick="updateFontSize(16)">
17
- <svg>
18
- <use xlink:href="#reset-icon"></use>
19
- </svg>
20
- </button>
21
- </div>
22
-
23
- `}function initTooltip(){tippy(".theme-toggle",{content:"Toggle Theme",delay:500}),tippy(".search-button",{content:"Search",delay:500}),tippy(".font-size",{content:"Change font size",delay:500}),tippy(".codepen-button",{content:"Open code in CodePen",placement:"left"}),tippy(".copy-code",{content:"Copy this code",placement:"left"}),tippy(".font-size",{content:fontSizeTooltip(),trigger:"click",interactive:!0,allowHTML:!0,placement:"left"})}function fixTable(){for(const t of document.querySelectorAll("table")){if(t.classList.contains("hljs-ln"))return;var e=document.createElement("div");e.classList.add("table-div"),t.parentNode.insertBefore(e,t),e.appendChild(t)}}function hideMobileMenu(){var e=document.querySelector("#mobile-sidebar"),t=document.querySelector("#mobile-menu"),o=t.querySelector("use");e&&e.classList.remove("show"),t&&t.setAttribute("data-isopen","false"),o&&o.setAttribute("xlink:href","#menu-icon")}function showMobileMenu(){var e=document.querySelector("#mobile-sidebar"),t=document.querySelector("#mobile-menu"),o=t.querySelector("use");e&&e.classList.add("show"),t&&t.setAttribute("data-isopen","true"),o&&o.setAttribute("xlink:href","#close-icon")}function onMobileMenuClick(){("true"===document.querySelector("#mobile-menu").getAttribute("data-isopen")?hideMobileMenu:showMobileMenu)()}function initMobileMenu(){var e=document.querySelector("#mobile-menu");e&&e.addEventListener("click",onMobileMenuClick)}function addHrefToSidebarTitle(){document.querySelectorAll(".sidebar-title-anchor").forEach(function(e){e.setAttribute("href",baseURL)})}function onDomContentLoaded(){var e=document.querySelectorAll(".theme-toggle");initMobileMenu(),e&&e.forEach(function(e){e.addEventListener("click",toggleTheme)}),hljs.addPlugin({"after:highlightElement":function(e){e.el.parentNode.setAttribute("data-lang","code")}}),hljs.highlightAll(),hljs.initLineNumbersOnLoad({singleLine:!0}),initAccordion(),addAnchor(),processAllPre(),hideTocOnSourcePage(),setTimeout(function(){bringIdToViewOnMount(),isSourcePage()&&highlightAndBringLineIntoView()},1e3),initTooltip(),fixTable(),addHrefToSidebarTitle()}updateTheme(getTheme()),function(){var e=getFontSize(),t=localStorage.getItem(fontSizeLocalStorageKey);t?(t=Number.parseInt(t,10))!==e&&updateFontSize(t):updateFontSize(e)}(),window.addEventListener("DOMContentLoaded",onDomContentLoaded),window.addEventListener("hashchange",e=>{e=new URL(e.newURL);""!==e.hash&&bringIdToViewOnMount(e.hash)}),window.addEventListener("storage",e=>{"undefined"!==e.newValue&&(initTooltip(),e.key===themeLocalStorageKey&&localUpdateTheme(e.newValue),e.key===fontSizeLocalStorageKey&&localUpdateFontSize(e.newValue))});
@@ -1,90 +0,0 @@
1
- /* global document */
2
- // This file is @deprecated
3
-
4
- var NAVBAR_OPTIONS = {};
5
-
6
- (function() {
7
- var NAVBAR_RESIZE_LOCAL_STORAGE_KEY = 'NAVBAR_RESIZE_LOCAL_STORAGE_KEY';
8
-
9
- var navbar = document.querySelector('#navbar');
10
- var footer = document.querySelector('#footer');
11
- var mainSection = document.querySelector('#main');
12
- var localStorageResizeObject = JSON.parse(
13
- // eslint-disable-next-line no-undef
14
- localStorage.getItem(NAVBAR_RESIZE_LOCAL_STORAGE_KEY)
15
- );
16
-
17
- /**
18
- * Check whether we have any resize value in local storage or not.
19
- * If we have resize value then resize the navbar.
20
- **/
21
- if (localStorageResizeObject) {
22
- navbar.style.width = localStorageResizeObject.width;
23
- mainSection.style.marginLeft = localStorageResizeObject.width;
24
- footer.style.marginLeft = localStorageResizeObject.width;
25
- }
26
-
27
- var navbarSlider = document.querySelector('#navbar-resize');
28
-
29
- function resizeNavbar(event) {
30
- var pageX = event.pageX,
31
- pageXPlusPx = event.pageX + 'px',
32
- min = Number.parseInt(NAVBAR_OPTIONS.min, 10) || 300,
33
- max = Number.parseInt(NAVBAR_OPTIONS.max, 10) || 600;
34
-
35
- /**
36
- * Just to add some checks. If min is smaller than 10 then
37
- * user may accidentally end up reducing the size of navbar
38
- * less than 10. In that case user will not able to resize navbar
39
- * because navbar slider will be hidden.
40
- */
41
- if (min < 10) {
42
- min = 10;
43
- }
44
-
45
- /**
46
- * Only resize if pageX in range between min and max
47
- * allowed value.
48
- */
49
- if (min < pageX && pageX < max) {
50
- navbar.style.width = pageXPlusPx;
51
- mainSection.style.marginLeft = pageXPlusPx;
52
- footer.style.marginLeft = pageXPlusPx;
53
- }
54
- }
55
-
56
- function setupEventListeners() {
57
- // eslint-disable-next-line no-undef
58
- window.addEventListener('mousemove', resizeNavbar);
59
- // eslint-disable-next-line no-undef
60
- window.addEventListener('touchmove', resizeNavbar);
61
- }
62
-
63
- function afterRemovingEventListeners() {
64
- // eslint-disable-next-line no-undef
65
- localStorage.setItem(
66
- NAVBAR_RESIZE_LOCAL_STORAGE_KEY,
67
- JSON.stringify({
68
- width: navbar.style.width
69
- })
70
- );
71
- }
72
-
73
- function removeEventListeners() {
74
- // eslint-disable-next-line no-undef
75
- window.removeEventListener('mousemove', resizeNavbar);
76
- // eslint-disable-next-line no-undef
77
- window.removeEventListener('touchend', resizeNavbar);
78
- afterRemovingEventListeners();
79
- }
80
-
81
- navbarSlider.addEventListener('mousedown', setupEventListeners);
82
- navbarSlider.addEventListener('touchstart', setupEventListeners);
83
- // eslint-disable-next-line no-undef
84
- window.addEventListener('mouseup', removeEventListeners);
85
- })();
86
-
87
- // eslint-disable-next-line no-unused-vars
88
- function setupResizeOptions(options) {
89
- NAVBAR_OPTIONS = options;
90
- }
@@ -1,265 +0,0 @@
1
- /* global document */
2
-
3
- const searchId = 'LiBfqbJVcV';
4
- const searchHash = '#' + searchId;
5
- const searchContainer = document.querySelector('#PkfLWpAbet');
6
- const searchWrapper = document.querySelector('#iCxFxjkHbP');
7
- const searchCloseButton = document.querySelector('#VjLlGakifb');
8
- const searchInput = document.querySelector('#vpcKVYIppa');
9
- const resultBox = document.querySelector('#fWwVHRuDuN');
10
-
11
- function showResultText(text) {
12
- resultBox.innerHTML = `<span class="search-result-c-text">${text}</span>`;
13
- }
14
-
15
- function hideSearch() {
16
- // eslint-disable-next-line no-undef
17
- if (window.location.hash === searchHash) {
18
- // eslint-disable-next-line no-undef
19
- history.go(-1);
20
- }
21
-
22
- // eslint-disable-next-line no-undef
23
- window.onhashchange = null;
24
-
25
- if (searchContainer) {
26
- searchContainer.style.display = 'none';
27
- }
28
- }
29
-
30
- function listenCloseKey(event) {
31
- if (event.key === 'Escape') {
32
- hideSearch();
33
- // eslint-disable-next-line no-undef
34
- window.removeEventListener('keyup', listenCloseKey);
35
- }
36
- }
37
-
38
- function showSearch() {
39
- try {
40
- // Closing mobile menu before opening
41
- // search box.
42
- // It is defined in core.js
43
- // eslint-disable-next-line no-undef
44
- hideMobileMenu();
45
- } catch (error) {
46
- console.error(error);
47
- }
48
-
49
- // eslint-disable-next-line no-undef
50
- window.onhashchange = hideSearch;
51
-
52
- // eslint-disable-next-line no-undef
53
- if (window.location.hash !== searchHash) {
54
- // eslint-disable-next-line no-undef
55
- history.pushState(null, null, searchHash);
56
- }
57
-
58
- if (searchContainer) {
59
- searchContainer.style.display = 'flex';
60
- // eslint-disable-next-line no-undef
61
- window.addEventListener('keyup', listenCloseKey);
62
- }
63
-
64
- if (searchInput) {
65
- searchInput.focus();
66
- }
67
- }
68
-
69
- async function fetchAllData() {
70
- // eslint-disable-next-line no-undef
71
- const { hostname, protocol, port } = location;
72
-
73
- // eslint-disable-next-line no-undef
74
- const base = protocol + '//' + hostname + (port !== '' ? ':' + port : '') + baseURL;
75
- // eslint-disable-next-line no-undef
76
- const url = new URL('data/search.json', base);
77
- const result = await fetch(url);
78
- const { list } = await result.json();
79
-
80
- return list;
81
- }
82
-
83
- // eslint-disable-next-line no-unused-vars
84
- function onClickSearchItem(event) {
85
- const target = event.currentTarget;
86
-
87
- if (target) {
88
- const href = target.getAttribute('href') || '';
89
- let elementId = href.split('#')[1] || '';
90
- let element = document.getElementById(elementId);
91
-
92
- if (!element) {
93
- elementId = decodeURI(elementId);
94
- element = document.getElementById(elementId);
95
- }
96
-
97
- if (element) {
98
- setTimeout(function() {
99
- // eslint-disable-next-line no-undef
100
- bringElementIntoView(element); // defined in core.js
101
- }, 100);
102
- }
103
- }
104
- }
105
-
106
- function buildSearchResult(result) {
107
- let output = '';
108
- const removeHTMLTagsRegExp = /(<([^>]+)>)/ig;
109
-
110
- for (const res of result) {
111
- const { title = '', description = '' } = res.item;
112
-
113
- const _link = res.item.link.replace('<a href="', '').replace(/">.*/, '');
114
- const _title = title.replace(removeHTMLTagsRegExp, "");
115
- const _description = description.replace(removeHTMLTagsRegExp, "");
116
-
117
- output += `
118
- <a onclick="onClickSearchItem(event)" href="${_link}" class="search-result-item">
119
- <div class="search-result-item-title">${_title}</div>
120
- <div class="search-result-item-p">${_description || 'No description available.'}</div>
121
- </a>
122
- `;
123
- }
124
-
125
- return output;
126
- }
127
-
128
- function getSearchResult(list, keys, searchKey) {
129
- const defaultOptions = {
130
- shouldSort: true,
131
- threshold: 0.4,
132
- location: 0,
133
- distance: 100,
134
- maxPatternLength: 32,
135
- minMatchCharLength: 1,
136
- keys: keys
137
- };
138
-
139
- const options = { ...defaultOptions };
140
-
141
- // eslint-disable-next-line no-undef
142
- const searchIndex = Fuse.createIndex(options.keys, list);
143
-
144
- // eslint-disable-next-line no-undef
145
- const fuse = new Fuse(list, options, searchIndex);
146
-
147
- const result = fuse.search(searchKey);
148
-
149
- if (result.length > 20) {
150
- return result.slice(0, 20);
151
- }
152
-
153
- return result;
154
- }
155
-
156
- function debounce(func, wait, immediate) {
157
- let timeout;
158
-
159
- return function() {
160
- const args = arguments;
161
-
162
- clearTimeout(timeout);
163
- timeout = setTimeout(() => {
164
- timeout = null;
165
- if (!immediate) {
166
- // eslint-disable-next-line consistent-this, no-invalid-this
167
- func.apply(this, args);
168
- }
169
- }, wait);
170
-
171
- if (immediate && !timeout) {
172
- // eslint-disable-next-line consistent-this, no-invalid-this
173
- func.apply(this, args);
174
- }
175
- };
176
- }
177
-
178
- let searchData;
179
-
180
- async function search(event) {
181
- const value = event.target.value;
182
- const keys = ['title', 'description'];
183
-
184
- if (!resultBox) {
185
- console.error('Search result container not found');
186
-
187
- return;
188
- }
189
-
190
- if (!value) {
191
- showResultText('Type anything to view search result');
192
-
193
- return;
194
- }
195
-
196
- if (!searchData) {
197
- showResultText('Loading...');
198
-
199
- try {
200
- // eslint-disable-next-line require-atomic-updates
201
- searchData = await fetchAllData();
202
- } catch (e) {
203
- console.log(e);
204
- showResultText('Failed to load result.');
205
-
206
- return;
207
- }
208
- }
209
-
210
- const result = getSearchResult(searchData, keys, value);
211
-
212
- if (!result.length) {
213
- showResultText('No result found! Try some different combination.');
214
-
215
- return;
216
- }
217
-
218
- // eslint-disable-next-line require-atomic-updates
219
- resultBox.innerHTML = buildSearchResult(result);
220
- }
221
-
222
- function onDomContentLoaded() {
223
- const searchButton = document.querySelectorAll('.search-button');
224
- const debouncedSearch = debounce(search, 300);
225
-
226
- if (searchCloseButton) {
227
- searchCloseButton.addEventListener('click', hideSearch);
228
- }
229
-
230
- if (searchButton) {
231
- searchButton.forEach(function(item) {
232
- item.addEventListener('click', showSearch);
233
- });
234
- }
235
-
236
- if (searchContainer) {
237
- searchContainer.addEventListener('click', hideSearch);
238
- }
239
-
240
- if (searchWrapper) {
241
- searchWrapper.addEventListener('click', function(event) {
242
- event.stopPropagation();
243
- });
244
- }
245
-
246
- if (searchInput) {
247
- searchInput.addEventListener('keyup', debouncedSearch);
248
- }
249
-
250
- // eslint-disable-next-line no-undef
251
- if (window.location.hash === searchHash) {
252
- showSearch();
253
- }
254
- }
255
-
256
- // eslint-disable-next-line no-undef
257
- window.addEventListener('DOMContentLoaded', onDomContentLoaded);
258
-
259
- // eslint-disable-next-line no-undef
260
- window.addEventListener('hashchange', function() {
261
- // eslint-disable-next-line no-undef
262
- if (window.location.hash === searchHash) {
263
- showSearch();
264
- }
265
- });
@@ -1,6 +0,0 @@
1
- const searchId="LiBfqbJVcV",searchHash="#"+searchId,searchContainer=document.querySelector("#PkfLWpAbet"),searchWrapper=document.querySelector("#iCxFxjkHbP"),searchCloseButton=document.querySelector("#VjLlGakifb"),searchInput=document.querySelector("#vpcKVYIppa"),resultBox=document.querySelector("#fWwVHRuDuN");function showResultText(e){resultBox.innerHTML=`<span class="search-result-c-text">${e}</span>`}function hideSearch(){window.location.hash===searchHash&&history.go(-1),window.onhashchange=null,searchContainer&&(searchContainer.style.display="none")}function listenCloseKey(e){"Escape"===e.key&&(hideSearch(),window.removeEventListener("keyup",listenCloseKey))}function showSearch(){try{hideMobileMenu()}catch(e){console.error(e)}window.onhashchange=hideSearch,window.location.hash!==searchHash&&history.pushState(null,null,searchHash),searchContainer&&(searchContainer.style.display="flex",window.addEventListener("keyup",listenCloseKey)),searchInput&&searchInput.focus()}async function fetchAllData(){var{hostname:e,protocol:t,port:n}=location,t=t+"//"+e+(""!==n?":"+n:"")+baseURL,e=new URL("data/search.json",t);const a=await fetch(e);n=(await a.json()).list;return n}function onClickSearchItem(t){const n=t.currentTarget;if(n){const a=n.getAttribute("href")||"";t=a.split("#")[1]||"";let e=document.getElementById(t);e||(t=decodeURI(t),e=document.getElementById(t)),e&&setTimeout(function(){bringElementIntoView(e)},100)}}function buildSearchResult(e){let t="";var n=/(<([^>]+)>)/gi;for(const s of e){const{title:c="",description:i=""}=s.item;var a=s.item.link.replace('<a href="',"").replace(/">.*/,""),o=c.replace(n,""),r=i.replace(n,"");t+=`
2
- <a onclick="onClickSearchItem(event)" href="${a}" class="search-result-item">
3
- <div class="search-result-item-title">${o}</div>
4
- <div class="search-result-item-p">${r||"No description available."}</div>
5
- </a>
6
- `}return t}function getSearchResult(e,t,n){var t={...{shouldSort:!0,threshold:.4,location:0,distance:100,maxPatternLength:32,minMatchCharLength:1,keys:t}},a=Fuse.createIndex(t.keys,e);const o=new Fuse(e,t,a),r=o.search(n);return 20<r.length?r.slice(0,20):r}function debounce(t,n,a){let o;return function(){const e=arguments;clearTimeout(o),o=setTimeout(()=>{o=null,a||t.apply(this,e)},n),a&&!o&&t.apply(this,e)}}let searchData;async function search(e){e=e.target.value;if(resultBox)if(e){if(!searchData){showResultText("Loading...");try{searchData=await fetchAllData()}catch(e){return console.log(e),void showResultText("Failed to load result.")}}e=getSearchResult(searchData,["title","description"],e);e.length?resultBox.innerHTML=buildSearchResult(e):showResultText("No result found! Try some different combination.")}else showResultText("Type anything to view search result");else console.error("Search result container not found")}function onDomContentLoaded(){const e=document.querySelectorAll(".search-button");var t=debounce(search,300);searchCloseButton&&searchCloseButton.addEventListener("click",hideSearch),e&&e.forEach(function(e){e.addEventListener("click",showSearch)}),searchContainer&&searchContainer.addEventListener("click",hideSearch),searchWrapper&&searchWrapper.addEventListener("click",function(e){e.stopPropagation()}),searchInput&&searchInput.addEventListener("keyup",t),window.location.hash===searchHash&&showSearch()}window.addEventListener("DOMContentLoaded",onDomContentLoaded),window.addEventListener("hashchange",function(){window.location.hash===searchHash&&showSearch()});