Upgrade: Angular 18, Ionic 8, Capacitor 6

Modernizacion completa del frontend:

- Angular 8 -> 18.2.14
- Ionic 4 -> 8.7.17
- Capacitor 6.x (migracion desde Cordova/@ionic-native)
- TypeScript 5.4.5
- Swiper 11 con Web Components API

Cambios principales:
- Migrar NativeStorage a @capacitor/preferences
- Migrar InAppBrowser a @capacitor/browser
- Migrar Camera a @capacitor/camera
- Migrar Geolocation a @capacitor/geolocation
- Migrar StatusBar/SplashScreen a Capacitor
- Migrar Facebook/Google login a plugins Capacitor
- Actualizar lazy loading syntax (Angular 12+)
- Configurar buildOptimizer: false para Ionic 8
- Limpiar package.json de dependencias obsoletas
- Agregar README con guia de instalacion

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
CarlosTorres
2026-01-17 22:03:31 +00:00
parent a9508bd34a
commit dfcb1168b9
397 changed files with 19732 additions and 23677 deletions

23
src/app/pages/hero/hero.page.html Normal file → Executable file
View File

@@ -16,20 +16,19 @@
</ion-item>
<br>
<ion-label text-wrap padding>{{'hero.categories' | translate}}</ion-label>
<tag-input [(ngModel)]="categories_input" [onlyFromAutocomplete]="true"
secondaryPlaceholder="{{'hero.categories_placeholder' | translate}}" placeholder="{{'hero.categories_placeholder' | translate}}"
[ripple]="true" [animationDuration]="{enter: '10ms', leave: '10ms'}" [onTextChangeDebounce]="10">
<tag-input-dropdown [showDropdownIfEmpty]="false" [autocompleteItems]="categories" [limitItemsTo]="5">
</tag-input-dropdown>
</tag-input>
<ion-item>
<ion-label>{{'hero.categories' | translate}}</ion-label>
<ion-select [(ngModel)]="categories_input" multiple="true" okText="Aceptar" cancelText="Cancelar" placeholder="{{'hero.categories_placeholder' | translate}}">
<ion-select-option *ngFor="let category of categories" [value]="category.value">{{category.display}}</ion-select-option>
</ion-select>
</ion-item>
<br>
<ion-label text-wrap padding>{{'hero.keywords' | translate}}</ion-label>
<tag-input [(ngModel)]="keywords" secondaryPlaceholder="{{'hero.keywords_placeholder' | translate}}"
placeholder="{{'hero.keywords_placeholder' | translate}}" [separatorKeyCodes]="[188]"
[ripple]="true" [animationDuration]="{enter: '0ms', leave: '0ms'}">
</tag-input>
<ion-item>
<ion-label position="floating">{{'hero.keywords' | translate}}</ion-label>
<ion-input [(ngModel)]="keywords_text" placeholder="{{'hero.keywords_placeholder' | translate}}"></ion-input>
</ion-item>
<ion-note padding>{{'hero.keywords_hint' | translate}}</ion-note>
<ion-label color="light">_</ion-label>