{"_id":"@angelmartz/template-drawer-navigation-ng","name":"@angelmartz/template-drawer-navigation-ng","dist-tags":{"latest":"9.1.0"},"versions":{"9.1.0":{"name":"@angelmartz/template-drawer-navigation-ng","main":"src/main.ts","version":"9.1.0","displayName":"Navigation Drawer (corregida)","templateType":"App template","description":"Plantilla NativeScript + Angular con navegación por drawer, corregida para Angular 22 y @nativescript/core 9","author":{"name":"Angel Martínez"},"license":"Apache-2.0","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/angelmartz/template-drawer-navigation-ng.git"},"homepage":"https://github.com/angelmartz/template-drawer-navigation-ng","keywords":["nativescript","angular","template","drawer","navigation"],"scripts":{"postinstall":"patch-package"},"dependencies":{"@angular/animations":"~22.0.0","@angular/common":"~22.0.0","@angular/compiler":"~22.0.0","@angular/core":"~22.0.0","@angular/forms":"~22.0.0","@angular/platform-browser":"~22.0.0","@angular/platform-browser-dynamic":"~22.0.0","@angular/router":"~22.0.0","@nativescript/angular":"~22.0.0","@nativescript/core":"~9.1.0","@nativescript/theme":"^3.1.0","nativescript-ui-sidedrawer":"~15.2.0","rxjs":"~7.8.0","zone.js":"~0.16.0"},"devDependencies":{"@angular-devkit/build-angular":"~22.0.0","@angular/compiler-cli":"~22.0.0","@nativescript/android":"^9.1.0","@nativescript/types":"~9.0.0","@nativescript/webpack":"~5.0.25","@ngtools/webpack":"~22.0.0","patch-package":"^8.0.1","typescript":"~6.0.0"},"_id":"@angelmartz/template-drawer-navigation-ng@9.1.0","gitHead":"0ef38de4ba25c69e77c6e66abf7d75d980a838b4","bugs":{"url":"https://github.com/angelmartz/template-drawer-navigation-ng/issues"},"_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-davnm5p54lHfKigGT+sGtGMeJ4E60yDNAoxcJqEaIYm/GfkFYwRblyPnpejz47O7wnmsxO8EbBsn5CfzpyapxA==","shasum":"a20631416c6cf6fe350a4b60cbae940bfb00d28b","tarball":"https://registry.npmjs.org/@angelmartz/template-drawer-navigation-ng/-/template-drawer-navigation-ng-9.1.0.tgz","fileCount":97,"unpackedSize":664685,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCquxuItC6ehuNFDLSKOLVLHSJqAGCVqMSI2UYpOwKM/QIhAP006mFB3PXTuXa+nSIWfTM7ZvTP45gAEA++Ckgbz4c3"}]},"_npmUser":{"name":"angelmartz","email":"angel.martz24@gmail.com"},"directories":{},"maintainers":[{"name":"angelmartz","email":"angel.martz24@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/template-drawer-navigation-ng_9.1.0_1788059025879_0.2864665992148503"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-30T03:03:45.696Z","9.1.0":"2026-08-30T03:03:46.017Z","modified":"2026-08-30T03:03:46.189Z"},"maintainers":[{"name":"angelmartz","email":"angel.martz24@gmail.com"}],"description":"Plantilla NativeScript + Angular con navegación por drawer, corregida para Angular 22 y @nativescript/core 9","homepage":"https://github.com/angelmartz/template-drawer-navigation-ng","keywords":["nativescript","angular","template","drawer","navigation"],"repository":{"type":"git","url":"git+https://github.com/angelmartz/template-drawer-navigation-ng.git"},"author":{"name":"Angel Martínez"},"bugs":{"url":"https://github.com/angelmartz/template-drawer-navigation-ng/issues"},"license":"Apache-2.0","readme":"# Plantilla NativeScript + Angular con navegación por Drawer (corregida)\n\nPlantilla de aplicación NativeScript con Angular que incluye un componente\n`RadSideDrawer` para la navegación lateral. Está basada en la plantilla oficial\n[`@nativescript/template-drawer-navigation-ng`](https://github.com/NativeScript/nativescript-app-templates/tree/main/packages/template-drawer-navigation-ng),\npero con los ajustes necesarios para que **compile y arranque** con Angular 22 y\n`@nativescript/core` 9.\n\n## Qué incluye\n\n- Navegación con drawer lateral (`RadSideDrawer`).\n- Cinco páginas en blanco enlazadas al drawer: `home`, `browse`, `featured`,\n  `search`, `settings`.\n- Tema personalizable basado en `@nativescript/theme`.\n- Estilos con SASS (común + específicos por plataforma).\n\n## Requisitos\n\n- Node.js 18 o superior.\n- NativeScript CLI: `npm i -g nativescript`.\n- Para Android: Android Studio + un emulador o dispositivo con depuración USB.\n- Para iOS: Xcode (solo en macOS).\n\nVerifica tu entorno con:\n\n```shell\nns doctor\n```\n\n## Crear una app desde esta plantilla\n\nLa plantilla está publicada en npm como\n[`@angelmartz/template-drawer-navigation-ng`](https://www.npmjs.com/package/@angelmartz/template-drawer-navigation-ng).\nEjecuta:\n\n```shell\nns create mi-app --template @angelmartz/template-drawer-navigation-ng\n```\n\nEsto crea una app NativeScript nueva usando la última versión publicada de la\nplantilla. El `npm install` que corre `ns create` aplica automáticamente el\nparche de `nativescript-ui-sidedrawer` (script `postinstall`), así que la app\nqueda lista para compilar.\n\n### Alternativa: sin npm, desde el código fuente\n\n`ns create` **no** acepta una URL de git directamente (la CLI le añade\n`@^9.0.0` y rompe el spec). Si no quieres usar el paquete de npm, clona el repo\ny apunta a la carpeta local:\n\n```shell\ngit clone https://github.com/angelmartz/template-drawer-navigation-ng.git\nns create mi-app --template ./template-drawer-navigation-ng\n```\n\n## Ejecutar este repositorio directamente\n\n```shell\ngit clone https://github.com/angelmartz/template-drawer-navigation-ng.git\ncd template-drawer-navigation-ng\n\n# instalar dependencias (aplica también los parches)\nnpm install\n\n# Android\nns run android\n\n# iOS\nns run ios\n```\n\nPara una compilación limpia si algo queda en caché:\n\n```shell\nns run android --clean\n```\n\n## Correcciones aplicadas respecto a la plantilla original\n\nEstos cambios son la razón de ser de este repositorio. La plantilla oficial no\ncompila tal cual con las versiones actuales de Angular y `@nativescript/core`.\n\n### 1. Componentes `standalone` dentro de un `NgModule`\n\nDesde Angular 19, `standalone: true` es el valor por defecto de todo\n`@Component`. La plantilla sigue una arquitectura basada en `NgModule`\n(`declarations: [...]`), lo que provoca el error `NG6008` y, en tiempo de\nejecución, un fallo del compilador JIT.\n\n**Solución:** se añadió `standalone: false` a los seis decoradores `@Component`\n(`AppComponent` y las cinco páginas).\n\n### 2. `RadSideDrawer` incompatible con `@nativescript/core` 9\n\n`nativescript-ui-sidedrawer@15.2.4` define `_isRootView` como un *getter* sin\n*setter*. El constructor de `ViewBase` en `@nativescript/core` 9 hace\n`this._isRootView = false`, lo que lanza:\n\n```\nTypeError: Cannot set property _isRootView of [object Object] which has only a getter\n```\n\n**Solución:** se parcha el plugin añadiéndole un *setter* no-op. El parche está\nversionado en `patches/nativescript-ui-sidedrawer+15.2.4.patch` y se reaplica\nautomáticamente en cada `npm install` mediante\n[`patch-package`](https://www.npmjs.com/package/patch-package) (script\n`postinstall`).\n\n> Nota: `nativescript-ui-sidedrawer` ya no recibe mantenimiento. El parche\n> desbloquea el desarrollo, pero a mediano plazo conviene migrar a\n> `@nativescript-community/ui-drawer`.\n\n## Estructura del proyecto\n\n| Ruta | Descripción |\n|------|-------------|\n| `src/app/app.component.*` | Configura el `RadSideDrawer` como vista raíz y el router outlet. |\n| `src/app/<página>/` | Cada una de las cinco páginas (componente + módulo + routing). |\n| `src/_app-common.scss` | Estilos globales comunes a Android e iOS. |\n| `src/app.android.scss` | Estilos globales solo para Android. |\n| `src/app.ios.scss` | Estilos globales solo para iOS. |\n| `patches/` | Parches de dependencias aplicados con `patch-package`. |\n\n## Estilos\n\nLa plantilla usa SASS y las clases del tema core de NativeScript. Consulta la\n[documentación de `@nativescript/theme`](https://github.com/NativeScript/theme)\npara personalizarlo.\n\n## Publicar una nueva versión (mantenimiento)\n\n```shell\n# 1. subir la versión en package.json (respeta semver, mantén el major en 9)\nnpm version patch      # o minor / major\n\n# 2. publicar el paquete scoped como público\nnpm publish --access public\n\n# 3. subir el commit y el tag que crea `npm version`\ngit push origin main --tags\n```\n\nSolo se publican los archivos listados en el campo `files` de `package.json`\n(`src`, `App_Resources`, `patches`, config y `tsconfig.json`). El `.gitignore`,\n`node_modules`, `platforms` y `hooks` nunca se publican.\n\n## Licencia\n\nApache-2.0, igual que la plantilla original de NativeScript.\n","readmeFilename":"README.md","_rev":"1-d2808cf4d22a1526a97624c42f4e6e75"}