@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.
- package/.eslintrc.cjs +42 -0
- package/LICENSE.md +9 -0
- package/README.md +175 -0
- package/bin/docsector.js +129 -0
- package/docsector.config.js +54 -0
- package/index.html +20 -0
- package/jsconfig.json +16 -0
- package/package.json +99 -0
- package/postcss.config.cjs +5 -0
- package/public/Docsphere/flags/abkhazia.png +0 -0
- package/public/Docsphere/flags/afghanistan.png +0 -0
- package/public/Docsphere/flags/aland-islands.png +0 -0
- package/public/Docsphere/flags/albania.png +0 -0
- package/public/Docsphere/flags/algeria.png +0 -0
- package/public/Docsphere/flags/american-samoa.png +0 -0
- package/public/Docsphere/flags/andorra.png +0 -0
- package/public/Docsphere/flags/angola.png +0 -0
- package/public/Docsphere/flags/anguilla.png +0 -0
- package/public/Docsphere/flags/antigua-and-barbuda.png +0 -0
- package/public/Docsphere/flags/argentina.png +0 -0
- package/public/Docsphere/flags/armenia.png +0 -0
- package/public/Docsphere/flags/aruba.png +0 -0
- package/public/Docsphere/flags/australia.png +0 -0
- package/public/Docsphere/flags/austria.png +0 -0
- package/public/Docsphere/flags/azerbaijan.png +0 -0
- package/public/Docsphere/flags/azores-islands.png +0 -0
- package/public/Docsphere/flags/bahamas.png +0 -0
- package/public/Docsphere/flags/bahrain.png +0 -0
- package/public/Docsphere/flags/balearic-islands.png +0 -0
- package/public/Docsphere/flags/bangladesh.png +0 -0
- package/public/Docsphere/flags/barbados.png +0 -0
- package/public/Docsphere/flags/basque-country.png +0 -0
- package/public/Docsphere/flags/belarus.png +0 -0
- package/public/Docsphere/flags/belgium.png +0 -0
- package/public/Docsphere/flags/belize.png +0 -0
- package/public/Docsphere/flags/benin.png +0 -0
- package/public/Docsphere/flags/bermuda.png +0 -0
- package/public/Docsphere/flags/bhutan-1.png +0 -0
- package/public/Docsphere/flags/bhutan.png +0 -0
- package/public/Docsphere/flags/bolivia.png +0 -0
- package/public/Docsphere/flags/bonaire.png +0 -0
- package/public/Docsphere/flags/bosnia-and-herzegovina.png +0 -0
- package/public/Docsphere/flags/botswana.png +0 -0
- package/public/Docsphere/flags/brazil.png +0 -0
- package/public/Docsphere/flags/british-columbia.png +0 -0
- package/public/Docsphere/flags/british-indian-ocean-territory.png +0 -0
- package/public/Docsphere/flags/british-virgin-islands.png +0 -0
- package/public/Docsphere/flags/brunei.png +0 -0
- package/public/Docsphere/flags/bulgaria.png +0 -0
- package/public/Docsphere/flags/burkina-faso.png +0 -0
- package/public/Docsphere/flags/burundi.png +0 -0
- package/public/Docsphere/flags/cambodia.png +0 -0
- package/public/Docsphere/flags/cameroon.png +0 -0
- package/public/Docsphere/flags/canada.png +0 -0
- package/public/Docsphere/flags/canary-islands.png +0 -0
- package/public/Docsphere/flags/cape-verde.png +0 -0
- package/public/Docsphere/flags/cayman-islands.png +0 -0
- package/public/Docsphere/flags/central-african-republic.png +0 -0
- package/public/Docsphere/flags/ceuta.png +0 -0
- package/public/Docsphere/flags/chad.png +0 -0
- package/public/Docsphere/flags/chile.png +0 -0
- package/public/Docsphere/flags/china.png +0 -0
- package/public/Docsphere/flags/christmas-island.png +0 -0
- package/public/Docsphere/flags/cocos-island.png +0 -0
- package/public/Docsphere/flags/colombia.png +0 -0
- package/public/Docsphere/flags/comoros.png +0 -0
- package/public/Docsphere/flags/cook-islands.png +0 -0
- package/public/Docsphere/flags/corsica.png +0 -0
- package/public/Docsphere/flags/costa-rica.png +0 -0
- package/public/Docsphere/flags/croatia.png +0 -0
- package/public/Docsphere/flags/cuba.png +0 -0
- package/public/Docsphere/flags/curacao.png +0 -0
- package/public/Docsphere/flags/cyprus.png +0 -0
- package/public/Docsphere/flags/czech-republic.png +0 -0
- package/public/Docsphere/flags/democratic-republic-of-congo.png +0 -0
- package/public/Docsphere/flags/denmark.png +0 -0
- package/public/Docsphere/flags/djibouti.png +0 -0
- package/public/Docsphere/flags/dominica.png +0 -0
- package/public/Docsphere/flags/dominican-republic.png +0 -0
- package/public/Docsphere/flags/east-timor.png +0 -0
- package/public/Docsphere/flags/ecuador.png +0 -0
- package/public/Docsphere/flags/egypt.png +0 -0
- package/public/Docsphere/flags/england.png +0 -0
- package/public/Docsphere/flags/equatorial-guinea.png +0 -0
- package/public/Docsphere/flags/eritrea.png +0 -0
- package/public/Docsphere/flags/estonia.png +0 -0
- package/public/Docsphere/flags/ethiopia.png +0 -0
- package/public/Docsphere/flags/european-union.png +0 -0
- package/public/Docsphere/flags/falkland-islands.png +0 -0
- package/public/Docsphere/flags/faroe-islands.png +0 -0
- package/public/Docsphere/flags/fiji.png +0 -0
- package/public/Docsphere/flags/finland.png +0 -0
- package/public/Docsphere/flags/france.png +0 -0
- package/public/Docsphere/flags/french-polynesia.png +0 -0
- package/public/Docsphere/flags/gabon.png +0 -0
- package/public/Docsphere/flags/galapagos-islands.png +0 -0
- package/public/Docsphere/flags/gambia.png +0 -0
- package/public/Docsphere/flags/georgia.png +0 -0
- package/public/Docsphere/flags/germany.png +0 -0
- package/public/Docsphere/flags/ghana.png +0 -0
- package/public/Docsphere/flags/gibraltar.png +0 -0
- package/public/Docsphere/flags/greece.png +0 -0
- package/public/Docsphere/flags/greenland.png +0 -0
- package/public/Docsphere/flags/grenada.png +0 -0
- package/public/Docsphere/flags/guam.png +0 -0
- package/public/Docsphere/flags/guatemala.png +0 -0
- package/public/Docsphere/flags/guernsey.png +0 -0
- package/public/Docsphere/flags/guinea-bissau.png +0 -0
- package/public/Docsphere/flags/guinea.png +0 -0
- package/public/Docsphere/flags/guyana.png +0 -0
- package/public/Docsphere/flags/haiti.png +0 -0
- package/public/Docsphere/flags/hawaii.png +0 -0
- package/public/Docsphere/flags/honduras.png +0 -0
- package/public/Docsphere/flags/hong-kong.png +0 -0
- package/public/Docsphere/flags/hungary.png +0 -0
- package/public/Docsphere/flags/iceland.png +0 -0
- package/public/Docsphere/flags/india.png +0 -0
- package/public/Docsphere/flags/indonesia.png +0 -0
- package/public/Docsphere/flags/iran.png +0 -0
- package/public/Docsphere/flags/iraq.png +0 -0
- package/public/Docsphere/flags/ireland.png +0 -0
- package/public/Docsphere/flags/isle-of-man.png +0 -0
- package/public/Docsphere/flags/israel.png +0 -0
- package/public/Docsphere/flags/italy.png +0 -0
- package/public/Docsphere/flags/ivory-coast.png +0 -0
- package/public/Docsphere/flags/jamaica.png +0 -0
- package/public/Docsphere/flags/japan.png +0 -0
- package/public/Docsphere/flags/jersey.png +0 -0
- package/public/Docsphere/flags/jordan.png +0 -0
- package/public/Docsphere/flags/kazakhstan.png +0 -0
- package/public/Docsphere/flags/kenya.png +0 -0
- package/public/Docsphere/flags/kiribati.png +0 -0
- package/public/Docsphere/flags/kosovo.png +0 -0
- package/public/Docsphere/flags/kuwait.png +0 -0
- package/public/Docsphere/flags/kyrgyzstan.png +0 -0
- package/public/Docsphere/flags/laos.png +0 -0
- package/public/Docsphere/flags/latvia.png +0 -0
- package/public/Docsphere/flags/lebanon.png +0 -0
- package/public/Docsphere/flags/lesotho.png +0 -0
- package/public/Docsphere/flags/liberia.png +0 -0
- package/public/Docsphere/flags/libya.png +0 -0
- package/public/Docsphere/flags/liechtenstein.png +0 -0
- package/public/Docsphere/flags/lithuania.png +0 -0
- package/public/Docsphere/flags/luxembourg.png +0 -0
- package/public/Docsphere/flags/macao.png +0 -0
- package/public/Docsphere/flags/madagascar.png +0 -0
- package/public/Docsphere/flags/madeira.png +0 -0
- package/public/Docsphere/flags/malawi.png +0 -0
- package/public/Docsphere/flags/malaysia.png +0 -0
- package/public/Docsphere/flags/maldives.png +0 -0
- package/public/Docsphere/flags/mali.png +0 -0
- package/public/Docsphere/flags/malta.png +0 -0
- package/public/Docsphere/flags/marshall-island.png +0 -0
- package/public/Docsphere/flags/martinique.png +0 -0
- package/public/Docsphere/flags/mauritania.png +0 -0
- package/public/Docsphere/flags/mauritius.png +0 -0
- package/public/Docsphere/flags/melilla.png +0 -0
- package/public/Docsphere/flags/mexico.png +0 -0
- package/public/Docsphere/flags/micronesia.png +0 -0
- package/public/Docsphere/flags/moldova.png +0 -0
- package/public/Docsphere/flags/monaco.png +0 -0
- package/public/Docsphere/flags/mongolia.png +0 -0
- package/public/Docsphere/flags/montenegro.png +0 -0
- package/public/Docsphere/flags/montserrat.png +0 -0
- package/public/Docsphere/flags/morocco.png +0 -0
- package/public/Docsphere/flags/mozambique.png +0 -0
- package/public/Docsphere/flags/myanmar.png +0 -0
- package/public/Docsphere/flags/namibia.png +0 -0
- package/public/Docsphere/flags/nato.png +0 -0
- package/public/Docsphere/flags/nauru.png +0 -0
- package/public/Docsphere/flags/nepal.png +0 -0
- package/public/Docsphere/flags/netherlands.png +0 -0
- package/public/Docsphere/flags/new-zealand.png +0 -0
- package/public/Docsphere/flags/nicaragua.png +0 -0
- package/public/Docsphere/flags/niger.png +0 -0
- package/public/Docsphere/flags/nigeria.png +0 -0
- package/public/Docsphere/flags/niue.png +0 -0
- package/public/Docsphere/flags/norfolk-island.png +0 -0
- package/public/Docsphere/flags/north-korea.png +0 -0
- package/public/Docsphere/flags/northen-cyprus.png +0 -0
- package/public/Docsphere/flags/northern-marianas-islands.png +0 -0
- package/public/Docsphere/flags/norway.png +0 -0
- package/public/Docsphere/flags/oman.png +0 -0
- package/public/Docsphere/flags/orkney-islands.png +0 -0
- package/public/Docsphere/flags/ossetia.png +0 -0
- package/public/Docsphere/flags/pakistan.png +0 -0
- package/public/Docsphere/flags/palau.png +0 -0
- package/public/Docsphere/flags/palestine.png +0 -0
- package/public/Docsphere/flags/panama.png +0 -0
- package/public/Docsphere/flags/papua-new-guinea.png +0 -0
- package/public/Docsphere/flags/paraguay.png +0 -0
- package/public/Docsphere/flags/peru.png +0 -0
- package/public/Docsphere/flags/philippines.png +0 -0
- package/public/Docsphere/flags/pitcairn-islands.png +0 -0
- package/public/Docsphere/flags/portugal.png +0 -0
- package/public/Docsphere/flags/puerto-rico.png +0 -0
- package/public/Docsphere/flags/qatar.png +0 -0
- package/public/Docsphere/flags/rapa-nui.png +0 -0
- package/public/Docsphere/flags/republic-of-macedonia.png +0 -0
- package/public/Docsphere/flags/republic-of-poland.png +0 -0
- package/public/Docsphere/flags/republic-of-the-congo.png +0 -0
- package/public/Docsphere/flags/romania.png +0 -0
- package/public/Docsphere/flags/russia.png +0 -0
- package/public/Docsphere/flags/rwanda.png +0 -0
- package/public/Docsphere/flags/saba-island.png +0 -0
- package/public/Docsphere/flags/saint-kitts-and-nevis.png +0 -0
- package/public/Docsphere/flags/salvador.png +0 -0
- package/public/Docsphere/flags/samoa.png +0 -0
- package/public/Docsphere/flags/san-marino.png +0 -0
- package/public/Docsphere/flags/sao-tome-and-principe.png +0 -0
- package/public/Docsphere/flags/sardinia.png +0 -0
- package/public/Docsphere/flags/saudi-arabia.png +0 -0
- package/public/Docsphere/flags/scotland.png +0 -0
- package/public/Docsphere/flags/senegal.png +0 -0
- package/public/Docsphere/flags/serbia.png +0 -0
- package/public/Docsphere/flags/seychelles.png +0 -0
- package/public/Docsphere/flags/sierra-leone.png +0 -0
- package/public/Docsphere/flags/singapore.png +0 -0
- package/public/Docsphere/flags/sint-eustatius.png +0 -0
- package/public/Docsphere/flags/sint-maarten.png +0 -0
- package/public/Docsphere/flags/slovakia.png +0 -0
- package/public/Docsphere/flags/slovenia.png +0 -0
- package/public/Docsphere/flags/solomon-islands.png +0 -0
- package/public/Docsphere/flags/somalia.png +0 -0
- package/public/Docsphere/flags/somaliland.png +0 -0
- package/public/Docsphere/flags/south-africa.png +0 -0
- package/public/Docsphere/flags/south-korea.png +0 -0
- package/public/Docsphere/flags/south-sudan.png +0 -0
- package/public/Docsphere/flags/spain.png +0 -0
- package/public/Docsphere/flags/sri-lanka.png +0 -0
- package/public/Docsphere/flags/st-barts.png +0 -0
- package/public/Docsphere/flags/st-lucia.png +0 -0
- package/public/Docsphere/flags/st-vincent-and-the-grenadines.png +0 -0
- package/public/Docsphere/flags/sudan.png +0 -0
- package/public/Docsphere/flags/suriname.png +0 -0
- package/public/Docsphere/flags/swaziland.png +0 -0
- package/public/Docsphere/flags/sweden.png +0 -0
- package/public/Docsphere/flags/switzerland.png +0 -0
- package/public/Docsphere/flags/syria.png +0 -0
- package/public/Docsphere/flags/taiwan.png +0 -0
- package/public/Docsphere/flags/tajikistan.png +0 -0
- package/public/Docsphere/flags/tanzania.png +0 -0
- package/public/Docsphere/flags/thailand.png +0 -0
- package/public/Docsphere/flags/tibet.png +0 -0
- package/public/Docsphere/flags/togo.png +0 -0
- package/public/Docsphere/flags/tokelau.png +0 -0
- package/public/Docsphere/flags/tonga.png +0 -0
- package/public/Docsphere/flags/transnistria.png +0 -0
- package/public/Docsphere/flags/trinidad-and-tobago.png +0 -0
- package/public/Docsphere/flags/tunisia.png +0 -0
- package/public/Docsphere/flags/turkey.png +0 -0
- package/public/Docsphere/flags/turkmenistan.png +0 -0
- package/public/Docsphere/flags/turks-and-caicos.png +0 -0
- package/public/Docsphere/flags/tuvalu.png +0 -0
- package/public/Docsphere/flags/uganda.png +0 -0
- package/public/Docsphere/flags/ukraine.png +0 -0
- package/public/Docsphere/flags/united-arab-emirates.png +0 -0
- package/public/Docsphere/flags/united-kingdom.png +0 -0
- package/public/Docsphere/flags/united-nations.png +0 -0
- package/public/Docsphere/flags/united-states-of-america.png +0 -0
- package/public/Docsphere/flags/uruguay.png +0 -0
- package/public/Docsphere/flags/uzbekistn.png +0 -0
- package/public/Docsphere/flags/vanuatu.png +0 -0
- package/public/Docsphere/flags/vatican-city.png +0 -0
- package/public/Docsphere/flags/venezuela.png +0 -0
- package/public/Docsphere/flags/vietnam.png +0 -0
- package/public/Docsphere/flags/virgin-islands.png +0 -0
- package/public/Docsphere/flags/wales.png +0 -0
- package/public/Docsphere/flags/western-sahara.png +0 -0
- package/public/Docsphere/flags/yemen.png +0 -0
- package/public/Docsphere/flags/zambia.png +0 -0
- package/public/Docsphere/flags/zimbabwe.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/images/flags/brazil.png +0 -0
- package/public/images/flags/united-states-of-america.png +0 -0
- package/public/images/logo.png +0 -0
- package/public/logo.png +0 -0
- package/public/robots.txt +2 -0
- package/public/sad.svg +1 -0
- package/quasar.config.js +117 -0
- package/src/App.vue +235 -0
- package/src/boot/QZoom.js +7 -0
- package/src/boot/axios.js +11 -0
- package/src/boot/i18n.js +15 -0
- package/src/boot/store.js +26 -0
- package/src/components/DH1.vue +42 -0
- package/src/components/DH2.vue +36 -0
- package/src/components/DH3.vue +36 -0
- package/src/components/DH4.vue +26 -0
- package/src/components/DH5.vue +26 -0
- package/src/components/DH6.vue +26 -0
- package/src/components/DMenu.vue +446 -0
- package/src/components/DMenuItem.vue +127 -0
- package/src/components/DPage.vue +222 -0
- package/src/components/DPageAnchor.vue +123 -0
- package/src/components/DPageBlockquote.vue +19 -0
- package/src/components/DPageMeta.vue +203 -0
- package/src/components/DPageSection.vue +243 -0
- package/src/components/DPageSourceCode.vue +376 -0
- package/src/components/DSubpage.vue +33 -0
- package/src/components/QZoom.js +278 -0
- package/src/components/QZoom.styl +43 -0
- package/src/composables/useNavigator.js +113 -0
- package/src/css/app.sass +279 -0
- package/src/css/quasar.variables.scss +24 -0
- package/src/i18n/index.js +126 -0
- package/src/i18n/languages/en-US.hjson +98 -0
- package/src/i18n/languages/pt-BR.hjson +97 -0
- package/src/i18n/tags.hjson +44 -0
- package/src/index.js +99 -0
- package/src/layouts/DefaultLayout.vue +95 -0
- package/src/layouts/SystemLayout.vue +4 -0
- package/src/pages/@/404Page.vue +15 -0
- package/src/pages/@/BootPage.vue +106 -0
- package/src/pages/boot.js +10 -0
- package/src/pages/guide/configuration.overview.en-US.md +107 -0
- package/src/pages/guide/configuration.overview.pt-BR.md +107 -0
- package/src/pages/guide/deployment.overview.en-US.md +49 -0
- package/src/pages/guide/deployment.overview.pt-BR.md +49 -0
- package/src/pages/guide/getting-started.overview.en-US.md +59 -0
- package/src/pages/guide/getting-started.overview.pt-BR.md +59 -0
- package/src/pages/guide/i18n-and-markdown.overview.en-US.md +77 -0
- package/src/pages/guide/i18n-and-markdown.overview.pt-BR.md +77 -0
- package/src/pages/guide/pages-and-routing.overview.en-US.md +85 -0
- package/src/pages/guide/pages-and-routing.overview.pt-BR.md +85 -0
- package/src/pages/guide/plugins.overview.en-US.md +3 -0
- package/src/pages/guide/plugins.overview.pt-BR.md +3 -0
- package/src/pages/guide/theming.overview.en-US.md +55 -0
- package/src/pages/guide/theming.overview.pt-BR.md +55 -0
- package/src/pages/index.js +385 -0
- package/src/pages/manual/components/d-headings.overview.en-US.md +54 -0
- package/src/pages/manual/components/d-headings.overview.pt-BR.md +54 -0
- package/src/pages/manual/components/d-headings.showcase.en-US.md +32 -0
- package/src/pages/manual/components/d-headings.showcase.pt-BR.md +32 -0
- package/src/pages/manual/components/d-menu.overview.en-US.md +59 -0
- package/src/pages/manual/components/d-menu.overview.pt-BR.md +59 -0
- package/src/pages/manual/components/d-page-anchor.overview.en-US.md +49 -0
- package/src/pages/manual/components/d-page-anchor.overview.pt-BR.md +49 -0
- package/src/pages/manual/components/d-page-blockquote.overview.en-US.md +44 -0
- package/src/pages/manual/components/d-page-blockquote.overview.pt-BR.md +44 -0
- package/src/pages/manual/components/d-page-blockquote.showcase.en-US.md +27 -0
- package/src/pages/manual/components/d-page-blockquote.showcase.pt-BR.md +27 -0
- package/src/pages/manual/components/d-page-meta.overview.en-US.md +51 -0
- package/src/pages/manual/components/d-page-meta.overview.pt-BR.md +51 -0
- package/src/pages/manual/components/d-page-section.overview.en-US.md +55 -0
- package/src/pages/manual/components/d-page-section.overview.pt-BR.md +55 -0
- package/src/pages/manual/components/d-page-section.showcase.en-US.md +43 -0
- package/src/pages/manual/components/d-page-section.showcase.pt-BR.md +43 -0
- package/src/pages/manual/components/d-page-source-code.overview.en-US.md +54 -0
- package/src/pages/manual/components/d-page-source-code.overview.pt-BR.md +54 -0
- package/src/pages/manual/components/d-page-source-code.showcase.en-US.md +50 -0
- package/src/pages/manual/components/d-page-source-code.showcase.pt-BR.md +50 -0
- package/src/pages/manual/components/d-page.overview.en-US.md +56 -0
- package/src/pages/manual/components/d-page.overview.pt-BR.md +56 -0
- package/src/pages/manual/components/d-page.showcase.en-US.md +35 -0
- package/src/pages/manual/components/d-page.showcase.pt-BR.md +35 -0
- package/src/pages/manual/components/d-subpage.overview.en-US.md +56 -0
- package/src/pages/manual/components/d-subpage.overview.pt-BR.md +56 -0
- package/src/pages/manual/components/q-zoom.overview.en-US.md +71 -0
- package/src/pages/manual/components/q-zoom.overview.pt-BR.md +71 -0
- package/src/pages/manual/composables/use-navigator.overview.en-US.md +89 -0
- package/src/pages/manual/composables/use-navigator.overview.pt-BR.md +89 -0
- package/src/pages/manual/store/modules.overview.en-US.md +96 -0
- package/src/pages/manual/store/modules.overview.pt-BR.md +96 -0
- package/src/router/index.js +30 -0
- package/src/router/routes.js +93 -0
- package/src/store/App.js +43 -0
- package/src/store/I18n.js +22 -0
- package/src/store/Layout.js +124 -0
- package/src/store/Page.js +103 -0
- package/src/store/Settings.js +18 -0
- package/src/store/index.js +24 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
## Showcase
|
|
2
|
+
|
|
3
|
+
Here are code blocks in different languages demonstrating the DPageSourceCode component:
|
|
4
|
+
|
|
5
|
+
### PHP Example
|
|
6
|
+
|
|
7
|
+
```php
|
|
8
|
+
class HelloWorld
|
|
9
|
+
{
|
|
10
|
+
public function greet(string $name): string
|
|
11
|
+
{
|
|
12
|
+
return "Hello, {$name}!";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
$hello = new HelloWorld();
|
|
17
|
+
echo $hello->greet('Docsector');
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Bash Example
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
#!/bin/bash
|
|
24
|
+
echo "Installing Docsector Reader..."
|
|
25
|
+
npm install
|
|
26
|
+
npx quasar dev
|
|
27
|
+
echo "Server running at http://localhost:8181"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### HTML Example
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<template>
|
|
34
|
+
<d-page>
|
|
35
|
+
<header>
|
|
36
|
+
<d-h1 :id="0" />
|
|
37
|
+
</header>
|
|
38
|
+
<main>
|
|
39
|
+
<d-page-section :id="id" />
|
|
40
|
+
</main>
|
|
41
|
+
</d-page>
|
|
42
|
+
</template>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Features Visible Above
|
|
46
|
+
|
|
47
|
+
- **Line numbers** on the left side of multi-line blocks
|
|
48
|
+
- **Language label** in the top-right corner
|
|
49
|
+
- **Copy button** next to the language label
|
|
50
|
+
- **Syntax highlighting** with language-specific coloring
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
## Demonstração
|
|
2
|
+
|
|
3
|
+
Aqui estão blocos de código em diferentes linguagens demonstrando o componente DPageSourceCode:
|
|
4
|
+
|
|
5
|
+
### Exemplo PHP
|
|
6
|
+
|
|
7
|
+
```php
|
|
8
|
+
class HelloWorld
|
|
9
|
+
{
|
|
10
|
+
public function greet(string $name): string
|
|
11
|
+
{
|
|
12
|
+
return "Olá, {$name}!";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
$hello = new HelloWorld();
|
|
17
|
+
echo $hello->greet('Docsector');
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Exemplo Bash
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
#!/bin/bash
|
|
24
|
+
echo "Instalando Docsector Reader..."
|
|
25
|
+
npm install
|
|
26
|
+
npx quasar dev
|
|
27
|
+
echo "Servidor rodando em http://localhost:8181"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Exemplo HTML
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<template>
|
|
34
|
+
<d-page>
|
|
35
|
+
<header>
|
|
36
|
+
<d-h1 :id="0" />
|
|
37
|
+
</header>
|
|
38
|
+
<main>
|
|
39
|
+
<d-page-section :id="id" />
|
|
40
|
+
</main>
|
|
41
|
+
</d-page>
|
|
42
|
+
</template>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Funcionalidades Visíveis Acima
|
|
46
|
+
|
|
47
|
+
- **Números de linha** no lado esquerdo de blocos multi-linha
|
|
48
|
+
- **Label de linguagem** no canto superior direito
|
|
49
|
+
- **Botão de cópia** ao lado do label de linguagem
|
|
50
|
+
- **Syntax highlighting** com coloração específica por linguagem
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`DPage` is the **main page container** component. It provides the scroll area, submenu toolbar (Overview/Showcase/Vs tabs), the right-side anchor drawer, and the `DPageMeta` footer.
|
|
4
|
+
|
|
5
|
+
Every documentation page is rendered inside a `DPage` instance.
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `disableNav` | `Boolean` | `false` | Hides the DPageMeta navigation footer |
|
|
12
|
+
|
|
13
|
+
## Template Structure
|
|
14
|
+
|
|
15
|
+
DPage renders the following layout:
|
|
16
|
+
|
|
17
|
+
- **QPageContainer** — Quasar page container
|
|
18
|
+
- **QToolbar** (submenu) — Tab navigation: Overview, Showcase, Vs
|
|
19
|
+
- **QPage** with **QScrollArea** — Scrollable content area with slot
|
|
20
|
+
- **QDrawer** (right) — Anchor/ToC navigation tree
|
|
21
|
+
|
|
22
|
+
## Slot
|
|
23
|
+
|
|
24
|
+
The default slot receives the page content. Typically, `DSubpage` places `DH1` and `DPageSection` inside this slot:
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<d-page>
|
|
28
|
+
<header>
|
|
29
|
+
<d-h1 :id="0" />
|
|
30
|
+
</header>
|
|
31
|
+
<main>
|
|
32
|
+
<d-page-section :id="sectionId" />
|
|
33
|
+
</main>
|
|
34
|
+
</d-page>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Subpage Tabs
|
|
38
|
+
|
|
39
|
+
DPage reads the route's `meta.subpages` configuration to determine which tabs to display:
|
|
40
|
+
|
|
41
|
+
- **Overview** — Always shown when other tabs exist
|
|
42
|
+
- **Showcase** — Shown when `subpages.showcase: true`
|
|
43
|
+
- **Vs** — Shown when `subpages.vs: true`
|
|
44
|
+
|
|
45
|
+
## Scroll Behavior
|
|
46
|
+
|
|
47
|
+
DPage resets the scroll position on route changes via `router.beforeEach`. The scroll observer monitors vertical scroll position and updates the anchor selection via the `useNavigator` composable.
|
|
48
|
+
|
|
49
|
+
## Store Integration
|
|
50
|
+
|
|
51
|
+
DPage reads from and writes to several Vuex store modules:
|
|
52
|
+
|
|
53
|
+
- `layout/meta` — Controls the right-side anchor drawer visibility
|
|
54
|
+
- `page/base` — Current page base path
|
|
55
|
+
- `page/relative` — Current subpage path (`/overview`, `/showcase`, `/vs`)
|
|
56
|
+
- `page/anchor` — Resets anchors on navigation
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## Visão Geral
|
|
2
|
+
|
|
3
|
+
`DPage` é o componente **container principal de página**. Ele fornece a área de scroll, a barra de submenu (abas Overview/Showcase/Vs), o drawer lateral de âncoras e o rodapé `DPageMeta`.
|
|
4
|
+
|
|
5
|
+
Toda página de documentação é renderizada dentro de uma instância de `DPage`.
|
|
6
|
+
|
|
7
|
+
## Props
|
|
8
|
+
|
|
9
|
+
| Prop | Tipo | Padrão | Descrição |
|
|
10
|
+
|------|------|--------|-----------|
|
|
11
|
+
| `disableNav` | `Boolean` | `false` | Oculta o rodapé de navegação DPageMeta |
|
|
12
|
+
|
|
13
|
+
## Estrutura do Template
|
|
14
|
+
|
|
15
|
+
DPage renderiza o seguinte layout:
|
|
16
|
+
|
|
17
|
+
- **QPageContainer** — Container de página Quasar
|
|
18
|
+
- **QToolbar** (submenu) — Navegação por abas: Overview, Showcase, Vs
|
|
19
|
+
- **QPage** com **QScrollArea** — Área de conteúdo com scroll e slot
|
|
20
|
+
- **QDrawer** (direita) — Árvore de navegação por âncoras/ToC
|
|
21
|
+
|
|
22
|
+
## Slot
|
|
23
|
+
|
|
24
|
+
O slot padrão recebe o conteúdo da página. Normalmente, `DSubpage` coloca `DH1` e `DPageSection` dentro deste slot:
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<d-page>
|
|
28
|
+
<header>
|
|
29
|
+
<d-h1 :id="0" />
|
|
30
|
+
</header>
|
|
31
|
+
<main>
|
|
32
|
+
<d-page-section :id="sectionId" />
|
|
33
|
+
</main>
|
|
34
|
+
</d-page>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Abas de Sub-página
|
|
38
|
+
|
|
39
|
+
DPage lê a configuração `meta.subpages` da rota para determinar quais abas exibir:
|
|
40
|
+
|
|
41
|
+
- **Overview** — Sempre exibida quando outras abas existem
|
|
42
|
+
- **Showcase** — Exibida quando `subpages.showcase: true`
|
|
43
|
+
- **Vs** — Exibida quando `subpages.vs: true`
|
|
44
|
+
|
|
45
|
+
## Comportamento de Scroll
|
|
46
|
+
|
|
47
|
+
DPage reseta a posição de scroll nas mudanças de rota via `router.beforeEach`. O observador de scroll monitora a posição vertical e atualiza a seleção de âncora via composable `useNavigator`.
|
|
48
|
+
|
|
49
|
+
## Integração com Store
|
|
50
|
+
|
|
51
|
+
DPage lê e escreve em vários módulos da Vuex store:
|
|
52
|
+
|
|
53
|
+
- `layout/meta` — Controla a visibilidade do drawer de âncoras
|
|
54
|
+
- `page/base` — Caminho base da página atual
|
|
55
|
+
- `page/relative` — Caminho da sub-página (`/overview`, `/showcase`, `/vs`)
|
|
56
|
+
- `page/anchor` — Reseta âncoras na navegação
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
## Showcase
|
|
2
|
+
|
|
3
|
+
Here is an example of how DPage is used inside DSubpage:
|
|
4
|
+
|
|
5
|
+
```html
|
|
6
|
+
<template>
|
|
7
|
+
<d-page>
|
|
8
|
+
<header>
|
|
9
|
+
<d-h1 :id="0" />
|
|
10
|
+
</header>
|
|
11
|
+
<main>
|
|
12
|
+
<d-page-section :id="id" />
|
|
13
|
+
</main>
|
|
14
|
+
</d-page>
|
|
15
|
+
</template>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The submenu toolbar automatically adapts to the page configuration. If only Overview is configured, the toolbar shows a single tab. When Showcase or Vs tabs are enabled, the toolbar expands with labeled buttons.
|
|
19
|
+
|
|
20
|
+
## Mobile Behavior
|
|
21
|
+
|
|
22
|
+
On mobile devices (`$q.screen.lt.md`), the submenu button labels are hidden, showing only icons. The right-side anchor drawer becomes an overlay that can be toggled with the tree icon button.
|
|
23
|
+
|
|
24
|
+
## Custom Content Example
|
|
25
|
+
|
|
26
|
+
You can also use DPage with `disableNav` to create standalone pages without the bottom navigation:
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<d-page :disable-nav="true">
|
|
30
|
+
<div class="text-center q-pa-lg">
|
|
31
|
+
<h2>Custom Page Content</h2>
|
|
32
|
+
<p>No bottom nav, no prev/next links.</p>
|
|
33
|
+
</div>
|
|
34
|
+
</d-page>
|
|
35
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
## Demonstração
|
|
2
|
+
|
|
3
|
+
Veja como DPage é usado dentro do DSubpage:
|
|
4
|
+
|
|
5
|
+
```html
|
|
6
|
+
<template>
|
|
7
|
+
<d-page>
|
|
8
|
+
<header>
|
|
9
|
+
<d-h1 :id="0" />
|
|
10
|
+
</header>
|
|
11
|
+
<main>
|
|
12
|
+
<d-page-section :id="id" />
|
|
13
|
+
</main>
|
|
14
|
+
</d-page>
|
|
15
|
+
</template>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
A barra de submenu se adapta automaticamente à configuração da página. Se apenas Overview estiver configurado, a barra mostra uma única aba. Quando as abas Showcase ou Vs estão habilitadas, a barra expande com botões rotulados.
|
|
19
|
+
|
|
20
|
+
## Comportamento Mobile
|
|
21
|
+
|
|
22
|
+
Em dispositivos móveis (`$q.screen.lt.md`), os labels dos botões do submenu ficam ocultos, mostrando apenas ícones. O drawer de âncoras à direita se torna um overlay que pode ser alternado com o botão de ícone de árvore.
|
|
23
|
+
|
|
24
|
+
## Exemplo de Conteúdo Customizado
|
|
25
|
+
|
|
26
|
+
Você também pode usar DPage com `disableNav` para criar páginas standalone sem navegação inferior:
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<d-page :disable-nav="true">
|
|
30
|
+
<div class="text-center q-pa-lg">
|
|
31
|
+
<h2>Conteúdo Customizado</h2>
|
|
32
|
+
<p>Sem nav inferior, sem links prev/next.</p>
|
|
33
|
+
</div>
|
|
34
|
+
</d-page>
|
|
35
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`DSubpage` is a **convenience wrapper** that composes `DPage`, `DH1`, and `DPageSection` into a standard documentation page layout. It is the component loaded by the router for every subpage route.
|
|
4
|
+
|
|
5
|
+
## How It Works
|
|
6
|
+
|
|
7
|
+
DSubpage generates a deterministic numeric ID from the current route path using a hash function. This ID is passed to `DPageSection` to ensure unique component keys across page navigations.
|
|
8
|
+
|
|
9
|
+
## Template
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<d-page>
|
|
13
|
+
<header>
|
|
14
|
+
<d-h1 :id="0" />
|
|
15
|
+
</header>
|
|
16
|
+
<main>
|
|
17
|
+
<d-page-section :id="id" />
|
|
18
|
+
</main>
|
|
19
|
+
</d-page>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## ID Generation
|
|
23
|
+
|
|
24
|
+
The `id` computed property creates a consistent hash from the route path:
|
|
25
|
+
|
|
26
|
+
```javascript
|
|
27
|
+
const id = computed(() => {
|
|
28
|
+
const path = route.path
|
|
29
|
+
let hash = 5381
|
|
30
|
+
for (let i = 0; i < path.length; i++) {
|
|
31
|
+
hash = (hash * 33) ^ path.charCodeAt(i)
|
|
32
|
+
}
|
|
33
|
+
return hash >>> 0
|
|
34
|
+
})
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This ensures that each page generates a unique set of anchor IDs, preventing collisions when switching between pages.
|
|
38
|
+
|
|
39
|
+
## When to Use
|
|
40
|
+
|
|
41
|
+
DSubpage is automatically used by the router for all documentation pages. You don't need to use it directly unless creating custom page layouts. For standard documentation, the router handles everything:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
// In routes.js - this happens automatically
|
|
45
|
+
{
|
|
46
|
+
path: 'overview',
|
|
47
|
+
component: () => import('components/DSubpage.vue'),
|
|
48
|
+
meta: { status: config.status }
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Relationship with DPage
|
|
53
|
+
|
|
54
|
+
- `DSubpage` **uses** `DPage` as its container
|
|
55
|
+
- `DPage` handles layout (scroll, toolbar, drawer)
|
|
56
|
+
- `DSubpage` handles content composition (H1 + sections)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## Visão Geral
|
|
2
|
+
|
|
3
|
+
`DSubpage` é um **wrapper de conveniência** que compõe `DPage`, `DH1` e `DPageSection` em um layout de página de documentação padrão. É o componente carregado pelo roteador para cada rota de sub-página.
|
|
4
|
+
|
|
5
|
+
## Como Funciona
|
|
6
|
+
|
|
7
|
+
DSubpage gera um ID numérico determinístico a partir do caminho da rota atual usando uma função hash. Esse ID é passado ao `DPageSection` para garantir chaves de componente únicas entre navegações de página.
|
|
8
|
+
|
|
9
|
+
## Template
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<d-page>
|
|
13
|
+
<header>
|
|
14
|
+
<d-h1 :id="0" />
|
|
15
|
+
</header>
|
|
16
|
+
<main>
|
|
17
|
+
<d-page-section :id="id" />
|
|
18
|
+
</main>
|
|
19
|
+
</d-page>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Geração de ID
|
|
23
|
+
|
|
24
|
+
A propriedade computada `id` cria um hash consistente a partir do caminho da rota:
|
|
25
|
+
|
|
26
|
+
```javascript
|
|
27
|
+
const id = computed(() => {
|
|
28
|
+
const path = route.path
|
|
29
|
+
let hash = 5381
|
|
30
|
+
for (let i = 0; i < path.length; i++) {
|
|
31
|
+
hash = (hash * 33) ^ path.charCodeAt(i)
|
|
32
|
+
}
|
|
33
|
+
return hash >>> 0
|
|
34
|
+
})
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Isso garante que cada página gere um conjunto único de IDs de âncora, prevenindo colisões ao navegar entre páginas.
|
|
38
|
+
|
|
39
|
+
## Quando Usar
|
|
40
|
+
|
|
41
|
+
DSubpage é usado automaticamente pelo roteador para todas as páginas de documentação. Você não precisa usá-lo diretamente, a menos que crie layouts de página customizados. Para documentação padrão, o roteador cuida de tudo:
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
// Em routes.js - isso acontece automaticamente
|
|
45
|
+
{
|
|
46
|
+
path: 'overview',
|
|
47
|
+
component: () => import('components/DSubpage.vue'),
|
|
48
|
+
meta: { status: config.status }
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Relação com DPage
|
|
53
|
+
|
|
54
|
+
- `DSubpage` **usa** `DPage` como container
|
|
55
|
+
- `DPage` cuida do layout (scroll, toolbar, drawer)
|
|
56
|
+
- `DSubpage` cuida da composição de conteúdo (H1 + seções)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`QZoom` is a **zoom overlay** component forked from `quasarframework/app-extension-qzoom` and ported from Vue 2 to Vue 3. It enables any content to be zoomed into a fullscreen overlay with optional scaling.
|
|
4
|
+
|
|
5
|
+
## Props
|
|
6
|
+
|
|
7
|
+
| Prop | Type | Default | Description |
|
|
8
|
+
|------|------|---------|-------------|
|
|
9
|
+
| `backgroundColor` | `String` | `'white'` | Background color of the overlay |
|
|
10
|
+
| `restoreOnScroll` | `Boolean` | `false` | Close zoom when user scrolls |
|
|
11
|
+
| `manual` | `Boolean` | `false` | Disable automatic click-to-zoom |
|
|
12
|
+
| `scale` | `Boolean` | `false` | Enable mouse wheel scaling |
|
|
13
|
+
| `initialScale` | `Number` | `1.0` | Initial scale (0.05–10) |
|
|
14
|
+
| `scaleText` | `Boolean` | `false` | Enable font-size scaling instead of transform |
|
|
15
|
+
| `initialScaleText` | `Number` | `100` | Initial font-size percentage (50–500) |
|
|
16
|
+
| `noCenter` | `Boolean` | `false` | Don't center content in overlay |
|
|
17
|
+
| `noWheelScale` | `Boolean` | `false` | Disable mouse wheel scaling |
|
|
18
|
+
| `noEscClose` | `Boolean` | `false` | Disable Escape key to close |
|
|
19
|
+
|
|
20
|
+
## Events
|
|
21
|
+
|
|
22
|
+
| Event | Payload | Description |
|
|
23
|
+
|-------|---------|-------------|
|
|
24
|
+
| `before-zoom` | — | Emitted before zoom animation starts |
|
|
25
|
+
| `zoomed` | — | Emitted after zoom animation completes |
|
|
26
|
+
| `before-restore` | — | Emitted before restore animation starts |
|
|
27
|
+
| `restored` | — | Emitted after restore animation completes |
|
|
28
|
+
| `scale` | `Number` | Emitted when scale value changes |
|
|
29
|
+
| `scale-text` | `Number` | Emitted when text scale value changes |
|
|
30
|
+
|
|
31
|
+
## Slot
|
|
32
|
+
|
|
33
|
+
The default slot receives a `zoomed` Boolean indicating the current zoom state:
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<q-zoom>
|
|
37
|
+
<template v-slot:default="{ zoomed }">
|
|
38
|
+
<img src="diagram.png" :class="zoomed ? 'zoomed' : ''" />
|
|
39
|
+
</template>
|
|
40
|
+
</q-zoom>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## How It Works
|
|
44
|
+
|
|
45
|
+
1. By default, clicking toggles between normal and fullscreen
|
|
46
|
+
2. An overlay is created with a smooth transition (500ms zoom in, 400ms restore)
|
|
47
|
+
3. During zoom, body scroll is disabled (unless `restoreOnScroll` is true)
|
|
48
|
+
4. Press **Escape** to close (unless `noEscClose` is true)
|
|
49
|
+
|
|
50
|
+
## Scaling Modes
|
|
51
|
+
|
|
52
|
+
Two mutually exclusive scaling modes:
|
|
53
|
+
|
|
54
|
+
- **Transform scale** (`scale` prop) — Scales the entire content using CSS `transform: scale()`
|
|
55
|
+
- **Font-size scale** (`scaleText` prop) — Adjusts the content's `font-size` percentage
|
|
56
|
+
|
|
57
|
+
Mouse wheel scrolling adjusts the scale value when zoomed (unless `noWheelScale` is true).
|
|
58
|
+
|
|
59
|
+
## Boot Registration
|
|
60
|
+
|
|
61
|
+
QZoom is registered globally via `src/boot/QZoom.js`:
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
app.component('QZoom', QZoom)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This makes `<q-zoom>` available in all templates without explicit imports.
|
|
68
|
+
|
|
69
|
+
## Dependencies
|
|
70
|
+
|
|
71
|
+
QZoom requires the `q-colorize-mixin` package for background color handling, and `QZoom.styl` for its CSS styles.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
## Visão Geral
|
|
2
|
+
|
|
3
|
+
`QZoom` é um componente de **overlay de zoom** forked de `quasarframework/app-extension-qzoom` e portado de Vue 2 para Vue 3. Ele permite que qualquer conteúdo seja ampliado em um overlay fullscreen com escala opcional.
|
|
4
|
+
|
|
5
|
+
## Props
|
|
6
|
+
|
|
7
|
+
| Prop | Tipo | Padrão | Descrição |
|
|
8
|
+
|------|------|--------|-----------|
|
|
9
|
+
| `backgroundColor` | `String` | `'white'` | Cor de fundo do overlay |
|
|
10
|
+
| `restoreOnScroll` | `Boolean` | `false` | Fecha zoom quando o usuário faz scroll |
|
|
11
|
+
| `manual` | `Boolean` | `false` | Desabilita click-to-zoom automático |
|
|
12
|
+
| `scale` | `Boolean` | `false` | Habilita escala com roda do mouse |
|
|
13
|
+
| `initialScale` | `Number` | `1.0` | Escala inicial (0.05–10) |
|
|
14
|
+
| `scaleText` | `Boolean` | `false` | Habilita escala de font-size ao invés de transform |
|
|
15
|
+
| `initialScaleText` | `Number` | `100` | Porcentagem inicial de font-size (50–500) |
|
|
16
|
+
| `noCenter` | `Boolean` | `false` | Não centraliza conteúdo no overlay |
|
|
17
|
+
| `noWheelScale` | `Boolean` | `false` | Desabilita escala com roda do mouse |
|
|
18
|
+
| `noEscClose` | `Boolean` | `false` | Desabilita tecla Escape para fechar |
|
|
19
|
+
|
|
20
|
+
## Eventos
|
|
21
|
+
|
|
22
|
+
| Evento | Payload | Descrição |
|
|
23
|
+
|--------|---------|-----------|
|
|
24
|
+
| `before-zoom` | — | Emitido antes da animação de zoom iniciar |
|
|
25
|
+
| `zoomed` | — | Emitido após a animação de zoom completar |
|
|
26
|
+
| `before-restore` | — | Emitido antes da animação de restaurar iniciar |
|
|
27
|
+
| `restored` | — | Emitido após a animação de restaurar completar |
|
|
28
|
+
| `scale` | `Number` | Emitido quando o valor de escala muda |
|
|
29
|
+
| `scale-text` | `Number` | Emitido quando o valor de escala de texto muda |
|
|
30
|
+
|
|
31
|
+
## Slot
|
|
32
|
+
|
|
33
|
+
O slot padrão recebe um Boolean `zoomed` indicando o estado de zoom atual:
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<q-zoom>
|
|
37
|
+
<template v-slot:default="{ zoomed }">
|
|
38
|
+
<img src="diagrama.png" :class="zoomed ? 'zoomed' : ''" />
|
|
39
|
+
</template>
|
|
40
|
+
</q-zoom>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Como Funciona
|
|
44
|
+
|
|
45
|
+
1. Por padrão, clicar alterna entre normal e fullscreen
|
|
46
|
+
2. Um overlay é criado com transição suave (500ms zoom in, 400ms restore)
|
|
47
|
+
3. Durante o zoom, o scroll do body é desabilitado (a menos que `restoreOnScroll` seja true)
|
|
48
|
+
4. Pressione **Escape** para fechar (a menos que `noEscClose` seja true)
|
|
49
|
+
|
|
50
|
+
## Modos de Escala
|
|
51
|
+
|
|
52
|
+
Dois modos de escala mutuamente exclusivos:
|
|
53
|
+
|
|
54
|
+
- **Transform scale** (prop `scale`) — Escala todo o conteúdo usando CSS `transform: scale()`
|
|
55
|
+
- **Font-size scale** (prop `scaleText`) — Ajusta a porcentagem de `font-size` do conteúdo
|
|
56
|
+
|
|
57
|
+
Scroll com roda do mouse ajusta o valor de escala quando ampliado (a menos que `noWheelScale` seja true).
|
|
58
|
+
|
|
59
|
+
## Registro via Boot
|
|
60
|
+
|
|
61
|
+
QZoom é registrado globalmente via `src/boot/QZoom.js`:
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
app.component('QZoom', QZoom)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Isso torna `<q-zoom>` disponível em todos os templates sem imports explícitos.
|
|
68
|
+
|
|
69
|
+
## Dependências
|
|
70
|
+
|
|
71
|
+
QZoom requer o pacote `q-colorize-mixin` para tratamento de cor de fundo, e `QZoom.styl` para seus estilos CSS.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`useNavigator` is the **core composable** that manages anchor navigation, heading registration, scroll tracking, and ToC tree construction. It is used by DH1–DH6, DPage, and DPageAnchor.
|
|
4
|
+
|
|
5
|
+
## Returned API
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
const {
|
|
9
|
+
register, // Register an anchor ID
|
|
10
|
+
index, // Add a node to the ToC tree
|
|
11
|
+
select, // Select an anchor
|
|
12
|
+
anchor, // Scroll to an anchor
|
|
13
|
+
scrolling, // Scroll event handler
|
|
14
|
+
navigate, // Navigate to an anchor (URL + scroll)
|
|
15
|
+
selected // Ref to currently selected anchor
|
|
16
|
+
} = useNavigator()
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Functions
|
|
20
|
+
|
|
21
|
+
### register(id)
|
|
22
|
+
|
|
23
|
+
Registers an anchor ID in the `page/anchors` store array. Called by heading components on mount.
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
onMounted(() => {
|
|
27
|
+
register(props.id)
|
|
28
|
+
})
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### index(id, child)
|
|
32
|
+
|
|
33
|
+
Pushes a node into the `page/nodes` store to build the ToC tree. Called by DH2–DH6 after rendering.
|
|
34
|
+
|
|
35
|
+
### select(id)
|
|
36
|
+
|
|
37
|
+
Updates `page/anchor` state and expands the corresponding tree node.
|
|
38
|
+
|
|
39
|
+
### anchor(id, toSelect)
|
|
40
|
+
|
|
41
|
+
Scrolls the viewport to the DOM element with the given ID using Quasar's `scroll` utility. Optionally calls `select()` to highlight the node in the ToC tree.
|
|
42
|
+
|
|
43
|
+
### scrolling(scroll)
|
|
44
|
+
|
|
45
|
+
The scroll event handler attached to DPage's QScrollObserver. It iterates all registered anchors, finds the one closest to the current scroll position, and selects it. Only active when `page/scrolling` is `true`.
|
|
46
|
+
|
|
47
|
+
### navigate(value, toAnchor)
|
|
48
|
+
|
|
49
|
+
Full navigation function that:
|
|
50
|
+
|
|
51
|
+
1. Updates the URL hash via `router.push()`
|
|
52
|
+
2. Scrolls to the anchor element
|
|
53
|
+
3. Handles desktop vs mobile timing differences
|
|
54
|
+
|
|
55
|
+
## Usage Pattern
|
|
56
|
+
|
|
57
|
+
Heading components use register + index:
|
|
58
|
+
|
|
59
|
+
```javascript
|
|
60
|
+
const { register, index, navigate, selected } = useNavigator()
|
|
61
|
+
|
|
62
|
+
onMounted(() => {
|
|
63
|
+
register(props.id)
|
|
64
|
+
selected.value = props.value
|
|
65
|
+
index(props.id)
|
|
66
|
+
})
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
DPage uses scrolling:
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
const { scrolling, navigate } = useNavigator()
|
|
73
|
+
// scrolling is passed to QScrollObserver
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
DPageAnchor uses navigate + anchor:
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
const { navigate, anchor, selected } = useNavigator()
|
|
80
|
+
// navigate is triggered by QTree selection
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Store Dependencies
|
|
84
|
+
|
|
85
|
+
- `page/anchors` — Array of registered anchor IDs
|
|
86
|
+
- `page/nodes` — ToC tree structure
|
|
87
|
+
- `page/nodesExpanded` — Expanded tree nodes
|
|
88
|
+
- `page/anchor` — Currently selected anchor
|
|
89
|
+
- `page/scrolling` — Whether scroll tracking is active
|