@docsector/docsector-reader 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/.eslintrc.cjs +42 -0
  2. package/LICENSE.md +9 -0
  3. package/README.md +175 -0
  4. package/bin/docsector.js +129 -0
  5. package/docsector.config.js +54 -0
  6. package/index.html +20 -0
  7. package/jsconfig.json +16 -0
  8. package/package.json +99 -0
  9. package/postcss.config.cjs +5 -0
  10. package/public/Docsphere/flags/abkhazia.png +0 -0
  11. package/public/Docsphere/flags/afghanistan.png +0 -0
  12. package/public/Docsphere/flags/aland-islands.png +0 -0
  13. package/public/Docsphere/flags/albania.png +0 -0
  14. package/public/Docsphere/flags/algeria.png +0 -0
  15. package/public/Docsphere/flags/american-samoa.png +0 -0
  16. package/public/Docsphere/flags/andorra.png +0 -0
  17. package/public/Docsphere/flags/angola.png +0 -0
  18. package/public/Docsphere/flags/anguilla.png +0 -0
  19. package/public/Docsphere/flags/antigua-and-barbuda.png +0 -0
  20. package/public/Docsphere/flags/argentina.png +0 -0
  21. package/public/Docsphere/flags/armenia.png +0 -0
  22. package/public/Docsphere/flags/aruba.png +0 -0
  23. package/public/Docsphere/flags/australia.png +0 -0
  24. package/public/Docsphere/flags/austria.png +0 -0
  25. package/public/Docsphere/flags/azerbaijan.png +0 -0
  26. package/public/Docsphere/flags/azores-islands.png +0 -0
  27. package/public/Docsphere/flags/bahamas.png +0 -0
  28. package/public/Docsphere/flags/bahrain.png +0 -0
  29. package/public/Docsphere/flags/balearic-islands.png +0 -0
  30. package/public/Docsphere/flags/bangladesh.png +0 -0
  31. package/public/Docsphere/flags/barbados.png +0 -0
  32. package/public/Docsphere/flags/basque-country.png +0 -0
  33. package/public/Docsphere/flags/belarus.png +0 -0
  34. package/public/Docsphere/flags/belgium.png +0 -0
  35. package/public/Docsphere/flags/belize.png +0 -0
  36. package/public/Docsphere/flags/benin.png +0 -0
  37. package/public/Docsphere/flags/bermuda.png +0 -0
  38. package/public/Docsphere/flags/bhutan-1.png +0 -0
  39. package/public/Docsphere/flags/bhutan.png +0 -0
  40. package/public/Docsphere/flags/bolivia.png +0 -0
  41. package/public/Docsphere/flags/bonaire.png +0 -0
  42. package/public/Docsphere/flags/bosnia-and-herzegovina.png +0 -0
  43. package/public/Docsphere/flags/botswana.png +0 -0
  44. package/public/Docsphere/flags/brazil.png +0 -0
  45. package/public/Docsphere/flags/british-columbia.png +0 -0
  46. package/public/Docsphere/flags/british-indian-ocean-territory.png +0 -0
  47. package/public/Docsphere/flags/british-virgin-islands.png +0 -0
  48. package/public/Docsphere/flags/brunei.png +0 -0
  49. package/public/Docsphere/flags/bulgaria.png +0 -0
  50. package/public/Docsphere/flags/burkina-faso.png +0 -0
  51. package/public/Docsphere/flags/burundi.png +0 -0
  52. package/public/Docsphere/flags/cambodia.png +0 -0
  53. package/public/Docsphere/flags/cameroon.png +0 -0
  54. package/public/Docsphere/flags/canada.png +0 -0
  55. package/public/Docsphere/flags/canary-islands.png +0 -0
  56. package/public/Docsphere/flags/cape-verde.png +0 -0
  57. package/public/Docsphere/flags/cayman-islands.png +0 -0
  58. package/public/Docsphere/flags/central-african-republic.png +0 -0
  59. package/public/Docsphere/flags/ceuta.png +0 -0
  60. package/public/Docsphere/flags/chad.png +0 -0
  61. package/public/Docsphere/flags/chile.png +0 -0
  62. package/public/Docsphere/flags/china.png +0 -0
  63. package/public/Docsphere/flags/christmas-island.png +0 -0
  64. package/public/Docsphere/flags/cocos-island.png +0 -0
  65. package/public/Docsphere/flags/colombia.png +0 -0
  66. package/public/Docsphere/flags/comoros.png +0 -0
  67. package/public/Docsphere/flags/cook-islands.png +0 -0
  68. package/public/Docsphere/flags/corsica.png +0 -0
  69. package/public/Docsphere/flags/costa-rica.png +0 -0
  70. package/public/Docsphere/flags/croatia.png +0 -0
  71. package/public/Docsphere/flags/cuba.png +0 -0
  72. package/public/Docsphere/flags/curacao.png +0 -0
  73. package/public/Docsphere/flags/cyprus.png +0 -0
  74. package/public/Docsphere/flags/czech-republic.png +0 -0
  75. package/public/Docsphere/flags/democratic-republic-of-congo.png +0 -0
  76. package/public/Docsphere/flags/denmark.png +0 -0
  77. package/public/Docsphere/flags/djibouti.png +0 -0
  78. package/public/Docsphere/flags/dominica.png +0 -0
  79. package/public/Docsphere/flags/dominican-republic.png +0 -0
  80. package/public/Docsphere/flags/east-timor.png +0 -0
  81. package/public/Docsphere/flags/ecuador.png +0 -0
  82. package/public/Docsphere/flags/egypt.png +0 -0
  83. package/public/Docsphere/flags/england.png +0 -0
  84. package/public/Docsphere/flags/equatorial-guinea.png +0 -0
  85. package/public/Docsphere/flags/eritrea.png +0 -0
  86. package/public/Docsphere/flags/estonia.png +0 -0
  87. package/public/Docsphere/flags/ethiopia.png +0 -0
  88. package/public/Docsphere/flags/european-union.png +0 -0
  89. package/public/Docsphere/flags/falkland-islands.png +0 -0
  90. package/public/Docsphere/flags/faroe-islands.png +0 -0
  91. package/public/Docsphere/flags/fiji.png +0 -0
  92. package/public/Docsphere/flags/finland.png +0 -0
  93. package/public/Docsphere/flags/france.png +0 -0
  94. package/public/Docsphere/flags/french-polynesia.png +0 -0
  95. package/public/Docsphere/flags/gabon.png +0 -0
  96. package/public/Docsphere/flags/galapagos-islands.png +0 -0
  97. package/public/Docsphere/flags/gambia.png +0 -0
  98. package/public/Docsphere/flags/georgia.png +0 -0
  99. package/public/Docsphere/flags/germany.png +0 -0
  100. package/public/Docsphere/flags/ghana.png +0 -0
  101. package/public/Docsphere/flags/gibraltar.png +0 -0
  102. package/public/Docsphere/flags/greece.png +0 -0
  103. package/public/Docsphere/flags/greenland.png +0 -0
  104. package/public/Docsphere/flags/grenada.png +0 -0
  105. package/public/Docsphere/flags/guam.png +0 -0
  106. package/public/Docsphere/flags/guatemala.png +0 -0
  107. package/public/Docsphere/flags/guernsey.png +0 -0
  108. package/public/Docsphere/flags/guinea-bissau.png +0 -0
  109. package/public/Docsphere/flags/guinea.png +0 -0
  110. package/public/Docsphere/flags/guyana.png +0 -0
  111. package/public/Docsphere/flags/haiti.png +0 -0
  112. package/public/Docsphere/flags/hawaii.png +0 -0
  113. package/public/Docsphere/flags/honduras.png +0 -0
  114. package/public/Docsphere/flags/hong-kong.png +0 -0
  115. package/public/Docsphere/flags/hungary.png +0 -0
  116. package/public/Docsphere/flags/iceland.png +0 -0
  117. package/public/Docsphere/flags/india.png +0 -0
  118. package/public/Docsphere/flags/indonesia.png +0 -0
  119. package/public/Docsphere/flags/iran.png +0 -0
  120. package/public/Docsphere/flags/iraq.png +0 -0
  121. package/public/Docsphere/flags/ireland.png +0 -0
  122. package/public/Docsphere/flags/isle-of-man.png +0 -0
  123. package/public/Docsphere/flags/israel.png +0 -0
  124. package/public/Docsphere/flags/italy.png +0 -0
  125. package/public/Docsphere/flags/ivory-coast.png +0 -0
  126. package/public/Docsphere/flags/jamaica.png +0 -0
  127. package/public/Docsphere/flags/japan.png +0 -0
  128. package/public/Docsphere/flags/jersey.png +0 -0
  129. package/public/Docsphere/flags/jordan.png +0 -0
  130. package/public/Docsphere/flags/kazakhstan.png +0 -0
  131. package/public/Docsphere/flags/kenya.png +0 -0
  132. package/public/Docsphere/flags/kiribati.png +0 -0
  133. package/public/Docsphere/flags/kosovo.png +0 -0
  134. package/public/Docsphere/flags/kuwait.png +0 -0
  135. package/public/Docsphere/flags/kyrgyzstan.png +0 -0
  136. package/public/Docsphere/flags/laos.png +0 -0
  137. package/public/Docsphere/flags/latvia.png +0 -0
  138. package/public/Docsphere/flags/lebanon.png +0 -0
  139. package/public/Docsphere/flags/lesotho.png +0 -0
  140. package/public/Docsphere/flags/liberia.png +0 -0
  141. package/public/Docsphere/flags/libya.png +0 -0
  142. package/public/Docsphere/flags/liechtenstein.png +0 -0
  143. package/public/Docsphere/flags/lithuania.png +0 -0
  144. package/public/Docsphere/flags/luxembourg.png +0 -0
  145. package/public/Docsphere/flags/macao.png +0 -0
  146. package/public/Docsphere/flags/madagascar.png +0 -0
  147. package/public/Docsphere/flags/madeira.png +0 -0
  148. package/public/Docsphere/flags/malawi.png +0 -0
  149. package/public/Docsphere/flags/malaysia.png +0 -0
  150. package/public/Docsphere/flags/maldives.png +0 -0
  151. package/public/Docsphere/flags/mali.png +0 -0
  152. package/public/Docsphere/flags/malta.png +0 -0
  153. package/public/Docsphere/flags/marshall-island.png +0 -0
  154. package/public/Docsphere/flags/martinique.png +0 -0
  155. package/public/Docsphere/flags/mauritania.png +0 -0
  156. package/public/Docsphere/flags/mauritius.png +0 -0
  157. package/public/Docsphere/flags/melilla.png +0 -0
  158. package/public/Docsphere/flags/mexico.png +0 -0
  159. package/public/Docsphere/flags/micronesia.png +0 -0
  160. package/public/Docsphere/flags/moldova.png +0 -0
  161. package/public/Docsphere/flags/monaco.png +0 -0
  162. package/public/Docsphere/flags/mongolia.png +0 -0
  163. package/public/Docsphere/flags/montenegro.png +0 -0
  164. package/public/Docsphere/flags/montserrat.png +0 -0
  165. package/public/Docsphere/flags/morocco.png +0 -0
  166. package/public/Docsphere/flags/mozambique.png +0 -0
  167. package/public/Docsphere/flags/myanmar.png +0 -0
  168. package/public/Docsphere/flags/namibia.png +0 -0
  169. package/public/Docsphere/flags/nato.png +0 -0
  170. package/public/Docsphere/flags/nauru.png +0 -0
  171. package/public/Docsphere/flags/nepal.png +0 -0
  172. package/public/Docsphere/flags/netherlands.png +0 -0
  173. package/public/Docsphere/flags/new-zealand.png +0 -0
  174. package/public/Docsphere/flags/nicaragua.png +0 -0
  175. package/public/Docsphere/flags/niger.png +0 -0
  176. package/public/Docsphere/flags/nigeria.png +0 -0
  177. package/public/Docsphere/flags/niue.png +0 -0
  178. package/public/Docsphere/flags/norfolk-island.png +0 -0
  179. package/public/Docsphere/flags/north-korea.png +0 -0
  180. package/public/Docsphere/flags/northen-cyprus.png +0 -0
  181. package/public/Docsphere/flags/northern-marianas-islands.png +0 -0
  182. package/public/Docsphere/flags/norway.png +0 -0
  183. package/public/Docsphere/flags/oman.png +0 -0
  184. package/public/Docsphere/flags/orkney-islands.png +0 -0
  185. package/public/Docsphere/flags/ossetia.png +0 -0
  186. package/public/Docsphere/flags/pakistan.png +0 -0
  187. package/public/Docsphere/flags/palau.png +0 -0
  188. package/public/Docsphere/flags/palestine.png +0 -0
  189. package/public/Docsphere/flags/panama.png +0 -0
  190. package/public/Docsphere/flags/papua-new-guinea.png +0 -0
  191. package/public/Docsphere/flags/paraguay.png +0 -0
  192. package/public/Docsphere/flags/peru.png +0 -0
  193. package/public/Docsphere/flags/philippines.png +0 -0
  194. package/public/Docsphere/flags/pitcairn-islands.png +0 -0
  195. package/public/Docsphere/flags/portugal.png +0 -0
  196. package/public/Docsphere/flags/puerto-rico.png +0 -0
  197. package/public/Docsphere/flags/qatar.png +0 -0
  198. package/public/Docsphere/flags/rapa-nui.png +0 -0
  199. package/public/Docsphere/flags/republic-of-macedonia.png +0 -0
  200. package/public/Docsphere/flags/republic-of-poland.png +0 -0
  201. package/public/Docsphere/flags/republic-of-the-congo.png +0 -0
  202. package/public/Docsphere/flags/romania.png +0 -0
  203. package/public/Docsphere/flags/russia.png +0 -0
  204. package/public/Docsphere/flags/rwanda.png +0 -0
  205. package/public/Docsphere/flags/saba-island.png +0 -0
  206. package/public/Docsphere/flags/saint-kitts-and-nevis.png +0 -0
  207. package/public/Docsphere/flags/salvador.png +0 -0
  208. package/public/Docsphere/flags/samoa.png +0 -0
  209. package/public/Docsphere/flags/san-marino.png +0 -0
  210. package/public/Docsphere/flags/sao-tome-and-principe.png +0 -0
  211. package/public/Docsphere/flags/sardinia.png +0 -0
  212. package/public/Docsphere/flags/saudi-arabia.png +0 -0
  213. package/public/Docsphere/flags/scotland.png +0 -0
  214. package/public/Docsphere/flags/senegal.png +0 -0
  215. package/public/Docsphere/flags/serbia.png +0 -0
  216. package/public/Docsphere/flags/seychelles.png +0 -0
  217. package/public/Docsphere/flags/sierra-leone.png +0 -0
  218. package/public/Docsphere/flags/singapore.png +0 -0
  219. package/public/Docsphere/flags/sint-eustatius.png +0 -0
  220. package/public/Docsphere/flags/sint-maarten.png +0 -0
  221. package/public/Docsphere/flags/slovakia.png +0 -0
  222. package/public/Docsphere/flags/slovenia.png +0 -0
  223. package/public/Docsphere/flags/solomon-islands.png +0 -0
  224. package/public/Docsphere/flags/somalia.png +0 -0
  225. package/public/Docsphere/flags/somaliland.png +0 -0
  226. package/public/Docsphere/flags/south-africa.png +0 -0
  227. package/public/Docsphere/flags/south-korea.png +0 -0
  228. package/public/Docsphere/flags/south-sudan.png +0 -0
  229. package/public/Docsphere/flags/spain.png +0 -0
  230. package/public/Docsphere/flags/sri-lanka.png +0 -0
  231. package/public/Docsphere/flags/st-barts.png +0 -0
  232. package/public/Docsphere/flags/st-lucia.png +0 -0
  233. package/public/Docsphere/flags/st-vincent-and-the-grenadines.png +0 -0
  234. package/public/Docsphere/flags/sudan.png +0 -0
  235. package/public/Docsphere/flags/suriname.png +0 -0
  236. package/public/Docsphere/flags/swaziland.png +0 -0
  237. package/public/Docsphere/flags/sweden.png +0 -0
  238. package/public/Docsphere/flags/switzerland.png +0 -0
  239. package/public/Docsphere/flags/syria.png +0 -0
  240. package/public/Docsphere/flags/taiwan.png +0 -0
  241. package/public/Docsphere/flags/tajikistan.png +0 -0
  242. package/public/Docsphere/flags/tanzania.png +0 -0
  243. package/public/Docsphere/flags/thailand.png +0 -0
  244. package/public/Docsphere/flags/tibet.png +0 -0
  245. package/public/Docsphere/flags/togo.png +0 -0
  246. package/public/Docsphere/flags/tokelau.png +0 -0
  247. package/public/Docsphere/flags/tonga.png +0 -0
  248. package/public/Docsphere/flags/transnistria.png +0 -0
  249. package/public/Docsphere/flags/trinidad-and-tobago.png +0 -0
  250. package/public/Docsphere/flags/tunisia.png +0 -0
  251. package/public/Docsphere/flags/turkey.png +0 -0
  252. package/public/Docsphere/flags/turkmenistan.png +0 -0
  253. package/public/Docsphere/flags/turks-and-caicos.png +0 -0
  254. package/public/Docsphere/flags/tuvalu.png +0 -0
  255. package/public/Docsphere/flags/uganda.png +0 -0
  256. package/public/Docsphere/flags/ukraine.png +0 -0
  257. package/public/Docsphere/flags/united-arab-emirates.png +0 -0
  258. package/public/Docsphere/flags/united-kingdom.png +0 -0
  259. package/public/Docsphere/flags/united-nations.png +0 -0
  260. package/public/Docsphere/flags/united-states-of-america.png +0 -0
  261. package/public/Docsphere/flags/uruguay.png +0 -0
  262. package/public/Docsphere/flags/uzbekistn.png +0 -0
  263. package/public/Docsphere/flags/vanuatu.png +0 -0
  264. package/public/Docsphere/flags/vatican-city.png +0 -0
  265. package/public/Docsphere/flags/venezuela.png +0 -0
  266. package/public/Docsphere/flags/vietnam.png +0 -0
  267. package/public/Docsphere/flags/virgin-islands.png +0 -0
  268. package/public/Docsphere/flags/wales.png +0 -0
  269. package/public/Docsphere/flags/western-sahara.png +0 -0
  270. package/public/Docsphere/flags/yemen.png +0 -0
  271. package/public/Docsphere/flags/zambia.png +0 -0
  272. package/public/Docsphere/flags/zimbabwe.png +0 -0
  273. package/public/favicon.ico +0 -0
  274. package/public/images/flags/brazil.png +0 -0
  275. package/public/images/flags/united-states-of-america.png +0 -0
  276. package/public/images/logo.png +0 -0
  277. package/public/logo.png +0 -0
  278. package/public/robots.txt +2 -0
  279. package/public/sad.svg +1 -0
  280. package/quasar.config.js +117 -0
  281. package/src/App.vue +235 -0
  282. package/src/boot/QZoom.js +7 -0
  283. package/src/boot/axios.js +11 -0
  284. package/src/boot/i18n.js +15 -0
  285. package/src/boot/store.js +26 -0
  286. package/src/components/DH1.vue +42 -0
  287. package/src/components/DH2.vue +36 -0
  288. package/src/components/DH3.vue +36 -0
  289. package/src/components/DH4.vue +26 -0
  290. package/src/components/DH5.vue +26 -0
  291. package/src/components/DH6.vue +26 -0
  292. package/src/components/DMenu.vue +446 -0
  293. package/src/components/DMenuItem.vue +127 -0
  294. package/src/components/DPage.vue +222 -0
  295. package/src/components/DPageAnchor.vue +123 -0
  296. package/src/components/DPageBlockquote.vue +19 -0
  297. package/src/components/DPageMeta.vue +203 -0
  298. package/src/components/DPageSection.vue +243 -0
  299. package/src/components/DPageSourceCode.vue +376 -0
  300. package/src/components/DSubpage.vue +33 -0
  301. package/src/components/QZoom.js +278 -0
  302. package/src/components/QZoom.styl +43 -0
  303. package/src/composables/useNavigator.js +113 -0
  304. package/src/css/app.sass +279 -0
  305. package/src/css/quasar.variables.scss +24 -0
  306. package/src/i18n/index.js +126 -0
  307. package/src/i18n/languages/en-US.hjson +98 -0
  308. package/src/i18n/languages/pt-BR.hjson +97 -0
  309. package/src/i18n/tags.hjson +44 -0
  310. package/src/index.js +99 -0
  311. package/src/layouts/DefaultLayout.vue +95 -0
  312. package/src/layouts/SystemLayout.vue +4 -0
  313. package/src/pages/@/404Page.vue +15 -0
  314. package/src/pages/@/BootPage.vue +106 -0
  315. package/src/pages/boot.js +10 -0
  316. package/src/pages/guide/configuration.overview.en-US.md +107 -0
  317. package/src/pages/guide/configuration.overview.pt-BR.md +107 -0
  318. package/src/pages/guide/deployment.overview.en-US.md +49 -0
  319. package/src/pages/guide/deployment.overview.pt-BR.md +49 -0
  320. package/src/pages/guide/getting-started.overview.en-US.md +59 -0
  321. package/src/pages/guide/getting-started.overview.pt-BR.md +59 -0
  322. package/src/pages/guide/i18n-and-markdown.overview.en-US.md +77 -0
  323. package/src/pages/guide/i18n-and-markdown.overview.pt-BR.md +77 -0
  324. package/src/pages/guide/pages-and-routing.overview.en-US.md +85 -0
  325. package/src/pages/guide/pages-and-routing.overview.pt-BR.md +85 -0
  326. package/src/pages/guide/plugins.overview.en-US.md +3 -0
  327. package/src/pages/guide/plugins.overview.pt-BR.md +3 -0
  328. package/src/pages/guide/theming.overview.en-US.md +55 -0
  329. package/src/pages/guide/theming.overview.pt-BR.md +55 -0
  330. package/src/pages/index.js +385 -0
  331. package/src/pages/manual/components/d-headings.overview.en-US.md +54 -0
  332. package/src/pages/manual/components/d-headings.overview.pt-BR.md +54 -0
  333. package/src/pages/manual/components/d-headings.showcase.en-US.md +32 -0
  334. package/src/pages/manual/components/d-headings.showcase.pt-BR.md +32 -0
  335. package/src/pages/manual/components/d-menu.overview.en-US.md +59 -0
  336. package/src/pages/manual/components/d-menu.overview.pt-BR.md +59 -0
  337. package/src/pages/manual/components/d-page-anchor.overview.en-US.md +49 -0
  338. package/src/pages/manual/components/d-page-anchor.overview.pt-BR.md +49 -0
  339. package/src/pages/manual/components/d-page-blockquote.overview.en-US.md +44 -0
  340. package/src/pages/manual/components/d-page-blockquote.overview.pt-BR.md +44 -0
  341. package/src/pages/manual/components/d-page-blockquote.showcase.en-US.md +27 -0
  342. package/src/pages/manual/components/d-page-blockquote.showcase.pt-BR.md +27 -0
  343. package/src/pages/manual/components/d-page-meta.overview.en-US.md +51 -0
  344. package/src/pages/manual/components/d-page-meta.overview.pt-BR.md +51 -0
  345. package/src/pages/manual/components/d-page-section.overview.en-US.md +55 -0
  346. package/src/pages/manual/components/d-page-section.overview.pt-BR.md +55 -0
  347. package/src/pages/manual/components/d-page-section.showcase.en-US.md +43 -0
  348. package/src/pages/manual/components/d-page-section.showcase.pt-BR.md +43 -0
  349. package/src/pages/manual/components/d-page-source-code.overview.en-US.md +54 -0
  350. package/src/pages/manual/components/d-page-source-code.overview.pt-BR.md +54 -0
  351. package/src/pages/manual/components/d-page-source-code.showcase.en-US.md +50 -0
  352. package/src/pages/manual/components/d-page-source-code.showcase.pt-BR.md +50 -0
  353. package/src/pages/manual/components/d-page.overview.en-US.md +56 -0
  354. package/src/pages/manual/components/d-page.overview.pt-BR.md +56 -0
  355. package/src/pages/manual/components/d-page.showcase.en-US.md +35 -0
  356. package/src/pages/manual/components/d-page.showcase.pt-BR.md +35 -0
  357. package/src/pages/manual/components/d-subpage.overview.en-US.md +56 -0
  358. package/src/pages/manual/components/d-subpage.overview.pt-BR.md +56 -0
  359. package/src/pages/manual/components/q-zoom.overview.en-US.md +71 -0
  360. package/src/pages/manual/components/q-zoom.overview.pt-BR.md +71 -0
  361. package/src/pages/manual/composables/use-navigator.overview.en-US.md +89 -0
  362. package/src/pages/manual/composables/use-navigator.overview.pt-BR.md +89 -0
  363. package/src/pages/manual/store/modules.overview.en-US.md +96 -0
  364. package/src/pages/manual/store/modules.overview.pt-BR.md +96 -0
  365. package/src/router/index.js +30 -0
  366. package/src/router/routes.js +93 -0
  367. package/src/store/App.js +43 -0
  368. package/src/store/I18n.js +22 -0
  369. package/src/store/Layout.js +124 -0
  370. package/src/store/Page.js +103 -0
  371. package/src/store/Settings.js +18 -0
  372. package/src/store/index.js +24 -0
@@ -0,0 +1,446 @@
1
+ <script setup>
2
+ import { ref, computed, onMounted, onBeforeUnmount } from 'vue'
3
+ import { useRoute, useRouter } from 'vue-router'
4
+ import { useQuasar, scroll, openURL } from 'quasar'
5
+ import { useI18n } from 'vue-i18n'
6
+
7
+ import tags from 'src/i18n/tags.hjson'
8
+ import DMenuItem from './DMenuItem.vue'
9
+ import docsectorConfig from 'docsector.config.js'
10
+
11
+ const $q = useQuasar()
12
+ const $route = useRoute()
13
+ const $router = useRouter()
14
+ const { t, te, tm } = useI18n()
15
+
16
+ const branding = docsectorConfig.branding || {}
17
+ const links = docsectorConfig.links || {}
18
+
19
+ const term = ref(null)
20
+ const founds = ref(false)
21
+ const version = ref(branding.version || 'v0.x')
22
+ const versions = ref(branding.versions || ['v0.x'])
23
+ const items = ref([])
24
+ const scrolling = ref(null)
25
+
26
+ const subpage = computed(() => {
27
+ const parent = $route.matched[0]?.path
28
+ const child = $route.matched[1]?.path
29
+ return child.substring(parent.length)
30
+ })
31
+
32
+ const searchTerm = (term) => {
33
+ if (term.length > 1) {
34
+ term = term.toLowerCase()
35
+ const locale = $q.localStorage.getItem('setting.language')
36
+ founds.value = []
37
+
38
+ for (const [index, items] of items.value.entries()) {
39
+ searchTermIterate(items, term, locale)
40
+ }
41
+ } else {
42
+ founds.value = false
43
+ }
44
+ }
45
+
46
+ const searchTermIterate = (items, term, locale) => {
47
+ if (Array.isArray(items)) {
48
+ for (const subitems of items) {
49
+ searchTermIterate(subitems, term, locale)
50
+ }
51
+ } else if (typeof items === 'object') {
52
+ const item = items
53
+ const path = item.path
54
+ founds.value[path] = false
55
+
56
+ // @ search in i18n/tags.hjson
57
+ if (tags[locale] && tags[locale].length > 0) {
58
+ founds.value[path] = tags[locale][path]?.indexOf(term) !== -1
59
+ if (founds.value[path] === false && locale !== 'en-US') {
60
+ founds.value[path] = tags['en-US'][path]?.indexOf(term) !== -1
61
+ }
62
+ }
63
+
64
+ // @ search in Page content
65
+ if (founds.value[path] === false) {
66
+ founds.value[path] = searchTermInI18nTexts(path, term, locale)
67
+ if (founds.value[path] === false && locale !== 'en-US') {
68
+ founds.value[path] = searchTermInI18nTexts(path, term, 'en-US')
69
+ }
70
+ }
71
+ }
72
+ }
73
+
74
+ const searchTermInI18nTexts = (route, term, locale) => {
75
+ const subpages = ['overview', 'showcase', 'vs']
76
+ let source = null
77
+ let found = false
78
+ for (const subpage of subpages) {
79
+ const path = `_${route.replace(/_$/, '').replace(/\//g, '.')}.${subpage}.source`
80
+ const msgExists = te(path, locale)
81
+ if (msgExists) {
82
+ source = tm(path, locale)
83
+ }
84
+
85
+ if (msgExists && source.toLowerCase().includes(term)) {
86
+ found = true
87
+ break
88
+ }
89
+ }
90
+ return found
91
+ }
92
+
93
+ const clearSearchTerm = () => {
94
+ term.value = ''
95
+ searchTerm('')
96
+ return true
97
+ }
98
+
99
+ const getMenuItemHeaderLabel = (meta) => {
100
+ const label = meta.menu.header.label
101
+ if (label[0] === '.') { // Node path
102
+ const path = `_.${meta.type}${label}._`
103
+ if (te(path)) {
104
+ return t(path)
105
+ }
106
+ return t(path, 'en-US')
107
+ }
108
+ return label // String raw
109
+ }
110
+
111
+ const scrollToActiveMenuItem = () => {
112
+ if (scrolling.value) {
113
+ clearTimeout(scrolling.value)
114
+ }
115
+
116
+ scrolling.value = setTimeout(() => {
117
+ const menu = document.getElementById('menu')
118
+ if (menu) {
119
+ const menuItemActive = (menu.getElementsByClassName('q-router-link--active'))[0]
120
+ if (menuItemActive && typeof menuItemActive === 'object') {
121
+ const offsetTop1 = menuItemActive.closest('.menu-list-expansion')?.offsetTop ?? 0
122
+ const offsetTop2 = menuItemActive.offsetTop
123
+
124
+ const innerHeightBy2 = window.innerHeight / 2
125
+
126
+ const searchBarHeight = 50
127
+ let expansionHeaderHeight = 0
128
+ if (offsetTop1 > 0) {
129
+ expansionHeaderHeight = 45
130
+ }
131
+ const fixedHeight = searchBarHeight + expansionHeaderHeight
132
+
133
+ const target = scroll.getScrollTarget(menuItemActive)
134
+ const offset = (offsetTop1 + offsetTop2) - innerHeightBy2 + fixedHeight
135
+ const duration = 300
136
+
137
+ if (offset > 0) {
138
+ scroll.setVerticalScrollPosition(target, offset, duration)
139
+ }
140
+ }
141
+ }
142
+ scrolling.value = null
143
+ }, 1500)
144
+ }
145
+
146
+ onMounted(() => {
147
+ scrollToActiveMenuItem()
148
+
149
+ $router.afterEach((to, from) => {
150
+ if (!to.hash || (from.path !== to.path)) {
151
+ scrollToActiveMenuItem()
152
+ }
153
+ })
154
+ })
155
+
156
+ onBeforeUnmount(() => {
157
+ if (scrolling.value) {
158
+ clearTimeout(scrolling.value)
159
+ }
160
+ })
161
+
162
+ // # Events
163
+ // Create
164
+ const routes = $router.options.routes.slice(0, -2) // Delete last 2 routes
165
+ const itemsArray = []
166
+
167
+ let nodeBasepath = ''
168
+ let nodeIndex = 0
169
+ for (const [index, route] of routes.entries()) {
170
+ const item = Object.freeze({
171
+ path: route.path,
172
+ meta: route.meta
173
+ })
174
+ // # Route
175
+ const basepath = route.path.split('/')[2]
176
+ const header = route.meta.menu.header
177
+
178
+ if (header !== undefined && basepath !== nodeBasepath) {
179
+ nodeBasepath = basepath
180
+ nodeIndex = index
181
+ itemsArray[index] = []
182
+ } else if (header === undefined && basepath !== nodeBasepath) {
183
+ nodeBasepath = ''
184
+ }
185
+
186
+ if (nodeBasepath !== '') {
187
+ itemsArray[nodeIndex].push(item)
188
+ } else {
189
+ itemsArray.push(item)
190
+ }
191
+ }
192
+
193
+ items.value = Object.freeze(itemsArray.filter(item => item !== undefined))
194
+ </script>
195
+
196
+ <template>
197
+ <transition appear enter-active-class="animated zoomIn" leave-active-class="animated zoomOut">
198
+ <q-input for="search" v-model="term" @update:model-value="searchTerm" :placeholder="t('menu.search')" :debounce="300">
199
+ <template v-slot:prepend>
200
+ <q-icon class="q-ml-sm" name="search" />
201
+ </template>
202
+ <template v-slot:append>
203
+ <q-icon class="cursor-pointer clear" v-if="term" name="clear" @click="clearSearchTerm" />
204
+ </template>
205
+ </q-input>
206
+ </transition>
207
+
208
+ <q-scroll-area id="menu"
209
+ :visible="true"
210
+ :class="$q.dark.isActive ? '' : 'bg-grey-2'"
211
+ >
212
+ <div class="row flex-center" :class="$q.dark.isActive ? 'bg-dark' : 'bg-white'" style="height: 115px;">
213
+ <div class="col-5">
214
+ <img class="q-mr-md" v-if="branding.logo" :src="branding.logo" :alt="branding.name" width="85" height="85" style="float: right;" />
215
+ </div>
216
+ <div class="col-7">
217
+ <div class="text-weight-medium">{{ branding.name || 'Docsector' }}</div>
218
+ <div class="text-caption q-pt-xs">{{ t('system.documentation') }}</div>
219
+ <q-select class="q-mr-md"
220
+ v-model="version" :options="versions"
221
+ dense options-dense
222
+ behavior="menu"
223
+ />
224
+ </div>
225
+ </div>
226
+
227
+ <q-separator class="separator list" />
228
+ <div class="row" :class="$q.dark.isActive ? 'bg-dark' : 'bg-white'">
229
+ <div class="col text-center">
230
+ <q-btn-group flat>
231
+ <q-btn v-if="links.github" icon="fab fa-github" size="sm" @click="openURL(links.github)" aria-label="Github">
232
+ <q-tooltip>Github</q-tooltip>
233
+ </q-btn>
234
+ <q-btn v-if="links.discussions" icon="fas fa-comments" size="sm" @click="openURL(links.discussions)" aria-label="Discussions">
235
+ <q-tooltip>Discussions</q-tooltip>
236
+ </q-btn>
237
+ <q-btn v-if="links.chat" icon="fas fa-comment" size="sm" @click="openURL(links.chat)" aria-label="Chat">
238
+ <q-tooltip>Chat</q-tooltip>
239
+ </q-btn>
240
+ <q-btn v-if="links.email" icon="fas fa-at" size="sm" @click="openURL('mailto:' + links.email)" aria-label="Email">
241
+ <q-tooltip>Email</q-tooltip>
242
+ </q-btn>
243
+ </q-btn-group>
244
+ </div>
245
+ </div>
246
+ <q-separator class="separator list" />
247
+
248
+ <q-list no-border link inset-delimiter role="list">
249
+ <q-item to="/" exact>
250
+ <q-item-section side>
251
+ <q-icon name="home" />
252
+ </q-item-section>
253
+ <q-item-section>{{ t('menu.home') }}</q-item-section>
254
+ </q-item>
255
+
256
+ <li role="listitem">
257
+ <q-separator role="separator" />
258
+ </li>
259
+ <q-item v-if="links.changelog" :href="links.changelog" target="_blank">
260
+ <q-item-section side>
261
+ <q-icon name="assignment" />
262
+ </q-item-section>
263
+ <q-item-section>{{ t('menu.changelog') }}</q-item-section>
264
+ <q-item-section side>
265
+ <q-icon name="open_in_new" size="xs" />
266
+ </q-item-section>
267
+ </q-item>
268
+ <q-item v-if="links.roadmap" :href="links.roadmap" target="_blank">
269
+ <q-item-section side>
270
+ <q-icon name="playlist_add_check_circle" />
271
+ </q-item-section>
272
+ <q-item-section>{{ t('menu.roadmap') }}</q-item-section>
273
+ <q-item-section side>
274
+ <q-icon name="open_in_new" size="xs" />
275
+ </q-item-section>
276
+ </q-item>
277
+ <q-item v-if="links.sponsor" :href="links.sponsor" target="_blank">
278
+ <q-item-section side>
279
+ <q-icon name="favorite" color="red" />
280
+ </q-item-section>
281
+ <q-item-section>{{ t('menu.sponsor') }}</q-item-section>
282
+ <q-item-section side>
283
+ <q-icon name="open_in_new" size="xs" />
284
+ </q-item-section>
285
+ </q-item>
286
+
287
+ <template v-if="links.explore && links.explore.length">
288
+ <li role="listitem">
289
+ <q-separator role="separator" spaced />
290
+ <q-item-section side class="q-ml-md">{{ t('menu.explore') }}</q-item-section>
291
+ </li>
292
+ <q-item v-for="link in links.explore" :key="link.url" :href="link.url" target="_blank">
293
+ <q-item-section>{{ link.label }}</q-item-section>
294
+ <q-item-section side>
295
+ <q-icon name="open_in_new" size="xs" />
296
+ </q-item-section>
297
+ </q-item>
298
+ </template>
299
+ </q-list>
300
+
301
+ <q-separator class="separator list" />
302
+
303
+ <q-list v-if="items !== null && items.constructor === Array && items.length > 0"
304
+ no-border link inset-delimiter role="list"
305
+ >
306
+ <template v-for="(item, index) in items" :key="index">
307
+ <q-expansion-item class="menu-list-expansion"
308
+ v-if="item && item.constructor === Array"
309
+ expand-separator
310
+ default-opened
311
+ >
312
+ <template v-slot:header>
313
+ <q-item-section>
314
+ <div class="row justify-center text-center">
315
+ <div class="col">
316
+ <q-icon :name="item[0].meta.menu.header.icon" size="1.5rem" />
317
+ <span class="q-ml-md">{{ getMenuItemHeaderLabel(item[0].meta) }}</span>
318
+ </div>
319
+ </div>
320
+ </q-item-section>
321
+ </template>
322
+ <template v-for="(subitem, subindex) in item" :key="subindex">
323
+ <d-menu-item
324
+ :items="items.length"
325
+ :subitem="subitem"
326
+ :subindex="subindex"
327
+ :subpage="subpage"
328
+ :founds="founds"
329
+ />
330
+ </template>
331
+ </q-expansion-item>
332
+ <d-menu-item v-else-if="item && item.constructor === Object"
333
+ :items="items.length"
334
+ :subitem="item"
335
+ :subindex="index"
336
+ :subpage="subpage"
337
+ :founds="founds"
338
+ />
339
+ </template>
340
+ </q-list>
341
+ </q-scroll-area>
342
+ </template>
343
+
344
+ <style lang="sass">
345
+ body.body--dark
346
+ --d-menu-subheader-txt-color: #a8a8a8
347
+ --d-menu-expansion-bg-color: rgb(48, 48, 48)
348
+ --d-menu-item-opacity: 0.03
349
+ body.body--light
350
+ --d-menu-subheader-txt-color: #363636
351
+ --d-menu-expansion-bg-color: rgb(245, 245, 245)
352
+ --d-menu-item-opacity: 0.015
353
+
354
+ #menu
355
+ width: 100%
356
+ height: calc(100% - 50px)
357
+
358
+ .q-list
359
+ padding: 8px 0
360
+
361
+ .menu-list-expansion
362
+ box-shadow: 0px -1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12)
363
+ margin-top: 5px
364
+
365
+ .q-item[role="button"]
366
+ position: sticky
367
+ position: -webkit-sticky
368
+ position: -moz-sticky
369
+ position: -ms-sticky
370
+ position: -o-sticky
371
+ width: 100%
372
+ top: -1px
373
+ z-index: 3
374
+ background-color: var(--d-menu-expansion-bg-color)
375
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12)
376
+
377
+ .separator
378
+ margin: 0 auto
379
+
380
+ .q-item
381
+ padding: 8px 12px
382
+ min-height: 45px
383
+ margin-bottom: 2px
384
+ &.q-hoverable > .q-focus-helper
385
+ background-color: currentColor
386
+ opacity: var(--d-menu-item-opacity)
387
+ &.q-hoverable:hover > .q-focus-helper
388
+ background-color: currentColor
389
+ opacity: 0.15 !important
390
+
391
+ .q-item.q-router-link--active
392
+ color: black
393
+ background-color: rgba(189, 189, 189, 0.7)
394
+ .q-item__section--side:not(.q-item__section--avatar)
395
+ .q-icon
396
+ color: black
397
+
398
+ .page-status
399
+ margin-right: 7px
400
+
401
+ .label
402
+ color: var(--d-menu-subheader-txt-color)
403
+
404
+ &.header
405
+ text-align: center
406
+ min-height: 32px
407
+ > div
408
+ padding-bottom: 7px
409
+ padding-top: 10px
410
+
411
+ .q-icon
412
+ padding-right: 5px
413
+ &.subheader
414
+ text-align: left
415
+ padding-bottom: 5px
416
+ padding-left: 10px
417
+ span
418
+ color: #363636
419
+
420
+ li
421
+ display: block
422
+ .separator
423
+ margin: 5px 0
424
+ &.list
425
+ height: 3px
426
+ margin: 0
427
+ &.page
428
+ height: 3px
429
+ &.subpage
430
+ height: 1px
431
+ &.partial
432
+ margin: 3px auto
433
+ width: 30px
434
+ height: 3px
435
+
436
+ // Search
437
+ label[for="search"]
438
+ z-index: 2
439
+
440
+ .q-field__control,
441
+ .q-field__marginal
442
+ height: 50px
443
+
444
+ i.clear
445
+ padding: 13px 8px
446
+ </style>
@@ -0,0 +1,127 @@
1
+ <script setup>
2
+ // defineProps is a compiler macro in <script setup>, no import needed
3
+ import { useRoute } from 'vue-router'
4
+ import { useQuasar } from 'quasar'
5
+ import { useI18n } from 'vue-i18n'
6
+
7
+ const props = defineProps({
8
+ items: {
9
+ type: Number,
10
+ required: true
11
+ },
12
+ subitem: {
13
+ type: Object,
14
+ required: true
15
+ },
16
+ subindex: {
17
+ type: Number,
18
+ required: true
19
+ },
20
+ subpage: {
21
+ type: String,
22
+ required: true
23
+ },
24
+ founds: {
25
+ type: [Boolean, Array],
26
+ required: true
27
+ }
28
+ })
29
+
30
+ const $q = useQuasar()
31
+ const $route = useRoute()
32
+ const { t, te } = useI18n()
33
+
34
+ const getMenuItemHeaderBackground = () => {
35
+ return $q.dark.isActive ? 'background-color: #1D1D1D !important' : 'background-color: #f5f5f5 !important'
36
+ }
37
+
38
+ const getMenuItemLabel = (item, index) => {
39
+ const path = `_${item.path.replace(/_$/, '').replace(/\//g, '.')}._`
40
+ if (te(path)) {
41
+ return t(path)
42
+ } else {
43
+ return t(path, 'en-US')
44
+ }
45
+ }
46
+
47
+ const getMenuItemSubheader = (meta) => {
48
+ const subheader = meta.menu.subheader
49
+ const path = `_.${meta.type}${subheader}._`
50
+
51
+ if (te(path)) {
52
+ return t(path)
53
+ } else {
54
+ return t(path, 'en-US')
55
+ }
56
+ }
57
+
58
+ const getPageStatusText = (status) => {
59
+ if (status === 'draft') {
60
+ return t('menu.status.draft._')
61
+ } else {
62
+ return t('menu.status.empty._')
63
+ }
64
+ }
65
+
66
+ const getPageStatusTextColor = (status) => {
67
+ if (status === 'draft') {
68
+ return 'dark'
69
+ } else {
70
+ return 'white'
71
+ }
72
+ }
73
+
74
+ const getPageStatusColor = (status) => {
75
+ if (status === 'draft') {
76
+ return 'orange'
77
+ } else {
78
+ return 'red'
79
+ }
80
+ }
81
+
82
+ const getPageStatusTooltip = (status) => {
83
+ if (status === 'draft') {
84
+ return t('menu.status.draft.tooltip')
85
+ } else {
86
+ return t('menu.status.empty.tooltip')
87
+ }
88
+ }
89
+ </script>
90
+
91
+ <template>
92
+ <!-- Menu Separator - Subheader -->
93
+ <q-item-section v-if="subitem.meta.menu.subheader">
94
+ <q-item-label class="label subheader" header>
95
+ {{ getMenuItemSubheader(subitem.meta) }}
96
+ </q-item-label>
97
+ </q-item-section>
98
+
99
+ <q-item
100
+ :to="subitem.path + '/overview'"
101
+ :active="subitem.path + subpage === $route.path"
102
+ v-show="founds[subitem.path] || !founds"
103
+ >
104
+ <q-item-section side>
105
+ <q-icon v-if="subitem.meta.icon" :name="subitem.meta.icon" />
106
+ </q-item-section>
107
+ <q-item-section>
108
+ {{ getMenuItemLabel(subitem, subindex) }}
109
+ </q-item-section>
110
+ <q-item-section class="page-status" v-if="subitem.meta.status !== 'done'" side>
111
+ <q-badge
112
+ :text-color="getPageStatusTextColor(subitem.meta.status)"
113
+ :color="getPageStatusColor(subitem.meta.status)"
114
+ :label="getPageStatusText(subitem.meta.status)"
115
+ />
116
+ <q-tooltip :hide-delay="3">{{ getPageStatusTooltip(subitem.meta.status) }}</q-tooltip>
117
+ </q-item-section>
118
+ </q-item>
119
+
120
+ <!-- Menu Separator -->
121
+ <li v-if="subitem.meta.menu.separator" role="listitem">
122
+ <q-separator
123
+ :class="'separator' + (subitem.meta.menu.separator === true ? '' : subitem.meta.menu.separator)"
124
+ role="separator"
125
+ />
126
+ </li>
127
+ </template>