@ng-vagabond-lab/ng-dsv 0.2.11 → 0.2.13
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/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs +16 -11
- package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs +32 -22
- package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +29 -25
- package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs +15 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs +11 -7
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +26 -16
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +16 -14
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs +7 -5
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs +22 -14
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs +7 -5
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs +35 -22
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs +70 -47
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs +81 -54
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs +11 -7
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs +19 -11
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs +15 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs +9 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-link-pipe.mjs +6 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-link-pipe.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs +22 -17
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +24 -18
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +46 -29
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs +7 -5
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs +33 -21
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs +3 -3
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs +14 -10
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs +15 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +11 -10
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +16 -11
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs +15 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs +7 -5
- package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs +10 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs +51 -33
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs +21 -15
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs +5 -4
- package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs +9 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +13 -11
- package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs +15 -9
- package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +38 -28
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-form-signal.d.ts +1 -1
- package/types/ng-vagabond-lab-ng-dsv-i18n.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-list.mjs","sources":["../../../projects/ng-dsv/ds/list/item/component/drag/list-item-drag.component.ts","../../../projects/ng-dsv/ds/list/item/component/drag/list-item-drag.component.html","../../../projects/ng-dsv/ds/list/list/service/list-drag.service.ts","../../../projects/ng-dsv/ds/list/item/component/list-item.component.ts","../../../projects/ng-dsv/ds/list/item/component/list-item.component.html","../../../projects/ng-dsv/ds/list/list/component/list.component.ts","../../../projects/ng-dsv/ds/list/list/component/list.component.html","../../../projects/ng-dsv/ds/list/ng-vagabond-lab-ng-dsv-ds-list.ts"],"sourcesContent":["import { Component, inject, input } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ButtonVariantType } from '@ng-vagabond-lab/ng-dsv/type';\nimport { ListDragService } from '../../../public-api';\n\n@Component({\n selector: 'dsv-list-item-drag',\n imports: [DsvButtonComponent],\n templateUrl: './list-item-drag.component.html',\n styleUrl: './list-item-drag.component.scss',\n})\nexport class DsvListItemDragComponent {\n readonly listDragService = inject(ListDragService);\n\n readonly variant = input<ButtonVariantType>('text');\n\n onHandleMouseDown(event: MouseEvent): void {\n const li = (event.currentTarget as HTMLElement).closest('li') as HTMLElement;\n if (li) {\n li.draggable = true;\n }\n }\n\n onTouchStart(): void {\n this.listDragService.touchDragging.set(true);\n }\n}\n","<dsv-button\n class=\"drag-handle\"\n icon=\"ri-menu-line\"\n [variant]=\"variant()\"\n color=\"primary\"\n (mousedown)=\"onHandleMouseDown($event)\"\n (touchstart)=\"onTouchStart()\"\n/>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ListDragService {\n readonly dragSrcIndex = signal<number | null>(null);\n readonly touchDragging = signal<boolean>(false);\n}\n","import { Component, ElementRef, inject, input, output, viewChild } from '@angular/core';\nimport { ListItemDragDto } from '../../list/dto/list.dto';\nimport { ListDragService } from '../../list/service/list-drag.service';\n\n@Component({\n selector: 'dsv-list-item',\n imports: [],\n templateUrl: './list-item.component.html',\n styleUrl: './list-item.component.scss',\n})\nexport class DsvListItemComponent {\n readonly listDragService = inject(ListDragService);\n\n readonly index = input.required<number>();\n\n readonly callbackOrder = output<ListItemDragDto>();\n\n readonly liRef = viewChild<ElementRef>('liRef');\n ghostEl: HTMLElement | null = null;\n\n onHandleMouseDown(event: MouseEvent): void {\n const div = (event.currentTarget as HTMLElement).closest('div') as HTMLElement;\n if (div) {\n div.draggable = true;\n }\n }\n\n onDragStart(index: number, event: DragEvent): void {\n this.listDragService.dragSrcIndex.set(index);\n event.dataTransfer!.effectAllowed = 'move';\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.dataTransfer!.dropEffect = 'move';\n }\n\n onDrop(targetIndex: number, event: DragEvent): void {\n event.preventDefault();\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex === null || dragSrcIndex === targetIndex) {\n return;\n }\n this.callbackOrder.emit({\n dragSrcIndex: dragSrcIndex,\n targetIndex: targetIndex,\n });\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onDragEnd(): void {\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onTouchStart(event: TouchEvent): void {\n if (!this.listDragService.touchDragging()) {\n return;\n }\n this.listDragService.dragSrcIndex.set(this.index());\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (!li) {\n return;\n }\n\n const rect = li.getBoundingClientRect();\n const touch = event.touches[0];\n\n this.ghostEl = li.cloneNode(true) as HTMLElement;\n this.ghostEl.classList.add('ghost-drag');\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n this.ghostEl.style.width = `${rect.width - 25}px`;\n this.ghostEl.style.height = `${rect.height - 25}px`;\n\n const ul = li.closest('ul');\n if (ul) {\n ul.appendChild(this.ghostEl);\n }\n this.ghostEl.style.opacity = '0.5';\n }\n\n onTouchMove(event: TouchEvent): void {\n event.preventDefault();\n const touch = event.touches[0];\n\n if (this.ghostEl) {\n const rect = (this.liRef()?.nativeElement as HTMLElement).getBoundingClientRect();\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n }\n\n const target = document.elementFromPoint(touch.clientX, touch.clientY);\n const targetLi = target?.closest('li');\n\n document\n .querySelectorAll('li.drag-over-touch')\n .forEach((el) => el.classList.remove('drag-over-touch'));\n\n if (targetLi && targetLi !== this.liRef()?.nativeElement) {\n targetLi.classList.add('drag-over-touch');\n }\n }\n\n onTouchEnd(event: TouchEvent): void {\n if (this.ghostEl) {\n this.ghostEl.remove();\n this.ghostEl = null;\n }\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (li) li.style.opacity = '1';\n\n const touch = event.changedTouches[0];\n const target = document.elementFromPoint(touch?.clientX, touch?.clientY);\n const targetLi = target?.closest('[data-index]') as HTMLElement | null;\n\n if (targetLi) {\n const targetIndex = Number.parseInt(targetLi.dataset['index'] ?? '-1');\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex !== null && dragSrcIndex !== targetIndex && targetIndex >= 0) {\n this.callbackOrder.emit({ dragSrcIndex, targetIndex });\n }\n }\n\n document\n .querySelectorAll('li.drag-over-touch')\n .forEach((el) => el.classList.remove('drag-over-touch'));\n this.listDragService.dragSrcIndex.set(null);\n this.listDragService.touchDragging.set(false);\n }\n}\n","<li\n #liRef\n [attr.data-index]=\"index()\"\n [attr.draggable]=\"false\"\n [class.dragging]=\"listDragService.dragSrcIndex() === index()\"\n [class.drag-over]=\"listDragService.dragSrcIndex() === index()\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(index(), $event)\"\n (dragstart)=\"onDragStart(index(), $event)\"\n (dragend)=\"onDragEnd()\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n>\n <ng-content></ng-content>\n</li>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-list',\n imports: [],\n templateUrl: './list.component.html',\n styleUrl: './list.component.scss',\n})\nexport class DsvListComponent {}\n","<ul>\n <ng-content></ng-content>\n</ul>\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":"ng-vagabond-lab-ng-dsv-ds-list.mjs","sources":["../../../projects/ng-dsv/ds/list/item/component/drag/list-item-drag.component.ts","../../../projects/ng-dsv/ds/list/item/component/drag/list-item-drag.component.html","../../../projects/ng-dsv/ds/list/list/service/list-drag.service.ts","../../../projects/ng-dsv/ds/list/item/component/list-item.component.ts","../../../projects/ng-dsv/ds/list/item/component/list-item.component.html","../../../projects/ng-dsv/ds/list/list/component/list.component.ts","../../../projects/ng-dsv/ds/list/list/component/list.component.html","../../../projects/ng-dsv/ds/list/ng-vagabond-lab-ng-dsv-ds-list.ts"],"sourcesContent":["import { Component, inject, input } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ButtonVariantType } from '@ng-vagabond-lab/ng-dsv/type';\nimport { ListDragService } from '../../../public-api';\n\n@Component({\n selector: 'dsv-list-item-drag',\n imports: [DsvButtonComponent],\n templateUrl: './list-item-drag.component.html',\n styleUrl: './list-item-drag.component.scss',\n})\nexport class DsvListItemDragComponent {\n readonly listDragService = inject(ListDragService);\n\n readonly variant = input<ButtonVariantType>('text');\n\n onHandleMouseDown(event: MouseEvent): void {\n const li = (event.currentTarget as HTMLElement).closest('li') as HTMLElement;\n if (li) {\n li.draggable = true;\n }\n }\n\n onTouchStart(): void {\n this.listDragService.touchDragging.set(true);\n }\n}\n","<dsv-button\n class=\"drag-handle\"\n icon=\"ri-menu-line\"\n [variant]=\"variant()\"\n color=\"primary\"\n (mousedown)=\"onHandleMouseDown($event)\"\n (touchstart)=\"onTouchStart()\"\n/>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ListDragService {\n readonly dragSrcIndex = signal<number | null>(null);\n readonly touchDragging = signal<boolean>(false);\n}\n","import { Component, ElementRef, inject, input, output, viewChild } from '@angular/core';\nimport { ListItemDragDto } from '../../list/dto/list.dto';\nimport { ListDragService } from '../../list/service/list-drag.service';\n\n@Component({\n selector: 'dsv-list-item',\n imports: [],\n templateUrl: './list-item.component.html',\n styleUrl: './list-item.component.scss',\n})\nexport class DsvListItemComponent {\n readonly listDragService = inject(ListDragService);\n\n readonly index = input.required<number>();\n\n readonly callbackOrder = output<ListItemDragDto>();\n\n readonly liRef = viewChild<ElementRef>('liRef');\n ghostEl: HTMLElement | null = null;\n\n onHandleMouseDown(event: MouseEvent): void {\n const div = (event.currentTarget as HTMLElement).closest('div') as HTMLElement;\n if (div) {\n div.draggable = true;\n }\n }\n\n onDragStart(index: number, event: DragEvent): void {\n this.listDragService.dragSrcIndex.set(index);\n event.dataTransfer!.effectAllowed = 'move';\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.dataTransfer!.dropEffect = 'move';\n }\n\n onDrop(targetIndex: number, event: DragEvent): void {\n event.preventDefault();\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex === null || dragSrcIndex === targetIndex) {\n return;\n }\n this.callbackOrder.emit({\n dragSrcIndex: dragSrcIndex,\n targetIndex: targetIndex,\n });\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onDragEnd(): void {\n this.listDragService.dragSrcIndex.set(null);\n }\n\n onTouchStart(event: TouchEvent): void {\n if (!this.listDragService.touchDragging()) {\n return;\n }\n this.listDragService.dragSrcIndex.set(this.index());\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (!li) {\n return;\n }\n\n const rect = li.getBoundingClientRect();\n const touch = event.touches[0];\n\n this.ghostEl = li.cloneNode(true) as HTMLElement;\n this.ghostEl.classList.add('ghost-drag');\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n this.ghostEl.style.width = `${rect.width - 25}px`;\n this.ghostEl.style.height = `${rect.height - 25}px`;\n\n const ul = li.closest('ul');\n if (ul) {\n ul.appendChild(this.ghostEl);\n }\n this.ghostEl.style.opacity = '0.5';\n }\n\n onTouchMove(event: TouchEvent): void {\n event.preventDefault();\n const touch = event.touches[0];\n\n if (this.ghostEl) {\n const rect = (this.liRef()?.nativeElement as HTMLElement).getBoundingClientRect();\n this.ghostEl.style.top = `${touch.clientY - rect.height / 2}px`;\n this.ghostEl.style.left = `${rect.left}px`;\n }\n\n const target = document.elementFromPoint(touch.clientX, touch.clientY);\n const targetLi = target?.closest('li');\n\n document\n .querySelectorAll('li.drag-over-touch')\n .forEach((el) => el.classList.remove('drag-over-touch'));\n\n if (targetLi && targetLi !== this.liRef()?.nativeElement) {\n targetLi.classList.add('drag-over-touch');\n }\n }\n\n onTouchEnd(event: TouchEvent): void {\n if (this.ghostEl) {\n this.ghostEl.remove();\n this.ghostEl = null;\n }\n\n const li = this.liRef()?.nativeElement as HTMLElement;\n if (li) li.style.opacity = '1';\n\n const touch = event.changedTouches[0];\n const target = document.elementFromPoint(touch?.clientX, touch?.clientY);\n const targetLi = target?.closest('[data-index]') as HTMLElement | null;\n\n if (targetLi) {\n const targetIndex = Number.parseInt(targetLi.dataset['index'] ?? '-1');\n const dragSrcIndex = this.listDragService.dragSrcIndex();\n if (dragSrcIndex !== null && dragSrcIndex !== targetIndex && targetIndex >= 0) {\n this.callbackOrder.emit({ dragSrcIndex, targetIndex });\n }\n }\n\n document\n .querySelectorAll('li.drag-over-touch')\n .forEach((el) => el.classList.remove('drag-over-touch'));\n this.listDragService.dragSrcIndex.set(null);\n this.listDragService.touchDragging.set(false);\n }\n}\n","<li\n #liRef\n [attr.data-index]=\"index()\"\n [attr.draggable]=\"false\"\n [class.dragging]=\"listDragService.dragSrcIndex() === index()\"\n [class.drag-over]=\"listDragService.dragSrcIndex() === index()\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(index(), $event)\"\n (dragstart)=\"onDragStart(index(), $event)\"\n (dragend)=\"onDragEnd()\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n>\n <ng-content></ng-content>\n</li>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-list',\n imports: [],\n templateUrl: './list.component.html',\n styleUrl: './list.component.scss',\n})\nexport class DsvListComponent {}\n","<ul>\n <ng-content></ng-content>\n</ul>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAWa,wBAAwB,CAAA;AACxB,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAEzC,OAAO,GAAG,KAAK,CAAoB,MAAM;gFAAC;AAEnD,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QAC/B,MAAM,EAAE,GAAI,KAAK,CAAC,aAA6B,CAAC,OAAO,CAAC,IAAI,CAAgB;QAC5E,IAAI,EAAE,EAAE;AACJ,YAAA,EAAE,CAAC,SAAS,GAAG,IAAI;QACvB;IACJ;IAEA,YAAY,GAAA;QACR,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;IAChD;uGAdS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXrC,iNAQA,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDc,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAInB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,oBAAoB,EAAA,OAAA,EACrB,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,iNAAA,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA;;;MEJpB,eAAe,CAAA;IACf,YAAY,GAAG,MAAM,CAAgB,IAAI;qFAAC;IAC1C,aAAa,GAAG,MAAM,CAAU,KAAK;sFAAC;uGAFtC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA;;2FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCQrB,oBAAoB,CAAA;AACpB,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAEzC,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;IAEhC,aAAa,GAAG,MAAM,EAAmB;IAEzC,KAAK,GAAG,SAAS,CAAa,OAAO;8EAAC;IAC/C,OAAO,GAAuB,IAAI;AAElC,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QAC/B,MAAM,GAAG,GAAI,KAAK,CAAC,aAA6B,CAAC,OAAO,CAAC,KAAK,CAAgB;QAC9E,IAAI,GAAG,EAAE;AACL,YAAA,GAAG,CAAC,SAAS,GAAG,IAAI;QACxB;IACJ;IAEA,WAAW,CAAC,KAAa,EAAE,KAAgB,EAAA;QACvC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5C,QAAA,KAAK,CAAC,YAAa,CAAC,aAAa,GAAG,MAAM;IAC9C;AAEA,IAAA,UAAU,CAAC,KAAgB,EAAA;QACvB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,KAAK,CAAC,YAAa,CAAC,UAAU,GAAG,MAAM;IAC3C;IAEA,MAAM,CAAC,WAAmB,EAAE,KAAgB,EAAA;QACxC,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;QACxD,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,WAAW,EAAE;YACvD;QACJ;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACpB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,WAAW,EAAE,WAAW;AAC3B,SAAA,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/C;IAEA,SAAS,GAAA;QACL,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/C;AAEA,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE;YACvC;QACJ;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,aAA4B;QACrD,IAAI,CAAC,EAAE,EAAE;YACL;QACJ;AAEA,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAgB;QAChD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI;AAC/D,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI;AACjD,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI;QAEnD,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,IAAI,EAAE,EAAE;AACJ,YAAA,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QAChC;QACA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;IACtC;AAEA,IAAA,WAAW,CAAC,KAAiB,EAAA;QACzB,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,aAA6B,EAAC,qBAAqB,EAAE;AACjF,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI;AAC/D,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;QAC9C;AAEA,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;QAEtC;aACK,gBAAgB,CAAC,oBAAoB;AACrC,aAAA,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAE5D,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE;AACtD,YAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7C;IACJ;AAEA,IAAA,UAAU,CAAC,KAAiB,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACvB;QAEA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,aAA4B;AACrD,QAAA,IAAI,EAAE;AAAE,YAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;QAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AACrC,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,cAAc,CAAuB;QAEtE,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;YACtE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AACxD,YAAA,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,WAAW,IAAI,WAAW,IAAI,CAAC,EAAE;gBAC3E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;YAC1D;QACJ;QAEA;aACK,gBAAgB,CAAC,oBAAoB;AACrC,aAAA,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;IACjD;uGAxHS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,yWCVjC,qiBAgBA,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA,CAAA;;2FDNa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,WAChB,EAAE,EAAA,QAAA,EAAA,qiBAAA,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA;2NAW4B,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;METrC,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,oECR7B,8CAGA,EAAA,MAAA,EAAA,CAAA,iLAAA,CAAA,EAAA,CAAA;;2FDKa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,EAAE,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,iLAAA,CAAA,EAAA;;;AEJf;;AAEG;;;;"}
|
|
@@ -10,10 +10,10 @@ class DsvMenuButtonComponent {
|
|
|
10
10
|
doToogleMenu() {
|
|
11
11
|
this.menuService.toogleMenu();
|
|
12
12
|
}
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvMenuButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: DsvMenuButtonComponent, isStandalone: true, selector: "dsv-menu-button", ngImport: i0, template: "<dsv-button\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n [noHover]=\"true\"\n></dsv-button>\n", styles: [":host{display:flex}@media only screen and (min-width:1001px){:host{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvMenuButtonComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{ selector: 'dsv-menu-button', imports: [CommonModule, DsvButtonComponent], template: "<dsv-button\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n [noHover]=\"true\"\n></dsv-button>\n", styles: [":host{display:flex}@media only screen and (min-width:1001px){:host{display:none!important}}\n"] }]
|
|
19
19
|
}] });
|
|
@@ -24,12 +24,16 @@ const CLICK_BOTH = 'both';
|
|
|
24
24
|
|
|
25
25
|
class DsvMenuContextualComponent {
|
|
26
26
|
elementRef = inject(ElementRef);
|
|
27
|
-
buttonClick = input(CLICK_BOTH,
|
|
28
|
-
|
|
27
|
+
buttonClick = input(CLICK_BOTH, /* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [{ debugName: "buttonClick" }] : /* istanbul ignore next */ []));
|
|
29
|
+
options = input([], /* @ts-ignore */
|
|
30
|
+
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
29
31
|
callback = output();
|
|
30
32
|
callbackClose = output();
|
|
31
|
-
visible = signal(false,
|
|
32
|
-
|
|
33
|
+
visible = signal(false, /* @ts-ignore */
|
|
34
|
+
...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
35
|
+
selectedOption = signal('', /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "selectedOption" }] : /* istanbul ignore next */ []));
|
|
33
37
|
onOptionClick(event, option) {
|
|
34
38
|
event.stopPropagation();
|
|
35
39
|
this.callback.emit(option);
|
|
@@ -59,10 +63,10 @@ class DsvMenuContextualComponent {
|
|
|
59
63
|
toogleMenu() {
|
|
60
64
|
this.visible.set(!this.visible());
|
|
61
65
|
}
|
|
62
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvMenuContextualComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: DsvMenuContextualComponent, isStandalone: true, selector: "dsv-menu-contextual", inputs: { buttonClick: { classPropertyName: "buttonClick", publicName: "buttonClick", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback", callbackClose: "callbackClose" }, host: { listeners: { "document:click": "onClick($event)", "document:contextmenu": "onContextMenu($event)" } }, ngImport: i0, template: "<ng-content></ng-content>\n<div\n class=\"context-menu\"\n [class.visible]=\"visible()\"\n>\n @if (options().length > 0) {\n <ul>\n @for (option of options(); track option.id) {\n @if (option.divider) {\n <hr />\n }\n <li\n [class]=\"'text ' + option.color\"\n (click)=\"onOptionClick($event, option.id)\"\n >\n @if (option.icon) {\n <i [class]=\"option.icon\"></i>\n }\n {{ option.text }}\n </li>\n }\n </ul>\n } @else {\n <ng-content select=\".contextual\" />\n }\n</div>\n", styles: [":host{position:relative;display:inline-block}.context-menu{position:absolute;background-color:var(--background-card);border:1px solid var(--border);box-shadow:2px 2px 10px #0000001a;z-index:1;margin-top:5px;opacity:0;max-height:0;overflow:hidden;transform:translateY(-10px);transition:max-height .3s ease,opacity .3s ease,visibility .3s ease,transform .3s ease}.context-menu.visible{max-height:1000px;opacity:1;transform:translateY(0)}.context-menu ul{list-style:none;margin:0;padding:0;white-space:nowrap}.context-menu ul>hr{margin:5px 0 3px;padding:0}.context-menu ul li{padding:8px 16px;cursor:pointer}.context-menu ul li>i{margin-right:5px}.context-menu ul li:hover{background-color:var(--background)}\n"] });
|
|
64
68
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvMenuContextualComponent, decorators: [{
|
|
66
70
|
type: Component,
|
|
67
71
|
args: [{ selector: 'dsv-menu-contextual', host: {
|
|
68
72
|
'(document:click)': 'onClick($event)',
|
|
@@ -74,7 +78,8 @@ class DsvMenuComponent {
|
|
|
74
78
|
platformService = inject(PlatformService);
|
|
75
79
|
menuService = inject(MenuService);
|
|
76
80
|
elementRef = inject(ElementRef);
|
|
77
|
-
showFooter = input(true,
|
|
81
|
+
showFooter = input(true, /* @ts-ignore */
|
|
82
|
+
...(ngDevMode ? [{ debugName: "showFooter" }] : /* istanbul ignore next */ []));
|
|
78
83
|
constructor() {
|
|
79
84
|
effect(() => {
|
|
80
85
|
if (this.platformService.isPlatformBrowser()) {
|
|
@@ -100,10 +105,10 @@ class DsvMenuComponent {
|
|
|
100
105
|
this.menuService.toogleMenu();
|
|
101
106
|
}
|
|
102
107
|
}
|
|
103
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
104
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
108
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: DsvMenuComponent, isStandalone: true, selector: "dsv-menu", inputs: { showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<dsv-container>\n <ng-content></ng-content>\n</dsv-container>\n<div class=\"footer\">\n <ng-content select=\".footer\"></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;background-color:var(--background-card);color:var(--text);width:240px;transform:translate(0)!important}:host.open{transform:translate(0)!important}:host .footer{display:flex;align-items:center;justify-content:center;padding:10px}@media only screen and (max-width:1000px){:host{position:fixed;height:-webkit-fill-available;z-index:11;transform:translate(-100%)!important;transition:transform .3s ease-in-out}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsvContainerComponent, selector: "dsv-container", inputs: ["column"] }] });
|
|
105
110
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvMenuComponent, decorators: [{
|
|
107
112
|
type: Component,
|
|
108
113
|
args: [{ selector: 'dsv-menu', imports: [CommonModule, DsvContainerComponent], host: {
|
|
109
114
|
'(document:click)': 'onClickOutside($event)',
|
|
@@ -111,17 +116,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
111
116
|
}], ctorParameters: () => [], propDecorators: { showFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFooter", required: false }] }] } });
|
|
112
117
|
|
|
113
118
|
class MenuService {
|
|
114
|
-
isMenuOpen = signal(false,
|
|
119
|
+
isMenuOpen = signal(false, /* @ts-ignore */
|
|
120
|
+
...(ngDevMode ? [{ debugName: "isMenuOpen" }] : /* istanbul ignore next */ []));
|
|
115
121
|
toogleMenu() {
|
|
116
122
|
this.isMenuOpen.update((toogle) => !toogle);
|
|
117
123
|
}
|
|
118
124
|
closeMenu() {
|
|
119
125
|
this.isMenuOpen.set(false);
|
|
120
126
|
}
|
|
121
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
122
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
127
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
128
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: MenuService, providedIn: 'root' });
|
|
123
129
|
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: MenuService, decorators: [{
|
|
125
131
|
type: Injectable,
|
|
126
132
|
args: [{
|
|
127
133
|
providedIn: 'root',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-menu.mjs","sources":["../../../projects/ng-dsv/ds/menu/component/button/menu-button.component.ts","../../../projects/ng-dsv/ds/menu/component/button/menu-button.component.html","../../../projects/ng-dsv/ds/menu/dto/menu.contextual.ts","../../../projects/ng-dsv/ds/menu/component/contextual/menu-contextual.component.ts","../../../projects/ng-dsv/ds/menu/component/contextual/menu-contextual.component.html","../../../projects/ng-dsv/ds/menu/component/menu.component.ts","../../../projects/ng-dsv/ds/menu/component/menu.component.html","../../../projects/ng-dsv/ds/menu/service/menu.service.ts","../../../projects/ng-dsv/ds/menu/ng-vagabond-lab-ng-dsv-ds-menu.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { MenuService } from '../../public-api';\n\n@Component({\n selector: 'dsv-menu-button',\n imports: [CommonModule, DsvButtonComponent],\n templateUrl: './menu-button.component.html',\n styleUrls: ['./menu-button.component.scss'],\n})\nexport class DsvMenuButtonComponent {\n readonly menuService = inject(MenuService);\n\n doToogleMenu(): void {\n this.menuService.toogleMenu();\n }\n}\n","<dsv-button\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n [noHover]=\"true\"\n></dsv-button>\n","export const CLICK_LEFT = 'left';\nexport const CLICK_RIGHT = 'right';\nexport const CLICK_BOTH = 'both';\n\nexport type MenuContextualClickType = typeof CLICK_LEFT | typeof CLICK_RIGHT | typeof CLICK_BOTH;\n\nexport interface MenuContextualDto {\n id: string;\n icon?: string;\n text: string;\n divider?: boolean;\n color?: string;\n}\n","import { Component, ElementRef, inject, input, output, signal } from '@angular/core';\nimport {\n CLICK_BOTH,\n CLICK_LEFT,\n CLICK_RIGHT,\n MenuContextualClickType,\n MenuContextualDto,\n} from '../../dto/menu.contextual';\n\n@Component({\n selector: 'dsv-menu-contextual',\n templateUrl: './menu-contextual.component.html',\n styleUrls: ['./menu-contextual.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n '(document:contextmenu)': 'onContextMenu($event)',\n },\n})\nexport class DsvMenuContextualComponent {\n readonly elementRef = inject(ElementRef);\n\n readonly buttonClick = input<MenuContextualClickType>(CLICK_BOTH);\n readonly options = input<MenuContextualDto[]>([]);\n\n readonly callback = output<string>();\n readonly callbackClose = output<void>();\n\n readonly visible = signal<boolean>(false);\n readonly selectedOption = signal<string>('');\n\n onOptionClick(event: MouseEvent, option: string): void {\n event.stopPropagation();\n this.callback.emit(option);\n this.closeMenu();\n }\n\n onClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeMenu();\n } else if (this.buttonClick() === CLICK_LEFT || this.buttonClick() === CLICK_BOTH) {\n this.toogleMenu();\n }\n }\n\n onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeMenu();\n } else if (this.buttonClick() === CLICK_RIGHT || this.buttonClick() === CLICK_BOTH) {\n this.toogleMenu();\n }\n }\n\n closeMenu(): void {\n this.visible.set(false);\n this.callbackClose.emit();\n }\n\n toogleMenu(): void {\n this.visible.set(!this.visible());\n }\n}\n","<ng-content></ng-content>\n<div\n class=\"context-menu\"\n [class.visible]=\"visible()\"\n>\n @if (options().length > 0) {\n <ul>\n @for (option of options(); track option.id) {\n @if (option.divider) {\n <hr />\n }\n <li\n [class]=\"'text ' + option.color\"\n (click)=\"onOptionClick($event, option.id)\"\n >\n @if (option.icon) {\n <i [class]=\"option.icon\"></i>\n }\n {{ option.text }}\n </li>\n }\n </ul>\n } @else {\n <ng-content select=\".contextual\" />\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, ElementRef, inject, input } from '@angular/core';\nimport { DsvContainerComponent } from '@ng-vagabond-lab/ng-dsv/ds/container';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { MenuService } from '../public-api';\n\n@Component({\n selector: 'dsv-menu',\n imports: [CommonModule, DsvContainerComponent],\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n host: {\n '(document:click)': 'onClickOutside($event)',\n },\n})\nexport class DsvMenuComponent {\n readonly platformService = inject(PlatformService);\n readonly menuService = inject(MenuService);\n readonly elementRef = inject(ElementRef);\n\n readonly showFooter = input<boolean>(true);\n\n constructor() {\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\n const menu = document.getElementsByTagName('dsv-menu')[0];\n const collapse = document.getElementById('collapse');\n if (this.menuService.isMenuOpen()) {\n menu?.classList?.add('open');\n collapse?.classList.add('show');\n } else {\n menu?.classList?.remove('open');\n collapse?.classList.remove('show');\n }\n }\n\n this.menuService.isMenuOpen() &&\n document.getElementsByTagName('dsv-container')[0].classList.add('show');\n });\n }\n\n onClickOutside(event: Event): void {\n if (\n this.platformService.isPlatformBrowser() &&\n this.menuService.isMenuOpen() &&\n !this.elementRef.nativeElement.contains(event.target)\n ) {\n this.menuService.toogleMenu();\n }\n }\n}\n","<dsv-container>\n <ng-content></ng-content>\n</dsv-container>\n<div class=\"footer\">\n <ng-content select=\".footer\"></ng-content>\n</div>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n readonly isMenuOpen = signal<boolean>(false);\n\n toogleMenu(): void {\n this.isMenuOpen.update((toogle) => !toogle);\n }\n\n closeMenu(): void {\n this.isMenuOpen.set(false);\n }\n}\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":"ng-vagabond-lab-ng-dsv-ds-menu.mjs","sources":["../../../projects/ng-dsv/ds/menu/component/button/menu-button.component.ts","../../../projects/ng-dsv/ds/menu/component/button/menu-button.component.html","../../../projects/ng-dsv/ds/menu/dto/menu.contextual.ts","../../../projects/ng-dsv/ds/menu/component/contextual/menu-contextual.component.ts","../../../projects/ng-dsv/ds/menu/component/contextual/menu-contextual.component.html","../../../projects/ng-dsv/ds/menu/component/menu.component.ts","../../../projects/ng-dsv/ds/menu/component/menu.component.html","../../../projects/ng-dsv/ds/menu/service/menu.service.ts","../../../projects/ng-dsv/ds/menu/ng-vagabond-lab-ng-dsv-ds-menu.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { MenuService } from '../../public-api';\n\n@Component({\n selector: 'dsv-menu-button',\n imports: [CommonModule, DsvButtonComponent],\n templateUrl: './menu-button.component.html',\n styleUrls: ['./menu-button.component.scss'],\n})\nexport class DsvMenuButtonComponent {\n readonly menuService = inject(MenuService);\n\n doToogleMenu(): void {\n this.menuService.toogleMenu();\n }\n}\n","<dsv-button\n class=\"dsv-menu-button\"\n icon=\"ri-menu-line\"\n color=\"inherit\"\n (callback)=\"doToogleMenu()\"\n [noHover]=\"true\"\n></dsv-button>\n","export const CLICK_LEFT = 'left';\nexport const CLICK_RIGHT = 'right';\nexport const CLICK_BOTH = 'both';\n\nexport type MenuContextualClickType = typeof CLICK_LEFT | typeof CLICK_RIGHT | typeof CLICK_BOTH;\n\nexport interface MenuContextualDto {\n id: string;\n icon?: string;\n text: string;\n divider?: boolean;\n color?: string;\n}\n","import { Component, ElementRef, inject, input, output, signal } from '@angular/core';\nimport {\n CLICK_BOTH,\n CLICK_LEFT,\n CLICK_RIGHT,\n MenuContextualClickType,\n MenuContextualDto,\n} from '../../dto/menu.contextual';\n\n@Component({\n selector: 'dsv-menu-contextual',\n templateUrl: './menu-contextual.component.html',\n styleUrls: ['./menu-contextual.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n '(document:contextmenu)': 'onContextMenu($event)',\n },\n})\nexport class DsvMenuContextualComponent {\n readonly elementRef = inject(ElementRef);\n\n readonly buttonClick = input<MenuContextualClickType>(CLICK_BOTH);\n readonly options = input<MenuContextualDto[]>([]);\n\n readonly callback = output<string>();\n readonly callbackClose = output<void>();\n\n readonly visible = signal<boolean>(false);\n readonly selectedOption = signal<string>('');\n\n onOptionClick(event: MouseEvent, option: string): void {\n event.stopPropagation();\n this.callback.emit(option);\n this.closeMenu();\n }\n\n onClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeMenu();\n } else if (this.buttonClick() === CLICK_LEFT || this.buttonClick() === CLICK_BOTH) {\n this.toogleMenu();\n }\n }\n\n onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeMenu();\n } else if (this.buttonClick() === CLICK_RIGHT || this.buttonClick() === CLICK_BOTH) {\n this.toogleMenu();\n }\n }\n\n closeMenu(): void {\n this.visible.set(false);\n this.callbackClose.emit();\n }\n\n toogleMenu(): void {\n this.visible.set(!this.visible());\n }\n}\n","<ng-content></ng-content>\n<div\n class=\"context-menu\"\n [class.visible]=\"visible()\"\n>\n @if (options().length > 0) {\n <ul>\n @for (option of options(); track option.id) {\n @if (option.divider) {\n <hr />\n }\n <li\n [class]=\"'text ' + option.color\"\n (click)=\"onOptionClick($event, option.id)\"\n >\n @if (option.icon) {\n <i [class]=\"option.icon\"></i>\n }\n {{ option.text }}\n </li>\n }\n </ul>\n } @else {\n <ng-content select=\".contextual\" />\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, ElementRef, inject, input } from '@angular/core';\nimport { DsvContainerComponent } from '@ng-vagabond-lab/ng-dsv/ds/container';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { MenuService } from '../public-api';\n\n@Component({\n selector: 'dsv-menu',\n imports: [CommonModule, DsvContainerComponent],\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n host: {\n '(document:click)': 'onClickOutside($event)',\n },\n})\nexport class DsvMenuComponent {\n readonly platformService = inject(PlatformService);\n readonly menuService = inject(MenuService);\n readonly elementRef = inject(ElementRef);\n\n readonly showFooter = input<boolean>(true);\n\n constructor() {\n effect(() => {\n if (this.platformService.isPlatformBrowser()) {\n const menu = document.getElementsByTagName('dsv-menu')[0];\n const collapse = document.getElementById('collapse');\n if (this.menuService.isMenuOpen()) {\n menu?.classList?.add('open');\n collapse?.classList.add('show');\n } else {\n menu?.classList?.remove('open');\n collapse?.classList.remove('show');\n }\n }\n\n this.menuService.isMenuOpen() &&\n document.getElementsByTagName('dsv-container')[0].classList.add('show');\n });\n }\n\n onClickOutside(event: Event): void {\n if (\n this.platformService.isPlatformBrowser() &&\n this.menuService.isMenuOpen() &&\n !this.elementRef.nativeElement.contains(event.target)\n ) {\n this.menuService.toogleMenu();\n }\n }\n}\n","<dsv-container>\n <ng-content></ng-content>\n</dsv-container>\n<div class=\"footer\">\n <ng-content select=\".footer\"></ng-content>\n</div>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n readonly isMenuOpen = signal<boolean>(false);\n\n toogleMenu(): void {\n this.isMenuOpen.update((toogle) => !toogle);\n }\n\n closeMenu(): void {\n this.isMenuOpen.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ import { TranslatePipe } from '@ngx-translate/core';
|
|
|
5
5
|
import { MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';
|
|
6
6
|
|
|
7
7
|
class ModalService {
|
|
8
|
-
states = signal(new Map(),
|
|
8
|
+
states = signal(new Map(), /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "states" }] : /* istanbul ignore next */ []));
|
|
9
10
|
getSignal(id) {
|
|
10
11
|
return this.states().get(id) ?? false;
|
|
11
12
|
}
|
|
@@ -21,10 +22,10 @@ class ModalService {
|
|
|
21
22
|
closeAll() {
|
|
22
23
|
this.states.set(new Map());
|
|
23
24
|
}
|
|
24
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
26
27
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: ModalService, decorators: [{
|
|
28
29
|
type: Injectable,
|
|
29
30
|
args: [{ providedIn: 'root' }]
|
|
30
31
|
}] });
|
|
@@ -32,11 +33,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
32
33
|
class DsvModalComponent {
|
|
33
34
|
modalService = inject(ModalService);
|
|
34
35
|
menuService = inject(MenuService);
|
|
35
|
-
id = input.required(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
id = input.required(/* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
38
|
+
class = input('', /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
40
|
+
titleText = input.required(/* @ts-ignore */
|
|
41
|
+
...(ngDevMode ? [{ debugName: "titleText" }] : /* istanbul ignore next */ []));
|
|
42
|
+
canEchap = input(true, /* @ts-ignore */
|
|
43
|
+
...(ngDevMode ? [{ debugName: "canEchap" }] : /* istanbul ignore next */ []));
|
|
44
|
+
isOpen = signal(false, /* @ts-ignore */
|
|
45
|
+
...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
|
|
40
46
|
constructor() {
|
|
41
47
|
effect(() => {
|
|
42
48
|
this.isOpen.set(this.modalService.getSignal(this.id()) ?? false);
|
|
@@ -53,10 +59,10 @@ class DsvModalComponent {
|
|
|
53
59
|
close() {
|
|
54
60
|
this.modalService.close(this.id());
|
|
55
61
|
}
|
|
56
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
57
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: DsvModalComponent, isStandalone: true, selector: "dsv-modal", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: true, transformFunction: null }, canEchap: { classPropertyName: "canEchap", publicName: "canEchap", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:keydown.escape": "onEscapeKey()" } }, ngImport: i0, template: "<div\n class=\"modal-overlay\"\n [class.open]=\"isOpen()\"\n></div>\n<div\n [class]=\"'modal ' + class()\"\n [class.open]=\"isOpen()\"\n>\n <div class=\"modal-header\">\n <b>{{ titleText() }}</b>\n <dsv-button\n (callback)=\"close()\"\n variant=\"text\"\n color=\"inherit\"\n >\n X\n </dsv-button>\n </div>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer-wrapper\">\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n</div>\n", styles: [":host{--modal-top: 35%;--modal-left: 25%;--modal-width: 50%;--modal-height: auto;--modal-min-height: 150px;--modal-max-height: 50vh;--modal-overlay-z-index: 100;--modal-z-index: 101;--modal-content-padding: 25px 10px 20px;--modal-overflow: auto;position:absolute}:host .modal-overlay{position:fixed;z-index:-1;opacity:0;background-color:oklab(0% none none / .8);width:100%;height:100%;top:0;right:0}:host .modal-overlay.open{z-index:var(--modal-overlay-z-index);opacity:1}:host .modal{position:fixed;z-index:-1;opacity:0;top:var(--modal-top);left:var(--modal-left);width:var(--modal-width);height:var(--modal-height);min-height:var(--modal-min-height);background:var(--background);display:flex;flex-direction:column}:host .modal.open{z-index:var(--modal-z-index);opacity:1}:host .modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px;background:var(--background-header);border-bottom:1px outset var(--border)}:host .modal .modal-content{flex:1;overflow:var(--modal-overflow);scrollbar-width:thin;padding:var(--modal-content-padding);background:var(--background-card);max-height:var(--modal-max-height);position:relative}:host .modal .modal-footer-wrapper:not(:empty){padding:10px;background:var(--background-card)}@media screen and (min-width:1000px){:host{--modal-left: calc(25% + 120px) !important}}@media screen and (max-width:750px){:host{--modal-width: calc(100% - 16px) !important;--modal-left: 8px !important}}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
58
64
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvModalComponent, decorators: [{
|
|
60
66
|
type: Component,
|
|
61
67
|
args: [{ selector: 'dsv-modal', imports: [DsvButtonComponent], host: {
|
|
62
68
|
'(document:keydown.escape)': 'onEscapeKey()',
|
|
@@ -64,13 +70,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
64
70
|
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], titleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleText", required: true }] }], canEchap: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEchap", required: false }] }] } });
|
|
65
71
|
|
|
66
72
|
class DsvModalAlertComponent {
|
|
67
|
-
id = input.required(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
id = input.required(/* @ts-ignore */
|
|
74
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
75
|
+
titleText = input('title', /* @ts-ignore */
|
|
76
|
+
...(ngDevMode ? [{ debugName: "titleText" }] : /* istanbul ignore next */ []));
|
|
77
|
+
text = input('text', /* @ts-ignore */
|
|
78
|
+
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
79
|
+
button = input('button', /* @ts-ignore */
|
|
80
|
+
...(ngDevMode ? [{ debugName: "button" }] : /* istanbul ignore next */ []));
|
|
81
|
+
buttonClose = input(/* @ts-ignore */
|
|
82
|
+
...(ngDevMode ? [undefined, { debugName: "buttonClose" }] : /* istanbul ignore next */ []));
|
|
72
83
|
callback = output();
|
|
73
|
-
isOpen = signal(false,
|
|
84
|
+
isOpen = signal(false, /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
|
|
74
86
|
modalService = inject(ModalService);
|
|
75
87
|
constructor() {
|
|
76
88
|
effect(() => {
|
|
@@ -84,30 +96,35 @@ class DsvModalAlertComponent {
|
|
|
84
96
|
doClickClose() {
|
|
85
97
|
this.modalService.close(this.id());
|
|
86
98
|
}
|
|
87
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
88
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
99
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvModalAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: DsvModalAlertComponent, isStandalone: true, selector: "dsv-modal-alert", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, buttonClose: { classPropertyName: "buttonClose", publicName: "buttonClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<dsv-modal\n [id]=\"id()\"\n [titleText]=\"titleText()\"\n>\n {{ text() }}\n <div class=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button\n (callback)=\"doClickClose()\"\n color=\"error\"\n >\n {{ buttonClose()! | translate }}\n </dsv-button>\n }\n <dsv-button\n (callback)=\"doClick()\"\n color=\"success\"\n >\n {{ button() | translate }}\n </dsv-button>\n </div>\n</dsv-modal>\n", styles: [":host{position:absolute}:host .modal-footer{display:flex;gap:.5rem;justify-content:flex-end}:host dsv-modal{--modal-overlay-z-index: 110 !important;--modal-z-index: 111 !important}\n"], dependencies: [{ kind: "component", type: DsvModalComponent, selector: "dsv-modal", inputs: ["id", "class", "titleText", "canEchap"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
89
101
|
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvModalAlertComponent, decorators: [{
|
|
91
103
|
type: Component,
|
|
92
104
|
args: [{ selector: 'dsv-modal-alert', imports: [DsvModalComponent, DsvButtonComponent, TranslatePipe], template: "<dsv-modal\n [id]=\"id()\"\n [titleText]=\"titleText()\"\n>\n {{ text() }}\n <div class=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button\n (callback)=\"doClickClose()\"\n color=\"error\"\n >\n {{ buttonClose()! | translate }}\n </dsv-button>\n }\n <dsv-button\n (callback)=\"doClick()\"\n color=\"success\"\n >\n {{ button() | translate }}\n </dsv-button>\n </div>\n</dsv-modal>\n", styles: [":host{position:absolute}:host .modal-footer{display:flex;gap:.5rem;justify-content:flex-end}:host dsv-modal{--modal-overlay-z-index: 110 !important;--modal-z-index: 111 !important}\n"] }]
|
|
93
105
|
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], titleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleText", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], buttonClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonClose", required: false }] }], callback: [{ type: i0.Output, args: ["callback"] }] } });
|
|
94
106
|
|
|
95
107
|
class DsvModalButtonComponent {
|
|
96
108
|
modalService = inject(ModalService);
|
|
97
|
-
modalName = input.required(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
109
|
+
modalName = input.required(/* @ts-ignore */
|
|
110
|
+
...(ngDevMode ? [{ debugName: "modalName" }] : /* istanbul ignore next */ []));
|
|
111
|
+
icon = input('', /* @ts-ignore */
|
|
112
|
+
...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
113
|
+
variant = input('contained', /* @ts-ignore */
|
|
114
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
115
|
+
text = input('', /* @ts-ignore */
|
|
116
|
+
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
117
|
+
color = input('primary', /* @ts-ignore */
|
|
118
|
+
...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
102
119
|
callback = output();
|
|
103
120
|
doToogle() {
|
|
104
121
|
this.callback.emit();
|
|
105
122
|
this.modalService.toggle(this.modalName());
|
|
106
123
|
}
|
|
107
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
108
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
124
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvModalButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: DsvModalButtonComponent, isStandalone: true, selector: "dsv-modal-button", inputs: { modalName: { classPropertyName: "modalName", publicName: "modalName", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<dsv-button\n [color]=\"color()\"\n [libelle]=\"text()\"\n [icon]=\"icon()\"\n [variant]=\"variant()\"\n (callback)=\"doToogle()\"\n/>\n<ng-content></ng-content>\n", styles: [":host{--button-border-radius: 4px;--button-disabled-background: rgb(200, 200, 200);--button-disabled-color: rgba(0, 0, 0);--button-width: auto;--button-min-width: 10px;--button-min-height: 28px;--button-margin: 0px;--button-padding: 2px 4px;--button-font-size: 1rem;--button-icon-size: 1.4rem;--button-line-height: 1.5rem;--button-font-weight: 550;position:relative}:host button.dsv-button{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;box-sizing:border-box;vertical-align:middle;flex-direction:row;gap:5px;align-items:center;justify-content:center;font-weight:var(--button-font-weight);font-size:var(--button-font-size);letter-spacing:.02857em;text-transform:uppercase;outline:0px;margin:var(--button-margin);padding:var(--button-padding);min-width:var(--button-min-width);min-height:var(--button-min-height);width:var(--button-width);line-height:var(--button-line-height);text-decoration:none;border-width:0px;border-radius:var(--button-border-radius);transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1)}:host button.dsv-button i{font-size:var(--button-icon-size)!important}:host button.dsv-button>span:not(.ripple):empty{display:none}:host button.dsv-button:has(span:not(:empty)){padding:3px 10px}:host button.dsv-button:has(span:not(:empty)) i{font-size:var(--button-font-size)!important}:host button.dsv-button:not(:disabled):not(.no-hover):hover{transform:scale(1);opacity:1.2}:host button.dsv-button:not(:disabled):not(.no-hover):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}:host button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}:host button.dsv-button:disabled{cursor:auto;background:var(--button-disabled-background);color:var(--button-disabled-color)}\n", ":host{--button-modal-border-radius: 4px;--button-modal-disabled-background: rgb(200, 200, 200);--button-modal-disabled-color: rgba(0, 0, 0);--button-modal-width: auto;--button-modal-min-width: 10px;--button-modal-min-height: 28px;--button-modal-margin: 0px;--button-modal-padding: 2px 4px;--button-modal-font-size: 1rem;--button-modal-icon-size: 1.4rem;--button-modal-line-height: 1.5rem;--button-modal-font-weight: 550}:host dsv-button{--button-border-radius: var(--button-modal-border-radius);--button-disabled-background: var(--button-modal-disabled-background);--button-disabled-color: var(--button-modal-disabled-color);--button-width: var(--button-modal-width);--button-min-width: var(--button-modal-min-width);--button-min-height: var(--button-modal-min-height);--button-margin: var(--button-modal-margin);--button-padding: var(--button-modal-padding);--button-font-size: var(--button-modal-font-size);--button-icon-size: var(--button-modal-icon-size);--button-line-height: var(--button-modal-line-height);--button-font-weight: var(--button-modal-font-weight)}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
109
126
|
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvModalButtonComponent, decorators: [{
|
|
111
128
|
type: Component,
|
|
112
129
|
args: [{ selector: 'dsv-modal-button', imports: [DsvButtonComponent], template: "<dsv-button\n [color]=\"color()\"\n [libelle]=\"text()\"\n [icon]=\"icon()\"\n [variant]=\"variant()\"\n (callback)=\"doToogle()\"\n/>\n<ng-content></ng-content>\n", styles: [":host{--button-border-radius: 4px;--button-disabled-background: rgb(200, 200, 200);--button-disabled-color: rgba(0, 0, 0);--button-width: auto;--button-min-width: 10px;--button-min-height: 28px;--button-margin: 0px;--button-padding: 2px 4px;--button-font-size: 1rem;--button-icon-size: 1.4rem;--button-line-height: 1.5rem;--button-font-weight: 550;position:relative}:host button.dsv-button{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;box-sizing:border-box;vertical-align:middle;flex-direction:row;gap:5px;align-items:center;justify-content:center;font-weight:var(--button-font-weight);font-size:var(--button-font-size);letter-spacing:.02857em;text-transform:uppercase;outline:0px;margin:var(--button-margin);padding:var(--button-padding);min-width:var(--button-min-width);min-height:var(--button-min-height);width:var(--button-width);line-height:var(--button-line-height);text-decoration:none;border-width:0px;border-radius:var(--button-border-radius);transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1)}:host button.dsv-button i{font-size:var(--button-icon-size)!important}:host button.dsv-button>span:not(.ripple):empty{display:none}:host button.dsv-button:has(span:not(:empty)){padding:3px 10px}:host button.dsv-button:has(span:not(:empty)) i{font-size:var(--button-font-size)!important}:host button.dsv-button:not(:disabled):not(.no-hover):hover{transform:scale(1);opacity:1.2}:host button.dsv-button:not(:disabled):not(.no-hover):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}:host button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}:host button.dsv-button:disabled{cursor:auto;background:var(--button-disabled-background);color:var(--button-disabled-color)}\n", ":host{--button-modal-border-radius: 4px;--button-modal-disabled-background: rgb(200, 200, 200);--button-modal-disabled-color: rgba(0, 0, 0);--button-modal-width: auto;--button-modal-min-width: 10px;--button-modal-min-height: 28px;--button-modal-margin: 0px;--button-modal-padding: 2px 4px;--button-modal-font-size: 1rem;--button-modal-icon-size: 1.4rem;--button-modal-line-height: 1.5rem;--button-modal-font-weight: 550}:host dsv-button{--button-border-radius: var(--button-modal-border-radius);--button-disabled-background: var(--button-modal-disabled-background);--button-disabled-color: var(--button-modal-disabled-color);--button-width: var(--button-modal-width);--button-min-width: var(--button-modal-min-width);--button-min-height: var(--button-modal-min-height);--button-margin: var(--button-modal-margin);--button-padding: var(--button-modal-padding);--button-font-size: var(--button-modal-font-size);--button-icon-size: var(--button-modal-icon-size);--button-line-height: var(--button-modal-line-height);--button-font-weight: var(--button-modal-font-weight)}\n"] }]
|
|
113
130
|
}], propDecorators: { modalName: [{ type: i0.Input, args: [{ isSignal: true, alias: "modalName", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], callback: [{ type: i0.Output, args: ["callback"] }] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-modal.mjs","sources":["../../../projects/ng-dsv/ds/modal/service/modal.service.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.html","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.ts","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.html","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.ts","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.html","../../../projects/ng-dsv/ds/modal/ng-vagabond-lab-ng-dsv-ds-modal.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private readonly states = signal<Map<string, boolean>>(new Map());\n\n getSignal(id: string): boolean {\n return this.states().get(id) ?? false;\n }\n\n open(id: string): void {\n this.states.update((map) => new Map(map).set(id, true));\n }\n\n close(id: string): void {\n this.states.update((map) => new Map(map).set(id, false));\n }\n\n toggle(id: string): void {\n this.states.update((map) => new Map(map).set(id, !map.get(id)));\n }\n\n closeAll(): void {\n this.states.set(new Map());\n }\n}\n","import { Component, effect, inject, input, signal } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';\nimport { ModalService } from '../service/modal.service';\n\n@Component({\n selector: 'dsv-modal',\n imports: [DsvButtonComponent],\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n host: {\n '(document:keydown.escape)': 'onEscapeKey()',\n },\n})\nexport class DsvModalComponent {\n readonly modalService = inject(ModalService);\n readonly menuService = inject(MenuService);\n\n readonly id = input.required<string>();\n readonly class = input<string>('');\n readonly titleText = input.required<string>();\n readonly canEchap = input<boolean>(true);\n\n readonly isOpen = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id()) ?? false);\n if (this.isOpen()) {\n this.menuService.isMenuOpen.set(false);\n }\n });\n }\n\n onEscapeKey(): void {\n if (this.isOpen() && this.canEchap()) {\n this.close();\n }\n }\n\n close(): void {\n this.modalService.close(this.id());\n }\n}\n","<div\n class=\"modal-overlay\"\n [class.open]=\"isOpen()\"\n></div>\n<div\n [class]=\"'modal ' + class()\"\n [class.open]=\"isOpen()\"\n>\n <div class=\"modal-header\">\n <b>{{ titleText() }}</b>\n <dsv-button\n (callback)=\"close()\"\n variant=\"text\"\n color=\"inherit\"\n >\n X\n </dsv-button>\n </div>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer-wrapper\">\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n</div>\n","import { Component, effect, inject, input, output, signal } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ModalService } from '../../service/modal.service';\nimport { DsvModalComponent } from '../modal.component';\n\n@Component({\n selector: 'dsv-modal-alert',\n imports: [DsvModalComponent, DsvButtonComponent, TranslatePipe],\n templateUrl: './modal-alert.component.html',\n styleUrls: ['./modal-alert.component.scss'],\n})\nexport class DsvModalAlertComponent {\n readonly id = input.required<string>();\n readonly titleText = input<string>('title');\n readonly text = input<string>('text');\n readonly button = input<string>('button');\n readonly buttonClose = input<string>();\n readonly callback = output<void>();\n\n readonly isOpen = signal<boolean>(false);\n\n readonly modalService = inject(ModalService);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id() ?? false));\n });\n }\n\n doClick(): void {\n this.modalService.toggle(this.id());\n this.callback.emit();\n }\n\n doClickClose(): void {\n this.modalService.close(this.id());\n }\n}\n","<dsv-modal\n [id]=\"id()\"\n [titleText]=\"titleText()\"\n>\n {{ text() }}\n <div class=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button\n (callback)=\"doClickClose()\"\n color=\"error\"\n >\n {{ buttonClose()! | translate }}\n </dsv-button>\n }\n <dsv-button\n (callback)=\"doClick()\"\n color=\"success\"\n >\n {{ button() | translate }}\n </dsv-button>\n </div>\n</dsv-modal>\n","import { Component, inject, input, output } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ButtonVariantType, ColorType } from '@ng-vagabond-lab/ng-dsv/type';\nimport { ModalService } from '../../service/modal.service';\n\n@Component({\n selector: 'dsv-modal-button',\n imports: [DsvButtonComponent],\n templateUrl: './modal-button.component.html',\n styleUrls: ['../../../button/component/button.component.scss', './modal-button.component.scss'],\n})\nexport class DsvModalButtonComponent {\n readonly modalService = inject(ModalService);\n\n readonly modalName = input.required<string>();\n readonly icon = input<string>('');\n readonly variant = input<ButtonVariantType>('contained');\n readonly text = input<string>('');\n readonly color = input<ColorType>('primary');\n\n readonly callback = output<void>();\n\n doToogle(): void {\n this.callback.emit();\n this.modalService.toggle(this.modalName());\n }\n}\n","<dsv-button\n [color]=\"color()\"\n [libelle]=\"text()\"\n [icon]=\"icon()\"\n [variant]=\"variant()\"\n (callback)=\"doToogle()\"\n/>\n<ng-content></ng-content>\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":"ng-vagabond-lab-ng-dsv-ds-modal.mjs","sources":["../../../projects/ng-dsv/ds/modal/service/modal.service.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.ts","../../../projects/ng-dsv/ds/modal/component/modal.component.html","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.ts","../../../projects/ng-dsv/ds/modal/component/alert/modal-alert.component.html","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.ts","../../../projects/ng-dsv/ds/modal/component/button/modal-button.component.html","../../../projects/ng-dsv/ds/modal/ng-vagabond-lab-ng-dsv-ds-modal.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n private readonly states = signal<Map<string, boolean>>(new Map());\n\n getSignal(id: string): boolean {\n return this.states().get(id) ?? false;\n }\n\n open(id: string): void {\n this.states.update((map) => new Map(map).set(id, true));\n }\n\n close(id: string): void {\n this.states.update((map) => new Map(map).set(id, false));\n }\n\n toggle(id: string): void {\n this.states.update((map) => new Map(map).set(id, !map.get(id)));\n }\n\n closeAll(): void {\n this.states.set(new Map());\n }\n}\n","import { Component, effect, inject, input, signal } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';\nimport { ModalService } from '../service/modal.service';\n\n@Component({\n selector: 'dsv-modal',\n imports: [DsvButtonComponent],\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n host: {\n '(document:keydown.escape)': 'onEscapeKey()',\n },\n})\nexport class DsvModalComponent {\n readonly modalService = inject(ModalService);\n readonly menuService = inject(MenuService);\n\n readonly id = input.required<string>();\n readonly class = input<string>('');\n readonly titleText = input.required<string>();\n readonly canEchap = input<boolean>(true);\n\n readonly isOpen = signal<boolean>(false);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id()) ?? false);\n if (this.isOpen()) {\n this.menuService.isMenuOpen.set(false);\n }\n });\n }\n\n onEscapeKey(): void {\n if (this.isOpen() && this.canEchap()) {\n this.close();\n }\n }\n\n close(): void {\n this.modalService.close(this.id());\n }\n}\n","<div\n class=\"modal-overlay\"\n [class.open]=\"isOpen()\"\n></div>\n<div\n [class]=\"'modal ' + class()\"\n [class.open]=\"isOpen()\"\n>\n <div class=\"modal-header\">\n <b>{{ titleText() }}</b>\n <dsv-button\n (callback)=\"close()\"\n variant=\"text\"\n color=\"inherit\"\n >\n X\n </dsv-button>\n </div>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer-wrapper\">\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n</div>\n","import { Component, effect, inject, input, output, signal } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ModalService } from '../../service/modal.service';\nimport { DsvModalComponent } from '../modal.component';\n\n@Component({\n selector: 'dsv-modal-alert',\n imports: [DsvModalComponent, DsvButtonComponent, TranslatePipe],\n templateUrl: './modal-alert.component.html',\n styleUrls: ['./modal-alert.component.scss'],\n})\nexport class DsvModalAlertComponent {\n readonly id = input.required<string>();\n readonly titleText = input<string>('title');\n readonly text = input<string>('text');\n readonly button = input<string>('button');\n readonly buttonClose = input<string>();\n readonly callback = output<void>();\n\n readonly isOpen = signal<boolean>(false);\n\n readonly modalService = inject(ModalService);\n\n constructor() {\n effect(() => {\n this.isOpen.set(this.modalService.getSignal(this.id() ?? false));\n });\n }\n\n doClick(): void {\n this.modalService.toggle(this.id());\n this.callback.emit();\n }\n\n doClickClose(): void {\n this.modalService.close(this.id());\n }\n}\n","<dsv-modal\n [id]=\"id()\"\n [titleText]=\"titleText()\"\n>\n {{ text() }}\n <div class=\"modal-footer\">\n @if (buttonClose()) {\n <dsv-button\n (callback)=\"doClickClose()\"\n color=\"error\"\n >\n {{ buttonClose()! | translate }}\n </dsv-button>\n }\n <dsv-button\n (callback)=\"doClick()\"\n color=\"success\"\n >\n {{ button() | translate }}\n </dsv-button>\n </div>\n</dsv-modal>\n","import { Component, inject, input, output } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { ButtonVariantType, ColorType } from '@ng-vagabond-lab/ng-dsv/type';\nimport { ModalService } from '../../service/modal.service';\n\n@Component({\n selector: 'dsv-modal-button',\n imports: [DsvButtonComponent],\n templateUrl: './modal-button.component.html',\n styleUrls: ['../../../button/component/button.component.scss', './modal-button.component.scss'],\n})\nexport class DsvModalButtonComponent {\n readonly modalService = inject(ModalService);\n\n readonly modalName = input.required<string>();\n readonly icon = input<string>('');\n readonly variant = input<ButtonVariantType>('contained');\n readonly text = input<string>('');\n readonly color = input<ColorType>('primary');\n\n readonly callback = output<void>();\n\n doToogle(): void {\n this.callback.emit();\n this.modalService.toggle(this.modalName());\n }\n}\n","<dsv-button\n [color]=\"color()\"\n [libelle]=\"text()\"\n [icon]=\"icon()\"\n [variant]=\"variant()\"\n (callback)=\"doToogle()\"\n/>\n<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,18 @@ import { input, output, Component } from '@angular/core';
|
|
|
3
3
|
import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
|
|
4
4
|
|
|
5
5
|
class DsvPaginateComponent {
|
|
6
|
-
page = input.required(
|
|
7
|
-
|
|
6
|
+
page = input.required(/* @ts-ignore */
|
|
7
|
+
...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
|
|
8
|
+
max = input.required(/* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
8
10
|
callback = output();
|
|
9
11
|
gotoPage(page) {
|
|
10
12
|
this.callback.emit(page);
|
|
11
13
|
}
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvPaginateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: DsvPaginateComponent, isStandalone: true, selector: "dsv-paginate", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { callback: "callback" }, ngImport: i0, template: "<div>{{ page() + 1 }} / {{ max() }}</div>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-left-s-line\"\n [disabled]=\"page() === 0\"\n (callback)=\"gotoPage(page() - 1)\"\n/>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-right-s-line\"\n [disabled]=\"page() + 1 >= max()\"\n (callback)=\"gotoPage(page() + 1)\"\n/>\n", styles: [":host{width:100%;display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 5px;width:calc(100% - 10px)}:host dsv-button{--button-border-radius: 50% !important;--button-disabled-background: inherit !important;--button-disabled-color: rgba(0, 0, 0, .26) !important}:host-context(body.dark) dsv-button{--button-border-radius: 50% !important;--button-disabled-color: hsla(0, 0%, 100%, .3) !important}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }] });
|
|
14
16
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: DsvPaginateComponent, decorators: [{
|
|
16
18
|
type: Component,
|
|
17
19
|
args: [{ selector: 'dsv-paginate', imports: [DsvButtonComponent], template: "<div>{{ page() + 1 }} / {{ max() }}</div>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-left-s-line\"\n [disabled]=\"page() === 0\"\n (callback)=\"gotoPage(page() - 1)\"\n/>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-right-s-line\"\n [disabled]=\"page() + 1 >= max()\"\n (callback)=\"gotoPage(page() + 1)\"\n/>\n", styles: [":host{width:100%;display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 5px;width:calc(100% - 10px)}:host dsv-button{--button-border-radius: 50% !important;--button-disabled-background: inherit !important;--button-disabled-color: rgba(0, 0, 0, .26) !important}:host-context(body.dark) dsv-button{--button-border-radius: 50% !important;--button-disabled-color: hsla(0, 0%, 100%, .3) !important}\n"] }]
|
|
18
20
|
}], propDecorators: { page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: true }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: true }] }], callback: [{ type: i0.Output, args: ["callback"] }] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-paginate.mjs","sources":["../../../projects/ng-dsv/ds/paginate/component/paginate.component.ts","../../../projects/ng-dsv/ds/paginate/component/paginate.component.html","../../../projects/ng-dsv/ds/paginate/ng-vagabond-lab-ng-dsv-ds-paginate.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\n\n@Component({\n selector: 'dsv-paginate',\n imports: [DsvButtonComponent],\n templateUrl: './paginate.component.html',\n styleUrls: ['./paginate.component.scss'],\n})\nexport class DsvPaginateComponent {\n readonly page = input.required<number>();\n readonly max = input.required<number>();\n\n readonly callback = output<number>();\n\n gotoPage(page: number): void {\n this.callback.emit(page);\n }\n}\n","<div>{{ page() + 1 }} / {{ max() }}</div>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-left-s-line\"\n [disabled]=\"page() === 0\"\n (callback)=\"gotoPage(page() - 1)\"\n/>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-right-s-line\"\n [disabled]=\"page() + 1 >= max()\"\n (callback)=\"gotoPage(page() + 1)\"\n/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MASa,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-paginate.mjs","sources":["../../../projects/ng-dsv/ds/paginate/component/paginate.component.ts","../../../projects/ng-dsv/ds/paginate/component/paginate.component.html","../../../projects/ng-dsv/ds/paginate/ng-vagabond-lab-ng-dsv-ds-paginate.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\n\n@Component({\n selector: 'dsv-paginate',\n imports: [DsvButtonComponent],\n templateUrl: './paginate.component.html',\n styleUrls: ['./paginate.component.scss'],\n})\nexport class DsvPaginateComponent {\n readonly page = input.required<number>();\n readonly max = input.required<number>();\n\n readonly callback = output<number>();\n\n gotoPage(page: number): void {\n this.callback.emit(page);\n }\n}\n","<div>{{ page() + 1 }} / {{ max() }}</div>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-left-s-line\"\n [disabled]=\"page() === 0\"\n (callback)=\"gotoPage(page() - 1)\"\n/>\n<dsv-button\n color=\"inherit\"\n icon=\"ri-arrow-right-s-line\"\n [disabled]=\"page() + 1 >= max()\"\n (callback)=\"gotoPage(page() + 1)\"\n/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MASa,oBAAoB,CAAA;IACpB,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAU;IAC/B,GAAG,GAAG,KAAK,CAAC,QAAQ;4EAAU;IAE9B,QAAQ,GAAG,MAAM,EAAU;AAEpC,IAAA,QAAQ,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;uGARS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTjC,+VAaA,EAAA,MAAA,EAAA,CAAA,kaAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDRc,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAInB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACI,cAAc,EAAA,OAAA,EACf,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,+VAAA,EAAA,MAAA,EAAA,CAAA,kaAAA,CAAA,EAAA;;;AELjC;;AAEG;;;;"}
|