@osumi/angular-tools 1.2.2 → 1.2.3
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.
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"osumi-angular-tools.mjs","sources":["../../../projects/osumi-angular-tools/src/lib/components/dialogs/alert-dialog/alert-dialog.component.ts","../../../projects/osumi-angular-tools/src/lib/components/dialogs/alert-dialog/alert-dialog.component.html","../../../projects/osumi-angular-tools/src/lib/components/dialogs/confirm-dialog/confirm-dialog.component.ts","../../../projects/osumi-angular-tools/src/lib/components/dialogs/confirm-dialog/confirm-dialog.component.html","../../../projects/osumi-angular-tools/src/lib/components/dialogs/form-dialog/form-dialog.component.ts","../../../projects/osumi-angular-tools/src/lib/components/dialogs/form-dialog/form-dialog.component.html","../../../projects/osumi-angular-tools/src/lib/model/custom-overlay-ref.model.ts","../../../projects/osumi-angular-tools/src/lib/components/overlay/overlay.component.ts","../../../projects/osumi-angular-tools/src/lib/components/overlay/overlay.component.html","../../../projects/osumi-angular-tools/src/lib/directives/swipe.directive.ts","../../../projects/osumi-angular-tools/src/lib/services/dialog.service.ts","../../../projects/osumi-angular-tools/src/lib/services/overlay.service.ts","../../../projects/osumi-angular-tools/src/public-api.ts","../../../projects/osumi-angular-tools/src/osumi-angular-tools.ts"],"sourcesContent":["import { Component, inject, signal, WritableSignal } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogActions,\r\n MatDialogContent,\r\n MatDialogRef,\r\n MatDialogTitle,\r\n} from '@angular/material/dialog';\r\n\r\n/**\r\n * Componente para mostrar un diálogo de alerta.\r\n *\r\n * Permite mostrar un mensaje de alerta con un título, contenido y un botón de confirmación personalizables.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del diálogo.\r\n */\r\n@Component({\r\n selector: 'oat-alert-dialog',\r\n templateUrl: './alert-dialog.component.html',\r\n imports: [MatDialogTitle, MatDialogContent, MatDialogActions, MatButton],\r\n})\r\nexport class AlertDialogComponent {\r\n public dialogRef: MatDialogRef<AlertDialogComponent> = inject(MatDialogRef);\r\n\r\n public title: WritableSignal<string> = signal<string>('');\r\n public content: WritableSignal<string> = signal<string>('');\r\n public ok: WritableSignal<string> = signal<string>('Continuar');\r\n}\r\n","<h1 mat-dialog-title>{{ title() }}</h1>\r\n<div mat-dialog-content>\r\n\t<p>{{ content() }}</p>\r\n</div>\r\n<div mat-dialog-actions\r\n\t align=\"end\">\r\n\t<button type=\"button\"\r\n\t\t\tmat-flat-button\r\n\t\t\tcolor=\"primary\"\r\n\t\t\t(click)=\"dialogRef.close(true)\">{{ ok() }}</button>\r\n</div>","import { NgClass } from '@angular/common';\r\nimport {\r\n Component,\r\n inject,\r\n signal,\r\n ViewEncapsulation,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogActions,\r\n MatDialogContent,\r\n MatDialogRef,\r\n MatDialogTitle,\r\n} from '@angular/material/dialog';\r\n\r\n/**\r\n * Componente para mostrar un diálogo de confirmación.\r\n *\r\n * Permite mostrar un mensaje de confirmación con un título, contenido y botones de confirmación y cancelar personalizables.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del diálogo indicando si se ha confirmado o cancelado la acción.\r\n */\r\n@Component({\r\n selector: 'oat-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrl: './confirm-dialog.component.scss',\r\n imports: [\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatButton,\r\n NgClass,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ConfirmDialogComponent {\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent> = inject(MatDialogRef);\r\n\r\n public title: WritableSignal<string> = signal<string>('');\r\n public content: WritableSignal<string> = signal<string>('');\r\n public warn: WritableSignal<boolean> = signal<boolean>(false);\r\n public ok: WritableSignal<string> = signal<string>('Continuar');\r\n public cancel: WritableSignal<string> = signal<string>('Cancelar');\r\n}\r\n","<h1 mat-dialog-title>{{ title() }}</h1>\r\n<div mat-dialog-content>\r\n\t<p>{{ content() }}</p>\r\n</div>\r\n<div mat-dialog-actions\r\n\t align=\"end\">\r\n\t<button type=\"button\"\r\n\t\t\tmat-button\r\n\t\t\t(click)=\"dialogRef.close(false)\">{{ cancel() }}</button>\r\n\t<button type=\"button\"\r\n\t\t\tmat-flat-button\r\n\t\t\t[ngClass]=\"{'dialogs-warn': warn()}\"\r\n\t\t\t(click)=\"dialogRef.close(true)\">{{ ok() }}</button>\r\n</div>","import {\r\n Component,\r\n inject,\r\n signal,\r\n ViewEncapsulation,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogActions,\r\n MatDialogClose,\r\n MatDialogContent,\r\n MatDialogRef,\r\n MatDialogTitle,\r\n} from '@angular/material/dialog';\r\nimport { MatFormField, MatHint, MatLabel } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { DialogField } from '../../../interfaces/dialogs.interface';\r\n\r\n/**\r\n * Componente para mostrar un diálogo con un formulario.\r\n *\r\n * Permite mostrar un mensaje de confirmación con un título, contenido y y un formulario personalizable.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del diálogo con los datos del formulario.\r\n */\r\n@Component({\r\n selector: 'oat-form-dialog',\r\n templateUrl: './form-dialog.component.html',\r\n styleUrl: './form-dialog.component.scss',\r\n imports: [\r\n FormsModule,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n MatFormField,\r\n MatLabel,\r\n MatInput,\r\n MatHint,\r\n MatButton,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class FormDialogComponent {\r\n public dialogRef: MatDialogRef<FormDialogComponent> = inject(MatDialogRef);\r\n\r\n public title: WritableSignal<string> = signal<string>('');\r\n public content: WritableSignal<string> = signal<string>('');\r\n public fields: WritableSignal<DialogField[]> = signal<DialogField[]>([]);\r\n public ok: WritableSignal<string> = signal<string>('Continuar');\r\n public cancel: WritableSignal<string> = signal<string>('Cancelar');\r\n\r\n /**\r\n * Método para validar el formulario.\r\n * Comprueba si todos los campos requeridos tienen un valor no vacío.\r\n * @returns Devuelve true si el formulario es válido, false en caso contrario.\r\n */\r\n isFormValid(): boolean {\r\n return this.fields().every((field: DialogField): boolean => {\r\n return (\r\n !field.required || Boolean(field.value && field.value.trim() !== '')\r\n );\r\n });\r\n }\r\n}\r\n","<h1 mat-dialog-title>{{ title() }}</h1>\r\n<div mat-dialog-content>\r\n\t<p>{{ content() }}</p>\r\n\t@for (field of fields(); track field.title) {\r\n\t<p>\r\n\t\t<mat-form-field class=\"dialogs-full-width\">\r\n\t\t\t<mat-label>{{field.title}}</mat-label>\r\n\t\t\t<input matInput\r\n\t\t\t\t [type]=\"field.type\"\r\n\t\t\t\t [(ngModel)]=\"field.value\"\r\n\t\t\t\t [required]=\"field.required || false\">\r\n\t\t\t@if (field.hint) {\r\n\t\t\t<mat-hint>{{field.hint}}</mat-hint>\r\n\t\t\t}\r\n\t\t</mat-form-field>\r\n\t</p>\r\n\t}\r\n</div>\r\n<div mat-dialog-actions\r\n\t align=\"end\">\r\n\t<button type=\"button\"\r\n\t\t\tmat-button\r\n\t\t\t(click)=\"dialogRef.close()\">{{ cancel() }}</button>\r\n\t<button type=\"button\"\r\n\t\t\tmat-flat-button\r\n\t\t\tcolor=\"primary\"\r\n\t\t\t[mat-dialog-close]=\"fields()\"\r\n\t\t\t[disabled]=\"!isFormValid()\">{{ ok() }}</button>\r\n</div>","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { Type } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { OverlayCloseEvent } from '../interfaces/modals.interface';\r\n\r\n/**\r\n * Clase que representa una referencia a un overlay personalizado.\r\n *\r\n * Permite cerrar el overlay y notificar a los suscriptores sobre el evento de cierre.\r\n *\r\n * @template R Tipo de dato de respuesta.\r\n * @template T Tipo de dato pasado al modal.\r\n */\r\nexport class CustomOverlayRef<R = any, T = any> {\r\n afterClosed$ = new Subject<OverlayCloseEvent<R | null>>();\r\n\r\n constructor(\r\n public overlay: OverlayRef,\r\n public content: Type<any>,\r\n public data: T,\r\n public closeOnBackdropCLick: boolean = true\r\n ) {\r\n if (closeOnBackdropCLick) {\r\n overlay.backdropClick().subscribe({\r\n next: () => {\r\n this._close('backdropClick', null);\r\n },\r\n });\r\n }\r\n }\r\n\r\n close(data?: any): void {\r\n this._close('close', data!);\r\n }\r\n\r\n private _close(type: 'backdropClick' | 'close', data: R | null): void {\r\n this.overlay.dispose();\r\n this.afterClosed$.next({\r\n type,\r\n data,\r\n });\r\n\r\n this.afterClosed$.complete();\r\n }\r\n}\r\n","import { NgComponentOutlet } from '@angular/common';\r\nimport { Component, inject, OnInit, Renderer2, Type } from '@angular/core';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { Modal } from '../../interfaces/modals.interface';\r\nimport { CustomOverlayRef } from '../../model/custom-overlay-ref.model';\r\n\r\n/**\r\n * Componente para mostrar un componente personalizado en una ventana modal.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del modal.\r\n */\r\n@Component({\r\n selector: 'oat-overlay',\r\n templateUrl: './overlay.component.html',\r\n styleUrls: ['./overlay.component.scss'],\r\n imports: [MatIcon, MatIconButton, NgComponentOutlet],\r\n})\r\nexport class OverlayComponent implements OnInit {\r\n private customOverlayRef: CustomOverlayRef<any, Modal> =\r\n inject(CustomOverlayRef);\r\n private renderer: Renderer2 = inject(Renderer2);\r\n\r\n content: Type<any> = this.customOverlayRef.content;\r\n inputData: Modal = { modalTitle: '', modalColor: 'blue' };\r\n\r\n ngOnInit(): void {\r\n this.listenToEscKey();\r\n this.inputData = this.customOverlayRef.data;\r\n }\r\n\r\n private listenToEscKey(): void {\r\n this.renderer.listen('window', 'keyup', (event: KeyboardEvent): void => {\r\n if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n });\r\n }\r\n\r\n close(): void {\r\n this.customOverlayRef.close(null);\r\n }\r\n}\r\n","<div [class]=\"'modal ' + (inputData.css ? inputData.css : '')\">\r\n\t<div [class]=\"'modal__header modal__header--' + inputData.modalColor\">\r\n\t\t<div class=\"title\">{{ inputData.modalTitle }}</div>\r\n\t\t@if (!inputData.hideCloseBtn) {\r\n\t\t<button mat-icon-button\r\n\t\t\t\tclass=\"btn-close\"\r\n\t\t\t\t(click)=\"close()\">\r\n\t\t\t<mat-icon>close</mat-icon>\r\n\t\t</button>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<div [class]=\"'modal__content ' + inputData.contentCss\">\r\n\t\t<ng-container *ngComponentOutlet=\"content\"></ng-container>\r\n\t</div>\r\n</div>","import {\r\n Directive,\r\n ElementRef,\r\n inject,\r\n OnDestroy,\r\n output,\r\n OutputEmitterRef,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { SwipeData } from '../interfaces/swipe.interface';\r\n\r\n/**\r\n * Directiva para detectar gestos de deslizamiento (swipe) en un elemento.\r\n *\r\n * Permite detectar deslizamientos tanto en dispositivos táctiles como con ratón.\r\n *\r\n * @returns Devuelve un observable que emite los datos del deslizamiento (deltaX y deltaY).\r\n */\r\n@Directive({\r\n selector: '[oatSwipe]',\r\n standalone: true,\r\n host: {\r\n '(touchstart)': 'onTouchStart($event)',\r\n '(touchend)': 'onTouchEnd($event)',\r\n '(mousedown)': 'onMouseDown($event)',\r\n '(mouseup)': 'onMouseUp($event)',\r\n },\r\n})\r\nexport class SwipeDirective implements OnDestroy {\r\n private el: ElementRef = inject(ElementRef);\r\n private renderer: Renderer2 = inject(Renderer2);\r\n swipeEnd: OutputEmitterRef<SwipeData> = output<SwipeData>();\r\n\r\n private startX: number = 0;\r\n private startY: number = 0;\r\n\r\n private touchStartListener: () => void;\r\n private touchEndListener: () => void;\r\n private mouseDownListener: () => void;\r\n private mouseUpListener: () => void;\r\n\r\n constructor() {\r\n this.touchStartListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'touchstart',\r\n (event: TouchEvent): void => this.onTouchStart(event)\r\n );\r\n this.touchEndListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'touchend',\r\n (event: TouchEvent): void => this.onTouchEnd(event)\r\n );\r\n this.mouseDownListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'mousedown',\r\n (event: MouseEvent): void => this.onMouseDown(event)\r\n );\r\n this.mouseUpListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'mouseup',\r\n (event: MouseEvent): void => this.onMouseUp(event)\r\n );\r\n }\r\n\r\n onTouchStart(event: TouchEvent): void {\r\n this.startX = event.touches[0].clientX;\r\n this.startY = event.touches[0].clientY;\r\n }\r\n\r\n onTouchEnd(event: TouchEvent): void {\r\n const endX: number = event.changedTouches[0].clientX;\r\n const endY: number = event.changedTouches[0].clientY;\r\n const deltaX: number = endX - this.startX;\r\n const deltaY: number = endY - this.startY;\r\n\r\n this.swipeEnd.emit({ x: deltaX, y: deltaY });\r\n }\r\n\r\n onMouseDown(event: MouseEvent): void {\r\n this.startX = event.clientX;\r\n this.startY = event.clientY;\r\n }\r\n\r\n onMouseUp(event: MouseEvent): void {\r\n const endX: number = event.clientX;\r\n const endY: number = event.clientY;\r\n const deltaX: number = endX - this.startX;\r\n const deltaY: number = endY - this.startY;\r\n\r\n this.swipeEnd.emit({ x: deltaX, y: deltaY });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.touchStartListener();\r\n this.touchEndListener();\r\n this.mouseDownListener();\r\n this.mouseUpListener();\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { AlertDialogComponent } from '../components/dialogs/alert-dialog/alert-dialog.component';\r\nimport { ConfirmDialogComponent } from '../components/dialogs/confirm-dialog/confirm-dialog.component';\r\nimport { FormDialogComponent } from '../components/dialogs/form-dialog/form-dialog.component';\r\nimport { DialogOptions } from '../interfaces/dialogs.interface';\r\n\r\n/**\r\n * Servicio para manejar diálogos en la aplicación.\r\n *\r\n * Permite abrir diálogos de alerta, confirmación y formularios personalizados.\r\n *\r\n * Cada método devuelve un observable que emite el resultado del diálogo al cerrarse.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class DialogService {\r\n private dialog: MatDialog = inject(MatDialog);\r\n\r\n /**\r\n * Método para mostrar un diálogo de alerta.\r\n * @param options Datos a mostrar en el diálogo, incluyendo título, contenido y texto del botón de confirmación (opcional).\r\n * @returns Devuelve un observable para notificar el cierre del diálogo.\r\n */\r\n public alert(options: DialogOptions): Observable<boolean> {\r\n const dialogRef: MatDialogRef<AlertDialogComponent> =\r\n this.dialog.open(AlertDialogComponent);\r\n\r\n dialogRef.componentInstance.title.set(options.title);\r\n dialogRef.componentInstance.content.set(options.content);\r\n if (options.ok !== undefined) {\r\n dialogRef.componentInstance.ok.set(options.ok);\r\n }\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n /**\r\n * Método para mostrar un diálogo de confirmación.\r\n * @param options Datos a mostrar en el diálogo, incluyendo título, contenido, si es una advertencia (opcional) y textos para los botones de acción (opcionales).\r\n * @returns Devuelve un observable para notificar el cierre del diálogo con el valor true para diálogo aceptado y false para diálogo cancelado.\r\n */\r\n public confirm(options: DialogOptions): Observable<boolean> {\r\n const dialogRef: MatDialogRef<ConfirmDialogComponent> = this.dialog.open(\r\n ConfirmDialogComponent\r\n );\r\n\r\n dialogRef.componentInstance.title.set(options.title);\r\n dialogRef.componentInstance.content.set(options.content);\r\n if (options.warn !== undefined) {\r\n dialogRef.componentInstance.warn.set(options.warn);\r\n }\r\n if (options.ok !== undefined) {\r\n dialogRef.componentInstance.ok.set(options.ok);\r\n }\r\n if (options.cancel !== undefined) {\r\n dialogRef.componentInstance.cancel.set(options.cancel);\r\n }\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n /**\r\n * Método para mostrar un diálogo con un formulario personalizado.\r\n * @param options Datos a mostrar en el diálogo, incluyendo título, campos a rellenar y textos para los botones de acción (opcionales).\r\n * @returns Devuelve un observable para notificar el cierre del diálogo con los valores introducidos en el formulario.\r\n */\r\n public form(options: DialogOptions): Observable<DialogOptions> {\r\n const dialogRef: MatDialogRef<FormDialogComponent> =\r\n this.dialog.open(FormDialogComponent);\r\n\r\n dialogRef.componentInstance.title.set(options.title);\r\n dialogRef.componentInstance.content.set(options.content);\r\n if (options.ok !== undefined) {\r\n dialogRef.componentInstance.ok.set(options.ok);\r\n }\r\n if (options.cancel !== undefined) {\r\n dialogRef.componentInstance.cancel.set(options.cancel);\r\n }\r\n if (options.fields !== undefined) {\r\n dialogRef.componentInstance.fields.set(options.fields);\r\n }\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n}\r\n","import { Overlay, OverlayConfig } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { inject, Injectable, Injector, Type } from '@angular/core';\r\nimport { OverlayComponent } from '../components/overlay/overlay.component';\r\nimport { Modal } from '../interfaces/modals.interface';\r\nimport { CustomOverlayRef } from '../model/custom-overlay-ref.model';\r\n\r\n/**\r\n * Servicio para manejar modales personalizados en la aplicación.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class OverlayService {\r\n private overlay: Overlay = inject(Overlay);\r\n private injector: Injector = inject(Injector);\r\n\r\n /**\r\n * Método para abrir un componente personalizado en un modal.\r\n * @param content Componente a mostrar en el overlay.\r\n * @param data Datos a pasar al componente del overlay.\r\n * @param panelCssClasses Clases CSS adicionales para el panel del overlay (opcional).\r\n * @param closeOnBackdropCLick Indica si el overlay se cierra al hacer clic en el fondo (opcional, por defecto true).\r\n * @returns Devuelve una referencia personalizada del overlay.\r\n */\r\n open<R = any>(\r\n content: Type<any>,\r\n data: Modal,\r\n panelCssClasses: string[] = [],\r\n closeOnBackdropCLick: boolean = true\r\n ): CustomOverlayRef<R> {\r\n const _panelCssClasses: string[] = ['modals-panel'].concat(panelCssClasses);\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n panelClass: _panelCssClasses,\r\n backdropClass: 'modals-background',\r\n width: '100%',\r\n height: '100%',\r\n });\r\n\r\n const overlayRef = this.overlay.create(config);\r\n\r\n const customOverlayRef = new CustomOverlayRef(\r\n overlayRef,\r\n content,\r\n data,\r\n closeOnBackdropCLick\r\n );\r\n const injector = this.createInjector(customOverlayRef, this.injector);\r\n overlayRef.attach(new ComponentPortal(OverlayComponent, null, injector));\r\n\r\n return customOverlayRef;\r\n }\r\n\r\n private createInjector(ref: CustomOverlayRef, inj: Injector): Injector {\r\n return Injector.create({\r\n providers: [{ provide: CustomOverlayRef, useValue: ref }],\r\n parent: inj,\r\n });\r\n }\r\n}\r\n","/*\r\n * Public API Surface of osumi-angular-tools\r\n */\r\nexport * from './lib/components/dialogs/alert-dialog/alert-dialog.component';\r\nexport * from './lib/components/dialogs/confirm-dialog/confirm-dialog.component';\r\nexport * from './lib/components/dialogs/form-dialog/form-dialog.component';\r\nexport * from './lib/components/overlay/overlay.component';\r\nexport * from './lib/directives/swipe.directive';\r\nexport * from './lib/interfaces/dialogs.interface';\r\nexport * from './lib/interfaces/modals.interface';\r\nexport * from './lib/interfaces/swipe.interface';\r\nexport * from './lib/model/custom-overlay-ref.model';\r\nexport * from './lib/services/dialog.service';\r\nexport * from './lib/services/overlay.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"osumi-angular-tools.mjs","sources":["../../../projects/osumi-angular-tools/src/lib/components/dialogs/alert-dialog/alert-dialog.component.ts","../../../projects/osumi-angular-tools/src/lib/components/dialogs/alert-dialog/alert-dialog.component.html","../../../projects/osumi-angular-tools/src/lib/components/dialogs/confirm-dialog/confirm-dialog.component.ts","../../../projects/osumi-angular-tools/src/lib/components/dialogs/confirm-dialog/confirm-dialog.component.html","../../../projects/osumi-angular-tools/src/lib/components/dialogs/form-dialog/form-dialog.component.ts","../../../projects/osumi-angular-tools/src/lib/components/dialogs/form-dialog/form-dialog.component.html","../../../projects/osumi-angular-tools/src/lib/model/custom-overlay-ref.model.ts","../../../projects/osumi-angular-tools/src/lib/components/overlay/overlay.component.ts","../../../projects/osumi-angular-tools/src/lib/components/overlay/overlay.component.html","../../../projects/osumi-angular-tools/src/lib/directives/swipe.directive.ts","../../../projects/osumi-angular-tools/src/lib/services/dialog.service.ts","../../../projects/osumi-angular-tools/src/lib/services/overlay.service.ts","../../../projects/osumi-angular-tools/src/public-api.ts","../../../projects/osumi-angular-tools/src/osumi-angular-tools.ts"],"sourcesContent":["import { Component, inject, signal, WritableSignal } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogActions,\r\n MatDialogContent,\r\n MatDialogRef,\r\n MatDialogTitle,\r\n} from '@angular/material/dialog';\r\n\r\n/**\r\n * Componente para mostrar un diálogo de alerta.\r\n *\r\n * Permite mostrar un mensaje de alerta con un título, contenido y un botón de confirmación personalizables.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del diálogo.\r\n */\r\n@Component({\r\n selector: 'oat-alert-dialog',\r\n templateUrl: './alert-dialog.component.html',\r\n imports: [MatDialogTitle, MatDialogContent, MatDialogActions, MatButton],\r\n})\r\nexport class AlertDialogComponent {\r\n public dialogRef: MatDialogRef<AlertDialogComponent> = inject(MatDialogRef);\r\n\r\n public title: WritableSignal<string> = signal<string>('');\r\n public content: WritableSignal<string> = signal<string>('');\r\n public ok: WritableSignal<string> = signal<string>('Continuar');\r\n}\r\n","<h1 mat-dialog-title>{{ title() }}</h1>\r\n<div mat-dialog-content>\r\n\t<p>{{ content() }}</p>\r\n</div>\r\n<div mat-dialog-actions\r\n\t align=\"end\">\r\n\t<button type=\"button\"\r\n\t\t\tmat-flat-button\r\n\t\t\tcolor=\"primary\"\r\n\t\t\t(click)=\"dialogRef.close(true)\">{{ ok() }}</button>\r\n</div>","import { NgClass } from '@angular/common';\r\nimport {\r\n Component,\r\n inject,\r\n signal,\r\n ViewEncapsulation,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogActions,\r\n MatDialogContent,\r\n MatDialogRef,\r\n MatDialogTitle,\r\n} from '@angular/material/dialog';\r\n\r\n/**\r\n * Componente para mostrar un diálogo de confirmación.\r\n *\r\n * Permite mostrar un mensaje de confirmación con un título, contenido y botones de confirmación y cancelar personalizables.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del diálogo indicando si se ha confirmado o cancelado la acción.\r\n */\r\n@Component({\r\n selector: 'oat-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrl: './confirm-dialog.component.scss',\r\n imports: [\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatButton,\r\n NgClass,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ConfirmDialogComponent {\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent> = inject(MatDialogRef);\r\n\r\n public title: WritableSignal<string> = signal<string>('');\r\n public content: WritableSignal<string> = signal<string>('');\r\n public warn: WritableSignal<boolean> = signal<boolean>(false);\r\n public ok: WritableSignal<string> = signal<string>('Continuar');\r\n public cancel: WritableSignal<string> = signal<string>('Cancelar');\r\n}\r\n","<h1 mat-dialog-title>{{ title() }}</h1>\r\n<div mat-dialog-content>\r\n\t<p>{{ content() }}</p>\r\n</div>\r\n<div mat-dialog-actions\r\n\t align=\"end\">\r\n\t<button type=\"button\"\r\n\t\t\tmat-button\r\n\t\t\t(click)=\"dialogRef.close(false)\">{{ cancel() }}</button>\r\n\t<button type=\"button\"\r\n\t\t\tmat-flat-button\r\n\t\t\t[ngClass]=\"{'dialogs-warn': warn()}\"\r\n\t\t\t(click)=\"dialogRef.close(true)\">{{ ok() }}</button>\r\n</div>","import {\r\n Component,\r\n inject,\r\n signal,\r\n ViewEncapsulation,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogActions,\r\n MatDialogClose,\r\n MatDialogContent,\r\n MatDialogRef,\r\n MatDialogTitle,\r\n} from '@angular/material/dialog';\r\nimport { MatFormField, MatHint, MatLabel } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { DialogField } from '../../../interfaces/dialogs.interface';\r\n\r\n/**\r\n * Componente para mostrar un diálogo con un formulario.\r\n *\r\n * Permite mostrar un mensaje de confirmación con un título, contenido y y un formulario personalizable.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del diálogo con los datos del formulario.\r\n */\r\n@Component({\r\n selector: 'oat-form-dialog',\r\n templateUrl: './form-dialog.component.html',\r\n styleUrl: './form-dialog.component.scss',\r\n imports: [\r\n FormsModule,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n MatFormField,\r\n MatLabel,\r\n MatInput,\r\n MatHint,\r\n MatButton,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class FormDialogComponent {\r\n public dialogRef: MatDialogRef<FormDialogComponent> = inject(MatDialogRef);\r\n\r\n public title: WritableSignal<string> = signal<string>('');\r\n public content: WritableSignal<string> = signal<string>('');\r\n public fields: WritableSignal<DialogField[]> = signal<DialogField[]>([]);\r\n public ok: WritableSignal<string> = signal<string>('Continuar');\r\n public cancel: WritableSignal<string> = signal<string>('Cancelar');\r\n\r\n /**\r\n * Método para validar el formulario.\r\n * Comprueba si todos los campos requeridos tienen un valor no vacío.\r\n * @returns Devuelve true si el formulario es válido, false en caso contrario.\r\n */\r\n isFormValid(): boolean {\r\n return this.fields().every((field: DialogField): boolean => {\r\n return (\r\n !field.required || Boolean(field.value && field.value.trim() !== '')\r\n );\r\n });\r\n }\r\n}\r\n","<h1 mat-dialog-title>{{ title() }}</h1>\r\n<div mat-dialog-content>\r\n\t<p>{{ content() }}</p>\r\n\t@for (field of fields(); track field.title) {\r\n\t<p>\r\n\t\t<mat-form-field class=\"dialogs-full-width\">\r\n\t\t\t<mat-label>{{field.title}}</mat-label>\r\n\t\t\t<input matInput\r\n\t\t\t\t [type]=\"field.type\"\r\n\t\t\t\t [(ngModel)]=\"field.value\"\r\n\t\t\t\t [required]=\"field.required || false\">\r\n\t\t\t@if (field.hint) {\r\n\t\t\t<mat-hint>{{field.hint}}</mat-hint>\r\n\t\t\t}\r\n\t\t</mat-form-field>\r\n\t</p>\r\n\t}\r\n</div>\r\n<div mat-dialog-actions\r\n\t align=\"end\">\r\n\t<button type=\"button\"\r\n\t\t\tmat-button\r\n\t\t\t(click)=\"dialogRef.close()\">{{ cancel() }}</button>\r\n\t<button type=\"button\"\r\n\t\t\tmat-flat-button\r\n\t\t\tcolor=\"primary\"\r\n\t\t\t[mat-dialog-close]=\"fields()\"\r\n\t\t\t[disabled]=\"!isFormValid()\">{{ ok() }}</button>\r\n</div>","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { Type } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { OverlayCloseEvent } from '../interfaces/modals.interface';\r\n\r\n/**\r\n * Clase que representa una referencia a un overlay personalizado.\r\n *\r\n * Permite cerrar el overlay y notificar a los suscriptores sobre el evento de cierre.\r\n *\r\n * @template R Tipo de dato de respuesta.\r\n * @template T Tipo de dato pasado al modal.\r\n */\r\nexport class CustomOverlayRef<R = any, T = any> {\r\n afterClosed$ = new Subject<OverlayCloseEvent<R | null>>();\r\n\r\n constructor(\r\n public overlay: OverlayRef,\r\n public content: Type<any>,\r\n public data: T,\r\n public closeOnBackdropCLick: boolean = true\r\n ) {\r\n if (closeOnBackdropCLick) {\r\n overlay.backdropClick().subscribe({\r\n next: () => {\r\n this._close('backdropClick', null);\r\n },\r\n });\r\n }\r\n }\r\n\r\n close(data?: any): void {\r\n this._close('close', data!);\r\n }\r\n\r\n private _close(type: 'backdropClick' | 'close', data: R | null): void {\r\n this.overlay.dispose();\r\n this.afterClosed$.next({\r\n type,\r\n data,\r\n });\r\n\r\n this.afterClosed$.complete();\r\n }\r\n}\r\n","import { NgComponentOutlet } from '@angular/common';\r\nimport { Component, inject, OnInit, Renderer2, Type } from '@angular/core';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { Modal } from '../../interfaces/modals.interface';\r\nimport { CustomOverlayRef } from '../../model/custom-overlay-ref.model';\r\n\r\n/**\r\n * Componente para mostrar un componente personalizado en una ventana modal.\r\n *\r\n * @returns Devuelve mediante un observable la notificación de cierre del modal.\r\n */\r\n@Component({\r\n selector: 'oat-overlay',\r\n templateUrl: './overlay.component.html',\r\n styleUrls: ['./overlay.component.scss'],\r\n imports: [MatIcon, MatIconButton, NgComponentOutlet],\r\n})\r\nexport class OverlayComponent implements OnInit {\r\n private customOverlayRef: CustomOverlayRef<any, Modal> =\r\n inject(CustomOverlayRef);\r\n private renderer: Renderer2 = inject(Renderer2);\r\n\r\n content: Type<any> = this.customOverlayRef.content;\r\n inputData: Modal = { modalTitle: '', modalColor: 'blue' };\r\n\r\n ngOnInit(): void {\r\n this.listenToEscKey();\r\n this.inputData = this.customOverlayRef.data;\r\n }\r\n\r\n private listenToEscKey(): void {\r\n this.renderer.listen('window', 'keyup', (event: KeyboardEvent): void => {\r\n if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n });\r\n }\r\n\r\n close(): void {\r\n this.customOverlayRef.close(null);\r\n }\r\n}\r\n","<div [class]=\"'modal ' + (inputData.css ? inputData.css : '')\">\r\n\t<div [class]=\"'modal__header modal__header--' + inputData.modalColor\">\r\n\t\t<div class=\"title\">{{ inputData.modalTitle }}</div>\r\n\t\t@if (!inputData.hideCloseBtn) {\r\n\t\t<button mat-icon-button\r\n\t\t\t\tclass=\"btn-close\"\r\n\t\t\t\t(click)=\"close()\">\r\n\t\t\t<mat-icon>close</mat-icon>\r\n\t\t</button>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<div [class]=\"'modal__content ' + inputData.contentCss\">\r\n\t\t<ng-container *ngComponentOutlet=\"content\"></ng-container>\r\n\t</div>\r\n</div>","import {\r\n Directive,\r\n ElementRef,\r\n inject,\r\n OnDestroy,\r\n output,\r\n OutputEmitterRef,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { SwipeData } from '../interfaces/swipe.interface';\r\n\r\n/**\r\n * Directiva para detectar gestos de deslizamiento (swipe) en un elemento.\r\n *\r\n * Permite detectar deslizamientos tanto en dispositivos táctiles como con ratón.\r\n *\r\n * @returns Devuelve un observable que emite los datos del deslizamiento (deltaX y deltaY).\r\n */\r\n@Directive({\r\n selector: '[oatSwipe]',\r\n standalone: true,\r\n host: {\r\n '(touchstart)': 'onTouchStart($event)',\r\n '(touchend)': 'onTouchEnd($event)',\r\n '(mousedown)': 'onMouseDown($event)',\r\n '(mouseup)': 'onMouseUp($event)',\r\n },\r\n})\r\nexport class SwipeDirective implements OnDestroy {\r\n private el: ElementRef = inject(ElementRef);\r\n private renderer: Renderer2 = inject(Renderer2);\r\n swipeEnd: OutputEmitterRef<SwipeData> = output<SwipeData>();\r\n\r\n private startX: number = 0;\r\n private startY: number = 0;\r\n\r\n private touchStartListener: () => void;\r\n private touchEndListener: () => void;\r\n private mouseDownListener: () => void;\r\n private mouseUpListener: () => void;\r\n\r\n constructor() {\r\n this.touchStartListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'touchstart',\r\n (event: TouchEvent): void => this.onTouchStart(event)\r\n );\r\n this.touchEndListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'touchend',\r\n (event: TouchEvent): void => this.onTouchEnd(event)\r\n );\r\n this.mouseDownListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'mousedown',\r\n (event: MouseEvent): void => this.onMouseDown(event)\r\n );\r\n this.mouseUpListener = this.renderer.listen(\r\n this.el.nativeElement,\r\n 'mouseup',\r\n (event: MouseEvent): void => this.onMouseUp(event)\r\n );\r\n }\r\n\r\n onTouchStart(event: TouchEvent): void {\r\n this.startX = event.touches[0].clientX;\r\n this.startY = event.touches[0].clientY;\r\n }\r\n\r\n onTouchEnd(event: TouchEvent): void {\r\n const endX: number = event.changedTouches[0].clientX;\r\n const endY: number = event.changedTouches[0].clientY;\r\n const deltaX: number = endX - this.startX;\r\n const deltaY: number = endY - this.startY;\r\n\r\n this.swipeEnd.emit({ x: deltaX, y: deltaY });\r\n }\r\n\r\n onMouseDown(event: MouseEvent): void {\r\n this.startX = event.clientX;\r\n this.startY = event.clientY;\r\n }\r\n\r\n onMouseUp(event: MouseEvent): void {\r\n const endX: number = event.clientX;\r\n const endY: number = event.clientY;\r\n const deltaX: number = endX - this.startX;\r\n const deltaY: number = endY - this.startY;\r\n\r\n this.swipeEnd.emit({ x: deltaX, y: deltaY });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.touchStartListener();\r\n this.touchEndListener();\r\n this.mouseDownListener();\r\n this.mouseUpListener();\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { AlertDialogComponent } from '../components/dialogs/alert-dialog/alert-dialog.component';\r\nimport { ConfirmDialogComponent } from '../components/dialogs/confirm-dialog/confirm-dialog.component';\r\nimport { FormDialogComponent } from '../components/dialogs/form-dialog/form-dialog.component';\r\nimport { DialogField, DialogOptions } from '../interfaces/dialogs.interface';\r\n\r\n/**\r\n * Servicio para manejar diálogos en la aplicación.\r\n *\r\n * Permite abrir diálogos de alerta, confirmación y formularios personalizados.\r\n *\r\n * Cada método devuelve un observable que emite el resultado del diálogo al cerrarse.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class DialogService {\r\n private dialog: MatDialog = inject(MatDialog);\r\n\r\n /**\r\n * Método para mostrar un diálogo de alerta.\r\n * @param options Datos a mostrar en el diálogo, incluyendo título, contenido y texto del botón de confirmación (opcional).\r\n * @returns Devuelve un observable para notificar el cierre del diálogo.\r\n */\r\n public alert(options: DialogOptions): Observable<boolean> {\r\n const dialogRef: MatDialogRef<AlertDialogComponent> =\r\n this.dialog.open(AlertDialogComponent);\r\n\r\n dialogRef.componentInstance.title.set(options.title);\r\n dialogRef.componentInstance.content.set(options.content);\r\n if (options.ok !== undefined) {\r\n dialogRef.componentInstance.ok.set(options.ok);\r\n }\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n /**\r\n * Método para mostrar un diálogo de confirmación.\r\n * @param options Datos a mostrar en el diálogo, incluyendo título, contenido, si es una advertencia (opcional) y textos para los botones de acción (opcionales).\r\n * @returns Devuelve un observable para notificar el cierre del diálogo con el valor true para diálogo aceptado y false para diálogo cancelado.\r\n */\r\n public confirm(options: DialogOptions): Observable<boolean> {\r\n const dialogRef: MatDialogRef<ConfirmDialogComponent> = this.dialog.open(\r\n ConfirmDialogComponent\r\n );\r\n\r\n dialogRef.componentInstance.title.set(options.title);\r\n dialogRef.componentInstance.content.set(options.content);\r\n if (options.warn !== undefined) {\r\n dialogRef.componentInstance.warn.set(options.warn);\r\n }\r\n if (options.ok !== undefined) {\r\n dialogRef.componentInstance.ok.set(options.ok);\r\n }\r\n if (options.cancel !== undefined) {\r\n dialogRef.componentInstance.cancel.set(options.cancel);\r\n }\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n /**\r\n * Método para mostrar un diálogo con un formulario personalizado.\r\n * @param options Datos a mostrar en el diálogo, incluyendo título, campos a rellenar y textos para los botones de acción (opcionales).\r\n * @returns Devuelve un observable para notificar el cierre del diálogo con los valores introducidos en el formulario.\r\n */\r\n public form(options: DialogOptions): Observable<DialogField[]> {\r\n const dialogRef: MatDialogRef<FormDialogComponent> =\r\n this.dialog.open(FormDialogComponent);\r\n\r\n dialogRef.componentInstance.title.set(options.title);\r\n dialogRef.componentInstance.content.set(options.content);\r\n if (options.ok !== undefined) {\r\n dialogRef.componentInstance.ok.set(options.ok);\r\n }\r\n if (options.cancel !== undefined) {\r\n dialogRef.componentInstance.cancel.set(options.cancel);\r\n }\r\n if (options.fields !== undefined) {\r\n dialogRef.componentInstance.fields.set(options.fields);\r\n }\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n}\r\n","import { Overlay, OverlayConfig } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { inject, Injectable, Injector, Type } from '@angular/core';\r\nimport { OverlayComponent } from '../components/overlay/overlay.component';\r\nimport { Modal } from '../interfaces/modals.interface';\r\nimport { CustomOverlayRef } from '../model/custom-overlay-ref.model';\r\n\r\n/**\r\n * Servicio para manejar modales personalizados en la aplicación.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class OverlayService {\r\n private overlay: Overlay = inject(Overlay);\r\n private injector: Injector = inject(Injector);\r\n\r\n /**\r\n * Método para abrir un componente personalizado en un modal.\r\n * @param content Componente a mostrar en el overlay.\r\n * @param data Datos a pasar al componente del overlay.\r\n * @param panelCssClasses Clases CSS adicionales para el panel del overlay (opcional).\r\n * @param closeOnBackdropCLick Indica si el overlay se cierra al hacer clic en el fondo (opcional, por defecto true).\r\n * @returns Devuelve una referencia personalizada del overlay.\r\n */\r\n open<R = any>(\r\n content: Type<any>,\r\n data: Modal,\r\n panelCssClasses: string[] = [],\r\n closeOnBackdropCLick: boolean = true\r\n ): CustomOverlayRef<R> {\r\n const _panelCssClasses: string[] = ['modals-panel'].concat(panelCssClasses);\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n panelClass: _panelCssClasses,\r\n backdropClass: 'modals-background',\r\n width: '100%',\r\n height: '100%',\r\n });\r\n\r\n const overlayRef = this.overlay.create(config);\r\n\r\n const customOverlayRef = new CustomOverlayRef(\r\n overlayRef,\r\n content,\r\n data,\r\n closeOnBackdropCLick\r\n );\r\n const injector = this.createInjector(customOverlayRef, this.injector);\r\n overlayRef.attach(new ComponentPortal(OverlayComponent, null, injector));\r\n\r\n return customOverlayRef;\r\n }\r\n\r\n private createInjector(ref: CustomOverlayRef, inj: Injector): Injector {\r\n return Injector.create({\r\n providers: [{ provide: CustomOverlayRef, useValue: ref }],\r\n parent: inj,\r\n });\r\n }\r\n}\r\n","/*\r\n * Public API Surface of osumi-angular-tools\r\n */\r\nexport * from './lib/components/dialogs/alert-dialog/alert-dialog.component';\r\nexport * from './lib/components/dialogs/confirm-dialog/confirm-dialog.component';\r\nexport * from './lib/components/dialogs/form-dialog/form-dialog.component';\r\nexport * from './lib/components/overlay/overlay.component';\r\nexport * from './lib/directives/swipe.directive';\r\nexport * from './lib/interfaces/dialogs.interface';\r\nexport * from './lib/interfaces/modals.interface';\r\nexport * from './lib/interfaces/swipe.interface';\r\nexport * from './lib/model/custom-overlay-ref.model';\r\nexport * from './lib/services/dialog.service';\r\nexport * from './lib/services/overlay.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
@@ -207,7 +207,7 @@ declare class DialogService {
|
|
207
207
|
* @param options Datos a mostrar en el diálogo, incluyendo título, campos a rellenar y textos para los botones de acción (opcionales).
|
208
208
|
* @returns Devuelve un observable para notificar el cierre del diálogo con los valores introducidos en el formulario.
|
209
209
|
*/
|
210
|
-
form(options: DialogOptions): Observable<
|
210
|
+
form(options: DialogOptions): Observable<DialogField[]>;
|
211
211
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
|
212
212
|
static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
|
213
213
|
}
|
package/package.json
CHANGED
@@ -60,6 +60,11 @@
|
|
60
60
|
"description": "Refactorización de variables CSS para evitar colisiones y documentación de todos los componentes, métodos y servicios",
|
61
61
|
"version": "1.2.2",
|
62
62
|
"factory": "./noop/index#noop"
|
63
|
+
},
|
64
|
+
"osumi-angular-tools-1-2-3": {
|
65
|
+
"description": "Corrección en diálogos de tipo formulario",
|
66
|
+
"version": "1.2.3",
|
67
|
+
"factory": "./noop/index#noop"
|
63
68
|
}
|
64
69
|
}
|
65
70
|
}
|