@bizy/core 21.2.0 → 21.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"bizy-core.mjs","sources":["../../../../projects/core/src/lib/modules/accordion/accordion.component.ts","../../../../projects/core/src/lib/modules/accordion/accordion.html","../../../../projects/core/src/lib/modules/accordion/accordion.module.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player.types.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player-format-seconds.pipe.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player.component.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player.html","../../../../projects/core/src/lib/modules/audio-player/audio-player.module.ts","../../../../projects/core/src/lib/modules/audio-recorder/audio-recorder.component.ts","../../../../projects/core/src/lib/modules/audio-recorder/audio-recorder.html","../../../../projects/core/src/lib/modules/audio-recorder/audio-recorder.module.ts","../../../../projects/core/src/lib/modules/popup/popup.types.ts","../../../../projects/core/src/lib/modules/popup/popup-wrapper/popup-wrapper.component.ts","../../../../projects/core/src/lib/modules/popup/popup-wrapper/popup-wrapper.html","../../../../projects/core/src/lib/services/animation.service.ts","../../../../projects/core/src/lib/services/viewport.service.ts","../../../../projects/core/src/lib/services/keyboard.service.ts","../../../../projects/core/src/lib/services/export-to-csv.service.ts","../../../../projects/core/src/lib/services/router.service.ts","../../../../projects/core/src/lib/services/cache.service.ts","../../../../projects/core/src/lib/services/validator.service.ts","../../../../projects/core/src/lib/services/storage.service.ts","../../../../projects/core/src/lib/services/log.service.ts","../../../../projects/core/src/lib/services/copy-to-clipboard.service.ts","../../../../projects/core/src/lib/services/format-seconds.service.ts","../../../../projects/core/src/lib/services/device/uach-retrofill.ts","../../../../projects/core/src/lib/services/device/device.service.ts","../../../../projects/core/src/lib/services/services.module.ts","../../../../projects/core/src/lib/modules/popup/popup.service.ts","../../../../projects/core/src/lib/modules/popup/full-screen-popup-wrapper/full-screen-popup-wrapper.component.ts","../../../../projects/core/src/lib/modules/popup/full-screen-popup-wrapper/full-screen-popup-wrapper.html","../../../../projects/core/src/lib/modules/popup/popup.module.ts","../../../../projects/core/src/lib/modules/bar-line-chart/bar-line-chart-popup.component.ts","../../../../projects/core/src/lib/modules/bar-line-chart/bar-line-chart.component.ts","../../../../projects/core/src/lib/modules/bar-line-chart/bar-line-chart.module.ts","../../../../projects/core/src/lib/modules/breadcrumb/breadcrumb.component.ts","../../../../projects/core/src/lib/modules/breadcrumb/breadcrumb.html","../../../../projects/core/src/lib/modules/breadcrumb/breadcrumb.module.ts","../../../../projects/core/src/lib/modules/button/button.component.ts","../../../../projects/core/src/lib/modules/button/button.html","../../../../projects/core/src/lib/modules/button/button.module.ts","../../../../projects/core/src/lib/modules/calendar/calendar.types.ts","../../../../projects/core/src/lib/modules/calendar/calendar.formatter.ts","../../../../projects/core/src/lib/modules/calendar/calendar.component.ts","../../../../projects/core/src/lib/modules/calendar/calendar.html","../../../../projects/core/src/lib/modules/calendar/calendar.module.ts","../../../../projects/core/src/lib/modules/card/card.component.ts","../../../../projects/core/src/lib/modules/card/card.html","../../../../projects/core/src/lib/modules/card/card.module.ts","../../../../projects/core/src/lib/modules/checkbox/checkbox.component.ts","../../../../projects/core/src/lib/modules/checkbox/checkbox.html","../../../../projects/core/src/lib/modules/checkbox/checkbox.module.ts","../../../../projects/core/src/lib/modules/content/content.component.ts","../../../../projects/core/src/lib/modules/content/content.html","../../../../projects/core/src/lib/modules/content/content.module.ts","../../../../projects/core/src/lib/modules/input/input-option/input-option.component.ts","../../../../projects/core/src/lib/modules/input/input-option/input-option.html","../../../../projects/core/src/lib/directives/currency-format.directive.ts","../../../../projects/core/src/lib/modules/input/input.component.ts","../../../../projects/core/src/lib/modules/input/input.html","../../../../projects/core/src/lib/modules/date-picker/date-picker.component.ts","../../../../projects/core/src/lib/modules/date-picker/date-picker.html","../../../../projects/core/src/lib/modules/date-picker/date-picker.module.ts","../../../../projects/core/src/lib/modules/donut-chart/donut-chart-popup.component.ts","../../../../projects/core/src/lib/modules/donut-chart/donut-chart.component.ts","../../../../projects/core/src/lib/modules/donut-chart/donut-chart.module.ts","../../../../projects/core/src/lib/modules/file-uploader/file-uploader.service.ts","../../../../projects/core/src/lib/modules/file-uploader/file-uploader.component.ts","../../../../projects/core/src/lib/modules/file-uploader/file-uploader.module.ts","../../../../projects/core/src/lib/modules/filter/filter-section-range-option/filter-section-range-option.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section-range-option/filter-section-range-option.html","../../../../projects/core/src/lib/modules/filter/filter-section-checkbox-option/filter-section-checkbox-option.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section-checkbox-option/filter-section-checkbox-option.html","../../../../projects/core/src/lib/modules/filter/filter-section-search-option/filter-section-search-option.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section-search-option/filter-section-search-option.html","../../../../projects/core/src/lib/modules/filter/filter-section/filter-section.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section/filter-section.html","../../../../projects/core/src/lib/modules/filter/filter-sections/filter-sections.component.ts","../../../../projects/core/src/lib/modules/filter/filter-sections/filter-sections.html","../../../../projects/core/src/lib/modules/filter/filter.component.ts","../../../../projects/core/src/lib/modules/filter/filter.html","../../../../projects/core/src/lib/modules/filter/filter-content/filter-content.component.ts","../../../../projects/core/src/lib/modules/filter/filter-content/filter-content.html","../../../../projects/core/src/lib/modules/filter/pipes/filter.pipe.ts","../../../../projects/core/src/lib/modules/filter/pipes/range-filter.pipe.ts","../../../../projects/core/src/lib/modules/filter/filter.module.ts","../../../../projects/core/src/lib/modules/select/select-option/select-option.component.ts","../../../../projects/core/src/lib/modules/select/select-option/select-option.html","../../../../projects/core/src/lib/modules/select/select.component.ts","../../../../projects/core/src/lib/modules/select/select.html","../../../../projects/core/src/lib/modules/form/form.component.ts","../../../../projects/core/src/lib/modules/form/form.html","../../../../projects/core/src/lib/modules/form/form.module.ts","../../../../projects/core/src/lib/modules/gauge-chart/gauge-chart-popup.component.ts","../../../../projects/core/src/lib/modules/gauge-chart/gauge-chart.component.ts","../../../../projects/core/src/lib/modules/gauge-chart/gauge-chart.module.ts","../../../../projects/core/src/lib/modules/grid/grid.directive.ts","../../../../projects/core/src/lib/modules/grid/grid-row/grid-row.component.ts","../../../../projects/core/src/lib/modules/grid/grid-row/grid-row.html","../../../../projects/core/src/lib/modules/grid/grid.component.ts","../../../../projects/core/src/lib/modules/grid/grid.html","../../../../projects/core/src/lib/modules/grid/grid.module.ts","../../../../projects/core/src/lib/modules/heat-map-chart/heat-map-chart.component.ts","../../../../projects/core/src/lib/modules/heat-map-chart/heat-map-chart.module.ts","../../../../projects/core/src/lib/modules/input/input.module.ts","../../../../projects/core/src/lib/modules/list/list.component.ts","../../../../projects/core/src/lib/modules/list/list.html","../../../../projects/core/src/lib/modules/list/list.module.ts","../../../../projects/core/src/lib/modules/menu/menu-option/menu-option.component.ts","../../../../projects/core/src/lib/modules/menu/menu-option/menu-option.html","../../../../projects/core/src/lib/modules/menu/menu.component.ts","../../../../projects/core/src/lib/modules/menu/menu.html","../../../../projects/core/src/lib/modules/menu/menu-title/menu-title.component.ts","../../../../projects/core/src/lib/modules/menu/menu-title/menu-title.html","../../../../projects/core/src/lib/modules/menu/menu.module.ts","../../../../projects/core/src/lib/modules/menu-bar/menu-bar-option/menu-bar-option.component.ts","../../../../projects/core/src/lib/modules/menu-bar/menu-bar-option/menu-bar-option.html","../../../../projects/core/src/lib/modules/menu-bar/menu-bar.component.ts","../../../../projects/core/src/lib/modules/menu-bar/menu-bar.html","../../../../projects/core/src/lib/modules/menu-bar/menu-bar.module.ts","../../../../projects/core/src/lib/modules/pie-chart/pie-chart-popup.component.ts","../../../../projects/core/src/lib/modules/pie-chart/pie-chart.component.ts","../../../../projects/core/src/lib/modules/pie-chart/pie-chart.module.ts","../../../../projects/core/src/lib/modules/progress-bar/progress-bar.component.ts","../../../../projects/core/src/lib/modules/progress-bar/progress-bar.html","../../../../projects/core/src/lib/modules/progress-bar/progress-bar.module.ts","../../../../projects/core/src/lib/modules/radio/radio.component.ts","../../../../projects/core/src/lib/modules/radio/radio.html","../../../../projects/core/src/lib/modules/radio/radio.module.ts","../../../../projects/core/src/lib/modules/section/section.component.ts","../../../../projects/core/src/lib/modules/section/section.html","../../../../projects/core/src/lib/modules/section/section-start/section-start.component.ts","../../../../projects/core/src/lib/modules/section/section-start/section-start.html","../../../../projects/core/src/lib/modules/section/section-center/section-center.component.ts","../../../../projects/core/src/lib/modules/section/section-center/section-center.html","../../../../projects/core/src/lib/modules/section/section-end/section-end.component.ts","../../../../projects/core/src/lib/modules/section/section-end/section-end.html","../../../../projects/core/src/lib/modules/section/section.module.ts","../../../../projects/core/src/lib/modules/select/select.module.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-option/sidebar-option.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-option/sidebar-option.html","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option/sidebar-floating-option.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option/sidebar-floating-option.html","../../../../projects/core/src/lib/modules/sidebar/sidebar.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar.html","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option-title/sidebar-floating-option-title.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option-title/sidebar-floating-option-title.html","../../../../projects/core/src/lib/modules/sidebar/sidebar.module.ts","../../../../projects/core/src/lib/modules/skeleton/skeleton.types.ts","../../../../projects/core/src/lib/modules/skeleton/skeleton.component.ts","../../../../projects/core/src/lib/modules/skeleton/skeleton.html","../../../../projects/core/src/lib/modules/skeleton/skeleton.module.ts","../../../../projects/core/src/lib/modules/slider/slider.component.ts","../../../../projects/core/src/lib/modules/slider/slider.html","../../../../projects/core/src/lib/modules/slider/slider.module.ts","../../../../projects/core/src/lib/modules/table/table-scrolling/table-scrolling.directive.ts","../../../../projects/core/src/lib/modules/table/directives/table-column-fixed.directive.ts","../../../../projects/core/src/lib/modules/table/table-column/table-column.component.ts","../../../../projects/core/src/lib/modules/table/table-column/table-column.html","../../../../projects/core/src/lib/modules/table/table-header/table-header.component.ts","../../../../projects/core/src/lib/modules/table/table-header/table-header.html","../../../../projects/core/src/lib/modules/table/table-footer/table-footer.component.ts","../../../../projects/core/src/lib/modules/table/table-footer/table-footer.html","../../../../projects/core/src/lib/modules/table/table-row/table-row.component.ts","../../../../projects/core/src/lib/modules/table/table-row/table-row.html","../../../../projects/core/src/lib/modules/table/table-scrolling/table-scrolling.component.ts","../../../../projects/core/src/lib/modules/table/table-scrolling/table-scrolling.html","../../../../projects/core/src/lib/modules/table/table.component.ts","../../../../projects/core/src/lib/modules/table/table.html","../../../../projects/core/src/lib/modules/table/table-column-arrows/table-column-arrows.component.ts","../../../../projects/core/src/lib/modules/table/table-column-arrows/table-column-arrows.html","../../../../projects/core/src/lib/modules/table/table-row-expand-content/table-row-expand-content.component.ts","../../../../projects/core/src/lib/modules/table/table-row-expand-content/table-row-expand-content.html","../../../../projects/core/src/lib/modules/table/table.module.ts","../../../../projects/core/src/lib/modules/tabs/tab/tab.component.ts","../../../../projects/core/src/lib/modules/tabs/tab/tab.html","../../../../projects/core/src/lib/modules/tabs/tabs.component.ts","../../../../projects/core/src/lib/modules/tabs/tabs.html","../../../../projects/core/src/lib/modules/tabs/tabs.module.ts","../../../../projects/core/src/lib/modules/tag/tag.types.ts","../../../../projects/core/src/lib/modules/tag/tag.component.ts","../../../../projects/core/src/lib/modules/tag/tag.html","../../../../projects/core/src/lib/modules/tag/tag.module.ts","../../../../projects/core/src/lib/modules/timeline/timeline.component.ts","../../../../projects/core/src/lib/modules/timeline/timeline.html","../../../../projects/core/src/lib/modules/timeline/timeline-event/timeline-event.component.ts","../../../../projects/core/src/lib/modules/timeline/timeline-event/timeline-event.html","../../../../projects/core/src/lib/modules/timeline/timeline.module.ts","../../../../projects/core/src/lib/modules/toast/toast.service.ts","../../../../projects/core/src/lib/modules/toast/toast-wrapper/toast-wrapper.component.ts","../../../../projects/core/src/lib/modules/toast/toast-wrapper/toast-wrapper.html","../../../../projects/core/src/lib/modules/toast/toast.module.ts","../../../../projects/core/src/lib/modules/toggle/toggle.component.ts","../../../../projects/core/src/lib/modules/toggle/toggle.html","../../../../projects/core/src/lib/modules/toggle/toggle.module.ts","../../../../projects/core/src/lib/modules/toolbar/toolbar.component.ts","../../../../projects/core/src/lib/modules/toolbar/toolbar.html","../../../../projects/core/src/lib/modules/toolbar/toolbar.module.ts","../../../../projects/core/src/lib/modules/translate/translate.service.ts","../../../../projects/core/src/lib/modules/translate/translate.pipe.ts","../../../../projects/core/src/lib/modules/translate/translate.module.ts","../../../../projects/core/src/lib/pipes/unique.pipe.ts","../../../../projects/core/src/lib/pipes/round.pipe.ts","../../../../projects/core/src/lib/pipes/extractNumbers.pipe.ts","../../../../projects/core/src/lib/pipes/repeat.pipe.ts","../../../../projects/core/src/lib/pipes/set-to-array.pipe.ts","../../../../projects/core/src/lib/pipes/enum-to-array.pipe.ts","../../../../projects/core/src/lib/pipes/order-by.pipe.ts","../../../../projects/core/src/lib/pipes/reduce.pipe.ts","../../../../projects/core/src/lib/pipes/safe.pipe.ts","../../../../projects/core/src/lib/pipes/average.pipe.ts","../../../../projects/core/src/lib/pipes/search/search.model.ts","../../../../projects/core/src/lib/pipes/search/search.pipe.ts","../../../../projects/core/src/lib/pipes/format-seconds.pipe.ts","../../../../projects/core/src/lib/pipes/pipes.module.ts","../../../../projects/core/src/lib/directives/reload.directive.ts","../../../../projects/core/src/lib/directives/copy-to-clipboard.directive.ts","../../../../projects/core/src/lib/directives/loading.directive.ts","../../../../projects/core/src/lib/directives/long-press.directive.ts","../../../../projects/core/src/lib/directives/only-numbers.directive.ts","../../../../projects/core/src/lib/directives/only-phone-digits.directive.ts","../../../../projects/core/src/lib/directives/text-ellipsis.directive.ts","../../../../projects/core/src/lib/directives/tooltip.directive.ts","../../../../projects/core/src/lib/directives/track-by-id.directive.ts","../../../../projects/core/src/lib/directives/auto-focus.directive.ts","../../../../projects/core/src/lib/directives/directives.module.ts","../../../../projects/core/src/bizy-core.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, inject, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'bizy-accordion',\n templateUrl: './accordion.html',\n styleUrls: ['./accordion.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyAccordionComponent {\n readonly #ref = inject(ChangeDetectorRef);\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-accordion-${Math.random()}`;\n @Input() customClass: string;\n @Input() disabled: boolean = false;\n @Input() opened: boolean = false;\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.openedChange.emit(!this.opened);\n this.onSelect.emit(event);\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n [id]=\"id\"\n [ngClass]=\"{'bizy-accordion--disabled': disabled}\"\n class=\"bizy-accordion {{customClass}}\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <span class=\"bizy-accordion__content\">\n <ng-content></ng-content>\n </span>\n\n <svg \n class=\"bizy-accordion__arrow\" \n [ngClass]=\"{'bizy-accordion__arrow--opened': opened}\"\n viewBox=\"0 0 96 96\" \n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M81.8457,25.3876a6.0239,6.0239,0,0,0-8.45.7676L48,56.6257l-25.396-30.47a5.999,5.999,0,1,0-9.2114,7.6879L43.3943,69.8452a5.9969,5.9969,0,0,0,9.2114,0L82.6074,33.8431A6.0076,6.0076,0,0,0,81.8457,25.3876Z\"/>\n </svg>\n\n</button>\n\n<span class=\"bizy-accordion__options\" [ngClass]=\"{'bizy-accordion__options--opened': opened}\">\n\n <ng-content select=\"[accordion-option]\"></ng-content>\n\n</span>\n","import { NgModule } from '@angular/core';\nimport { BizyAccordionComponent } from './accordion.component';\n\nconst COMPONENTS: Array<any> = [\n BizyAccordionComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyAccordionModule {}\n","export enum MIME_TYPE {\n OGG = 'audio/ogg',\n MPEG = 'audio/mpeg',\n WAV = 'audio/wav',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyAudioPlayerFormatSeconds',\n})\nexport class BizyAudioPlayerFormatSecondsPipe implements PipeTransform {\n transform(seconds: number): string {\n if (!seconds) {\n return '00:00';\n }\n\n const regex = /^-?\\d+(\\.\\d+)?$/;\n const isNumber = regex.test(String(seconds).toLowerCase());\n if (!isNumber || seconds <= 0) {\n return '00:00';\n }\n\n let _seconds = Number(seconds);\n const SECONDS_IN_HOUR = 3600;\n const SECONDS_IN_MINUTE = 60;\n\n const hours = Math.floor(_seconds / SECONDS_IN_HOUR);\n _seconds %= SECONDS_IN_HOUR;\n const minutes = Math.floor(_seconds / SECONDS_IN_MINUTE);\n _seconds %= SECONDS_IN_MINUTE;\n\n const parts: Array<string> = [];\n parts.push(`${hours && hours < 10 ? '0' + hours + ':' : hours ? hours + ':' : ''}${minutes < 10 ? '0' + minutes : minutes}:${_seconds < 10 ? '0' + Math.trunc(_seconds) : Math.trunc(_seconds)}`);\n return parts.join(' ');\n }\n}\n","import { ChangeDetectorRef, ElementRef, inject, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n Renderer2\n} from '@angular/core';\nimport { AnimationItem } from 'lottie-web';\nimport { debounceTime, distinctUntilChanged, Subject, Subscription } from 'rxjs';\nimport playAnimation from '../../assets/animations/play.json';\nimport muteAnimation from '../../assets/animations/mute.json';\nimport { MIME_TYPE } from './audio-player.types';\nimport { BizyAudioPlayerFormatSecondsPipe } from './audio-player-format-seconds.pipe';\n\nconst DEFAULT_DOWNLOAD = {\n show: true,\n name: 'Bizy'\n};\n\nconst DEFAULT_PLAYBACK_RATE = {\n show: true,\n default: 1\n};\n@Component({\n selector: 'bizy-audio-player',\n templateUrl: './audio-player.html',\n styleUrls: ['./audio-player.css'],\n imports: [BizyAudioPlayerFormatSecondsPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BizyAudioPlayerComponent {\n readonly #document = inject(DOCUMENT);\n readonly #renderer = inject(Renderer2);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #elementRef = inject(ElementRef);\n\n @ViewChild('bizyAudioPlayerPlayButtonRef') playButtonRef: ElementRef<HTMLButtonElement>;\n @ViewChild('bizyAudioPlayerAudioRef') audioRef: ElementRef<HTMLAudioElement>;\n @ViewChild('bizyAudioPlayerSeekSliderRef') seekSliderRef: ElementRef<HTMLInputElement>;\n @ViewChild('bizyAudioPlayerMuteButtonRef') muteButtonRef: ElementRef<HTMLButtonElement>;\n\n @Output() onPlaybackRate = new EventEmitter<string>();\n @Output() onDownload = new EventEmitter<void>();\n @Output() canPlay = new EventEmitter<Event>();\n @Output() onPause = new EventEmitter<Event>();\n @Output() onEnded = new EventEmitter<Event>();\n @Output() onStalled = new EventEmitter<Event>();\n @Output() onAbort = new EventEmitter<MediaError>();\n @Output() onError = new EventEmitter<MediaError>();\n @Output() onEmptied = new EventEmitter<Event>();\n @Output() canPlayThrough = new EventEmitter<Event>();\n @Output() durationChange = new EventEmitter<Event>();\n @Output() onLoadedData = new EventEmitter<Event>();\n @Output() onLoadedMetadata = new EventEmitter<Event>();\n @Output() onLoadStart = new EventEmitter<Event>();\n @Output() onPlay = new EventEmitter<Event>();\n @Output() onPlaying = new EventEmitter<Event>();\n @Output() onProgress = new EventEmitter<Event>();\n @Output() onSeeked = new EventEmitter<Event>();\n @Output() onSeeking = new EventEmitter<Event>();\n @Output() onSuspend = new EventEmitter<Event>();\n @Output() onTimeUpdate = new EventEmitter<Event>();\n @Output() onVolumeChange = new EventEmitter<Event>();\n @Output() onWaiting = new EventEmitter<Event>();\n\n @Input() enableLogs: boolean = false;\n @Input() disabled: boolean = false;\n @Input() autoplay: boolean = false;\n @Input() set download(download: {show?: boolean, url?: string, name?: string}) {\n if (!download) {\n return;\n }\n\n this._showDownload = download.show ?? DEFAULT_DOWNLOAD.show;\n this._downloadURL = download.url ?? null;\n this._downloadFileName = download.name ?? DEFAULT_DOWNLOAD.name;\n };\n\n @Input() set playbackRate(playbackRate: {show?: boolean, default?: number}) {\n if (!playbackRate) {\n return;\n }\n\n this._showPlaybackRate = playbackRate.show ?? DEFAULT_PLAYBACK_RATE.show;\n this._playbackRate = playbackRate.default ?? DEFAULT_PLAYBACK_RATE.default;\n };\n\n @Input() set src(src: string) {\n if (!src) {\n this.#removeListeners();\n this._currentTime = 0;\n this._duration = 0;\n this._paused = true;\n this.#audio = null;\n this.#ref.detectChanges();\n return;\n }\n\n this._src = src;\n\n if (this.#audio) {\n this.#audio.load();\n }\n }\n\n #subscription = new Subscription();\n #playAnimation: AnimationItem | null = null;\n #muteAnimation: AnimationItem | null = null;\n #audio: HTMLAudioElement | null = null;\n #seekSlider: HTMLInputElement | null = null;\n #playbackRate$ = new Subject<string>();\n #currentTime$ = new Subject<number>();\n #abortAbortController = new AbortController();\n #canPlayAbortController = new AbortController();\n #canPlayThroughAbortController = new AbortController();\n #pauseAbortController = new AbortController();\n #endedAbortController = new AbortController();\n #emptiedAbortController = new AbortController();\n #errorAbortController = new AbortController();\n #stalledAbortController = new AbortController();\n #durationChangeAbortController = new AbortController();\n #loadedDataAbortController = new AbortController();\n #loadedMetadataAbortController = new AbortController();\n #loadStartAbortController = new AbortController();\n #playAbortController = new AbortController();\n #playingAbortController = new AbortController();\n #progressAbortController = new AbortController();\n #rateChangeAbortController = new AbortController();\n #seekedAbortController = new AbortController();\n #seekingAbortController = new AbortController();\n #suspendAbortController = new AbortController();\n #timeUpdateAbortController = new AbortController();\n #volumeChangeAbortController = new AbortController();\n #waitingAbortController = new AbortController();\n #seekSliderAbortController = new AbortController();\n\n _duration: number = 0;\n _currentTime: number = 0;\n _paused: boolean = true;\n _muted: boolean = false;\n _src: string | null = null;\n _showDownload = DEFAULT_DOWNLOAD.show;\n _downloadURL: string | null = null;\n _downloadFileName: string | null = DEFAULT_DOWNLOAD.name;\n _showPlaybackRate: boolean = DEFAULT_PLAYBACK_RATE.show;\n _playbackRate: number = DEFAULT_PLAYBACK_RATE.default;\n\n readonly MIME_TYPE = MIME_TYPE;\n readonly BACKWARD_SECONDS = -15;\n readonly FORWARD_SECONDS = 15;\n\n\n get duration(): number {\n return this._duration;\n }\n\n get currentTime(): number {\n return this._currentTime;\n }\n\n get paused(): boolean {\n return this._paused;\n }\n\n get muted(): boolean {\n return this._muted;\n }\n\n ngAfterViewInit() {\n this.#subscription = new Subscription();\n this.#subscription.add(this.#playbackRate$.pipe(\n debounceTime(300),\n distinctUntilChanged()\n ).subscribe(value => {\n this.onPlaybackRate.emit(value);\n }));\n\n this.#subscription.add(this.#currentTime$.pipe(\n debounceTime(100),\n ).subscribe(value => {\n this.seekTo(value);\n }));\n\n import('lottie-web').then(module => {\n const lottieWeb = module.default;\n this.#playAnimation = lottieWeb.loadAnimation({\n container: this.playButtonRef.nativeElement,\n animationData: playAnimation,\n renderer: 'svg',\n loop: false,\n autoplay: false,\n name: 'Bizy audio player play Animation'\n });\n\n this.#playAnimation.setSpeed(2.5);\n\n this.#playAnimation.addEventListener('DOMLoaded', this.#setPlayButtonColor);\n\n this.#muteAnimation = lottieWeb.loadAnimation({\n container: this.muteButtonRef.nativeElement,\n animationData: muteAnimation,\n renderer: 'svg',\n loop: false,\n autoplay: false,\n name: 'Bizy audio player mute Animation'\n });\n\n this.#muteAnimation.setSpeed(2);\n\n this.#muteAnimation.addEventListener('DOMLoaded', this.#setMuteButtonColor);\n\n this.#audio = this.audioRef.nativeElement;\n this.#seekSlider = this.seekSliderRef.nativeElement;\n\n if (this.#audio) {\n this.#addEventListeners();\n\n this.#audio.playbackRate = this._playbackRate;\n this.#audio.load();\n }\n\n if ('mediaSession' in navigator) {\n navigator.mediaSession.setActionHandler('play', () => {\n this.play();\n });\n\n navigator.mediaSession.setActionHandler('pause', () => {\n this.pause();\n });\n\n navigator.mediaSession.setActionHandler('seekbackward', details => {\n this.backward(details.seekOffset);\n });\n\n navigator.mediaSession.setActionHandler('seekforward', details => {\n this.forward(details.seekOffset);\n });\n\n navigator.mediaSession.setActionHandler('seekto', details => {\n this.seekTo(details.seekTime);\n });\n\n navigator.mediaSession.setActionHandler('stop', () => {\n this.stop();\n });\n }\n });\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n togglePlay = async () => {\n if (this.disabled) {\n return;\n }\n\n if (this._paused) {\n await this.play();\n } else {\n await this.pause();\n }\n }\n\n toggleMute = () => {\n if (this.disabled) {\n return;\n }\n\n if (this._muted) {\n this.unmute();\n } else {\n this.mute();\n }\n }\n\n play = async (): Promise<void> => {\n try {\n if (this.disabled || !this._src || !this._paused) {\n return Promise.resolve();\n }\n\n this._paused = false;\n this.#ref.detectChanges();\n\n if (!this.#audio) {\n this._paused = true;\n this.#ref.detectChanges();\n return Promise.resolve();\n }\n\n if (this.#playAnimation) {\n this.#playAnimation.playSegments([0, 27], true);\n this.#ref.detectChanges();\n }\n\n await this.#audio.play();\n } catch (error) {\n this._paused = true;\n return Promise.reject();\n }\n }\n\n pause = async (): Promise<void> => {\n try {\n if (this.disabled || !this._src || this._paused) {\n return Promise.resolve();\n }\n\n this._paused = true;\n this.#ref.detectChanges();\n\n if (!this.#audio) {\n this._paused = false;\n this.#ref.detectChanges();\n return Promise.resolve();\n }\n\n if (this.#playAnimation) {\n this.#playAnimation.playSegments([27, 0], true);\n this.#ref.detectChanges();\n }\n\n await this.#audio.pause();\n } catch (error) {\n this._paused = false;\n return Promise.reject();\n }\n }\n\n mute = (): void => {\n if (this.disabled || !this.#audio || this.#audio.muted) {\n return;\n }\n\n this.#audio.muted = true;\n\n if (this.#muteAnimation) {\n this.#muteAnimation.playSegments([0, 25], true);\n }\n\n this.#ref.detectChanges();\n }\n\n unmute = (): void => {\n if (this.disabled || !this.#audio || !this.#audio.muted) {\n return;\n }\n\n this.#audio.muted = false;\n\n if (this.#muteAnimation) {\n this.#muteAnimation.playSegments([25, 0], true);\n }\n\n this.#ref.detectChanges();\n }\n\n stop = async (): Promise<void> => {\n if (this.disabled || !this._src) {\n return Promise.resolve();\n }\n\n await this.pause();\n\n this.seekTo(0);\n\n if (this.#seekSlider) {\n this.#seekSlider.value = '0';\n this.#elementRef.nativeElement.style.setProperty('--bizy-audio-player-seek-before-width', '0%');\n }\n }\n\n backward = (seconds: number) => {\n if (this.disabled || !this.#audio) {\n return;\n }\n \n this.seekTo(this.#audio.currentTime - (seconds || this.FORWARD_SECONDS))\n }\n\n forward = (seconds: number) => {\n if (this.disabled || !this.#audio) {\n return;\n }\n \n this.seekTo(this.#audio.currentTime + (seconds || this.FORWARD_SECONDS))\n }\n\n seekTo(seconds: number) {\n if (this.disabled || !this.#audio || typeof seconds === 'undefined' || seconds === null) {\n return;\n }\n\n if (!this.#audio.duration) {\n return;\n }\n\n if (seconds > this.#audio.duration) {\n seconds = this.#audio.duration\n }\n\n if (seconds < 0) {\n seconds = 0;\n }\n\n if (this.#audio.fastSeek) {\n this.#audio.fastSeek(seconds);\n } else {\n this.#audio.currentTime = seconds;\n }\n\n this.#ref.detectChanges();\n }\n\n setPlaybackRate() {\n if (this.disabled || !this.#audio) {\n return;\n }\n\n switch (this.#audio.playbackRate) {\n case 1:\n this.#audio.playbackRate = 1.5;\n break;\n case 1.5:\n this.#audio.playbackRate = 2;\n break;\n case 2:\n this.#audio.playbackRate = 1;\n break;\n default:\n this.#audio.playbackRate = DEFAULT_PLAYBACK_RATE.default;\n }\n }\n\n downloadAudio = (): void => {\n if (this.disabled || !this._showDownload) {\n return;\n }\n\n const downloadButton = this.#renderer.createElement('a');\n this.#renderer.setAttribute(downloadButton, 'download', this._downloadFileName);\n this.#renderer.setProperty(downloadButton, 'href', this._downloadURL ?? this._src);\n this.#renderer.appendChild(this.#document.body, downloadButton);\n downloadButton.click();\n this.#renderer.removeChild(this.#document.body, downloadButton);\n this.onDownload.emit();\n }\n\n #addEventListeners = () => {\n if (!this.#audio || !this.#seekSlider) {\n return;\n }\n\n this.#abortAbortController = new AbortController();\n this.#canPlayAbortController = new AbortController();\n this.#canPlayThroughAbortController = new AbortController();\n this.#durationChangeAbortController = new AbortController();\n this.#emptiedAbortController = new AbortController();\n this.#endedAbortController = new AbortController();\n this.#errorAbortController = new AbortController();\n this.#loadedDataAbortController = new AbortController();\n this.#loadedMetadataAbortController = new AbortController();\n this.#loadStartAbortController = new AbortController();\n this.#pauseAbortController = new AbortController();\n this.#playAbortController = new AbortController();\n this.#playingAbortController = new AbortController();\n this.#progressAbortController = new AbortController();\n this.#rateChangeAbortController = new AbortController();\n this.#seekedAbortController = new AbortController();\n this.#seekingAbortController = new AbortController();\n this.#stalledAbortController = new AbortController();\n this.#suspendAbortController = new AbortController();\n this.#timeUpdateAbortController = new AbortController();\n this.#volumeChangeAbortController = new AbortController();\n this.#waitingAbortController = new AbortController();\n this.#seekSliderAbortController = new AbortController();\n\n this.#audio.addEventListener('abort', (event: any) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - abort', event);\n }\n\n this.onAbort.emit(event);\n }, {\n signal: this.#abortAbortController.signal\n });\n\n this.#audio.addEventListener('canplay', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - canplay', event);\n }\n\n if (this.autoplay) {\n this.play();\n }\n\n this.canPlay.emit(event);\n }, {\n once: true,\n signal: this.#canPlayAbortController.signal\n });\n\n this.#audio.addEventListener('canplaythrough', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - canplaythrough', event);\n }\n\n this.canPlayThrough.emit(event);\n }, {\n signal: this.#canPlayThroughAbortController.signal\n });\n\n this.#audio.addEventListener('durationchange', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - durationchange', event);\n }\n\n this.durationChange.emit(event);\n }, {\n signal: this.#durationChangeAbortController.signal\n });\n\n this.#audio.addEventListener('emptied', (event: any) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - emptied', event);\n }\n\n this.onEmptied.emit(event);\n }, {\n signal: this.#emptiedAbortController.signal\n });\n\n this.#audio.addEventListener('ended', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - ended', event);\n }\n\n this.stop();\n this.onEnded.emit(event);\n }, {\n signal: this.#endedAbortController.signal\n });\n\n this.#audio.addEventListener('error', (event: any) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - error', event);\n }\n\n this.onError.emit(event);\n }, {\n signal: this.#errorAbortController.signal\n });\n\n this.#audio.addEventListener('loadeddata', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - loadeddata', event);\n }\n\n this._duration = this.#audio!.duration;\n this.#ref.detectChanges();\n this.onLoadedData.emit(event);\n }, {\n signal: this.#loadedDataAbortController.signal\n });\n\n this.#audio.addEventListener('loadedmetadata', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - loadedmetadata', event);\n }\n\n this.onLoadedMetadata.emit(event);\n }, {\n signal: this.#loadedMetadataAbortController.signal\n });\n\n this.#audio.addEventListener('loadstart', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - loadstart', event);\n }\n\n this.onLoadStart.emit(event);\n }, {\n signal: this.#loadStartAbortController.signal\n });\n\n this.#audio.addEventListener('pause', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - pause', event);\n }\n\n this.onPause.emit(event);\n }, {\n signal: this.#pauseAbortController.signal\n });\n\n this.#audio.addEventListener('play', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - play', event);\n }\n\n this.onPlay.emit(event);\n }, {\n signal: this.#playAbortController.signal\n });\n\n this.#audio.addEventListener('playing', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - playing', event);\n }\n\n this.onPlaying.emit(event);\n }, {\n signal: this.#playingAbortController.signal\n });\n\n this.#audio.addEventListener('progress', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - progress', event);\n }\n\n const bufferedAmount = Math.floor(this.#audio!.buffered.end(this.#audio!.buffered.length - 1));\n this.#elementRef.nativeElement.style.setProperty('--bizy-audio-player-buffered-width', Number(this.#seekSlider!.max) ? `${(bufferedAmount / Number(this.#seekSlider!.max)) * 100}%` : '0%');\n this.#ref.detectChanges();\n\n this.onProgress.emit(event);\n }, {\n signal: this.#progressAbortController.signal\n });\n\n this.#audio.addEventListener('ratechange', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - ratechange', event);\n }\n\n this._playbackRate = this.#audio.playbackRate;\n this.#playbackRate$.next(String(this.#audio.playbackRate));\n }, {\n signal: this.#rateChangeAbortController.signal\n });\n\n this.#audio.addEventListener('seeked', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - seeked', event);\n }\n\n this.onSeeked.emit(event);\n }, {\n signal: this.#seekedAbortController.signal\n });\n\n this.#audio.addEventListener('seeking', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - seeking', event);\n }\n\n this.onSeeking.emit(event);\n }, {\n signal: this.#seekingAbortController.signal\n });\n\n this.#audio.addEventListener('stalled', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - stalled', event);\n }\n\n this.onStalled.emit(event);\n }, {\n signal: this.#stalledAbortController.signal\n });\n\n this.#audio.addEventListener('suspend', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - suspend', event);\n }\n\n this.onSuspend.emit(event);\n }, {\n signal: this.#suspendAbortController.signal\n });\n\n this.#audio.addEventListener('timeupdate', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - timeupdate', event);\n }\n\n this._currentTime = this.#audio!.currentTime;\n this.#elementRef.nativeElement.style.setProperty('--bizy-audio-player-seek-before-width', this._duration ? `${(this._currentTime / this._duration) * 100}%` : '0%');\n this.#ref.detectChanges();\n this.onTimeUpdate.emit(event);\n }, {\n signal: this.#timeUpdateAbortController.signal\n });\n\n this.#audio.addEventListener('volumechange', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - volumechange', event);\n }\n\n this._muted = this.#audio!.muted;\n\n this.onVolumeChange.emit(event);\n }, {\n signal: this.#volumeChangeAbortController.signal\n });\n\n this.#audio.addEventListener('waiting', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - waiting', event);\n }\n\n this.onWaiting.emit(event);\n }, {\n signal: this.#waitingAbortController.signal\n });\n\n this.#seekSlider.addEventListener('input', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - seeked', event);\n }\n\n this.#currentTime$.next(Number(this.#seekSlider!.value));\n }, {\n signal: this.#seekSliderAbortController.signal\n });\n }\n\n #setPlayButtonColor = () => {\n const playButtonColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-player-play-button-color')!;\n const svg = this.playButtonRef.nativeElement;\n if (svg) {\n svg.querySelectorAll('path').forEach((path: SVGPathElement) => {\n this.#renderer.setAttribute(path, 'fill', playButtonColor);\n this.#renderer.setAttribute(path, 'stroke', playButtonColor);\n });\n }\n }\n\n #setMuteButtonColor = () => {\n const playButtonColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-player-mute-button-color')!;\n const svg = this.muteButtonRef.nativeElement;\n if (svg) {\n svg.querySelectorAll('path').forEach((path: SVGPathElement) => {\n this.#renderer.setAttribute(path, 'fill', playButtonColor);\n this.#renderer.setAttribute(path, 'stroke', playButtonColor);\n });\n }\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n #removeListeners = () => {\n this.#subscription.unsubscribe();\n this.#abortAbortController.abort();\n this.#canPlayAbortController.abort();\n this.#canPlayThroughAbortController.abort();\n this.#durationChangeAbortController.abort();\n this.#emptiedAbortController.abort();\n this.#endedAbortController.abort();\n this.#errorAbortController.abort();\n this.#loadedDataAbortController.abort();\n this.#loadedMetadataAbortController.abort();\n this.#loadStartAbortController.abort();\n this.#pauseAbortController.abort();\n this.#playAbortController.abort();\n this.#playingAbortController.abort();\n this.#progressAbortController.abort();\n this.#rateChangeAbortController.abort();\n this.#seekedAbortController.abort();\n this.#seekingAbortController.abort();\n this.#stalledAbortController.abort();\n this.#suspendAbortController.abort();\n this.#timeUpdateAbortController.abort();\n this.#volumeChangeAbortController.abort();\n this.#waitingAbortController.abort();\n this.#playAnimation?.removeEventListener('DOMLoaded', this.#setPlayButtonColor);\n this.#muteAnimation?.removeEventListener('DOMLoaded', this.#setMuteButtonColor);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#removeListeners();\n }\n}\n","<button \n type=\"button\"\n #bizyAudioPlayerPlayButtonRef\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__play-button\"\n (click)=\"togglePlay()\"\n (keyup.enter)=\"togglePlay()\">\n</button>\n\n<audio #bizyAudioPlayerAudioRef preload=\"metadata\">\n <source [src]=\"_src\" [type]=\"MIME_TYPE.WAV\">\n <source [src]=\"_src\" [type]=\"MIME_TYPE.OGG\">\n <source [src]=\"_src\" [type]=\"MIME_TYPE.MPEG\">\n</audio>\n\n<h6 [class.bizy-audio-player--disabled]=\"disabled\">{{_currentTime | bizyAudioPlayerFormatSeconds}}</h6>\n<input \n #bizyAudioPlayerSeekSliderRef\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__slider\"\n type=\"range\"\n [max]=\"_duration\"\n [value]=\"_currentTime\">\n<h6 [class.bizy-audio-player--disabled]=\"disabled\">{{_duration | bizyAudioPlayerFormatSeconds}}</h6>\n\n<button \n type=\"button\"\n #bizyAudioPlayerMuteButtonRef\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__mute-button\"\n (click)=\"toggleMute()\"\n (keyup.enter)=\"toggleMute()\">\n</button>\n\n@if (_showPlaybackRate) {\n <button \n type=\"button\"\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__playback-rate-button\"\n (click)=\"setPlaybackRate()\"\n (keyup.enter)=\"setPlaybackRate()\">\n <h6 class=\"bizy-audio-player__playback-rate-button__text\">{{_playbackRate}}x</h6>\n </button>\n}\n\n@if (_showDownload) {\n <button \n type=\"button\"\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__download-button\"\n (click)=\"downloadAudio()\"\n (keyup.enter)=\"downloadAudio()\">\n <svg \n class=\"bizy-audio-player__download-button__icon\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/><polyline points=\"7 10 12 15 17 10\"/><line x1=\"12\" x2=\"12\" y1=\"15\" y2=\"3\"/>\n </svg>\n </button>\n}\n","import { NgModule } from '@angular/core';\nimport { BizyAudioPlayerComponent } from './audio-player.component';\n\nconst COMPONENTS: Array<any> = [BizyAudioPlayerComponent];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyAudioPlayerModule {}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n OnDestroy,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n Output,\n EventEmitter,\n Input,\n AfterViewInit\n} from '@angular/core';\n\n@Component({\n selector: 'bizy-audio-recorder',\n templateUrl: './audio-recorder.html',\n styleUrls: ['./audio-recorder.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyAudioRecorderComponent implements AfterViewInit, OnDestroy {\n readonly #ref = inject(ChangeDetectorRef);\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n\n @ViewChild('waveformCanvas') waveformCanvas!: ElementRef<HTMLCanvasElement>;\n @ViewChild('bizyRecordButton') recordButton!: ElementRef<HTMLButtonElement>;\n @Input() disabled: boolean = false;\n @Input() duration: number | null = 60 * 1000;\n @Output() onStart = new EventEmitter<void>();\n @Output() onStop = new EventEmitter<void>();\n @Output() onError = new EventEmitter<Error>();\n @Output() onRecording = new EventEmitter<string>();\n\n _isRecording = false;\n\n #audioUrl: string | null = null;\n #mediaRecorder: MediaRecorder | null = null;\n #audioChunks: Blob[] = [];\n #audioContext: AudioContext | null = null;\n #analyser: AnalyserNode | null = null;\n #dataArray: Uint8Array | null = null;\n #animationId: number | null = null;\n\n #startTime: number = 0;\n #timerInterval: any = null;\n #autoStopTimeout: any = null;\n\n circumference = 0;\n strokeDashoffset = 0;\n circleRadius = 0;\n circleCenter = 0;\n svgViewBox = '';\n canvasSize = 0;\n strokeColor: string = '';\n\n get isRecording(): boolean {\n return this._isRecording;\n }\n\n ngAfterViewInit() {\n const rect = this.recordButton.nativeElement.getBoundingClientRect();\n\n const width = rect.width;\n const height = rect.height;\n\n const svgSize = Math.max(width, height) + 20;\n this.circleRadius = (svgSize / 2) - 10;\n this.circleCenter = svgSize / 2;\n this.svgViewBox = `0 0 ${svgSize} ${svgSize}`;\n this.circumference = 2 * Math.PI * this.circleRadius;\n this.canvasSize = Math.min(width, height) * 0.8;\n }\n\n async startRecording() {\n if (this.disabled || this._isRecording) {\n return;\n }\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n\n this.#audioChunks = [];\n this.#audioUrl = null;\n this.#startTime = Date.now();\n this.strokeDashoffset = 0;\n\n this.strokeColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-recorder-record-button-progress-color')!;\n\n let mimeType = 'audio/webm';\n\n const supportedTypes = [\n 'audio/ogg',\n 'audio/wav',\n 'audio/mpeg',\n 'audio/webm;codecs=opus',\n 'audio/webm',\n 'audio/ogg;codecs=opus',\n 'audio/mp4'\n ];\n\n for (const type of supportedTypes) {\n if (MediaRecorder.isTypeSupported(type)) {\n mimeType = type;\n break;\n }\n }\n\n this.#mediaRecorder = new MediaRecorder(stream, { mimeType });\n this.#mediaRecorder.ondataavailable = event => {\n this.#audioChunks.push(event.data);\n };\n\n this.#mediaRecorder.onstop = () => {\n const audioBlob = new Blob(this.#audioChunks, { type: mimeType });\n this.#audioUrl = URL.createObjectURL(audioBlob);\n this.#cleanup();\n this.onStop.emit();\n this.onRecording.emit(this.#audioUrl);\n };\n\n this._isRecording = true;\n this.#ref.detectChanges();\n\n if (this.duration) {\n if (this.#mediaRecorder) {\n this.#mediaRecorder.start();\n this.#setupAudioVisualization(stream);\n this.#startProgressTimer();\n\n this.#autoStopTimeout = setTimeout(() => {\n if (this._isRecording) {\n this.stopRecording();\n }\n }, this.duration!);\n }\n }\n\n this.onStart.emit();\n } catch (error) {\n this._isRecording = false;\n this.#ref.detectChanges();\n this.onError.emit(error);\n }\n }\n\n stopRecording() {\n if (this.disabled || !this._isRecording || !this.#mediaRecorder) {\n return;\n }\n\n this.#mediaRecorder.stop();\n this.#mediaRecorder.stream.getTracks().forEach(track => track.stop());\n }\n\n #setupAudioVisualization(stream: MediaStream) {\n if (!this.waveformCanvas) {\n console.log('Canvas no disponible');\n return;\n }\n\n this.#audioContext = new AudioContext();\n this.#analyser = this.#audioContext.createAnalyser();\n const source = this.#audioContext.createMediaStreamSource(stream);\n\n source.connect(this.#analyser);\n this.#analyser.fftSize = 256;\n\n const bufferLength = this.#analyser.frequencyBinCount;\n this.#dataArray = new Uint8Array(bufferLength);\n\n this.#drawWaveform();\n }\n\n #drawWaveform() {\n if (!this._isRecording || !this.waveformCanvas) {\n return;\n }\n\n const canvas = this.waveformCanvas.nativeElement;\n const ctx = canvas.getContext('2d');\n if (!ctx || !this.#analyser || !this.#dataArray) {\n return;\n }\n\n this.#animationId = requestAnimationFrame(() => this.#drawWaveform());\n\n this.#analyser.getByteTimeDomainData(this.#dataArray as any);\n\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n ctx.lineWidth = 2;\n\n ctx.strokeStyle = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-recorder-record-button-recording-color')!;\n ctx.beginPath();\n\n const sliceWidth = canvas.width / this.#dataArray.length;\n let x = 0;\n\n for (let i = 0; i < this.#dataArray.length; i++) {\n const v = this.#dataArray[i] / 128.0;\n const y = (v * canvas.height) / 2;\n\n if (i === 0) {\n ctx.moveTo(x, y);\n } else {\n ctx.lineTo(x, y);\n }\n\n x += sliceWidth;\n }\n\n ctx.lineTo(canvas.width, canvas.height / 2);\n ctx.stroke();\n }\n\n #startProgressTimer = () => {\n if (!this.duration) {\n return;\n }\n\n this.#timerInterval = setInterval(() => {\n const elapsed = Date.now() - this.#startTime;\n const progress = elapsed / this.duration!;\n\n this.strokeDashoffset = this.circumference * (1 - progress);\n\n if (elapsed >= this.duration!) {\n this.stopRecording();\n }\n\n this.#ref.detectChanges();\n }, 100);\n }\n\n #cleanup = () => {\n this._isRecording = false;\n\n if (this.#animationId !== null) {\n cancelAnimationFrame(this.#animationId);\n this.#animationId = null;\n }\n\n if (this.#timerInterval) {\n clearInterval(this.#timerInterval);\n this.#timerInterval = null;\n }\n\n if (this.#autoStopTimeout) {\n clearTimeout(this.#autoStopTimeout);\n this.#autoStopTimeout = null;\n }\n\n if (this.#audioContext) {\n this.#audioContext.close();\n this.#audioContext = null;\n }\n\n this.#analyser = null;\n this.#dataArray = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.stopRecording();\n this.#cleanup();\n }\n}\n","@if (_isRecording) {\n <svg class=\"bizy-audio-recorder__progress-ring\">\n <circle\n class=\"bizy-audio-recorder__progress-ring-circle\"\n stroke-width=\"6\"\n fill=\"transparent\"\n [attr.r]=\"circleRadius\"\n [attr.cx]=\"circleCenter\"\n [attr.cy]=\"circleCenter\"\n [attr.stroke]=\"strokeColor\"\n [style.stroke-dasharray]=\"circumference\"\n [style.stroke-dashoffset]=\"strokeDashoffset\"/>\n </svg>\n}\n\n<button\n #bizyRecordButton\n class=\"bizy-audio-recorder__record-button\"\n [class.bizy-audio-recorder__record-button--idle]=\"!_isRecording\"\n [class.bizy-audio-recorder__record-button--recording]=\"_isRecording\"\n [class.bizy-audio-recorder--disabled]=\"disabled\"\n (click)=\"startRecording()\">\n\n @if (!_isRecording) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\" class=\"bizy-audio-recorder__record-button__icon animated fade-in\">\n <path d=\"M320 64C267 64 224 107 224 160L224 288C224 341 267 384 320 384C373 384 416 341 416 288L416 160C416 107 373 64 320 64zM176 248C176 234.7 165.3 224 152 224C138.7 224 128 234.7 128 248L128 288C128 385.9 201.3 466.7 296 478.5L296 528L248 528C234.7 528 224 538.7 224 552C224 565.3 234.7 576 248 576L392 576C405.3 576 416 565.3 416 552C416 538.7 405.3 528 392 528L344 528L344 478.5C438.7 466.7 512 385.9 512 288L512 248C512 234.7 501.3 224 488 224C474.7 224 464 234.7 464 248L464 288C464 367.5 399.5 432 320 432C240.5 432 176 367.5 176 288L176 248z\"/>\n </svg>\n }\n\n @if (_isRecording) {\n <canvas\n #waveformCanvas\n [width]=\"canvasSize\"\n [height]=\"canvasSize\">\n </canvas>\n }\n\n @if (_isRecording) {\n <button class=\"bizy-audio-recorder__stop-button\" (click)=\"stopRecording()\" [class.bizy-audio-recorder--disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\" class=\"bizy-audio-recorder__stop-button__icon animated fade-in\">\n <path d=\"M160 96L480 96C515.3 96 544 124.7 544 160L544 480C544 515.3 515.3 544 480 544L160 544C124.7 544 96 515.3 96 480L96 160C96 124.7 124.7 96 160 96z\"/>\n </svg>\n </button>\n }\n\n</button>\n","import { NgModule } from '@angular/core';\nimport { BizyAudioRecorderComponent } from './audio-recorder.component';\n\nconst COMPONENTS: Array<any> = [\n BizyAudioRecorderComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyAudioRecorderModule {}\n","export interface IBizyPopupResponse {\n id: string;\n response: unknown;\n}\n\nexport enum POPUP_PLACEMENT {\n TOP = 'TOP',\n RIGHT = 'RIGHT',\n BOTTOM = 'BOTTOM',\n LEFT = 'LEFT'\n}","import { DIALOG_DATA, DialogModule, DialogRef } from '@angular/cdk/dialog';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, ViewContainerRef, inject } from '@angular/core';\nimport { BizyPopupService } from '../popup.service';\nimport { POPUP_PLACEMENT } from '../popup.types';\n\n@Component({\n selector: 'bizy-popup-wrapper',\n templateUrl: './popup-wrapper.html',\n styleUrls: ['./popup-wrapper.css'],\n imports: [DialogModule, DragDropModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.top]': 'position.top',\n '[style.right]': 'position.right',\n '[style.bottom]': 'position.bottom',\n '[style.left]': 'position.left',\n '[style.transform]': 'position.transform'\n }\n})\nexport class BizyPopupWrapperComponent<T> {\n readonly #elementRef = inject(ElementRef);\n readonly #data: {\n component: ComponentType<T>,\n disableClose: boolean,\n disableDrag: boolean,\n position: {top: string, right: string, bottom: string, left: string} | null,\n placement: POPUP_PLACEMENT | null\n } = inject(DIALOG_DATA);\n readonly #dialogRef: DialogRef<void> = inject(DialogRef);\n readonly #popup = inject(BizyPopupService);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) dynamicComponentContainer: ViewContainerRef;\n\n disabled: boolean = false;\n\n disableClose: boolean = false;\n disableDrag: boolean = false;\n position: {top: string, right: string, bottom: string, left: string, transform: string} | null = {\n top: '50%',\n right: '50%',\n bottom: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n };\n\n ngOnInit() {\n if (this.#data) {\n if (this.#data.position) {\n this.position = {\n top: this.#data.position.top,\n right: this.#data.position.right,\n bottom: this.#data.position.bottom,\n left: this.#data.position.left,\n transform: '',\n }\n } else if (this.#data.placement) {\n this.setPlacement(this.#data.placement);\n }\n\n if (this.#data.disableClose) {\n this.disableClose = this.#data.disableClose;\n }\n \n if (this.#data.disableDrag) {\n this.disableDrag = this.#data.disableDrag;\n }\n }\n }\n\n ngAfterViewInit() {\n this.loadDynamicComponent();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n loadDynamicComponent = () => {\n if (this.#data && this.#data.component) {\n this.dynamicComponentContainer.clear();\n this.dynamicComponentContainer.createComponent(this.#data.component);\n this.#ref.detectChanges();\n }\n }\n\n setPlacement = (placement: POPUP_PLACEMENT) => {\n if (!placement) {\n return;\n }\n\n this.position = {\n top: placement === POPUP_PLACEMENT.TOP ? '2rem' : '',\n right: placement === POPUP_PLACEMENT.RIGHT ? '2rem' : '',\n bottom: placement === POPUP_PLACEMENT.BOTTOM ? '2rem' : '',\n left: placement === POPUP_PLACEMENT.LEFT ? '2rem' : '',\n transform: placement === POPUP_PLACEMENT.TOP || placement === POPUP_PLACEMENT.BOTTOM ? 'translateX(-50%)' : placement === POPUP_PLACEMENT.RIGHT || placement === POPUP_PLACEMENT.LEFT ? 'translatey(-50%)' : '',\n }\n\n this.#ref.detectChanges();\n }\n\n async close() {\n this.disabled = true;\n this.#popup.close({id: this.#dialogRef.id});\n }\n}","@if (!disableDrag) {\n <div class=\"bizy-popup-wrapper\" cdkDrag>\n <button class=\"bizy-popup-wrapper__drag-button\" cdkDragHandle>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" class=\"bizy-popup-wrapper__drag-button__icon\">\n <path d=\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"/>\n </svg>\n </button>\n @if (!disableClose) {\n <button class=\"bizy-popup-wrapper__close-button\" (click)=\"close()\" (keyup.enter)=\"close()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" class=\"bizy-popup-wrapper__close-button__icon\">\n <path d=\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"/>\n </svg>\n </button>\n }\n <ng-container #dynamicComponentContainer></ng-container>\n </div>\n}\n\n@if (disableDrag) {\n <div class=\"bizy-popup-wrapper\">\n @if (!disableClose) {\n <button class=\"bizy-popup-wrapper__close-button\" (click)=\"close()\" (keyup.enter)=\"close()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" class=\"bizy-popup-wrapper__close-button__icon\">\n <path d=\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"/>\n </svg>\n </button>\n }\n <ng-container #dynamicComponentContainer></ng-container>\n </div>\n}","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\n\nexport enum BIZY_ANIMATION {\n FADE_IN = 'fade-in',\n FADE_OUT = 'fade-out',\n FADE_IN_UP = 'fade-in-up',\n FADE_IN_RIGHT = 'fade-in-right',\n FADE_IN_DOWN = 'fade-in-down',\n FADE_IN_LEFT = 'fade-in-left',\n SLIDE_IN_UP = 'slide-in-up',\n SLIDE_IN_RIGHT = 'slide-in-right',\n SLIDE_IN_DOWN = 'slide-in-down',\n SLIDE_IN_LEFT = 'slide-in-left',\n SLIDE_OUT_UP = 'slide-out-up',\n SLIDE_OUT_DOWN = 'slide-out-down',\n SLIDE_OUT_RIGHT = 'slide-out-right',\n SLIDE_OUT_LEFT = 'slide-out-left',\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyAnimationService {\n #renderer: Renderer2;\n\n constructor(@Inject(RendererFactory2) private rendererFactory: RendererFactory2) {\n this.#renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n setAnimation(element: HTMLElement, animation: BIZY_ANIMATION) {\n return new Promise<void>(resolve => {\n if (!element || !animation || !this.#renderer) {\n return;\n }\n \n const root = this.#renderer.selectRootElement(':root', true);\n const animationTimeout = getComputedStyle(root).getPropertyValue('--bizy-animation-timeout').trim();\n \n this.#renderer.addClass(element, 'animated');\n this.#renderer.addClass(element, animation);\n setTimeout(() => {\n this.#renderer.removeClass(element, 'animated');\n this.#renderer.removeClass(element, animation);\n resolve();\n }, Number(animationTimeout.match(/\\d/g).join('')))\n })\n }\n}","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, fromEvent } from 'rxjs';\nimport { debounceTime, map } from 'rxjs/operators';\ninterface IViewportSize {\n height: number;\n width: number;\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyViewportService {\n #viewportSizeChanged: BehaviorSubject<IViewportSize>;\n\n get sizeChange$(): Observable<IViewportSize> {\n return this.#viewportSizeChanged.asObservable();\n }\n\n constructor(@Inject(Window) private window: Window) {\n this.#viewportSizeChanged = new BehaviorSubject<IViewportSize>(<IViewportSize>{\n width: this.window.innerWidth,\n height: this.window.innerHeight\n });\n\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n map(\n (event: any) =>\n <IViewportSize>{\n width: event.currentTarget.innerWidth,\n height: event.currentTarget.innerHeight\n }\n )\n )\n .subscribe(windowSize => {\n this.#viewportSizeChanged.next(windowSize);\n });\n }\n\n width() {\n return this.window.screen.availWidth;\n }\n\n height() {\n return this.window.screen.availHeight;\n }\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyKeyboardService {\n #shiftHolding = new BehaviorSubject<boolean>(false);\n #controlHolding = new BehaviorSubject<boolean>(false);\n\n get shiftHolding$(): Observable<boolean> {\n return this.#shiftHolding.asObservable();\n }\n\n get controlHolding$(): Observable<boolean> {\n return this.#controlHolding.asObservable();\n }\n\n constructor(\n @Inject(DOCUMENT) private document: Document\n ) {\n this.document.addEventListener('visibilitychange', () => {\n this.#shiftHolding.next(false);\n this.#controlHolding.next(false);\n });\n\n this.document.addEventListener('keydown', (event) => {\n if (event.key === 'Shift') {\n this.#shiftHolding.next(true);\n }\n\n if (event.key === 'Meta' || event.key === 'Control') {\n this.#controlHolding.next(true);\n }\n });\n \n this.document.addEventListener('keyup', (event) => {\n if (event.key === 'Shift') {\n this.#shiftHolding.next(false);\n }\n\n if (event.key === 'Meta' || event.key === 'Control') {\n this.#controlHolding.next(false);\n }\n });\n }\n\n isShiftHolding(): boolean {\n return this.#shiftHolding.value;\n }\n\n isControlHolding(): boolean {\n return this.#controlHolding.value;\n }\n}","\nimport { Inject, Injectable, Renderer2, RendererFactory2, DOCUMENT } from '@angular/core';\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyExportToCSVService {\n #loading = false;\n #renderer: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(RendererFactory2) private rendererFactory: RendererFactory2) {\n this.#renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n download(data: {items: Array<unknown>, model: Record<string, string>, fileName: string}) {\n if (this.#loading || !data.items || !Array.isArray(data.items) || !data.model) {\n return;\n }\n\n try {\n this.#loading = true;\n const csv = this.getCSV(data);\n if (!data.fileName) {\n data.fileName = 'bizy-csv';\n }\n\n this.#downloadCSV({csv, fileName: data.fileName});\n } finally {\n this.#loading = false;\n }\n }\n\n getCSV(data: {items: Array<any>, model: Record<string, string>}): string {\n let csv = '';\n\n function escapeCommas(str) {\n return str.includes(',') ? `\"${str}\"` : str;\n }\n\n for (const key in data.model) {\n if (key) {\n csv += `${data.model[key]},`;\n }\n }\n\n data.items.forEach(_item => {\n // Remove the last character (',')\n csv = csv.slice(0, -1);\n csv += '\\n';\n\n for (const key in data.model) {\n let value: any = _item;\n const nestedProperty = key.split('.');\n for (let i = 0; i < nestedProperty.length; i++) {\n const _property = nestedProperty[i];\n if (value) {\n value = value[_property];\n } else {\n break;\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n csv += `${escapeCommas(String(value).replace(/\\n/g, ''))},`;\n } else {\n csv += ',';\n }\n }\n });\n\n if (csv && csv[csv.length - 1] === ',') {\n // Remove the last character (',')\n csv = csv.slice(0, -1);\n }\n\n return csv;\n }\n\n #downloadCSV(data: {csv: string, fileName: string}) {\n const blob = new Blob([data.csv], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const downloadButton = this.#renderer.createElement('a');\n downloadButton.setAttribute('download', data.fileName);\n downloadButton.href = url;\n this.#renderer.appendChild(this.document.body, downloadButton);\n downloadButton.click();\n this.#renderer.removeChild(this.document.body, downloadButton);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { fromEvent, merge, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyRouterService {\n static backPath = '';\n\n transitionsEnd$: Observable<ActivatedRouteSnapshot>;\n\n transitionsStart$: Observable<ActivatedRouteSnapshot>;\n\n popStateEvent$: Observable<PopStateEvent>;\n\n routeChange$: Observable<void>;\n\n constructor(@Inject(Router) private router: Router) {\n this.transitionsEnd$ = this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map((event: any) => event.id),\n distinctUntilChanged(),\n map(() => this.router.routerState.snapshot.root)\n );\n\n this.transitionsStart$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map((event: any) => event.id),\n distinctUntilChanged(),\n map(() => this.router.routerState.snapshot.root)\n );\n\n this.popStateEvent$ = fromEvent<PopStateEvent>(window, 'popstate');\n\n this.routeChange$ = merge(this.transitionsEnd$, this.popStateEvent$).pipe(map(() => void 0));\n }\n\n getURL() {\n return window.location.pathname;\n }\n\n getBackPath() {\n return BizyRouterService.backPath;\n }\n\n getId(activatedRoute: ActivatedRoute, param: string): string | null {\n return activatedRoute.snapshot.paramMap.get(param);\n }\n\n getQueryParam(activatedRoute: ActivatedRoute, param: string): string | null {\n return activatedRoute.snapshot.queryParamMap.get(param);\n }\n\n getAllQueryParam(): Record<string, string> {\n const params = new URL(window.location.href).searchParams as any;\n const queryParams: Record<string, string> = {};\n \n for (const [key, value] of params.entries()) {\n queryParams[key] = value;\n }\n \n return queryParams;\n }\n\n goTo(data: { path: string; params?: Record<string, string>, replace?: boolean, skip?: boolean }) {\n if (data.replace) {\n BizyRouterService.backPath = '';\n } else {\n BizyRouterService.backPath = this.getURL();\n }\n\n if (data.path[0] === '/') {\n this.router.navigateByUrl(`${data.path}${this._serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });\n return;\n }\n\n const path = this.getURL();\n const index = path.indexOf('?');\n const url = index !== -1 ? path.substring(0, index) : path;\n\n this.router.navigateByUrl(`${url}/${data.path}${this._serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });\n }\n\n goBack(data?: {path: string}) {\n if (BizyRouterService.backPath) {\n history.back();\n BizyRouterService.backPath = '';\n } else if (data && data.path) {\n this.router.navigateByUrl(data.path, { replaceUrl: true });\n } else {\n const index = this.getURL().lastIndexOf('/');\n const backURL = this.getURL().substring(0, index);\n this.router.navigateByUrl(backURL, { replaceUrl: true });\n }\n }\n\n reload(force?: boolean): void {\n if (force) {\n window.location.reload();\n } else {\n setTimeout(() => {\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\n this.goTo({ path: this.getURL(), params: this.getAllQueryParam() });\n });\n }, 1);\n }\n }\n\n private _serialize(params?: Record<string, string>): string {\n if (!params) {\n return '';\n }\n\n const str = [];\n for (const param in params) {\n if (params[param]) {\n str.push(encodeURIComponent(param) + '=' + encodeURIComponent(params[param]));\n }\n }\n\n const queryParams = str.length > 0 ? `?${str.join('&')}` : '';\n return queryParams;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BizyRouterService } from './router.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyCacheService {\n readonly CACHE_PREFIX = 'BIZY-CACHE';\n constructor(@Inject(BizyRouterService) private router: BizyRouterService) {}\n\n getData<T>(key?: string): T {\n if (!key) {\n key = this.router.getURL();\n }\n\n const data = sessionStorage.getItem(`${this.CACHE_PREFIX}-${key}`);\n if (data) {\n const _data = JSON.parse(data) as {expiresAt: number, value: T}\n return Date.now() < _data.expiresAt ? _data.value : {} as T\n }\n\n return {} as T;\n }\n\n setData<T>(value: T, key?: string, expiresAt?: number) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (!key) {\n key = this.router.getURL();\n }\n\n if (!expiresAt) {\n const date = new Date();\n date.setHours(23, 59, 59);\n expiresAt = date.getTime();\n }\n\n const data = {\n expiresAt,\n value\n }\n\n sessionStorage.setItem(`${this.CACHE_PREFIX}-${key}`, JSON.stringify(data));\n }\n\n remove(key?: string) {\n if (!key) {\n key = this.router.getURL();\n }\n\n sessionStorage.removeItem(`${this.CACHE_PREFIX}-${key}`);\n }\n\n removeAll() {\n const cacheKeys = Object.keys(sessionStorage).filter(key => {\n return key.includes(this.CACHE_PREFIX);\n });\n cacheKeys.forEach(value => {\n sessionStorage.removeItem(value);\n });\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport validator from 'validator';\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyValidatorService {\n isEmail = (value: string): boolean => validator.isEmail(value, {allow_utf8_local_part: false});\n\n dateIsAfter = (data: {date: string | number | Date, comparisonDate: string | number | Date}): boolean => {\n if (!data || !data.date || !data.comparisonDate) {\n return false;\n }\n\n const date = new Date(data.date);\n const comparisonDate = new Date(data.comparisonDate);\n return validator.isAfter(date.toString(), comparisonDate.toString())\n }\n\n dateIsBefore = (data: {date: string | number | Date, comparisonDate: string | number | Date}): boolean => {\n if (!data || !data.date || !data.comparisonDate) {\n return false;\n }\n\n const date = new Date(data.date);\n const comparisonDate = new Date(data.comparisonDate);\n return validator.isBefore(date.toString(), comparisonDate.toString())\n }\n\n isAlpha = (value: string): boolean => validator.isAlpha(value);\n\n isAlphanumeric = (value: string): boolean => validator.isAlphanumeric(value);\n\n isNumeric = (value: string | number): boolean => validator.isNumeric(value);\n\n isNumber(number: unknown): number is number {\n const regex = /^-?\\d+(\\.\\d+)?$/;\n return regex.test(String(number).toLowerCase());\n }\n\n isString(string: unknown): string is string {\n return typeof string === 'string' || string instanceof String;\n }\n\n isInteger = (value: string | number): boolean => validator.isInt(value);\n\n isBoolean = (value: unknown): boolean => validator.isBoolean(value);\n\n isCreditCard = (value: string | number ): boolean => validator.isCreditCard(value);\n\n isDataURI = (value: string): boolean => validator.isDataURI(value);\n\n isURL = (value: string): boolean => validator.isURL(value);\n\n isDate = (value: string): boolean => validator.isDate(value);\n\n isJSON = (value: string): boolean => validator.isJSON(value);\n\n isIP = (value: string, version: 4 | 6 | '4' | '6' ): boolean => validator.isIP(value, {version});\n\n isJWT = (value: string): boolean => validator.isJWT(value);\n\n isLowercase = (value: string): boolean => validator.isLowercase(value);\n\n isUppercase = (value: string): boolean => validator.isUppercase(value);\n\n isMobilePhone = (data: {value: string, locale: string}): boolean => validator.isMobilePhone(data.value, data.locale);\n\n isCUIT(cuit: string): boolean {\n if (!cuit) {\n return false;\n }\n\n if (this.isString(cuit)) {\n cuit = cuit.replace(/[-]/g, '');\n } else {\n cuit = String(cuit);\n }\n\n // 20, 23, 24, 25, 26 y 27 Personas Físicas\n // 30, 33 y 34 Personas Jurídicas.\n if (!/^(20|23|24|25|26|27|30|33|34)\\d{8}\\d$/.test(cuit)) {\n return false;\n }\n\n const multipliers = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n const digits = cuit.split('').map(Number);\n const checkDigit = digits[10];\n const sum = multipliers.reduce((acc, _multiplier, i) => acc + _multiplier * digits[i], 0);\n const mod11 = 11 - (sum % 11);\n\n const expectedDigit = mod11 === 11 ? 0 : mod11 === 10 ? 9 : mod11;\n\n return checkDigit === expectedDigit;\n }\n\n isDNI(dni: string): boolean {\n const regex = /(^[1-9]{1}[0-9]{7}$)/i;\n return regex.test(String(dni).toLowerCase());\n }\n\n isCBU(cbu: string): boolean {\n const _isLengthOk = (cbu: string) => {\n return cbu.length === 22;\n };\n\n const _isValidAccount = (account: string) => {\n if (account.length !== 14) {\n return false;\n }\n\n const sum =\n Number(account[0]) * 3 +\n Number(account[1]) * 9 +\n Number(account[2]) * 7 +\n Number(account[3]) * 1 +\n Number(account[4]) * 3 +\n Number(account[5]) * 9 +\n Number(account[6]) * 7 +\n Number(account[7]) * 1 +\n Number(account[8]) * 3 +\n Number(account[9]) * 9 +\n Number(account[10]) * 7 +\n Number(account[11]) * 1 +\n Number(account[12]) * 3;\n const diff = (10 - (sum % 10)) % 10; // The result of this should be only 1 digit\n const checksum = Number(account[13]);\n\n return diff === checksum;\n };\n\n const _isValidBankCode = (code: string) => {\n if (code.length !== 8) {\n return false;\n }\n\n const bank = code.substring(0, 3);\n const checksumOne = code[3];\n const branch = code.substring(4, 4 + 3);\n const checksumTwo = code[7];\n\n const sum =\n (Number(bank[0]) * 7) +\n (Number(bank[1]) * 1) +\n (Number(bank[2]) * 3) +\n (Number(checksumOne) * 9) +\n (Number(branch[0]) * 7) +\n (Number(branch[1]) * 1 )+\n (Number(branch[2]) * 3);\n const diff = (10 - (sum % 10)) % 10; // The result of this should be only 1 digit\n\n return diff === Number(checksumTwo);\n };\n\n const bankCode = cbu.substring(0, 8);\n const accountCode = cbu.substring(8, 8 + 14);\n return (\n _isLengthOk(cbu) &&\n _isValidBankCode(bankCode) &&\n _isValidAccount(accountCode)\n );\n }\n\n emailValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isEmail(control.value))\n ? null\n : { bizyEmail: true };\n };\n }\n\n mobilePhoneValidator(locale: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || !locale ||\n (control.value && locale && this.isMobilePhone({value: control.value, locale}))\n ? null\n : { bizyMobilePhone: true };\n };\n }\n\n numberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isNumber(control.value))\n ? null\n : { bizyNumber: true };\n };\n }\n\n numericValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isNumeric(control.value))\n ? null\n : { bizyNumeric: true };\n };\n }\n\n dateIsAfterValidator(comparisonDate: string | number | Date): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || !comparisonDate || (control.value && comparisonDate && !this.dateIsAfter({date: control.value, comparisonDate}))\n ? null\n : { bizyDateIsAfter: true };\n };\n }\n\n dateIsBeforeValidator(comparisonDate: string | number | Date): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || !comparisonDate || (control.value && comparisonDate && !this.dateIsBefore({date: control.value, comparisonDate}))\n ? null\n : { bizyDateIsBefore: true };\n };\n }\n\n alphaValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isAlpha(control.value))\n ? null\n : { bizyAlpha: true };\n };\n }\n\n alphanumericValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isAlphanumeric(control.value))\n ? null\n : { bizyAlphanumeric: true };\n };\n }\n\n integerValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isInteger(control.value))\n ? null\n : { bizyInteger: true };\n };\n }\n\n dataURIValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isDataURI(control.value))\n ? null\n : { bizyDataURI: true };\n };\n }\n\n urlValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isURL(control.value))\n ? null\n : { bizyURL: true };\n };\n }\n\n jsonValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isJSON(control.value))\n ? null\n : { bizyJSON: true };\n };\n }\n\n jwtValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isJWT(control.value))\n ? null\n : { bizyJWT: true };\n };\n }\n\n lowerCaseValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isLowercase(control.value))\n ? null\n : { bizyLowerCase: true };\n };\n }\n\n upperCaseValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isUppercase(control.value))\n ? null\n : { bizyUpperCase: true };\n };\n }\n\n cuitValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isCUIT(control.value))\n ? null\n : { bizyCUIT: true };\n };\n }\n\n dniValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isDNI(control.value))\n ? null\n : { bizyDNI: true };\n };\n }\n\n cbuValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isCBU(control.value))\n ? null\n : { bizyCBU: true };\n };\n }\n\n creditCardValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isCreditCard(control.value))\n ? null\n : { bizyCreditCard: true };\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyStorageService {\n\n get<T>(key: string): T {\n const item = localStorage.getItem(key);\n try {\n return JSON.parse(item) as T;\n } catch (e) {\n return item as T;\n }\n }\n\n set(key: string, value: unknown): void {\n if (typeof value === 'object') {\n localStorage.setItem(key, JSON.stringify(value));\n } else if (typeof value === 'string') {\n localStorage.setItem(key, value);\n } else {\n localStorage.setItem(key, String(value));\n }\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n\n clear(): void {\n localStorage.clear();\n }\n}","import { Injectable } from '@angular/core';\n\nenum COLOR {\n DEFAULT = '#666666',\n INFO = '#2484C6',\n SUCCESS = '#65BF6C',\n WARNING = '#F7A64C',\n ERROR = '#EF4C59'\n}\n\ninterface ILogData {\n fileName: string;\n functionName: string;\n param?: unknown\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyLogService {\n #lastLogTimestamp: number = 0;\n\n #log(log: string, color: COLOR, param: unknown): void {\n const difference = this.#lastLogTimestamp ? Date.now() - this.#lastLogTimestamp : 0;\n this.#lastLogTimestamp = Date.now();\n\n const timestampStyles = 'color: #EE5DFF';\n const logStyles = `color: ${color}; font-size: 12px;`;\n const date = new Date();\n if (param) {\n console.log(`%c${date.toLocaleString()}: %c${log} %c(+${difference}ms)`, timestampStyles, logStyles, timestampStyles, param);\n } else {\n console.log(`%c${date.toLocaleString()}: %c${log} %c(+${difference}ms)`, timestampStyles, logStyles, timestampStyles);\n }\n }\n\n debug(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.DEFAULT, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Debug', color: COLOR.DEFAULT });\n }\n }\n\n info(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.INFO, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Info', color: COLOR.INFO });\n }\n }\n\n success(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.SUCCESS, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Success', color: COLOR.SUCCESS });\n }\n }\n\n warning(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.WARNING, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Warning', color: COLOR.WARNING });\n }\n }\n\n error(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.ERROR, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Error', color: COLOR.ERROR });\n }\n }\n /** DEPRECATED */\n templateDebug(data: ILogData): void {\n this.#template({ ...data, title: 'Debug', color: COLOR.DEFAULT });\n }\n /** DEPRECATED */\n templateSucc(data: ILogData): void {\n this.#template({ ...data, title: 'Success', color: COLOR.SUCCESS });\n }\n /** DEPRECATED */\n templateInfo(data: ILogData): void {\n this.#template({ ...data, title: 'Info', color: COLOR.INFO });\n }\n /** DEPRECATED */\n templateWarn(data: ILogData): void {\n this.#template({ ...data, title: 'Warning', color: COLOR.WARNING });\n }\n /** DEPRECATED */\n templateError(data: ILogData): void {\n this.#template({ ...data, title: 'Error', color: COLOR.ERROR });\n }\n\n #template(data: { fileName: string; functionName: string; title: string, color: COLOR; param?: unknown }): void {\n const log = `(${data.title}) ${data.fileName} - ${data.functionName}`;\n this.#log(log, data.color, data.param);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyCopyToClipboardService {\n readonly #clipboard = inject(Clipboard);\n\n copy(data: string | {items: Array<unknown>, model: Record<string, string>}) {\n return new Promise<void>((resolve, reject) => {\n try {\n if (!data) {\n resolve();\n return;\n }\n \n setTimeout(() => {\n let toCopy = '';\n \n if (typeof data === 'string' || data instanceof String) {\n toCopy = data as string;\n } else if (data.items && data.items.length > 0 && data.model) {\n for (const key in data.model) {\n if (key) {\n toCopy += `${data.model[key]},`;\n }\n }\n \n data.items.forEach(_item => {\n // Remove the last character (',')\n toCopy = toCopy.slice(0, -2);\n toCopy += '\\n';\n \n for (const key in data.model) {\n let value: any = _item;\n const nestedProperty = key.split('.');\n nestedProperty.forEach(_property => {\n value = value[_property];\n });\n \n if (typeof value !== 'undefined' && value !== null) {\n toCopy += `${String(value).replace(/\\n/g, '')},`;\n } else {\n toCopy += ',';\n }\n }\n });\n }\n \n const pending = this.#clipboard.beginCopy(toCopy);\n let remainingAttempts = 3;\n const attempt = () => {\n const result = pending.copy();\n if (!result && --remainingAttempts) {\n setTimeout(attempt);\n } else {\n // Remember to destroy when you're done!\n pending.destroy();\n resolve();\n }\n };\n \n attempt();\n }, 100);\n } catch (error) {\n reject(error);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport enum BIZY_FORMAT_SECONDS_LANGUAGE {\n SPANISH = 'es',\n ENGLISH = 'en',\n}\n\nexport enum BIZY_FORMAT_SECONDS_FORMAT {\n DATE_TIME = 'date-time',\n TIME = 'time',\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyFormatSecondsService {\n #options: {\n language: BIZY_FORMAT_SECONDS_LANGUAGE,\n format: BIZY_FORMAT_SECONDS_FORMAT\n } = {\n language: BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH,\n format: BIZY_FORMAT_SECONDS_FORMAT.TIME\n }\n\n getOptions() {\n return this.#options;\n }\n\n setOptions(options: {language?: BIZY_FORMAT_SECONDS_LANGUAGE, format?: BIZY_FORMAT_SECONDS_FORMAT}) {\n if (options && options.language) {\n this.#options.language = options.language;\n }\n\n if (options && options.format) {\n this.#options.format = options.format;\n }\n }\n}","/**\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This function's role is to enable smooth transition to the brave new world of\n// User-Agent Client Hints. If you have legacy code that relies on\n// `navigator.userAgent` and which relies on entropy that will go away by\n// default, you *need* to refactor it to use UA-CH. This function is to be used\n// as a stop gap, to enable smooth transition during that period.\n/**\n* @param {string[]} hints\n* @return {Promise<string|undefined>} A Promise that resolves to a string if a\n* UA could be synthesized from client hints, otherwise undefined.\n*/\nasync function getUserAgentUsingClientHints(hints: ['architecture', 'bitness', 'model', 'platformVersion', 'uaFullVersion', 'fullVersionList']): Promise<string> {\n // Helper functions for platform specific strings\n const GetCrosSpecificString = (values: { bitness: string; architecture: string; platformVersion: any; }) => {\n let osCPUFragment = '';\n if (values.bitness == '64') {\n if (values.architecture == 'x86') {\n osCPUFragment = 'x86_64';\n } else if (values.architecture == 'arm') {\n osCPUFragment = 'aarch64';\n }\n } else if (values.architecture == 'arm' && values.bitness == '32') {\n osCPUFragment = 'armv7l';\n }\n\n if (osCPUFragment == '') {\n return `X11; CrOS ${values.platformVersion}`;\n }\n\n return `X11; CrOS ${osCPUFragment} ${values.platformVersion}`;\n };\n\n const GetWindowsSpecificString = (values: { architecture: string; bitness: string; wow64: boolean; platformVersion: any; }) => {\n let osCPUFragment = '';\n if (values.architecture == 'x86' && values.bitness == '64') {\n osCPUFragment = '; Win64; x64';\n } else if (values.architecture == 'arm') {\n osCPUFragment = '; ARM';\n } else if (values.wow64 === true) {\n osCPUFragment = '; WOW64';\n }\n\n return `Windows NT ${getWindowsPlatformVersion(\n values.platformVersion\n )}${osCPUFragment}`;\n };\n\n const GetMacSpecificString = (values: { architecture: string; platformVersion: any; }) => {\n let newUA = 'Macintosh;';\n newUA += values.architecture === 'arm' ? ' ARM ' : ' Intel ';\n newUA += 'Mac OS X ';\n let macVersion = values.platformVersion;\n if (macVersion.indexOf('.') > -1) {\n macVersion = macVersion.split('.').join('_');\n }\n\n newUA += macVersion;\n return newUA;\n };\n\n const GetAndroidSpecificString = (values: { platformVersion: string; model: string; }) => {\n let newUA = 'Linux; Android ';\n newUA += values.platformVersion;\n if (values.model) {\n newUA += '; ';\n newUA += values.model;\n }\n\n return newUA;\n };\n\n const Initialize = (values: { architecture: string; bitness: string; model: string; platform: string; platformVersion: string; wow64: boolean; }) => {\n if (!values.architecture) {\n values.architecture = 'x86';\n }\n\n if (!values.bitness) {\n values.bitness = '64';\n }\n\n if (!values.model) {\n values.model = '';\n }\n\n if (!values.platform) {\n values.platform = 'Windows';\n }\n\n if (!values.platformVersion) {\n values.platformVersion = '10.0';\n }\n\n if (!values.wow64) {\n values.wow64 = false;\n }\n\n return values;\n };\n\n // @ts-ignore-error\n if (!navigator.userAgentData) {\n return Promise.resolve('');\n }\n\n // Verify that this is a Chromium-based browser\n let isChromium = false;\n let chromiumVersion: number;\n // eslint-disable-next-line prefer-regex-literals\n const isChromeUAPattern = new RegExp(\n 'AppleWebKit/537.36 \\\\(KHTML, like Gecko\\\\) Chrome/\\\\d+.\\\\d+.\\\\d+.\\\\d+ (Mobile )?Safari/537.36$'\n );\n // @ts-ignore-error\n navigator.userAgentData.brands.forEach(value => {\n if (value.brand == 'Chromium') {\n // Let's double check the UA string as well, so we don't accidentally\n // capture a headless browser or friendly bot (which should report as\n // HeadlessChrome or something entirely different).\n isChromium = isChromeUAPattern.test(navigator.userAgent);\n chromiumVersion = value.version;\n }\n });\n // @ts-ignore\n if (!isChromium || chromiumVersion < 100) {\n // If this is not a Chromium-based browser, the UA string should be very\n // different. Or, if this is a Chromium lower than 100, it doesn't have\n // all the hints we rely on. So let's bail.\n return Promise.resolve('');\n }\n\n // Main logic\n return new Promise(resolve => {\n // @ts-ignore-error\n navigator.userAgentData.getHighEntropyValues(hints).then(values => {\n let initialValues = {\n // @ts-ignore-error\n platform: navigator.userAgentData?.platform,\n version: chromiumVersion\n };\n values = Object.assign(initialValues, values);\n values = Initialize(values);\n let newUA = 'Mozilla/5.0 (';\n if (['Chrome OS', 'Chromium OS'].includes(values.platform)) {\n newUA += GetCrosSpecificString(values);\n } else if (values.platform == 'Windows') {\n newUA += GetWindowsSpecificString(values);\n } else if (values.platform == 'macOS') {\n newUA += GetMacSpecificString(values);\n } else if (values.platform == 'Android') {\n newUA += GetAndroidSpecificString(values);\n } else {\n newUA += 'X11; Linux x86_64';\n }\n\n newUA += ') AppleWebKit/537.36 (KHTML, like Gecko) Chrome/';\n newUA += getVersion(values?.fullVersionList, initialValues.version);\n // @ts-ignore-error\n if (navigator.userAgentData.mobile) {\n newUA += ' Mobile';\n }\n\n newUA += ' Safari/537.36';\n resolve(newUA);\n });\n });\n}\n\nfunction getVersion(fullVersionList: any[], majorVersion: any) {\n // If we don't get a fullVersionList, or it's somehow undefined, return\n // the reduced version number.\n return (\n fullVersionList?.find((item: { brand: string; }) => item.brand == 'Google Chrome')?.version ||\n `${majorVersion}.0.0.0`\n );\n}\n\nfunction getWindowsPlatformVersion(platformVersion: string) {\n // https://wicg.github.io/ua-client-hints/#get-the-legacy-windows-version-number\n const versionMap = new Map([\n ['0.3.0', '6.3'], // Windows 8.1\n ['0.2.0', '6.2'], // Windows 8\n ['0.1.0', '6.1'] // Windows 7\n ]);\n\n if (versionMap.has(platformVersion)) {\n return versionMap.get(platformVersion);\n }\n\n // Windows 10 and above send \"Windows NT 10.0\"\n return '10.0';\n}\n\n/**\n * @param {string[]} hints\n * @return {Promise<string|undefined>} A Promise that resolves on overriding the\n * navigator.userAgent string.\n */\nasync function overrideUserAgentUsingClientHints(hints: ['architecture', 'bitness', 'model', 'platformVersion', 'uaFullVersion', 'fullVersionList']) {\n return new Promise<string>(resolve => {\n getUserAgentUsingClientHints(hints).then(newUA => {\n if (newUA) {\n // Got a new UA value. Now override `navigator.userAgent`.\n Object.defineProperty(navigator, 'userAgent', {\n value: newUA,\n writable: false,\n configurable: true\n });\n } else {\n newUA = navigator.userAgent;\n }\n\n resolve(newUA);\n });\n });\n}\n\nexport const exportedForTests = { getVersion, getWindowsPlatformVersion };\nexport { getUserAgentUsingClientHints, overrideUserAgentUsingClientHints as getUserAgent};\n","import { inject, Injectable } from '@angular/core';\nimport { getUserAgent } from './uach-retrofill';\nimport { DeviceDetectorService } from 'ngx-device-detector';\n\n@Injectable({ providedIn: 'root' })\nexport class BizyDeviceService {\n readonly #device = inject(DeviceDetectorService);\n\n async getUserAgent() {\n try {\n const userAgent = await getUserAgent([\n 'architecture',\n 'bitness',\n 'model',\n 'platformVersion',\n 'uaFullVersion',\n 'fullVersionList'\n ]);\n return userAgent;\n } catch {\n return window.navigator.userAgent;\n }\n }\n\n isMobile = (): boolean => this.#device.isMobile();\n\n isTablet = (): boolean => this.#device.isTablet();\n\n isDesktop = (): boolean => this.#device.isDesktop();\n\n isPortrait = (): boolean => this.#device.orientation() === 'portrait';\n\n isLandscape = (): boolean => this.#device.orientation() === 'landscape';\n}","import { NgModule } from '@angular/core';\nimport { BizyAnimationService } from './animation.service';\nimport { BizyViewportService } from './viewport.service';\nimport { BizyKeyboardService } from './keyboard.service';\nimport { BizyExportToCSVService } from './export-to-csv.service';\nimport { BizyCacheService } from './cache.service';\nimport { BizyValidatorService } from './validator.service';\nimport { BizyStorageService } from './storage.service';\nimport { BizyLogService } from './log.service';\nimport { BizyRouterService } from './router.service';\nimport { BizyCopyToClipboardService } from './copy-to-clipboard.service';\nimport { BizyFormatSecondsService } from './format-seconds.service';\nimport { BizyDeviceService } from './device/device.service';\n\nconst SERVICES: Array<any> = [\n BizyAnimationService,\n BizyDeviceService,\n BizyCacheService,\n BizyCopyToClipboardService,\n BizyExportToCSVService,\n BizyFormatSecondsService,\n BizyKeyboardService,\n BizyLogService,\n BizyRouterService,\n BizyStorageService,\n BizyValidatorService,\n BizyViewportService\n]\n\n@NgModule({\n providers: SERVICES\n})\n\nexport class BizyServicesModule {}\n","import { ComponentType } from \"@angular/cdk/portal\";\nimport { inject, Injectable, NgZone } from \"@angular/core\";\nimport { take } from \"rxjs\";\nimport { BizyPopupWrapperComponent } from \"./popup-wrapper/popup-wrapper.component\";\nimport { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { BizyFullScreenPopupWrapperComponent } from \"./full-screen-popup-wrapper/full-screen-popup-wrapper.component\";\nimport { BIZY_ANIMATION, BizyAnimationService, BizyValidatorService } from \"../../services\";\nimport { POPUP_PLACEMENT } from \"./popup.types\";\n\n@Injectable()\nexport class BizyPopupService {\n readonly #animation = inject(BizyAnimationService);\n readonly #validator = inject(BizyValidatorService);\n readonly #dialog = inject(Dialog);\n readonly #ngZone = inject(NgZone);\n static dialogs = new Set<DialogRef<unknown, any>>();\n #data: unknown = null;\n \n /**\n * \n * @param data.disableClose Deprecated\n */\n open<R>(data: {\n component: ComponentType<unknown>,\n data?: unknown,\n customClass?: Array<string> | string,\n fullScreen?: boolean,\n disableClose?: boolean,\n disableBackdropClose?: boolean,\n id?: string,\n disableCloseButton?: boolean,\n disableDragButton?: boolean,\n element?: HTMLElement,\n position?: {top?: string, right?: string, bottom?: string, left?: string},\n placement?: POPUP_PLACEMENT},\n callback?: (res: R) => void) {\n if (!data) {\n return;\n }\n\n this.#data = data.data;\n\n let position: {top?: string, right?: string, bottom?: string, left?: string} | null = data.position ?? null;\n let placement: POPUP_PLACEMENT | null = null;\n\n if (data.element) {\n const rect = data.element.getBoundingClientRect();\n if (!data.placement) {\n data.placement = POPUP_PLACEMENT.RIGHT;\n }\n\n position = {\n top: data.placement === POPUP_PLACEMENT.TOP ? `${rect.top - data.element.offsetHeight + Number(position.top)}px ` : `${rect.top + Number(position.top)}px`,\n left: data.placement === POPUP_PLACEMENT.LEFT ? `${rect.left - data.element.offsetWidth + Number(position.left)}px` : `${rect.left + Number(position.left)}px`,\n bottom: data.placement === POPUP_PLACEMENT.BOTTOM ? `${rect.bottom + data.element.offsetHeight + Number(position.bottom)}px` : `${rect.bottom + Number(position.bottom)}px`,\n right: data.placement === POPUP_PLACEMENT.RIGHT ? `${rect.right + data.element.offsetWidth + Number(position.right)}px` : `${rect.right + Number(position.right)}px`,\n }\n } else {\n placement = data.placement ?? null;\n }\n\n const component: ComponentType<unknown> = data.fullScreen ? BizyFullScreenPopupWrapperComponent : BizyPopupWrapperComponent;\n this.#ngZone.run(() => {\n const dialogRef = this.#dialog.open(component, ({\n id: data.id,\n data: {\n component: data.component,\n disableClose: data.disableCloseButton ?? false,\n disableDrag: data.disableDragButton ?? false,\n position,\n placement\n },\n autoFocus: true,\n hasBackdrop: true,\n disableClose: typeof data.disableBackdropClose !== 'undefined' && data.disableBackdropClose !== null ? data.disableBackdropClose : typeof data.disableClose !== 'undefined' && data.disableClose !== null ? data.disableClose : true,\n panelClass: Array.isArray(data.customClass) ? data.customClass : this.#validator.isString(data.customClass) ? [data.customClass] : []\n }));\n\n BizyPopupService.dialogs.add(dialogRef);\n\n dialogRef.closed.pipe(take(1)).subscribe(response => {\n BizyPopupService.dialogs.delete(dialogRef);\n if (callback) {\n callback(response as R);\n }\n });\n });\n }\n\n setPlacement(data: {placement: POPUP_PLACEMENT, id?: string}) {\n if (!data || !data.placement) {\n return;\n }\n\n let dialogRef: DialogRef<unknown, any> | null = null;\n if (data.id) {\n dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);\n } else {\n dialogRef = Array.from(BizyPopupService.dialogs).pop();\n }\n\n if (dialogRef && dialogRef.componentInstance instanceof BizyPopupWrapperComponent) {\n dialogRef.componentInstance.setPlacement(data.placement);\n }\n }\n\n getData<D>() {\n return this.#data as D;\n }\n\n async close(data?: {id?: string, response?: unknown}) {\n let dialogRef: DialogRef<unknown, any> | null = null;\n if (data && data.id) {\n dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);\n } else {\n dialogRef = Array.from(BizyPopupService.dialogs).pop();\n }\n\n if (dialogRef) {\n if (dialogRef.componentInstance instanceof BizyFullScreenPopupWrapperComponent && dialogRef.overlayRef && dialogRef.overlayRef.overlayElement) {\n const nativeElement = dialogRef.overlayRef.overlayElement.querySelector('bizy-full-screen-popup-wrapper');\n await this.#animation.setAnimation(<HTMLElement>nativeElement, BIZY_ANIMATION.SLIDE_OUT_DOWN);\n }\n dialogRef.close(data ? data.response : null);\n BizyPopupService.dialogs.delete(dialogRef);\n }\n }\n\n closeAll() {\n Array.from(BizyPopupService.dialogs).forEach(_dialogRef => {\n _dialogRef.close();\n });\n BizyPopupService.dialogs.clear();\n }\n\n openedPopups(): number {\n return BizyPopupService.dialogs.size;\n }\n}","import { DIALOG_DATA, DialogModule, DialogRef } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, ViewContainerRef, inject } from '@angular/core';\nimport { BizyPopupService } from '../popup.service';\n\n@Component({\n selector: 'bizy-full-screen-popup-wrapper',\n templateUrl: './full-screen-popup-wrapper.html',\n styleUrls: ['./full-screen-popup-wrapper.css'],\n imports: [CommonModule, DialogModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n 'class': 'animated slide-in-up'\n }\n})\nexport class BizyFullScreenPopupWrapperComponent<T> {\n readonly #elementRef = inject(ElementRef);\n readonly #data: {component: ComponentType<T>, disableClose: boolean, disableDrag: boolean} = inject(DIALOG_DATA);\n readonly #dialogRef: DialogRef<void> = inject(DialogRef);\n readonly #popup = inject(BizyPopupService);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) dynamicComponentContainer: ViewContainerRef;\n\n disabled: boolean = false;\n\n disableClose: boolean = false;\n disableDrag: boolean = false;\n\n ngOnInit() {\n if (this.#data) {\n if (this.#data.disableClose) {\n this.disableClose = this.#data.disableClose;\n }\n \n if (this.#data.disableDrag) {\n this.disableDrag = this.#data.disableDrag;\n }\n }\n }\n\n ngAfterViewInit() {\n this.loadDynamicComponent();\n }\n\n loadDynamicComponent = () => {\n if (this.#data && this.#data.component) {\n this.dynamicComponentContainer.clear();\n this.dynamicComponentContainer.createComponent(this.#data.component);\n\n this.#ref.detectChanges();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n async close() {\n this.disabled = true;\n this.#popup.close({id: this.#dialogRef.id});\n }\n}","<div class=\"bizy-full-screen-popup-wrapper\" [ngClass]=\"{'bizy-full-screen-popup-wrapper--disabled': disabled}\">\n\n @if (!disableClose) {\n <button class=\"bizy-full-screen-popup-wrapper__close-button\" (click)=\"close()\" (keyup.enter)=\"close()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" class=\"bizy-full-screen-popup-wrapper__close-button__icon\">\n <path d=\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"/>\n </svg>\n </button>\n }\n\n <ng-container #dynamicComponentContainer></ng-container>\n\n</div>","import { NgModule } from '@angular/core';\nimport { BizyPopupWrapperComponent } from './popup-wrapper/popup-wrapper.component';\nimport { BizyPopupService } from './popup.service';\nimport { BizyFullScreenPopupWrapperComponent } from './full-screen-popup-wrapper/full-screen-popup-wrapper.component';\n\nconst COMPONENTS = [\n BizyPopupWrapperComponent,\n BizyFullScreenPopupWrapperComponent\n]\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [BizyPopupService]\n})\n\nexport class BizyPopupModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-bar-line-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyBarLineChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {name: string},\n grid: {left: number, right: number},\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...data.option, toolbox: {show: false}});\n\n const showAllLegends = (chart: echarts.ECharts) => {\n const option = chart.getOption();\n option.legend[0].type = 'plain';\n option.grid = {\n left: data.grid.left,\n right: data.grid.right,\n bottom: Math.max(Math.abs((Math.max(option.legend[0].data.length, 5) / 5)) * 30, 60)\n };\n chart.setOption(option);\n }\n\n showAllLegends(this.#echarts);\n\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.#popup.close();\n });\n });\n }, 500);\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n DOCUMENT,\n inject\n} from '@angular/core';\nimport { IBizyBarLineChartData } from './bar-line-chart.types';\n\nimport { auditTime, BehaviorSubject, filter, skip, Subject, Subscription, take, throttleTime } from 'rxjs';\nimport { BizyPopupService } from '../popup';\nimport { BizyBarLineChartPopupComponent } from './bar-line-chart-popup.component';\n\nconst GRID_BOTTOM = 30;\nconst Y_AXIS_OFFSET = 50;\nconst DEFAULT_CHART_SIZE = '300px';\n\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n}\n\nconst DEFAULT_TOOLTIP = {\n show: true\n};\n@Component({\n selector: 'bizy-bar-line-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyBarLineChartComponent implements OnDestroy, AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() axisPointer: 'line' | 'cross' = 'line';\n @Input() xAxis: { labels?: Array<string>, formatter?: (item: any ) => string} | null = null;\n @Output() onDownload = new EventEmitter<void>();\n @Output() onSelect = new EventEmitter<string>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<IBizyBarLineChartData> = [];\n\n #gridLeft: number = 0;\n #gridRight: number = 0;\n #chartStacks: Array<string> = [];\n #chartNames: Array<string> = [];\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyBarLineChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n }\n }\n\n async #setChartData(data: Array<IBizyBarLineChartData>) {\n this.#data = data;\n this.#gridLeft = 0;\n this.#gridRight = 0;\n this.#chartStacks = [];\n this.#chartNames = [];\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n this.#createChartContainer()\n\n if (!this.#chartContainer) {\n return;\n }\n\n const series: Array<any> = [];\n const legends: Array<string> = [];\n const yAxis: Array<any> = [];\n \n this.#data.forEach((_d, _i) => {\n if (!_d.type) {\n _d.type = 'bar';\n }\n\n if (!_d.values) {\n _d.values = [];\n }\n\n const axisLine = {\n show: true,\n lineStyle: {}\n };\n\n const color = {\n lineStyle: {\n color: null\n },\n itemStyle: {\n color: null\n }\n };\n\n if (_d.color) {\n axisLine.lineStyle = {\n color: _d.color\n }\n\n color.lineStyle.color = _d.color;\n color.itemStyle.color = _d.color;\n }\n\n let position = 'right';\n let max: number | undefined = undefined;\n let min: number | undefined = undefined;\n let interval: number | undefined = undefined;\n let formatter = null\n const xName = _d.xAxi && _d.xAxi.name ? _d.xAxi.name : _d.label;\n let yName = _d.label;\n let show = true;\n\n if (_d.yAxi) {\n if (typeof _d.yAxi.show !== 'undefined' && _d.yAxi.show !== null) {\n show = Boolean(_d.yAxi.show);\n }\n\n formatter = _d.yAxi.onValueFormatter;\n position = _d.yAxi.position ? _d.yAxi.position : _d.type === 'bar' ? 'right' : 'left';\n if (_d.yAxi.name) {\n yName = _d.yAxi.name;\n }\n\n if (!show) {\n formatter = null;\n } else {\n if (_d.yAxi.max || _d.yAxi.max === 0) {\n max = _d.yAxi.max;\n }\n \n if (_d.yAxi.min || _d.yAxi.min === 0) {\n min = _d.yAxi.min;\n }\n\n if (_d.yAxi.interval || _d.yAxi.interval === 0) {\n interval = _d.yAxi.interval;\n }\n }\n }\n\n yAxis.push({\n type: 'value',\n name: yName,\n id: xName,\n offset: show && (position === 'left' && this.#gridLeft > 0 || position === 'right' && this.#gridRight > 0) && _d.yAxi && typeof _d.yAxi.width !== 'undefined' ? _d.yAxi.width : show && (position === 'left' && this.#gridLeft > 0 || position === 'right' && this.#gridRight > 0) ? Y_AXIS_OFFSET : 0, show,\n position,\n min,\n max,\n interval,\n alignTicks: true,\n axisLine,\n axisLabel: { formatter }\n });\n\n if (show) {\n if (position === 'right') {\n this.#gridRight += typeof _d.yAxi.width !== 'undefined' ? _d.yAxi.width : Y_AXIS_OFFSET;\n } else {\n this.#gridLeft += typeof _d.yAxi.width !== 'undefined' ? _d.yAxi.width : Y_AXIS_OFFSET;\n }\n }\n \n legends.push(xName);\n\n let yAxisIndex = _i;\n if (_d.stack) {\n const _stack = this.#chartStacks.find(_stack => _stack === _d.stack);\n if (_stack) {\n const index = series.findIndex(_s => _s.stack === _stack);\n if (index !== -1) {\n yAxisIndex = series[index].yAxisIndex;\n }\n } else {\n this.#chartStacks.push(_d.stack);\n }\n } else {\n const _name = this.#chartNames.find(_name => _name === yName);\n if (_name) {\n const index = this.#data.findIndex(_d => (_d.yAxi && _d.yAxi.name === _name) || (_d.label === _name));\n if (index !== -1) {\n yAxisIndex = index;\n }\n } else {\n this.#chartNames.push(yName);\n }\n }\n\n if (_d.barMinHeight) {\n const values = _d.values.map(v => v > 0 ? v : '-'); // use '-' for missing data\n const emptyValues = _d.values.map(v => v === 0 ? 0 : '-');\n\n series.push({...{\n type: _d.type,\n name: xName,\n yAxisIndex,\n smooth: !_d.discrete,\n stack: _d.stack,\n barMinHeight: _d.barMinHeight,\n data: values\n }, ...color});\n\n series.push({...{\n type: _d.type,\n name: '-',\n yAxisIndex,\n smooth: !_d.discrete,\n stack: _d.stack,\n data: emptyValues\n }, ...color});\n } else {\n series.push({...{\n type: _d.type,\n name: xName,\n yAxisIndex,\n smooth: !_d.discrete,\n stack: _d.stack,\n data: _d.values\n }, ...color});\n }\n });\n\n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'axis',\n appendToBody: true,\n axisPointer: {\n type: this.axisPointer\n },\n formatter: this.tooltip?.formatter\n }\n\n const grid = {\n left: this.#gridLeft,\n right: this.#gridRight,\n };\n\n const xAxis = [\n {\n type: 'category',\n axisTick: {\n alignWithLabel: true\n },\n data: this.xAxis?.labels,\n axisLabel: {\n formatter: this.xAxis?.formatter,\n }\n }\n ];\n\n const legend = {\n type: 'scroll',\n bottom: 0,\n data: legends\n };\n const textColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-tooltip-color');\n const textBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-tooltip-background-color');\n const borderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-tooltip-border-color');\n\n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download?.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n this.#popup.open({\n disableCloseButton: true,\n disableBackdropClose: true,\n component: BizyBarLineChartPopupComponent,\n data: {\n download: {\n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n grid: {\n left: this.#gridLeft,\n right: this.#gridRight\n },\n option: this.#echarts.getOption()\n }\n });\n this.onDownload.emit();\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n\n const option: any = {\n tooltip,\n legend,\n grid,\n xAxis,\n yAxis,\n toolbox,\n series\n };\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n });\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyBarLineChartComponent } from './bar-line-chart.component';\nimport { BizyBarLineChartPopupComponent } from './bar-line-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyBarLineChartComponent,\n BizyBarLineChartPopupComponent\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyBarLineChartModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IBizyBreadcrumb } from './breadcrumb.types';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-breadcrumb',\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyBreadcrumbComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n @Output() onSelect = new EventEmitter<IBizyBreadcrumb>();\n _breadcrumbs: Array<IBizyBreadcrumb> = [];\n showGoBack: boolean = false;\n\n @Input() set breadcrumbs(breadcrumbs: Array<IBizyBreadcrumb>) {\n if (breadcrumbs) {\n this._breadcrumbs = breadcrumbs;\n this.showGoBack = false;\n let counter = 0;\n for (let i = 0; i < breadcrumbs.length; i++) {\n if (!breadcrumbs[i].skip) {\n counter++;\n }\n\n if (counter > 1) {\n this.showGoBack = true;\n this.#ref.detectChanges();\n break;\n }\n }\n }\n }\n\n goTo(breadcrumb: IBizyBreadcrumb) {\n if (breadcrumb.skip) {\n return;\n }\n\n this.onSelect.emit(breadcrumb);\n }\n\n goBack() {\n if (!this._breadcrumbs[this._breadcrumbs.length - 2]) {\n return;\n }\n\n for (let i = this._breadcrumbs.length; i > 0; i--) {\n if (!this._breadcrumbs[i - 2].skip) {\n this.onSelect.emit(this._breadcrumbs[i - 2]);\n break;\n }\n }\n }\n\n getNativeElement() {\n return this.#elementRef.nativeElement;\n }\n}\n","<ul class=\"bizy-breadcrumb\">\n @for (breadcrumb of _breadcrumbs; track breadcrumb; let last = $last; let i = $index) {\n @if (breadcrumb.label) {\n <li>\n <button\n class=\"bizy-breadcrumb__link\"\n [ngClass]=\"{'bizy-breadcrumb__link--skip': breadcrumb.skip || last}\"\n type=\"button\"\n (click)=\"goTo(breadcrumb)\">\n {{breadcrumb.label}}\n </button>\n @if (last && showGoBack) {\n <button\n type=\"button\"\n class=\"bizy-breadcrumb__go-back\"\n (click)=\"goBack()\">\n <svg\n class=\"bizy-breadcrumb__go-back__icon\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" stroke=\"none\"/>\n <path d=\"M9 11l-4 4l4 4m-4 -4h11a4 4 0 0 0 0 -8h-1\"/>\n </svg>\n </button>\n }\n </li>\n }\n }\n</ul>\n","import { NgModule } from '@angular/core';\nimport { BizyBreadcrumbComponent } from './breadcrumb.component';\n\nconst COMPONENTS: Array<any> = [\n BizyBreadcrumbComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyBreadcrumbModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-button',\n templateUrl: './button.html',\n styleUrls: ['./button.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyButtonComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-button-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() type: 'button' | 'submit' = 'button';\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _focused: boolean = false;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this._focused) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n [type]=\"type\"\n [id]=\"id\"\n (focus)=\"_focused = true\"\n (blur)=\"_focused = false\"\n class=\"bizy-button {{customClass}}\"\n [ngClass]=\"{'bizy-button--disabled': disabled}\"\n (click)=\"_focused = true; _onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n <span class=\"bizy-button__content\" (click)=\"_focused = true; _onSelect($event); $event.stopPropagation()\">\n <ng-content></ng-content>\n </span>\n \n</button>\n\n","import { NgModule } from '@angular/core';\nimport { BizyButtonComponent } from './button.component';\n\nconst COMPONENTS: Array<any> = [\n BizyButtonComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyButtonModule {}\n","export enum BIZY_CALENDAR_MODE {\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day'\n}\n\nexport enum BIZY_CALENDAR_DAY {\n SUNDAY = 0,\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6\n}\n\nexport enum BIZY_CALENDAR_EVENT_ACTION {\n DELETE = 'DELETE'\n}\n\n\nexport interface IBizyCalendarEvent {\n start: number;\n end: number;\n description?: string;\n id?: number | string;\n color?: string;\n backgroundColor?: string;\n customClass?: string;\n meta?: Record<string, unknown>;\n actions?: Array<BIZY_CALENDAR_EVENT_ACTION>;\n incrementsBadgeTotal?: boolean;\n}\n\nexport enum BIZY_CALENDAR_LANGUAGE {\n SPANISH = 'es',\n ENGLISH = 'en'\n}","import { CalendarNativeDateFormatter, DateFormatterParams } from 'angular-calendar';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class BizyCalendarFormatter extends CalendarNativeDateFormatter {\n override weekViewHour({ date, locale }: DateFormatterParams): string {\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit'\n }).format(date);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, TemplateRef } from '@angular/core';\nimport { BIZY_CALENDAR_MODE, IBizyCalendarEvent, BIZY_CALENDAR_LANGUAGE, BIZY_CALENDAR_EVENT_ACTION, BIZY_CALENDAR_DAY } from './calendar.types';\nimport { CalendarA11y, CalendarDateFormatter, CalendarEvent, CalendarEventAction, CalendarEventTitleFormatter, CalendarModule, CalendarMonthViewDay, CalendarUtils, DateAdapter } from 'angular-calendar';\nimport { Subject } from 'rxjs';\nimport { isSameDay, isSameMonth } from 'date-fns';\nimport { BizyCalendarFormatter } from './calendar.formatter';\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\nimport { CommonModule, registerLocaleData } from '@angular/common';\nimport localeEs from '@angular/common/locales/es';\n\nregisterLocaleData(localeEs);\n@Component({\n selector: 'bizy-calendar',\n templateUrl: './calendar.html',\n styleUrls: ['./calendar.css'],\n imports: [CommonModule, CalendarModule],\n providers: [\n CalendarUtils,\n CalendarA11y,\n CalendarEventTitleFormatter,\n {\n provide: DateAdapter,\n useFactory: adapterFactory,\n },\n {\n provide: CalendarDateFormatter,\n useClass: BizyCalendarFormatter\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyCalendarComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-calendar-${Math.random()}`;\n @Input() hideHeaderDate: boolean = false;\n @Input() preventExpand: boolean = false;\n @Input() dayStartHour: number = 0;\n @Input() dayEndHour: number = 24;\n @Input() hourMinutesDuration: number = 60;\n @Input() hourSegments: number = 2;\n @Input() language: BIZY_CALENDAR_LANGUAGE = BIZY_CALENDAR_LANGUAGE.SPANISH;\n @Input() excludeDays: Array<0 | 1 | 2 | 3 | 4 | 5 | 6> = [];\n @Input() weekendDays: Array<BIZY_CALENDAR_DAY> = [BIZY_CALENDAR_DAY.SATURDAY, BIZY_CALENDAR_DAY.SUNDAY];\n @Input() weekStartsOn: BIZY_CALENDAR_DAY = BIZY_CALENDAR_DAY.SUNDAY;\n @Input() mode: BIZY_CALENDAR_MODE = BIZY_CALENDAR_MODE.WEEK;\n @Input() customCalendarWeekEventTemplate: TemplateRef<any> | null = null;\n @Output() onEventSelect = new EventEmitter<IBizyCalendarEvent>();\n @Output() onDateSelect = new EventEmitter<{start: number, end: number, events: Array<IBizyCalendarEvent>}>();\n @Output() onEventDelete = new EventEmitter<{ event: IBizyCalendarEvent, sourceEvent: MouseEvent | KeyboardEvent }>();\n\n readonly BIZY_CALENDAR_MODE = BIZY_CALENDAR_MODE;\n\n _viewDate: Date = new Date();\n _activeDayIsOpen: boolean = false;\n\n _refresh = new Subject<void>();\n\n @Input() set viewDate(viewDate: number) {\n if (!viewDate) {\n return;\n }\n\n this._viewDate = new Date(viewDate);\n }\n\n _calendarEvents: Array<CalendarEvent> = [];\n _events: Array<IBizyCalendarEvent> = [];\n\n @Input() set events(events: Array<IBizyCalendarEvent>) {\n if (!events || events.length === 0) {\n return;\n }\n\n this._events.length = 0;\n\n this._calendarEvents = events.map(_event => {\n const id = _event.id || `bizy-calendar-event-${Math.random()}`;\n this._events.push({..._event, id})\n return {\n id,\n start: new Date(_event.start),\n end: new Date(_event.end),\n title: _event.description || '',\n color: {\n primary: _event.color,\n secondary: _event.backgroundColor\n },\n actions: this.#getCalendarEventActions(_event),\n allDay: false,\n cssClass: `bizy-calendar-event ${_event.customClass || ''}`,\n resizable: {\n beforeStart: false,\n afterEnd: false\n },\n draggable: false,\n meta: {\n incrementsBadgeTotal: _event.incrementsBadgeTotal ?? true,\n ..._event.meta\n }\n }\n })\n\n this._refresh.next();\n }\n\n beforeMonthViewRender({ body }: { body: CalendarMonthViewDay[] }): void {\n body.forEach((day) => {\n day.badgeTotal = day.events.filter(\n (event) => event.meta.incrementsBadgeTotal\n ).length;\n });\n }\n\n dayClicked({ date, events, isOpen }: { date: Date; events: CalendarEvent[]; isOpen: boolean }): void {\n if (this.preventExpand) {\n isOpen = false;\n this._activeDayIsOpen = false;\n } else if (isSameMonth(date, this._viewDate)) {\n if ((isSameDay(this._viewDate, date) && this._activeDayIsOpen === true) || events.length === 0) {\n this._activeDayIsOpen = false;\n } else {\n this._activeDayIsOpen = true;\n }\n\n this._viewDate = date;\n }\n\n const ids = events.map(_event => _event.id);\n\n const _events = this._events.filter(_event => ids.includes(_event.id));\n\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const startDate = startOfDay.getTime();\n const endOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n const endDate = endOfDay.getTime();\n\n this.onDateSelect.emit({\n start: startDate,\n end: endDate,\n events: _events\n })\n }\n\n eventClicked(event: CalendarEvent): void {\n const _event = this._events.find(_e => _e.id === event.id);\n if (!_event) {\n return;\n }\n\n this.onEventSelect.emit(_event)\n }\n\n dayHeaderClicked(date: Date): void {\n if (!date) {\n return;\n }\n\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const startDate = startOfDay.getTime();\n const endOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n const endDate = endOfDay.getTime();\n\n const _events = this._events.filter(_event => _event.start >= startDate && _event.end <= endDate);\n\n this.onDateSelect.emit({\n start: startDate,\n end: endDate,\n events: _events\n })\n }\n\n hourSegmentClicked(date: Date): void {\n if (!date) {\n return;\n }\n\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), 0, 0);\n const startDate = startOfDay.getTime();\n const endOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes() + this.hourMinutesDuration, 59, 999);\n const endDate = endOfDay.getTime();\n\n const _events = this._events.filter(_event => _event.start >= startDate && _event.end <= endDate);\n\n this.onDateSelect.emit({\n start: startDate,\n end: endDate,\n events: _events\n })\n }\n\n #getCalendarEventActions(event: IBizyCalendarEvent): Array<CalendarEventAction> {\n if (!event || !event.actions || event.actions.length === 0) {\n return [];\n }\n\n const actions: Array<CalendarEventAction> = [];\n\n if (event.actions.includes(BIZY_CALENDAR_EVENT_ACTION.DELETE)) {\n actions.push({\n label: `<div class=\"bizy-calendar-event-delete-action__icon\">\n <div class=\"bizy-calendar-event-delete-action__icon__trash-lid\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-container\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-line-1\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-line-2\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-line-3\"></div>\n </div>`,\n a11yLabel: 'delete',\n onClick: ({ event, sourceEvent }: { event: CalendarEvent, sourceEvent: MouseEvent | KeyboardEvent }): void => {\n const _event = this._events.find(_e => _e.id === event.id);\n if (!_event) {\n return;\n }\n\n this.onEventDelete.emit({ event: _event, sourceEvent });\n },\n })\n }\n\n return actions;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-template\n #bizyCustomCalendarWeekEventTemplate\n let-weekEvent=\"weekEvent\"\n let-locale=\"locale\"\n let-eventClicked=\"eventClicked\"\n let-tooltipPlacement=\"tooltipPlacement\"\n let-tooltipTemplate=\"tooltipTemplate\"\n let-tooltipAppendToBody=\"tooltipAppendToBody\"\n let-tooltipDisabled=\"tooltipDisabled\">\n\n @if (customCalendarWeekEventTemplate) {\n <ng-container *ngTemplateOutlet=\"customCalendarWeekEventTemplate; context: { $implicit: { id: weekEvent.event.id, start: weekEvent.event.start, end: weekEvent.event.end, description: weekEvent.event.title, color: weekEvent.event.color.primary, backgroundColor: weekEvent.event.color.secondary, meta: weekEvent.event.meta}}\"></ng-container>\n }\n\n</ng-template>\n\n\n@switch (mode) {\n @case (BIZY_CALENDAR_MODE.MONTH) {\n <mwl-calendar-month-view\n [viewDate]=\"_viewDate\"\n [events]=\"_calendarEvents\"\n [weekendDays]=\"weekendDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [refresh]=\"_refresh\"\n [locale]=\"language\"\n [activeDayIsOpen]=\"_activeDayIsOpen\"\n (beforeViewRender)=\"beforeMonthViewRender($event)\"\n [excludeDays]=\"excludeDays\"\n (dayClicked)=\"dayClicked($event.day)\"\n (eventClicked)=\"eventClicked($event.event)\">\n </mwl-calendar-month-view>\n }\n @case (BIZY_CALENDAR_MODE.WEEK) {\n <mwl-calendar-week-view\n [ngClass]=\"{'bizy-calendar--hide-header-date': hideHeaderDate}\"\n [viewDate]=\"_viewDate\"\n [events]=\"_calendarEvents\"\n [weekendDays]=\"weekendDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourDuration]=\"hourMinutesDuration\"\n [hourSegments]=\"hourSegments\"\n [refresh]=\"_refresh\"\n [locale]=\"language\"\n [eventTemplate]=\"customCalendarWeekEventTemplate ? bizyCustomCalendarWeekEventTemplate : ''\"\n [excludeDays]=\"excludeDays\"\n (dayHeaderClicked)=\"dayHeaderClicked($event.day.date)\"\n (hourSegmentClicked)=\"hourSegmentClicked($event.date)\"\n (eventClicked)=\"eventClicked($event.event)\">\n </mwl-calendar-week-view>\n }\n @case (BIZY_CALENDAR_MODE.DAY) {\n <mwl-calendar-day-view\n [viewDate]=\"_viewDate\"\n [events]=\"_calendarEvents\"\n [weekendDays]=\"weekendDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourDuration]=\"hourMinutesDuration\"\n [hourSegments]=\"hourSegments\"\n [refresh]=\"_refresh\"\n [locale]=\"language\"\n [excludeDays]=\"excludeDays\"\n (hourSegmentClicked)=\"hourSegmentClicked($event.date)\"\n (eventClicked)=\"eventClicked($event.event)\">\n </mwl-calendar-day-view>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyCalendarComponent } from './calendar.component';\n\nconst COMPONENTS: Array<any> = [\n BizyCalendarComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyCalendarModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-card',\n templateUrl: './card.html',\n styleUrls: ['./card.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyCardComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-card-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n class=\"bizy-card {{customClass}}\"\n [ngClass]=\"{'bizy-card--disabled': disabled}\">\n\n <span class=\"bizy-card__header\">\n\n <span class=\"bizy-card__header__start bizy-card__slot\">\n <ng-content select=\"[slot=header-start]\"></ng-content>\n </span>\n\n <span class=\"bizy-card__header__end bizy-card__slot\">\n <ng-content select=\"[slot=header-end]\"></ng-content>\n </span>\n\n </span>\n\n <span class=\"bizy-card__content\">\n\n <ng-content></ng-content>\n\n </span>\n\n <span class=\"bizy-card__footer\">\n\n <span class=\"bizy-card__footer__start bizy-card__slot\">\n <ng-content select=\"[slot=footer-start]\"></ng-content>\n </span>\n\n <span class=\"bizy-card__footer__end bizy-card__slot\">\n <ng-content select=\"[slot=footer-end]\"></ng-content>\n </span>\n\n </span>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyCardComponent } from './card.component';\n\nconst COMPONENTS: Array<any> = [\n BizyCardComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyCardModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'bizy-checkbox',\n templateUrl: './checkbox.html',\n styleUrls: ['./checkbox.css'],\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyCheckboxComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-checkbox-${Math.random()}`;\n @Input() selected: boolean = false;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _checkboxId = `bizy-input-checkbox-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.selectedChange.emit(!this.selected);\n this.onSelect.emit(event)\n }\n}\n","<button \n type=\"button\" \n [id]=\"id\" \n (click)=\"_onSelect($event)\" \n (keyup.enter)=\"_onSelect($event)\" \n class=\"bizy-checkbox\"\n [class.bizy-checkbox--readonly]=\"readonly\"\n [class.bizy-checkbox--disabled]=\"disabled\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <input \n class=\"bizy-checkbox__input\" \n type=\"checkbox\" \n [id]=\"_checkboxId\" \n [disabled]=\"disabled\" \n [ngModel]=\"selected\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyCheckboxComponent } from './checkbox.component';\n\nconst COMPONENTS: Array<any> = [\n BizyCheckboxComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyCheckboxModule {}\n","\nimport { Component, ElementRef, inject } from '@angular/core';\n@Component({\n selector: 'bizy-content',\n templateUrl: 'content.html',\n styleUrls: ['content.css'],\n imports: []\n})\nexport class BizyContentComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { BizyContentComponent } from './content.component';\n\nconst COMPONENTS: Array<any> = [\n BizyContentComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyContentModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, Output, EventEmitter, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-input-option',\n templateUrl: './input-option.html',\n styleUrls: ['./input-option.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyInputOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-input-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() selected: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent): void {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n this.#ref.detectChanges();\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n [ngClass]=\"{'bizy-input-option--selected': selected, 'bizy-input-option--disabled': disabled}\"\n class=\"bizy-input-option {{customClass}}\">\n\n <span class=\"bizy-input-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>","import { Directive, ElementRef, Input, OnInit, OnDestroy, Inject } from '@angular/core';\nimport AutoNumeric from 'autonumeric';\n\n@Directive({\n selector: '[bizyCurrencyFormat]'\n})\nexport class BizyCurrencyFormatDirective implements OnInit, OnDestroy {\n @Input('bizyCurrencyFormat') bizyCurrencyFormat: boolean = false;\n @Input('bizyCurrencyOptions') options: AutoNumeric.Options = {};\n\n #autoNumericInstance!: AutoNumeric;\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n if (typeof this.bizyCurrencyFormat === 'undefined' || this.bizyCurrencyFormat === null || this.bizyCurrencyFormat === false) {\n return\n }\n\n this.#autoNumericInstance = new AutoNumeric(this.elementRef.nativeElement, this.options);\n this.elementRef.nativeElement.getValue = this.getValue;\n this.elementRef.nativeElement.setValue = this.setValue;\n }\n\n ngOnDestroy(): void {\n if (this.#autoNumericInstance) {\n this.#autoNumericInstance.remove();\n }\n }\n\n getValue = (): number => {\n return this.#autoNumericInstance.getNumber();\n }\n\n setValue = (value: number): void => {\n this.#autoNumericInstance.set(value);\n }\n}\n","import { takeUntil } from 'rxjs/operators';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild, ContentChildren, QueryList, inject } from '@angular/core';\nimport { Subject, Subscription, debounceTime, interval } from 'rxjs';\nimport { BizyInputOptionComponent } from './input-option/input-option.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BizyCurrencyFormatDirective } from '../../directives/currency-format.directive';\n\n@Component({\n selector: 'bizy-input',\n templateUrl: './input.html',\n styleUrls: ['./input.css'],\n imports: [CommonModule, FormsModule, OverlayModule, BizyCurrencyFormatDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyInputComponent implements OnDestroy {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyInputOptionComponent) options: QueryList<BizyInputOptionComponent>;\n @ViewChild('bizyInputWrapper') bizyInputWrapper: ElementRef;\n @ViewChild('bizyInput') bizyInput: ElementRef;\n @Input() id: string = `bizy-input-${Math.random()}`;\n @Input() name: string = `bizy-input-${Math.random()}`;\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'tel' | 'textarea' | 'currency' = 'text';\n @Input() customClass: string = '';\n @Input() placeholder: string = '';\n @Input() debounceTime: number = 250;\n @Input() rows: number = 4;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Output() valueChange = new EventEmitter<string | number>();\n @Output() onChange = new EventEmitter<string | number>();\n @Output() onEnter = new EventEmitter<PointerEvent>();\n @Output() onBackspace = new EventEmitter<PointerEvent>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() onBlur = new EventEmitter<PointerEvent>();\n @Output() onFocus = new EventEmitter<PointerEvent>();\n\n @Input() set autofocus(autofocus: boolean) {\n if (typeof autofocus === 'undefined' || autofocus === null) {\n return;\n }\n\n this.setFocus(autofocus);\n }\n\n @Input() set value(value: string | number | null) {\n if (typeof value === 'undefined') {\n return;\n }\n\n if (this.type === 'currency') {\n this._currencyValue = Number(value);\n\n if (this.bizyInput && this.bizyInput.nativeElement && (<any>this.bizyInput.nativeElement).getValue) {\n const _value = (<any>this.bizyInput.nativeElement).getValue();\n if (_value !== this._currencyValue) {\n this.bizyInput.nativeElement.setValue(this._currencyValue);\n }\n }\n\n return;\n }\n\n this._value = value;\n }\n\n focused: boolean = false;\n touched: boolean = false;\n opened: boolean = false;\n _value: string | number | null = null;\n _currencyValue: number | null = null;\n\n currencyOptions = 'commaDecimalCharDotSeparator';\n\n #subscription = new Subscription();\n #optionSubscription = new Subscription();\n onChange$ = new Subject<string | number>();\n\n getWidth(): number {\n return this.bizyInputWrapper && this.bizyInputWrapper.nativeElement && this.bizyInputWrapper.nativeElement.offsetWidth ? this.bizyInputWrapper.nativeElement.offsetWidth : 0;\n }\n\n _onchange(value: string) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (this.type === 'currency' && (<any>this.bizyInput.nativeElement).getValue) {\n this._currencyValue = (<any>this.bizyInput.nativeElement).getValue()\n this.onChange$.next(this._currencyValue);\n return;\n }\n\n this.onChange$.next(value);\n }\n\n _onClick(event: PointerEvent) {\n this.onSelect.emit(event);\n this.onOpen()\n }\n\n _onEnter(event: PointerEvent) {\n if (this.disabled || this.readonly || !this.focused) {\n return;\n }\n\n this.onEnter.emit(event);\n }\n\n _onBlur(event: PointerEvent) {\n if (this.type === 'currency') {\n this.bizyInput.nativeElement.setValue(this._currencyValue);\n }\n\n setTimeout(() => {\n this.focused = false;\n this.touched = true;\n this.#ref.detectChanges();\n this.onBlur.emit(event);\n }, 250)\n }\n\n _onBackspace(event: PointerEvent) {\n setTimeout(() => {\n this.onBackspace.emit(event);\n }, 250)\n }\n\n _onFocus(event: PointerEvent) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.focused = true;\n this.#ref.detectChanges();\n this.onFocus.emit(event);\n }\n\n setTouched(touched: boolean) {\n this.touched = touched;\n this.#ref.detectChanges();\n }\n\n ngAfterViewInit() {\n if (this.type === 'currency'&& (<any>this.bizyInput.nativeElement).setValue) {\n this.bizyInput.nativeElement.setValue(this._currencyValue);\n }\n this.#subscription.add(this.onChange$.pipe(debounceTime(this.debounceTime)).subscribe(value => {\n this.valueChange.emit(value);\n this.onChange.emit(value);\n }))\n }\n\n onOpen() {\n if (this.disabled) {\n return;\n }\n\n this.opened = !this.opened;\n this.#ref.detectChanges();\n\n if (!this.options) {\n return;\n }\n\n this.#optionSubscription.unsubscribe();\n this.#optionSubscription = new Subscription();\n this.options.forEach(_option => {\n this.#optionSubscription.add(_option.onSelect.subscribe(() => {\n this.close();\n this.#ref.detectChanges();\n this.#optionSubscription.unsubscribe();\n }));\n });\n }\n\n setFocus(focus: boolean) {\n const interval$ = interval(300);\n const finish$ = new Subject<void>();\n this.#subscription.add(interval$.pipe(takeUntil(finish$)).subscribe(() => {\n if (this.bizyInput && this.bizyInput.nativeElement) {\n if (focus) {\n this.bizyInput.nativeElement.focus();\n this.focused = true;\n } else {\n this.bizyInput.nativeElement.blur();\n this.focused = false;\n }\n \n finish$.next();\n finish$.complete();\n this.#ref.detectChanges();\n }\n }))\n }\n\n close = (event?: PointerEvent & {target: {id: string}}, button?: HTMLButtonElement) => {\n if (button && event && event.target && event.target === button) {\n return;\n }\n\n this.opened = false;\n this.#ref.detectChanges();\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#optionSubscription.unsubscribe();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button\n #bizyInputWrapper\n type=\"button\"\n (click)=\"_onClick($event)\"\n (keyup)=\"_onClick($event)\"\n class=\"bizy-input {{customClass}}\"\n (focus)=\"bizyInput.nativeElement.focus()\"\n cdkOverlayOrigin\n #bizyInputTrigger=\"cdkOverlayOrigin\"\n [ngClass]=\"{'bizy-input--disabled': disabled, 'bizy-input--negative': type === 'currency' && _currencyValue < 0}\">\n\n <span class=\"bizy-input__header\">\n <ng-content select=\"[slot=header]\"></ng-content>\n </span>\n\n <span class=\"bizy-input__content\" [ngClass]=\"{'bizy-input__content--readonly': readonly}\">\n\n <span class=\"bizy-input__content__prefix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </span>\n\n @if (type !== 'textarea') {\n <input\n #bizyInput\n [id]=\"id\"\n class=\"bizy-input__content__input\"\n [type]=\"type === 'currency' ? 'tel' : type\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [bizyCurrencyFormat]=\"type === 'currency'\"\n [bizyCurrencyOptions]=\"currencyOptions\"\n [bizyOnlyPhoneDigits]=\"type === 'tel'\"\n (blur)=\"_onBlur($event)\"\n (focus)=\"_onFocus($event)\"\n (keyup.enter)=\"_onEnter($event)\"\n (keyup.backspace)=\"_onBackspace($event)\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onchange($event)\"/>\n }\n\n @if (type === 'textarea') {\n <textarea\n #bizyInput\n [id]=\"id\"\n [rows]=\"rows\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n class=\"bizy-input__content__input\"\n (blur)=\"_onBlur($event)\"\n (focus)=\"_onFocus($event)\"\n (keyup.enter)=\"_onEnter($event)\"\n (keyup.backspace)=\"_onBackspace($event)\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onchange($event)\">\n </textarea>\n }\n\n <span class=\"bizy-input__content__suffix\">\n <ng-content select=\"[slot=suffix]\"></ng-content>\n </span>\n\n </span>\n\n <span class=\"bizy-input__bottom-line\" [ngClass]=\"{'bizy-input__bottom-line--visible': focused}\"></span>\n\n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayMinWidth]=\"bizyInputWrapper?.offsetWidth\"\n [cdkConnectedOverlayOrigin]=\"bizyInputTrigger\"\n (overlayOutsideClick)=\"close($event, bizyInputWrapper)\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-input__options\">\n\n <ng-content select=\"bizy-input-option\"></ng-content>\n\n </span>\n\n</ng-template>\n\n@if (touched) {\n <span class=\"bizy-input__errors\">\n <ng-content select=\"[slot=error]\"></ng-content>\n </span>\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild } from '@angular/core';\nimport flatpickr from \"flatpickr\";\nimport monthSelectPlugin from 'flatpickr/dist/plugins/monthSelect/index.js';\nimport { Spanish } from \"flatpickr/dist/l10n/es.js\"\nimport { BizyInputComponent } from '../input/input.component';\nimport { CommonModule, DatePipe } from '@angular/common';\n\n\n@Component({\n selector: 'bizy-date-picker',\n templateUrl: './date-picker.html',\n styleUrls: ['./date-picker.css'],\n imports: [CommonModule, BizyInputComponent],\n providers: [DatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyDatePickerComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #datePipe = inject(DatePipe);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild('bizyDatePicker') private bizyDatePicker: BizyInputComponent;\n @Input() id: string = `bizy-date-picker-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() opened: boolean = false;\n @Input() minDate: number | null = null;\n @Input() maxDate: number | null = null;\n @Input() enableSeconds: boolean = false;\n @Output() dateChange = new EventEmitter<number>();\n @Output() rangeChange = new EventEmitter<{from: number, to: number}>();\n @Output() onChange = new EventEmitter<number | {from: number, to: number}>();\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onOpen = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n dateFormat: string = 'Y-m-d';\n datePipeFormat: string = 'yyyy-MM-dd'\n enableTime: boolean = false;\n started: boolean = false;\n noCalendar: boolean = true;\n mode: 'single' | 'range' = 'single';\n dates: Array<number> = [Date.now()];\n time: number = Date.now();\n\n get touched(): boolean {\n return this.bizyDatePicker ? this.bizyDatePicker.touched : false;\n }\n\n @Input() set date(date: number) {\n if (typeof date === 'undefined' || date === null) {\n return;\n }\n\n this.mode = 'single';\n this.dates = [date];\n this.time = date;\n this.value = this.#datePipe.transform(date, this.datePipeFormat, undefined, 'es-AR');\n if (!this.enableTime || !this.started) {\n this.#start();\n }\n }\n\n @Input() set range(range: {from: number, to: number}) {\n if (!range) {\n return;\n }\n\n this.mode = 'range';\n this.dates = [range.from, range.to];\n this.time = range.from;\n this.value = `${this.#datePipe.transform(range.from, this.datePipeFormat, undefined, 'es-AR')} - ${this.#datePipe.transform(range.to, this.datePipeFormat, undefined, 'es-AR')}`; \n this.#start()\n }\n\n value: string = '';\n\n @Input() set type(type: 'date' | 'date-time' | 'time' | 'year-month') {\n if (!type) {\n return;\n }\n\n switch (type) {\n case 'date':\n this.dateFormat = 'Y-m-d';\n this.datePipeFormat = 'yyyy-MM-dd';\n this.enableTime = false;\n this.noCalendar = false;\n break;\n case 'date-time':\n this.dateFormat = 'Y-m-d H:i:S';\n this.datePipeFormat = this.enableSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm';\n this.enableTime = true;\n this.noCalendar = false;\n break;\n case 'time':\n this.dateFormat = 'H:i:S';\n this.datePipeFormat = this.enableSeconds ? 'HH:mm:ss' : 'HH:mm';\n this.enableTime = true;\n this.noCalendar = true;\n break;\n case 'year-month':\n this.dateFormat = 'Y-M';\n this.datePipeFormat = 'yyyy MMMM';\n this.enableTime = false;\n this.noCalendar = false;\n break;\n default:\n this.dateFormat = 'Y-m-d';\n this.datePipeFormat = 'yyyy-MM-dd';\n this.enableTime = false;\n this.noCalendar = false;\n }\n }\n\n ngAfterViewInit() {\n this.#start()\n }\n\n #start() {\n if (this.bizyDatePicker && this.bizyDatePicker.bizyInputWrapper && this.bizyDatePicker.bizyInputWrapper.nativeElement) {\n const plugins = [];\n\n if (this.dateFormat === 'Y-M') {\n plugins.push(monthSelectPlugin({\n shorthand: true\n }));\n }\n\n flatpickr(this.bizyDatePicker.bizyInputWrapper.nativeElement, {\n locale: Spanish,\n mode: this.mode,\n dateFormat: this.dateFormat,\n enableTime: this.enableTime,\n enableSeconds: this.enableSeconds,\n plugins,\n minDate: this.minDate,\n maxDate: this.maxDate,\n noCalendar: this.noCalendar,\n disableMobile: true,\n time_24hr: true,\n defaultDate: this.mode === 'single' ? new Date(this.dates[0]) : this.dates.map(_date => new Date(_date)),\n defaultHour: this.#getHour(this.time),\n defaultMinute: this.#getMinute(this.time),\n onChange: (selectedDates: Array<Date>) => {\n if (this.mode === 'single' && selectedDates[0]) {\n const date = new Date(selectedDates[0]);\n this.dateChange.emit(date.getTime());\n this.onChange.emit(date.getTime());\n } else if (selectedDates[0] && selectedDates[1]) {\n const from = new Date(selectedDates[0]);\n const to = new Date(selectedDates[1]);\n to.setHours(23, 59, 59, 999);\n const range = {from: from.getTime(), to: to.getTime()};\n this.rangeChange.emit(range);\n this.onChange.emit(range);\n }\n },\n onOpen: () => {\n this.opened = true;\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n },\n onClose: () => {\n this.opened = false;\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n }\n });\n\n this.started = true;\n }\n }\n\n setTouched(touched: boolean) {\n if (this.bizyDatePicker) {\n this.bizyDatePicker.setTouched(touched);\n this.#ref.detectChanges();\n }\n }\n \n getNativeElement = () => this.#elementRef?.nativeElement;\n\n #getHour(time: number): number {\n const date = new Date(time);\n return date.getHours();\n }\n\n #getMinute(time: number): number {\n const date = new Date(time);\n return date.getMinutes();\n }\n}","<bizy-input\n #bizyDatePicker\n [readonly]=\"true\"\n [disabled]=\"disabled\"\n (onSelect)=\"onSelect.emit($event)\"\n [value]=\"value\"\n [id]=\"id\"\n class=\"bizy-date-picker {{customClass}}\">\n\n <svg\n slot=\"suffix\"\n id=\"bizy-date-picker-arrow\"\n class=\"bizy-date-picker__arrow\"\n [ngClass]=\"{'bizy-date-picker__arrow--opened': opened}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\">\n <path d=\"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"/>\n </svg>\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=header]\"></ng-content>\n </ng-container>\n\n <ng-container slot=\"suffix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </ng-container>\n\n @if (touched) {\n <ng-container slot=\"error\">\n <ng-content select=\"[slot=error]\"></ng-content>\n </ng-container>\n }\n\n</bizy-input>\n","import { NgModule } from '@angular/core';\nimport { BizyDatePickerComponent } from './date-picker.component';\n\nconst COMPONENTS: Array<any> = [\n BizyDatePickerComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyDatePickerModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-donut-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyDonutChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {show: boolean, label: string, name: string}\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({\n ...data.option,\n series: [{\n ...data.option.series[0],\n minAngle: 1,\n label: {\n ...data.option.series[0].label,\n width: 'none',\n overflow: 'break',\n },\n labelLine: {\n show: data.option.series[0].labelLine?.show,\n length: 50,\n length2: 50\n },\n labelLayout() {\n return { \n moverOverlap: 'shiftY',\n hideOverlap: false\n };\n },\n }], \n toolbox: {\n show: true,\n feature: {\n mySaveAsImage: {\n show: data.download.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: data.download.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n });\n });\n }, 500);\n }\n }\n }\n }\n });\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Output,\n Renderer2,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { IBizyDonutChartData } from './donut-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { BehaviorSubject, Subject, Subscription, auditTime, filter, skip, take, throttleTime } from 'rxjs';\nimport { BizyDonutChartPopupComponent } from './donut-chart-popup.component';\nimport { BizyPopupService } from '../popup';\n\nconst EMPTY_CHART = [0];\nconst DEFAULT_CHART_SIZE = '300px';\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n}\n\nconst DEFAULT_EXPAND = {\n show: true,\n label: 'Expandir'\n}\n\nconst DEFAULT_TOOLTIP = {\n show: true\n}\n\nconst DEFAULT_LEGEND = {\n show: true,\n orient: 'vertical' as 'vertical' | 'horizontal',\n position: {\n x: 'auto' as 'left' | 'right' | 'center',\n y: 'auto' as 'top' | 'bottom' | 'center'\n }\n};\n\nconst DEFAULT_LABEL = {\n show: false,\n overflow: 'break' as 'break' | 'truncate',\n line: true\n}\n\n@Component({\n selector: 'bizy-donut-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyDonutChartComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() centerLabel: string | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() legend: {show?: boolean, orient?: 'vertical' | 'horizontal', position?: {x: 'left' | 'right' | 'center', y: 'top' | 'bottom' | 'center'}} = DEFAULT_LEGEND;\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() expand: { show?: boolean, label?: string} = DEFAULT_EXPAND;\n @Input() label: { show?: boolean, overflow?: 'break' | 'truncate', line?: boolean, formatter?: (item: any ) => string} = DEFAULT_LABEL;\n @Output() onSelect = new EventEmitter<string>();\n @Output() onDownload = new EventEmitter<void>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<{name: string, value: number, itemStyle: {color?: string}}> | typeof EMPTY_CHART = EMPTY_CHART;\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyDonutChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n\n this.#setChartData(EMPTY_CHART);\n }\n }\n\n async #setChartData(data: Array<IBizyDonutChartData> | typeof EMPTY_CHART) {\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n /**\n * setTimeout fix angular render problem\n */\n setTimeout(() => {\n this.#createChartContainer()\n \n if (!this.#chartContainer) {\n return;\n }\n \n if (data && data.length > 0 && data[0] !== 0) {\n this.#data = [];\n (<Array<IBizyDonutChartData>>data).forEach(_d => {\n if (!_d.value) {\n _d.value = 0;\n }\n \n if (!_d.name) {\n _d.name = '---'\n }\n \n const itemStyle = _d.color ? {color: _d.color} : {};\n \n (<Array<{name: string, value: number, itemStyle: {color?: string}}>>this.#data).push({\n name: _d.name,\n value: _d.value,\n itemStyle\n })\n });\n } else {\n this.#data = EMPTY_CHART;\n }\n \n const itemStyle = {\n borderRadius: 10,\n borderColor: '#fff',\n borderWidth: 2\n }\n \n const label = {\n show: this.label?.show ?? DEFAULT_LABEL.show,\n overflow: this.label?.overflow ?? DEFAULT_LABEL.overflow,\n position: 'center',\n formatter: this.label?.formatter\n };\n\n const labelLine = {\n show: this.label?.line ?? DEFAULT_LABEL.line\n }\n \n const series = [{\n type: 'pie',\n radius: ['50%', '70%'],\n center: ['50%', '50%'],\n data: this.#data,\n itemStyle,\n label,\n labelLine\n }];\n \n const textColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-donut-chart-tooltip-color');\n const textBackgroundColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-donut-chart-tooltip-background-color');\n const borderColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-donut-chart-tooltip-border-color');\n \n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n myExpandChart: {\n show: this.expand.show ?? DEFAULT_EXPAND.show,\n icon: 'path://M264 96L120 96C106.7 96 96 106.7 96 120L96 264C96 273.7 101.8 282.5 110.8 286.2C119.8 289.9 130.1 287.8 137 281L177 241L256 320L177 399L137 359C130.1 352.1 119.8 350.1 110.8 353.8C101.8 357.5 96 366.3 96 376L96 520C96 533.3 106.7 544 120 544L264 544C273.7 544 282.5 538.2 286.2 529.2C289.9 520.2 287.9 509.9 281 503L241 463L320 384L399 463L359 503C352.1 509.9 350.1 520.2 353.8 529.2C357.5 538.2 366.3 544 376 544L520 544C533.3 544 544 533.3 544 520L544 376C544 366.3 538.2 357.5 529.2 353.8C520.2 350.1 509.9 352.1 503 359L463 399L384 320L463 241L503 281C509.9 287.9 520.2 289.9 529.2 286.2C538.2 282.5 544 273.7 544 264L544 120C544 106.7 533.3 96 520 96L376 96C366.3 96 357.5 101.8 353.8 110.8C350.1 119.8 352.2 130.1 359 137L399 177L320 256L241 177L281 137C287.9 130.1 289.9 119.8 286.2 110.8C282.5 101.8 273.7 96 264 96z',\n title: this.expand.label ?? DEFAULT_EXPAND.label,\n onclick: () => {\n this.#popup.open({\n component: BizyDonutChartPopupComponent,\n data: {\n download: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show, \n label: this.download?.label ?? DEFAULT_DOWNLOAD.label, \n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n option: this.#echarts.getOption()\n }\n })\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n \n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n };\n \n let legend = {\n show: this.legend?.show ?? DEFAULT_LEGEND.show,\n orient: this.legend?.orient ?? DEFAULT_LEGEND.orient,\n left: this.legend?.position ? this.legend?.position.x : DEFAULT_LEGEND.position.x,\n top: this.legend?.position ? this.legend?.position.y : DEFAULT_LEGEND.position.y,\n };\n \n let graphic: any;\n if (this.centerLabel) {\n let centerLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-donut-chart-center-label-color');\n let { width, height } = this.#chartContainer.getBoundingClientRect();\n let base = Math.min(width, height);\n let fontSize = base / 6;\n graphic = {\n type: 'text',\n left: 'center',\n top: 'center',\n style: {\n text: this.centerLabel,\n fill: centerLabelColor,\n textAlign: 'center',\n fontSize,\n fontWeight: 'bold'\n }\n };\n }\n \n const option: any = {\n tooltip,\n toolbox,\n legend,\n series,\n graphic\n };\n \n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...option, series: option.series.map(_serie => { return {..._serie, data: this.#data}})});\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n });\n })\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-donut-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-donut-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth * 0.99}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BizyDonutChartComponent } from './donut-chart.component';\nimport { BizyDonutChartPopupComponent } from './donut-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyDonutChartComponent,\n BizyDonutChartPopupComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyDonutChartModule {}\n","import Uppy, { ErrorResponse, SuccessResponse, UppyFile } from '@uppy/core';\nimport { Observable, Subject } from 'rxjs';\nimport { Injectable, Renderer2, inject, DOCUMENT } from '@angular/core';\nimport es_ES from '@uppy/locales/lib/es_ES';\nimport en_US from '@uppy/locales/lib/en_US';\nimport Dashboard from '@uppy/dashboard';\nimport XHRUpload from '@uppy/xhr-upload';\n\n\nconst ES = { \n ...es_ES,\n strings: {\n ...es_ES.strings,\n noDuplicates: 'Archivo duplicado: \\'%{fileName}\\'',\n browseFiles: 'buscar archivo',\n dropPasteFiles: 'Soltar archivo aquí, pegar o %{browse}'\n\n }\n};\n\nconst EN = { \n ...en_US,\n strings: {\n ...en_US.strings,\n noDuplicates: 'Duplicated file: \\'%{fileName}\\'',\n browseFiles: 'browse file',\n dropPasteFiles: 'Drop a file here or %{browse}'\n }\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyFileUploaderService {\n #renderer = inject(Renderer2);\n #document = inject(DOCUMENT);\n #fileLoaded = new Subject<UppyFile>();\n #fileRemoved = new Subject<UppyFile>();\n #upload = new Subject<void>();\n #uploadSuccess = new Subject<{file: UppyFile, response: SuccessResponse}>();\n #error = new Subject<{ file?: UppyFile; error: Error, response?: ErrorResponse }>();\n #cancelAll = new Subject<void>();\n #complete = new Subject<{ successful: Array<UppyFile>; failed: Array<UppyFile> }>();\n #disableLocalFiles: boolean = false;\n\n #uppy: Uppy | null = null;\n\n get fileLoaded$(): Observable<UppyFile> {\n return this.#fileLoaded.asObservable();\n }\n\n get fileRemoved$(): Observable<UppyFile> {\n return this.#fileRemoved.asObservable();\n }\n\n get upload$(): Observable<void> {\n return this.#upload.asObservable();\n }\n\n get uploadSuccess$(): Observable<{file: UppyFile, response: SuccessResponse}> {\n return this.#uploadSuccess.asObservable();\n }\n\n get error$(): Observable<{ file?: UppyFile; error: Error }> {\n return this.#error.asObservable();\n }\n\n get cancelAll$(): Observable<void> {\n return this.#cancelAll.asObservable();\n }\n\n get complete$(): Observable<{ successful: Array<UppyFile>; failed: Array<UppyFile> }> {\n return this.#complete.asObservable();\n }\n\n createFileUploader(data: {\n maxFileSize: number | null;\n minFileSize: number | null;\n maxTotalFileSize: number | null;\n maxNumberOfFiles: number | null;\n minNumberOfFiles: number | null;\n dragDropAreaWidth: string;\n dragDropAreaHeight: string;\n allowedFileTypes: Array<string>;\n language: 'es' | 'en';\n templateId: string;\n hideCancelButton: boolean,\n hideUploadButton: boolean,\n hidePauseResumeButton: boolean,\n disableLocalFiles: boolean,\n headers: Record<string, string>;\n }): void {\n const locale = data.language === 'es' ? ES : EN;\n this.#disableLocalFiles = data.disableLocalFiles;\n this.#uppy = new Uppy({\n locale,\n infoTimeout: 2500,\n restrictions: {\n maxFileSize: data.maxFileSize,\n minFileSize: data.minFileSize,\n maxTotalFileSize: data.maxTotalFileSize,\n maxNumberOfFiles: data.maxNumberOfFiles,\n minNumberOfFiles: data.minNumberOfFiles,\n allowedFileTypes: data.allowedFileTypes\n }\n })\n .use(Dashboard, {\n inline: true,\n singleFileFullScreen: false,\n target: `#${data.templateId}`,\n width: data.dragDropAreaWidth,\n height: data.dragDropAreaHeight,\n hideCancelButton: data.hideCancelButton,\n hideUploadButton: data.hideUploadButton,\n hidePauseResumeButton: data.hidePauseResumeButton,\n disableLocalFiles: data.disableLocalFiles\n })\n .use(XHRUpload, {\n endpoint: '',\n headers: data.headers,\n getResponseData: (responseText, response) => {\n return {\n fileId: responseText,\n response\n };\n }\n })\n .on('file-added', file => {\n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n this.#fileLoaded.next(file);\n })\n .on('file-removed', file => {\n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n this.#fileRemoved.next(file);\n })\n .on('upload', data => {\n this.#upload.next();\n })\n .on('upload-success', (file, response) => {\n if (file) {\n this.#uploadSuccess.next({file, response});\n }\n })\n .on('upload-error', (file, error, response) => {\n this.#error.next({ file, error, response });\n })\n .on('restriction-failed', (file, error) => {\n this.#error.next({ file, error });\n })\n .on('error', error => {\n this.#error.next({ error });\n })\n .on('cancel-all', () => {\n this.#cancelAll.next();\n })\n .on('complete', result => {\n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n this.#complete.next(result);\n });\n \n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n }\n\n load = (data: { id: string; file: File }): void => {\n if (!this.#uppy) {\n return;\n }\n\n this.#uppy.addFile({\n name: data.file.name, // File name\n type: data.file.type, // File type\n data: data.file, // File blob\n meta: {\n // Optional, store the directory path of a file so Uppy can tell identical files in different directories apart.\n relativePath: data.file.webkitRelativePath,\n referenceId: data.id\n },\n source: 'Local', // Optional, determines the source of the file, for example, Instagram.\n isRemote: false // Optional, set to true if actual file is not in the browser, but on some remote server, for example,\n // when using companion in combination with Instagram.\n });\n }\n\n disable(value: boolean) {\n if (!this.#uppy) {\n return;\n }\n\n const dashboard = this.#uppy.getPlugin('Dashboard');\n dashboard.setOptions({ disabled: value });\n }\n\n upload = (data: {endpoint: string, headers?: Record<string,string>}) => {\n if (!this.#uppy) {\n return;\n }\n\n this.#uppy.getPlugin('XHRUpload')!.setOptions({\n endpoint: data.endpoint,\n headers: data.headers ?? {}\n });\n this.#uppy.upload();\n }\n\n cleanAllFiles = () => {\n if (!this.#uppy) {\n return;\n }\n\n this.#uppy.cancelAll();\n }\n\n #removeUnnecessaryOptions = (remove: boolean) => {\n setTimeout(() => {\n if (!remove) {\n return;\n }\n\n const browseButton = this.#document.getElementsByClassName('uppy-Dashboard-browse')[0];\n if (browseButton) {\n this.#renderer.setStyle(browseButton, 'display', 'none');\n }\n\n const dragAndDropText = this.#document.getElementsByClassName('uppy-Dashboard-AddFiles-title')[0];\n if (dragAndDropText) {\n this.#renderer.setStyle(dragAndDropText, 'display', 'none');\n }\n\n const addMoreFilesButton = this.#document.getElementsByClassName(\n 'uppy-DashboardContent-addMore'\n )[0];\n if (addMoreFilesButton) {\n this.#renderer.setStyle(addMoreFilesButton, 'display', 'none');\n }\n\n const doneButton = this.#document.getElementsByClassName('uppy-StatusBar-actionBtn--done')[0];\n if (doneButton) {\n this.#renderer.setStyle(doneButton, 'display', 'none');\n }\n }, 0);\n }\n}\n","import { Subject, Subscription } from 'rxjs';\nimport { UppyFile } from '@uppy/core';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, OnDestroy, Output } from '@angular/core';\nimport { BizyFileUploaderService } from './file-uploader.service';\n@Component({\n selector: 'bizy-file-uploader',\n template: '<div [id]=\"TEMPLATE_ID\"></div>',\n providers: [BizyFileUploaderService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFileUploaderComponent implements AfterViewInit, OnDestroy {\n readonly #elementRef = inject(ElementRef);\n readonly #fileUploader = inject(BizyFileUploaderService);\n @Input() dragDropAreaWidth: string = '100%';\n @Input() dragDropAreaHeight: string = '16rem';\n @Input() language: 'es' | 'en' = 'es';\n @Input() headers: Record<string, string> = {};\n @Input() maxFileSize: number | null = null;\n @Input() minFileSize: number | null = null;\n @Input() maxTotalFileSize: number | null = 31458000; // 30MB\n @Input() maxNumberOfFiles: number | null = null;\n @Input() minNumberOfFiles: number | null = null;\n @Input() allowedFileTypes = ['.wav'];\n @Input() hideUploadButton: boolean = true;\n @Input() hidePauseResumeButton: boolean = true;\n @Input() hideCancelButton: boolean = false;\n @Input() disableLocalFiles: boolean = false;\n @Input() load: Subject<{id: string; file: File}>;\n @Input() upload: Subject<{endpoint: string, headers?: Record<string,string>}>;\n\n @Input() set disabled(value: boolean) {\n this.#fileUploader.disable(Boolean(value));\n };\n\n @Output() completed = new EventEmitter<{successful: Array<{fileId: string, meta: unknown}>, failed: Array<{fileId: string, meta: unknown}>}>();\n @Output() loadedFiles = new EventEmitter<Array<UppyFile>>();\n \n\n #subscription = new Subscription();\n #files: Set<UppyFile> = new Set();\n\n readonly TEMPLATE_ID = 'bizy-file-uploader-template';\n\n ngAfterViewInit(): void {\n this.#fileUploader.createFileUploader({\n maxFileSize: this.maxFileSize,\n minFileSize: this.minFileSize,\n maxTotalFileSize: this.maxTotalFileSize,\n maxNumberOfFiles: this.maxNumberOfFiles,\n minNumberOfFiles: this.minNumberOfFiles,\n dragDropAreaWidth: this.dragDropAreaWidth,\n dragDropAreaHeight: this.dragDropAreaHeight,\n allowedFileTypes: this.allowedFileTypes,\n language: this.language,\n templateId: this.TEMPLATE_ID,\n hideCancelButton: this.hideCancelButton,\n hideUploadButton: this.hideUploadButton,\n hidePauseResumeButton: this.hidePauseResumeButton,\n disableLocalFiles: this.disableLocalFiles,\n headers: this.headers,\n });\n\n if (this.upload) {\n this.#subscription.add(this.upload.subscribe(data => {\n if (this.#files.size === 0 || (this.minNumberOfFiles && this.#files.size < this.minNumberOfFiles)) {\n this.completed.emit({successful: [], failed: []});\n return;\n }\n \n this.#fileUploader.upload(data);\n }));\n }\n\n if (this.load) {\n this.#subscription.add(this.load.subscribe(data => {\n if (this.maxNumberOfFiles && this.#files.size >= this.maxNumberOfFiles) {\n return;\n }\n \n this.#fileUploader.load(data);\n }));\n }\n\n this.#subscription.add(this.#fileUploader.complete$.subscribe(res => {\n const successful: Array<{fileId: string, meta: unknown}> = [];\n const failed: Array<{fileId: string, meta: unknown}> = [];\n res.successful.forEach(_file => {\n if (_file.response && _file.response.body && _file.response.body.fileId) {\n successful.push({fileId: _file.response.body.fileId as string, meta: _file.meta});\n }\n });\n res.failed.forEach(_file => {\n if (_file.response && _file.response.body && _file.response.body.fileId) {\n failed.push({fileId: _file.response.body.fileId as string, meta: _file.meta});\n }\n });\n this.completed.emit({successful, failed});\n }));\n\n this.#subscription.add(this.#fileUploader.fileLoaded$.subscribe(file => {\n this.#files.add(file);\n this.loadedFiles.emit(Array.from(this.#files));\n }));\n\n this.#subscription.add(this.#fileUploader.fileRemoved$.subscribe(file => {\n this.#files.delete(file);\n this.loadedFiles.emit(Array.from(this.#files));\n }));\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#fileUploader.cleanAllFiles();\n this.#subscription.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyFileUploaderComponent } from './file-uploader.component';\nimport { BizyFileUploaderService } from './file-uploader.service';\n\nconst COMPONENTS: Array<any> = [\n BizyFileUploaderComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [BizyFileUploaderService]\n})\n\nexport class BizyFileUploaderModule {}\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, inject, ElementRef } from '@angular/core';\nimport { AbstractControl, FormBuilder, Validators } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { BizyInputComponent } from '../../input/input.component';\n\n@Component({\n selector: 'bizy-filter-section-range-option',\n templateUrl: './filter-section-range-option.html',\n styleUrls: ['./filter-section-range-option.css'],\n imports: [BizyInputComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionRangeOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #fb = inject(FormBuilder);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-filter-section-range-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onChange = new EventEmitter<{min: number | null, max: number | null}>();\n\n _minLimit: number;\n _maxLimit: number;\n\n #activated = new BehaviorSubject<boolean>(false);\n\n get activated$(): Observable<boolean> {\n return this.#activated.asObservable();\n }\n\n #form = this.#fb.group({\n minValue: [null],\n maxValue: [null]\n });;\n\n @Input() set min(min: number | null) {\n if (typeof min === 'undefined' || min === null) {\n this.minValue.setValue(null);\n } else {\n this.minValue.setValue(Number(min));\n }\n\n this.#activated.next(Boolean(min) || min === 0 || Boolean(this.maxValue.value) || this.maxValue.value === 0);\n this.#ref.detectChanges();\n };\n\n @Input() set max(max: number | null) {\n if (typeof max === 'undefined' || max === null) {\n this.maxValue.setValue(null);\n } else {\n this.maxValue.setValue(Number(max));\n }\n\n this.#activated.next(Boolean(max) || max === 0 || Boolean(this.minValue.value) || this.minValue.value === 0);\n this.#ref.detectChanges();\n };\n\n @Input() set minLimit(min: number | null) {\n if (typeof min === 'undefined' || min === null) {\n return;\n }\n\n this._minLimit = min;\n if (typeof this._maxLimit === 'undefined' || this._maxLimit === null) {\n this.minValue.setValidators([Validators.max(min)])\n } else {\n this.minValue.setValidators([Validators.max(this._maxLimit), Validators.min(min)])\n }\n };\n\n @Input() set maxLimit(max: number | null) {\n if (typeof max === 'undefined' || max === null) {\n return;\n }\n\n this._maxLimit = max;\n if (typeof this._minLimit === 'undefined' || this._minLimit === null) {\n this.maxValue.setValidators([Validators.max(max)])\n } else {\n this.maxValue.setValidators([Validators.min(this._minLimit), Validators.max(max)])\n }\n };\n\n setMinValue(value: number | string) {\n let min = value === '' ? null : Number(value);\n const max = this.maxValue.value === null || this.maxValue.value === '' ? null : Number(this.maxValue.value);\n\n if (min !== null && max !== null && max < min) {\n return;\n }\n\n if (typeof this._minLimit !== 'undefined' && this._minLimit !== null && min && min < this._minLimit) {\n min = this._minLimit;\n }\n\n this.onChange.emit({min, max});\n this.#activated.next(Boolean(min) || Boolean(max) || min === 0 || max === 0);\n this.#ref.detectChanges();\n }\n \n setMaxValue(value: number | string | null) {\n let max = !Boolean(value) && value !== 0 ? null : Number(value);\n\n const min = this.minValue.value === null || this.minValue.value === '' ? null : Number(this.minValue.value);\n\n if (min !== null && max !== null && max < min) {\n return;\n }\n\n if (typeof this._maxLimit !== 'undefined' && this._maxLimit !== null && max && max > this._maxLimit) {\n max = this._maxLimit;\n }\n\n this.onChange.emit({min, max});\n this.#activated.next(Boolean(min) || Boolean(max) || min === 0 || max === 0);\n this.#ref.detectChanges();\n }\n\n get minValue(): AbstractControl<number | string> {\n return this.#form.get('minValue')!;\n }\n\n get maxValue(): AbstractControl<number | string> {\n return this.#form.get('maxValue')!;\n }\n\n onClean = () => {\n this.minValue.setValue(null);\n this.maxValue.setValue(null);\n this.onChange.emit({min: null, max: null});\n this.#activated.next(false);\n this.#ref.detectChanges();\n }\n\n getId = () => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n isActivated = () => {\n return this.#activated.value;\n }\n}","<div \n class=\"bizy-filter-section-range-option {{customClass}}\"\n [id]=\"id\">\n\n <span class=\"bizy-filter-section-range-option__inputs\">\n\n <bizy-input\n class=\"bizy-filter-section-range-option__input\"\n type=\"number\"\n [value]=\"minValue.value\"\n (onChange)=\"setMinValue($event)\">\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=min-header]\"></ng-content>\n </ng-container>\n\n </bizy-input>\n\n <bizy-input\n class=\"bizy-filter-section-range-option__input\"\n type=\"number\"\n [value]=\"maxValue.value\"\n (onChange)=\"setMaxValue($event)\">\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=max-header]\"></ng-content>\n </ng-container>\n\n </bizy-input>\n\n </span>\n \n</div>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, inject } from '@angular/core';\nimport { BizyCheckboxComponent } from '../../checkbox/checkbox.component';\n\n@Component({\n selector: 'bizy-filter-section-checkbox-option',\n templateUrl: './filter-section-checkbox-option.html',\n styleUrls: ['./filter-section-checkbox-option.css'],\n imports: [BizyCheckboxComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionCheckboxOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-filter-section-checkbox-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onChange = new EventEmitter<boolean>();\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n this._selected = selected;\n this.onSelect(selected);\n }\n\n _selected: boolean = true;\n\n onSelect = (selected: boolean) => {\n if (this.disabled) {\n return;\n }\n\n this._selected = selected;\n this.onChange.emit(selected);\n this.#ref.detectChanges();\n }\n\n getSelected = () => {\n return this._selected;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getId = () => {\n return this.id;\n }\n}","<div \n class=\"bizy-filter-section-checkbox-option {{customClass}}\"\n [id]=\"id\"\n (click)=\"onSelect(!_selected)\"\n (keyup.enter)=\"onSelect(!_selected)\">\n\n <ng-content></ng-content>\n\n <bizy-checkbox \n class=\"bizy-filter-section-checkbox-option__checkbox\"\n [selected]=\"_selected\"\n [disabled]=\"disabled\">\n </bizy-checkbox>\n \n</div>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { BizyInputComponent } from '../../input/input.component';\n\n@Component({\n selector: 'bizy-filter-section-search-option',\n templateUrl: './filter-section-search-option.html',\n styleUrls: ['./filter-section-search-option.css'],\n imports: [BizyInputComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionSearchOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-filter-section-search-option-${Math.random()}`;\n @Input() customClass: string = '';\n @Output() valueChange = new EventEmitter<string>();\n @Output() onChange = new EventEmitter<string>();\n\n _value: string = '';\n\n #activated = new BehaviorSubject<boolean>(false);\n\n get activated$(): Observable<boolean> {\n return this.#activated.asObservable();\n }\n\n @Input() set value(value: string) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (Array.isArray(value)) {\n value = '';\n } \n\n this._value = value;\n this.#activated.next(Boolean(value));\n this.#ref.detectChanges();\n }\n\n _onChange(value: string) {\n this.valueChange.emit(value);\n this.onChange.emit(value);\n this.#activated.next(Boolean(value));\n this.#ref.detectChanges();\n }\n\n getId = () => {\n return this.id;\n }\n\n getValue = () => {\n return this._value;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n isActivated = () => {\n return this.#activated.value;\n }\n}","<bizy-input\n [id]=\"id\" \n (onChange)=\"_onChange($event)\"\n [value]=\"_value\"\n class=\"bizy-filter-section-search-option {{customClass}}\">\n\n <span slot=\"header\"></span>\n\n <ng-container slot=\"prefix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </ng-container>\n\n <ng-container slot=\"suffix\">\n <ng-content select=\"[slot=suffix]\"></ng-content>\n </ng-container>\n\n</bizy-input>\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ContentChildren, QueryList, ContentChild, ChangeDetectorRef, DOCUMENT, ElementRef, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { BizyFilterSectionRangeOptionComponent } from '../filter-section-range-option/filter-section-range-option.component';\nimport { BizyFilterSectionCheckboxOptionComponent } from '../filter-section-checkbox-option/filter-section-checkbox-option.component';\nimport { BizyFilterSectionSearchOptionComponent } from '../filter-section-search-option/filter-section-search-option.component';\nimport { BizyCheckboxComponent } from '../../checkbox/checkbox.component';\n\n@Component({\n selector: 'bizy-filter-section',\n templateUrl: './filter-section.html',\n styleUrls: ['./filter-section.css'],\n imports: [BizyCheckboxComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyFilterSectionCheckboxOptionComponent) private checkboxOptions: QueryList<BizyFilterSectionCheckboxOptionComponent>;\n @ContentChild(BizyFilterSectionRangeOptionComponent) private rangeOption: BizyFilterSectionRangeOptionComponent;\n @ContentChild(BizyFilterSectionSearchOptionComponent) private searchOption: BizyFilterSectionSearchOptionComponent;\n @Input() id: string = `bizy-filter-section-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<boolean>();\n\n #subscription = new Subscription();\n\n #mutationObserver: MutationObserver;\n #checkboxOptions: Array<BizyFilterSectionCheckboxOptionComponent> = [];\n _activated: boolean = false;\n\n\n ngAfterViewInit() {\n this.#mutationObserver = new MutationObserver(() => {\n if (this.checkboxOptions && (this.#checkboxOptions.length !== 0 || this.checkboxOptions.length !== 0) && !this.#optionsAreEqual(this.#checkboxOptions, this.checkboxOptions.toArray())) {\n \n this.#checkboxOptions = this.checkboxOptions.toArray();\n\n const selectedOptions = this.checkboxOptions.filter(_option => _option.getSelected() === true);\n this._activated = selectedOptions.length !== this.checkboxOptions.length;\n this.onSelect.emit(this._activated);\n this.#ref.detectChanges();\n \n this.checkboxOptions.forEach(_option => {\n\n this.#subscription.add(_option.onChange.subscribe(() => {\n const selectedOptions = this.checkboxOptions.filter(_option => _option.getSelected() === true);\n this._activated = selectedOptions.length !== this.checkboxOptions.length;\n this.onSelect.emit(this._activated);\n this.#ref.detectChanges();\n }));\n });\n } else if (this.rangeOption) {\n this.#subscription.add(this.rangeOption.activated$.subscribe(value => {\n setTimeout(() => {\n this._activated = value;\n this.onSelect.emit(value);\n this.#ref.detectChanges();\n })\n }));\n this.#mutationObserver.disconnect();\n } else if (this.searchOption) {\n this.#subscription.add(this.searchOption.activated$.subscribe(value => {\n setTimeout(() => { \n this._activated = value;\n this.onSelect.emit(value);\n this.#ref.detectChanges();\n });\n }));\n this.#mutationObserver.disconnect();\n }\n });\n\n this.#mutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n }\n\n _onSelect = (selected: boolean) => {\n if (this.disabled || this.rangeOption) {\n return;\n }\n\n this.checkboxOptions.forEach(_option => {\n _option.onSelect(selected);\n })\n }\n\n onClean = () => {\n if (!this.rangeOption) {\n return;\n }\n\n this.rangeOption.onClean();\n }\n\n isActivated = () => {\n return this._activated;\n }\n\n getId = () => {\n return this.id;\n }\n\n #optionsAreEqual(arr1: Array<BizyFilterSectionCheckboxOptionComponent>, arr2: Array<BizyFilterSectionCheckboxOptionComponent>) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n arr1.sort((a, b) => String(a.id).localeCompare(String(b.id)));\n arr2.sort((a, b) => String(a.id).localeCompare(String(b.id)));\n\n for (let i = 0; i < arr1.length; i++) {\n for (let key in arr1[i]) {\n if (arr1[i][key] !== arr2[i][key]) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n if (this.#mutationObserver) {\n this.#mutationObserver.disconnect();\n }\n }\n}","<div class=\"bizy-filter-section {{customClass}}\" [id]=\"id\">\n\n <span class=\"bizy-filter-section__header\">\n\n <ng-content select=\"[slot=header]\"></ng-content>\n\n <bizy-checkbox \n class=\"bizy-filter-section__header__checkbox\"\n (onSelect)=\"_onSelect(_activated)\"\n [selected]=\"!_activated\"\n [disabled]=\"disabled\">\n </bizy-checkbox>\n\n <button \n type=\"button\"\n class=\"bizy-filter-section__header__clear-button\"\n (click)=\"onClean()\"\n (keyup.enter)=\"onClean()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" class=\"bizy-filter-section__header__clear-icon\">\n <path d=\"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"/>\n </svg>\n </button>\n \n </span>\n\n <span class=\"bizy-filter-section__options\">\n\n <ng-content select=\"bizy-filter-section-checkbox-option\"></ng-content>\n\n <ng-content select=\"bizy-filter-section-range-option\"></ng-content>\n\n <ng-content select=\"bizy-filter-section-search-option\"></ng-content>\n\n </span>\n\n</div>","import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-filter-sections',\n templateUrl: './filter-sections.html',\n styleUrls: ['./filter-sections.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionsComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, DOCUMENT, ElementRef, inject } from '@angular/core';\nimport { BizyFilterSectionComponent } from './filter-section/filter-section.component';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BizyFilterSectionsComponent } from './filter-sections/filter-sections.component';\n\n@Component({\n selector: 'bizy-filter',\n templateUrl: './filter.html',\n styleUrls: ['./filter.css'],\n imports: [\n CommonModule,\n OverlayModule,\n BizyFilterSectionsComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n @ContentChildren(BizyFilterSectionComponent, { descendants: true }) private sections: QueryList<BizyFilterSectionComponent>;\n @Input() id: string = `bizy-filter-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() opened: boolean = false;\n @Output() onOpen = new EventEmitter<PointerEvent>();\n @Output() onChange = new EventEmitter<boolean>();\n\n _filterWidth: number;\n\n _activated: boolean = false;\n\n #subscription = new Subscription();\n\n ngAfterViewInit() {\n const mutationObserver = new MutationObserver(() => {\n if (this.sections && this.sections.length > 0) {\n const activatedSections = this.sections.filter(_section => _section.isActivated() === true);\n const activated = activatedSections.length > 0;\n if (this._activated !== activated) {\n this._activated = activated;\n this.onChange.emit(this._activated);\n this.#ref.detectChanges();\n }\n\n this.sections.forEach(_section => {\n this.#subscription.add(_section.onSelect.subscribe(() => {\n const activatedSections = this.sections.filter(_section => _section.isActivated() === true);\n const activated = activatedSections.length > 0;\n if (this._activated !== activated) {\n this._activated = activated;\n this.onChange.emit(this._activated);\n this.#ref.detectChanges();\n }\n }));\n });\n\n mutationObserver.disconnect();\n }\n });\n\n mutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n }\n\n _onOpen = (event: any) => {\n if (this.disabled) {\n return;\n }\n\n this.opened = !this.opened;\n\n if (event && event.srcElement && event.srcElement.offsetWidth) {\n this._filterWidth = event.srcElement.offsetWidth; \n }\n\n this.onOpen.emit(event);\n }\n\n close = (event: PointerEvent & {target: {id: string}}) => {\n if (event && event.target && event.target.id && event.target.id === this.id) {\n return;\n }\n\n this.opened = false;\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}","<button \n type=\"button\"\n class=\"bizy-filter {{customClass}}\"\n [ngClass]=\"{'bizy-filter--disabled': disabled}\"\n [id]=\"id\"\n (click)=\"_onOpen($event)\"\n (keyup.enter)=\"_onOpen($event)\"\n cdkOverlayOrigin \n #bizyFilterTrigger=\"cdkOverlayOrigin\">\n\n <span class=\"bizy-filter__content\">\n <ng-content></ng-content>\n </span>\n\n <span class=\"bizy-filter__badge\" [ngClass]=\"{'bizy-filter__badge--visible': _activated}\"></span>\n \n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayMinWidth]=\"_filterWidth\"\n [cdkConnectedOverlayOrigin]=\"bizyFilterTrigger\"\n (overlayOutsideClick)=\"close($event)\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-filter__sections-wrapper\">\n\n <bizy-filter-sections>\n \n <ng-content select=\"bizy-filter-section\"></ng-content>\n \n </bizy-filter-sections>\n\n <ng-content select=\"bizy-filter-content\"></ng-content>\n\n </span>\n\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-filter-content',\n templateUrl: './filter-content.html',\n styleUrls: ['./filter-content.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterContentComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyFilter'\n})\nexport class BizyFilterPipe implements PipeTransform {\n transform<T>(\n items: Array<T>,\n property: string,\n states?: string | number | boolean | Array<{ id: string | number | boolean; selected: boolean }>,\n ): Array<T> {\n if (!items || items.length === 0) {\n return [];\n }\n\n if (!property || typeof states === 'undefined' || states === null) {\n return items;\n }\n\n if (!Array.isArray(states)) {\n return items.filter(_item => _item[property] === states);\n }\n\n if (states.length === 0) {\n return items;\n }\n const _selected = states.filter(_state => _state.selected);\n if (_selected.length === states.length) {\n return items;\n }\n\n let output: Array<T> = [];\n states.forEach(state => {\n if (!state.selected) {\n return;\n }\n\n const res = items.filter(_item => {\n let _state: T = _item;\n const nestedProperty = property.split('.');\n nestedProperty.forEach(_property => {\n _state = _state[_property];\n });\n\n if (typeof state.id === 'boolean') {\n return Boolean(_state) === state.id;\n }\n\n if (Array.isArray(_state)) {\n return _state.includes(state.id);\n }\n\n return _state === state.id;\n });\n output = output.concat(res);\n });\n\n function safeStringify(obj: unknown): string {\n const seen = new WeakSet();\n\n function replacer(_key: string, value: unknown) {\n // Handle circular references\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) return '[Circular]';\n seen.add(value);\n }\n\n // Handle BigInt\n if (typeof value === 'bigint') return value.toString() + 'n';\n\n // Handle Symbol and Function\n if (typeof value === 'symbol') return value.toString();\n if (typeof value === 'function') return `[Function: ${value.name || 'anonymous'}]`;\n\n // Preserve Dates\n if (value instanceof Date) return `__DATE__:${value.toISOString()}`;\n\n return value;\n }\n\n return JSON.stringify(obj, replacer);\n }\n\n function uniqueObjects<T>(items: T[]): T[] {\n const seen = new Set<string>();\n const result: T[] = [];\n\n for (const item of items) {\n const str = safeStringify(item);\n if (!seen.has(str)) {\n seen.add(str);\n result.push(item);\n }\n }\n\n return result;\n }\n\n return uniqueObjects(output);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyRangeFilter'\n})\nexport class BizyRangeFilterPipe implements PipeTransform {\n transform<T>(\n items: Array<T>,\n property: string,\n range: { min: number | null; max: number | null }\n ): Array<T> {\n if (!items || items.length === 0) {\n return [];\n }\n\n if (!property || !range) {\n return items;\n }\n\n const min = range.min ?? null;\n const max = range.max ?? null;\n\n const activatedFilter = min !== null || max !== null;\n\n let itemsWithoutProperty: Array<T> = [];\n\n const output = items.filter(_item => {\n let _value: any = _item;\n const nestedProperty = property.split('.');\n for (let i = 0; i < nestedProperty.length; i++) {\n const _property = nestedProperty[i];\n if (typeof _value[_property] === 'undefined' || _value[_property] === null) {\n itemsWithoutProperty.push(_item);\n return !activatedFilter;\n }\n\n _value = _value[_property];\n }\n\n if (isNaN(_value)) {\n return !activatedFilter;\n }\n\n return (min === null || _value >= min) && (max === null || _value <= max);\n });\n\n return itemsWithoutProperty.length === items.length ? items : output;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyFilterComponent } from './filter.component';\nimport { BizyFilterContentComponent } from './filter-content/filter-content.component';\nimport { BizyFilterSectionCheckboxOptionComponent } from './filter-section-checkbox-option/filter-section-checkbox-option.component';\nimport { BizyFilterSectionRangeOptionComponent } from './filter-section-range-option/filter-section-range-option.component';\nimport { BizyFilterSectionSearchOptionComponent } from './filter-section-search-option/filter-section-search-option.component';\nimport { BizyFilterSectionsComponent } from './filter-sections/filter-sections.component';\nimport { BizyFilterPipe, BizyRangeFilterPipe } from './pipes';\nimport { BizyFilterSectionComponent } from './filter-section/filter-section.component';\n\nconst COMPONENTS: Array<any> = [\n BizyFilterComponent,\n BizyFilterSectionComponent,\n BizyFilterContentComponent,\n BizyFilterSectionCheckboxOptionComponent,\n BizyFilterSectionRangeOptionComponent,\n BizyFilterSectionSearchOptionComponent,\n BizyFilterSectionsComponent\n];\n\nconst PIPES: Array<any> = [\n BizyFilterPipe,\n BizyRangeFilterPipe\n];\n\n@NgModule({\n imports: COMPONENTS.concat(PIPES),\n exports: COMPONENTS.concat(PIPES),\n providers: PIPES\n})\n\nexport class BizyFilterModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, Output, EventEmitter, ElementRef, inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Component({\n selector: 'bizy-select-option',\n templateUrl: './select-option.html',\n styleUrls: ['./select-option.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySelectOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-select-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<void>();\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n this.#selected.next(selected)\n }\n\n #selected = new BehaviorSubject<boolean>(false)\n\n get selected$(): Observable<boolean> {\n return this.#selected.asObservable();\n }\n\n _onSelect(): void {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit();\n this.#ref.detectChanges();\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.#selected.value;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getValue = (): string => {\n const value = this.#elementRef?.nativeElement?.firstChild?.children[0]?.innerText;\n return value ?? '';\n }\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"_onSelect()\"\n (keyup.enter)=\"_onSelect()\"\n [ngClass]=\"{'bizy-select-option--selected': (selected$ | async), 'bizy-select-option--disabled': disabled}\"\n class=\"bizy-select-option {{customClass}}\">\n\n <span class=\"bizy-select-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>","import { BizySelectOptionComponent } from './select-option/select-option.component';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, QueryList, ContentChildren, AfterViewInit, ViewChild, ContentChild, TemplateRef, inject, ViewContainerRef, ElementRef } from '@angular/core';\nimport { filter, Subscription } from 'rxjs';\nimport { BizyInputComponent } from '../input/input.component';\nimport { Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-select',\n templateUrl: './select.html',\n styleUrls: ['./select.css'],\n imports: [CommonModule, BizyInputComponent, OverlayModule, PortalModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySelectComponent implements AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n #viewContainerRef = inject(ViewContainerRef);\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n @ContentChildren(BizySelectOptionComponent) options: QueryList<BizySelectOptionComponent>;\n @ViewChild('bizyInput') bizyInput: BizyInputComponent;\n @Input() id: string = `bizy-select-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() placeholder: string = '';\n @Input() customClass: string = '';\n @Input() opened: boolean = false;\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() onOpen = new EventEmitter<boolean>();\n\n _optionValue: string = '';\n optionPortal: Portal<any>;\n templatePortal: TemplatePortal<any> | null = null;\n\n #subscription = new Subscription();\n #contentChildrenSubscription = new Subscription();\n\n get touched(): boolean {\n return this.bizyInput ? this.bizyInput.touched : false;\n }\n\n ngAfterViewInit() {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.#viewContainerRef);\n this._optionValue = '';\n\n const option = this.options.find(_option => _option.getSelected());\n\n if (option) {\n this._optionValue = option.getValue();\n }\n\n this.options.forEach(_option => {\n this.#subscription.add(_option.onSelect.subscribe(() => {\n this.close();\n this.#ref.detectChanges();\n }));\n\n this.#subscription.add(_option.selected$.pipe(filter(_value => _value === true)).subscribe(() => {\n this._optionValue = _option.getValue();\n this.#ref.detectChanges();\n }));\n });\n\n this.#contentChildrenSubscription.add(this.options.changes.subscribe(() => {\n this.#subscription.unsubscribe();\n this.#subscription = new Subscription();\n\n this.options.forEach(_option => {\n this.#subscription.add(_option.onSelect.subscribe(() => {\n this.close();\n this.#ref.detectChanges();\n }));\n\n this.#subscription.add(_option.selected$.pipe(filter(_value => _value === true)).subscribe(() => {\n this._optionValue = _option.getValue();\n this.#ref.detectChanges();\n }));\n });\n }));\n this.#ref.detectChanges();\n }\n\n _onOpen(event: PointerEvent) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.opened = !this.opened;\n this.onSelect.emit(event);\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n\n if (this.bizyInput) {\n this.bizyInput.setFocus(true);\n }\n this.#ref.detectChanges();\n }\n\n close = (event?: PointerEvent & {target: {id: string}}, select?: BizyInputComponent) => {\n if (select && event && event.target && event.target === select.bizyInputWrapper.nativeElement) {\n return;\n }\n\n this.opened = false;\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n this.#ref.detectChanges();\n }\n\n setTouched(touched: boolean) {\n if (this.bizyInput) {\n this.bizyInput.setTouched(touched);\n this.#ref.detectChanges();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#contentChildrenSubscription.unsubscribe();\n }\n}","<bizy-input\n #bizyInput\n [readonly]=\"true\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [value]=\"_optionValue\"\n [ngClass]=\"{'bizy-select--readonly': readonly}\"\n (onSelect)=\"_onOpen($event); bizyInput?.setTouched(true)\"\n (onEnter)=\"_onOpen($event); bizyInput?.setTouched(true)\"\n class=\"bizy-select {{customClass}}\"\n cdkOverlayOrigin\n #bizySelectTrigger=\"cdkOverlayOrigin\">\n\n @if (!readonly) {\n <svg\n slot=\"suffix\"\n id=\"bizy-select-arrow\"\n class=\"bizy-select__arrow\"\n [ngClass]=\"{'bizy-select__arrow--opened': opened}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\">\n <path d=\"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"/>\n </svg>\n }\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=header]\"></ng-content>\n </ng-container>\n\n <ng-container slot=\"prefix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </ng-container>\n\n</bizy-input>\n\n@if (touched) {\n <span class=\"bizy-select__errors\">\n <ng-content select=\"[slot=error]\"></ng-content>\n </span>\n}\n\n<ng-template #templatePortalContent>\n <ng-content select=\"bizy-select-option\"></ng-content>\n</ng-template>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayMinWidth]=\"bizyInput.getWidth()\"\n [cdkConnectedOverlayOrigin]=\"bizySelectTrigger\"\n (overlayOutsideClick)=\"close($event, bizyInput)\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-select__options\">\n\n <span class=\"bizy-select__options__search\">\n <ng-content select=\"bizy-input\"></ng-content>\n </span>\n\n <ng-template [cdkPortalOutlet]=\"templatePortal\"></ng-template>\n\n </span>\n\n</ng-template>\n","import { BizyDatePickerComponent } from './../date-picker/date-picker.component';\nimport { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, inject, Input, QueryList } from '@angular/core';\nimport { BizyInputComponent } from '../input/input.component';\nimport { BizySelectComponent } from '../select/select.component';\n\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'bizy-form',\n templateUrl: './form.html',\n styleUrls: ['./form.css'],\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFormComponent {\n readonly #elementRef = inject(ElementRef);\n @ContentChildren(BizyInputComponent, { descendants: true }) inputs: QueryList<BizyInputComponent>;\n @ContentChildren(BizySelectComponent, { descendants: true }) selects: QueryList<BizySelectComponent>;\n @ContentChildren(BizyDatePickerComponent, { descendants: true }) datePickers: QueryList<BizyDatePickerComponent>;\n @Input() id: string = `bizy-form-${Math.random()}`;\n @Input() customClass: string = '';\n\n onSubmit(event: Event) {\n this.setTouched();\n event.preventDefault();\n }\n\n setTouched = () => {\n if (this.inputs.length > 0) {\n this.inputs.forEach(component => {\n component.setTouched(true);\n });\n }\n\n if (this.selects.length > 0) {\n this.selects.forEach(component => {\n component.setTouched(true);\n });\n }\n\n if (this.datePickers.length > 0) {\n this.datePickers.forEach(component => {\n component.setTouched(true);\n });\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<form class=\"bizy-form {{customClass}}\" [id]=\"id\" (ngSubmit)=\"onSubmit($event)\">\n <ng-content></ng-content>\n</form>","import { NgModule } from '@angular/core';\nimport { BizyFormComponent } from './form.component';\n\nconst COMPONENTS: Array<any> = [\n BizyFormComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyFormModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-gauge-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyGaugeChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {show: boolean, label: string, name: string}\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({\n ...data.option,\n series: [{\n ...data.option.series[0],\n minAngle: 1,\n label: {\n ...data.option.series[0].label,\n width: 'none',\n overflow: 'break',\n },\n labelLine: {\n show: data.option.series[0].labelLine?.show,\n length: 50,\n length2: 50\n },\n labelLayout() {\n return { \n moverOverlap: 'shiftY',\n hideOverlap: false\n };\n },\n }], \n toolbox: {\n show: true,\n feature: {\n mySaveAsImage: {\n show: data.download.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: data.download.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n });\n });\n }, 500);\n }\n }\n }\n }\n });\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Output,\n Renderer2,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { IBizyGaugeChartData } from './gauge-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject, Subscription, auditTime, skip, throttleTime } from 'rxjs';\nimport { BizyGaugeChartPopupComponent } from './gauge-chart-popup.component';\nimport { BizyPopupService } from '../popup';\n\nconst DEFAULT_CHART_SIZE = '300px';\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n}\n\nconst DEFAULT_EXPAND = {\n show: true,\n label: 'Expandir'\n}\n\nconst DEFAULT_TOOLTIP = {\n show: true\n}\n\nconst DEFAULT_ANGLE = {\n start: 225,\n end: -45\n};\n\nconst DEFAULT_LIMIT = {\n min : 0,\n max: 1\n};\n\n@Component({\n selector: 'bizy-gauge-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyGaugeChartComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() angle: {start: number, end: number} = DEFAULT_ANGLE;\n @Input() limit: {min: number, max: number} = DEFAULT_LIMIT\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() expand: { show?: boolean, label?: string} = DEFAULT_EXPAND;\n @Output() onSelect = new EventEmitter<string>();\n @Output() onDownload = new EventEmitter<void>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #resize$ = new Subject<void>();\n #data: IBizyGaugeChartData | null = null;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: IBizyGaugeChartData | null) {\n if (!data) {\n this.#deleteChartContainer();\n }\n\n this.#setChartData(data);\n }\n\n async #setChartData(data: IBizyGaugeChartData | null) {\n this.#data = data;\n this.#createChartContainer()\n\n if (!this.#chartContainer) {\n return;\n }\n \n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n\n const { width, height } = this.#chartContainer.getBoundingClientRect();\n const base = Math.min(width, height);\n\n const backgroundColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-background-color');\n const progressColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-progress-color');\n const valueColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-value-color');\n const textColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-text-color');\n const anchorColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-anchor-color');\n const pointerColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-pointer-color');\n\n const series = [{\n type: 'gauge',\n radius: '100%',\n progress: {\n show: true,\n width: Math.round(Math.max(base / 10, 7)),\n itemStyle: {\n color: progressColor\n }\n },\n axisLine: {\n lineStyle: {\n width: Math.round(Math.max(base / 10, 7)),\n color: [[1, backgroundColor]]\n }\n },\n axisTick: {\n show: false\n },\n splitLine: {\n show: base > 100,\n distance: Math.round(Math.max(base / 30, 10)),\n length: Math.round(Math.max(base / 20, 10)),\n lineStyle: {\n width: 2,\n color: textColor\n }\n },\n axisLabel: {\n show: base > 100,\n distance: Math.round(Math.max(base / 15, 5)) + 3,\n color: textColor,\n fontSize: Math.round(Math.max(base / 17, 10))\n },\n startAngle: this.angle.start ?? DEFAULT_ANGLE.start,\n endAngle: this.angle.end ?? DEFAULT_ANGLE.end,\n anchor: {\n show: true,\n showAbove: true,\n size: Math.round(Math.max(base / 20, 5)),\n itemStyle: {\n borderWidth: Math.round(Math.max(base / 50, 3)),\n borderColor: anchorColor\n }\n },\n pointer: {\n show: true,\n itemStyle: {\n color: pointerColor\n }\n },\n title: {\n show: false,\n },\n detail: {\n valueAnimation: true,\n fontSize: Math.round(Math.max(base / 8, 7)),\n color: valueColor,\n formatter: this.#data.formatter ? this.#data.formatter : '{value}',\n offsetCenter: [0, '70%']\n },\n min: this.limit.min ?? DEFAULT_LIMIT.min,\n max: this.limit.max ?? DEFAULT_LIMIT.max,\n data: this.#data ? [this.#data] : []\n }];\n\n const tooltipTextColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-tooltip-color');\n const tooltipTextBackgroundColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-tooltip-background-color');\n const tooltipBorderColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-tooltip-border-color');\n\n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n myExpandChart: {\n show: this.expand.show ?? DEFAULT_EXPAND.show,\n icon: 'path://M264 96L120 96C106.7 96 96 106.7 96 120L96 264C96 273.7 101.8 282.5 110.8 286.2C119.8 289.9 130.1 287.8 137 281L177 241L256 320L177 399L137 359C130.1 352.1 119.8 350.1 110.8 353.8C101.8 357.5 96 366.3 96 376L96 520C96 533.3 106.7 544 120 544L264 544C273.7 544 282.5 538.2 286.2 529.2C289.9 520.2 287.9 509.9 281 503L241 463L320 384L399 463L359 503C352.1 509.9 350.1 520.2 353.8 529.2C357.5 538.2 366.3 544 376 544L520 544C533.3 544 544 533.3 544 520L544 376C544 366.3 538.2 357.5 529.2 353.8C520.2 350.1 509.9 352.1 503 359L463 399L384 320L463 241L503 281C509.9 287.9 520.2 289.9 529.2 286.2C538.2 282.5 544 273.7 544 264L544 120C544 106.7 533.3 96 520 96L376 96C366.3 96 357.5 101.8 353.8 110.8C350.1 119.8 352.2 130.1 359 137L399 177L320 256L241 177L281 137C287.9 130.1 289.9 119.8 286.2 110.8C282.5 101.8 273.7 96 264 96z',\n title: this.expand.label ?? DEFAULT_EXPAND.label,\n onclick: () => {\n this.#popup.open({\n component: BizyGaugeChartPopupComponent,\n data: {\n download: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show, \n label: this.download?.label ?? DEFAULT_DOWNLOAD.label, \n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n option: this.#echarts.getOption()\n }\n })\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: tooltipTextColor,\n borderColor: tooltipBorderColor,\n borderWidth: 1,\n textBackgroundColor: tooltipTextBackgroundColor,\n textPadding: 5,\n }\n }\n };\n\n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n };\n\n const option: any = {\n tooltip,\n toolbox,\n series,\n };\n\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n\n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n\n if (!this.#chartContainer) {\n return;\n }\n\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...option, series: option.series.map(_serie => { return {..._serie, data: this.#data ? [this.#data] : []}})});\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-gauge-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-gauge-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth * 0.99}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BizyGaugeChartComponent } from './gauge-chart.component';\nimport { BizyGaugeChartPopupComponent } from './gauge-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyGaugeChartComponent,\n BizyGaugeChartPopupComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyGaugeChartModule {}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Directive, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[gridFor]',\n})\n\nexport class BizyGridForDirective {\n readonly viewContainerRef = inject(ViewContainerRef);\n readonly templateRef = inject(TemplateRef);\n #items = new BehaviorSubject<Array<unknown>>([]);\n\n get items$(): Observable<Array<unknown>> {\n return this.#items.asObservable();\n }\n\n @Input('gridForOf') set gridForOf(items: Array<unknown>) {\n this.#items.next(items);\n }\n}\n","\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Renderer2, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-grid-row',\n templateUrl: './grid-row.html',\n styleUrls: ['./grid-row.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyGridRowComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n\n @Input() rowHeight: number = 100; // Px\n\n @Input() set itemsPerRow(itemsPerRow: number) {\n if (!this.#elementRef.nativeElement) {\n return;\n }\n\n if (!itemsPerRow) {\n itemsPerRow = 1;\n }\n\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'gridTemplateRows', `${this.rowHeight}px`);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'gridTemplateColumns', `repeat(${itemsPerRow}, minmax(0, 1fr)`);\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<ng-content></ng-content>","import { Component, Input, ChangeDetectionStrategy, ContentChild, ChangeDetectorRef, ViewChild, AfterContentInit, ElementRef, Renderer2, TemplateRef, ViewContainerRef, DOCUMENT, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject, Subscription, debounceTime } from 'rxjs';\nimport { BizyGridForDirective } from './grid.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { BizyGridRowComponent } from './grid-row/grid-row.component';\n@Component({\n selector: 'bizy-grid',\n templateUrl: './grid.html',\n styleUrls: ['./grid.css'],\n imports: [CommonModule, ScrollingModule, BizyGridRowComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyGridComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n readonly #renderer = inject(Renderer2);\n \n @ViewChild('cdkVirtualScroll') private virtualScroll: CdkVirtualScrollViewport;\n @ViewChild('gridScrollingContent') content: TemplateRef<object>;\n @ContentChild(BizyGridForDirective) gridDirective: BizyGridForDirective;\n @Input() resizeRef: ElementRef | null = null;\n\n #rowScrollingMutationObserver: MutationObserver;\n #resizeObserver: ResizeObserver;\n #subscription = new Subscription();\n #view: ViewContainerRef;\n notifier$ = new Subject<void>();\n \n rowHeight: number = 100;\n itemRows: Array<Array<unknown>> = [];\n items: Array<unknown> = [];\n itemTemplate: TemplateRef<unknown>;\n itemsPerRow: number = 1;\n\n ngAfterContentInit() {\n if (this.gridDirective) {\n this.#initView();\n } else {\n this.#rowScrollingMutationObserver = new MutationObserver(() => {\n if (!this.gridDirective) {\n return;\n }\n \n this.#initView();\n \n this.#rowScrollingMutationObserver.disconnect();\n \n this.#ref.detectChanges();\n });\n \n this.#rowScrollingMutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n }\n }\n\n #initView = () => {\n this.#subscription.add(this.gridDirective.items$.subscribe(items => {\n if (this.items.length === 0 && items.length === 0) {\n return;\n }\n\n this.items = items;\n this.#updateView();\n }));\n\n if (!this.#view) {\n this.#view = this.gridDirective.viewContainerRef;\n this.#view.createEmbeddedView(this.content);\n }\n\n this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#subscription.add(this.notifier$.pipe(debounceTime(50)).subscribe(() => {\n this.#updateView();\n }));\n }\n\n #updateView = () => {\n this.itemTemplate = this.gridDirective.templateRef;\n const rowWidth = this.#elementRef.nativeElement.offsetWidth || this.#elementRef.nativeElement.firstChild.offsetWidth;\n let columnWidth = 100;\n const fontSize = Number(getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('font-size').split('px')[0]);\n\n const rowHeightParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-row-height');\n if (rowHeightParameter && rowHeightParameter.includes('rem')) {\n this.rowHeight = fontSize * Number(rowHeightParameter.split('rem')[0]);\n } else if (rowHeightParameter && rowHeightParameter.includes('px')) {\n this.rowHeight = Number(rowHeightParameter.split('px')[0]);\n }\n\n let gap = 10;\n const gapParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-gap');\n if (gapParameter && gapParameter.includes('rem')) {\n gap = fontSize * Number(gapParameter.split('rem')[0]);\n } else if (gapParameter && gapParameter.includes('px')) {\n gap = Number(gapParameter.split('px')[0]);\n }\n\n const columnWidthParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-column-width');\n if (columnWidthParameter && columnWidthParameter.includes('rem')) {\n columnWidth = fontSize * Number(columnWidthParameter.split('rem')[0]);\n } else if (columnWidthParameter && columnWidthParameter.includes('px')) {\n columnWidth = Number(columnWidthParameter.split('px')[0]);\n }\n\n columnWidth += gap;\n\n const count = Math.trunc(rowWidth / (columnWidth));\n if (Math.round((gap * (count - 1)) + (columnWidth * count)) <= (rowWidth)) {\n this.itemsPerRow = count <= 0 ? 1 : count;\n } else {\n this.itemsPerRow = (count - 1) <= 0 ? 1 : count - 1;\n }\n\n const itemRows: Array<Array<unknown>> = [];\n for (let i = 0; i < this.items.length; i += this.itemsPerRow) {\n const row: Array<unknown> = this.items.slice(i, i + this.itemsPerRow);\n itemRows.push(row);\n }\n\n this.itemRows = itemRows;\n this.#ref.detectChanges();\n }\n\n trackById(index: number, item: any): any {\n return item?.id ?? index;\n }\n\n scrollTo(index: number, behavior: 'auto' | 'instant' | 'smooth' = 'smooth') {\n this.virtualScroll.scrollToIndex(index, behavior);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n\n if (this.#rowScrollingMutationObserver) {\n this.#rowScrollingMutationObserver.disconnect();\n }\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<div class=\"bizy-grid\" [ngClass]=\"{'bizy-grid--empty': items && items.length === 0}\">\n\n <cdk-virtual-scroll-viewport\n #cdkVirtualScroll\n class=\"bizy-grid__rows\"\n [itemSize]=\"rowHeight\"\n [minBufferPx]=\"rowHeight + (rowHeight * 5)\"\n [maxBufferPx]=\"rowHeight + (rowHeight * 10)\">\n\n <ng-content></ng-content>\n\n <ng-template #gridScrollingContent>\n <ng-template\n let-item\n let-index=\"index\"\n let-first=\"first\"\n let-last=\"last\"\n let-even=\"even\"\n let-odd=\"odd\"\n cdkVirtualFor\n [cdkVirtualForOf]=\"itemRows\">\n <bizy-grid-row [rowHeight]=\"rowHeight\" [itemsPerRow]=\"itemsPerRow\">\n @for (it of item; track trackById(i, it); let i = $index) {\n <ng-template\n *ngTemplateOutlet=\"itemTemplate;\n context: { \n $implicit: it,\n index: index * itemsPerRow + i,\n rowIndex: index,\n rowFirst: first,\n rowLast: last,\n rowEven: even,\n rowOdd: odd\n }\"></ng-template>\n }\n </bizy-grid-row>\n </ng-template>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n</div>\n","import { BizyGridForDirective } from './grid.directive';\nimport { NgModule } from '@angular/core';\nimport { BizyGridComponent } from './grid.component';\nimport { BizyGridRowComponent } from './grid-row/grid-row.component';\n\nconst COMPONENTS: Array<any> = [\n BizyGridComponent,\n BizyGridRowComponent\n];\n\nconst DIRECTIVES: Array<any> = [\n BizyGridForDirective,\n];\n\n@NgModule({\n imports: COMPONENTS.concat(DIRECTIVES),\n exports: COMPONENTS.concat(DIRECTIVES),\n})\n\nexport class BizyGridModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output,\n Renderer2\n} from '@angular/core';\nimport { IBizyHeatMapChartData, IBizyHeatMapChartRange, IBizyHeatMapHighlightArea, IBizyHeatMapHighlightLine, IBizyHeatMapHighlightLineLabel } from './heat-map-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { auditTime, BehaviorSubject, filter, skip, Subject, Subscription, take, throttleTime } from 'rxjs';\n\nconst DEFAULT_CHART_SIZE = '300px';\n\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n};\n\nconst DEFAULT_TOOLTIP = {\n show: true\n};\n\nconst DEFAULT_X_AXIS = {\n labels: [],\n position: 'top' as 'top' | 'bottom'\n};\n\nconst DEFAULT_Y_AXIS = {\n labels: [],\n position: 'left' as 'left' | 'right'\n};\n\nconst LINE_DASH_SOLID = [0, 0];\nconst LINE_DASH_DOTTED = [2, 4];\nconst LINE_DASH_DASH = [6, 6];\n\n@Component({\n selector: 'bizy-heat-map-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyHeatMapChartComponent implements OnDestroy, AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() ranges: Array<IBizyHeatMapChartRange> | {data: Array<IBizyHeatMapChartRange>, label?: {start?: string, end?: string}} = [];\n @Input() highlightAreas: Array<IBizyHeatMapHighlightArea> | {data: Array<IBizyHeatMapHighlightArea>} = [];\n @Input() highlightLines: Array<IBizyHeatMapHighlightLine> | {data: Array<IBizyHeatMapHighlightLine>, label: {x: IBizyHeatMapHighlightLineLabel, y: IBizyHeatMapHighlightLineLabel}, slot?: 'start' | 'center' | 'end'} = [];\n @Input() xAxis: {labels: Array<string>, position: 'top' | 'bottom', formatter?: (item: any ) => string} = DEFAULT_X_AXIS;\n @Input() yAxis: {labels: Array<string>, position: 'left' | 'right', formatter?: (item: any ) => string} = DEFAULT_Y_AXIS;\n @Output() onDownload = new EventEmitter<void>();\n @Output() onSelect = new EventEmitter<string>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<IBizyHeatMapChartData> = [];\n\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyHeatMapChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n }\n }\n\n async #setChartData(data: Array<IBizyHeatMapChartData>) {\n this.#data = data;\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n this.#createChartContainer()\n\n if (!this.#chartContainer) {\n return;\n }\n\n const series: Array<any> = [{\n type: 'heatmap',\n zlevel: 1,\n data: this.#data.map(_cell => {\n return {\n value: [_cell.x, _cell.y, _cell.value ?? '-'],\n metadata: _cell.metadata\n }\n })\n }];\n\n\n const xAreaBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-area-background-color');\n const xAreaBorderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-area-border-color');\n const xAreaBorderWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-area-border-width');\n const yAreaBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-area-background-color');\n const yAreaBorderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-area-border-color');\n const yAreaBorderWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-area-border-width');\n\n const xAreas: Array<[number, number]> = []\n const yAreas: Array<[number, number]> = []\n const highlightAreas: Array<IBizyHeatMapHighlightArea> = (<{data: Array<IBizyHeatMapHighlightArea>}>this.highlightAreas).data ?? (<Array<IBizyHeatMapHighlightArea>>this.highlightAreas);\n highlightAreas.forEach(_area => {\n if (typeof _area.from.x !== 'undefined' || _area.from.x !== null) {\n xAreas.push([_area.from.x, _area.to.x]);\n } else {\n yAreas.push([_area.from.y, _area.to.y]);\n }\n });\n\n if (xAreas.length > 0) {\n series.push({\n type: 'custom',\n silent: true,\n renderItem: function (params, api) {\n var xStart = api.coord([api.value(0), 0])[0];\n var xEnd = api.coord([api.value(1), 0])[0];\n var cellWidth = Math.abs(xEnd - xStart) / (api.value(1) - api.value(0));\n\n return {\n type: 'rect',\n shape: {\n x: xStart - cellWidth / 2,\n y: params.coordSys.y,\n width: Math.abs(xEnd - xStart) + cellWidth,\n height: params.coordSys.height\n },\n style: {\n fill: xAreaBackgroundColor,\n stroke: xAreaBorderColor,\n lineWidth: xAreaBorderWidth\n },\n silent: true,\n z2: 100\n };\n },\n data: xAreas,\n zlevel: 5\n })\n };\n\n if (yAreas.length > 0) {\n series.push({\n type: 'custom',\n silent: true,\n renderItem: function (params, api) {\n var yStart = api.coord([0, api.value(0)])[1];\n var yEnd = api.coord([0, api.value(1)])[1];\n var cellHeight = Math.abs(yEnd - yStart) / (api.value(1) - api.value(0));\n\n return {\n type: 'rect',\n shape: {\n x: params.coordSys.x,\n y: yStart - cellHeight / 2,\n width: params.coordSys.width,\n height: Math.abs(yEnd - yStart) + cellHeight\n },\n style: {\n fill: yAreaBackgroundColor,\n stroke: yAreaBorderColor,\n lineWidth: yAreaBorderWidth\n },\n silent: true,\n z2: 100\n };\n },\n data: yAreas,\n zlevel: 5\n })\n }\n\n const xLineWidth = Number(this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-width'));\n const xLineColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-color');\n const xLineStyle = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-style');\n const xLineLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-label-color');\n const yLineWidth = Number(this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-width'));\n const yLineColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-color');\n const yLineStyle = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-style');\n const yLineLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-label-color');\n\n const xLines: Array<[number]> = []\n const yLines: Array<[number]> = []\n const highlightLineLabel = (<{label: {x: IBizyHeatMapHighlightLineLabel, y: IBizyHeatMapHighlightLineLabel}}>this.highlightLines)?.label ?? null;\n const highlightLines: Array<IBizyHeatMapHighlightLine> = (<{data: Array<IBizyHeatMapHighlightLine>}>this.highlightLines).data ?? (<Array<IBizyHeatMapHighlightLine>>this.highlightLines);\n highlightLines.forEach(_line => {\n if (typeof _line.x !== 'undefined' || _line.x !== null) {\n xLines.push([_line.x]);\n } else {\n yLines.push([_line.y]);\n }\n });\n\n const slot = (<{slot: 'start' | 'center' | 'end'}>this.highlightLines).slot ?? 'center';\n\n if (xLines.length > 0) {\n series.push({\n type: 'custom',\n renderItem: function (params, api) {\n const xValue = api.value(0);\n \n const yStart = params.coordSys.y;\n const yEnd = params.coordSys.y + params.coordSys.height;\n\n const cellWidth = Math.abs(api.coord([1, 0])[0] - api.coord([0, 0])[0]);\n \n const centerX = api.coord([xValue, 0])[0];\n\n const xCoord = slot === 'start' ? centerX - (cellWidth / 2) : slot === 'end' ? centerX + (cellWidth / 2) : centerX;\n\n const children: Array<any> = [{\n type: 'line',\n shape: {\n x1: xCoord,\n y1: yStart,\n x2: xCoord,\n y2: yEnd\n },\n style: {\n stroke: xLineColor,\n lineWidth: xLineWidth,\n lineDash: xLineStyle === 'solid' ? LINE_DASH_SOLID : xLineStyle === 'dotted' ? LINE_DASH_DOTTED : xLineStyle === 'dashed' ? LINE_DASH_DASH : LINE_DASH_SOLID\n },\n z: 100\n }]\n\n if (highlightLineLabel && highlightLineLabel.x) {\n const top = yStart - 5;\n const bottom = yEnd + 20;\n\n const label = {\n type: 'text',\n style: {\n text: highlightLineLabel.x.formatter ? highlightLineLabel.x.formatter(xValue) : xValue,\n x: xCoord,\n y: highlightLineLabel.x.position === 'top' ? top : highlightLineLabel.x.position === 'bottom' ? bottom : bottom,\n fill: xLineLabelColor,\n textAlign: 'center',\n textVerticalAlign: 'bottom'\n },\n z: 101\n }\n\n children.push(label)\n }\n \n return {\n type: 'group',\n children\n };\n },\n data: xLines,\n silent: true,\n zlevel: 10\n })\n };\n\n if (yLines.length > 0) {\n series.push({\n type: 'custom',\n renderItem: function (params, api) {\n const yValue = api.value(0);\n\n const xStart = params.coordSys.x;\n const xEnd = params.coordSys.x + params.coordSys.width;\n\n const cellHeight = Math.abs(api.coord([0, 1])[1] - api.coord([0, 0])[1]);\n\n const centerY = api.coord([0, yValue])[1];\n\n const yCoord = slot === 'start' ? centerY + (cellHeight / 2) : slot === 'end' ? centerY - (cellHeight / 2) : centerY;\n\n const children: Array<any> = [{\n type: 'line',\n shape: {\n x1: xStart,\n y1: yCoord,\n x2: xEnd,\n y2: yCoord\n },\n style: {\n stroke: yLineColor,\n lineWidth: yLineWidth,\n lineDash: yLineStyle === 'solid' ? LINE_DASH_SOLID : yLineStyle === 'dotted' ? LINE_DASH_DOTTED : yLineStyle === 'dashed' ? LINE_DASH_DASH : LINE_DASH_SOLID\n },\n z: 100\n }]\n\n if (highlightLineLabel && highlightLineLabel.y) {\n const left = xStart - 5;\n const right = xEnd + 20;\n\n const label = {\n type: 'text',\n style: {\n text: highlightLineLabel.y.formatter ? highlightLineLabel.y.formatter(yValue) : yValue,\n x: yCoord,\n y: highlightLineLabel.y.position === 'left' ? left : highlightLineLabel.y.position === 'right' ? right : right,\n fill: yLineLabelColor,\n textAlign: 'right',\n textVerticalAlign: 'middle'\n },\n z: 101\n }\n\n children.push(label)\n }\n \n return {\n type: 'group',\n children\n };\n },\n data: yLines,\n silent: true,\n zlevel: 10\n })\n };\n\n \n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n }\n\n const xAxis = [\n {\n type: 'category',\n splitArea: {\n show: true\n },\n position: this.xAxis?.position ?? DEFAULT_X_AXIS.position,\n data: this.xAxis?.labels ?? DEFAULT_X_AXIS.labels,\n axisLabel: {\n formatter: this.xAxis?.formatter,\n }\n }\n ];\n\n const yAxis = [\n {\n type: 'category',\n position: this.yAxis?.position ?? DEFAULT_Y_AXIS.position,\n data: this.yAxis?.labels ?? DEFAULT_Y_AXIS.labels,\n splitArea: {\n show: true\n },\n axisLabel: {\n formatter: this.yAxis?.formatter,\n }\n }\n ];\n\n const outOfRangeColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-out-of-range-color');\n\n let text: [string | null, string | null] | null = null;\n let pieces: Array<IBizyHeatMapChartRange> = [];\n if (Array.isArray(this.ranges)) {\n pieces = this.ranges;\n } else if (this.ranges && this.ranges.data) {\n pieces = this.ranges.data;\n if (this.ranges.label?.start) {\n text = [null, this.ranges.label.start];\n }\n\n if (this.ranges.label?.end) {\n text = [this.ranges.label.end, text && text[1] ? text[1] : null];\n }\n }\n\n\n const visualMap = {\n type: 'piecewise',\n orient: 'horizontal',\n left: 'center',\n text,\n showLabel: true,\n pieces,\n outOfRange: {\n color: outOfRangeColor\n }\n };\n\n const textColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-tooltip-color');\n const textBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-tooltip-background-color');\n const borderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-tooltip-border-color');\n\n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n\n const grid = {\n left: 0,\n right: 0,\n containLabel: true\n }\n\n const option: any = {\n tooltip,\n xAxis,\n yAxis,\n toolbox,\n series,\n visualMap,\n grid\n };\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n });\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyHeatMapChartComponent } from './heat-map-chart.component';\n\nconst COMPONENTS: Array<any> = [\n BizyHeatMapChartComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyHeatMapChartModule {}\n","import { NgModule } from '@angular/core';\nimport { BizyInputComponent } from './input.component';\nimport { BizyInputOptionComponent } from './input-option/input-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizyInputComponent,\n BizyInputOptionComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyInputModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-list',\n templateUrl: './list.html',\n styleUrls: ['./list.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizyListComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-list-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { BizyListComponent } from './list.component';\n\nconst COMPONENTS: Array<any> = [\n BizyListComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyListModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-menu-option',\n templateUrl: './menu-option.html',\n styleUrls: ['./menu-option.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyMenuOptionComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-menu-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() selected: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent & {target: {id: string}}>();\n\n _onSelect(event: PointerEvent & {target: {id: string}}) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n [ngClass]=\"{'bizy-menu-option--selected': selected, 'bizy-menu-option--disabled': disabled}\"\n class=\"bizy-menu-option {{customClass}}\">\n\n <span class=\"bizy-menu-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>\n\n<span class=\"bizy-menu-option__menu\">\n <ng-content select=\"bizy-menu\"></ng-content>\n</span>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { BizyMenuOptionComponent } from './menu-option/menu-option.component';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, inject, Input, Output, QueryList } from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-menu',\n templateUrl: './menu.html',\n styleUrls: ['./menu.css'],\n imports: [CommonModule, FormsModule, OverlayModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyMenuComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyMenuOptionComponent) options!: QueryList<BizyMenuOptionComponent>;\n @Input() id: string = `bizy-menu-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n @Input() customClass: string = '';\n @Input() hideArrow: boolean = false;\n @Input() opened: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _menuWidth: number;\n\n #subscription = new Subscription();\n\n readonly bizyMenuOptionsId = 'bizyMenuOptionsId';\n\n _onSelect(event: any) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n\n if (this.options && this.options.length > 0) {\n this.selectButton(event)\n }\n }\n\n selectButton(event: any) {\n this.opened = !this.opened;\n\n if (event && event.srcElement && event.srcElement.offsetWidth) {\n this._menuWidth = event.srcElement.offsetWidth; \n }\n\n if (this.opened) {\n this.#subscription = new Subscription();\n this.#subscription.add(fromEvent(window, 'scroll', { capture: true }).subscribe(() => {\n if (event && event.target && event.target.id && (event.target.id === this.id || event.target.id === this.bizyMenuOptionsId)) {\n return;\n }\n\n this.opened = false;\n this.#ref.detectChanges();\n this.#subscription.unsubscribe();\n }));\n\n if (this.options) {\n this.options.forEach((option: BizyMenuOptionComponent) => {\n this.#subscription.add(option.onSelect.subscribe(event => {\n this.close(event);\n }));\n });\n }\n } else {\n this.#subscription.unsubscribe();\n }\n }\n\n close = (event: Event & {target: {id: string}}) => {\n if (event && event.target && event.target.id && event.target.id === this.id) {\n return;\n }\n\n this.opened = false;\n this.#subscription.unsubscribe();\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}","<button\n type=\"button\"\n class=\"bizy-menu {{customClass}}\"\n [ngClass]=\"{'bizy-menu--disabled': disabled}\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n cdkOverlayOrigin\n #bizyMenuTrigger=\"cdkOverlayOrigin\">\n\n <span class=\"bizy-menu__content\">\n <ng-content></ng-content>\n </span>\n\n @if (!hideArrow) {\n <svg\n class=\"bizy-menu__arrow\"\n viewBox=\"0 0 96 96\"\n [ngClass]=\"{'bizy-menu__arrow--opened': opened}\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M81.8457,25.3876a6.0239,6.0239,0,0,0-8.45.7676L48,56.6257l-25.396-30.47a5.999,5.999,0,1,0-9.2114,7.6879L43.3943,69.8452a5.9969,5.9969,0,0,0,9.2114,0L82.6074,33.8431A6.0076,6.0076,0,0,0,81.8457,25.3876Z\"/>\n </svg>\n }\n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOffsetX]=\"offsetX\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayMinWidth]=\"_menuWidth\"\n [cdkConnectedOverlayOrigin]=\"bizyMenuTrigger\"\n (overlayOutsideClick)=\"close($event)\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayViewportMargin]=\"8\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-menu__options\" [id]=\"bizyMenuOptionsId\">\n\n <span class=\"bizy-menu__options__header\">\n <ng-content select=\"bizy-menu-title\"></ng-content>\n <ng-content select=\"bizy-input\"></ng-content>\n </span>\n\n <ng-content select=\"bizy-menu-option\"></ng-content>\n\n </span>\n\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n@Component({\n selector: 'bizy-menu-title',\n templateUrl: './menu-title.html',\n styleUrls: ['./menu-title.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id',\n '[class]': 'customClass'\n }\n})\nexport class BizyMenuTitleComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-menu-title-${Math.random()}`;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { BizyMenuComponent } from './menu.component';\nimport { BizyMenuOptionComponent } from './menu-option/menu-option.component';\nimport { BizyMenuTitleComponent } from './menu-title/menu-title.component';\n\nconst COMPONENTS: Array<any> = [\n BizyMenuComponent,\n BizyMenuOptionComponent,\n BizyMenuTitleComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyMenuModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, inject, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { BizyButtonModule } from '../../button';\n\n@Component({\n selector: 'bizy-menu-bar-option',\n templateUrl: './menu-bar-option.html',\n styleUrls: ['./menu-bar-option.css'],\n imports: [CommonModule, BizyButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyMenuBarOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-menu-bar-option-${Math.random()}`;\n @Input() selected: boolean = false;\n @Input() disabled: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n _setSelected = (selected: boolean) => {\n this.selected = selected;\n this.#ref.detectChanges();\n }\n\n _setDisabled = (disabled: boolean) => {\n this.disabled = disabled;\n this.#ref.detectChanges();\n }\n\n getId = (): string => this.id;\n}\n","<bizy-button \n [disabled]=\"disabled\"\n [id]=\"id\"\n [ngClass]=\"{'bizy-menu-bar-option--selected': selected}\"\n (onSelect)=\"_onSelect($event)\">\n <ng-content></ng-content>\n</bizy-button>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, inject, ElementRef, AfterContentInit, ContentChildren, QueryList } from '@angular/core';\nimport { BizyMenuBarOptionComponent } from './menu-bar-option/menu-bar-option.component';\nimport { BehaviorSubject, filter, Subscription, take } from 'rxjs';\n\n\n@Component({\n selector: 'bizy-menu-bar',\n templateUrl: './menu-bar.html',\n styleUrls: ['./menu-bar.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id',\n }\n})\nexport class BizyMenuBarComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n\n @ContentChildren(BizyMenuBarOptionComponent) options!: QueryList<BizyMenuBarOptionComponent>;\n @Input() id: string = `bizy-menu-bar-${Math.random()}`;\n @Output() selectedOptionChange = new EventEmitter<string>();\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set disabled(disabled: boolean) {\n if (typeof disabled === 'undefined' || disabled === null) {\n return;\n }\n\n this.#subscription.add(this.#afterContentInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n if (this.options) {\n this.options.forEach((option: BizyMenuBarOptionComponent) => {\n option._setDisabled(disabled);\n });\n }\n }));\n }\n\n @Input() set selectedOption(selectedOption: string) {\n if (!selectedOption) {\n return;\n }\n\n this.#subscription.add(this.#afterContentInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n if (this.options) {\n this.options.forEach((option: BizyMenuBarOptionComponent) => {\n option._setSelected(option.getId() === selectedOption);\n });\n }\n }));\n }\n\n _onSelect = (option: BizyMenuBarOptionComponent) => {\n if (this.disabled) {\n return;\n }\n\n this.selectedOptionChange.emit(option.getId());\n }\n\n #afterContentInit = new BehaviorSubject<boolean>(false);\n #subscription = new Subscription();\n\n ngAfterContentInit(): void {\n if (this.options) {\n this.options.forEach((option: BizyMenuBarOptionComponent) => {\n this.#subscription.add(option.onSelect.subscribe(() => {\n this._onSelect(option)\n }));\n });\n }\n\n this.#afterContentInit.next(true);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}\n","<ng-content select=\"bizy-menu-bar-option\"></ng-content>","import { NgModule } from '@angular/core';\nimport { BizyMenuBarComponent } from './menu-bar.component';\nimport { BizyMenuBarOptionComponent } from './menu-bar-option/menu-bar-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizyMenuBarComponent,\n BizyMenuBarOptionComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyMenuBarModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-pie-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyPieChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {show: boolean, label: string, name: string}\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({\n ...data.option,\n series: [{\n ...data.option.series[0],\n minAngle: 1,\n label: {\n ...data.option.series[0].label,\n width: 'none',\n overflow: 'break',\n },\n labelLine: {\n show: data.option.series[0].labelLine?.show,\n length: 50,\n length2: 50\n },\n labelLayout() {\n return { \n moverOverlap: 'shiftY',\n hideOverlap: false\n };\n },\n }], \n toolbox: {\n show: true,\n feature: {\n mySaveAsImage: {\n show: data.download.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: data.download.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n });\n });\n }, 500);\n }\n }\n }\n }\n });\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Output,\n Renderer2,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { IBizyPieChartData } from './pie-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { BehaviorSubject, Subject, Subscription, auditTime, filter, skip, take, throttleTime } from 'rxjs';\nimport { BizyPieChartPopupComponent } from './pie-chart-popup.component';\nimport { BizyPopupService } from '../popup';\n\nconst EMPTY_CHART = [0];\nconst DEFAULT_CHART_SIZE = '300px';\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n};\n\nconst DEFAULT_EXPAND = {\n show: true,\n label: 'Expandir'\n};\n\nconst DEFAULT_TOOLTIP = {\n show: true\n};\n\nconst DEFAULT_LEGEND = {\n show: false,\n orient: 'vertical' as 'vertical' | 'horizontal',\n position: {\n x: 'auto' as 'left' | 'right' | 'center',\n y: 'auto' as 'top' | 'bottom' | 'center'\n }\n};\n\nconst DEFAULT_LABEL = {\n show: true,\n overflow: 'break' as 'break' | 'truncate',\n line: true\n};\n\n@Component({\n selector: 'bizy-pie-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyPieChartComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() centerLabel: string | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() legend: {show?: boolean, orient?: 'vertical' | 'horizontal', position?: {x: 'left' | 'right' | 'center', y: 'top' | 'bottom' | 'center'}} | null = null;\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() expand: { show?: boolean, label?: string} = DEFAULT_EXPAND;\n @Input() label: { show?: boolean, overflow?: 'break' | 'truncate', line?: boolean, formatter?: (item: any ) => string} = DEFAULT_LABEL;\n @Output() onSelect = new EventEmitter<IBizyPieChartData>();\n @Output() onDownload = new EventEmitter<void>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<{name: string, value: number, itemStyle: {color?: string}, metadata: any}> | typeof EMPTY_CHART = EMPTY_CHART;\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyPieChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n\n this.#setChartData(EMPTY_CHART);\n }\n }\n\n async #setChartData(data: Array<IBizyPieChartData> | typeof EMPTY_CHART) {\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n /**\n * setTimeout fix angular render problem\n */\n setTimeout(() => {\n this.#createChartContainer()\n \n if (!this.#chartContainer) {\n return;\n }\n \n if (data && data.length > 0 && data[0] !== 0) {\n this.#data = [];\n (<Array<IBizyPieChartData>>data).forEach(_d => {\n if (!_d.value) {\n _d.value = 0;\n }\n \n if (!_d.name) {\n _d.name = '---'\n }\n \n const itemStyle = _d.color ? {color: _d.color} : {};\n \n (<Array<{name: string, value: number, itemStyle: {color?: string}, metadata: any}>>this.#data).push({\n name: _d.name,\n value: _d.value,\n itemStyle,\n metadata: _d.metadata\n })\n });\n } else {\n this.#data = EMPTY_CHART;\n }\n\n const label = {\n show: this.label?.show ?? DEFAULT_LABEL.show,\n overflow: this.label?.overflow ?? DEFAULT_LABEL.overflow,\n formatter: this.label?.formatter\n };\n\n const labelLine = {\n show: this.label?.line ?? true\n }\n \n const series = [{\n type: 'pie',\n radius: '50%',\n center: ['50%', '50%'],\n data: this.#data,\n label,\n labelLine\n }];\n \n const textColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-pie-chart-tooltip-color');\n const textBackgroundColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-pie-chart-tooltip-background-color');\n const borderColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-pie-chart-tooltip-border-color');\n \n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n myExpandChart: {\n show: this.expand.show ?? DEFAULT_EXPAND.show,\n icon: 'path://M264 96L120 96C106.7 96 96 106.7 96 120L96 264C96 273.7 101.8 282.5 110.8 286.2C119.8 289.9 130.1 287.8 137 281L177 241L256 320L177 399L137 359C130.1 352.1 119.8 350.1 110.8 353.8C101.8 357.5 96 366.3 96 376L96 520C96 533.3 106.7 544 120 544L264 544C273.7 544 282.5 538.2 286.2 529.2C289.9 520.2 287.9 509.9 281 503L241 463L320 384L399 463L359 503C352.1 509.9 350.1 520.2 353.8 529.2C357.5 538.2 366.3 544 376 544L520 544C533.3 544 544 533.3 544 520L544 376C544 366.3 538.2 357.5 529.2 353.8C520.2 350.1 509.9 352.1 503 359L463 399L384 320L463 241L503 281C509.9 287.9 520.2 289.9 529.2 286.2C538.2 282.5 544 273.7 544 264L544 120C544 106.7 533.3 96 520 96L376 96C366.3 96 357.5 101.8 353.8 110.8C350.1 119.8 352.2 130.1 359 137L399 177L320 256L241 177L281 137C287.9 130.1 289.9 119.8 286.2 110.8C282.5 101.8 273.7 96 264 96z',\n title: this.expand.label ?? DEFAULT_EXPAND.label,\n onclick: () => {\n this.#popup.open({\n component: BizyPieChartPopupComponent,\n data: {\n download: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show, \n label: this.download?.label ?? DEFAULT_DOWNLOAD.label, \n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n option: this.#echarts.getOption()\n }\n })\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n \n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n };\n \n let legend = {\n show: this.legend?.show ?? DEFAULT_LEGEND.show,\n orient: this.legend?.orient ?? DEFAULT_LEGEND.orient,\n left: this.legend?.position ? this.legend?.position.x : DEFAULT_LEGEND.position.x,\n top: this.legend?.position ? this.legend?.position.y : DEFAULT_LEGEND.position.y,\n };\n \n let graphic: any;\n if (this.centerLabel) {\n let centerLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-pie-chart-center-label-color');\n let { width, height } = this.#chartContainer.getBoundingClientRect();\n let base = Math.min(width, height);\n let fontSize = base / 6;\n graphic = {\n type: 'text',\n left: 'center',\n top: 'center',\n style: {\n text: this.centerLabel,\n fill: centerLabelColor,\n textAlign: 'center',\n fontSize,\n fontWeight: 'bold'\n }\n };\n }\n \n const option: any = {\n tooltip,\n toolbox,\n legend,\n series,\n graphic\n };\n \n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', (params: any) => {\n this.onSelect.emit({\n name: params.data.name,\n value: params.data.value,\n color: params.data.itemStyle.color,\n metadata: params.data.metadata || {}\n });\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...option, series: option.series.map(_serie => { return {..._serie, data: this.#data}})});\n this.#echarts.on('click', (params: any) => {\n this.onSelect.emit({\n name: params.data.name,\n value: params.data.value,\n color: params.data.itemStyle.color,\n metadata: params.data.metadata || {}\n });\n });\n });\n }));\n });\n });\n })\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-pie-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-pie-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth * 0.99}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BizyPieChartComponent } from './pie-chart.component';\nimport { BizyPieChartPopupComponent } from './pie-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyPieChartComponent,\n BizyPieChartPopupComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyPieChartModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-progress-bar',\n templateUrl: './progress-bar.html',\n styleUrls: ['./progress-bar.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizyProgressBarComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-progress-bar-${Math.random()}`;\n @Input() progress: number | null = null;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<div class=\"bizy-progress-bar\" [ngStyle]=\"{width: progress !== null ? progress + '%' : '0%'}\"></div>","import { NgModule } from '@angular/core';\nimport { BizyProgressBarComponent } from './progress-bar.component';\n\nconst COMPONENTS = [\n BizyProgressBarComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\nexport class BizyProgressBarModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-radio',\n templateUrl: './radio.html',\n styleUrls: ['./radio.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyRadioComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-radio-${Math.random()}`;\n @Input() name: string;\n @Input() selected: boolean = false;\n @Input() disabled: boolean = false;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.selectedChange.emit(!this.selected);\n this.onSelect.emit(event)\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button type=\"button\" (click)=\"_onSelect($event)\" (keyup.enter)=\"_onSelect($event)\" class=\"bizy-radio\" [ngClass]=\"{'bizy-radio--disabled': disabled}\">\n <input \n class=\"bizy-radio__input\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"selected\"/>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <span class=\"bizy-radio__radio\"></span>\n \n <ng-content select=\"[slot=end]\"></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { BizyRadioComponent } from './radio.component';\n\nconst COMPONENTS: Array<any> = [\n BizyRadioComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyRadioModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section',\n templateUrl: './section.html',\n styleUrls: ['./section.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-section-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section-start',\n templateUrl: './section-start.html',\n styleUrls: ['./section-start.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionStartComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-section-start-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section-center',\n templateUrl: './section-center.html',\n styleUrls: ['./section-center.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionCenterComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-center-start-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section-end',\n templateUrl: './section-end.html',\n styleUrls: ['./section-end.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionEndComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-section-end-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { BizySectionComponent } from './section.component';\nimport { BizySectionStartComponent } from './section-start/section-start.component';\nimport { BizySectionCenterComponent } from './section-center/section-center.component';\nimport { BizySectionEndComponent } from './section-end/section-end.component';\n\nconst COMPONENTS: Array<any> = [\n BizySectionComponent,\n BizySectionStartComponent,\n BizySectionCenterComponent,\n BizySectionEndComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySectionModule {}\n","import { NgModule } from '@angular/core';\nimport { BizySelectComponent } from './select.component';\nimport { BizySelectOptionComponent } from './select-option/select-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizySelectComponent,\n BizySelectOptionComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySelectModule {}\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ContentChildren, QueryList, ChangeDetectorRef, ElementRef, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BizyAccordionComponent } from '../../accordion/accordion.component';\n\n\n@Component({\n selector: 'bizy-sidebar-option',\n templateUrl: './sidebar-option.html',\n styleUrls: ['./sidebar-option.css'],\n imports: [BizyAccordionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizySidebarOptionComponent) options: QueryList<BizySidebarOptionComponent>;\n @Input() id: string = `bizy-sidebar-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selectable: boolean = true;\n @Input() customClass: string = '';\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _turnOn$ = new BehaviorSubject<boolean>(false);\n _selected: boolean = false;\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n const turnOn = selected && selected !== this._selected;\n this._turnOn$.next(turnOn);\n this._selected = selected;\n this.#ref.detectChanges();\n }\n\n _onSelect(event: PointerEvent): void {\n if (this.disabled || !this.selectable) {\n return;\n }\n\n this.selectedChange.emit(!this._selected);\n this.onSelect.emit(event);\n }\n\n _setSelected(selected: boolean) {\n this._selected = selected;\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getSelected = (): boolean => {\n return this._selected;\n }\n}","<bizy-accordion\n class=\"{{customClass}}\"\n [id]=\"id\"\n customClass=\"bizy-sidebar-option {{_selected && (!options || options.length === 0) ? 'bizy-sidebar-option--selected' : ''}} {{!selectable ? 'bizy-sidebar-option--no-selectable' : ''}} {{disabled ? 'bizy-sidebar-option--disabled' : ''}}\"\n [opened]=\"_selected\"\n (onSelect)=\"_onSelect($event)\">\n\n <ng-content></ng-content>\n\n @if (options && options.length > 0) {\n <ng-container accordion-option>\n <ng-content select=\"bizy-sidebar-option\"></ng-content>\n </ng-container>\n }\n\n</bizy-accordion>","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, inject, Input, Output, QueryList } from '@angular/core';\nimport { BizySidebarOptionComponent } from '../sidebar-option/sidebar-option.component';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'bizy-sidebar-floating-option',\n templateUrl: './sidebar-floating-option.html',\n styleUrls: ['./sidebar-floating-option.css'],\n imports: [CommonModule, OverlayModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarFloatingOptionComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizySidebarOptionComponent) options!: QueryList<BizySidebarOptionComponent>;\n @Input() id: string = `bizy-sidebar-floating-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selectable: boolean = true;\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n @Input() customClass: string = '';\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _turnOn$ = new BehaviorSubject<boolean>(false);\n _selected: boolean = false;\n _opened: boolean = false;\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n const turnOn = selected && selected !== this._selected;\n this._turnOn$.next(turnOn);\n this._opened = turnOn;\n this._selected = selected;\n this.#ref.detectChanges();\n }\n\n #subscription = new Subscription();\n #optionSubscription = new Subscription();\n\n ngAfterContentInit() {\n if (this.options && this.options.length > 0) {\n this.#listenOptionChanges(this.options.toArray());\n this.#subscription.add(this.options.changes.subscribe(() => {\n this.#optionSubscription.unsubscribe();\n this.#optionSubscription = new Subscription();\n this.#listenOptionChanges(this.options.toArray());\n }))\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this.selectable) {\n return;\n }\n\n this._opened = !this._opened;\n this.#ref.detectChanges();\n this.selectedChange.emit(this._opened);\n this.onSelect.emit(event);\n }\n\n close = (event: PointerEvent & {target: {id: string}}) => {\n if (event && event.target && event.target.id && event.target.id === this.id) {\n return;\n }\n\n this._opened = false;\n this.#ref.detectChanges();\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n #listenOptionChanges = (options: Array<BizySidebarOptionComponent>) => {\n options.forEach(_option => {\n this.#optionSubscription.add(_option._turnOn$.subscribe(turnOn => {\n if (turnOn) {\n if (!_option.options || _option.options.length === 0) {\n this._opened = false;\n this.#ref.detectChanges();\n }\n\n this.#selectParents(this.options.toArray(), _option);\n }\n }));\n\n if (_option.options && _option.options.length > 0) {\n this.#listenOptionChanges(_option.options.toArray());\n }\n });\n }\n\n #selectParents = (options: Array<BizySidebarOptionComponent>, option: BizySidebarOptionComponent): boolean => {\n let founded: boolean = false;\n for (let i = 0; i < options.length; i++) {\n if (options[i].getId() === option.getId()) {\n founded = true;\n } else if (options[i].options && options[i].options.length > 0) {\n const _founded = this.#selectParents(options[i].options.toArray(), option);\n if (_founded) {\n founded = true;\n options[i].selectedChange.emit(true);\n } else {\n options[i].selectedChange.emit(false);\n }\n \n } else {\n options[i].selectedChange.emit(false);\n }\n }\n\n return founded;\n };\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#optionSubscription.unsubscribe();\n }\n}","<button \n type=\"button\"\n class=\"bizy-sidebar-floating-option {{customClass}}\"\n [ngClass]=\"{'bizy-sidebar-floating-option--selected': _selected, 'bizy-sidebar-floating-option--no-selectable': !selectable, 'bizy-sidebar-floating-option--disabled': disabled}\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n cdkOverlayOrigin \n #bizySidebarFloatingOptionTrigger=\"cdkOverlayOrigin\">\n\n <span class=\"bizy-sidebar-floating-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOffsetX]=\"offsetX\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOrigin]=\"bizySidebarFloatingOptionTrigger\"\n (overlayOutsideClick)=\"close($event)\"\n [cdkConnectedOverlayOpen]=\"_opened && options && options.length > 0\">\n\n <span class=\"bizy-sidebar-floating-option__options\">\n\n <ng-content select=\"bizy-sidebar-floating-option-title\"></ng-content>\n\n <ng-content select=\"bizy-sidebar-option\"></ng-content>\n\n </span>\n\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ContentChildren, QueryList, AfterContentInit, ElementRef, inject} from '@angular/core';\nimport { BizySidebarOptionComponent } from './sidebar-option/sidebar-option.component';\nimport { Subscription } from 'rxjs';\nimport { BizySidebarFloatingOptionComponent } from './sidebar-floating-option/sidebar-floating-option.component';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-sidebar',\n templateUrl: './sidebar.html',\n styleUrls: ['./sidebar.css'],\n imports: [\n CommonModule,\n OverlayModule\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-sidebar-${Math.random()}`;\n @ContentChildren(BizySidebarOptionComponent) options!: QueryList<BizySidebarOptionComponent>;\n @ContentChildren(BizySidebarFloatingOptionComponent) floatingOptions!: QueryList<BizySidebarFloatingOptionComponent>;\n @Output() toggleChange = new EventEmitter<boolean>(); \n @Output() onToggle = new EventEmitter<PointerEvent>(); \n\n _toggle: boolean = false;\n #subscription = new Subscription();\n #optionSubscription = new Subscription();\n #floatingOptionSubscription = new Subscription();\n\n @Input() set toggle(toggle: boolean) {\n if (typeof toggle === 'undefined' || toggle === null) {\n return;\n }\n\n this._toggle = toggle;\n\n this.#unsubscribe();\n this.#subscription = new Subscription();\n this.#optionSubscription = new Subscription();\n this.#floatingOptionSubscription = new Subscription();\n\n setTimeout(() => {\n this.#listenOptions();\n }, 500);\n }\n\n ngAfterContentInit() {\n this.#listenOptions();\n }\n\n #listenOptions() {\n if (this.options && this.options.length > 0) {\n this.#listenOptionChanges(this.options.toArray());\n this.#subscription.add(this.options.changes.subscribe(() => {\n this.#optionSubscription.unsubscribe();\n this.#optionSubscription = new Subscription();\n this.#listenOptionChanges(this.options.toArray());\n }))\n }\n\n if (this.floatingOptions && this.floatingOptions.length > 0) {\n this.#listenFloatingOptionChanges(this.floatingOptions.toArray());\n this.#subscription.add(this.floatingOptions.changes.subscribe(() => {\n this.#floatingOptionSubscription.unsubscribe();\n this.#floatingOptionSubscription = new Subscription();\n this.#listenFloatingOptionChanges(this.floatingOptions.toArray());\n }))\n }\n }\n\n #listenOptionChanges = (options: Array<BizySidebarOptionComponent>) => {\n options.forEach(_option => {\n this.#optionSubscription.add(_option._turnOn$.subscribe(turnOn => {\n if (turnOn) {\n this.#selectParents(this.options.toArray(), _option);\n }\n }));\n\n if (_option.options && _option.options.length > 0) {\n this.#listenOptionChanges(_option.options.toArray());\n }\n });\n }\n\n #listenFloatingOptionChanges = (options: Array<BizySidebarFloatingOptionComponent>) => {\n options.forEach(_option => {\n this.#floatingOptionSubscription.add(_option._turnOn$.subscribe(turnOn => {\n if (turnOn) {\n this.floatingOptions.forEach(__option => {\n if (__option.getId() !== _option.getId()) {\n setTimeout(() => {\n __option.selectedChange.emit(false);\n }, 100);\n }\n })\n }\n }));\n });\n }\n\n #selectParents = (options: Array<BizySidebarOptionComponent>, option: BizySidebarOptionComponent): boolean => {\n let founded: boolean = false;\n for (let i = 0; i < options.length; i++) {\n if (options[i].getId() === option.getId()) {\n founded = true;\n } else if (options[i].options && options[i].options.length > 0) {\n const _founded = this.#selectParents(options[i].options.toArray(), option);\n if (_founded) {\n founded = true;\n setTimeout(() => {\n options[i].selectedChange.emit(true);\n }, 100)\n } else {\n setTimeout(() => {\n options[i].selectedChange.emit(false);\n }, 100)\n }\n \n } else {\n setTimeout(() => {\n options[i].selectedChange.emit(false);\n }, 100)\n }\n }\n\n return founded;\n };\n\n #unsubscribe() {\n this.#subscription.unsubscribe();\n this.#optionSubscription.unsubscribe();\n this.#floatingOptionSubscription.unsubscribe();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onToggle(event: PointerEvent) {\n this.toggleChange.emit(!this._toggle);\n this.onToggle.emit(event)\n }\n\n ngOnDestroy() {\n this.#unsubscribe();\n }\n}","<div class=\"bizy-sidebar\" [id]=\"id\">\n\n <span class=\"bizy-sidebar__tab\" id=\"bizy-sidebar-tab\" (click)=\"_onToggle($event)\">\n <svg fill=\"none\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" class=\"bizy-sidebar__tab__svg\">\n <path class=\"bizy-sidebar__tab__svg__path\" d=\"M10 6C8.89543 6 8 5.10457 8 4C8 2.89543 8.89543 2 10 2C11.1046 2 12 2.89543 12 4C12 5.10457 11.1046 6 10 6Z\"/>\n <path class=\"bizy-sidebar__tab__svg__path\" d=\"M10 12C8.89543 12 8 11.1046 8 10C8 8.89543 8.89543 8 10 8C11.1046 8 12 8.89543 12 10C12 11.1046 11.1046 12 10 12Z\"/>\n <path class=\"bizy-sidebar__tab__svg__path\" d=\"M10 18C8.89543 18 8 17.1046 8 16C8 14.8954 8.89543 14 10 14C11.1046 14 12 14.8954 12 16C12 17.1046 11.1046 18 10 18Z\"/>\n </svg>\n </span>\n\n <input class=\"bizy-sidebar__toggle\" id=\"bizy-sidebar-toggle\" type=\"checkbox\" [checked]=\"_toggle\"/>\n\n <span class=\"bizy-sidebar__content bizy-sidebar__top\" [ngClass]=\"{'bizy-sidebar__content--shrinked': _toggle}\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n </span>\n\n <span class=\"bizy-sidebar__content\" [ngClass]=\"{'bizy-sidebar__content--shrinked': _toggle}\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <ng-content></ng-content>\n\n </span>\n\n <span class=\"bizy-sidebar__content bizy-sidebar__bottom\" [ngClass]=\"{'bizy-sidebar__content--shrinked': _toggle}\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n </span>\n\n</div>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-sidebar-floating-option-title',\n templateUrl: './sidebar-floating-option-title.html',\n styleUrls: ['./sidebar-floating-option-title.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarFloatingOptionTitleComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-sidebar-floating-option-title-${Math.random()}`;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<span class=\"bizy-sidebar-floating-option-title {{customClass}}\" [id]=\"id\">\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { BizySidebarComponent } from './sidebar.component';\nimport { BizySidebarFloatingOptionComponent } from './sidebar-floating-option/sidebar-floating-option.component';\nimport { BizySidebarFloatingOptionTitleComponent } from './sidebar-floating-option-title/sidebar-floating-option-title.component';\nimport { BizySidebarOptionComponent } from './sidebar-option/sidebar-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizySidebarComponent,\n BizySidebarFloatingOptionComponent,\n BizySidebarFloatingOptionTitleComponent,\n BizySidebarOptionComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySidebarModule {}\n","export enum BIZY_SKELETON_SHAPE {\n CIRCLE = 'circle',\n SQUARE = 'square'\n}","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\nimport { BIZY_SKELETON_SHAPE } from './skeleton.types';\n\n\n@Component({\n selector: 'bizy-skeleton',\n templateUrl: './skeleton.html',\n styleUrls: ['./skeleton.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'width',\n '[style.height]': 'height',\n '[style.min-height]': 'height',\n '[class]': 'customClass',\n '[style.border-radius]': 'shape === BIZY_SKELETON_SHAPE.CIRCLE ? \"50%\" : \"0\"'\n }\n})\nexport class BizySkeletonComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-skeleton-${Math.random()}`;\n @Input() shape: BIZY_SKELETON_SHAPE = BIZY_SKELETON_SHAPE.SQUARE;\n @Input() height: string;\n @Input() width: string;\n @Input() customClass: string = '';\n\n readonly BIZY_SKELETON_SHAPE = BIZY_SKELETON_SHAPE;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","","import { NgModule } from '@angular/core';\nimport { BizySkeletonComponent } from './skeleton.component';\n\nconst COMPONENTS: Array<any> = [\n BizySkeletonComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySkeletonModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'bizy-slider',\n templateUrl: './slider.html',\n styleUrls: ['./slider.css'],\n imports: [CommonModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BizySliderComponent {\n readonly #elementRef = inject(ElementRef);\n @ViewChild('fromSlider') fromSlider: ElementRef\n @ViewChild('toSlider') toSlider: ElementRef\n @Input() minLimit: number = 0;\n @Input() maxLimit: number = 100;\n @Output() onChange = new EventEmitter<{min: number, max: number}>();\n\n _min: number = 0;\n _max: number = 100;\n\n\n @Input() set min(min: number) {\n if (typeof min === 'undefined' || min == null) {\n return;\n }\n\n this._min = min;\n };\n\n @Input() set max(max: number) {\n if (typeof max === 'undefined' || max == null) {\n return;\n }\n\n this._max = max;\n };\n\n setFromSlider(value: number) {\n if (value > this._max ) {\n this._min = this._max;\n this.fromSlider.nativeElement.value = this._max;\n } else {\n this._min = value;\n }\n\n this.onChange.emit({min: this._min, max: this._max})\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n setToSlider(value: number) {\n if (value < this._min ) {\n this._max = this._min;\n this.toSlider.nativeElement.value = this._min;\n } else {\n this._max = value;\n }\n\n this.onChange.emit({min: this._min, max: this._max})\n }\n}\n","<div class=\"bizy-slider\">\n\n <input \n #fromSlider\n class=\"bizy-slider__from\"\n type=\"range\"\n [ngModel]=\"_min\"\n [min]=\"minLimit\"\n [max]=\"maxLimit\"\n (ngModelChange)=\"setFromSlider($event)\"/>\n\n <input \n #toSlider\n type=\"range\"\n [ngStyle]=\"{'z-index': 2, background: 'linear-gradient(to right, var(--bizy-slider-color) 0%, var(--bizy-slider-color) ' + ((_min - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-range-color) ' + ((_min - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-range-color) ' + ((_max - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-color) ' + ((_max - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-color) 100%)'}\"\n [ngModel]=\"_max\"\n [min]=\"minLimit\"\n [max]=\"maxLimit\"\n (ngModelChange)=\"setToSlider($event)\"/>\n</div>","import { NgModule } from '@angular/core';\nimport { BizySliderComponent } from './slider.component';\n\nconst COMPONENTS: Array<any> = [\n BizySliderComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySliderModule {}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { ChangeDetectorRef, Directive, Inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BizyTableRowComponent } from '../table-row/table-row.component';\n\n@Directive({\n selector: '[tableFor]',\n})\n\nexport class BizyTableScrollingDirective {\n\n #items = new BehaviorSubject<Array<unknown>>([]);\n\n get items$(): Observable<Array<unknown>> {\n return this.#items.asObservable();\n }\n\n @Input()\n set tableForIn(value: Array<unknown>) {\n this.#items.next(value);\n } \n\n constructor(\n @Inject(ViewContainerRef) public viewContainerRef: ViewContainerRef,\n @Inject(TemplateRef) public template: TemplateRef<BizyTableRowComponent>,\n @Inject(ChangeDetectorRef) public ref: ChangeDetectorRef,\n ) { }\n}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n Input,\n inject,\n} from '@angular/core';\n\n@Directive({\n selector: '[bizyTableColumnFixed]',\n})\nexport class BizyTableColumnFixedDirective {\n readonly #elementRef = inject(ElementRef);\n readonly #renderer = inject(Renderer2);\n #originalBoxShadow: string = '';\n #originalBackgroundColor: string = '';\n #originalZIndex: string = '';\n #originalPosition: string = '';\n \n ngAfterViewInit() {\n const computedStyle = window.getComputedStyle(this.#elementRef.nativeElement);\n this.#originalBoxShadow = computedStyle.boxShadow;\n this.#originalZIndex = computedStyle.zIndex;\n this.#originalBackgroundColor = computedStyle.backgroundColor;\n this.#originalPosition = computedStyle.position;\n }\n\n\n @Input('bizyTableColumnFixed') set tableColumnFixed(value: boolean) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (value) {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'zIndex', '1');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'backgroundColor', 'inherit');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'position', 'relative');\n\n this.#elementRef.nativeElement.setMarginLeft = this.setMarginLeft;\n } else {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'zIndex', this.#originalZIndex);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'position', this.#originalPosition);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'backgroundColor', this.#originalBackgroundColor);\n this.#elementRef.nativeElement.setMarginLeft = null;\n }\n }\n\n setMarginLeft = (marginLeft: number): void => {\n if (marginLeft > 0) {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'boxShadow', '16px 0px 15px -5px rgba(0,0,0,0.37)');\n } else {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'zIndex', '0');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'boxShadow', this.#originalBoxShadow);\n }\n\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'left', `${marginLeft - 5}px`);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'paddingLeft', '5px');\n }\n}\n\n","\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, inject, ElementRef, HostListener } from '@angular/core';\n\n@Component({\n selector: 'bizy-table-column',\n templateUrl: './table-column.html',\n styleUrls: ['./table-column.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableColumnComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-table-column-${Math.random()}`;\n @Input() customClass: string = '';\n @Output() contextMenu = new EventEmitter<MouseEvent>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n @HostListener('contextmenu', ['$event'])\n onRightClick(event: MouseEvent) {\n this.contextMenu.emit(event);\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n setMarginLeft(margin: number): void {\n if (!this.#elementRef.nativeElement || !this.#elementRef.nativeElement.setMarginLeft) {\n return;\n }\n\n this.#elementRef.nativeElement.setMarginLeft(margin);\n }\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"onSelect.emit($event)\"\n (keyup.enter)=\"onSelect.emit($event)\"\n class=\"bizy-table-column {{customClass}}\">\n\n <ng-content></ng-content>\n \n</button>","import { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, Output, EventEmitter, ElementRef, ContentChildren, QueryList, inject } from '@angular/core';\nimport { BizyTableColumnComponent } from '../table-column/table-column.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-table-header',\n templateUrl: './table-header.html',\n styleUrls: ['./table-header.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableHeaderComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTableColumnComponent) columns: QueryList<BizyTableColumnComponent>;\n @Input() id: string = `bizy-table-header-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() selected: boolean = false;\n @Input() selectable: boolean | null = null;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n marginRight = 0;\n\n getId = (): string => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n setSelectable = (selectable: boolean): void => {\n if (this.selectable === false) {\n return;\n }\n\n this.selectable = selectable;\n this.#ref.detectChanges();\n }\n\n setMarginRight(margin: number) {\n this.marginRight = margin - 5;\n this.#ref.detectChanges();\n }\n\n setMarginLeft(margin: number) {\n if (this.columns.length === 0) {\n return;\n }\n\n this.columns.forEach(_column => {\n _column.setMarginLeft(margin);\n this.#ref.detectChanges();\n })\n }\n}","<div\n [id]=\"id\"\n class=\"bizy-table-header {{customClass}}\">\n\n <ng-content select=\"bizy-table-column\"></ng-content>\n\n @if (selectable !== null) {\n <span\n class=\"bizy-table-header__checkbox-wrapper\"\n [ngStyle]=\"{right: marginRight + 'px'}\"\n [ngClass]=\"{'bizy-table-footer__checkbox--shadow': marginRight > 0}\">\n <bizy-checkbox\n [selected]=\"selected\"\n (selectedChange)=\"selectedChange.emit($event)\"\n (onSelect)=\"onSelect.emit($event)\"\n [ngClass]=\"{'bizy-table-header__checkbox--hidden': selectable === false}\">\n </bizy-checkbox>\n </span>\n }\n\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, inject, Input, QueryList } from '@angular/core';\nimport { BizyTableColumnComponent } from '../table-column/table-column.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-table-footer',\n templateUrl: './table-footer.html',\n styleUrls: ['./table-footer.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableFooterComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTableColumnComponent) columns: QueryList<BizyTableColumnComponent>;\n @Input() id: string = `bizy-table-footer-${Math.random()}`;\n @Input() customClass: string = '';\n\n marginRight = 0;\n\n _selectable: boolean = false;\n\n getId = (): string => {\n return this.id;\n }\n\n setSelectable = (selectable: boolean): void => {\n this._selectable = selectable;\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n setMarginRight(margin: number) {\n this.marginRight = margin - 5;\n this.#ref.detectChanges();\n }\n\n setMarginLeft(margin: number) {\n if (this.columns.length === 0) {\n return;\n }\n\n this.columns.forEach(_column => {\n _column.setMarginLeft(margin);\n this.#ref.detectChanges();\n })\n }\n}","<div\n [id]=\"id\"\n class=\"bizy-table-footer {{customClass}}\">\n\n <ng-content select=\"bizy-table-column\"></ng-content>\n\n\n @if (_selectable) {\n <span\n class=\"bizy-table-footer__checkbox-wrapper\"\n [ngStyle]=\"{right: marginRight + 'px'}\"\n [ngClass]=\"{'bizy-table-footer__checkbox--shadow': marginRight > 0}\">\n <bizy-checkbox\n class=\"bizy-table-footer__checkbox\">\n </bizy-checkbox>\n </span>\n }\n\n</div>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, ContentChildren, QueryList, ElementRef, inject } from '@angular/core';\nimport { BizyTableColumnComponent } from '../table-column/table-column.component';\nimport { CommonModule } from '@angular/common';\nimport { BizyAccordionComponent } from '../../accordion/accordion.component';\n\n@Component({\n selector: 'bizy-table-row',\n templateUrl: './table-row.html',\n styleUrls: ['./table-row.css'],\n imports: [CommonModule, BizyAccordionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableRowComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTableColumnComponent) columns: QueryList<BizyTableColumnComponent>;\n @Input() id: string = `bizy-table-row-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() opened: boolean = false;\n @Input() selectable: boolean | null = null;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onOpen = new EventEmitter<PointerEvent>();\n\n marginRight = 0;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onOpen(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.openedChange.emit(!this.opened);\n this.onOpen.emit(event);\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n setSelectable = (selectable: boolean): void => {\n if (this.selectable === false) {\n return;\n }\n\n this.selectable = selectable;\n this.#ref.detectChanges();\n }\n\n setSelected = (selected: boolean): void => {\n if (this.selectable === false) {\n return;\n }\n \n this.selected = selected;\n this.selectedChange.emit(selected);\n this.#ref.detectChanges();\n }\n\n setMarginRight(margin: number) {\n this.marginRight = margin - 5;\n this.#ref.detectChanges();\n }\n\n setMarginLeft(margin: number) {\n if (this.columns.length === 0) {\n return;\n }\n\n this.columns.forEach(_column => {\n _column.setMarginLeft(margin);\n this.#ref.detectChanges();\n })\n }\n}","<bizy-accordion\n class=\"bizy-table-row__accordion\"\n customClass=\"bizy-table-row__accordion {{disabled ? 'bizy-table-row--disabled' : ''}} {{selected ? 'bizy-table-row--selected' : ''}} {{opened ? 'bizy-table-row--opened' : ''}}\"\n [(opened)]=\"opened\"\n (onSelect)=\"_onOpen($event)\">\n\n <button\n type=\"button\"\n [id]=\"id\"\n class=\"bizy-table-row {{customClass}}\"\n (click)=\"selectedChange.emit(!selected)\"\n (keyup.enter)=\"selectedChange.emit(!selected)\"\n [ngClass]=\"{'bizy-table-row--disabled': disabled, 'bizy-table-row--selected': selected}\">\n\n <ng-content select=\"bizy-table-column\"></ng-content>\n\n @if (selectable !== null) {\n <bizy-checkbox\n class=\"bizy-table-row__checkbox\"\n [ngStyle]=\"{right: marginRight + 'px'}\"\n [ngClass]=\"{'bizy-table-row__checkbox--hidden': selectable === false, 'bizy-table-row__checkbox--shadow': marginRight > 0}\"\n [selected]=\"selected\"\n [disabled]=\"disabled\"\n (selectedChange)=\"selectedChange.emit($event)\"\n (onSelect)=\"onSelect.emit($event); $event.stopPropagation()\">\n </bizy-checkbox>\n }\n\n </button>\n\n <ng-content accordion-option select=\"bizy-table-row-expand-content\"></ng-content>\n\n</bizy-accordion>","import { debounceTime, fromEvent, Observable, skip, Subscription } from 'rxjs';\nimport {\n Component,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n Inject,\n ElementRef,\n Input,\n OnDestroy,\n ChangeDetectorRef,\n DOCUMENT,\n inject\n} from '@angular/core';\nimport { BizyTableRowComponent } from '../table-row/table-row.component';\nimport { BizyTableScrollingDirective } from './table-scrolling.directive';\nimport { CommonModule } from '@angular/common';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\n\n@Component({\n selector: 'bizy-table-scrolling',\n templateUrl: './table-scrolling.html',\n styleUrls: ['./table-scrolling.css'],\n imports: [CommonModule, ScrollingModule]\n})\n\n// FIX: This components fixes the bug with Angular CDK virtual scrolling not supporting content projection.\n// https://github.com/angular/components/issues/15277\nexport class BizyTableScrollingComponent implements OnDestroy {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild(CdkVirtualScrollViewport) viewport!: CdkVirtualScrollViewport;\n @ViewChild('tableScrollingContent') content: TemplateRef<object>;\n\n #view: ViewContainerRef;\n items$: Observable<Array<unknown>>;\n itemTemplate: TemplateRef<BizyTableRowComponent>;\n\n itemSize: number;\n \n #subscription = new Subscription();\n #scrollTop: number = 0;\n\n /** Called by the virtual-for directive inside of the viewport. */\n public attachView(tableDirective: BizyTableScrollingDirective) {\n if (this.#view) {\n return;\n }\n \n let itemSize = 30;\n const rowHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-table-row-height');\n const fontSize = getComputedStyle(this.#document.documentElement).getPropertyValue('font-size');\n const gap = Number(fontSize.split('px')[0]) * 0.1;\n if (rowHeight && rowHeight.includes('rem')) {\n itemSize = Number(fontSize.split('px')[0]) * Number(rowHeight.split('rem')[0]);\n } else if (rowHeight && rowHeight.includes('px')) {\n itemSize = Number(rowHeight.split('px')[0]);\n }\n this.itemSize = itemSize + gap;\n this.items$ = tableDirective.items$;\n this.itemTemplate = tableDirective.template;\n this.#view = tableDirective.viewContainerRef;\n this.#view.createEmbeddedView(this.content);\n this.#ref.detectChanges();\n\n this.#subscription.add(fromEvent(this.#elementRef.nativeElement, 'scroll', { capture: true }).pipe(debounceTime(100)).subscribe(() => {\n this.#scrollTop = this.viewport.measureScrollOffset();\n }));\n\n this.#subscription.add(this.items$.pipe(skip(1)).subscribe(() => {\n if (this.viewport) {\n this.viewport.scrollToOffset(this.#scrollTop);\n this.#ref.detectChanges();\n }\n }));\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}\n","<cdk-virtual-scroll-viewport \n [itemSize]=\"itemSize\"\n [minBufferPx]=\"itemSize + (itemSize * 20)\"\n [maxBufferPx]=\"itemSize + (itemSize * 40)\">\n \n <ng-content></ng-content>\n\n <ng-template #tableScrollingContent>\n <ng-template let-item cdkVirtualFor [cdkVirtualForOf]=\"items$ | async\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n </ng-template>\n </ng-template>\n</cdk-virtual-scroll-viewport>","import { Component, Input, ChangeDetectionStrategy, ContentChildren, QueryList, ContentChild, ChangeDetectorRef, ViewChild, AfterContentInit, ElementRef, Renderer2, DOCUMENT, inject } from '@angular/core';\nimport { BizyTableHeaderComponent } from './table-header/table-header.component';\nimport { BizyTableFooterComponent } from './table-footer/table-footer.component';\nimport { BizyTableRowComponent } from './table-row/table-row.component';\n\nimport { Subject, Subscription, debounceTime, fromEvent, skip } from 'rxjs';\nimport { BizyTableScrollingComponent } from './table-scrolling/table-scrolling.component';\nimport { BizyTableScrollingDirective } from './table-scrolling/table-scrolling.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\n@Component({\n selector: 'bizy-table',\n templateUrl: './table.html',\n styleUrls: ['./table.css'],\n imports: [\n ScrollingModule,\n BizyTableScrollingComponent\n],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n\n @ViewChild(BizyTableScrollingComponent) viewport: BizyTableScrollingComponent;\n @ContentChild(BizyTableScrollingDirective) virtualFor: BizyTableScrollingDirective;\n @ContentChildren(BizyTableRowComponent) rows: QueryList<BizyTableRowComponent>;\n @ContentChildren(BizyTableHeaderComponent) headers: QueryList<BizyTableHeaderComponent>;\n @ContentChildren(BizyTableFooterComponent) footers: QueryList<BizyTableFooterComponent>;\n @Input() resizeRef: ElementRef = null;\n\n #selectableMutationObserver: MutationObserver;\n #rowScrollingMutationObserver: MutationObserver;\n #afterContentInitObserver: MutationObserver;\n #resizeObserver: ResizeObserver;\n notifier$ = new Subject<void>();\n #subscription = new Subscription();\n marginRight: number = 0;\n marginLeft: number = 0;\n\n @Input() set selectable(selectable: boolean) {\n this.#selectableMutationObserver = new MutationObserver(() => {\n if (!this.rows || this.rows.length === 0) {\n return;\n }\n\n this.rows.forEach(_row => {\n _row.setSelectable(selectable);\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n\n this.headers.forEach(_header => {\n _header.setSelectable(selectable);\n });\n\n this.footers.forEach(_footer => {\n _footer.setSelectable(selectable);\n });\n\n this.#ref.detectChanges(); \n });\n\n this.#selectableMutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n };\n\n ngAfterContentInit() {\n this.#rowScrollingMutationObserver = new MutationObserver(() => {\n if (!this.virtualFor || !this.viewport) {\n return;\n }\n\n if (this.#elementRef.nativeElement.offsetHeight) {\n const fontSize = getComputedStyle(this.#document.documentElement).getPropertyValue('font-size');\n const gap = Number(fontSize.split('px')[0]) * 0.3;\n let headersHeight = 0;\n this.headers.forEach(_header => {\n headersHeight += _header.getNativeElement().offsetHeight + gap;\n });\n\n let footersHeight = 0;\n this.footers.forEach(_footer => {\n footersHeight += _footer.getNativeElement().offsetHeight + gap;\n });\n this.#renderer.setStyle(this.viewport.getNativeElement(), 'height', `${this.#elementRef.nativeElement.offsetHeight - headersHeight - footersHeight}px`)\n }\n\n this.viewport.attachView(this.virtualFor);\n this.#rowScrollingMutationObserver.disconnect();\n \n this.#ref.detectChanges(); \n \n this.#afterContentInitObserver = new MutationObserver(() => {\n if (!this.#elementRef.nativeElement.offsetWidth) {\n return;\n }\n \n this.marginRight = this.#elementRef.nativeElement.scrollWidth ? (this.#elementRef.nativeElement.scrollWidth - this.#elementRef.nativeElement.offsetWidth) - this.#elementRef.nativeElement.scrollLeft : 0;\n this.marginLeft = this.#elementRef.nativeElement.scrollLeft;\n this.rows.forEach(_row => {\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n\n this.headers.forEach(_header => {\n _header.setMarginRight(this.marginRight);\n _header.setMarginLeft(this.marginLeft);\n });\n \n this.footers.forEach(_footer => {\n _footer.setMarginRight(this.marginRight);\n _footer.setMarginLeft(this.marginLeft);\n });\n\n this.#subscription.add(fromEvent(this.#elementRef.nativeElement, 'scroll', { capture: true }).subscribe(() => {\n this.marginRight = this.#elementRef.nativeElement.scrollWidth ? (this.#elementRef.nativeElement.scrollWidth - this.#elementRef.nativeElement.offsetWidth) - this.#elementRef.nativeElement.scrollLeft : 0;\n this.marginLeft = this.#elementRef.nativeElement.scrollLeft;\n this.rows.forEach(_row => {\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n \n this.headers.forEach(_header => {\n _header.setMarginRight(this.marginRight);\n _header.setMarginLeft(this.marginLeft);\n });\n \n this.footers.forEach(_footer => {\n _footer.setMarginRight(this.marginRight);\n _footer.setMarginLeft(this.marginLeft);\n });\n }));\n \n this.#afterContentInitObserver.disconnect(); \n this.#ref.detectChanges(); \n });\n\n this.#afterContentInitObserver.observe(this.#document.body, { childList: true, subtree: true });\n });\n\n this.#rowScrollingMutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n\n\n this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#subscription.add(this.notifier$.pipe(skip(1), debounceTime(200)).subscribe(() => {\n if (this.viewport && this.#elementRef.nativeElement.offsetHeight) {\n const fontSize = getComputedStyle(this.#document.documentElement).getPropertyValue('font-size');\n const gap = Number(fontSize.split('px')[0]) * 0.3;\n let headersHeight = 0;\n this.headers.forEach(_header => {\n headersHeight += _header.getNativeElement().offsetHeight + gap;\n });\n\n let footersHeight = 0;\n this.footers.forEach(_footer => {\n footersHeight += _footer.getNativeElement().offsetHeight + gap;\n });\n this.#renderer.setStyle(this.viewport.getNativeElement(), 'height', `${this.#elementRef.nativeElement.offsetHeight - headersHeight - footersHeight}px`)\n }\n this.marginRight = this.#elementRef.nativeElement.scrollWidth ? (this.#elementRef.nativeElement.scrollWidth - this.#elementRef.nativeElement.offsetWidth) - this.#elementRef.nativeElement.scrollLeft : 0;\n this.marginLeft = this.#elementRef.nativeElement.scrollLeft;\n this.rows.forEach(_row => {\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n \n this.headers.forEach(_header => {\n _header.setMarginRight(this.marginRight);\n _header.setMarginLeft(this.marginLeft);\n });\n\n this.footers.forEach(_footer => {\n _footer.setMarginRight(this.marginRight);\n _footer.setMarginLeft(this.marginLeft);\n });\n }));\n this.notifier$.next();\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n if (this.#selectableMutationObserver) {\n this.#selectableMutationObserver.disconnect();\n }\n\n if (this.#rowScrollingMutationObserver) {\n this.#rowScrollingMutationObserver.disconnect();\n }\n\n if (this.#afterContentInitObserver) {\n this.#afterContentInitObserver.disconnect();\n }\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<div class=\"bizy-table\">\n\n <ng-content select=\"bizy-table-header\"></ng-content>\n\n <bizy-table-scrolling class=\"bizy-table__rows\">\n\n <ng-content select=\"bizy-table-row\"></ng-content>\n\n </bizy-table-scrolling>\n\n <ng-content select=\"bizy-table-footer\"></ng-content>\n\n</div>","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-table-column-arrows',\n templateUrl: './table-column-arrows.html',\n styleUrls: ['./table-column-arrows.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableColumnArrowsComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() order: 'asc' | 'desc' | null = null;\n @Input() show: boolean = false;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","@if (order !== 'asc' && order !== 'desc') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 448 512\"\n name=\"bizy-table-column-arrows\"\n class=\"bizy-table-column-arrows bizy-table-column-arrows__down-up animated fade-in {{customClass}}\">\n <path d=\"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"/>\n </svg>\n}\n\n@if (order === 'desc') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 576 512\"\n name=\"bizy-table-column-down-arrow\"\n class=\"bizy-table-column-arrows animated fade-in {{customClass}}\"\n [ngClass]=\"{'bizy-table-column-arrows--visible': show}\">\n <path d=\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"/>\n </svg>\n}\n\n\n@if (order === 'asc') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 576 512\"\n class=\"bizy-table-column-arrows animated fade-in {{customClass}}\"\n [ngClass]=\"{'bizy-table-column-arrows--visible': show}\"\n name=\"bizy-table-column-up-arrow\">\n <path d=\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"/>\n </svg>\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-table-row-expand-content',\n templateUrl: './table-row-expand-content.html',\n styleUrls: ['./table-row-expand-content.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableRowExpandContentComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { BizyTableScrollingDirective } from './table-scrolling/table-scrolling.directive';\nimport { NgModule } from '@angular/core';\nimport { BizyTableColumnFixedDirective } from './directives';\nimport { BizyTableComponent } from './table.component';\nimport { BizyTableColumnComponent } from './table-column/table-column.component';\nimport { BizyTableColumnArrowsComponent } from './table-column-arrows/table-column-arrows.component';\nimport { BizyTableFooterComponent } from './table-footer/table-footer.component';\nimport { BizyTableHeaderComponent } from './table-header/table-header.component';\nimport { BizyTableRowComponent } from './table-row/table-row.component';\nimport { BizyTableRowExpandContentComponent } from './table-row-expand-content/table-row-expand-content.component';\nimport { BizyTableScrollingComponent } from './table-scrolling/table-scrolling.component';\n\nconst COMPONENTS: Array<any> = [\n BizyTableComponent,\n BizyTableColumnComponent,\n BizyTableColumnArrowsComponent,\n BizyTableFooterComponent,\n BizyTableHeaderComponent,\n BizyTableRowComponent,\n BizyTableRowExpandContentComponent,\n BizyTableScrollingComponent\n];\n\nconst DIRECTIVES: Array<any> = [\n BizyTableScrollingDirective,\n BizyTableColumnFixedDirective\n];\n\n@NgModule({\n imports: COMPONENTS.concat(DIRECTIVES),\n exports: COMPONENTS.concat(DIRECTIVES),\n})\n\nexport class BizyTableModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-tab',\n templateUrl: './tab.html',\n styleUrls: ['./tab.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTabComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-tab-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() linePosition: 'bottom' | 'top' = 'bottom';\n @Input() customClass: string;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.selectedChange.emit(true);\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","@if (linePosition === 'top') {\n <span class=\"bizy-tab__selected-line\" [ngClass]=\"{'bizy-tab__selected-line--visible': selected}\"></span>\n}\n\n<button\n type=\"button\"\n [id]=\"id\"\n [ngClass]=\"{'bizy-tab--selected': selected, 'bizy-tab--disabled': disabled}\"\n class=\"bizy-tab {{customClass}}\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content></ng-content>\n\n</button>\n\n@if (linePosition === 'bottom') {\n <span class=\"bizy-tab__selected-line\" [ngClass]=\"{'bizy-tab__selected-line--visible': selected}\"></span>\n}\n","import { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, inject, Input, QueryList, ViewChild } from '@angular/core';\nimport { Subject, Subscription, debounceTime } from 'rxjs';\nimport { BizyTabComponent } from './tab/tab.component';\n\n\n@Component({\n selector: 'bizy-tabs',\n templateUrl: './tabs.html',\n styleUrls: ['./tabs.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTabsComponent implements AfterViewInit, AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTabComponent) tabs!: QueryList<BizyTabComponent>;\n @ViewChild('bizyTabs') private bizyTabs: ElementRef; \n @ViewChild('bizyTabsWrapper') private bizyTabsWrapper: ElementRef; \n @Input() customClass: string\n\n #SCROLL_STEP = 50;\n\n showLeftButton: boolean = false; \n showRightButton: boolean = false; \n\n #resizeObserver: ResizeObserver | null = null;\n #subscription = new Subscription();\n #resize$ = new Subject<void>();\n #initialScroll: number = 0;\n\n ngAfterViewInit(): void {\n this.bizyTabsWrapper.nativeElement.scrollLeft = this.#initialScroll;\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n this.#resizeObserver.observe(this.bizyTabs.nativeElement);\n this.#subscription.add(this.#resize$.pipe(debounceTime(100)).subscribe(() => {\n this.#checkButtons();\n }));\n }\n\n ngAfterContentInit(): void {\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs.get(i).selected) {\n this.#initialScroll = this.tabs.get(i).getNativeElement().offsetLeft;\n break;\n }\n }\n }\n\n onScrollLeft() {\n this.bizyTabsWrapper.nativeElement.scrollLeft = this.bizyTabsWrapper.nativeElement.scrollLeft - this.#SCROLL_STEP < 0 ? 0 : this.bizyTabsWrapper.nativeElement.scrollLeft - this.#SCROLL_STEP;\n this.#checkButtons();\n }\n\n onScrollRight() {\n this.bizyTabsWrapper.nativeElement.scrollLeft = (this.bizyTabsWrapper.nativeElement.scrollLeft + this.#SCROLL_STEP) > this.bizyTabsWrapper.nativeElement.scrollWidth ? this.bizyTabsWrapper.nativeElement.scrollWidth : this.bizyTabsWrapper.nativeElement.scrollLeft + this.#SCROLL_STEP;\n this.#checkButtons();\n }\n\n #checkButtons() {\n this.showLeftButton = this.bizyTabsWrapper.nativeElement.scrollLeft > 0;\n this.showRightButton = (this.bizyTabsWrapper.nativeElement.scrollWidth - this.bizyTabs.nativeElement.offsetWidth) > 0 && (this.bizyTabsWrapper.nativeElement.scrollLeft < (this.bizyTabsWrapper.nativeElement.scrollWidth - this.bizyTabs.nativeElement.offsetWidth));\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#resizeObserver.disconnect();\n }\n}","<div #bizyTabs class=\"bizy-tabs {{customClass}}\">\n\n @if (showLeftButton) {\n <button\n type=\"button\"\n class=\"bizy-tabs__scroll-button bizy-tabs__scroll-button--left\"\n (click)=\"onScrollLeft()\"\n (keyup.enter)=\"onScrollLeft()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" class=\"bizy-tabs__scroll-button__arrow\">\n <path d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"/>\n </svg>\n </button>\n }\n\n <span class=\"bizy-tabs__wrapper\" #bizyTabsWrapper>\n\n <ng-content select=\"bizy-tab\"></ng-content>\n\n </span>\n\n @if (showRightButton) {\n <button\n type=\"button\"\n class=\"bizy-tabs__scroll-button bizy-tabs__scroll-button--right\"\n (click)=\"onScrollRight()\"\n (keyup.enter)=\"onScrollRight()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" class=\"bizy-tabs__scroll-button__arrow\">\n <path d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"/>\n </svg>\n </button>\n }\n\n</div>","import { NgModule } from '@angular/core';\nimport { BizyTabsComponent } from './tabs.component';\nimport { BizyTabComponent } from './tab/tab.component';\n\nconst COMPONENTS: Array<any> = [\n BizyTabsComponent,\n BizyTabComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyTabsModule {}\n","export enum BIZY_TAG_TYPE {\n DEFAULT = 'default',\n SUCCESS = 'success',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n};","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { BIZY_TAG_TYPE } from './tag.types';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-tag',\n templateUrl: './tag.html',\n styleUrls: ['./tag.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTagComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-tag-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() disabled: boolean = false;\n @Input() type: BIZY_TAG_TYPE = BIZY_TAG_TYPE.DEFAULT;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _focused: boolean = false;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this._focused) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<button \n type=\"button\"\n [id]=\"id\"\n (focus)=\"_focused = true\"\n (blur)=\"_focused = false\"\n [ngClass]=\"{'bizy-tag--disabled': disabled}\"\n class=\"bizy-tag bizy-tag--{{type}} {{customClass}}\"\n (click)=\"_focused = true; _onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content></ng-content>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyTagComponent } from './tag.component';\n\nconst COMPONENTS: Array<any> = [\n BizyTagComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyTagModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-timeline',\n templateUrl: './timeline.html',\n styleUrls: ['./timeline.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n '[class]': 'customClass'\n }\n})\nexport class BizyTimelineComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-timeline-${Math.random()}`;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<ng-content select=\"bizy-timeline-event\"></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-timeline-event',\n templateUrl: './timeline-event.html',\n styleUrls: ['./timeline-event.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n '[class]': 'customClass'\n }\n})\nexport class BizyTimelineEventComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-timeline-event-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() showLine: boolean = true;\n @Input() disabled: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _focused: boolean = false;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this._focused) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","\n<span class=\"bizy-timeline-event--start\">\n <ng-content select=\"[slot=start]\"></ng-content>\n</span>\n\n<span class=\"bizy-timeline-event-content\" [ngClass]=\"{'bizy-timeline-event--disabled': disabled}\">\n\n <button\n type=\"button\"\n (focus)=\"_focused = true\"\n (blur)=\"_focused = false\"\n class=\"bizy-timeline-event-bullet\"\n (click)=\"_focused = true; _onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content select=\"[slot=bullet]\"></ng-content>\n\n </button>\n\n @if (showLine) {\n <span class=\"bizy-timeline-event-line\"></span>\n }\n\n</span>\n\n<span class=\"bizy-timeline-event--end\">\n <ng-content select=\"[slot=end]\"></ng-content>\n</span>","import { NgModule } from '@angular/core';\nimport { BizyTimelineComponent } from './timeline.component';\nimport { BizyTimelineEventComponent } from './timeline-event/timeline-event.component';\n\nconst COMPONENTS = [\n BizyTimelineComponent,\n BizyTimelineEventComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyTimelineModule {}\n","import { inject, Injectable, DOCUMENT } from '@angular/core';\nimport { BizyToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\nimport { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\n\n\nexport enum TOAST {\n DEBUG = 'debug',\n SUCCESS = 'success',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger'\n}\n\n@Injectable()\nexport class BizyToastService {\n readonly #document = inject(DOCUMENT);\n readonly #dialog = inject(Dialog);\n\n static toasts: Array<{ref: DialogRef<BizyToastWrapperComponent>, element: HTMLElement | null}> = [];\n\n duration: number = 3000;\n defaultDebugTitle = 'Ha sucedido un evento';\n defaultInfoTitle = 'Observación';\n defaultSuccessTitle = 'Operación exitosa';\n defaultWarningTitle = 'Advertencia';\n defaultDangerTitle = 'Hubo un problema';\n\n #open(data: {type: TOAST, data: string | {title: string, msg?: string, duration?: number} }) {\n\n if (typeof data.data !== 'string' && data.data.duration) {\n this.duration = data.data.duration;\n this.#document.documentElement.style.setProperty('--bizy-toast-duration', `${data.data.duration}ms`);\n }\n\n const id = `bizy-toast-${Math.random()}`;\n const toastRef = this.#dialog.open(BizyToastWrapperComponent, ({\n id,\n data: {\n type: data.type,\n duration: this.duration,\n id,\n title: typeof data.data === 'string' ? data.data : data.data.title,\n msg: typeof data.data === 'string' ? '' : data.data.msg\n },\n autoFocus: false,\n hasBackdrop: false,\n disableClose: false,\n panelClass: ['bizy-toast', 'bizy-toast--in'] \n } as DialogConfig<unknown, DialogRef<BizyToastWrapperComponent>>));\n\n let container: HTMLElement | null = null;\n let tries: number = 3;\n const interval = setInterval(() => {\n if (tries <= 0) {\n BizyToastService.toasts.push({ref: toastRef, element: null});\n clearInterval(interval);\n }\n\n container = this.#document.getElementById(id) as HTMLElement;\n if (!container || !container.parentElement) {\n tries--;\n return;\n }\n\n const offset = this.#calculateOffset();\n container.parentElement.style.top = `${offset}px`;\n BizyToastService.toasts.push({ref: toastRef, element: container.parentElement});\n\n tries = 0;\n clearInterval(interval);\n }, 300);\n }\n\n #calculateOffset = (): number => {\n let offset = 10;\n for (const toast of BizyToastService.toasts) {\n if (toast.element) {\n offset += toast.element.offsetHeight + 10;\n }\n }\n return offset;\n }\n\n #repositionToasts = () => {\n let offset = 10;\n for (const toast of BizyToastService.toasts) {\n if (toast.element) { \n toast.element.style.top = `${offset}px`;\n offset += toast.element.offsetHeight + 10;\n }\n }\n }\n\n config(data: {\n defaultDebugTitle?: string,\n defaultInfoTitle?: string,\n defaultSuccessTitle?: string,\n defaultWarningTitle?: string,\n defaultDangerTitle?: string,\n duration?: number\n }) {\n if (!data) {\n return;\n }\n\n if (data.defaultDebugTitle) {\n this.defaultDebugTitle = data.defaultDebugTitle;\n }\n\n if (data.defaultInfoTitle) {\n this.defaultInfoTitle = data.defaultInfoTitle;\n }\n\n if (data.defaultSuccessTitle) {\n this.defaultSuccessTitle = data.defaultSuccessTitle;\n }\n\n if (data.defaultWarningTitle) {\n this.defaultWarningTitle = data.defaultWarningTitle;\n }\n\n if (data.defaultDangerTitle) {\n this.defaultDangerTitle = data.defaultDangerTitle;\n }\n\n if (data.duration) {\n this.duration = data.duration;\n this.#document.documentElement.style.setProperty('--bizy-toast-duration', `${data.duration}ms`);\n }\n }\n\n debug(data: string | {title: string, msg?: string, duration?: number} = this.defaultDebugTitle) {\n this.#open({type: TOAST.DEBUG, data});\n }\n\n info(data: string | {title: string, msg?: string, duration?: number} = this.defaultInfoTitle) {\n this.#open({type: TOAST.INFO, data});\n }\n\n success(data: string | {title: string, msg?: string, duration?: number} = this.defaultSuccessTitle) {\n this.#open({type: TOAST.SUCCESS, data});\n }\n\n warning(data: string | {title: string, msg?: string, duration?: number} = this.defaultWarningTitle) {\n this.#open({type: TOAST.WARNING, data});\n }\n\n danger(data: string | {title: string, msg?: string, duration?: number} = this.defaultDangerTitle) {\n this.#open({type: TOAST.DANGER, data});\n }\n\n close = (id: string) => {\n if (!BizyToastService.toasts || BizyToastService.toasts.length === 0) {\n return;\n } \n\n let toast = BizyToastService.toasts.find(_toastRef => _toastRef.ref.id === id);\n\n if (!toast) {\n toast = BizyToastService.toasts[BizyToastService.toasts.length - 1];\n }\n\n if (toast.ref) {\n toast.ref.removePanelClass('bizy-toast--in');\n toast.ref.addPanelClass('bizy-toast--out');\n\n setTimeout(() => {\n toast.ref.close();\n BizyToastService.toasts = BizyToastService.toasts.filter(t => t.ref !== toast.ref);\n this.#repositionToasts();\n }, 500);\n }\n }\n}","import { DIALOG_DATA, DialogModule } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { TOAST, BizyToastService } from '../toast.service';\n\n\n@Component({\n selector: 'bizy-toast-wrapper',\n templateUrl: './toast-wrapper.html',\n styleUrls: ['./toast-wrapper.css'],\n imports: [DialogModule],\n providers: [BizyToastService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyToastWrapperComponent {\n readonly #data: {type: TOAST, title: string, msg: string, id: string, duration: number} = inject(DIALOG_DATA);\n readonly #toast = inject(BizyToastService);\n\n type: TOAST = TOAST.INFO;\n title: string = '';\n msg: string = '';\n id: string;\n\n constructor() {\n if (!this.#data) {\n this.close();\n return;\n }\n \n this.type = this.#data.type;\n this.title = this.#data.title;\n this.msg = this.#data.msg;\n this.id = this.#data.id;\n\n setTimeout(() => {\n this.close();\n }, this.#data.duration || 3000);\n }\n\n close() {\n this.#toast.close(this.id);\n }\n}","<div class=\"bizy-toast-wrapper bizy-toast-wrapper--{{type}}\">\n\n <span class=\"bizy-toast-wrapper__content\">\n\n @if (title) {\n <h4 class=\"bizy-toast-wrapper__title--{{type}}\">{{title}}</h4>\n }\n\n @if (msg) {\n <h6>{{msg}}</h6>\n }\n\n </span>\n\n <button (click)=\"close()\" (keyup.enter)=\"close()\" class=\"bizy-toast-wrapper__close-button\">\n\n <svg\n data-name=\"Cancel button\"\n id=\"bizy-toast-wrapper-close-svg\"\n viewBox=\"0 0 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"bizy-toast-wrapper-close-svg-content\" d=\"M114,100l49-49a9.9,9.9,0,0,0-14-14L100,86,51,37A9.9,9.9,0,0,0,37,51l49,49L37,149a9.9,9.9,0,0,0,14,14l49-49,49,49a9.9,9.9,0,0,0,14-14Z\"/>\n </svg>\n\n </button>\n\n <span class=\"bizy-toast__progress bizy-toast__progress--{{type}}\"></span>\n\n</div>","import { NgModule } from '@angular/core';\nimport { BizyToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\nimport { BizyToastService } from './toast.service';\n\n@NgModule({\n imports: [BizyToastWrapperComponent],\n exports: [BizyToastWrapperComponent],\n providers: [BizyToastService]\n})\n\nexport class BizyToastModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ElementRef, inject } from '@angular/core';\n@Component({\n selector: 'bizy-toggle',\n templateUrl: './toggle.html',\n styleUrls: ['./toggle.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyToggleComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-toggle-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() selectedChange = new EventEmitter<boolean>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.selectedChange.emit(!this.selected);\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button type=\"button\" class=\"bizy-toggle\" [ngClass]=\"{'bizy-toggle--disabled': disabled}\" (click)=\"_onSelect($event)\" (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <input \n class=\"bizy-toggle__toggle\"\n type=\"checkbox\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [checked]=\"selected\"\n readonly\n [ngClass]=\"{'bizy-toggle__toggle--disabled': disabled}\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyToggleComponent } from './toggle.component';\n\nconst COMPONENTS: Array<any> = [\n BizyToggleComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyToggleModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-toolbar',\n templateUrl: './toolbar.html',\n styleUrls: ['./toolbar.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyToolbarComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<div class=\"bizy-toolbar\">\n\n <span class=\"bizy-toolbar__start\">\n \n <ng-content select=\"[slot=start]\"></ng-content>\n\n </span>\n\n <span class=\"bizy-toolbar__end\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n </span>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { BizyToolbarComponent } from './toolbar.component';\n\nconst COMPONENTS: Array<any> = [\n BizyToolbarComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyToolbarModule {}\n","import { inject, Injectable } from '@angular/core';\nimport { LangChangeEvent, StrictTranslation, TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\n\nexport enum LANGUAGE {\n SPANISH = 'es',\n ENGLISH = 'en',\n}\nexport interface ILocale {\n lang: LANGUAGE;\n translations: Record<string, StrictTranslation>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyTranslateService {\n readonly #translate = inject(TranslateService);\n\n get language$(): Observable<LangChangeEvent> {\n return this.#translate.onLangChange;\n }\n\n\n public loadTranslations(...args: ILocale[]): void {\n const locales = [...args];\n locales.forEach(locale => {\n this.#translate.setTranslation(locale.lang, locale.translations, true);\n });\n }\n\n addLangs(langs: Array<LANGUAGE>) {\n this.#translate.addLangs(langs);\n }\n\n getLangs(): Array<LANGUAGE> {\n return this.#translate.getLangs() as Array<LANGUAGE>;\n }\n\n setDefault(lang: LANGUAGE): void {\n this.#translate.setDefaultLang(lang);\n }\n\n getCurrentLang(): LANGUAGE {\n return this.#translate.currentLang as LANGUAGE;\n }\n\n use(lang: LANGUAGE): void {\n this.#translate.use(lang);\n }\n\n get(translation: string): string {\n return this.#translate.instant(translation);\n }\n}\n","import { Pipe, PipeTransform, Inject } from '@angular/core';\nimport { BizyTranslateService } from './translate.service';\n\n@Pipe({\n name: 'translate',\n pure: false\n})\nexport class BizyTranslatePipe implements PipeTransform {\n constructor(@Inject(BizyTranslateService) private translate: BizyTranslateService) {}\n\n transform(label: string): string {\n return this.translate.get(label);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyTranslatePipe } from './translate.pipe';\nimport { BizyTranslateService } from './translate.service';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [BizyTranslatePipe],\n exports: [BizyTranslatePipe],\n providers: [BizyTranslateService]\n})\n\nexport class BizyTranslateModule {\n static forRoot = TranslateModule.forRoot; \n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'bizyUnique' })\nexport class BizyUniquePipe implements PipeTransform {\n transform<T>(items: Array<T>, property?: string): Array<T> {\n if (!items) {\n return [];\n }\n\n if (!Array.isArray(items) || items.length <= 1) {\n return items;\n }\n\n function getNestedValue(obj: T, path: string): T {\n return path.split('.').reduce((acc, key) => acc?.[key], obj);\n }\n\n const _items = new Set<any>();\n\n return items.filter(item => {\n const value = property ? getNestedValue(item, property) : item;\n\n if (_items.has(value)) {\n return false;\n }\n\n _items.add(value);\n return true;\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyRound'\n})\nexport class BizyRoundPipe implements PipeTransform {\n transform(value: number, mode: 'ceil' | 'floor' | 'round' = 'round'): number {\n if (typeof value !== 'number') {\n return value;\n }\n\n switch (mode) {\n case 'ceil':\n return Math.ceil(value);\n case 'floor':\n return Math.floor(value);\n default:\n return Math.round(value);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyExtractNumbers'\n})\nexport class BizyExtractNumbersPipe implements PipeTransform {\n transform(value: string): string {\n if (!value) {\n return '';\n }\n\n const numbers = value.match(/\\d+/g);\n return numbers ? numbers.join('') : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyRepeat'\n})\nexport class BizyRepeatPipe implements PipeTransform {\n\n transform(value: number): number[] {\n return Array.from({ length: value }, (_, i) => i);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizySetToArray'\n})\nexport class BizySetToArrayPipe implements PipeTransform {\n transform<T>(items: Set<T>): Array<T> {\n if (!items) {\n return [];\n }\n\n return Array.from(items);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyEnumToArray'\n})\nexport class BizyEnumToArrayPipe implements PipeTransform {\n transform(enumObj: any): { key: string; value: any }[] {\n return Object.keys(enumObj)\n .filter(key => isNaN(Number(key))) // Only keep the keys, not the reverse mappings in numeric enums\n .map(key => ({ key, value: enumObj[key] }));\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyOrderBy'\n})\nexport class BizyOrderByPipe implements PipeTransform {\n transform<T>(items: Array<T>, order: 'asc' | 'desc' | null = null, property: string = ''): Array<T> {\n // No items\n if (!items || !order) {\n return items;\n }\n\n // Array with only one item\n if (items.length <= 1) {\n return items;\n }\n\n const sortByString = (items: Array<T>, order: 'asc' | 'desc'): Array<T> => {\n return items.sort((a: any, b: any) => {\n let aValue: any = getValue(a);\n let bValue: any = getValue(b);\n\n if ((typeof aValue === 'undefined' || aValue === null) && (typeof bValue === 'undefined' || bValue === null)) {\n return 0;\n }\n \n if ((typeof aValue === 'undefined' || aValue === null) && (typeof bValue !== 'undefined' && bValue !== null)) {\n return order === 'desc' ? 1 : -1;\n }\n \n if ((typeof aValue !== 'undefined' && aValue !== null) && (typeof bValue === 'undefined' || bValue === null) ) {\n return order === 'desc' ? -1 : 1;\n }\n \n if (aValue === bValue) {\n return 0;\n }\n \n if (order === 'desc') {\n return (this.#removeAccentsAndDiacritics(String(aValue)).toLowerCase() > this.#removeAccentsAndDiacritics(String(bValue)).toLowerCase() ? -1 : 1);\n }\n \n return (this.#removeAccentsAndDiacritics(String(bValue)).toLowerCase() > this.#removeAccentsAndDiacritics(String(aValue)).toLowerCase() ? -1 : 1);\n });\n }\n\n const sortByNumber = (items: Array<T>, order: 'asc' | 'desc'): Array<T> => {\n if (order === 'asc') {\n return items.sort((a, b) => Number(getValue(a)) - Number(getValue(b)));\n } else {\n return items.sort((a, b) => Number(getValue(b)) - Number(getValue(a)));\n }\n }\n\n const sortByDate = (items: Array<T>, order: 'asc' | 'desc'): Array<T> => {\n return items.sort((a, b) => {\n const aDate = parseDateString(getValue(a) as string)\n const bDate = parseDateString(getValue(b) as string)\n return order === 'asc' ? aDate.getTime() - bDate.getTime() : bDate.getTime() - aDate.getTime()\n });\n }\n\n const isDate = (value: string) => {\n const ddMMYYYYhhmmss = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}( \\d{1,2}:\\d{1,2}(:\\d{1,2})?)?$/;\n return ddMMYYYYhhmmss.test(value);\n }\n \n const parseDateString = (value: string) => {\n const [datePart, timePart] = value.split(' ');\n const separator = value.includes('/') ? '/' : '-';\n \n const [day, month, year] = datePart.split(separator).map(Number);\n \n let hours = 0, minutes = 0, seconds = 0;\n \n if (timePart) {\n const [hourStr, minuteStr, secondStr] = timePart.split(':').map(Number);\n hours = isNaN(hourStr) ? 0 : hourStr;\n minutes = isNaN(minuteStr) ? 0 : minuteStr;\n seconds = isNaN(secondStr) ? 0 : secondStr;\n }\n \n return new Date(year, month - 1, day, hours, minutes, seconds);\n }\n\n const getValue = (item: T) => {\n let value = item;\n\n if (property) {\n const nestedProperty = property.split('.');\n \n for (let i = 0; i < nestedProperty.length; i++) {\n const property = nestedProperty[i];\n if (!property || typeof value[property] === 'undefined' || value[property] === null) {\n value = null;\n break;\n }\n \n value = value[property];\n }\n }\n\n return value;\n }\n\n let output: Array<T> = [...items];\n\n const index = output.findIndex(_item => {\n const value = getValue(_item);\n return typeof value !== 'undefined' && value !== null;\n });\n\n if (index === -1) {\n return output;\n }\n\n\n const value = getValue(output[index]);\n if (typeof value === 'number' && !isNaN(value)) {\n return sortByNumber(output, order);\n } else if (isDate(value as string)) {\n return sortByDate(output, order);\n } else {\n return sortByString(output, order);\n }\n }\n\n #removeAccentsAndDiacritics(search: string): string {\n if (!search) {\n return '';\n }\n\n return search.normalize('NFD')!.replace(/[\\u0300-\\u036f]/g, '');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyReduce'\n})\nexport class BizyReducePipe implements PipeTransform {\n transform(items: Array<unknown>, key: string, fixedTo: number = 2): number {\n if (!items || items.length === 0) {\n return 0;\n }\n\n let _items = key ? items.filter(_item => _item[key]).map(_d => _d[key]) : items;\n const reduce = _items.filter(v => Number.isFinite(Number(v))).reduce((acc, value) => acc + Number(value), 0);\n return Number(reduce.toFixed(fixedTo));\n }\n}\n","import { Inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'bizySafe'\n})\nexport class BizySafePipe implements PipeTransform {\n constructor(@Inject(DomSanitizer) private sanitizer: DomSanitizer) {}\n\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script': return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default: throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyAverage'\n})\nexport class BizyAveragePipe implements PipeTransform {\n transform(items: Array<unknown>, key: string, fixedTo: number = 2): number {\n if (!items || items.length === 0) {\n return 0;\n }\n\n if (!key) {\n const reduce = (<Array<number>>items).reduce((acc, value) => acc + value, 0);\n return Number((reduce / items.length).toFixed(fixedTo));\n }\n\n const reduce = (<Array<number>>items.map(_d => _d[key])).reduce((acc, value) => acc + value, 0);\n return Number((reduce / items.length).toFixed(fixedTo));\n }\n}\n","import { FuseGetFunction } from \"fuse.js\";\n\nexport interface IFuseResult {\n item: any;\n refIndex: number;\n score: number;\n}\n\nexport interface IOptions {\n isCaseSensitive?: boolean; // Indica si las comparaciones deben ser sensibles a mayúsculas y minúsculas. (def: false)\n includeScore?: boolean; // Si la puntuación debe incluirse en el conjunto de resultados. Una puntuación de 0 indica una coincidencia perfecta, mientras que una puntuación de 1 indica una falta de coincidencia completa. (def: false)\n includeMatches?: boolean; // Si las coincidencias deben incluirse en el conjunto de resultados. Cuando es verdadero, cada registro en el conjunto de resultados incluirá los índices de los caracteres coincidentes. En consecuencia, se pueden usar para resaltar.(def: false)\n shouldSort?: boolean; // Si se debe ordenar la lista de resultados por puntuación. (def: true)\n findAllMatches?: boolean; // Cuando es verdadero, la función de coincidencia continuará hasta el final de un patrón de búsqueda, incluso si ya se ha encontrado una coincidencia perfecta en la cadena. (def: false)\n minMatchCharLength?: number; // Solo se devolverán las coincidencias cuya longitud exceda este valor. (Por ejemplo, si desea ignorar las coincidencias de un solo carácter en el resultado, configúrelo en 2). (def: 1)\n location?: number; // Determina aproximadamente en qué parte del texto se encuentra el patrón que se espera encontrar. (def: 0)\n threshold?: number; // ¿En qué punto se rinde el algoritmo de coincidencia? Un umbral de 0.0 requiere una coincidencia perfecta (tanto de letras como de ubicación), un umbral de 1.0 coincidiría con cualquier cosa. (def: 0.6)\n distance?: number; // Determina qué tan cerca debe estar la coincidencia de la ubicación difusa (especificada por la ubicación). Una coincidencia exacta de letras, que es la distancia de los caracteres lejos de la ubicación difusa, se consideraría como una falta de coincidencia completa. Una distancia de 0 requiere que la coincidencia esté en la ubicación exacta especificada. Una distancia de 1000 requeriría una coincidencia perfecta para estar dentro de los 800 caracteres de la ubicación que se encuentra utilizando un umbral de 0,8. (def: 100)\n useExtendedSearch?: boolean; // Cuando es verdadero, permite el uso de comandos de búsqueda tipo Unix. (def: false)\n ignoreLocation?: boolean; // Cuando es verdadero, la búsqueda ignorará la ubicación y la distancia, por lo que no importará en qué parte de la cadena aparezca el patrón. (def: false)\n ignoreFieldNorm?: boolean; // Cuando es verdadero, el cálculo de la puntuación de relevancia (utilizada para la clasificación) ignorará la norma de longitud de campo.\n getFn?: FuseGetFunction<any>; // La función que se utiliza para recuperar el valor de un objeto en la ruta proporcionada. El valor predeterminado también buscará rutas anidadas.\n // sortFn?: Function; // La función a utilizar para ordenar todos los resultados. El valor predeterminado se ordenará por puntuación de relevancia ascendente\n}\n/**\n * NOTA:\n * - Para comprender mejor cómo location, threshold y distance funcionan juntos, leer en https://fusejs.io/concepts/scoring-theory.html#scoring-theory\n * - El único momento en que tiene sentido establecer ignoreFieldNorm en true es cuando no importa cuántos términos haya, sino solo que el término de consulta exista.\n */\n\nexport interface IBizySearchPipeOptions extends IOptions {\n keys?: Array<string>;\n}\n\nexport class BizySearchPipeOptions implements IBizySearchPipeOptions {\n isCaseSensitive?: boolean;\n distance?: number;\n findAllMatches?: boolean;\n ignoreLocation?: boolean;\n ignoreFieldNorm?: boolean;\n includeMatches?: boolean;\n includeScore?: boolean;\n location?: number;\n minMatchCharLength?: number;\n shouldSort?: boolean;\n threshold?: number;\n useExtendedSearch?: boolean;\n keys: Array<string>;\n\n constructor(options: IOptions, keys?: Array<string>) {\n // Si se desea cambiar algun valor por default, este es el lugar indicado\n if (!keys) {\n keys = [];\n }\n\n const defaultOptions = {\n // Se activa includeScore para poder buscar internamente en propiedades de tipo array\n includeScore: true,\n // Cuando es verdadero, la búsqueda ignorará la ubicación y la distancia, por lo que no importará en qué parte de la cadena aparezca el patrón\n ignoreLocation: true,\n // Se reduce a 0.1 el threshold (default: 0.6) para aumentar precisión en resultados\n threshold: 0.1\n };\n\n if (options) {\n options = {...defaultOptions, ...options};\n } else {\n options = defaultOptions;\n }\n\n Object.assign(this, {...options, keys: keys});\n }\n}\n","import { BizySearchPipeOptions, IFuseResult, IBizySearchPipeOptions} from './search.model';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport Fuse from 'fuse.js';\n@Pipe({\n name: 'bizySearch'\n})\nexport class BizySearchPipe implements PipeTransform {\n searchPipeOptions: IBizySearchPipeOptions;\n fuse: Fuse<any>;\n items: Array<unknown>;\n\n readonly perfectMatch = {\n threshold: 0.0\n };\n\n transform<T>(\n items: Array<T>,\n search: string | number | Array<string | number>,\n keys?: string | Array<string>,\n options?: IBizySearchPipeOptions\n ): Array<T> {\n if (typeof search === 'undefined' || search === null || search === '' || (Array.isArray(search) && search.length === 0)) {\n return items;\n }\n\n let _keys: Array<string> = [];\n\n if (keys) {\n if (Array.isArray(keys)) {\n _keys = keys;\n } else {\n _keys = [keys];\n }\n }\n\n if (!Array.isArray(search)) {\n search = [this.#removeAccentsAndDiacritics(String(search))];\n } else {\n search = search.map(_search => this.#removeAccentsAndDiacritics(String(_search)))\n }\n\n const getFn = (item: T, keys: Array<string>) => {\n const value = keys.reduce((acc, key) => acc && acc[key], item);\n return typeof value === 'string' ? this.#removeAccentsAndDiacritics(value) : String(value);\n }\n\n const isNumber = (number: unknown): number is number => {\n const regex = /^[0-9]*$/;\n return regex.test(String(number).toLowerCase());\n }\n\n const isEmail = (email: unknown): boolean => {\n const regex = /^(([^ñ<>()[\\]\\\\.,;:\\s@\"]+(\\.[^ñ<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regex.test(String(email).toLowerCase());\n }\n\n // Remove empty items\n search = search.filter(n => n);\n search.forEach(_keyword => {\n\n if (!isNumber(_keyword) && !isEmail(_keyword)) {\n this.searchPipeOptions = new BizySearchPipeOptions({...options, getFn}, _keys);\n this.fuse = new Fuse(items, this.searchPipeOptions);\n } else {\n // Apply perfect match if \"search\" is a number or is an email\n this.searchPipeOptions = new BizySearchPipeOptions({...options, ...this.perfectMatch, getFn}, _keys);\n this.fuse = new Fuse(items, this.searchPipeOptions);\n }\n\n const fuseResult = this.fuse.search(String(_keyword)) as Array<IFuseResult>;\n // Get each fuse result item\n items = fuseResult.map(match => match.item);\n });\n\n return items;\n }\n\n #removeAccentsAndDiacritics(search: string): string {\n if (!search) {\n return '';\n }\n\n return search.normalize('NFD')!.replace(/[\\u0300-\\u036f]/g, '');\n }\n}\n","import { Inject, Pipe, PipeTransform } from '@angular/core';\nimport { BIZY_FORMAT_SECONDS_FORMAT, BIZY_FORMAT_SECONDS_LANGUAGE, BizyFormatSecondsService } from '../services/format-seconds.service';\n\n@Pipe({\n name: 'bizyFormatSeconds'\n})\nexport class BizyFormatSecondsPipe implements PipeTransform {\n\n constructor(@Inject(BizyFormatSecondsService) private bizyFormatSecondsService: BizyFormatSecondsService) {}\n\n transform(seconds: number, options?: {format: BIZY_FORMAT_SECONDS_FORMAT, language: BIZY_FORMAT_SECONDS_LANGUAGE}): string {\n if (!seconds) {\n return '00:00:00';\n }\n\n const regex = /^-?\\d+(\\.\\d+)?$/;\n const isNumber = regex.test(String(seconds).toLowerCase());\n if (!isNumber || seconds <= 0) {\n return '00:00:00';\n } \n\n const defaultOptions = this.bizyFormatSecondsService.getOptions();\n\n const language = options?.language ?? defaultOptions.language;\n const format = options?.format ?? defaultOptions.format;\n\n const DAY = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Día' : 'Day';\n const DAYS = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Días' : 'Days';\n const MONTH = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Mes' : 'Month';\n const MONTHS = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Meses' : 'Months';\n const YEAR = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Año' : 'Year';\n const YEARS = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Años' : 'Years';\n\n let _seconds = Number(seconds);\n\n const SECONDS_IN_YEAR = 365.25 * 24 * 3600;\n const SECONDS_IN_MONTH = 30.44 * 24 * 3600;\n const SECONDS_IN_DAY = 24 * 3600;\n const SECONDS_IN_HOUR = 3600;\n const SECONDS_IN_MINUTE = 60;\n\n if (format === BIZY_FORMAT_SECONDS_FORMAT.DATE_TIME) {\n const years = Math.floor(_seconds / SECONDS_IN_YEAR);\n _seconds %= SECONDS_IN_YEAR;\n const months = Math.floor(_seconds / SECONDS_IN_MONTH);\n _seconds %= SECONDS_IN_MONTH;\n const days = Math.floor(_seconds / SECONDS_IN_DAY);\n _seconds %= SECONDS_IN_DAY;\n const hours = Math.floor(_seconds / SECONDS_IN_HOUR);\n _seconds %= SECONDS_IN_HOUR;\n const minutes = Math.floor(_seconds / SECONDS_IN_MINUTE);\n _seconds %= SECONDS_IN_MINUTE;\n \n const parts: Array<string> = [];\n if (years > 0) {\n parts.push(years + (years === 1 ? ` ${YEAR}` : ` ${YEARS}`));\n }\n \n if (months > 0) {\n parts.push(months + (months === 1 ? ` ${MONTH}` : ` ${MONTHS}`));\n }\n \n if (days > 0) {\n parts.push(days + (days === 1 ? ` ${DAY}` : ` ${DAYS}`));\n }\n\n parts.push(`${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${_seconds < 10 ? '0' + Math.trunc(_seconds) : Math.trunc(_seconds)}`);\n return parts.join(' ');\n } else {\n const hours = Math.floor(_seconds / SECONDS_IN_HOUR);\n _seconds %= SECONDS_IN_HOUR;\n const minutes = Math.floor(_seconds / SECONDS_IN_MINUTE);\n _seconds %= SECONDS_IN_MINUTE;\n \n const parts: Array<string> = [];\n parts.push(`${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${_seconds < 10 ? '0' + Math.trunc(_seconds) : Math.trunc(_seconds)}`);\n return parts.join(' ');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyRepeatPipe } from './repeat.pipe';\nimport { BizySetToArrayPipe } from './set-to-array.pipe';\nimport { BizyEnumToArrayPipe } from './enum-to-array.pipe';\nimport { BizyOrderByPipe } from './order-by.pipe';\nimport { BizyReducePipe } from './reduce.pipe';\nimport { BizySafePipe } from './safe.pipe';\nimport { BizyAveragePipe } from './average.pipe';\nimport { BizySearchPipe } from './search';\nimport { BizyFormatSecondsPipe } from './format-seconds.pipe';\nimport { BizyExtractNumbersPipe } from './extractNumbers.pipe';\nimport { BizyRoundPipe } from './round.pipe';\nimport { BizyUniquePipe } from './unique.pipe';\n\nconst PIPES: Array<any> = [\n BizyRepeatPipe,\n BizySetToArrayPipe,\n BizyEnumToArrayPipe,\n BizyOrderByPipe,\n BizyReducePipe,\n BizySafePipe,\n BizyAveragePipe,\n BizySearchPipe,\n BizyFormatSecondsPipe,\n BizyExtractNumbersPipe,\n BizyRoundPipe,\n BizyUniquePipe\n]\n\n@NgModule({\n imports: PIPES,\n exports: PIPES,\n providers: PIPES\n})\n\nexport class BizyPipesModule {}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[bizyReload]'\n})\nexport class BizyReloadDirective {\n @Input() bizyReloadThreshold: number = 200;\n @Output() bizyReload = new EventEmitter<void>();\n\n #startY: number | null = null;\n #currentY: number | null = null;\n\n @HostListener('touchstart', ['$event'])\n onTouchStart(event: TouchEvent) {\n this.#startY = event.touches[0].clientY;\n }\n\n @HostListener('touchmove', ['$event'])\n onTouchMove(event: TouchEvent) {\n if (this.#startY === null) {\n return;\n }\n\n this.#currentY = event.touches[0].clientY;\n\n const deltaY = this.#currentY - this.#startY;\n\n if (deltaY > this.bizyReloadThreshold) {\n this.#startY = null;\n this.bizyReload.emit();\n }\n }\n}","import {\n Directive,\n ElementRef,\n Renderer2,\n HostListener,\n Inject,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { BizyCopyToClipboardService } from '../services/copy-to-clipboard.service';\n\n@Directive({\n selector: '[bizyCopyToClipboard]',\n})\nexport class BizyCopyToClipboardDirective {\n @Output() onCopy = new EventEmitter<void>();\n #svgElement: HTMLElement;\n\n readonly #COPY_ICON = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n <path d=\"M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z\"/>\n </svg>`;\n\n readonly #CHECK_ICON = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"/>\n </svg>`;\n\n readonly #ERROR_ICON = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"/>\n </svg>`\n\n constructor(\n @Inject(ElementRef) private elementRef: ElementRef,\n @Inject(Renderer2) private renderer: Renderer2,\n @Inject(BizyCopyToClipboardService) private copyToClipboard: BizyCopyToClipboardService\n ) {\n this.#svgElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n this.renderer.setStyle(this.#svgElement, 'position', 'absolute');\n this.renderer.setStyle(this.#svgElement, 'right', '0');\n this.renderer.setStyle(this.#svgElement, 'opacity', '0');\n this.renderer.setStyle(this.#svgElement, 'background', 'linear-gradient(to left, rgb(255, 255, 255), rgba(0, 0, 0, 0))');\n this.renderer.setStyle(this.#svgElement, 'paddingLeft', '5rem');\n this.renderer.setStyle(this.#svgElement, 'transition', 'opacity 0.2s ease-in-out');\n this.renderer.appendChild(this.elementRef.nativeElement, this.#svgElement);\n }\n\n @HostListener('mouseenter') onMouseEnter() {\n this.#svgElement.innerHTML = this.#COPY_ICON;\n this.renderer.setStyle(this.#svgElement, 'fill', 'var(--bizy-copy-to-clipboard-default-color)');\n const elementHeight = this.elementRef.nativeElement.offsetHeight - 4;\n this.renderer.setStyle(this.#svgElement, 'height', `${elementHeight}px`);\n const svg = this.#svgElement.querySelector('svg');\n if (svg) {\n this.renderer.setStyle(svg, 'height', '100%');\n this.renderer.setStyle(svg, 'width', 'auto');\n this.renderer.setStyle(svg, 'pointerEvents', 'none');\n }\n this.#setVisibility(true);\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n this.#setVisibility(false);\n }\n\n @HostListener('click', ['$event']) onClick(event) {\n if (!this.elementRef.nativeElement.innerText){\n return;\n }\n\n event.stopPropagation();\n this.copyToClipboard.copy(this.elementRef.nativeElement.innerText.trim()).then(() => {\n this.renderer.setStyle(this.#svgElement, 'fill', 'var(--bizy-copy-to-clipboard-success-color)');\n this.#svgElement.innerHTML = this.#CHECK_ICON;\n this.onCopy.emit();\n }).catch(() => {\n this.renderer.setStyle(this.#svgElement, 'fill', 'var(--bizy-copy-to-clipboard-danger-color)');\n this.#svgElement.innerHTML = this.#ERROR_ICON;\n }).finally(() => {\n const elementHeight = this.elementRef.nativeElement.offsetHeight - 1;\n this.renderer.setStyle(this.#svgElement, 'height', `${elementHeight}px`);\n const svg = this.#svgElement.querySelector('svg');\n if (svg) {\n this.renderer.setStyle(svg, 'height', '100%');\n this.renderer.setStyle(svg, 'width', 'auto');\n this.renderer.setStyle(svg, 'pointerEvents', 'none');\n }\n })\n }\n\n #setVisibility(visible: boolean) {\n this.renderer.setStyle(this.#svgElement, 'opacity', visible ? '1' : '0');\n }\n}\n","import {\n Directive,\n Input,\n ElementRef,\n Inject,\n Renderer2,\n} from '@angular/core';\n\nexport enum LOADING_TYPE {\n SPINNER = 'spinner',\n BAR = 'bar'\n}\n@Directive({\n selector: '[bizyLoading]'\n})\nexport class BizyLoadingDirective {\n @Input() set bizyLoading(value: boolean) {\n this.#setLoading(value);\n }\n\n @Input() bizyLoadingType: LOADING_TYPE = LOADING_TYPE.SPINNER;\n\n #loadingElement: any;\n #originalElement: HTMLElement;\n\n constructor(\n @Inject(ElementRef) private elementRef: ElementRef,\n @Inject(Renderer2) private renderer: Renderer2\n ) {}\n\n #setLoading(value: boolean) {\n if (value) {\n this.#originalElement = this.elementRef.nativeElement;\n const width = this.elementRef.nativeElement.offsetWidth;\n const height = this.elementRef.nativeElement.offsetHeight;\n const loadingWrapper = this.renderer.createElement('span');\n this.renderer.setStyle(loadingWrapper, 'width', width ? `${this.elementRef.nativeElement.offsetWidth}px` : '1rem');\n this.renderer.setStyle(loadingWrapper, 'height', height ? `${this.elementRef.nativeElement.offsetHeight}px` : '1rem');\n this.renderer.setStyle(loadingWrapper, 'display', 'grid');\n this.renderer.setStyle(loadingWrapper, 'placeItems', 'center');\n const backgroundColor = window.getComputedStyle(this.elementRef.nativeElement, null).getPropertyValue('background-color');\n this.renderer.setStyle(loadingWrapper, 'backgroundColor', backgroundColor);\n this.renderer.setStyle(loadingWrapper, 'pointer-events', 'none');\n \n const loading = this.renderer.createElement('span');\n this.renderer.addClass(loading, `bizy-loading--${this.bizyLoadingType}`);\n\n if (this.bizyLoadingType === LOADING_TYPE.SPINNER) {\n let minSize = 0;\n if (this.elementRef.nativeElement.offsetWidth > 0 && this.elementRef.nativeElement.offsetHeight > 0) {\n minSize = Math.min(this.elementRef.nativeElement.offsetWidth, this.elementRef.nativeElement.offsetHeight);\n }\n this.renderer.setStyle(loading, 'width', minSize ? `min(15rem, ${minSize}px)` : '1rem');\n this.renderer.setStyle(loading, 'height', minSize ? `min(15rem, ${minSize}px)` : '1rem');\n }\n\n this.renderer.appendChild(loadingWrapper, loading);\n\n this.#loadingElement = loadingWrapper;\n \n this.renderer.insertBefore(this.#originalElement.parentNode,this.#loadingElement,this.#originalElement);\n this.renderer.removeChild(this.#originalElement.parentNode, this.#originalElement);\n } else if (this.#loadingElement && this.#originalElement && value === false) {\n this.renderer.insertBefore(this.#loadingElement.parentNode, this.#originalElement, this.#loadingElement);\n this.renderer.removeChild(this.#loadingElement.parentNode, this.#loadingElement);\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Output,\n OnDestroy,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[bizyLongPress]',\n})\nexport class BizyLongPressDirective implements OnDestroy {\n @Input() threshold = 500;\n @Output() bizyLongPress = new EventEmitter<MouseEvent |TouchEvent>();\n\n #pressTimeout: any = null;\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onPressStart(event: MouseEvent | TouchEvent): void {\n this.clearTimeout(); // Clear any existing timeout\n this.#pressTimeout = setTimeout(() => {\n this.bizyLongPress.emit(event);\n }, this.threshold);\n }\n\n @HostListener('mouseup')\n @HostListener('mouseleave')\n @HostListener('touchend')\n @HostListener('touchcancel')\n onPressEnd(): void {\n this.clearTimeout();\n }\n\n private clearTimeout(): void {\n if (this.#pressTimeout) {\n clearTimeout(this.#pressTimeout);\n this.#pressTimeout = null;\n }\n }\n\n ngOnDestroy(): void {\n this.clearTimeout();\n }\n}\n","import { Directive, HostListener, Inject, Input, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[bizyOnlyNumbers]'\n})\nexport class BizyOnlyNumbersDirective {\n @Input('bizyOnlyNumbers') public onlyNumbers: boolean;\n #regex: RegExp = new RegExp(/^-?\\d+([.,]?\\d+)*$/);\n #specialKeys = ['Backspace', 'backspace', 'delete', 'Delete', 'Tab', 'tab', 'Escape', 'escape', 'Enter', 'enter', 'Subtract', 'subtract'];\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef){}\n\n @HostListener('input', ['$event'])\n onInput(event: Event) {\n if (typeof this.onlyNumbers === 'undefined' || this.onlyNumbers === null || this.onlyNumbers === false) {\n return\n }\n \n const inputElement = this.elementRef.nativeElement as HTMLInputElement;\n const value = inputElement.value;\n\n // Format and validate input value\n const formattedValue = this.#formatValue(value);\n if (formattedValue !== value) {\n inputElement.value = formattedValue;\n event.stopImmediatePropagation();\n }\n }\n \n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n if (typeof this.onlyNumbers === 'undefined' || this.onlyNumbers === null || this.onlyNumbers === false) {\n return\n }\n\n // Allow special keys\n if (this.#specialKeys.indexOf(event.key) !== -1 ||\n // Allow: Ctrl+A\n (event.key === 'a' && (event.ctrlKey || event.metaKey)) ||\n // Allow: Ctrl+C\n (event.key === 'c' && (event.ctrlKey || event.metaKey)) ||\n // Allow: Ctrl+V\n (event.key === 'v' && (event.ctrlKey || event.metaKey)) ||\n // Allow: Ctrl+X\n (event.key === 'x' && (event.ctrlKey || event.metaKey)) ||\n // Allow: home, end, left, right\n (event.keyCode >= 35 && event.keyCode <= 39)) {\n // Let it happen, don't do anything\n return;\n }\n\n // Allow numbers and decimals\n let current: string = this.elementRef.nativeElement.value;\n let next: string = current.concat(event.key);\n\n if (next && !String(next).match(this.#regex)) {\n event.preventDefault();\n }\n }\n\n #formatValue(value: string): string {\n // Remove all non-numeric characters except . , and -\n let newValue = value.replace(/[^0-9.,-]/g, '');\n\n // Ensure that '-' is only at the beginning and only once\n if (newValue.indexOf('-') !== newValue.lastIndexOf('-') || (newValue.indexOf('-') !== 0)) {\n newValue = newValue.replace(/-+/g, ''); // Remove all '-' characters\n }\n\n // Ensure only one '-' at the beginning\n if (newValue.startsWith('-') && newValue.indexOf('-') > 0) {\n newValue = '-' + newValue.replace(/^-+/, ''); // Remove additional '-' characters\n }\n\n // Ensure only one decimal separator\n const parts = newValue.split(/[,\\.]/);\n if (parts.length > 2) {\n newValue = `${parts[0]}.${parts.slice(1).join('')}`;\n }\n\n return newValue;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[bizyOnlyPhoneDigits]'\n})\nexport class BizyOnlyPhoneDigitsDirective {\n @Input('bizyOnlyPhoneDigits') public onlyPhoneNumbers: boolean;\n\n regexStr = '^[0-9*#+]*$';\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n if (typeof this.onlyPhoneNumbers === 'undefined' || this.onlyPhoneNumbers === null || this.onlyPhoneNumbers === false) {\n return\n }\n\n let e = <KeyboardEvent>event;\n const ignore = ['Backspace', 'backspace', 'delete', 'Delete', 'Tab', 'tab', 'Escape', 'escape', 'Enter', 'enter', 'Subtract', 'subtract'];\n if (ignore.indexOf(e.key) !== -1 ||\n (e.ctrlKey || e.metaKey) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n // Let it happen, don't do anything\n return;\n }\n\n let regEx = new RegExp(this.regexStr);\n if (!regEx.test(e.key)) {\n e.preventDefault();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n AfterViewInit,\n Renderer2,\n inject,\n Input\n} from '@angular/core';\nimport { debounceTime, skip, Subject, Subscription } from 'rxjs';\n\n@Directive({\n selector: '[bizyTextEllipsis]',\n})\nexport class BizyTextEllipsisDirective implements AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #renderer = inject(Renderer2);\n\n @Input() resizeRef: ElementRef = null;\n\n #resizeObserver: ResizeObserver;\n notifier$ = new Subject<void>();\n #subscription = new Subscription();\n\n ngAfterViewInit() {\n this.#applyClamp();\n\n this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#subscription.add(this.notifier$.pipe(skip(1), debounceTime(150)).subscribe(() => {\n this.#applyClamp();\n }));\n }\n\n #applyClamp() {\n const parent = this.#elementRef.nativeElement.parentElement;\n const element = this.#elementRef.nativeElement;\n const lineHeight = parseFloat(getComputedStyle(element).lineHeight);\n const parentHeight = parent.offsetHeight;\n\n if (lineHeight && parentHeight) {\n const lineClamp = Math.floor(parentHeight / lineHeight);\n this.#renderer.setStyle(element, 'display', '-webkit-box');\n this.#renderer.setStyle(element, 'text-overflow', 'ellipsis');\n this.#renderer.setStyle(element, '-webkit-box-orient', 'vertical');\n this.#renderer.setStyle(element, 'overflow', 'hidden');\n this.#renderer.setStyle(element, 'word-wrap', 'break-word');\n this.#renderer.setStyle(element, 'text-wrap', 'auto');\n this.#renderer.setStyle(element, 'white-space', 'pre-wrap');\n this.#renderer.setStyle(element, 'word-break', 'break-word');\n this.#renderer.setStyle(element, '-webkit-line-clamp', lineClamp ? lineClamp.toString() : '1');\n }\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n }\n}\n","\nimport { Directive, Input, ElementRef, HostListener, Renderer2, Inject, OnDestroy, inject, DOCUMENT } from '@angular/core';\n\n@Directive({\n selector: '[bizyTooltip]'\n})\nexport class BizyTooltipDirective implements OnDestroy {\n @Input() tooltipCustomClass: string = '';\n @Input() tooltipPlacement: 'top' | 'right' | 'bottom' | 'left' = 'top';\n @Input() tooltipDelay: number = 0; // Milliseconds\n @Input() showTooltip: boolean = true;\n @Input() tooltipLongPressDuration: number = 500; // Milliseconds\n\n readonly #elementRef = inject(ElementRef);\n readonly #renderer = inject(Renderer2);\n readonly #document = inject(DOCUMENT); \n\n #tooltip: HTMLElement | null;\n #hiding: boolean;\n #longPressTimeout: any = null;\n #lineClamp: number = 0;\n #text: string | null = null;\n\n @Input() set tooltipLineClamp(lineClamp: number) {\n if (!lineClamp && lineClamp <= 0) {\n return;\n }\n\n this.#lineClamp = lineClamp;\n\n const computedStyle = window.getComputedStyle(this.#elementRef.nativeElement);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'width', '100%');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'min-width', '0');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'overflow', 'hidden');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'text-overflow', 'ellipsis');\n\n if (lineClamp === 1) {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'white-space', 'nowrap');\n } else {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'display', '-webkit-box');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'line-clamp', this.#lineClamp);\n this.#renderer.setStyle(this.#elementRef.nativeElement, '-webkit-line-clamp', this.#lineClamp);\n this.#renderer.setStyle(this.#elementRef.nativeElement, '-webkit-box-orient', 'vertical');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'max-height', `calc(${this.#lineClamp} * ${computedStyle.lineHeight})`);\n }\n\n }\n\n @Input('bizyTooltip') set tooltipText(tooltipText: string) {\n if (!tooltipText) {\n return;\n }\n\n this.#text = tooltipText;\n }\n\n // Deprecated\n @Input() set placement(placement: 'top' | 'right' | 'bottom' | 'left') {\n if (!placement) {\n return;\n }\n\n this.tooltipPlacement = placement;\n }\n\n // Deprecated\n @Input() set delay(delay: number) {\n if (typeof delay === 'undefined' || delay === null ) {\n return;\n }\n\n this.tooltipDelay = delay;\n }\n\n @HostListener('mouseenter') onMouseEnter() {\n if (!this.#tooltip) {\n \n if (!this.#text) {\n this.#text = this.#elementRef.nativeElement.textContent;\n }\n\n if (!this.#text) {\n return;\n }\n\n this.#hiding = false;\n this.#show();\n }\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n if (this.#longPressTimeout) {\n clearTimeout(this.#longPressTimeout);\n }\n\n if (this.#tooltip && !this.#hiding) {\n if (!this.#text) {\n return;\n }\n\n this.#hiding = true;\n this.#hide();\n }\n\n // Fix fixed tooltips\n this.#document.querySelectorAll('.bizy-tooltip-identify').forEach(element => {\n this.#renderer.removeChild(this.#document.body, element);\n });\n }\n\n @HostListener('mouseup') onMouseUp() {\n if (this.#longPressTimeout) {\n clearTimeout(this.#longPressTimeout);\n }\n }\n\n @HostListener('click') onClick() {\n if (this.#tooltip && !this.#hiding) {\n this.#hiding = true;\n this.#hide();\n return;\n }\n\n\n if (!this.#text) {\n this.#text = this.#elementRef.nativeElement.textContent;\n }\n\n if (!this.#tooltip && this.#text) {\n this.#longPressTimeout = setTimeout(() => {\n this.#hiding = false;\n this.#show();\n }, this.tooltipLongPressDuration);\n }\n }\n\n #show() {\n if (!this.showTooltip || (this.#lineClamp > 0 && !this.#isTextTruncated(this.#elementRef.nativeElement))) {\n return;\n }\n\n this.#create();\n this.#setPosition();\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip-identify');\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip--show');\n if (this.tooltipCustomClass) {\n this.#renderer.addClass(this.#tooltip, this.tooltipCustomClass);\n }\n }\n\n #hide() {\n this.#renderer.removeClass(this.#tooltip, 'bizy-tooltip--show');\n window.setTimeout(() => {\n this.#renderer.removeChild(this.#document.body, this.#tooltip);\n this.#tooltip = null;\n }, this.tooltipDelay);\n }\n\n #create() {\n this.#tooltip = this.#renderer.createElement('span');\n\n const sentences = String(this.#text).split('</br>');\n sentences.forEach(_sentence => {\n this.#renderer.appendChild(\n this.#tooltip,\n this.#renderer.createText(_sentence)\n );\n this.#renderer.appendChild(\n this.#tooltip,\n this.#renderer.createElement('br')\n );\n });\n\n this.#renderer.appendChild(this.#document.body, this.#tooltip);\n\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip');\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip-' + this.tooltipPlacement);\n\n if (this.tooltipDelay > 0) {\n this.#renderer.setStyle(this.#tooltip, '-webkit-transition', 'opacity ' + this.tooltipDelay + 'ms');\n this.#renderer.setStyle(this.#tooltip, '-moz-transition', 'opacity ' + this.tooltipDelay + 'ms');\n this.#renderer.setStyle(this.#tooltip, '-o-transition', 'opacity ' + this.tooltipDelay + 'ms');\n this.#renderer.setStyle(this.#tooltip, 'transition', 'opacity ' + this.tooltipDelay + 'ms');\n }\n }\n\n #setPosition() {\n const elRefPosition = this.#elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipPos = this.#tooltip?.getBoundingClientRect();\n\n const scrollPos = window.pageYOffset || this.#document.documentElement.scrollTop || this.#document.body.scrollTop || 0;\n\n let top;\n let left;\n\n if (this.tooltipPlacement === 'top') {\n // @ts-ignore\n top = elRefPosition.top - tooltipPos.height - 10;\n // @ts-ignore\n left = elRefPosition.left + ((elRefPosition.width - tooltipPos.width) / 2);\n } else if (this.tooltipPlacement === 'right') {\n // @ts-ignore\n top = elRefPosition.top + ((elRefPosition.height - tooltipPos.height) / 2);\n left = elRefPosition.right + 10;\n } else if (this.tooltipPlacement === 'bottom') {\n top = elRefPosition.bottom + 10;\n // @ts-ignore\n left = elRefPosition.left + ((elRefPosition.width - tooltipPos.width) / 2);\n } else if (this.tooltipPlacement === 'left') {\n // @ts-ignore\n top = elRefPosition.top + ((elRefPosition.height - tooltipPos.height) / 2);\n // @ts-ignore\n left = elRefPosition.left - tooltipPos.width - 10;\n }\n\n this.#renderer.setStyle(this.#tooltip, 'top', (top + scrollPos) + 'px');\n this.#renderer.setStyle(this.#tooltip, 'left', left + 'px');\n }\n\n #isTextTruncated = (element: HTMLElement) => {\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = element;\n return this.#lineClamp === 1 ? scrollWidth > clientWidth : scrollHeight > clientHeight;\n }\n\n ngOnDestroy() {\n this.#document.querySelectorAll('.bizy-tooltip-identify').forEach(element => {\n this.#renderer.removeChild(this.#document.body, element);\n });\n }\n}\n","import { NgForOf } from '@angular/common';\nimport { Directive, Host } from '@angular/core';\n\ninterface Item {\n id: string;\n}\n\n@Directive({\n selector: '[bizyTrackById]'\n})\nexport class BizyTrackByIdDirective<T extends Item> {\n constructor(@Host() private readonly ngFor: NgForOf<T>) {\n this.ngFor.ngForTrackBy = (_index: number, item: T) => item.id;\n }\n}\n","import { take } from 'rxjs/operators';\nimport { Directive, Input, ElementRef, Inject, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[bizyAutoFocus]'\n})\nexport class BizyAutoFocusDirective implements AfterViewInit {\n @Input('bizyAutoFocus') public autoFocus: boolean;\n\n constructor(\n @Inject(ElementRef) private elementRef: ElementRef,\n @Inject(ChangeDetectorRef) private ref: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n if (typeof this.autoFocus !== 'undefined' && this.autoFocus !== null && this.autoFocus !== false) {\n this.setFocus();\n }\n }\n\n setFocus() {\n const interval = setInterval(() => {\n this.elementRef.nativeElement.focus();\n this.ref.detectChanges();\n }, 300);\n\n fromEvent(this.elementRef.nativeElement, 'focus').pipe(take(1)).subscribe(() => {\n clearInterval(interval);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyCopyToClipboardDirective } from './copy-to-clipboard.directive';\nimport { BizyCurrencyFormatDirective } from './currency-format.directive';\nimport { BizyLoadingDirective } from './loading.directive';\nimport { BizyLongPressDirective } from './long-press.directive';\nimport { BizyOnlyNumbersDirective } from './only-numbers.directive';\nimport { BizyOnlyPhoneDigitsDirective } from './only-phone-digits.directive';\nimport { BizyTextEllipsisDirective } from './text-ellipsis.directive';\nimport { BizyTooltipDirective } from './tooltip.directive';\nimport { BizyTrackByIdDirective } from './track-by-id.directive';\nimport { BizyAutoFocusDirective } from './auto-focus.directive';\nimport { BizyReloadDirective } from './reload.directive';\n\nconst DIRECTIVES: Array<any> = [\n BizyCopyToClipboardDirective,\n BizyCurrencyFormatDirective,\n BizyLoadingDirective,\n BizyLongPressDirective,\n BizyOnlyNumbersDirective,\n BizyOnlyPhoneDigitsDirective,\n BizyTextEllipsisDirective,\n BizyTooltipDirective,\n BizyTrackByIdDirective,\n BizyAutoFocusDirective,\n BizyReloadDirective\n]\n\n@NgModule({\n imports: DIRECTIVES,\n exports: DIRECTIVES\n})\n\nexport class BizyDirectivesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["COMPONENTS","DEFAULT_DOWNLOAD","i1","debounceTime","DOCUMENT","distinctUntilChanged","getUserAgent","DEFAULT_CHART_SIZE","DEFAULT_TOOLTIP","filter","i2","i3","EMPTY_CHART","DEFAULT_EXPAND","DEFAULT_LEGEND","DEFAULT_LABEL","PIPES","DIRECTIVES","i2.BizyButtonComponent","take"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"bizy-core.mjs","sources":["../../../../projects/core/src/lib/modules/accordion/accordion.component.ts","../../../../projects/core/src/lib/modules/accordion/accordion.html","../../../../projects/core/src/lib/modules/accordion/accordion.module.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player.types.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player-format-seconds.pipe.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player.component.ts","../../../../projects/core/src/lib/modules/audio-player/audio-player.html","../../../../projects/core/src/lib/modules/audio-player/audio-player.module.ts","../../../../projects/core/src/lib/modules/audio-recorder/audio-recorder.component.ts","../../../../projects/core/src/lib/modules/audio-recorder/audio-recorder.html","../../../../projects/core/src/lib/modules/audio-recorder/audio-recorder.module.ts","../../../../projects/core/src/lib/modules/popup/popup.types.ts","../../../../projects/core/src/lib/modules/popup/popup-wrapper/popup-wrapper.component.ts","../../../../projects/core/src/lib/modules/popup/popup-wrapper/popup-wrapper.html","../../../../projects/core/src/lib/services/animation.service.ts","../../../../projects/core/src/lib/services/viewport.service.ts","../../../../projects/core/src/lib/services/keyboard.service.ts","../../../../projects/core/src/lib/services/export-to-csv.service.ts","../../../../projects/core/src/lib/services/router.service.ts","../../../../projects/core/src/lib/services/cache.service.ts","../../../../projects/core/src/lib/services/validator.service.ts","../../../../projects/core/src/lib/services/storage.service.ts","../../../../projects/core/src/lib/services/log.service.ts","../../../../projects/core/src/lib/services/copy-to-clipboard.service.ts","../../../../projects/core/src/lib/services/format-seconds.service.ts","../../../../projects/core/src/lib/services/device/uach-retrofill.ts","../../../../projects/core/src/lib/services/device/device.service.ts","../../../../projects/core/src/lib/services/services.module.ts","../../../../projects/core/src/lib/modules/popup/popup.service.ts","../../../../projects/core/src/lib/modules/popup/full-screen-popup-wrapper/full-screen-popup-wrapper.component.ts","../../../../projects/core/src/lib/modules/popup/full-screen-popup-wrapper/full-screen-popup-wrapper.html","../../../../projects/core/src/lib/modules/popup/popup.module.ts","../../../../projects/core/src/lib/modules/bar-line-chart/bar-line-chart-popup.component.ts","../../../../projects/core/src/lib/modules/bar-line-chart/bar-line-chart.component.ts","../../../../projects/core/src/lib/modules/bar-line-chart/bar-line-chart.module.ts","../../../../projects/core/src/lib/modules/breadcrumb/breadcrumb.component.ts","../../../../projects/core/src/lib/modules/breadcrumb/breadcrumb.html","../../../../projects/core/src/lib/modules/breadcrumb/breadcrumb.module.ts","../../../../projects/core/src/lib/modules/button/button.component.ts","../../../../projects/core/src/lib/modules/button/button.html","../../../../projects/core/src/lib/modules/button/button.module.ts","../../../../projects/core/src/lib/modules/calendar/calendar.types.ts","../../../../projects/core/src/lib/modules/calendar/calendar.formatter.ts","../../../../projects/core/src/lib/modules/calendar/calendar.component.ts","../../../../projects/core/src/lib/modules/calendar/calendar.html","../../../../projects/core/src/lib/modules/calendar/calendar.module.ts","../../../../projects/core/src/lib/modules/card/card.component.ts","../../../../projects/core/src/lib/modules/card/card.html","../../../../projects/core/src/lib/modules/card/card.module.ts","../../../../projects/core/src/lib/modules/checkbox/checkbox.component.ts","../../../../projects/core/src/lib/modules/checkbox/checkbox.html","../../../../projects/core/src/lib/modules/checkbox/checkbox.module.ts","../../../../projects/core/src/lib/modules/content/content.component.ts","../../../../projects/core/src/lib/modules/content/content.html","../../../../projects/core/src/lib/modules/content/content.module.ts","../../../../projects/core/src/lib/modules/input/input-option/input-option.component.ts","../../../../projects/core/src/lib/modules/input/input-option/input-option.html","../../../../projects/core/src/lib/directives/currency-format.directive.ts","../../../../projects/core/src/lib/modules/input/input.component.ts","../../../../projects/core/src/lib/modules/input/input.html","../../../../projects/core/src/lib/modules/date-picker/date-picker.component.ts","../../../../projects/core/src/lib/modules/date-picker/date-picker.html","../../../../projects/core/src/lib/modules/date-picker/date-picker.module.ts","../../../../projects/core/src/lib/modules/donut-chart/donut-chart-popup.component.ts","../../../../projects/core/src/lib/modules/donut-chart/donut-chart.component.ts","../../../../projects/core/src/lib/modules/donut-chart/donut-chart.module.ts","../../../../projects/core/src/lib/modules/file-uploader/file-uploader.service.ts","../../../../projects/core/src/lib/modules/file-uploader/file-uploader.component.ts","../../../../projects/core/src/lib/modules/file-uploader/file-uploader.module.ts","../../../../projects/core/src/lib/modules/filter/filter-section-range-option/filter-section-range-option.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section-range-option/filter-section-range-option.html","../../../../projects/core/src/lib/modules/filter/filter-section-checkbox-option/filter-section-checkbox-option.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section-checkbox-option/filter-section-checkbox-option.html","../../../../projects/core/src/lib/modules/filter/filter-section-search-option/filter-section-search-option.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section-search-option/filter-section-search-option.html","../../../../projects/core/src/lib/modules/filter/filter-section/filter-section.component.ts","../../../../projects/core/src/lib/modules/filter/filter-section/filter-section.html","../../../../projects/core/src/lib/modules/filter/filter-sections/filter-sections.component.ts","../../../../projects/core/src/lib/modules/filter/filter-sections/filter-sections.html","../../../../projects/core/src/lib/modules/filter/filter.component.ts","../../../../projects/core/src/lib/modules/filter/filter.html","../../../../projects/core/src/lib/modules/filter/filter-content/filter-content.component.ts","../../../../projects/core/src/lib/modules/filter/filter-content/filter-content.html","../../../../projects/core/src/lib/modules/filter/pipes/filter.pipe.ts","../../../../projects/core/src/lib/modules/filter/pipes/range-filter.pipe.ts","../../../../projects/core/src/lib/modules/filter/filter.module.ts","../../../../projects/core/src/lib/modules/select/select-option/select-option.component.ts","../../../../projects/core/src/lib/modules/select/select-option/select-option.html","../../../../projects/core/src/lib/modules/select/select.component.ts","../../../../projects/core/src/lib/modules/select/select.html","../../../../projects/core/src/lib/modules/form/form.component.ts","../../../../projects/core/src/lib/modules/form/form.html","../../../../projects/core/src/lib/modules/form/form.module.ts","../../../../projects/core/src/lib/modules/gauge-chart/gauge-chart-popup.component.ts","../../../../projects/core/src/lib/modules/gauge-chart/gauge-chart.component.ts","../../../../projects/core/src/lib/modules/gauge-chart/gauge-chart.module.ts","../../../../projects/core/src/lib/modules/grid/grid.directive.ts","../../../../projects/core/src/lib/modules/grid/grid-row/grid-row.component.ts","../../../../projects/core/src/lib/modules/grid/grid-row/grid-row.html","../../../../projects/core/src/lib/modules/grid/grid.component.ts","../../../../projects/core/src/lib/modules/grid/grid.html","../../../../projects/core/src/lib/modules/grid/grid.module.ts","../../../../projects/core/src/lib/modules/heat-map-chart/heat-map-chart.component.ts","../../../../projects/core/src/lib/modules/heat-map-chart/heat-map-chart.module.ts","../../../../projects/core/src/lib/modules/input/input.module.ts","../../../../projects/core/src/lib/modules/list/list.component.ts","../../../../projects/core/src/lib/modules/list/list.html","../../../../projects/core/src/lib/modules/list/list.module.ts","../../../../projects/core/src/lib/modules/menu/menu-option/menu-option.component.ts","../../../../projects/core/src/lib/modules/menu/menu-option/menu-option.html","../../../../projects/core/src/lib/modules/menu/menu.component.ts","../../../../projects/core/src/lib/modules/menu/menu.html","../../../../projects/core/src/lib/modules/menu/menu-title/menu-title.component.ts","../../../../projects/core/src/lib/modules/menu/menu-title/menu-title.html","../../../../projects/core/src/lib/modules/menu/menu.module.ts","../../../../projects/core/src/lib/modules/menu-bar/menu-bar-option/menu-bar-option.component.ts","../../../../projects/core/src/lib/modules/menu-bar/menu-bar-option/menu-bar-option.html","../../../../projects/core/src/lib/modules/menu-bar/menu-bar.component.ts","../../../../projects/core/src/lib/modules/menu-bar/menu-bar.html","../../../../projects/core/src/lib/modules/menu-bar/menu-bar.module.ts","../../../../projects/core/src/lib/modules/pie-chart/pie-chart-popup.component.ts","../../../../projects/core/src/lib/modules/pie-chart/pie-chart.component.ts","../../../../projects/core/src/lib/modules/pie-chart/pie-chart.module.ts","../../../../projects/core/src/lib/modules/progress-bar/progress-bar.component.ts","../../../../projects/core/src/lib/modules/progress-bar/progress-bar.html","../../../../projects/core/src/lib/modules/progress-bar/progress-bar.module.ts","../../../../projects/core/src/lib/modules/radio/radio.component.ts","../../../../projects/core/src/lib/modules/radio/radio.html","../../../../projects/core/src/lib/modules/radio/radio.module.ts","../../../../projects/core/src/lib/modules/section/section.component.ts","../../../../projects/core/src/lib/modules/section/section.html","../../../../projects/core/src/lib/modules/section/section-start/section-start.component.ts","../../../../projects/core/src/lib/modules/section/section-start/section-start.html","../../../../projects/core/src/lib/modules/section/section-center/section-center.component.ts","../../../../projects/core/src/lib/modules/section/section-center/section-center.html","../../../../projects/core/src/lib/modules/section/section-end/section-end.component.ts","../../../../projects/core/src/lib/modules/section/section-end/section-end.html","../../../../projects/core/src/lib/modules/section/section.module.ts","../../../../projects/core/src/lib/modules/select/select.module.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-option/sidebar-option.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-option/sidebar-option.html","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option/sidebar-floating-option.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option/sidebar-floating-option.html","../../../../projects/core/src/lib/modules/sidebar/sidebar.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar.html","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option-title/sidebar-floating-option-title.component.ts","../../../../projects/core/src/lib/modules/sidebar/sidebar-floating-option-title/sidebar-floating-option-title.html","../../../../projects/core/src/lib/modules/sidebar/sidebar.module.ts","../../../../projects/core/src/lib/modules/skeleton/skeleton.types.ts","../../../../projects/core/src/lib/modules/skeleton/skeleton.component.ts","../../../../projects/core/src/lib/modules/skeleton/skeleton.html","../../../../projects/core/src/lib/modules/skeleton/skeleton.module.ts","../../../../projects/core/src/lib/modules/slider/slider.component.ts","../../../../projects/core/src/lib/modules/slider/slider.html","../../../../projects/core/src/lib/modules/slider/slider.module.ts","../../../../projects/core/src/lib/modules/stacked-bar-chart/stacked-bar-chart-segment/stacked-bar-chart-segment.component.ts","../../../../projects/core/src/lib/modules/stacked-bar-chart/stacked-bar-chart-segment/stacked-bar-chart-segment.html","../../../../projects/core/src/lib/modules/stacked-bar-chart/stacked-bar-chart.types.ts","../../../../projects/core/src/lib/modules/stacked-bar-chart/stacked-bar-chart.component.ts","../../../../projects/core/src/lib/modules/stacked-bar-chart/stacked-bar-chart.html","../../../../projects/core/src/lib/modules/stacked-bar-chart/stacked-bar-chart.module.ts","../../../../projects/core/src/lib/modules/table/table-scrolling/table-scrolling.directive.ts","../../../../projects/core/src/lib/modules/table/directives/table-column-fixed.directive.ts","../../../../projects/core/src/lib/modules/table/table-column/table-column.component.ts","../../../../projects/core/src/lib/modules/table/table-column/table-column.html","../../../../projects/core/src/lib/modules/table/table-header/table-header.component.ts","../../../../projects/core/src/lib/modules/table/table-header/table-header.html","../../../../projects/core/src/lib/modules/table/table-footer/table-footer.component.ts","../../../../projects/core/src/lib/modules/table/table-footer/table-footer.html","../../../../projects/core/src/lib/modules/table/table-row/table-row.component.ts","../../../../projects/core/src/lib/modules/table/table-row/table-row.html","../../../../projects/core/src/lib/modules/table/table-scrolling/table-scrolling.component.ts","../../../../projects/core/src/lib/modules/table/table-scrolling/table-scrolling.html","../../../../projects/core/src/lib/modules/table/table.component.ts","../../../../projects/core/src/lib/modules/table/table.html","../../../../projects/core/src/lib/modules/table/table-column-arrows/table-column-arrows.component.ts","../../../../projects/core/src/lib/modules/table/table-column-arrows/table-column-arrows.html","../../../../projects/core/src/lib/modules/table/table-row-expand-content/table-row-expand-content.component.ts","../../../../projects/core/src/lib/modules/table/table-row-expand-content/table-row-expand-content.html","../../../../projects/core/src/lib/modules/table/table.module.ts","../../../../projects/core/src/lib/modules/tabs/tab/tab.component.ts","../../../../projects/core/src/lib/modules/tabs/tab/tab.html","../../../../projects/core/src/lib/modules/tabs/tabs.component.ts","../../../../projects/core/src/lib/modules/tabs/tabs.html","../../../../projects/core/src/lib/modules/tabs/tabs.module.ts","../../../../projects/core/src/lib/modules/tag/tag.types.ts","../../../../projects/core/src/lib/modules/tag/tag.component.ts","../../../../projects/core/src/lib/modules/tag/tag.html","../../../../projects/core/src/lib/modules/tag/tag.module.ts","../../../../projects/core/src/lib/modules/timeline/timeline.component.ts","../../../../projects/core/src/lib/modules/timeline/timeline.html","../../../../projects/core/src/lib/modules/timeline/timeline-event/timeline-event.component.ts","../../../../projects/core/src/lib/modules/timeline/timeline-event/timeline-event.html","../../../../projects/core/src/lib/modules/timeline/timeline.module.ts","../../../../projects/core/src/lib/modules/toast/toast.service.ts","../../../../projects/core/src/lib/modules/toast/toast-wrapper/toast-wrapper.component.ts","../../../../projects/core/src/lib/modules/toast/toast-wrapper/toast-wrapper.html","../../../../projects/core/src/lib/modules/toast/toast.module.ts","../../../../projects/core/src/lib/modules/toggle/toggle.component.ts","../../../../projects/core/src/lib/modules/toggle/toggle.html","../../../../projects/core/src/lib/modules/toggle/toggle.module.ts","../../../../projects/core/src/lib/modules/toolbar/toolbar.component.ts","../../../../projects/core/src/lib/modules/toolbar/toolbar.html","../../../../projects/core/src/lib/modules/toolbar/toolbar.module.ts","../../../../projects/core/src/lib/modules/translate/translate.service.ts","../../../../projects/core/src/lib/modules/translate/translate.pipe.ts","../../../../projects/core/src/lib/modules/translate/translate.module.ts","../../../../projects/core/src/lib/pipes/unique.pipe.ts","../../../../projects/core/src/lib/pipes/round.pipe.ts","../../../../projects/core/src/lib/pipes/extractNumbers.pipe.ts","../../../../projects/core/src/lib/pipes/repeat.pipe.ts","../../../../projects/core/src/lib/pipes/set-to-array.pipe.ts","../../../../projects/core/src/lib/pipes/enum-to-array.pipe.ts","../../../../projects/core/src/lib/pipes/order-by.pipe.ts","../../../../projects/core/src/lib/pipes/reduce.pipe.ts","../../../../projects/core/src/lib/pipes/safe.pipe.ts","../../../../projects/core/src/lib/pipes/average.pipe.ts","../../../../projects/core/src/lib/pipes/search/search.model.ts","../../../../projects/core/src/lib/pipes/search/search.pipe.ts","../../../../projects/core/src/lib/pipes/format-seconds.pipe.ts","../../../../projects/core/src/lib/pipes/pipes.module.ts","../../../../projects/core/src/lib/directives/reload.directive.ts","../../../../projects/core/src/lib/directives/copy-to-clipboard.directive.ts","../../../../projects/core/src/lib/directives/loading.directive.ts","../../../../projects/core/src/lib/directives/long-press.directive.ts","../../../../projects/core/src/lib/directives/only-numbers.directive.ts","../../../../projects/core/src/lib/directives/only-phone-digits.directive.ts","../../../../projects/core/src/lib/directives/text-ellipsis.directive.ts","../../../../projects/core/src/lib/directives/tooltip.directive.ts","../../../../projects/core/src/lib/directives/track-by-id.directive.ts","../../../../projects/core/src/lib/directives/auto-focus.directive.ts","../../../../projects/core/src/lib/directives/directives.module.ts","../../../../projects/core/src/bizy-core.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, inject, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'bizy-accordion',\n templateUrl: './accordion.html',\n styleUrls: ['./accordion.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyAccordionComponent {\n readonly #ref = inject(ChangeDetectorRef);\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-accordion-${Math.random()}`;\n @Input() customClass: string;\n @Input() disabled: boolean = false;\n @Input() opened: boolean = false;\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.openedChange.emit(!this.opened);\n this.onSelect.emit(event);\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n [id]=\"id\"\n [ngClass]=\"{'bizy-accordion--disabled': disabled}\"\n class=\"bizy-accordion {{customClass}}\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <span class=\"bizy-accordion__content\">\n <ng-content></ng-content>\n </span>\n\n <svg \n class=\"bizy-accordion__arrow\" \n [ngClass]=\"{'bizy-accordion__arrow--opened': opened}\"\n viewBox=\"0 0 96 96\" \n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M81.8457,25.3876a6.0239,6.0239,0,0,0-8.45.7676L48,56.6257l-25.396-30.47a5.999,5.999,0,1,0-9.2114,7.6879L43.3943,69.8452a5.9969,5.9969,0,0,0,9.2114,0L82.6074,33.8431A6.0076,6.0076,0,0,0,81.8457,25.3876Z\"/>\n </svg>\n\n</button>\n\n<span class=\"bizy-accordion__options\" [ngClass]=\"{'bizy-accordion__options--opened': opened}\">\n\n <ng-content select=\"[accordion-option]\"></ng-content>\n\n</span>\n","import { NgModule } from '@angular/core';\nimport { BizyAccordionComponent } from './accordion.component';\n\nconst COMPONENTS: Array<any> = [\n BizyAccordionComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyAccordionModule {}\n","export enum MIME_TYPE {\n OGG = 'audio/ogg',\n MPEG = 'audio/mpeg',\n WAV = 'audio/wav',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyAudioPlayerFormatSeconds',\n})\nexport class BizyAudioPlayerFormatSecondsPipe implements PipeTransform {\n transform(seconds: number): string {\n if (!seconds) {\n return '00:00';\n }\n\n const regex = /^-?\\d+(\\.\\d+)?$/;\n const isNumber = regex.test(String(seconds).toLowerCase());\n if (!isNumber || seconds <= 0) {\n return '00:00';\n }\n\n let _seconds = Number(seconds);\n const SECONDS_IN_HOUR = 3600;\n const SECONDS_IN_MINUTE = 60;\n\n const hours = Math.floor(_seconds / SECONDS_IN_HOUR);\n _seconds %= SECONDS_IN_HOUR;\n const minutes = Math.floor(_seconds / SECONDS_IN_MINUTE);\n _seconds %= SECONDS_IN_MINUTE;\n\n const parts: Array<string> = [];\n parts.push(`${hours && hours < 10 ? '0' + hours + ':' : hours ? hours + ':' : ''}${minutes < 10 ? '0' + minutes : minutes}:${_seconds < 10 ? '0' + Math.trunc(_seconds) : Math.trunc(_seconds)}`);\n return parts.join(' ');\n }\n}\n","import { ChangeDetectorRef, ElementRef, inject, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n Renderer2\n} from '@angular/core';\nimport { AnimationItem } from 'lottie-web';\nimport { debounceTime, distinctUntilChanged, Subject, Subscription } from 'rxjs';\nimport playAnimation from '../../assets/animations/play.json';\nimport muteAnimation from '../../assets/animations/mute.json';\nimport { MIME_TYPE } from './audio-player.types';\nimport { BizyAudioPlayerFormatSecondsPipe } from './audio-player-format-seconds.pipe';\n\nconst DEFAULT_DOWNLOAD = {\n show: true,\n name: 'Bizy'\n};\n\nconst DEFAULT_PLAYBACK_RATE = {\n show: true,\n default: 1\n};\n@Component({\n selector: 'bizy-audio-player',\n templateUrl: './audio-player.html',\n styleUrls: ['./audio-player.css'],\n imports: [BizyAudioPlayerFormatSecondsPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BizyAudioPlayerComponent {\n readonly #document = inject(DOCUMENT);\n readonly #renderer = inject(Renderer2);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #elementRef = inject(ElementRef);\n\n @ViewChild('bizyAudioPlayerPlayButtonRef') playButtonRef: ElementRef<HTMLButtonElement>;\n @ViewChild('bizyAudioPlayerAudioRef') audioRef: ElementRef<HTMLAudioElement>;\n @ViewChild('bizyAudioPlayerSeekSliderRef') seekSliderRef: ElementRef<HTMLInputElement>;\n @ViewChild('bizyAudioPlayerMuteButtonRef') muteButtonRef: ElementRef<HTMLButtonElement>;\n\n @Output() onPlaybackRate = new EventEmitter<string>();\n @Output() onDownload = new EventEmitter<void>();\n @Output() canPlay = new EventEmitter<Event>();\n @Output() onPause = new EventEmitter<Event>();\n @Output() onEnded = new EventEmitter<Event>();\n @Output() onStalled = new EventEmitter<Event>();\n @Output() onAbort = new EventEmitter<MediaError>();\n @Output() onError = new EventEmitter<MediaError>();\n @Output() onEmptied = new EventEmitter<Event>();\n @Output() canPlayThrough = new EventEmitter<Event>();\n @Output() durationChange = new EventEmitter<Event>();\n @Output() onLoadedData = new EventEmitter<Event>();\n @Output() onLoadedMetadata = new EventEmitter<Event>();\n @Output() onLoadStart = new EventEmitter<Event>();\n @Output() onPlay = new EventEmitter<Event>();\n @Output() onPlaying = new EventEmitter<Event>();\n @Output() onProgress = new EventEmitter<Event>();\n @Output() onSeeked = new EventEmitter<Event>();\n @Output() onSeeking = new EventEmitter<Event>();\n @Output() onSuspend = new EventEmitter<Event>();\n @Output() onTimeUpdate = new EventEmitter<Event>();\n @Output() onVolumeChange = new EventEmitter<Event>();\n @Output() onWaiting = new EventEmitter<Event>();\n\n @Input() enableLogs: boolean = false;\n @Input() disabled: boolean = false;\n @Input() autoplay: boolean = false;\n @Input() set download(download: {show?: boolean, url?: string, name?: string}) {\n if (!download) {\n return;\n }\n\n this._showDownload = download.show ?? DEFAULT_DOWNLOAD.show;\n this._downloadURL = download.url ?? null;\n this._downloadFileName = download.name ?? DEFAULT_DOWNLOAD.name;\n };\n\n @Input() set playbackRate(playbackRate: {show?: boolean, default?: number}) {\n if (!playbackRate) {\n return;\n }\n\n this._showPlaybackRate = playbackRate.show ?? DEFAULT_PLAYBACK_RATE.show;\n this._playbackRate = playbackRate.default ?? DEFAULT_PLAYBACK_RATE.default;\n };\n\n @Input() set src(src: string) {\n if (!src) {\n this.#removeListeners();\n this._currentTime = 0;\n this._duration = 0;\n this._paused = true;\n this.#audio = null;\n this.#ref.detectChanges();\n return;\n }\n\n this._src = src;\n\n if (this.#audio) {\n this.#audio.load();\n }\n }\n\n #subscription = new Subscription();\n #playAnimation: AnimationItem | null = null;\n #muteAnimation: AnimationItem | null = null;\n #audio: HTMLAudioElement | null = null;\n #seekSlider: HTMLInputElement | null = null;\n #playbackRate$ = new Subject<string>();\n #currentTime$ = new Subject<number>();\n #abortAbortController = new AbortController();\n #canPlayAbortController = new AbortController();\n #canPlayThroughAbortController = new AbortController();\n #pauseAbortController = new AbortController();\n #endedAbortController = new AbortController();\n #emptiedAbortController = new AbortController();\n #errorAbortController = new AbortController();\n #stalledAbortController = new AbortController();\n #durationChangeAbortController = new AbortController();\n #loadedDataAbortController = new AbortController();\n #loadedMetadataAbortController = new AbortController();\n #loadStartAbortController = new AbortController();\n #playAbortController = new AbortController();\n #playingAbortController = new AbortController();\n #progressAbortController = new AbortController();\n #rateChangeAbortController = new AbortController();\n #seekedAbortController = new AbortController();\n #seekingAbortController = new AbortController();\n #suspendAbortController = new AbortController();\n #timeUpdateAbortController = new AbortController();\n #volumeChangeAbortController = new AbortController();\n #waitingAbortController = new AbortController();\n #seekSliderAbortController = new AbortController();\n\n _duration: number = 0;\n _currentTime: number = 0;\n _paused: boolean = true;\n _muted: boolean = false;\n _src: string | null = null;\n _showDownload = DEFAULT_DOWNLOAD.show;\n _downloadURL: string | null = null;\n _downloadFileName: string | null = DEFAULT_DOWNLOAD.name;\n _showPlaybackRate: boolean = DEFAULT_PLAYBACK_RATE.show;\n _playbackRate: number = DEFAULT_PLAYBACK_RATE.default;\n\n readonly MIME_TYPE = MIME_TYPE;\n readonly BACKWARD_SECONDS = -15;\n readonly FORWARD_SECONDS = 15;\n\n\n get duration(): number {\n return this._duration;\n }\n\n get currentTime(): number {\n return this._currentTime;\n }\n\n get paused(): boolean {\n return this._paused;\n }\n\n get muted(): boolean {\n return this._muted;\n }\n\n ngAfterViewInit() {\n this.#subscription = new Subscription();\n this.#subscription.add(this.#playbackRate$.pipe(\n debounceTime(300),\n distinctUntilChanged()\n ).subscribe(value => {\n this.onPlaybackRate.emit(value);\n }));\n\n this.#subscription.add(this.#currentTime$.pipe(\n debounceTime(100),\n ).subscribe(value => {\n this.seekTo(value);\n }));\n\n import('lottie-web').then(module => {\n const lottieWeb = module.default;\n this.#playAnimation = lottieWeb.loadAnimation({\n container: this.playButtonRef.nativeElement,\n animationData: playAnimation,\n renderer: 'svg',\n loop: false,\n autoplay: false,\n name: 'Bizy audio player play Animation'\n });\n\n this.#playAnimation.setSpeed(2.5);\n\n this.#playAnimation.addEventListener('DOMLoaded', this.#setPlayButtonColor);\n\n this.#muteAnimation = lottieWeb.loadAnimation({\n container: this.muteButtonRef.nativeElement,\n animationData: muteAnimation,\n renderer: 'svg',\n loop: false,\n autoplay: false,\n name: 'Bizy audio player mute Animation'\n });\n\n this.#muteAnimation.setSpeed(2);\n\n this.#muteAnimation.addEventListener('DOMLoaded', this.#setMuteButtonColor);\n\n this.#audio = this.audioRef.nativeElement;\n this.#seekSlider = this.seekSliderRef.nativeElement;\n\n if (this.#audio) {\n this.#addEventListeners();\n\n this.#audio.playbackRate = this._playbackRate;\n this.#audio.load();\n }\n\n if ('mediaSession' in navigator) {\n navigator.mediaSession.setActionHandler('play', () => {\n this.play();\n });\n\n navigator.mediaSession.setActionHandler('pause', () => {\n this.pause();\n });\n\n navigator.mediaSession.setActionHandler('seekbackward', details => {\n this.backward(details.seekOffset);\n });\n\n navigator.mediaSession.setActionHandler('seekforward', details => {\n this.forward(details.seekOffset);\n });\n\n navigator.mediaSession.setActionHandler('seekto', details => {\n this.seekTo(details.seekTime);\n });\n\n navigator.mediaSession.setActionHandler('stop', () => {\n this.stop();\n });\n }\n });\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n togglePlay = async () => {\n if (this.disabled) {\n return;\n }\n\n if (this._paused) {\n await this.play();\n } else {\n await this.pause();\n }\n }\n\n toggleMute = () => {\n if (this.disabled) {\n return;\n }\n\n if (this._muted) {\n this.unmute();\n } else {\n this.mute();\n }\n }\n\n play = async (): Promise<void> => {\n try {\n if (this.disabled || !this._src || !this._paused) {\n return Promise.resolve();\n }\n\n this._paused = false;\n this.#ref.detectChanges();\n\n if (!this.#audio) {\n this._paused = true;\n this.#ref.detectChanges();\n return Promise.resolve();\n }\n\n if (this.#playAnimation) {\n this.#playAnimation.playSegments([0, 27], true);\n this.#ref.detectChanges();\n }\n\n await this.#audio.play();\n } catch (error) {\n this._paused = true;\n return Promise.reject();\n }\n }\n\n pause = async (): Promise<void> => {\n try {\n if (this.disabled || !this._src || this._paused) {\n return Promise.resolve();\n }\n\n this._paused = true;\n this.#ref.detectChanges();\n\n if (!this.#audio) {\n this._paused = false;\n this.#ref.detectChanges();\n return Promise.resolve();\n }\n\n if (this.#playAnimation) {\n this.#playAnimation.playSegments([27, 0], true);\n this.#ref.detectChanges();\n }\n\n await this.#audio.pause();\n } catch (error) {\n this._paused = false;\n return Promise.reject();\n }\n }\n\n mute = (): void => {\n if (this.disabled || !this.#audio || this.#audio.muted) {\n return;\n }\n\n this.#audio.muted = true;\n\n if (this.#muteAnimation) {\n this.#muteAnimation.playSegments([0, 25], true);\n }\n\n this.#ref.detectChanges();\n }\n\n unmute = (): void => {\n if (this.disabled || !this.#audio || !this.#audio.muted) {\n return;\n }\n\n this.#audio.muted = false;\n\n if (this.#muteAnimation) {\n this.#muteAnimation.playSegments([25, 0], true);\n }\n\n this.#ref.detectChanges();\n }\n\n stop = async (): Promise<void> => {\n if (this.disabled || !this._src) {\n return Promise.resolve();\n }\n\n await this.pause();\n\n this.seekTo(0);\n\n if (this.#seekSlider) {\n this.#seekSlider.value = '0';\n this.#elementRef.nativeElement.style.setProperty('--bizy-audio-player-seek-before-width', '0%');\n }\n }\n\n backward = (seconds: number) => {\n if (this.disabled || !this.#audio) {\n return;\n }\n \n this.seekTo(this.#audio.currentTime - (seconds || this.FORWARD_SECONDS))\n }\n\n forward = (seconds: number) => {\n if (this.disabled || !this.#audio) {\n return;\n }\n \n this.seekTo(this.#audio.currentTime + (seconds || this.FORWARD_SECONDS))\n }\n\n seekTo(seconds: number) {\n if (this.disabled || !this.#audio || typeof seconds === 'undefined' || seconds === null) {\n return;\n }\n\n if (!this.#audio.duration) {\n return;\n }\n\n if (seconds > this.#audio.duration) {\n seconds = this.#audio.duration\n }\n\n if (seconds < 0) {\n seconds = 0;\n }\n\n if (this.#audio.fastSeek) {\n this.#audio.fastSeek(seconds);\n } else {\n this.#audio.currentTime = seconds;\n }\n\n this.#ref.detectChanges();\n }\n\n setPlaybackRate() {\n if (this.disabled || !this.#audio) {\n return;\n }\n\n switch (this.#audio.playbackRate) {\n case 1:\n this.#audio.playbackRate = 1.5;\n break;\n case 1.5:\n this.#audio.playbackRate = 2;\n break;\n case 2:\n this.#audio.playbackRate = 1;\n break;\n default:\n this.#audio.playbackRate = DEFAULT_PLAYBACK_RATE.default;\n }\n }\n\n downloadAudio = (): void => {\n if (this.disabled || !this._showDownload) {\n return;\n }\n\n const downloadButton = this.#renderer.createElement('a');\n this.#renderer.setAttribute(downloadButton, 'download', this._downloadFileName);\n this.#renderer.setProperty(downloadButton, 'href', this._downloadURL ?? this._src);\n this.#renderer.appendChild(this.#document.body, downloadButton);\n downloadButton.click();\n this.#renderer.removeChild(this.#document.body, downloadButton);\n this.onDownload.emit();\n }\n\n #addEventListeners = () => {\n if (!this.#audio || !this.#seekSlider) {\n return;\n }\n\n this.#abortAbortController = new AbortController();\n this.#canPlayAbortController = new AbortController();\n this.#canPlayThroughAbortController = new AbortController();\n this.#durationChangeAbortController = new AbortController();\n this.#emptiedAbortController = new AbortController();\n this.#endedAbortController = new AbortController();\n this.#errorAbortController = new AbortController();\n this.#loadedDataAbortController = new AbortController();\n this.#loadedMetadataAbortController = new AbortController();\n this.#loadStartAbortController = new AbortController();\n this.#pauseAbortController = new AbortController();\n this.#playAbortController = new AbortController();\n this.#playingAbortController = new AbortController();\n this.#progressAbortController = new AbortController();\n this.#rateChangeAbortController = new AbortController();\n this.#seekedAbortController = new AbortController();\n this.#seekingAbortController = new AbortController();\n this.#stalledAbortController = new AbortController();\n this.#suspendAbortController = new AbortController();\n this.#timeUpdateAbortController = new AbortController();\n this.#volumeChangeAbortController = new AbortController();\n this.#waitingAbortController = new AbortController();\n this.#seekSliderAbortController = new AbortController();\n\n this.#audio.addEventListener('abort', (event: any) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - abort', event);\n }\n\n this.onAbort.emit(event);\n }, {\n signal: this.#abortAbortController.signal\n });\n\n this.#audio.addEventListener('canplay', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - canplay', event);\n }\n\n if (this.autoplay) {\n this.play();\n }\n\n this.canPlay.emit(event);\n }, {\n once: true,\n signal: this.#canPlayAbortController.signal\n });\n\n this.#audio.addEventListener('canplaythrough', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - canplaythrough', event);\n }\n\n this.canPlayThrough.emit(event);\n }, {\n signal: this.#canPlayThroughAbortController.signal\n });\n\n this.#audio.addEventListener('durationchange', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - durationchange', event);\n }\n\n this.durationChange.emit(event);\n }, {\n signal: this.#durationChangeAbortController.signal\n });\n\n this.#audio.addEventListener('emptied', (event: any) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - emptied', event);\n }\n\n this.onEmptied.emit(event);\n }, {\n signal: this.#emptiedAbortController.signal\n });\n\n this.#audio.addEventListener('ended', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - ended', event);\n }\n\n this.stop();\n this.onEnded.emit(event);\n }, {\n signal: this.#endedAbortController.signal\n });\n\n this.#audio.addEventListener('error', (event: any) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - error', event);\n }\n\n this.onError.emit(event);\n }, {\n signal: this.#errorAbortController.signal\n });\n\n this.#audio.addEventListener('loadeddata', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - loadeddata', event);\n }\n\n this._duration = this.#audio!.duration;\n this.#ref.detectChanges();\n this.onLoadedData.emit(event);\n }, {\n signal: this.#loadedDataAbortController.signal\n });\n\n this.#audio.addEventListener('loadedmetadata', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - loadedmetadata', event);\n }\n\n this.onLoadedMetadata.emit(event);\n }, {\n signal: this.#loadedMetadataAbortController.signal\n });\n\n this.#audio.addEventListener('loadstart', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - loadstart', event);\n }\n\n this.onLoadStart.emit(event);\n }, {\n signal: this.#loadStartAbortController.signal\n });\n\n this.#audio.addEventListener('pause', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - pause', event);\n }\n\n this.onPause.emit(event);\n }, {\n signal: this.#pauseAbortController.signal\n });\n\n this.#audio.addEventListener('play', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - play', event);\n }\n\n this.onPlay.emit(event);\n }, {\n signal: this.#playAbortController.signal\n });\n\n this.#audio.addEventListener('playing', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - playing', event);\n }\n\n this.onPlaying.emit(event);\n }, {\n signal: this.#playingAbortController.signal\n });\n\n this.#audio.addEventListener('progress', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - progress', event);\n }\n\n const bufferedAmount = Math.floor(this.#audio!.buffered.end(this.#audio!.buffered.length - 1));\n this.#elementRef.nativeElement.style.setProperty('--bizy-audio-player-buffered-width', Number(this.#seekSlider!.max) ? `${(bufferedAmount / Number(this.#seekSlider!.max)) * 100}%` : '0%');\n this.#ref.detectChanges();\n\n this.onProgress.emit(event);\n }, {\n signal: this.#progressAbortController.signal\n });\n\n this.#audio.addEventListener('ratechange', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - ratechange', event);\n }\n\n this._playbackRate = this.#audio.playbackRate;\n this.#playbackRate$.next(String(this.#audio.playbackRate));\n }, {\n signal: this.#rateChangeAbortController.signal\n });\n\n this.#audio.addEventListener('seeked', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - seeked', event);\n }\n\n this.onSeeked.emit(event);\n }, {\n signal: this.#seekedAbortController.signal\n });\n\n this.#audio.addEventListener('seeking', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - seeking', event);\n }\n\n this.onSeeking.emit(event);\n }, {\n signal: this.#seekingAbortController.signal\n });\n\n this.#audio.addEventListener('stalled', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - stalled', event);\n }\n\n this.onStalled.emit(event);\n }, {\n signal: this.#stalledAbortController.signal\n });\n\n this.#audio.addEventListener('suspend', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - suspend', event);\n }\n\n this.onSuspend.emit(event);\n }, {\n signal: this.#suspendAbortController.signal\n });\n\n this.#audio.addEventListener('timeupdate', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - timeupdate', event);\n }\n\n this._currentTime = this.#audio!.currentTime;\n this.#elementRef.nativeElement.style.setProperty('--bizy-audio-player-seek-before-width', this._duration ? `${(this._currentTime / this._duration) * 100}%` : '0%');\n this.#ref.detectChanges();\n this.onTimeUpdate.emit(event);\n }, {\n signal: this.#timeUpdateAbortController.signal\n });\n\n this.#audio.addEventListener('volumechange', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - volumechange', event);\n }\n\n this._muted = this.#audio!.muted;\n\n this.onVolumeChange.emit(event);\n }, {\n signal: this.#volumeChangeAbortController.signal\n });\n\n this.#audio.addEventListener('waiting', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - waiting', event);\n }\n\n this.onWaiting.emit(event);\n }, {\n signal: this.#waitingAbortController.signal\n });\n\n this.#seekSlider.addEventListener('input', (event: Event) => {\n if (this.enableLogs) {\n console.debug('bizy audio player - seeked', event);\n }\n\n this.#currentTime$.next(Number(this.#seekSlider!.value));\n }, {\n signal: this.#seekSliderAbortController.signal\n });\n }\n\n #setPlayButtonColor = () => {\n const playButtonColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-player-play-button-color')!;\n const svg = this.playButtonRef.nativeElement;\n if (svg) {\n svg.querySelectorAll('path').forEach((path: SVGPathElement) => {\n this.#renderer.setAttribute(path, 'fill', playButtonColor);\n this.#renderer.setAttribute(path, 'stroke', playButtonColor);\n });\n }\n }\n\n #setMuteButtonColor = () => {\n const playButtonColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-player-mute-button-color')!;\n const svg = this.muteButtonRef.nativeElement;\n if (svg) {\n svg.querySelectorAll('path').forEach((path: SVGPathElement) => {\n this.#renderer.setAttribute(path, 'fill', playButtonColor);\n this.#renderer.setAttribute(path, 'stroke', playButtonColor);\n });\n }\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n #removeListeners = () => {\n this.#subscription.unsubscribe();\n this.#abortAbortController.abort();\n this.#canPlayAbortController.abort();\n this.#canPlayThroughAbortController.abort();\n this.#durationChangeAbortController.abort();\n this.#emptiedAbortController.abort();\n this.#endedAbortController.abort();\n this.#errorAbortController.abort();\n this.#loadedDataAbortController.abort();\n this.#loadedMetadataAbortController.abort();\n this.#loadStartAbortController.abort();\n this.#pauseAbortController.abort();\n this.#playAbortController.abort();\n this.#playingAbortController.abort();\n this.#progressAbortController.abort();\n this.#rateChangeAbortController.abort();\n this.#seekedAbortController.abort();\n this.#seekingAbortController.abort();\n this.#stalledAbortController.abort();\n this.#suspendAbortController.abort();\n this.#timeUpdateAbortController.abort();\n this.#volumeChangeAbortController.abort();\n this.#waitingAbortController.abort();\n this.#playAnimation?.removeEventListener('DOMLoaded', this.#setPlayButtonColor);\n this.#muteAnimation?.removeEventListener('DOMLoaded', this.#setMuteButtonColor);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#removeListeners();\n }\n}\n","<button \n type=\"button\"\n #bizyAudioPlayerPlayButtonRef\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__play-button\"\n (click)=\"togglePlay()\"\n (keyup.enter)=\"togglePlay()\">\n</button>\n\n<audio #bizyAudioPlayerAudioRef preload=\"metadata\">\n <source [src]=\"_src\" [type]=\"MIME_TYPE.WAV\">\n <source [src]=\"_src\" [type]=\"MIME_TYPE.OGG\">\n <source [src]=\"_src\" [type]=\"MIME_TYPE.MPEG\">\n</audio>\n\n<h6 [class.bizy-audio-player--disabled]=\"disabled\">{{_currentTime | bizyAudioPlayerFormatSeconds}}</h6>\n<input \n #bizyAudioPlayerSeekSliderRef\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__slider\"\n type=\"range\"\n [max]=\"_duration\"\n [value]=\"_currentTime\">\n<h6 [class.bizy-audio-player--disabled]=\"disabled\">{{_duration | bizyAudioPlayerFormatSeconds}}</h6>\n\n<button \n type=\"button\"\n #bizyAudioPlayerMuteButtonRef\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__mute-button\"\n (click)=\"toggleMute()\"\n (keyup.enter)=\"toggleMute()\">\n</button>\n\n@if (_showPlaybackRate) {\n <button \n type=\"button\"\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__playback-rate-button\"\n (click)=\"setPlaybackRate()\"\n (keyup.enter)=\"setPlaybackRate()\">\n <h6 class=\"bizy-audio-player__playback-rate-button__text\">{{_playbackRate}}x</h6>\n </button>\n}\n\n@if (_showDownload) {\n <button \n type=\"button\"\n [class.bizy-audio-player--disabled]=\"disabled\"\n class=\"bizy-audio-player__download-button\"\n (click)=\"downloadAudio()\"\n (keyup.enter)=\"downloadAudio()\">\n <svg \n class=\"bizy-audio-player__download-button__icon\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/><polyline points=\"7 10 12 15 17 10\"/><line x1=\"12\" x2=\"12\" y1=\"15\" y2=\"3\"/>\n </svg>\n </button>\n}\n","import { NgModule } from '@angular/core';\nimport { BizyAudioPlayerComponent } from './audio-player.component';\n\nconst COMPONENTS: Array<any> = [BizyAudioPlayerComponent];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyAudioPlayerModule {}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n OnDestroy,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n inject,\n Output,\n EventEmitter,\n Input,\n AfterViewInit\n} from '@angular/core';\n\n@Component({\n selector: 'bizy-audio-recorder',\n templateUrl: './audio-recorder.html',\n styleUrls: ['./audio-recorder.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyAudioRecorderComponent implements AfterViewInit, OnDestroy {\n readonly #ref = inject(ChangeDetectorRef);\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n\n @ViewChild('waveformCanvas') waveformCanvas!: ElementRef<HTMLCanvasElement>;\n @ViewChild('bizyRecordButton') recordButton!: ElementRef<HTMLButtonElement>;\n @Input() disabled: boolean = false;\n @Input() duration: number | null = 60 * 1000;\n @Output() onStart = new EventEmitter<void>();\n @Output() onStop = new EventEmitter<void>();\n @Output() onError = new EventEmitter<Error>();\n @Output() onRecording = new EventEmitter<string>();\n\n _isRecording = false;\n\n #audioUrl: string | null = null;\n #mediaRecorder: MediaRecorder | null = null;\n #audioChunks: Blob[] = [];\n #audioContext: AudioContext | null = null;\n #analyser: AnalyserNode | null = null;\n #dataArray: Uint8Array | null = null;\n #animationId: number | null = null;\n\n #startTime: number = 0;\n #timerInterval: any = null;\n #autoStopTimeout: any = null;\n\n circumference = 0;\n strokeDashoffset = 0;\n circleRadius = 0;\n circleCenter = 0;\n svgViewBox = '';\n canvasSize = 0;\n strokeColor: string = '';\n\n get isRecording(): boolean {\n return this._isRecording;\n }\n\n ngAfterViewInit() {\n const rect = this.recordButton.nativeElement.getBoundingClientRect();\n\n const width = rect.width;\n const height = rect.height;\n\n const svgSize = Math.max(width, height) + 20;\n this.circleRadius = (svgSize / 2) - 10;\n this.circleCenter = svgSize / 2;\n this.svgViewBox = `0 0 ${svgSize} ${svgSize}`;\n this.circumference = 2 * Math.PI * this.circleRadius;\n this.canvasSize = Math.min(width, height) * 0.8;\n }\n\n async startRecording() {\n if (this.disabled || this._isRecording) {\n return;\n }\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n\n this.#audioChunks = [];\n this.#audioUrl = null;\n this.#startTime = Date.now();\n this.strokeDashoffset = 0;\n\n this.strokeColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-recorder-record-button-progress-color')!;\n\n let mimeType = 'audio/webm';\n\n const supportedTypes = [\n 'audio/ogg',\n 'audio/wav',\n 'audio/mpeg',\n 'audio/webm;codecs=opus',\n 'audio/webm',\n 'audio/ogg;codecs=opus',\n 'audio/mp4'\n ];\n\n for (const type of supportedTypes) {\n if (MediaRecorder.isTypeSupported(type)) {\n mimeType = type;\n break;\n }\n }\n\n this.#mediaRecorder = new MediaRecorder(stream, { mimeType });\n this.#mediaRecorder.ondataavailable = event => {\n this.#audioChunks.push(event.data);\n };\n\n this.#mediaRecorder.onstop = () => {\n const audioBlob = new Blob(this.#audioChunks, { type: mimeType });\n this.#audioUrl = URL.createObjectURL(audioBlob);\n this.#cleanup();\n this.onStop.emit();\n this.onRecording.emit(this.#audioUrl);\n };\n\n this._isRecording = true;\n this.#ref.detectChanges();\n\n if (this.duration) {\n if (this.#mediaRecorder) {\n this.#mediaRecorder.start();\n this.#setupAudioVisualization(stream);\n this.#startProgressTimer();\n\n this.#autoStopTimeout = setTimeout(() => {\n if (this._isRecording) {\n this.stopRecording();\n }\n }, this.duration!);\n }\n }\n\n this.onStart.emit();\n } catch (error) {\n this._isRecording = false;\n this.#ref.detectChanges();\n this.onError.emit(error);\n }\n }\n\n stopRecording() {\n if (this.disabled || !this._isRecording || !this.#mediaRecorder) {\n return;\n }\n\n this.#mediaRecorder.stop();\n this.#mediaRecorder.stream.getTracks().forEach(track => track.stop());\n }\n\n #setupAudioVisualization(stream: MediaStream) {\n if (!this.waveformCanvas) {\n console.log('Canvas no disponible');\n return;\n }\n\n this.#audioContext = new AudioContext();\n this.#analyser = this.#audioContext.createAnalyser();\n const source = this.#audioContext.createMediaStreamSource(stream);\n\n source.connect(this.#analyser);\n this.#analyser.fftSize = 256;\n\n const bufferLength = this.#analyser.frequencyBinCount;\n this.#dataArray = new Uint8Array(bufferLength);\n\n this.#drawWaveform();\n }\n\n #drawWaveform() {\n if (!this._isRecording || !this.waveformCanvas) {\n return;\n }\n\n const canvas = this.waveformCanvas.nativeElement;\n const ctx = canvas.getContext('2d');\n if (!ctx || !this.#analyser || !this.#dataArray) {\n return;\n }\n\n this.#animationId = requestAnimationFrame(() => this.#drawWaveform());\n\n this.#analyser.getByteTimeDomainData(this.#dataArray as any);\n\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n ctx.lineWidth = 2;\n\n ctx.strokeStyle = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-audio-recorder-record-button-recording-color')!;\n ctx.beginPath();\n\n const sliceWidth = canvas.width / this.#dataArray.length;\n let x = 0;\n\n for (let i = 0; i < this.#dataArray.length; i++) {\n const v = this.#dataArray[i] / 128.0;\n const y = (v * canvas.height) / 2;\n\n if (i === 0) {\n ctx.moveTo(x, y);\n } else {\n ctx.lineTo(x, y);\n }\n\n x += sliceWidth;\n }\n\n ctx.lineTo(canvas.width, canvas.height / 2);\n ctx.stroke();\n }\n\n #startProgressTimer = () => {\n if (!this.duration) {\n return;\n }\n\n this.#timerInterval = setInterval(() => {\n const elapsed = Date.now() - this.#startTime;\n const progress = elapsed / this.duration!;\n\n this.strokeDashoffset = this.circumference * (1 - progress);\n\n if (elapsed >= this.duration!) {\n this.stopRecording();\n }\n\n this.#ref.detectChanges();\n }, 100);\n }\n\n #cleanup = () => {\n this._isRecording = false;\n\n if (this.#animationId !== null) {\n cancelAnimationFrame(this.#animationId);\n this.#animationId = null;\n }\n\n if (this.#timerInterval) {\n clearInterval(this.#timerInterval);\n this.#timerInterval = null;\n }\n\n if (this.#autoStopTimeout) {\n clearTimeout(this.#autoStopTimeout);\n this.#autoStopTimeout = null;\n }\n\n if (this.#audioContext) {\n this.#audioContext.close();\n this.#audioContext = null;\n }\n\n this.#analyser = null;\n this.#dataArray = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.stopRecording();\n this.#cleanup();\n }\n}\n","@if (_isRecording) {\n <svg class=\"bizy-audio-recorder__progress-ring\">\n <circle\n class=\"bizy-audio-recorder__progress-ring-circle\"\n stroke-width=\"6\"\n fill=\"transparent\"\n [attr.r]=\"circleRadius\"\n [attr.cx]=\"circleCenter\"\n [attr.cy]=\"circleCenter\"\n [attr.stroke]=\"strokeColor\"\n [style.stroke-dasharray]=\"circumference\"\n [style.stroke-dashoffset]=\"strokeDashoffset\"/>\n </svg>\n}\n\n<button\n #bizyRecordButton\n class=\"bizy-audio-recorder__record-button\"\n [class.bizy-audio-recorder__record-button--idle]=\"!_isRecording\"\n [class.bizy-audio-recorder__record-button--recording]=\"_isRecording\"\n [class.bizy-audio-recorder--disabled]=\"disabled\"\n (click)=\"startRecording()\">\n\n @if (!_isRecording) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\" class=\"bizy-audio-recorder__record-button__icon animated fade-in\">\n <path d=\"M320 64C267 64 224 107 224 160L224 288C224 341 267 384 320 384C373 384 416 341 416 288L416 160C416 107 373 64 320 64zM176 248C176 234.7 165.3 224 152 224C138.7 224 128 234.7 128 248L128 288C128 385.9 201.3 466.7 296 478.5L296 528L248 528C234.7 528 224 538.7 224 552C224 565.3 234.7 576 248 576L392 576C405.3 576 416 565.3 416 552C416 538.7 405.3 528 392 528L344 528L344 478.5C438.7 466.7 512 385.9 512 288L512 248C512 234.7 501.3 224 488 224C474.7 224 464 234.7 464 248L464 288C464 367.5 399.5 432 320 432C240.5 432 176 367.5 176 288L176 248z\"/>\n </svg>\n }\n\n @if (_isRecording) {\n <canvas\n #waveformCanvas\n [width]=\"canvasSize\"\n [height]=\"canvasSize\">\n </canvas>\n }\n\n @if (_isRecording) {\n <button class=\"bizy-audio-recorder__stop-button\" (click)=\"stopRecording()\" [class.bizy-audio-recorder--disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\" class=\"bizy-audio-recorder__stop-button__icon animated fade-in\">\n <path d=\"M160 96L480 96C515.3 96 544 124.7 544 160L544 480C544 515.3 515.3 544 480 544L160 544C124.7 544 96 515.3 96 480L96 160C96 124.7 124.7 96 160 96z\"/>\n </svg>\n </button>\n }\n\n</button>\n","import { NgModule } from '@angular/core';\nimport { BizyAudioRecorderComponent } from './audio-recorder.component';\n\nconst COMPONENTS: Array<any> = [\n BizyAudioRecorderComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyAudioRecorderModule {}\n","export interface IBizyPopupResponse {\n id: string;\n response: unknown;\n}\n\nexport enum POPUP_PLACEMENT {\n TOP = 'TOP',\n RIGHT = 'RIGHT',\n BOTTOM = 'BOTTOM',\n LEFT = 'LEFT'\n}","import { DIALOG_DATA, DialogModule, DialogRef } from '@angular/cdk/dialog';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, ViewContainerRef, inject } from '@angular/core';\nimport { BizyPopupService } from '../popup.service';\nimport { POPUP_PLACEMENT } from '../popup.types';\n\n@Component({\n selector: 'bizy-popup-wrapper',\n templateUrl: './popup-wrapper.html',\n styleUrls: ['./popup-wrapper.css'],\n imports: [DialogModule, DragDropModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.top]': 'position.top',\n '[style.right]': 'position.right',\n '[style.bottom]': 'position.bottom',\n '[style.left]': 'position.left',\n '[style.transform]': 'position.transform'\n }\n})\nexport class BizyPopupWrapperComponent<T> {\n readonly #elementRef = inject(ElementRef);\n readonly #data: {\n component: ComponentType<T>,\n disableClose: boolean,\n disableDrag: boolean,\n position: {top: string, right: string, bottom: string, left: string} | null,\n placement: POPUP_PLACEMENT | null\n } = inject(DIALOG_DATA);\n readonly #dialogRef: DialogRef<void> = inject(DialogRef);\n readonly #popup = inject(BizyPopupService);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) dynamicComponentContainer: ViewContainerRef;\n\n disabled: boolean = false;\n\n disableClose: boolean = false;\n disableDrag: boolean = false;\n position: {top: string, right: string, bottom: string, left: string, transform: string} | null = {\n top: '50%',\n right: '50%',\n bottom: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n };\n\n ngOnInit() {\n if (this.#data) {\n if (this.#data.position) {\n this.position = {\n top: this.#data.position.top,\n right: this.#data.position.right,\n bottom: this.#data.position.bottom,\n left: this.#data.position.left,\n transform: '',\n }\n } else if (this.#data.placement) {\n this.setPlacement(this.#data.placement);\n }\n\n if (this.#data.disableClose) {\n this.disableClose = this.#data.disableClose;\n }\n \n if (this.#data.disableDrag) {\n this.disableDrag = this.#data.disableDrag;\n }\n }\n }\n\n ngAfterViewInit() {\n this.loadDynamicComponent();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n loadDynamicComponent = () => {\n if (this.#data && this.#data.component) {\n this.dynamicComponentContainer.clear();\n this.dynamicComponentContainer.createComponent(this.#data.component);\n this.#ref.detectChanges();\n }\n }\n\n setPlacement = (placement: POPUP_PLACEMENT) => {\n if (!placement) {\n return;\n }\n\n this.position = {\n top: placement === POPUP_PLACEMENT.TOP ? '2rem' : '',\n right: placement === POPUP_PLACEMENT.RIGHT ? '2rem' : '',\n bottom: placement === POPUP_PLACEMENT.BOTTOM ? '2rem' : '',\n left: placement === POPUP_PLACEMENT.LEFT ? '2rem' : '',\n transform: placement === POPUP_PLACEMENT.TOP || placement === POPUP_PLACEMENT.BOTTOM ? 'translateX(-50%)' : placement === POPUP_PLACEMENT.RIGHT || placement === POPUP_PLACEMENT.LEFT ? 'translatey(-50%)' : '',\n }\n\n this.#ref.detectChanges();\n }\n\n async close() {\n this.disabled = true;\n this.#popup.close({id: this.#dialogRef.id});\n }\n}","@if (!disableDrag) {\n <div class=\"bizy-popup-wrapper\" cdkDrag>\n <button class=\"bizy-popup-wrapper__drag-button\" cdkDragHandle>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" class=\"bizy-popup-wrapper__drag-button__icon\">\n <path d=\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"/>\n </svg>\n </button>\n @if (!disableClose) {\n <button class=\"bizy-popup-wrapper__close-button\" (click)=\"close()\" (keyup.enter)=\"close()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" class=\"bizy-popup-wrapper__close-button__icon\">\n <path d=\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"/>\n </svg>\n </button>\n }\n <ng-container #dynamicComponentContainer></ng-container>\n </div>\n}\n\n@if (disableDrag) {\n <div class=\"bizy-popup-wrapper\">\n @if (!disableClose) {\n <button class=\"bizy-popup-wrapper__close-button\" (click)=\"close()\" (keyup.enter)=\"close()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" class=\"bizy-popup-wrapper__close-button__icon\">\n <path d=\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"/>\n </svg>\n </button>\n }\n <ng-container #dynamicComponentContainer></ng-container>\n </div>\n}","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\n\nexport enum BIZY_ANIMATION {\n FADE_IN = 'fade-in',\n FADE_OUT = 'fade-out',\n FADE_IN_UP = 'fade-in-up',\n FADE_IN_RIGHT = 'fade-in-right',\n FADE_IN_DOWN = 'fade-in-down',\n FADE_IN_LEFT = 'fade-in-left',\n SLIDE_IN_UP = 'slide-in-up',\n SLIDE_IN_RIGHT = 'slide-in-right',\n SLIDE_IN_DOWN = 'slide-in-down',\n SLIDE_IN_LEFT = 'slide-in-left',\n SLIDE_OUT_UP = 'slide-out-up',\n SLIDE_OUT_DOWN = 'slide-out-down',\n SLIDE_OUT_RIGHT = 'slide-out-right',\n SLIDE_OUT_LEFT = 'slide-out-left',\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyAnimationService {\n #renderer: Renderer2;\n\n constructor(@Inject(RendererFactory2) private rendererFactory: RendererFactory2) {\n this.#renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n setAnimation(element: HTMLElement, animation: BIZY_ANIMATION) {\n return new Promise<void>(resolve => {\n if (!element || !animation || !this.#renderer) {\n return;\n }\n \n const root = this.#renderer.selectRootElement(':root', true);\n const animationTimeout = getComputedStyle(root).getPropertyValue('--bizy-animation-timeout').trim();\n \n this.#renderer.addClass(element, 'animated');\n this.#renderer.addClass(element, animation);\n setTimeout(() => {\n this.#renderer.removeClass(element, 'animated');\n this.#renderer.removeClass(element, animation);\n resolve();\n }, Number(animationTimeout.match(/\\d/g).join('')))\n })\n }\n}","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, fromEvent } from 'rxjs';\nimport { debounceTime, map } from 'rxjs/operators';\ninterface IViewportSize {\n height: number;\n width: number;\n}\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyViewportService {\n #viewportSizeChanged: BehaviorSubject<IViewportSize>;\n\n get sizeChange$(): Observable<IViewportSize> {\n return this.#viewportSizeChanged.asObservable();\n }\n\n constructor(@Inject(Window) private window: Window) {\n this.#viewportSizeChanged = new BehaviorSubject<IViewportSize>(<IViewportSize>{\n width: this.window.innerWidth,\n height: this.window.innerHeight\n });\n\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n map(\n (event: any) =>\n <IViewportSize>{\n width: event.currentTarget.innerWidth,\n height: event.currentTarget.innerHeight\n }\n )\n )\n .subscribe(windowSize => {\n this.#viewportSizeChanged.next(windowSize);\n });\n }\n\n width() {\n return this.window.screen.availWidth;\n }\n\n height() {\n return this.window.screen.availHeight;\n }\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyKeyboardService {\n #shiftHolding = new BehaviorSubject<boolean>(false);\n #controlHolding = new BehaviorSubject<boolean>(false);\n\n get shiftHolding$(): Observable<boolean> {\n return this.#shiftHolding.asObservable();\n }\n\n get controlHolding$(): Observable<boolean> {\n return this.#controlHolding.asObservable();\n }\n\n constructor(\n @Inject(DOCUMENT) private document: Document\n ) {\n this.document.addEventListener('visibilitychange', () => {\n this.#shiftHolding.next(false);\n this.#controlHolding.next(false);\n });\n\n this.document.addEventListener('keydown', (event) => {\n if (event.key === 'Shift') {\n this.#shiftHolding.next(true);\n }\n\n if (event.key === 'Meta' || event.key === 'Control') {\n this.#controlHolding.next(true);\n }\n });\n \n this.document.addEventListener('keyup', (event) => {\n if (event.key === 'Shift') {\n this.#shiftHolding.next(false);\n }\n\n if (event.key === 'Meta' || event.key === 'Control') {\n this.#controlHolding.next(false);\n }\n });\n }\n\n isShiftHolding(): boolean {\n return this.#shiftHolding.value;\n }\n\n isControlHolding(): boolean {\n return this.#controlHolding.value;\n }\n}","\nimport { Inject, Injectable, Renderer2, RendererFactory2, DOCUMENT } from '@angular/core';\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyExportToCSVService {\n #loading = false;\n #renderer: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(RendererFactory2) private rendererFactory: RendererFactory2) {\n this.#renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n download(data: {items: Array<unknown>, model: Record<string, string>, fileName: string}) {\n if (this.#loading || !data.items || !Array.isArray(data.items) || !data.model) {\n return;\n }\n\n try {\n this.#loading = true;\n const csv = this.getCSV(data);\n if (!data.fileName) {\n data.fileName = 'bizy-csv';\n }\n\n this.#downloadCSV({csv, fileName: data.fileName});\n } finally {\n this.#loading = false;\n }\n }\n\n getCSV(data: {items: Array<any>, model: Record<string, string>}): string {\n let csv = '';\n\n function escapeCommas(str) {\n return str.includes(',') ? `\"${str}\"` : str;\n }\n\n for (const key in data.model) {\n if (key) {\n csv += `${data.model[key]},`;\n }\n }\n\n data.items.forEach(_item => {\n // Remove the last character (',')\n csv = csv.slice(0, -1);\n csv += '\\n';\n\n for (const key in data.model) {\n let value: any = _item;\n const nestedProperty = key.split('.');\n for (let i = 0; i < nestedProperty.length; i++) {\n const _property = nestedProperty[i];\n if (value) {\n value = value[_property];\n } else {\n break;\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n csv += `${escapeCommas(String(value).replace(/\\n/g, ''))},`;\n } else {\n csv += ',';\n }\n }\n });\n\n if (csv && csv[csv.length - 1] === ',') {\n // Remove the last character (',')\n csv = csv.slice(0, -1);\n }\n\n return csv;\n }\n\n #downloadCSV(data: {csv: string, fileName: string}) {\n const blob = new Blob([data.csv], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const downloadButton = this.#renderer.createElement('a');\n downloadButton.setAttribute('download', data.fileName);\n downloadButton.href = url;\n this.#renderer.appendChild(this.document.body, downloadButton);\n downloadButton.click();\n this.#renderer.removeChild(this.document.body, downloadButton);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { fromEvent, merge, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyRouterService {\n static backPath = '';\n\n transitionsEnd$: Observable<ActivatedRouteSnapshot>;\n\n transitionsStart$: Observable<ActivatedRouteSnapshot>;\n\n popStateEvent$: Observable<PopStateEvent>;\n\n routeChange$: Observable<void>;\n\n constructor(@Inject(Router) private router: Router) {\n this.transitionsEnd$ = this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map((event: any) => event.id),\n distinctUntilChanged(),\n map(() => this.router.routerState.snapshot.root)\n );\n\n this.transitionsStart$ = this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n map((event: any) => event.id),\n distinctUntilChanged(),\n map(() => this.router.routerState.snapshot.root)\n );\n\n this.popStateEvent$ = fromEvent<PopStateEvent>(window, 'popstate');\n\n this.routeChange$ = merge(this.transitionsEnd$, this.popStateEvent$).pipe(map(() => void 0));\n }\n\n getURL() {\n return window.location.pathname;\n }\n\n getBackPath() {\n return BizyRouterService.backPath;\n }\n\n getId(activatedRoute: ActivatedRoute, param: string): string | null {\n return activatedRoute.snapshot.paramMap.get(param);\n }\n\n getQueryParam(activatedRoute: ActivatedRoute, param: string): string | null {\n return activatedRoute.snapshot.queryParamMap.get(param);\n }\n\n getAllQueryParam(): Record<string, string> {\n const params = new URL(window.location.href).searchParams as any;\n const queryParams: Record<string, string> = {};\n \n for (const [key, value] of params.entries()) {\n queryParams[key] = value;\n }\n \n return queryParams;\n }\n\n goTo(data: { path: string; params?: Record<string, string>, replace?: boolean, skip?: boolean }) {\n if (data.replace) {\n BizyRouterService.backPath = '';\n } else {\n BizyRouterService.backPath = this.getURL();\n }\n\n if (data.path[0] === '/') {\n this.router.navigateByUrl(`${data.path}${this._serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });\n return;\n }\n\n const path = this.getURL();\n const index = path.indexOf('?');\n const url = index !== -1 ? path.substring(0, index) : path;\n\n this.router.navigateByUrl(`${url}/${data.path}${this._serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });\n }\n\n goBack(data?: {path: string}) {\n if (BizyRouterService.backPath) {\n history.back();\n BizyRouterService.backPath = '';\n } else if (data && data.path) {\n this.router.navigateByUrl(data.path, { replaceUrl: true });\n } else {\n const index = this.getURL().lastIndexOf('/');\n const backURL = this.getURL().substring(0, index);\n this.router.navigateByUrl(backURL, { replaceUrl: true });\n }\n }\n\n reload(force?: boolean): void {\n if (force) {\n window.location.reload();\n } else {\n setTimeout(() => {\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\n this.goTo({ path: this.getURL(), params: this.getAllQueryParam() });\n });\n }, 1);\n }\n }\n\n private _serialize(params?: Record<string, string>): string {\n if (!params) {\n return '';\n }\n\n const str = [];\n for (const param in params) {\n if (params[param]) {\n str.push(encodeURIComponent(param) + '=' + encodeURIComponent(params[param]));\n }\n }\n\n const queryParams = str.length > 0 ? `?${str.join('&')}` : '';\n return queryParams;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BizyRouterService } from './router.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyCacheService {\n readonly CACHE_PREFIX = 'BIZY-CACHE';\n constructor(@Inject(BizyRouterService) private router: BizyRouterService) {}\n\n getData<T>(key?: string): T {\n if (!key) {\n key = this.router.getURL();\n }\n\n const data = sessionStorage.getItem(`${this.CACHE_PREFIX}-${key}`);\n if (data) {\n const _data = JSON.parse(data) as {expiresAt: number, value: T}\n return Date.now() < _data.expiresAt ? _data.value : {} as T\n }\n\n return {} as T;\n }\n\n setData<T>(value: T, key?: string, expiresAt?: number) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (!key) {\n key = this.router.getURL();\n }\n\n if (!expiresAt) {\n const date = new Date();\n date.setHours(23, 59, 59);\n expiresAt = date.getTime();\n }\n\n const data = {\n expiresAt,\n value\n }\n\n sessionStorage.setItem(`${this.CACHE_PREFIX}-${key}`, JSON.stringify(data));\n }\n\n remove(key?: string) {\n if (!key) {\n key = this.router.getURL();\n }\n\n sessionStorage.removeItem(`${this.CACHE_PREFIX}-${key}`);\n }\n\n removeAll() {\n const cacheKeys = Object.keys(sessionStorage).filter(key => {\n return key.includes(this.CACHE_PREFIX);\n });\n cacheKeys.forEach(value => {\n sessionStorage.removeItem(value);\n });\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport validator from 'validator';\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyValidatorService {\n isEmail = (value: string): boolean => validator.isEmail(value, {allow_utf8_local_part: false});\n\n dateIsAfter = (data: {date: string | number | Date, comparisonDate: string | number | Date}): boolean => {\n if (!data || !data.date || !data.comparisonDate) {\n return false;\n }\n\n const date = new Date(data.date);\n const comparisonDate = new Date(data.comparisonDate);\n return validator.isAfter(date.toString(), comparisonDate.toString())\n }\n\n dateIsBefore = (data: {date: string | number | Date, comparisonDate: string | number | Date}): boolean => {\n if (!data || !data.date || !data.comparisonDate) {\n return false;\n }\n\n const date = new Date(data.date);\n const comparisonDate = new Date(data.comparisonDate);\n return validator.isBefore(date.toString(), comparisonDate.toString())\n }\n\n isAlpha = (value: string): boolean => validator.isAlpha(value);\n\n isAlphanumeric = (value: string): boolean => validator.isAlphanumeric(value);\n\n isNumeric = (value: string | number): boolean => validator.isNumeric(value);\n\n isNumber(number: unknown): number is number {\n const regex = /^-?\\d+(\\.\\d+)?$/;\n return regex.test(String(number).toLowerCase());\n }\n\n isString(string: unknown): string is string {\n return typeof string === 'string' || string instanceof String;\n }\n\n isInteger = (value: string | number): boolean => validator.isInt(value);\n\n isBoolean = (value: unknown): boolean => validator.isBoolean(value);\n\n isCreditCard = (value: string | number ): boolean => validator.isCreditCard(value);\n\n isDataURI = (value: string): boolean => validator.isDataURI(value);\n\n isURL = (value: string): boolean => validator.isURL(value);\n\n isDate = (value: string): boolean => validator.isDate(value);\n\n isJSON = (value: string): boolean => validator.isJSON(value);\n\n isIP = (value: string, version: 4 | 6 | '4' | '6' ): boolean => validator.isIP(value, {version});\n\n isJWT = (value: string): boolean => validator.isJWT(value);\n\n isLowercase = (value: string): boolean => validator.isLowercase(value);\n\n isUppercase = (value: string): boolean => validator.isUppercase(value);\n\n isMobilePhone = (data: {value: string, locale: string}): boolean => validator.isMobilePhone(data.value, data.locale);\n\n isCUIT(cuit: string): boolean {\n if (!cuit) {\n return false;\n }\n\n if (this.isString(cuit)) {\n cuit = cuit.replace(/[-]/g, '');\n } else {\n cuit = String(cuit);\n }\n\n // 20, 23, 24, 25, 26 y 27 Personas Físicas\n // 30, 33 y 34 Personas Jurídicas.\n if (!/^(20|23|24|25|26|27|30|33|34)\\d{8}\\d$/.test(cuit)) {\n return false;\n }\n\n const multipliers = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n const digits = cuit.split('').map(Number);\n const checkDigit = digits[10];\n const sum = multipliers.reduce((acc, _multiplier, i) => acc + _multiplier * digits[i], 0);\n const mod11 = 11 - (sum % 11);\n\n const expectedDigit = mod11 === 11 ? 0 : mod11 === 10 ? 9 : mod11;\n\n return checkDigit === expectedDigit;\n }\n\n isDNI(dni: string): boolean {\n const regex = /(^[1-9]{1}[0-9]{7}$)/i;\n return regex.test(String(dni).toLowerCase());\n }\n\n isCBU(cbu: string): boolean {\n const _isLengthOk = (cbu: string) => {\n return cbu.length === 22;\n };\n\n const _isValidAccount = (account: string) => {\n if (account.length !== 14) {\n return false;\n }\n\n const sum =\n Number(account[0]) * 3 +\n Number(account[1]) * 9 +\n Number(account[2]) * 7 +\n Number(account[3]) * 1 +\n Number(account[4]) * 3 +\n Number(account[5]) * 9 +\n Number(account[6]) * 7 +\n Number(account[7]) * 1 +\n Number(account[8]) * 3 +\n Number(account[9]) * 9 +\n Number(account[10]) * 7 +\n Number(account[11]) * 1 +\n Number(account[12]) * 3;\n const diff = (10 - (sum % 10)) % 10; // The result of this should be only 1 digit\n const checksum = Number(account[13]);\n\n return diff === checksum;\n };\n\n const _isValidBankCode = (code: string) => {\n if (code.length !== 8) {\n return false;\n }\n\n const bank = code.substring(0, 3);\n const checksumOne = code[3];\n const branch = code.substring(4, 4 + 3);\n const checksumTwo = code[7];\n\n const sum =\n (Number(bank[0]) * 7) +\n (Number(bank[1]) * 1) +\n (Number(bank[2]) * 3) +\n (Number(checksumOne) * 9) +\n (Number(branch[0]) * 7) +\n (Number(branch[1]) * 1 )+\n (Number(branch[2]) * 3);\n const diff = (10 - (sum % 10)) % 10; // The result of this should be only 1 digit\n\n return diff === Number(checksumTwo);\n };\n\n const bankCode = cbu.substring(0, 8);\n const accountCode = cbu.substring(8, 8 + 14);\n return (\n _isLengthOk(cbu) &&\n _isValidBankCode(bankCode) &&\n _isValidAccount(accountCode)\n );\n }\n\n emailValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isEmail(control.value))\n ? null\n : { bizyEmail: true };\n };\n }\n\n mobilePhoneValidator(locale: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || !locale ||\n (control.value && locale && this.isMobilePhone({value: control.value, locale}))\n ? null\n : { bizyMobilePhone: true };\n };\n }\n\n numberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isNumber(control.value))\n ? null\n : { bizyNumber: true };\n };\n }\n\n numericValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isNumeric(control.value))\n ? null\n : { bizyNumeric: true };\n };\n }\n\n dateIsAfterValidator(comparisonDate: string | number | Date): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || !comparisonDate || (control.value && comparisonDate && !this.dateIsAfter({date: control.value, comparisonDate}))\n ? null\n : { bizyDateIsAfter: true };\n };\n }\n\n dateIsBeforeValidator(comparisonDate: string | number | Date): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || !comparisonDate || (control.value && comparisonDate && !this.dateIsBefore({date: control.value, comparisonDate}))\n ? null\n : { bizyDateIsBefore: true };\n };\n }\n\n alphaValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isAlpha(control.value))\n ? null\n : { bizyAlpha: true };\n };\n }\n\n alphanumericValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isAlphanumeric(control.value))\n ? null\n : { bizyAlphanumeric: true };\n };\n }\n\n integerValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isInteger(control.value))\n ? null\n : { bizyInteger: true };\n };\n }\n\n dataURIValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isDataURI(control.value))\n ? null\n : { bizyDataURI: true };\n };\n }\n\n urlValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isURL(control.value))\n ? null\n : { bizyURL: true };\n };\n }\n\n jsonValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isJSON(control.value))\n ? null\n : { bizyJSON: true };\n };\n }\n\n jwtValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isJWT(control.value))\n ? null\n : { bizyJWT: true };\n };\n }\n\n lowerCaseValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isLowercase(control.value))\n ? null\n : { bizyLowerCase: true };\n };\n }\n\n upperCaseValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isUppercase(control.value))\n ? null\n : { bizyUpperCase: true };\n };\n }\n\n cuitValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isCUIT(control.value))\n ? null\n : { bizyCUIT: true };\n };\n }\n\n dniValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isDNI(control.value))\n ? null\n : { bizyDNI: true };\n };\n }\n\n cbuValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isCBU(control.value))\n ? null\n : { bizyCBU: true };\n };\n }\n\n creditCardValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return !control.value || (control.value && this.isCreditCard(control.value))\n ? null\n : { bizyCreditCard: true };\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyStorageService {\n\n get<T>(key: string): T {\n const item = localStorage.getItem(key);\n try {\n return JSON.parse(item) as T;\n } catch (e) {\n return item as T;\n }\n }\n\n set(key: string, value: unknown): void {\n if (typeof value === 'object') {\n localStorage.setItem(key, JSON.stringify(value));\n } else if (typeof value === 'string') {\n localStorage.setItem(key, value);\n } else {\n localStorage.setItem(key, String(value));\n }\n }\n\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n\n clear(): void {\n localStorage.clear();\n }\n}","import { Injectable } from '@angular/core';\n\nenum COLOR {\n DEFAULT = '#666666',\n INFO = '#2484C6',\n SUCCESS = '#65BF6C',\n WARNING = '#F7A64C',\n ERROR = '#EF4C59'\n}\n\ninterface ILogData {\n fileName: string;\n functionName: string;\n param?: unknown\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyLogService {\n #lastLogTimestamp: number = 0;\n\n #log(log: string, color: COLOR, param: unknown): void {\n const difference = this.#lastLogTimestamp ? Date.now() - this.#lastLogTimestamp : 0;\n this.#lastLogTimestamp = Date.now();\n\n const timestampStyles = 'color: #EE5DFF';\n const logStyles = `color: ${color}; font-size: 12px;`;\n const date = new Date();\n if (param) {\n console.log(`%c${date.toLocaleString()}: %c${log} %c(+${difference}ms)`, timestampStyles, logStyles, timestampStyles, param);\n } else {\n console.log(`%c${date.toLocaleString()}: %c${log} %c(+${difference}ms)`, timestampStyles, logStyles, timestampStyles);\n }\n }\n\n debug(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.DEFAULT, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Debug', color: COLOR.DEFAULT });\n }\n }\n\n info(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.INFO, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Info', color: COLOR.INFO });\n }\n }\n\n success(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.SUCCESS, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Success', color: COLOR.SUCCESS });\n }\n }\n\n warning(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.WARNING, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Warning', color: COLOR.WARNING });\n }\n }\n\n error(data: string | ILogData, param?: unknown): void {\n if (typeof data === 'string') {\n this.#log(data, COLOR.ERROR, param);\n } else {\n this.#template({ ...data, param: data.param, title: 'Error', color: COLOR.ERROR });\n }\n }\n /** DEPRECATED */\n templateDebug(data: ILogData): void {\n this.#template({ ...data, title: 'Debug', color: COLOR.DEFAULT });\n }\n /** DEPRECATED */\n templateSucc(data: ILogData): void {\n this.#template({ ...data, title: 'Success', color: COLOR.SUCCESS });\n }\n /** DEPRECATED */\n templateInfo(data: ILogData): void {\n this.#template({ ...data, title: 'Info', color: COLOR.INFO });\n }\n /** DEPRECATED */\n templateWarn(data: ILogData): void {\n this.#template({ ...data, title: 'Warning', color: COLOR.WARNING });\n }\n /** DEPRECATED */\n templateError(data: ILogData): void {\n this.#template({ ...data, title: 'Error', color: COLOR.ERROR });\n }\n\n #template(data: { fileName: string; functionName: string; title: string, color: COLOR; param?: unknown }): void {\n const log = `(${data.title}) ${data.fileName} - ${data.functionName}`;\n this.#log(log, data.color, data.param);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyCopyToClipboardService {\n readonly #clipboard = inject(Clipboard);\n\n copy(data: string | {items: Array<unknown>, model: Record<string, string>}) {\n return new Promise<void>((resolve, reject) => {\n try {\n if (!data) {\n resolve();\n return;\n }\n \n setTimeout(() => {\n let toCopy = '';\n \n if (typeof data === 'string' || data instanceof String) {\n toCopy = data as string;\n } else if (data.items && data.items.length > 0 && data.model) {\n for (const key in data.model) {\n if (key) {\n toCopy += `${data.model[key]},`;\n }\n }\n \n data.items.forEach(_item => {\n // Remove the last character (',')\n toCopy = toCopy.slice(0, -2);\n toCopy += '\\n';\n \n for (const key in data.model) {\n let value: any = _item;\n const nestedProperty = key.split('.');\n nestedProperty.forEach(_property => {\n value = value[_property];\n });\n \n if (typeof value !== 'undefined' && value !== null) {\n toCopy += `${String(value).replace(/\\n/g, '')},`;\n } else {\n toCopy += ',';\n }\n }\n });\n }\n \n const pending = this.#clipboard.beginCopy(toCopy);\n let remainingAttempts = 3;\n const attempt = () => {\n const result = pending.copy();\n if (!result && --remainingAttempts) {\n setTimeout(attempt);\n } else {\n // Remember to destroy when you're done!\n pending.destroy();\n resolve();\n }\n };\n \n attempt();\n }, 100);\n } catch (error) {\n reject(error);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport enum BIZY_FORMAT_SECONDS_LANGUAGE {\n SPANISH = 'es',\n ENGLISH = 'en',\n}\n\nexport enum BIZY_FORMAT_SECONDS_FORMAT {\n DATE_TIME = 'date-time',\n TIME = 'time',\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyFormatSecondsService {\n #options: {\n language: BIZY_FORMAT_SECONDS_LANGUAGE,\n format: BIZY_FORMAT_SECONDS_FORMAT\n } = {\n language: BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH,\n format: BIZY_FORMAT_SECONDS_FORMAT.TIME\n }\n\n getOptions() {\n return this.#options;\n }\n\n setOptions(options: {language?: BIZY_FORMAT_SECONDS_LANGUAGE, format?: BIZY_FORMAT_SECONDS_FORMAT}) {\n if (options && options.language) {\n this.#options.language = options.language;\n }\n\n if (options && options.format) {\n this.#options.format = options.format;\n }\n }\n}","/**\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This function's role is to enable smooth transition to the brave new world of\n// User-Agent Client Hints. If you have legacy code that relies on\n// `navigator.userAgent` and which relies on entropy that will go away by\n// default, you *need* to refactor it to use UA-CH. This function is to be used\n// as a stop gap, to enable smooth transition during that period.\n/**\n* @param {string[]} hints\n* @return {Promise<string|undefined>} A Promise that resolves to a string if a\n* UA could be synthesized from client hints, otherwise undefined.\n*/\nasync function getUserAgentUsingClientHints(hints: ['architecture', 'bitness', 'model', 'platformVersion', 'uaFullVersion', 'fullVersionList']): Promise<string> {\n // Helper functions for platform specific strings\n const GetCrosSpecificString = (values: { bitness: string; architecture: string; platformVersion: any; }) => {\n let osCPUFragment = '';\n if (values.bitness == '64') {\n if (values.architecture == 'x86') {\n osCPUFragment = 'x86_64';\n } else if (values.architecture == 'arm') {\n osCPUFragment = 'aarch64';\n }\n } else if (values.architecture == 'arm' && values.bitness == '32') {\n osCPUFragment = 'armv7l';\n }\n\n if (osCPUFragment == '') {\n return `X11; CrOS ${values.platformVersion}`;\n }\n\n return `X11; CrOS ${osCPUFragment} ${values.platformVersion}`;\n };\n\n const GetWindowsSpecificString = (values: { architecture: string; bitness: string; wow64: boolean; platformVersion: any; }) => {\n let osCPUFragment = '';\n if (values.architecture == 'x86' && values.bitness == '64') {\n osCPUFragment = '; Win64; x64';\n } else if (values.architecture == 'arm') {\n osCPUFragment = '; ARM';\n } else if (values.wow64 === true) {\n osCPUFragment = '; WOW64';\n }\n\n return `Windows NT ${getWindowsPlatformVersion(\n values.platformVersion\n )}${osCPUFragment}`;\n };\n\n const GetMacSpecificString = (values: { architecture: string; platformVersion: any; }) => {\n let newUA = 'Macintosh;';\n newUA += values.architecture === 'arm' ? ' ARM ' : ' Intel ';\n newUA += 'Mac OS X ';\n let macVersion = values.platformVersion;\n if (macVersion.indexOf('.') > -1) {\n macVersion = macVersion.split('.').join('_');\n }\n\n newUA += macVersion;\n return newUA;\n };\n\n const GetAndroidSpecificString = (values: { platformVersion: string; model: string; }) => {\n let newUA = 'Linux; Android ';\n newUA += values.platformVersion;\n if (values.model) {\n newUA += '; ';\n newUA += values.model;\n }\n\n return newUA;\n };\n\n const Initialize = (values: { architecture: string; bitness: string; model: string; platform: string; platformVersion: string; wow64: boolean; }) => {\n if (!values.architecture) {\n values.architecture = 'x86';\n }\n\n if (!values.bitness) {\n values.bitness = '64';\n }\n\n if (!values.model) {\n values.model = '';\n }\n\n if (!values.platform) {\n values.platform = 'Windows';\n }\n\n if (!values.platformVersion) {\n values.platformVersion = '10.0';\n }\n\n if (!values.wow64) {\n values.wow64 = false;\n }\n\n return values;\n };\n\n // @ts-ignore-error\n if (!navigator.userAgentData) {\n return Promise.resolve('');\n }\n\n // Verify that this is a Chromium-based browser\n let isChromium = false;\n let chromiumVersion: number;\n // eslint-disable-next-line prefer-regex-literals\n const isChromeUAPattern = new RegExp(\n 'AppleWebKit/537.36 \\\\(KHTML, like Gecko\\\\) Chrome/\\\\d+.\\\\d+.\\\\d+.\\\\d+ (Mobile )?Safari/537.36$'\n );\n // @ts-ignore-error\n navigator.userAgentData.brands.forEach(value => {\n if (value.brand == 'Chromium') {\n // Let's double check the UA string as well, so we don't accidentally\n // capture a headless browser or friendly bot (which should report as\n // HeadlessChrome or something entirely different).\n isChromium = isChromeUAPattern.test(navigator.userAgent);\n chromiumVersion = value.version;\n }\n });\n // @ts-ignore\n if (!isChromium || chromiumVersion < 100) {\n // If this is not a Chromium-based browser, the UA string should be very\n // different. Or, if this is a Chromium lower than 100, it doesn't have\n // all the hints we rely on. So let's bail.\n return Promise.resolve('');\n }\n\n // Main logic\n return new Promise(resolve => {\n // @ts-ignore-error\n navigator.userAgentData.getHighEntropyValues(hints).then(values => {\n let initialValues = {\n // @ts-ignore-error\n platform: navigator.userAgentData?.platform,\n version: chromiumVersion\n };\n values = Object.assign(initialValues, values);\n values = Initialize(values);\n let newUA = 'Mozilla/5.0 (';\n if (['Chrome OS', 'Chromium OS'].includes(values.platform)) {\n newUA += GetCrosSpecificString(values);\n } else if (values.platform == 'Windows') {\n newUA += GetWindowsSpecificString(values);\n } else if (values.platform == 'macOS') {\n newUA += GetMacSpecificString(values);\n } else if (values.platform == 'Android') {\n newUA += GetAndroidSpecificString(values);\n } else {\n newUA += 'X11; Linux x86_64';\n }\n\n newUA += ') AppleWebKit/537.36 (KHTML, like Gecko) Chrome/';\n newUA += getVersion(values?.fullVersionList, initialValues.version);\n // @ts-ignore-error\n if (navigator.userAgentData.mobile) {\n newUA += ' Mobile';\n }\n\n newUA += ' Safari/537.36';\n resolve(newUA);\n });\n });\n}\n\nfunction getVersion(fullVersionList: any[], majorVersion: any) {\n // If we don't get a fullVersionList, or it's somehow undefined, return\n // the reduced version number.\n return (\n fullVersionList?.find((item: { brand: string; }) => item.brand == 'Google Chrome')?.version ||\n `${majorVersion}.0.0.0`\n );\n}\n\nfunction getWindowsPlatformVersion(platformVersion: string) {\n // https://wicg.github.io/ua-client-hints/#get-the-legacy-windows-version-number\n const versionMap = new Map([\n ['0.3.0', '6.3'], // Windows 8.1\n ['0.2.0', '6.2'], // Windows 8\n ['0.1.0', '6.1'] // Windows 7\n ]);\n\n if (versionMap.has(platformVersion)) {\n return versionMap.get(platformVersion);\n }\n\n // Windows 10 and above send \"Windows NT 10.0\"\n return '10.0';\n}\n\n/**\n * @param {string[]} hints\n * @return {Promise<string|undefined>} A Promise that resolves on overriding the\n * navigator.userAgent string.\n */\nasync function overrideUserAgentUsingClientHints(hints: ['architecture', 'bitness', 'model', 'platformVersion', 'uaFullVersion', 'fullVersionList']) {\n return new Promise<string>(resolve => {\n getUserAgentUsingClientHints(hints).then(newUA => {\n if (newUA) {\n // Got a new UA value. Now override `navigator.userAgent`.\n Object.defineProperty(navigator, 'userAgent', {\n value: newUA,\n writable: false,\n configurable: true\n });\n } else {\n newUA = navigator.userAgent;\n }\n\n resolve(newUA);\n });\n });\n}\n\nexport const exportedForTests = { getVersion, getWindowsPlatformVersion };\nexport { getUserAgentUsingClientHints, overrideUserAgentUsingClientHints as getUserAgent};\n","import { inject, Injectable } from '@angular/core';\nimport { getUserAgent } from './uach-retrofill';\nimport { DeviceDetectorService } from 'ngx-device-detector';\n\n@Injectable({ providedIn: 'root' })\nexport class BizyDeviceService {\n readonly #device = inject(DeviceDetectorService);\n\n async getUserAgent() {\n try {\n const userAgent = await getUserAgent([\n 'architecture',\n 'bitness',\n 'model',\n 'platformVersion',\n 'uaFullVersion',\n 'fullVersionList'\n ]);\n return userAgent;\n } catch {\n return window.navigator.userAgent;\n }\n }\n\n isMobile = (): boolean => this.#device.isMobile();\n\n isTablet = (): boolean => this.#device.isTablet();\n\n isDesktop = (): boolean => this.#device.isDesktop();\n\n isPortrait = (): boolean => this.#device.orientation() === 'portrait';\n\n isLandscape = (): boolean => this.#device.orientation() === 'landscape';\n}","import { NgModule } from '@angular/core';\nimport { BizyAnimationService } from './animation.service';\nimport { BizyViewportService } from './viewport.service';\nimport { BizyKeyboardService } from './keyboard.service';\nimport { BizyExportToCSVService } from './export-to-csv.service';\nimport { BizyCacheService } from './cache.service';\nimport { BizyValidatorService } from './validator.service';\nimport { BizyStorageService } from './storage.service';\nimport { BizyLogService } from './log.service';\nimport { BizyRouterService } from './router.service';\nimport { BizyCopyToClipboardService } from './copy-to-clipboard.service';\nimport { BizyFormatSecondsService } from './format-seconds.service';\nimport { BizyDeviceService } from './device/device.service';\n\nconst SERVICES: Array<any> = [\n BizyAnimationService,\n BizyDeviceService,\n BizyCacheService,\n BizyCopyToClipboardService,\n BizyExportToCSVService,\n BizyFormatSecondsService,\n BizyKeyboardService,\n BizyLogService,\n BizyRouterService,\n BizyStorageService,\n BizyValidatorService,\n BizyViewportService\n]\n\n@NgModule({\n providers: SERVICES\n})\n\nexport class BizyServicesModule {}\n","import { ComponentType } from \"@angular/cdk/portal\";\nimport { inject, Injectable, NgZone } from \"@angular/core\";\nimport { take } from \"rxjs\";\nimport { BizyPopupWrapperComponent } from \"./popup-wrapper/popup-wrapper.component\";\nimport { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { BizyFullScreenPopupWrapperComponent } from \"./full-screen-popup-wrapper/full-screen-popup-wrapper.component\";\nimport { BIZY_ANIMATION, BizyAnimationService, BizyValidatorService } from \"../../services\";\nimport { POPUP_PLACEMENT } from \"./popup.types\";\n\n@Injectable()\nexport class BizyPopupService {\n readonly #animation = inject(BizyAnimationService);\n readonly #validator = inject(BizyValidatorService);\n readonly #dialog = inject(Dialog);\n readonly #ngZone = inject(NgZone);\n static dialogs = new Set<DialogRef<unknown, any>>();\n #data: unknown = null;\n \n /**\n * \n * @param data.disableClose Deprecated\n */\n open<R>(data: {\n component: ComponentType<unknown>,\n data?: unknown,\n customClass?: Array<string> | string,\n fullScreen?: boolean,\n disableClose?: boolean,\n disableBackdropClose?: boolean,\n id?: string,\n disableCloseButton?: boolean,\n disableDragButton?: boolean,\n element?: HTMLElement,\n position?: {top?: string, right?: string, bottom?: string, left?: string},\n placement?: POPUP_PLACEMENT},\n callback?: (res: R) => void) {\n if (!data) {\n return;\n }\n\n this.#data = data.data;\n\n let position: {top?: string, right?: string, bottom?: string, left?: string} | null = data.position ?? null;\n let placement: POPUP_PLACEMENT | null = null;\n\n if (data.element) {\n const rect = data.element.getBoundingClientRect();\n if (!data.placement) {\n data.placement = POPUP_PLACEMENT.RIGHT;\n }\n\n position = {\n top: data.placement === POPUP_PLACEMENT.TOP ? `${rect.top - data.element.offsetHeight + Number(position.top)}px ` : `${rect.top + Number(position.top)}px`,\n left: data.placement === POPUP_PLACEMENT.LEFT ? `${rect.left - data.element.offsetWidth + Number(position.left)}px` : `${rect.left + Number(position.left)}px`,\n bottom: data.placement === POPUP_PLACEMENT.BOTTOM ? `${rect.bottom + data.element.offsetHeight + Number(position.bottom)}px` : `${rect.bottom + Number(position.bottom)}px`,\n right: data.placement === POPUP_PLACEMENT.RIGHT ? `${rect.right + data.element.offsetWidth + Number(position.right)}px` : `${rect.right + Number(position.right)}px`,\n }\n } else {\n placement = data.placement ?? null;\n }\n\n const component: ComponentType<unknown> = data.fullScreen ? BizyFullScreenPopupWrapperComponent : BizyPopupWrapperComponent;\n this.#ngZone.run(() => {\n const dialogRef = this.#dialog.open(component, ({\n id: data.id,\n data: {\n component: data.component,\n disableClose: data.disableCloseButton ?? false,\n disableDrag: data.disableDragButton ?? false,\n position,\n placement\n },\n autoFocus: true,\n hasBackdrop: true,\n disableClose: typeof data.disableBackdropClose !== 'undefined' && data.disableBackdropClose !== null ? data.disableBackdropClose : typeof data.disableClose !== 'undefined' && data.disableClose !== null ? data.disableClose : true,\n panelClass: Array.isArray(data.customClass) ? data.customClass : this.#validator.isString(data.customClass) ? [data.customClass] : []\n }));\n\n BizyPopupService.dialogs.add(dialogRef);\n\n dialogRef.closed.pipe(take(1)).subscribe(response => {\n BizyPopupService.dialogs.delete(dialogRef);\n if (callback) {\n callback(response as R);\n }\n });\n });\n }\n\n setPlacement(data: {placement: POPUP_PLACEMENT, id?: string}) {\n if (!data || !data.placement) {\n return;\n }\n\n let dialogRef: DialogRef<unknown, any> | null = null;\n if (data.id) {\n dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);\n } else {\n dialogRef = Array.from(BizyPopupService.dialogs).pop();\n }\n\n if (dialogRef && dialogRef.componentInstance instanceof BizyPopupWrapperComponent) {\n dialogRef.componentInstance.setPlacement(data.placement);\n }\n }\n\n getData<D>() {\n return this.#data as D;\n }\n\n async close(data?: {id?: string, response?: unknown}) {\n let dialogRef: DialogRef<unknown, any> | null = null;\n if (data && data.id) {\n dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);\n } else {\n dialogRef = Array.from(BizyPopupService.dialogs).pop();\n }\n\n if (dialogRef) {\n if (dialogRef.componentInstance instanceof BizyFullScreenPopupWrapperComponent && dialogRef.overlayRef && dialogRef.overlayRef.overlayElement) {\n const nativeElement = dialogRef.overlayRef.overlayElement.querySelector('bizy-full-screen-popup-wrapper');\n await this.#animation.setAnimation(<HTMLElement>nativeElement, BIZY_ANIMATION.SLIDE_OUT_DOWN);\n }\n dialogRef.close(data ? data.response : null);\n BizyPopupService.dialogs.delete(dialogRef);\n }\n }\n\n closeAll() {\n Array.from(BizyPopupService.dialogs).forEach(_dialogRef => {\n _dialogRef.close();\n });\n BizyPopupService.dialogs.clear();\n }\n\n openedPopups(): number {\n return BizyPopupService.dialogs.size;\n }\n}","import { DIALOG_DATA, DialogModule, DialogRef } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, ViewContainerRef, inject } from '@angular/core';\nimport { BizyPopupService } from '../popup.service';\n\n@Component({\n selector: 'bizy-full-screen-popup-wrapper',\n templateUrl: './full-screen-popup-wrapper.html',\n styleUrls: ['./full-screen-popup-wrapper.css'],\n imports: [CommonModule, DialogModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n 'class': 'animated slide-in-up'\n }\n})\nexport class BizyFullScreenPopupWrapperComponent<T> {\n readonly #elementRef = inject(ElementRef);\n readonly #data: {component: ComponentType<T>, disableClose: boolean, disableDrag: boolean} = inject(DIALOG_DATA);\n readonly #dialogRef: DialogRef<void> = inject(DialogRef);\n readonly #popup = inject(BizyPopupService);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) dynamicComponentContainer: ViewContainerRef;\n\n disabled: boolean = false;\n\n disableClose: boolean = false;\n disableDrag: boolean = false;\n\n ngOnInit() {\n if (this.#data) {\n if (this.#data.disableClose) {\n this.disableClose = this.#data.disableClose;\n }\n \n if (this.#data.disableDrag) {\n this.disableDrag = this.#data.disableDrag;\n }\n }\n }\n\n ngAfterViewInit() {\n this.loadDynamicComponent();\n }\n\n loadDynamicComponent = () => {\n if (this.#data && this.#data.component) {\n this.dynamicComponentContainer.clear();\n this.dynamicComponentContainer.createComponent(this.#data.component);\n\n this.#ref.detectChanges();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n async close() {\n this.disabled = true;\n this.#popup.close({id: this.#dialogRef.id});\n }\n}","<div class=\"bizy-full-screen-popup-wrapper\" [ngClass]=\"{'bizy-full-screen-popup-wrapper--disabled': disabled}\">\n\n @if (!disableClose) {\n <button class=\"bizy-full-screen-popup-wrapper__close-button\" (click)=\"close()\" (keyup.enter)=\"close()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" class=\"bizy-full-screen-popup-wrapper__close-button__icon\">\n <path d=\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"/>\n </svg>\n </button>\n }\n\n <ng-container #dynamicComponentContainer></ng-container>\n\n</div>","import { NgModule } from '@angular/core';\nimport { BizyPopupWrapperComponent } from './popup-wrapper/popup-wrapper.component';\nimport { BizyPopupService } from './popup.service';\nimport { BizyFullScreenPopupWrapperComponent } from './full-screen-popup-wrapper/full-screen-popup-wrapper.component';\n\nconst COMPONENTS = [\n BizyPopupWrapperComponent,\n BizyFullScreenPopupWrapperComponent\n]\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [BizyPopupService]\n})\n\nexport class BizyPopupModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-bar-line-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyBarLineChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {name: string},\n grid: {left: number, right: number},\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...data.option, toolbox: {show: false}});\n\n const showAllLegends = (chart: echarts.ECharts) => {\n const option = chart.getOption();\n option.legend[0].type = 'plain';\n option.grid = {\n left: data.grid.left,\n right: data.grid.right,\n bottom: Math.max(Math.abs((Math.max(option.legend[0].data.length, 5) / 5)) * 30, 60)\n };\n chart.setOption(option);\n }\n\n showAllLegends(this.#echarts);\n\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.#popup.close();\n });\n });\n }, 500);\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n DOCUMENT,\n inject\n} from '@angular/core';\nimport { IBizyBarLineChartData } from './bar-line-chart.types';\n\nimport { auditTime, BehaviorSubject, filter, skip, Subject, Subscription, take, throttleTime } from 'rxjs';\nimport { BizyPopupService } from '../popup';\nimport { BizyBarLineChartPopupComponent } from './bar-line-chart-popup.component';\n\nconst GRID_BOTTOM = 30;\nconst Y_AXIS_OFFSET = 50;\nconst DEFAULT_CHART_SIZE = '300px';\n\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n}\n\nconst DEFAULT_TOOLTIP = {\n show: true\n};\n@Component({\n selector: 'bizy-bar-line-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyBarLineChartComponent implements OnDestroy, AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() axisPointer: 'line' | 'cross' = 'line';\n @Input() xAxis: { labels?: Array<string>, formatter?: (item: any ) => string} | null = null;\n @Output() onDownload = new EventEmitter<void>();\n @Output() onSelect = new EventEmitter<string>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<IBizyBarLineChartData> = [];\n\n #gridLeft: number = 0;\n #gridRight: number = 0;\n #chartStacks: Array<string> = [];\n #chartNames: Array<string> = [];\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyBarLineChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n }\n }\n\n async #setChartData(data: Array<IBizyBarLineChartData>) {\n this.#data = data;\n this.#gridLeft = 0;\n this.#gridRight = 0;\n this.#chartStacks = [];\n this.#chartNames = [];\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n this.#createChartContainer()\n\n if (!this.#chartContainer) {\n return;\n }\n\n const series: Array<any> = [];\n const legends: Array<string> = [];\n const yAxis: Array<any> = [];\n \n this.#data.forEach((_d, _i) => {\n if (!_d.type) {\n _d.type = 'bar';\n }\n\n if (!_d.values) {\n _d.values = [];\n }\n\n const axisLine = {\n show: true,\n lineStyle: {}\n };\n\n const color = {\n lineStyle: {\n color: null\n },\n itemStyle: {\n color: null\n }\n };\n\n if (_d.color) {\n axisLine.lineStyle = {\n color: _d.color\n }\n\n color.lineStyle.color = _d.color;\n color.itemStyle.color = _d.color;\n }\n\n let position = 'right';\n let max: number | undefined = undefined;\n let min: number | undefined = undefined;\n let interval: number | undefined = undefined;\n let formatter = null\n const xName = _d.xAxi && _d.xAxi.name ? _d.xAxi.name : _d.label;\n let yName = _d.label;\n let show = true;\n\n if (_d.yAxi) {\n if (typeof _d.yAxi.show !== 'undefined' && _d.yAxi.show !== null) {\n show = Boolean(_d.yAxi.show);\n }\n\n formatter = _d.yAxi.onValueFormatter;\n position = _d.yAxi.position ? _d.yAxi.position : _d.type === 'bar' ? 'right' : 'left';\n if (_d.yAxi.name) {\n yName = _d.yAxi.name;\n }\n\n if (!show) {\n formatter = null;\n } else {\n if (_d.yAxi.max || _d.yAxi.max === 0) {\n max = _d.yAxi.max;\n }\n \n if (_d.yAxi.min || _d.yAxi.min === 0) {\n min = _d.yAxi.min;\n }\n\n if (_d.yAxi.interval || _d.yAxi.interval === 0) {\n interval = _d.yAxi.interval;\n }\n }\n }\n\n yAxis.push({\n type: 'value',\n name: yName,\n id: xName,\n offset: show && (position === 'left' && this.#gridLeft > 0 || position === 'right' && this.#gridRight > 0) && _d.yAxi && typeof _d.yAxi.width !== 'undefined' ? _d.yAxi.width : show && (position === 'left' && this.#gridLeft > 0 || position === 'right' && this.#gridRight > 0) ? Y_AXIS_OFFSET : 0, show,\n position,\n min,\n max,\n interval,\n alignTicks: true,\n axisLine,\n axisLabel: { formatter }\n });\n\n if (show) {\n if (position === 'right') {\n this.#gridRight += typeof _d.yAxi.width !== 'undefined' ? _d.yAxi.width : Y_AXIS_OFFSET;\n } else {\n this.#gridLeft += typeof _d.yAxi.width !== 'undefined' ? _d.yAxi.width : Y_AXIS_OFFSET;\n }\n }\n \n legends.push(xName);\n\n let yAxisIndex = _i;\n if (_d.stack) {\n const _stack = this.#chartStacks.find(_stack => _stack === _d.stack);\n if (_stack) {\n const index = series.findIndex(_s => _s.stack === _stack);\n if (index !== -1) {\n yAxisIndex = series[index].yAxisIndex;\n }\n } else {\n this.#chartStacks.push(_d.stack);\n }\n } else {\n const _name = this.#chartNames.find(_name => _name === yName);\n if (_name) {\n const index = this.#data.findIndex(_d => (_d.yAxi && _d.yAxi.name === _name) || (_d.label === _name));\n if (index !== -1) {\n yAxisIndex = index;\n }\n } else {\n this.#chartNames.push(yName);\n }\n }\n\n if (_d.barMinHeight) {\n const values = _d.values.map(v => v > 0 ? v : '-'); // use '-' for missing data\n const emptyValues = _d.values.map(v => v === 0 ? 0 : '-');\n\n series.push({...{\n type: _d.type,\n name: xName,\n yAxisIndex,\n smooth: !_d.discrete,\n stack: _d.stack,\n barMinHeight: _d.barMinHeight,\n data: values\n }, ...color});\n\n series.push({...{\n type: _d.type,\n name: '-',\n yAxisIndex,\n smooth: !_d.discrete,\n stack: _d.stack,\n data: emptyValues\n }, ...color});\n } else {\n series.push({...{\n type: _d.type,\n name: xName,\n yAxisIndex,\n smooth: !_d.discrete,\n stack: _d.stack,\n data: _d.values\n }, ...color});\n }\n });\n\n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'axis',\n appendToBody: true,\n axisPointer: {\n type: this.axisPointer\n },\n formatter: this.tooltip?.formatter\n }\n\n const grid = {\n left: this.#gridLeft,\n right: this.#gridRight,\n };\n\n const xAxis = [\n {\n type: 'category',\n axisTick: {\n alignWithLabel: true\n },\n data: this.xAxis?.labels,\n axisLabel: {\n formatter: this.xAxis?.formatter,\n }\n }\n ];\n\n const legend = {\n type: 'scroll',\n bottom: 0,\n data: legends\n };\n const textColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-tooltip-color');\n const textBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-tooltip-background-color');\n const borderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-tooltip-border-color');\n\n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download?.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n this.#popup.open({\n disableCloseButton: true,\n disableBackdropClose: true,\n component: BizyBarLineChartPopupComponent,\n data: {\n download: {\n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n grid: {\n left: this.#gridLeft,\n right: this.#gridRight\n },\n option: this.#echarts.getOption()\n }\n });\n this.onDownload.emit();\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n\n const option: any = {\n tooltip,\n legend,\n grid,\n xAxis,\n yAxis,\n toolbox,\n series\n };\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n });\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-bar-line-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyBarLineChartComponent } from './bar-line-chart.component';\nimport { BizyBarLineChartPopupComponent } from './bar-line-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyBarLineChartComponent,\n BizyBarLineChartPopupComponent\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyBarLineChartModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IBizyBreadcrumb } from './breadcrumb.types';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-breadcrumb',\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyBreadcrumbComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n @Output() onSelect = new EventEmitter<IBizyBreadcrumb>();\n _breadcrumbs: Array<IBizyBreadcrumb> = [];\n showGoBack: boolean = false;\n\n @Input() set breadcrumbs(breadcrumbs: Array<IBizyBreadcrumb>) {\n if (breadcrumbs) {\n this._breadcrumbs = breadcrumbs;\n this.showGoBack = false;\n let counter = 0;\n for (let i = 0; i < breadcrumbs.length; i++) {\n if (!breadcrumbs[i].skip) {\n counter++;\n }\n\n if (counter > 1) {\n this.showGoBack = true;\n this.#ref.detectChanges();\n break;\n }\n }\n }\n }\n\n goTo(breadcrumb: IBizyBreadcrumb) {\n if (breadcrumb.skip) {\n return;\n }\n\n this.onSelect.emit(breadcrumb);\n }\n\n goBack() {\n if (!this._breadcrumbs[this._breadcrumbs.length - 2]) {\n return;\n }\n\n for (let i = this._breadcrumbs.length; i > 0; i--) {\n if (!this._breadcrumbs[i - 2].skip) {\n this.onSelect.emit(this._breadcrumbs[i - 2]);\n break;\n }\n }\n }\n\n getNativeElement() {\n return this.#elementRef.nativeElement;\n }\n}\n","<ul class=\"bizy-breadcrumb\">\n @for (breadcrumb of _breadcrumbs; track i; let last = $last; let i = $index) {\n @if (breadcrumb.label) {\n <li>\n <button\n class=\"bizy-breadcrumb__link\"\n [ngClass]=\"{'bizy-breadcrumb__link--skip': breadcrumb.skip || last}\"\n type=\"button\"\n (click)=\"goTo(breadcrumb)\">\n {{breadcrumb.label}}\n </button>\n @if (last && showGoBack) {\n <button\n type=\"button\"\n class=\"bizy-breadcrumb__go-back\"\n (click)=\"goBack()\">\n <svg\n class=\"bizy-breadcrumb__go-back__icon\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" stroke=\"none\"/>\n <path d=\"M9 11l-4 4l4 4m-4 -4h11a4 4 0 0 0 0 -8h-1\"/>\n </svg>\n </button>\n }\n </li>\n }\n }\n</ul>\n","import { NgModule } from '@angular/core';\nimport { BizyBreadcrumbComponent } from './breadcrumb.component';\n\nconst COMPONENTS: Array<any> = [\n BizyBreadcrumbComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyBreadcrumbModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-button',\n templateUrl: './button.html',\n styleUrls: ['./button.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyButtonComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-button-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() type: 'button' | 'submit' = 'button';\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _focused: boolean = false;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this._focused) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n [type]=\"type\"\n [id]=\"id\"\n (focus)=\"_focused = true\"\n (blur)=\"_focused = false\"\n class=\"bizy-button {{customClass}}\"\n [ngClass]=\"{'bizy-button--disabled': disabled}\"\n (click)=\"_focused = true; _onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n <span class=\"bizy-button__content\" (click)=\"_focused = true; _onSelect($event); $event.stopPropagation()\">\n <ng-content></ng-content>\n </span>\n \n</button>\n\n","import { NgModule } from '@angular/core';\nimport { BizyButtonComponent } from './button.component';\n\nconst COMPONENTS: Array<any> = [\n BizyButtonComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyButtonModule {}\n","export enum BIZY_CALENDAR_MODE {\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day'\n}\n\nexport enum BIZY_CALENDAR_DAY {\n SUNDAY = 0,\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6\n}\n\nexport enum BIZY_CALENDAR_EVENT_ACTION {\n DELETE = 'DELETE'\n}\n\n\nexport interface IBizyCalendarEvent {\n start: number;\n end: number;\n description?: string;\n id?: number | string;\n color?: string;\n backgroundColor?: string;\n customClass?: string;\n meta?: Record<string, unknown>;\n actions?: Array<BIZY_CALENDAR_EVENT_ACTION>;\n incrementsBadgeTotal?: boolean;\n}\n\nexport enum BIZY_CALENDAR_LANGUAGE {\n SPANISH = 'es',\n ENGLISH = 'en'\n}","import { CalendarNativeDateFormatter, DateFormatterParams } from 'angular-calendar';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class BizyCalendarFormatter extends CalendarNativeDateFormatter {\n override weekViewHour({ date, locale }: DateFormatterParams): string {\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit'\n }).format(date);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, TemplateRef } from '@angular/core';\nimport { BIZY_CALENDAR_MODE, IBizyCalendarEvent, BIZY_CALENDAR_LANGUAGE, BIZY_CALENDAR_EVENT_ACTION, BIZY_CALENDAR_DAY } from './calendar.types';\nimport { CalendarA11y, CalendarDateFormatter, CalendarEvent, CalendarEventAction, CalendarEventTitleFormatter, CalendarModule, CalendarMonthViewDay, CalendarUtils, DateAdapter } from 'angular-calendar';\nimport { Subject } from 'rxjs';\nimport { isSameDay, isSameMonth } from 'date-fns';\nimport { BizyCalendarFormatter } from './calendar.formatter';\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\nimport { CommonModule, registerLocaleData } from '@angular/common';\nimport localeEs from '@angular/common/locales/es';\n\nregisterLocaleData(localeEs);\n@Component({\n selector: 'bizy-calendar',\n templateUrl: './calendar.html',\n styleUrls: ['./calendar.css'],\n imports: [CommonModule, CalendarModule],\n providers: [\n CalendarUtils,\n CalendarA11y,\n CalendarEventTitleFormatter,\n {\n provide: DateAdapter,\n useFactory: adapterFactory,\n },\n {\n provide: CalendarDateFormatter,\n useClass: BizyCalendarFormatter\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyCalendarComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-calendar-${Math.random()}`;\n @Input() hideHeaderDate: boolean = false;\n @Input() preventExpand: boolean = false;\n @Input() dayStartHour: number = 0;\n @Input() dayEndHour: number = 24;\n @Input() hourMinutesDuration: number = 60;\n @Input() hourSegments: number = 2;\n @Input() language: BIZY_CALENDAR_LANGUAGE = BIZY_CALENDAR_LANGUAGE.SPANISH;\n @Input() excludeDays: Array<0 | 1 | 2 | 3 | 4 | 5 | 6> = [];\n @Input() weekendDays: Array<BIZY_CALENDAR_DAY> = [BIZY_CALENDAR_DAY.SATURDAY, BIZY_CALENDAR_DAY.SUNDAY];\n @Input() weekStartsOn: BIZY_CALENDAR_DAY = BIZY_CALENDAR_DAY.SUNDAY;\n @Input() mode: BIZY_CALENDAR_MODE = BIZY_CALENDAR_MODE.WEEK;\n @Input() customCalendarWeekEventTemplate: TemplateRef<any> | null = null;\n @Output() onEventSelect = new EventEmitter<IBizyCalendarEvent>();\n @Output() onDateSelect = new EventEmitter<{start: number, end: number, events: Array<IBizyCalendarEvent>}>();\n @Output() onEventDelete = new EventEmitter<{ event: IBizyCalendarEvent, sourceEvent: MouseEvent | KeyboardEvent }>();\n\n readonly BIZY_CALENDAR_MODE = BIZY_CALENDAR_MODE;\n\n _viewDate: Date = new Date();\n _activeDayIsOpen: boolean = false;\n\n _refresh = new Subject<void>();\n\n @Input() set viewDate(viewDate: number) {\n if (!viewDate) {\n return;\n }\n\n this._viewDate = new Date(viewDate);\n }\n\n _calendarEvents: Array<CalendarEvent> = [];\n _events: Array<IBizyCalendarEvent> = [];\n\n @Input() set events(events: Array<IBizyCalendarEvent>) {\n if (!events || events.length === 0) {\n return;\n }\n\n this._events.length = 0;\n\n this._calendarEvents = events.map(_event => {\n const id = _event.id || `bizy-calendar-event-${Math.random()}`;\n this._events.push({..._event, id})\n return {\n id,\n start: new Date(_event.start),\n end: new Date(_event.end),\n title: _event.description || '',\n color: {\n primary: _event.color,\n secondary: _event.backgroundColor\n },\n actions: this.#getCalendarEventActions(_event),\n allDay: false,\n cssClass: `bizy-calendar-event ${_event.customClass || ''}`,\n resizable: {\n beforeStart: false,\n afterEnd: false\n },\n draggable: false,\n meta: {\n incrementsBadgeTotal: _event.incrementsBadgeTotal ?? true,\n ..._event.meta\n }\n }\n })\n\n this._refresh.next();\n }\n\n beforeMonthViewRender({ body }: { body: CalendarMonthViewDay[] }): void {\n body.forEach((day) => {\n day.badgeTotal = day.events.filter(\n (event) => event.meta.incrementsBadgeTotal\n ).length;\n });\n }\n\n dayClicked({ date, events, isOpen }: { date: Date; events: CalendarEvent[]; isOpen: boolean }): void {\n if (this.preventExpand) {\n isOpen = false;\n this._activeDayIsOpen = false;\n } else if (isSameMonth(date, this._viewDate)) {\n if ((isSameDay(this._viewDate, date) && this._activeDayIsOpen === true) || events.length === 0) {\n this._activeDayIsOpen = false;\n } else {\n this._activeDayIsOpen = true;\n }\n\n this._viewDate = date;\n }\n\n const ids = events.map(_event => _event.id);\n\n const _events = this._events.filter(_event => ids.includes(_event.id));\n\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const startDate = startOfDay.getTime();\n const endOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n const endDate = endOfDay.getTime();\n\n this.onDateSelect.emit({\n start: startDate,\n end: endDate,\n events: _events\n })\n }\n\n eventClicked(event: CalendarEvent): void {\n const _event = this._events.find(_e => _e.id === event.id);\n if (!_event) {\n return;\n }\n\n this.onEventSelect.emit(_event)\n }\n\n dayHeaderClicked(date: Date): void {\n if (!date) {\n return;\n }\n\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const startDate = startOfDay.getTime();\n const endOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n const endDate = endOfDay.getTime();\n\n const _events = this._events.filter(_event => _event.start >= startDate && _event.end <= endDate);\n\n this.onDateSelect.emit({\n start: startDate,\n end: endDate,\n events: _events\n })\n }\n\n hourSegmentClicked(date: Date): void {\n if (!date) {\n return;\n }\n\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), 0, 0);\n const startDate = startOfDay.getTime();\n const endOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes() + this.hourMinutesDuration, 59, 999);\n const endDate = endOfDay.getTime();\n\n const _events = this._events.filter(_event => _event.start >= startDate && _event.end <= endDate);\n\n this.onDateSelect.emit({\n start: startDate,\n end: endDate,\n events: _events\n })\n }\n\n #getCalendarEventActions(event: IBizyCalendarEvent): Array<CalendarEventAction> {\n if (!event || !event.actions || event.actions.length === 0) {\n return [];\n }\n\n const actions: Array<CalendarEventAction> = [];\n\n if (event.actions.includes(BIZY_CALENDAR_EVENT_ACTION.DELETE)) {\n actions.push({\n label: `<div class=\"bizy-calendar-event-delete-action__icon\">\n <div class=\"bizy-calendar-event-delete-action__icon__trash-lid\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-container\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-line-1\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-line-2\"></div>\n <div class=\"bizy-calendar-event-delete-action__icon__trash-line-3\"></div>\n </div>`,\n a11yLabel: 'delete',\n onClick: ({ event, sourceEvent }: { event: CalendarEvent, sourceEvent: MouseEvent | KeyboardEvent }): void => {\n const _event = this._events.find(_e => _e.id === event.id);\n if (!_event) {\n return;\n }\n\n this.onEventDelete.emit({ event: _event, sourceEvent });\n },\n })\n }\n\n return actions;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-template\n #bizyCustomCalendarWeekEventTemplate\n let-weekEvent=\"weekEvent\"\n let-locale=\"locale\"\n let-eventClicked=\"eventClicked\"\n let-tooltipPlacement=\"tooltipPlacement\"\n let-tooltipTemplate=\"tooltipTemplate\"\n let-tooltipAppendToBody=\"tooltipAppendToBody\"\n let-tooltipDisabled=\"tooltipDisabled\">\n\n @if (customCalendarWeekEventTemplate) {\n <ng-container *ngTemplateOutlet=\"customCalendarWeekEventTemplate; context: { $implicit: { id: weekEvent.event.id, start: weekEvent.event.start, end: weekEvent.event.end, description: weekEvent.event.title, color: weekEvent.event.color.primary, backgroundColor: weekEvent.event.color.secondary, meta: weekEvent.event.meta}}\"></ng-container>\n }\n\n</ng-template>\n\n\n@switch (mode) {\n @case (BIZY_CALENDAR_MODE.MONTH) {\n <mwl-calendar-month-view\n [viewDate]=\"_viewDate\"\n [events]=\"_calendarEvents\"\n [weekendDays]=\"weekendDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [refresh]=\"_refresh\"\n [locale]=\"language\"\n [activeDayIsOpen]=\"_activeDayIsOpen\"\n (beforeViewRender)=\"beforeMonthViewRender($event)\"\n [excludeDays]=\"excludeDays\"\n (dayClicked)=\"dayClicked($event.day)\"\n (eventClicked)=\"eventClicked($event.event)\">\n </mwl-calendar-month-view>\n }\n @case (BIZY_CALENDAR_MODE.WEEK) {\n <mwl-calendar-week-view\n [ngClass]=\"{'bizy-calendar--hide-header-date': hideHeaderDate}\"\n [viewDate]=\"_viewDate\"\n [events]=\"_calendarEvents\"\n [weekendDays]=\"weekendDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourDuration]=\"hourMinutesDuration\"\n [hourSegments]=\"hourSegments\"\n [refresh]=\"_refresh\"\n [locale]=\"language\"\n [eventTemplate]=\"customCalendarWeekEventTemplate ? bizyCustomCalendarWeekEventTemplate : ''\"\n [excludeDays]=\"excludeDays\"\n (dayHeaderClicked)=\"dayHeaderClicked($event.day.date)\"\n (hourSegmentClicked)=\"hourSegmentClicked($event.date)\"\n (eventClicked)=\"eventClicked($event.event)\">\n </mwl-calendar-week-view>\n }\n @case (BIZY_CALENDAR_MODE.DAY) {\n <mwl-calendar-day-view\n [viewDate]=\"_viewDate\"\n [events]=\"_calendarEvents\"\n [weekendDays]=\"weekendDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourDuration]=\"hourMinutesDuration\"\n [hourSegments]=\"hourSegments\"\n [refresh]=\"_refresh\"\n [locale]=\"language\"\n [excludeDays]=\"excludeDays\"\n (hourSegmentClicked)=\"hourSegmentClicked($event.date)\"\n (eventClicked)=\"eventClicked($event.event)\">\n </mwl-calendar-day-view>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyCalendarComponent } from './calendar.component';\n\nconst COMPONENTS: Array<any> = [\n BizyCalendarComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyCalendarModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-card',\n templateUrl: './card.html',\n styleUrls: ['./card.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyCardComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-card-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n class=\"bizy-card {{customClass}}\"\n [ngClass]=\"{'bizy-card--disabled': disabled}\">\n\n <span class=\"bizy-card__header\">\n\n <span class=\"bizy-card__header__start bizy-card__slot\">\n <ng-content select=\"[slot=header-start]\"></ng-content>\n </span>\n\n <span class=\"bizy-card__header__end bizy-card__slot\">\n <ng-content select=\"[slot=header-end]\"></ng-content>\n </span>\n\n </span>\n\n <span class=\"bizy-card__content\">\n\n <ng-content></ng-content>\n\n </span>\n\n <span class=\"bizy-card__footer\">\n\n <span class=\"bizy-card__footer__start bizy-card__slot\">\n <ng-content select=\"[slot=footer-start]\"></ng-content>\n </span>\n\n <span class=\"bizy-card__footer__end bizy-card__slot\">\n <ng-content select=\"[slot=footer-end]\"></ng-content>\n </span>\n\n </span>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyCardComponent } from './card.component';\n\nconst COMPONENTS: Array<any> = [\n BizyCardComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyCardModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'bizy-checkbox',\n templateUrl: './checkbox.html',\n styleUrls: ['./checkbox.css'],\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyCheckboxComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-checkbox-${Math.random()}`;\n @Input() selected: boolean = false;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _checkboxId = `bizy-input-checkbox-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.selectedChange.emit(!this.selected);\n this.onSelect.emit(event)\n }\n}\n","<button \n type=\"button\" \n [id]=\"id\" \n (click)=\"_onSelect($event)\" \n (keyup.enter)=\"_onSelect($event)\" \n class=\"bizy-checkbox\"\n [class.bizy-checkbox--readonly]=\"readonly\"\n [class.bizy-checkbox--disabled]=\"disabled\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <input \n class=\"bizy-checkbox__input\" \n type=\"checkbox\" \n [id]=\"_checkboxId\" \n [disabled]=\"disabled\" \n [ngModel]=\"selected\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyCheckboxComponent } from './checkbox.component';\n\nconst COMPONENTS: Array<any> = [\n BizyCheckboxComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyCheckboxModule {}\n","\nimport { Component, ElementRef, inject } from '@angular/core';\n@Component({\n selector: 'bizy-content',\n templateUrl: 'content.html',\n styleUrls: ['content.css'],\n imports: []\n})\nexport class BizyContentComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { BizyContentComponent } from './content.component';\n\nconst COMPONENTS: Array<any> = [\n BizyContentComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyContentModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, Output, EventEmitter, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-input-option',\n templateUrl: './input-option.html',\n styleUrls: ['./input-option.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyInputOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-input-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() selected: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent): void {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n this.#ref.detectChanges();\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n [ngClass]=\"{'bizy-input-option--selected': selected, 'bizy-input-option--disabled': disabled}\"\n class=\"bizy-input-option {{customClass}}\">\n\n <span class=\"bizy-input-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>","import { Directive, ElementRef, Input, OnInit, OnDestroy, Inject } from '@angular/core';\nimport AutoNumeric from 'autonumeric';\n\n@Directive({\n selector: '[bizyCurrencyFormat]'\n})\nexport class BizyCurrencyFormatDirective implements OnInit, OnDestroy {\n @Input('bizyCurrencyFormat') bizyCurrencyFormat: boolean = false;\n @Input('bizyCurrencyOptions') options: AutoNumeric.Options = {};\n\n #autoNumericInstance!: AutoNumeric;\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n if (typeof this.bizyCurrencyFormat === 'undefined' || this.bizyCurrencyFormat === null || this.bizyCurrencyFormat === false) {\n return\n }\n\n this.#autoNumericInstance = new AutoNumeric(this.elementRef.nativeElement, this.options);\n this.elementRef.nativeElement.getValue = this.getValue;\n this.elementRef.nativeElement.setValue = this.setValue;\n }\n\n ngOnDestroy(): void {\n if (this.#autoNumericInstance) {\n this.#autoNumericInstance.remove();\n }\n }\n\n getValue = (): number => {\n return this.#autoNumericInstance.getNumber();\n }\n\n setValue = (value: number): void => {\n this.#autoNumericInstance.set(value);\n }\n}\n","import { takeUntil } from 'rxjs/operators';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild, ContentChildren, QueryList, inject } from '@angular/core';\nimport { Subject, Subscription, debounceTime, interval } from 'rxjs';\nimport { BizyInputOptionComponent } from './input-option/input-option.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BizyCurrencyFormatDirective } from '../../directives/currency-format.directive';\n\n@Component({\n selector: 'bizy-input',\n templateUrl: './input.html',\n styleUrls: ['./input.css'],\n imports: [CommonModule, FormsModule, OverlayModule, BizyCurrencyFormatDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyInputComponent implements OnDestroy {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyInputOptionComponent) options: QueryList<BizyInputOptionComponent>;\n @ViewChild('bizyInputWrapper') bizyInputWrapper: ElementRef;\n @ViewChild('bizyInput') bizyInput: ElementRef;\n @Input() id: string = `bizy-input-${Math.random()}`;\n @Input() name: string = `bizy-input-${Math.random()}`;\n @Input() type: 'text' | 'number' | 'email' | 'password' | 'tel' | 'textarea' | 'currency' = 'text';\n @Input() customClass: string = '';\n @Input() placeholder: string = '';\n @Input() debounceTime: number = 250;\n @Input() rows: number = 4;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Output() valueChange = new EventEmitter<string | number>();\n @Output() onChange = new EventEmitter<string | number>();\n @Output() onEnter = new EventEmitter<PointerEvent>();\n @Output() onBackspace = new EventEmitter<PointerEvent>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() onBlur = new EventEmitter<PointerEvent>();\n @Output() onFocus = new EventEmitter<PointerEvent>();\n\n @Input() set autofocus(autofocus: boolean) {\n if (typeof autofocus === 'undefined' || autofocus === null) {\n return;\n }\n\n this.setFocus(autofocus);\n }\n\n @Input() set value(value: string | number | null) {\n if (typeof value === 'undefined') {\n return;\n }\n\n if (this.type === 'currency') {\n this._currencyValue = Number(value);\n\n if (this.bizyInput && this.bizyInput.nativeElement && (<any>this.bizyInput.nativeElement).getValue) {\n const _value = (<any>this.bizyInput.nativeElement).getValue();\n if (_value !== this._currencyValue) {\n this.bizyInput.nativeElement.setValue(this._currencyValue);\n }\n }\n\n return;\n }\n\n this._value = value;\n }\n\n focused: boolean = false;\n touched: boolean = false;\n opened: boolean = false;\n _value: string | number | null = null;\n _currencyValue: number | null = null;\n\n currencyOptions = 'commaDecimalCharDotSeparator';\n\n #subscription = new Subscription();\n #optionSubscription = new Subscription();\n onChange$ = new Subject<string | number>();\n\n getWidth(): number {\n return this.bizyInputWrapper && this.bizyInputWrapper.nativeElement && this.bizyInputWrapper.nativeElement.offsetWidth ? this.bizyInputWrapper.nativeElement.offsetWidth : 0;\n }\n\n _onchange(value: string) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (this.type === 'currency' && (<any>this.bizyInput.nativeElement).getValue) {\n this._currencyValue = (<any>this.bizyInput.nativeElement).getValue()\n this.onChange$.next(this._currencyValue);\n return;\n }\n\n this.onChange$.next(value);\n }\n\n _onClick(event: PointerEvent) {\n this.onSelect.emit(event);\n this.onOpen()\n }\n\n _onEnter(event: PointerEvent) {\n if (this.disabled || this.readonly || !this.focused) {\n return;\n }\n\n this.onEnter.emit(event);\n }\n\n _onBlur(event: PointerEvent) {\n if (this.type === 'currency') {\n this.bizyInput.nativeElement.setValue(this._currencyValue);\n }\n\n setTimeout(() => {\n this.focused = false;\n this.touched = true;\n this.#ref.detectChanges();\n this.onBlur.emit(event);\n }, 250)\n }\n\n _onBackspace(event: PointerEvent) {\n setTimeout(() => {\n this.onBackspace.emit(event);\n }, 250)\n }\n\n _onFocus(event: PointerEvent) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.focused = true;\n this.#ref.detectChanges();\n this.onFocus.emit(event);\n }\n\n setTouched(touched: boolean) {\n this.touched = touched;\n this.#ref.detectChanges();\n }\n\n ngAfterViewInit() {\n if (this.type === 'currency'&& (<any>this.bizyInput.nativeElement).setValue) {\n this.bizyInput.nativeElement.setValue(this._currencyValue);\n }\n this.#subscription.add(this.onChange$.pipe(debounceTime(this.debounceTime)).subscribe(value => {\n this.valueChange.emit(value);\n this.onChange.emit(value);\n }))\n }\n\n onOpen() {\n if (this.disabled) {\n return;\n }\n\n this.opened = !this.opened;\n this.#ref.detectChanges();\n\n if (!this.options) {\n return;\n }\n\n this.#optionSubscription.unsubscribe();\n this.#optionSubscription = new Subscription();\n this.options.forEach(_option => {\n this.#optionSubscription.add(_option.onSelect.subscribe(() => {\n this.close();\n this.#ref.detectChanges();\n this.#optionSubscription.unsubscribe();\n }));\n });\n }\n\n setFocus(focus: boolean) {\n const interval$ = interval(300);\n const finish$ = new Subject<void>();\n this.#subscription.add(interval$.pipe(takeUntil(finish$)).subscribe(() => {\n if (this.bizyInput && this.bizyInput.nativeElement) {\n if (focus) {\n this.bizyInput.nativeElement.focus();\n this.focused = true;\n } else {\n this.bizyInput.nativeElement.blur();\n this.focused = false;\n }\n \n finish$.next();\n finish$.complete();\n this.#ref.detectChanges();\n }\n }))\n }\n\n close = (event?: PointerEvent & {target: {id: string}}, button?: HTMLButtonElement) => {\n if (button && event && event.target && event.target === button) {\n return;\n }\n\n this.opened = false;\n this.#ref.detectChanges();\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#optionSubscription.unsubscribe();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button\n #bizyInputWrapper\n type=\"button\"\n (click)=\"_onClick($event)\"\n (keyup)=\"_onClick($event)\"\n class=\"bizy-input {{customClass}}\"\n (focus)=\"bizyInput.nativeElement.focus()\"\n cdkOverlayOrigin\n #bizyInputTrigger=\"cdkOverlayOrigin\"\n [ngClass]=\"{'bizy-input--disabled': disabled, 'bizy-input--negative': type === 'currency' && _currencyValue < 0}\">\n\n <span class=\"bizy-input__header\">\n <ng-content select=\"[slot=header]\"></ng-content>\n </span>\n\n <span class=\"bizy-input__content\" [ngClass]=\"{'bizy-input__content--readonly': readonly}\">\n\n <span class=\"bizy-input__content__prefix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </span>\n\n @if (type !== 'textarea') {\n <input\n #bizyInput\n [id]=\"id\"\n class=\"bizy-input__content__input\"\n [type]=\"type === 'currency' ? 'tel' : type\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [bizyCurrencyFormat]=\"type === 'currency'\"\n [bizyCurrencyOptions]=\"currencyOptions\"\n [bizyOnlyPhoneDigits]=\"type === 'tel'\"\n (blur)=\"_onBlur($event)\"\n (focus)=\"_onFocus($event)\"\n (keyup.enter)=\"_onEnter($event)\"\n (keyup.backspace)=\"_onBackspace($event)\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onchange($event)\"/>\n }\n\n @if (type === 'textarea') {\n <textarea\n #bizyInput\n [id]=\"id\"\n [rows]=\"rows\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n class=\"bizy-input__content__input\"\n (blur)=\"_onBlur($event)\"\n (focus)=\"_onFocus($event)\"\n (keyup.enter)=\"_onEnter($event)\"\n (keyup.backspace)=\"_onBackspace($event)\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"_onchange($event)\">\n </textarea>\n }\n\n <span class=\"bizy-input__content__suffix\">\n <ng-content select=\"[slot=suffix]\"></ng-content>\n </span>\n\n </span>\n\n <span class=\"bizy-input__bottom-line\" [ngClass]=\"{'bizy-input__bottom-line--visible': focused}\"></span>\n\n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayMinWidth]=\"bizyInputWrapper?.offsetWidth\"\n [cdkConnectedOverlayOrigin]=\"bizyInputTrigger\"\n (overlayOutsideClick)=\"close($event, bizyInputWrapper)\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-input__options\">\n\n <ng-content select=\"bizy-input-option\"></ng-content>\n\n </span>\n\n</ng-template>\n\n@if (touched) {\n <span class=\"bizy-input__errors\">\n <ng-content select=\"[slot=error]\"></ng-content>\n </span>\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild } from '@angular/core';\nimport flatpickr from \"flatpickr\";\nimport monthSelectPlugin from 'flatpickr/dist/plugins/monthSelect/index.js';\nimport { Spanish } from \"flatpickr/dist/l10n/es.js\"\nimport { BizyInputComponent } from '../input/input.component';\nimport { CommonModule, DatePipe } from '@angular/common';\n\n\n@Component({\n selector: 'bizy-date-picker',\n templateUrl: './date-picker.html',\n styleUrls: ['./date-picker.css'],\n imports: [CommonModule, BizyInputComponent],\n providers: [DatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyDatePickerComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #datePipe = inject(DatePipe);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild('bizyDatePicker') private bizyDatePicker: BizyInputComponent;\n @Input() id: string = `bizy-date-picker-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() opened: boolean = false;\n @Input() minDate: number | null = null;\n @Input() maxDate: number | null = null;\n @Input() enableSeconds: boolean = false;\n @Output() dateChange = new EventEmitter<number>();\n @Output() rangeChange = new EventEmitter<{from: number, to: number}>();\n @Output() onChange = new EventEmitter<number | {from: number, to: number}>();\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onOpen = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n dateFormat: string = 'Y-m-d';\n datePipeFormat: string = 'yyyy-MM-dd'\n enableTime: boolean = false;\n started: boolean = false;\n noCalendar: boolean = true;\n mode: 'single' | 'range' = 'single';\n dates: Array<number> = [Date.now()];\n time: number = Date.now();\n\n get touched(): boolean {\n return this.bizyDatePicker ? this.bizyDatePicker.touched : false;\n }\n\n @Input() set date(date: number) {\n if (typeof date === 'undefined' || date === null) {\n return;\n }\n\n this.mode = 'single';\n this.dates = [date];\n this.time = date;\n this.value = this.#datePipe.transform(date, this.datePipeFormat, undefined, 'es-AR');\n if (!this.enableTime || !this.started) {\n this.#start();\n }\n }\n\n @Input() set range(range: {from: number, to: number}) {\n if (!range) {\n return;\n }\n\n this.mode = 'range';\n this.dates = [range.from, range.to];\n this.time = range.from;\n this.value = `${this.#datePipe.transform(range.from, this.datePipeFormat, undefined, 'es-AR')} - ${this.#datePipe.transform(range.to, this.datePipeFormat, undefined, 'es-AR')}`; \n this.#start()\n }\n\n value: string = '';\n\n @Input() set type(type: 'date' | 'date-time' | 'time' | 'year-month') {\n if (!type) {\n return;\n }\n\n switch (type) {\n case 'date':\n this.dateFormat = 'Y-m-d';\n this.datePipeFormat = 'yyyy-MM-dd';\n this.enableTime = false;\n this.noCalendar = false;\n break;\n case 'date-time':\n this.dateFormat = 'Y-m-d H:i:S';\n this.datePipeFormat = this.enableSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm';\n this.enableTime = true;\n this.noCalendar = false;\n break;\n case 'time':\n this.dateFormat = 'H:i:S';\n this.datePipeFormat = this.enableSeconds ? 'HH:mm:ss' : 'HH:mm';\n this.enableTime = true;\n this.noCalendar = true;\n break;\n case 'year-month':\n this.dateFormat = 'Y-M';\n this.datePipeFormat = 'yyyy MMMM';\n this.enableTime = false;\n this.noCalendar = false;\n break;\n default:\n this.dateFormat = 'Y-m-d';\n this.datePipeFormat = 'yyyy-MM-dd';\n this.enableTime = false;\n this.noCalendar = false;\n }\n }\n\n ngAfterViewInit() {\n this.#start()\n }\n\n #start() {\n if (this.bizyDatePicker && this.bizyDatePicker.bizyInputWrapper && this.bizyDatePicker.bizyInputWrapper.nativeElement) {\n const plugins = [];\n\n if (this.dateFormat === 'Y-M') {\n plugins.push(monthSelectPlugin({\n shorthand: true\n }));\n }\n\n flatpickr(this.bizyDatePicker.bizyInputWrapper.nativeElement, {\n locale: Spanish,\n mode: this.mode,\n dateFormat: this.dateFormat,\n enableTime: this.enableTime,\n enableSeconds: this.enableSeconds,\n plugins,\n minDate: this.minDate,\n maxDate: this.maxDate,\n noCalendar: this.noCalendar,\n disableMobile: true,\n time_24hr: true,\n defaultDate: this.mode === 'single' ? new Date(this.dates[0]) : this.dates.map(_date => new Date(_date)),\n defaultHour: this.#getHour(this.time),\n defaultMinute: this.#getMinute(this.time),\n onChange: (selectedDates: Array<Date>) => {\n if (this.mode === 'single' && selectedDates[0]) {\n const date = new Date(selectedDates[0]);\n this.dateChange.emit(date.getTime());\n this.onChange.emit(date.getTime());\n } else if (selectedDates[0] && selectedDates[1]) {\n const from = new Date(selectedDates[0]);\n const to = new Date(selectedDates[1]);\n to.setHours(23, 59, 59, 999);\n const range = {from: from.getTime(), to: to.getTime()};\n this.rangeChange.emit(range);\n this.onChange.emit(range);\n }\n },\n onOpen: () => {\n this.opened = true;\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n },\n onClose: () => {\n this.opened = false;\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n }\n });\n\n this.started = true;\n }\n }\n\n setTouched(touched: boolean) {\n if (this.bizyDatePicker) {\n this.bizyDatePicker.setTouched(touched);\n this.#ref.detectChanges();\n }\n }\n \n getNativeElement = () => this.#elementRef?.nativeElement;\n\n #getHour(time: number): number {\n const date = new Date(time);\n return date.getHours();\n }\n\n #getMinute(time: number): number {\n const date = new Date(time);\n return date.getMinutes();\n }\n}","<bizy-input\n #bizyDatePicker\n [readonly]=\"true\"\n [disabled]=\"disabled\"\n (onSelect)=\"onSelect.emit($event)\"\n [value]=\"value\"\n [id]=\"id\"\n class=\"bizy-date-picker {{customClass}}\">\n\n <svg\n slot=\"suffix\"\n id=\"bizy-date-picker-arrow\"\n class=\"bizy-date-picker__arrow\"\n [ngClass]=\"{'bizy-date-picker__arrow--opened': opened}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\">\n <path d=\"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"/>\n </svg>\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=header]\"></ng-content>\n </ng-container>\n\n <ng-container slot=\"suffix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </ng-container>\n\n @if (touched) {\n <ng-container slot=\"error\">\n <ng-content select=\"[slot=error]\"></ng-content>\n </ng-container>\n }\n\n</bizy-input>\n","import { NgModule } from '@angular/core';\nimport { BizyDatePickerComponent } from './date-picker.component';\n\nconst COMPONENTS: Array<any> = [\n BizyDatePickerComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\n\nexport class BizyDatePickerModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-donut-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyDonutChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {show: boolean, label: string, name: string}\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({\n ...data.option,\n series: [{\n ...data.option.series[0],\n minAngle: 1,\n label: {\n ...data.option.series[0].label,\n width: 'none',\n overflow: 'break',\n },\n labelLine: {\n show: data.option.series[0].labelLine?.show,\n length: 50,\n length2: 50\n },\n labelLayout() {\n return { \n moverOverlap: 'shiftY',\n hideOverlap: false\n };\n },\n }], \n toolbox: {\n show: true,\n feature: {\n mySaveAsImage: {\n show: data.download.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: data.download.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n });\n });\n }, 500);\n }\n }\n }\n }\n });\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Output,\n Renderer2,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { IBizyDonutChartData } from './donut-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { BehaviorSubject, Subject, Subscription, auditTime, filter, skip, take, throttleTime } from 'rxjs';\nimport { BizyDonutChartPopupComponent } from './donut-chart-popup.component';\nimport { BizyPopupService } from '../popup';\n\nconst EMPTY_CHART = [0];\nconst DEFAULT_CHART_SIZE = '300px';\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n}\n\nconst DEFAULT_EXPAND = {\n show: true,\n label: 'Expandir'\n}\n\nconst DEFAULT_TOOLTIP = {\n show: true\n}\n\nconst DEFAULT_LEGEND = {\n show: true,\n orient: 'vertical' as 'vertical' | 'horizontal',\n position: {\n x: 'auto' as 'left' | 'right' | 'center',\n y: 'auto' as 'top' | 'bottom' | 'center'\n }\n};\n\nconst DEFAULT_LABEL = {\n show: false,\n overflow: 'break' as 'break' | 'truncate',\n line: true\n}\n\n@Component({\n selector: 'bizy-donut-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyDonutChartComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() centerLabel: string | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() legend: {show?: boolean, orient?: 'vertical' | 'horizontal', position?: {x: 'left' | 'right' | 'center', y: 'top' | 'bottom' | 'center'}} = DEFAULT_LEGEND;\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() expand: { show?: boolean, label?: string} = DEFAULT_EXPAND;\n @Input() label: { show?: boolean, overflow?: 'break' | 'truncate', line?: boolean, formatter?: (item: any ) => string} = DEFAULT_LABEL;\n @Output() onSelect = new EventEmitter<string>();\n @Output() onDownload = new EventEmitter<void>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<{name: string, value: number, itemStyle: {color?: string}}> | typeof EMPTY_CHART = EMPTY_CHART;\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyDonutChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n\n this.#setChartData(EMPTY_CHART);\n }\n }\n\n async #setChartData(data: Array<IBizyDonutChartData> | typeof EMPTY_CHART) {\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n /**\n * setTimeout fix angular render problem\n */\n setTimeout(() => {\n this.#createChartContainer()\n \n if (!this.#chartContainer) {\n return;\n }\n \n if (data && data.length > 0 && data[0] !== 0) {\n this.#data = [];\n (<Array<IBizyDonutChartData>>data).forEach(_d => {\n if (!_d.value) {\n _d.value = 0;\n }\n \n if (!_d.name) {\n _d.name = '---'\n }\n \n const itemStyle = _d.color ? {color: _d.color} : {};\n \n (<Array<{name: string, value: number, itemStyle: {color?: string}}>>this.#data).push({\n name: _d.name,\n value: _d.value,\n itemStyle\n })\n });\n } else {\n this.#data = EMPTY_CHART;\n }\n \n const itemStyle = {\n borderRadius: 10,\n borderColor: '#fff',\n borderWidth: 2\n }\n \n const label = {\n show: this.label?.show ?? DEFAULT_LABEL.show,\n overflow: this.label?.overflow ?? DEFAULT_LABEL.overflow,\n position: 'center',\n formatter: this.label?.formatter\n };\n\n const labelLine = {\n show: this.label?.line ?? DEFAULT_LABEL.line\n }\n \n const series = [{\n type: 'pie',\n radius: ['50%', '70%'],\n center: ['50%', '50%'],\n data: this.#data,\n itemStyle,\n label,\n labelLine\n }];\n \n const textColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-donut-chart-tooltip-color');\n const textBackgroundColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-donut-chart-tooltip-background-color');\n const borderColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-donut-chart-tooltip-border-color');\n \n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n myExpandChart: {\n show: this.expand.show ?? DEFAULT_EXPAND.show,\n icon: 'path://M264 96L120 96C106.7 96 96 106.7 96 120L96 264C96 273.7 101.8 282.5 110.8 286.2C119.8 289.9 130.1 287.8 137 281L177 241L256 320L177 399L137 359C130.1 352.1 119.8 350.1 110.8 353.8C101.8 357.5 96 366.3 96 376L96 520C96 533.3 106.7 544 120 544L264 544C273.7 544 282.5 538.2 286.2 529.2C289.9 520.2 287.9 509.9 281 503L241 463L320 384L399 463L359 503C352.1 509.9 350.1 520.2 353.8 529.2C357.5 538.2 366.3 544 376 544L520 544C533.3 544 544 533.3 544 520L544 376C544 366.3 538.2 357.5 529.2 353.8C520.2 350.1 509.9 352.1 503 359L463 399L384 320L463 241L503 281C509.9 287.9 520.2 289.9 529.2 286.2C538.2 282.5 544 273.7 544 264L544 120C544 106.7 533.3 96 520 96L376 96C366.3 96 357.5 101.8 353.8 110.8C350.1 119.8 352.2 130.1 359 137L399 177L320 256L241 177L281 137C287.9 130.1 289.9 119.8 286.2 110.8C282.5 101.8 273.7 96 264 96z',\n title: this.expand.label ?? DEFAULT_EXPAND.label,\n onclick: () => {\n this.#popup.open({\n component: BizyDonutChartPopupComponent,\n data: {\n download: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show, \n label: this.download?.label ?? DEFAULT_DOWNLOAD.label, \n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n option: this.#echarts.getOption()\n }\n })\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n \n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n };\n \n let legend = {\n show: this.legend?.show ?? DEFAULT_LEGEND.show,\n orient: this.legend?.orient ?? DEFAULT_LEGEND.orient,\n left: this.legend?.position ? this.legend?.position.x : DEFAULT_LEGEND.position.x,\n top: this.legend?.position ? this.legend?.position.y : DEFAULT_LEGEND.position.y,\n };\n \n let graphic: any;\n if (this.centerLabel) {\n let centerLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-donut-chart-center-label-color');\n let { width, height } = this.#chartContainer.getBoundingClientRect();\n let base = Math.min(width, height);\n let fontSize = base / 6;\n graphic = {\n type: 'text',\n left: 'center',\n top: 'center',\n style: {\n text: this.centerLabel,\n fill: centerLabelColor,\n textAlign: 'center',\n fontSize,\n fontWeight: 'bold'\n }\n };\n }\n \n const option: any = {\n tooltip,\n toolbox,\n legend,\n series,\n graphic\n };\n \n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...option, series: option.series.map(_serie => { return {..._serie, data: this.#data}})});\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n });\n })\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-donut-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-donut-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth * 0.99}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BizyDonutChartComponent } from './donut-chart.component';\nimport { BizyDonutChartPopupComponent } from './donut-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyDonutChartComponent,\n BizyDonutChartPopupComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyDonutChartModule {}\n","import Uppy, { ErrorResponse, SuccessResponse, UppyFile } from '@uppy/core';\nimport { Observable, Subject } from 'rxjs';\nimport { Injectable, Renderer2, inject, DOCUMENT } from '@angular/core';\nimport es_ES from '@uppy/locales/lib/es_ES';\nimport en_US from '@uppy/locales/lib/en_US';\nimport Dashboard from '@uppy/dashboard';\nimport XHRUpload from '@uppy/xhr-upload';\n\n\nconst ES = { \n ...es_ES,\n strings: {\n ...es_ES.strings,\n noDuplicates: 'Archivo duplicado: \\'%{fileName}\\'',\n browseFiles: 'buscar archivo',\n dropPasteFiles: 'Soltar archivo aquí, pegar o %{browse}'\n\n }\n};\n\nconst EN = { \n ...en_US,\n strings: {\n ...en_US.strings,\n noDuplicates: 'Duplicated file: \\'%{fileName}\\'',\n browseFiles: 'browse file',\n dropPasteFiles: 'Drop a file here or %{browse}'\n }\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyFileUploaderService {\n #renderer = inject(Renderer2);\n #document = inject(DOCUMENT);\n #fileLoaded = new Subject<UppyFile>();\n #fileRemoved = new Subject<UppyFile>();\n #upload = new Subject<void>();\n #uploadSuccess = new Subject<{file: UppyFile, response: SuccessResponse}>();\n #error = new Subject<{ file?: UppyFile; error: Error, response?: ErrorResponse }>();\n #cancelAll = new Subject<void>();\n #complete = new Subject<{ successful: Array<UppyFile>; failed: Array<UppyFile> }>();\n #disableLocalFiles: boolean = false;\n\n #uppy: Uppy | null = null;\n\n get fileLoaded$(): Observable<UppyFile> {\n return this.#fileLoaded.asObservable();\n }\n\n get fileRemoved$(): Observable<UppyFile> {\n return this.#fileRemoved.asObservable();\n }\n\n get upload$(): Observable<void> {\n return this.#upload.asObservable();\n }\n\n get uploadSuccess$(): Observable<{file: UppyFile, response: SuccessResponse}> {\n return this.#uploadSuccess.asObservable();\n }\n\n get error$(): Observable<{ file?: UppyFile; error: Error }> {\n return this.#error.asObservable();\n }\n\n get cancelAll$(): Observable<void> {\n return this.#cancelAll.asObservable();\n }\n\n get complete$(): Observable<{ successful: Array<UppyFile>; failed: Array<UppyFile> }> {\n return this.#complete.asObservable();\n }\n\n createFileUploader(data: {\n maxFileSize: number | null;\n minFileSize: number | null;\n maxTotalFileSize: number | null;\n maxNumberOfFiles: number | null;\n minNumberOfFiles: number | null;\n dragDropAreaWidth: string;\n dragDropAreaHeight: string;\n allowedFileTypes: Array<string>;\n language: 'es' | 'en';\n templateId: string;\n hideCancelButton: boolean,\n hideUploadButton: boolean,\n hidePauseResumeButton: boolean,\n disableLocalFiles: boolean,\n headers: Record<string, string>;\n }): void {\n const locale = data.language === 'es' ? ES : EN;\n this.#disableLocalFiles = data.disableLocalFiles;\n this.#uppy = new Uppy({\n locale,\n infoTimeout: 2500,\n restrictions: {\n maxFileSize: data.maxFileSize,\n minFileSize: data.minFileSize,\n maxTotalFileSize: data.maxTotalFileSize,\n maxNumberOfFiles: data.maxNumberOfFiles,\n minNumberOfFiles: data.minNumberOfFiles,\n allowedFileTypes: data.allowedFileTypes\n }\n })\n .use(Dashboard, {\n inline: true,\n singleFileFullScreen: false,\n target: `#${data.templateId}`,\n width: data.dragDropAreaWidth,\n height: data.dragDropAreaHeight,\n hideCancelButton: data.hideCancelButton,\n hideUploadButton: data.hideUploadButton,\n hidePauseResumeButton: data.hidePauseResumeButton,\n disableLocalFiles: data.disableLocalFiles\n })\n .use(XHRUpload, {\n endpoint: '',\n headers: data.headers,\n getResponseData: (responseText, response) => {\n return {\n fileId: responseText,\n response\n };\n }\n })\n .on('file-added', file => {\n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n this.#fileLoaded.next(file);\n })\n .on('file-removed', file => {\n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n this.#fileRemoved.next(file);\n })\n .on('upload', data => {\n this.#upload.next();\n })\n .on('upload-success', (file, response) => {\n if (file) {\n this.#uploadSuccess.next({file, response});\n }\n })\n .on('upload-error', (file, error, response) => {\n this.#error.next({ file, error, response });\n })\n .on('restriction-failed', (file, error) => {\n this.#error.next({ file, error });\n })\n .on('error', error => {\n this.#error.next({ error });\n })\n .on('cancel-all', () => {\n this.#cancelAll.next();\n })\n .on('complete', result => {\n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n this.#complete.next(result);\n });\n \n this.#removeUnnecessaryOptions(this.#disableLocalFiles);\n }\n\n load = (data: { id: string; file: File }): void => {\n if (!this.#uppy) {\n return;\n }\n\n this.#uppy.addFile({\n name: data.file.name, // File name\n type: data.file.type, // File type\n data: data.file, // File blob\n meta: {\n // Optional, store the directory path of a file so Uppy can tell identical files in different directories apart.\n relativePath: data.file.webkitRelativePath,\n referenceId: data.id\n },\n source: 'Local', // Optional, determines the source of the file, for example, Instagram.\n isRemote: false // Optional, set to true if actual file is not in the browser, but on some remote server, for example,\n // when using companion in combination with Instagram.\n });\n }\n\n disable(value: boolean) {\n if (!this.#uppy) {\n return;\n }\n\n const dashboard = this.#uppy.getPlugin('Dashboard');\n dashboard.setOptions({ disabled: value });\n }\n\n upload = (data: {endpoint: string, headers?: Record<string,string>}) => {\n if (!this.#uppy) {\n return;\n }\n\n this.#uppy.getPlugin('XHRUpload')!.setOptions({\n endpoint: data.endpoint,\n headers: data.headers ?? {}\n });\n this.#uppy.upload();\n }\n\n cleanAllFiles = () => {\n if (!this.#uppy) {\n return;\n }\n\n this.#uppy.cancelAll();\n }\n\n #removeUnnecessaryOptions = (remove: boolean) => {\n setTimeout(() => {\n if (!remove) {\n return;\n }\n\n const browseButton = this.#document.getElementsByClassName('uppy-Dashboard-browse')[0];\n if (browseButton) {\n this.#renderer.setStyle(browseButton, 'display', 'none');\n }\n\n const dragAndDropText = this.#document.getElementsByClassName('uppy-Dashboard-AddFiles-title')[0];\n if (dragAndDropText) {\n this.#renderer.setStyle(dragAndDropText, 'display', 'none');\n }\n\n const addMoreFilesButton = this.#document.getElementsByClassName(\n 'uppy-DashboardContent-addMore'\n )[0];\n if (addMoreFilesButton) {\n this.#renderer.setStyle(addMoreFilesButton, 'display', 'none');\n }\n\n const doneButton = this.#document.getElementsByClassName('uppy-StatusBar-actionBtn--done')[0];\n if (doneButton) {\n this.#renderer.setStyle(doneButton, 'display', 'none');\n }\n }, 0);\n }\n}\n","import { Subject, Subscription } from 'rxjs';\nimport { UppyFile } from '@uppy/core';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, OnDestroy, Output } from '@angular/core';\nimport { BizyFileUploaderService } from './file-uploader.service';\n@Component({\n selector: 'bizy-file-uploader',\n template: '<div [id]=\"TEMPLATE_ID\"></div>',\n providers: [BizyFileUploaderService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFileUploaderComponent implements AfterViewInit, OnDestroy {\n readonly #elementRef = inject(ElementRef);\n readonly #fileUploader = inject(BizyFileUploaderService);\n @Input() dragDropAreaWidth: string = '100%';\n @Input() dragDropAreaHeight: string = '16rem';\n @Input() language: 'es' | 'en' = 'es';\n @Input() headers: Record<string, string> = {};\n @Input() maxFileSize: number | null = null;\n @Input() minFileSize: number | null = null;\n @Input() maxTotalFileSize: number | null = 31458000; // 30MB\n @Input() maxNumberOfFiles: number | null = null;\n @Input() minNumberOfFiles: number | null = null;\n @Input() allowedFileTypes = ['.wav'];\n @Input() hideUploadButton: boolean = true;\n @Input() hidePauseResumeButton: boolean = true;\n @Input() hideCancelButton: boolean = false;\n @Input() disableLocalFiles: boolean = false;\n @Input() load: Subject<{id: string; file: File}>;\n @Input() upload: Subject<{endpoint: string, headers?: Record<string,string>}>;\n\n @Input() set disabled(value: boolean) {\n this.#fileUploader.disable(Boolean(value));\n };\n\n @Output() completed = new EventEmitter<{successful: Array<{fileId: string, meta: unknown}>, failed: Array<{fileId: string, meta: unknown}>}>();\n @Output() loadedFiles = new EventEmitter<Array<UppyFile>>();\n \n\n #subscription = new Subscription();\n #files: Set<UppyFile> = new Set();\n\n readonly TEMPLATE_ID = 'bizy-file-uploader-template';\n\n ngAfterViewInit(): void {\n this.#fileUploader.createFileUploader({\n maxFileSize: this.maxFileSize,\n minFileSize: this.minFileSize,\n maxTotalFileSize: this.maxTotalFileSize,\n maxNumberOfFiles: this.maxNumberOfFiles,\n minNumberOfFiles: this.minNumberOfFiles,\n dragDropAreaWidth: this.dragDropAreaWidth,\n dragDropAreaHeight: this.dragDropAreaHeight,\n allowedFileTypes: this.allowedFileTypes,\n language: this.language,\n templateId: this.TEMPLATE_ID,\n hideCancelButton: this.hideCancelButton,\n hideUploadButton: this.hideUploadButton,\n hidePauseResumeButton: this.hidePauseResumeButton,\n disableLocalFiles: this.disableLocalFiles,\n headers: this.headers,\n });\n\n if (this.upload) {\n this.#subscription.add(this.upload.subscribe(data => {\n if (this.#files.size === 0 || (this.minNumberOfFiles && this.#files.size < this.minNumberOfFiles)) {\n this.completed.emit({successful: [], failed: []});\n return;\n }\n \n this.#fileUploader.upload(data);\n }));\n }\n\n if (this.load) {\n this.#subscription.add(this.load.subscribe(data => {\n if (this.maxNumberOfFiles && this.#files.size >= this.maxNumberOfFiles) {\n return;\n }\n \n this.#fileUploader.load(data);\n }));\n }\n\n this.#subscription.add(this.#fileUploader.complete$.subscribe(res => {\n const successful: Array<{fileId: string, meta: unknown}> = [];\n const failed: Array<{fileId: string, meta: unknown}> = [];\n res.successful.forEach(_file => {\n if (_file.response && _file.response.body && _file.response.body.fileId) {\n successful.push({fileId: _file.response.body.fileId as string, meta: _file.meta});\n }\n });\n res.failed.forEach(_file => {\n if (_file.response && _file.response.body && _file.response.body.fileId) {\n failed.push({fileId: _file.response.body.fileId as string, meta: _file.meta});\n }\n });\n this.completed.emit({successful, failed});\n }));\n\n this.#subscription.add(this.#fileUploader.fileLoaded$.subscribe(file => {\n this.#files.add(file);\n this.loadedFiles.emit(Array.from(this.#files));\n }));\n\n this.#subscription.add(this.#fileUploader.fileRemoved$.subscribe(file => {\n this.#files.delete(file);\n this.loadedFiles.emit(Array.from(this.#files));\n }));\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#fileUploader.cleanAllFiles();\n this.#subscription.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyFileUploaderComponent } from './file-uploader.component';\nimport { BizyFileUploaderService } from './file-uploader.service';\n\nconst COMPONENTS: Array<any> = [\n BizyFileUploaderComponent,\n]\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [BizyFileUploaderService]\n})\n\nexport class BizyFileUploaderModule {}\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, inject, ElementRef } from '@angular/core';\nimport { AbstractControl, FormBuilder, Validators } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { BizyInputComponent } from '../../input/input.component';\n\n@Component({\n selector: 'bizy-filter-section-range-option',\n templateUrl: './filter-section-range-option.html',\n styleUrls: ['./filter-section-range-option.css'],\n imports: [BizyInputComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionRangeOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #fb = inject(FormBuilder);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-filter-section-range-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onChange = new EventEmitter<{min: number | null, max: number | null}>();\n\n _minLimit: number;\n _maxLimit: number;\n\n #activated = new BehaviorSubject<boolean>(false);\n\n get activated$(): Observable<boolean> {\n return this.#activated.asObservable();\n }\n\n #form = this.#fb.group({\n minValue: [null],\n maxValue: [null]\n });\n\n @Input() set min(min: number | null) {\n if (typeof min === 'undefined' || min === null) {\n this.minValue.setValue(null);\n } else {\n this.minValue.setValue(Number(min));\n }\n\n this.#activated.next(Boolean(min) || min === 0 || Boolean(this.maxValue.value) || this.maxValue.value === 0);\n this.#ref.detectChanges();\n };\n\n @Input() set max(max: number | null) {\n if (typeof max === 'undefined' || max === null) {\n this.maxValue.setValue(null);\n } else {\n this.maxValue.setValue(Number(max));\n }\n\n this.#activated.next(Boolean(max) || max === 0 || Boolean(this.minValue.value) || this.minValue.value === 0);\n this.#ref.detectChanges();\n };\n\n @Input() set minLimit(min: number | null) {\n if (typeof min === 'undefined' || min === null) {\n return;\n }\n\n this._minLimit = min;\n if (typeof this._maxLimit === 'undefined' || this._maxLimit === null) {\n this.minValue.setValidators([Validators.max(min)])\n } else {\n this.minValue.setValidators([Validators.max(this._maxLimit), Validators.min(min)])\n }\n };\n\n @Input() set maxLimit(max: number | null) {\n if (typeof max === 'undefined' || max === null) {\n return;\n }\n\n this._maxLimit = max;\n if (typeof this._minLimit === 'undefined' || this._minLimit === null) {\n this.maxValue.setValidators([Validators.max(max)])\n } else {\n this.maxValue.setValidators([Validators.min(this._minLimit), Validators.max(max)])\n }\n };\n\n setMinValue(value: number | string) {\n let min = value === '' ? null : Number(value);\n const max = this.maxValue.value === null || this.maxValue.value === '' ? null : Number(this.maxValue.value);\n\n if (min !== null && max !== null && max < min) {\n return;\n }\n\n if (typeof this._minLimit !== 'undefined' && this._minLimit !== null && min && min < this._minLimit) {\n min = this._minLimit;\n }\n\n this.onChange.emit({min, max});\n this.#activated.next(Boolean(min) || Boolean(max) || min === 0 || max === 0);\n this.#ref.detectChanges();\n }\n \n setMaxValue(value: number | string | null) {\n let max = !Boolean(value) && value !== 0 ? null : Number(value);\n\n const min = this.minValue.value === null || this.minValue.value === '' ? null : Number(this.minValue.value);\n\n if (min !== null && max !== null && max < min) {\n return;\n }\n\n if (typeof this._maxLimit !== 'undefined' && this._maxLimit !== null && max && max > this._maxLimit) {\n max = this._maxLimit;\n }\n\n this.onChange.emit({min, max});\n this.#activated.next(Boolean(min) || Boolean(max) || min === 0 || max === 0);\n this.#ref.detectChanges();\n }\n\n get minValue(): AbstractControl<number | string> {\n return this.#form.get('minValue')!;\n }\n\n get maxValue(): AbstractControl<number | string> {\n return this.#form.get('maxValue')!;\n }\n\n onClean = () => {\n this.minValue.setValue(null);\n this.maxValue.setValue(null);\n this.onChange.emit({min: null, max: null});\n this.#activated.next(false);\n this.#ref.detectChanges();\n }\n\n getId = () => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n isActivated = () => {\n return this.#activated.value;\n }\n}","<div \n class=\"bizy-filter-section-range-option {{customClass}}\"\n [id]=\"id\">\n\n <span class=\"bizy-filter-section-range-option__inputs\">\n\n <bizy-input\n class=\"bizy-filter-section-range-option__input\"\n type=\"number\"\n [value]=\"minValue.value\"\n (onChange)=\"setMinValue($event)\">\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=min-header]\"></ng-content>\n </ng-container>\n\n </bizy-input>\n\n <bizy-input\n class=\"bizy-filter-section-range-option__input\"\n type=\"number\"\n [value]=\"maxValue.value\"\n (onChange)=\"setMaxValue($event)\">\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=max-header]\"></ng-content>\n </ng-container>\n\n </bizy-input>\n\n </span>\n \n</div>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, inject } from '@angular/core';\nimport { BizyCheckboxComponent } from '../../checkbox/checkbox.component';\n\n@Component({\n selector: 'bizy-filter-section-checkbox-option',\n templateUrl: './filter-section-checkbox-option.html',\n styleUrls: ['./filter-section-checkbox-option.css'],\n imports: [BizyCheckboxComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionCheckboxOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-filter-section-checkbox-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onChange = new EventEmitter<boolean>();\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n this._selected = selected;\n this.onSelect(selected);\n }\n\n _selected: boolean = true;\n\n onSelect = (selected: boolean) => {\n if (this.disabled) {\n return;\n }\n\n this._selected = selected;\n this.onChange.emit(selected);\n this.#ref.detectChanges();\n }\n\n getSelected = () => {\n return this._selected;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getId = () => {\n return this.id;\n }\n}","<div \n class=\"bizy-filter-section-checkbox-option {{customClass}}\"\n [id]=\"id\"\n (click)=\"onSelect(!_selected)\"\n (keyup.enter)=\"onSelect(!_selected)\">\n\n <ng-content></ng-content>\n\n <bizy-checkbox \n class=\"bizy-filter-section-checkbox-option__checkbox\"\n [selected]=\"_selected\"\n [disabled]=\"disabled\">\n </bizy-checkbox>\n \n</div>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { BizyInputComponent } from '../../input/input.component';\n\n@Component({\n selector: 'bizy-filter-section-search-option',\n templateUrl: './filter-section-search-option.html',\n styleUrls: ['./filter-section-search-option.css'],\n imports: [BizyInputComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionSearchOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-filter-section-search-option-${Math.random()}`;\n @Input() customClass: string = '';\n @Output() valueChange = new EventEmitter<string>();\n @Output() onChange = new EventEmitter<string>();\n\n _value: string = '';\n\n #activated = new BehaviorSubject<boolean>(false);\n\n get activated$(): Observable<boolean> {\n return this.#activated.asObservable();\n }\n\n @Input() set value(value: string) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (Array.isArray(value)) {\n value = '';\n } \n\n this._value = value;\n this.#activated.next(Boolean(value));\n this.#ref.detectChanges();\n }\n\n _onChange(value: string) {\n this.valueChange.emit(value);\n this.onChange.emit(value);\n this.#activated.next(Boolean(value));\n this.#ref.detectChanges();\n }\n\n getId = () => {\n return this.id;\n }\n\n getValue = () => {\n return this._value;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n isActivated = () => {\n return this.#activated.value;\n }\n}","<bizy-input\n [id]=\"id\" \n (onChange)=\"_onChange($event)\"\n [value]=\"_value\"\n class=\"bizy-filter-section-search-option {{customClass}}\">\n\n <span slot=\"header\"></span>\n\n <ng-container slot=\"prefix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </ng-container>\n\n <ng-container slot=\"suffix\">\n <ng-content select=\"[slot=suffix]\"></ng-content>\n </ng-container>\n\n</bizy-input>\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ContentChildren, QueryList, ContentChild, ChangeDetectorRef, DOCUMENT, ElementRef, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { BizyFilterSectionRangeOptionComponent } from '../filter-section-range-option/filter-section-range-option.component';\nimport { BizyFilterSectionCheckboxOptionComponent } from '../filter-section-checkbox-option/filter-section-checkbox-option.component';\nimport { BizyFilterSectionSearchOptionComponent } from '../filter-section-search-option/filter-section-search-option.component';\nimport { BizyCheckboxComponent } from '../../checkbox/checkbox.component';\n\n@Component({\n selector: 'bizy-filter-section',\n templateUrl: './filter-section.html',\n styleUrls: ['./filter-section.css'],\n imports: [BizyCheckboxComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyFilterSectionCheckboxOptionComponent) private checkboxOptions: QueryList<BizyFilterSectionCheckboxOptionComponent>;\n @ContentChild(BizyFilterSectionRangeOptionComponent) private rangeOption: BizyFilterSectionRangeOptionComponent;\n @ContentChild(BizyFilterSectionSearchOptionComponent) private searchOption: BizyFilterSectionSearchOptionComponent;\n @Input() id: string = `bizy-filter-section-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<boolean>();\n\n #subscription = new Subscription();\n\n #mutationObserver: MutationObserver;\n #checkboxOptions: Array<BizyFilterSectionCheckboxOptionComponent> = [];\n _activated: boolean = false;\n\n\n ngAfterViewInit() {\n this.#mutationObserver = new MutationObserver(() => {\n if (this.checkboxOptions && (this.#checkboxOptions.length !== 0 || this.checkboxOptions.length !== 0) && !this.#optionsAreEqual(this.#checkboxOptions, this.checkboxOptions.toArray())) {\n \n this.#checkboxOptions = this.checkboxOptions.toArray();\n\n const selectedOptions = this.checkboxOptions.filter(_option => _option.getSelected() === true);\n this._activated = selectedOptions.length !== this.checkboxOptions.length;\n this.onSelect.emit(this._activated);\n this.#ref.detectChanges();\n \n this.checkboxOptions.forEach(_option => {\n\n this.#subscription.add(_option.onChange.subscribe(() => {\n const selectedOptions = this.checkboxOptions.filter(_option => _option.getSelected() === true);\n this._activated = selectedOptions.length !== this.checkboxOptions.length;\n this.onSelect.emit(this._activated);\n this.#ref.detectChanges();\n }));\n });\n } else if (this.rangeOption) {\n this.#subscription.add(this.rangeOption.activated$.subscribe(value => {\n setTimeout(() => {\n this._activated = value;\n this.onSelect.emit(value);\n this.#ref.detectChanges();\n })\n }));\n this.#mutationObserver.disconnect();\n } else if (this.searchOption) {\n this.#subscription.add(this.searchOption.activated$.subscribe(value => {\n setTimeout(() => { \n this._activated = value;\n this.onSelect.emit(value);\n this.#ref.detectChanges();\n });\n }));\n this.#mutationObserver.disconnect();\n }\n });\n\n this.#mutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n }\n\n _onSelect = (selected: boolean) => {\n if (this.disabled || this.rangeOption) {\n return;\n }\n\n this.checkboxOptions.forEach(_option => {\n _option.onSelect(selected);\n })\n }\n\n onClean = () => {\n if (!this.rangeOption) {\n return;\n }\n\n this.rangeOption.onClean();\n }\n\n isActivated = () => {\n return this._activated;\n }\n\n getId = () => {\n return this.id;\n }\n\n #optionsAreEqual(arr1: Array<BizyFilterSectionCheckboxOptionComponent>, arr2: Array<BizyFilterSectionCheckboxOptionComponent>) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n arr1.sort((a, b) => String(a.id).localeCompare(String(b.id)));\n arr2.sort((a, b) => String(a.id).localeCompare(String(b.id)));\n\n for (let i = 0; i < arr1.length; i++) {\n for (let key in arr1[i]) {\n if (arr1[i][key] !== arr2[i][key]) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n if (this.#mutationObserver) {\n this.#mutationObserver.disconnect();\n }\n }\n}","<div class=\"bizy-filter-section {{customClass}}\" [id]=\"id\">\n\n <span class=\"bizy-filter-section__header\">\n\n <ng-content select=\"[slot=header]\"></ng-content>\n\n <bizy-checkbox \n class=\"bizy-filter-section__header__checkbox\"\n (onSelect)=\"_onSelect(_activated)\"\n [selected]=\"!_activated\"\n [disabled]=\"disabled\">\n </bizy-checkbox>\n\n <button \n type=\"button\"\n class=\"bizy-filter-section__header__clear-button\"\n (click)=\"onClean()\"\n (keyup.enter)=\"onClean()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" class=\"bizy-filter-section__header__clear-icon\">\n <path d=\"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"/>\n </svg>\n </button>\n \n </span>\n\n <span class=\"bizy-filter-section__options\">\n\n <ng-content select=\"bizy-filter-section-checkbox-option\"></ng-content>\n\n <ng-content select=\"bizy-filter-section-range-option\"></ng-content>\n\n <ng-content select=\"bizy-filter-section-search-option\"></ng-content>\n\n </span>\n\n</div>","import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-filter-sections',\n templateUrl: './filter-sections.html',\n styleUrls: ['./filter-sections.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterSectionsComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, DOCUMENT, ElementRef, inject } from '@angular/core';\nimport { BizyFilterSectionComponent } from './filter-section/filter-section.component';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BizyFilterSectionsComponent } from './filter-sections/filter-sections.component';\n\n@Component({\n selector: 'bizy-filter',\n templateUrl: './filter.html',\n styleUrls: ['./filter.css'],\n imports: [\n CommonModule,\n OverlayModule,\n BizyFilterSectionsComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n @ContentChildren(BizyFilterSectionComponent, { descendants: true }) private sections: QueryList<BizyFilterSectionComponent>;\n @Input() id: string = `bizy-filter-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() opened: boolean = false;\n @Output() onOpen = new EventEmitter<PointerEvent>();\n @Output() onChange = new EventEmitter<boolean>();\n\n _filterWidth: number;\n\n _activated: boolean = false;\n\n #subscription = new Subscription();\n\n ngAfterViewInit() {\n const mutationObserver = new MutationObserver(() => {\n if (this.sections && this.sections.length > 0) {\n const activatedSections = this.sections.filter(_section => _section.isActivated() === true);\n const activated = activatedSections.length > 0;\n if (this._activated !== activated) {\n this._activated = activated;\n this.onChange.emit(this._activated);\n this.#ref.detectChanges();\n }\n\n this.sections.forEach(_section => {\n this.#subscription.add(_section.onSelect.subscribe(() => {\n const activatedSections = this.sections.filter(_section => _section.isActivated() === true);\n const activated = activatedSections.length > 0;\n if (this._activated !== activated) {\n this._activated = activated;\n this.onChange.emit(this._activated);\n this.#ref.detectChanges();\n }\n }));\n });\n\n mutationObserver.disconnect();\n }\n });\n\n mutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n }\n\n _onOpen = (event: any) => {\n if (this.disabled) {\n return;\n }\n\n this.opened = !this.opened;\n\n if (event && event.srcElement && event.srcElement.offsetWidth) {\n this._filterWidth = event.srcElement.offsetWidth; \n }\n\n this.onOpen.emit(event);\n }\n\n close = (event: PointerEvent & {target: {id: string}}) => {\n if (event && event.target && event.target.id && event.target.id === this.id) {\n return;\n }\n\n this.opened = false;\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}","<button \n type=\"button\"\n class=\"bizy-filter {{customClass}}\"\n [ngClass]=\"{'bizy-filter--disabled': disabled}\"\n [id]=\"id\"\n (click)=\"_onOpen($event)\"\n (keyup.enter)=\"_onOpen($event)\"\n cdkOverlayOrigin \n #bizyFilterTrigger=\"cdkOverlayOrigin\">\n\n <span class=\"bizy-filter__content\">\n <ng-content></ng-content>\n </span>\n\n <span class=\"bizy-filter__badge\" [ngClass]=\"{'bizy-filter__badge--visible': _activated}\"></span>\n \n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayMinWidth]=\"_filterWidth\"\n [cdkConnectedOverlayOrigin]=\"bizyFilterTrigger\"\n (overlayOutsideClick)=\"close($event)\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-filter__sections-wrapper\">\n\n <bizy-filter-sections>\n \n <ng-content select=\"bizy-filter-section\"></ng-content>\n \n </bizy-filter-sections>\n\n <ng-content select=\"bizy-filter-content\"></ng-content>\n\n </span>\n\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-filter-content',\n templateUrl: './filter-content.html',\n styleUrls: ['./filter-content.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFilterContentComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyFilter'\n})\nexport class BizyFilterPipe implements PipeTransform {\n transform<T>(\n items: Array<T>,\n property: string,\n states?: string | number | boolean | Array<{ id: string | number | boolean; selected: boolean }>,\n ): Array<T> {\n if (!items || items.length === 0) {\n return [];\n }\n\n if (!property || typeof states === 'undefined' || states === null) {\n return items;\n }\n\n if (!Array.isArray(states)) {\n return items.filter(_item => _item[property] === states);\n }\n\n if (states.length === 0) {\n return items;\n }\n const _selected = states.filter(_state => _state.selected);\n if (_selected.length === states.length) {\n return items;\n }\n\n let output: Array<T> = [];\n states.forEach(state => {\n if (!state.selected) {\n return;\n }\n\n const res = items.filter(_item => {\n let _state: T = _item;\n const nestedProperty = property.split('.');\n nestedProperty.forEach(_property => {\n _state = _state[_property];\n });\n\n if (typeof state.id === 'boolean') {\n return Boolean(_state) === state.id;\n }\n\n if (Array.isArray(_state)) {\n return _state.includes(state.id);\n }\n\n return _state === state.id;\n });\n output = output.concat(res);\n });\n\n function safeStringify(obj: unknown): string {\n const seen = new WeakSet();\n\n function replacer(_key: string, value: unknown) {\n // Handle circular references\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) return '[Circular]';\n seen.add(value);\n }\n\n // Handle BigInt\n if (typeof value === 'bigint') return value.toString() + 'n';\n\n // Handle Symbol and Function\n if (typeof value === 'symbol') return value.toString();\n if (typeof value === 'function') return `[Function: ${value.name || 'anonymous'}]`;\n\n // Preserve Dates\n if (value instanceof Date) return `__DATE__:${value.toISOString()}`;\n\n return value;\n }\n\n return JSON.stringify(obj, replacer);\n }\n\n function uniqueObjects<T>(items: T[]): T[] {\n const seen = new Set<string>();\n const result: T[] = [];\n\n for (const item of items) {\n const str = safeStringify(item);\n if (!seen.has(str)) {\n seen.add(str);\n result.push(item);\n }\n }\n\n return result;\n }\n\n return uniqueObjects(output);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyRangeFilter'\n})\nexport class BizyRangeFilterPipe implements PipeTransform {\n transform<T>(\n items: Array<T>,\n property: string,\n range: { min: number | null; max: number | null }\n ): Array<T> {\n if (!items || items.length === 0) {\n return [];\n }\n\n if (!property || !range) {\n return items;\n }\n\n const min = range.min ?? null;\n const max = range.max ?? null;\n\n const activatedFilter = min !== null || max !== null;\n\n let itemsWithoutProperty: Array<T> = [];\n\n const output = items.filter(_item => {\n let _value: any = _item;\n const nestedProperty = property.split('.');\n for (let i = 0; i < nestedProperty.length; i++) {\n const _property = nestedProperty[i];\n if (typeof _value[_property] === 'undefined' || _value[_property] === null) {\n itemsWithoutProperty.push(_item);\n return !activatedFilter;\n }\n\n _value = _value[_property];\n }\n\n if (isNaN(_value)) {\n return !activatedFilter;\n }\n\n return (min === null || _value >= min) && (max === null || _value <= max);\n });\n\n return itemsWithoutProperty.length === items.length ? items : output;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyFilterComponent } from './filter.component';\nimport { BizyFilterContentComponent } from './filter-content/filter-content.component';\nimport { BizyFilterSectionCheckboxOptionComponent } from './filter-section-checkbox-option/filter-section-checkbox-option.component';\nimport { BizyFilterSectionRangeOptionComponent } from './filter-section-range-option/filter-section-range-option.component';\nimport { BizyFilterSectionSearchOptionComponent } from './filter-section-search-option/filter-section-search-option.component';\nimport { BizyFilterSectionsComponent } from './filter-sections/filter-sections.component';\nimport { BizyFilterPipe, BizyRangeFilterPipe } from './pipes';\nimport { BizyFilterSectionComponent } from './filter-section/filter-section.component';\n\nconst COMPONENTS: Array<any> = [\n BizyFilterComponent,\n BizyFilterSectionComponent,\n BizyFilterContentComponent,\n BizyFilterSectionCheckboxOptionComponent,\n BizyFilterSectionRangeOptionComponent,\n BizyFilterSectionSearchOptionComponent,\n BizyFilterSectionsComponent\n];\n\nconst PIPES: Array<any> = [\n BizyFilterPipe,\n BizyRangeFilterPipe\n];\n\n@NgModule({\n imports: COMPONENTS.concat(PIPES),\n exports: COMPONENTS.concat(PIPES),\n providers: PIPES\n})\n\nexport class BizyFilterModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, Output, EventEmitter, ElementRef, inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Component({\n selector: 'bizy-select-option',\n templateUrl: './select-option.html',\n styleUrls: ['./select-option.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySelectOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-select-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Output() onSelect = new EventEmitter<void>();\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n this.#selected.next(selected)\n }\n\n #selected = new BehaviorSubject<boolean>(false)\n\n get selected$(): Observable<boolean> {\n return this.#selected.asObservable();\n }\n\n _onSelect(): void {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit();\n this.#ref.detectChanges();\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.#selected.value;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getValue = (): string => {\n const value = this.#elementRef?.nativeElement?.firstChild?.children[0]?.innerText;\n return value ?? '';\n }\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"_onSelect()\"\n (keyup.enter)=\"_onSelect()\"\n [ngClass]=\"{'bizy-select-option--selected': (selected$ | async), 'bizy-select-option--disabled': disabled}\"\n class=\"bizy-select-option {{customClass}}\">\n\n <span class=\"bizy-select-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>","import { BizySelectOptionComponent } from './select-option/select-option.component';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, QueryList, ContentChildren, AfterViewInit, ViewChild, ContentChild, TemplateRef, inject, ViewContainerRef, ElementRef } from '@angular/core';\nimport { filter, Subscription } from 'rxjs';\nimport { BizyInputComponent } from '../input/input.component';\nimport { Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-select',\n templateUrl: './select.html',\n styleUrls: ['./select.css'],\n imports: [CommonModule, BizyInputComponent, OverlayModule, PortalModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySelectComponent implements AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n #viewContainerRef = inject(ViewContainerRef);\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n @ContentChildren(BizySelectOptionComponent) options: QueryList<BizySelectOptionComponent>;\n @ViewChild('bizyInput') bizyInput: BizyInputComponent;\n @Input() id: string = `bizy-select-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() placeholder: string = '';\n @Input() customClass: string = '';\n @Input() opened: boolean = false;\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() onOpen = new EventEmitter<boolean>();\n\n _optionValue: string = '';\n optionPortal: Portal<any>;\n templatePortal: TemplatePortal<any> | null = null;\n\n #subscription = new Subscription();\n #contentChildrenSubscription = new Subscription();\n\n get touched(): boolean {\n return this.bizyInput ? this.bizyInput.touched : false;\n }\n\n ngAfterViewInit() {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.#viewContainerRef);\n this._optionValue = '';\n\n const option = this.options.find(_option => _option.getSelected());\n\n if (option) {\n this._optionValue = option.getValue();\n }\n\n this.options.forEach(_option => {\n this.#subscription.add(_option.onSelect.subscribe(() => {\n this.close();\n this.#ref.detectChanges();\n }));\n\n this.#subscription.add(_option.selected$.pipe(filter(_value => _value === true)).subscribe(() => {\n this._optionValue = _option.getValue();\n this.#ref.detectChanges();\n }));\n });\n\n this.#contentChildrenSubscription.add(this.options.changes.subscribe(() => {\n this.#subscription.unsubscribe();\n this.#subscription = new Subscription();\n\n this.options.forEach(_option => {\n this.#subscription.add(_option.onSelect.subscribe(() => {\n this.close();\n this.#ref.detectChanges();\n }));\n\n this.#subscription.add(_option.selected$.pipe(filter(_value => _value === true)).subscribe(() => {\n this._optionValue = _option.getValue();\n this.#ref.detectChanges();\n }));\n });\n }));\n this.#ref.detectChanges();\n }\n\n _onOpen(event: PointerEvent) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.opened = !this.opened;\n this.onSelect.emit(event);\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n\n if (this.bizyInput) {\n this.bizyInput.setFocus(true);\n }\n this.#ref.detectChanges();\n }\n\n close = (event?: PointerEvent & {target: {id: string}}, select?: BizyInputComponent) => {\n if (select && event && event.target && event.target === select.bizyInputWrapper.nativeElement) {\n return;\n }\n\n this.opened = false;\n this.openedChange.emit(this.opened);\n this.onOpen.emit(this.opened);\n this.#ref.detectChanges();\n }\n\n setTouched(touched: boolean) {\n if (this.bizyInput) {\n this.bizyInput.setTouched(touched);\n this.#ref.detectChanges();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#contentChildrenSubscription.unsubscribe();\n }\n}","<bizy-input\n #bizyInput\n [readonly]=\"true\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [value]=\"_optionValue\"\n [ngClass]=\"{'bizy-select--readonly': readonly}\"\n (onSelect)=\"_onOpen($event); bizyInput?.setTouched(true)\"\n (onEnter)=\"_onOpen($event); bizyInput?.setTouched(true)\"\n class=\"bizy-select {{customClass}}\"\n cdkOverlayOrigin\n #bizySelectTrigger=\"cdkOverlayOrigin\">\n\n @if (!readonly) {\n <svg\n slot=\"suffix\"\n id=\"bizy-select-arrow\"\n class=\"bizy-select__arrow\"\n [ngClass]=\"{'bizy-select__arrow--opened': opened}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\">\n <path d=\"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"/>\n </svg>\n }\n\n <ng-container slot=\"header\">\n <ng-content select=\"[slot=header]\"></ng-content>\n </ng-container>\n\n <ng-container slot=\"prefix\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n </ng-container>\n\n</bizy-input>\n\n@if (touched) {\n <span class=\"bizy-select__errors\">\n <ng-content select=\"[slot=error]\"></ng-content>\n </span>\n}\n\n<ng-template #templatePortalContent>\n <ng-content select=\"bizy-select-option\"></ng-content>\n</ng-template>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayMinWidth]=\"bizyInput.getWidth()\"\n [cdkConnectedOverlayOrigin]=\"bizySelectTrigger\"\n (overlayOutsideClick)=\"close($event, bizyInput)\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-select__options\">\n\n <span class=\"bizy-select__options__search\">\n <ng-content select=\"bizy-input\"></ng-content>\n </span>\n\n <ng-template [cdkPortalOutlet]=\"templatePortal\"></ng-template>\n\n </span>\n\n</ng-template>\n","import { BizyDatePickerComponent } from './../date-picker/date-picker.component';\nimport { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, inject, Input, QueryList } from '@angular/core';\nimport { BizyInputComponent } from '../input/input.component';\nimport { BizySelectComponent } from '../select/select.component';\n\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'bizy-form',\n templateUrl: './form.html',\n styleUrls: ['./form.css'],\n imports: [FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyFormComponent {\n readonly #elementRef = inject(ElementRef);\n @ContentChildren(BizyInputComponent, { descendants: true }) inputs: QueryList<BizyInputComponent>;\n @ContentChildren(BizySelectComponent, { descendants: true }) selects: QueryList<BizySelectComponent>;\n @ContentChildren(BizyDatePickerComponent, { descendants: true }) datePickers: QueryList<BizyDatePickerComponent>;\n @Input() id: string = `bizy-form-${Math.random()}`;\n @Input() customClass: string = '';\n\n onSubmit(event: Event) {\n this.setTouched();\n event.preventDefault();\n }\n\n setTouched = () => {\n if (this.inputs.length > 0) {\n this.inputs.forEach(component => {\n component.setTouched(true);\n });\n }\n\n if (this.selects.length > 0) {\n this.selects.forEach(component => {\n component.setTouched(true);\n });\n }\n\n if (this.datePickers.length > 0) {\n this.datePickers.forEach(component => {\n component.setTouched(true);\n });\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<form class=\"bizy-form {{customClass}}\" [id]=\"id\" (ngSubmit)=\"onSubmit($event)\">\n <ng-content></ng-content>\n</form>","import { NgModule } from '@angular/core';\nimport { BizyFormComponent } from './form.component';\n\nconst COMPONENTS: Array<any> = [\n BizyFormComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyFormModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-gauge-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyGaugeChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {show: boolean, label: string, name: string}\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({\n ...data.option,\n series: [{\n ...data.option.series[0],\n minAngle: 1,\n label: {\n ...data.option.series[0].label,\n width: 'none',\n overflow: 'break',\n },\n labelLine: {\n show: data.option.series[0].labelLine?.show,\n length: 50,\n length2: 50\n },\n labelLayout() {\n return { \n moverOverlap: 'shiftY',\n hideOverlap: false\n };\n },\n }], \n toolbox: {\n show: true,\n feature: {\n mySaveAsImage: {\n show: data.download.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: data.download.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n });\n });\n }, 500);\n }\n }\n }\n }\n });\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Output,\n Renderer2,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { IBizyGaugeChartData } from './gauge-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject, Subscription, auditTime, skip, throttleTime } from 'rxjs';\nimport { BizyGaugeChartPopupComponent } from './gauge-chart-popup.component';\nimport { BizyPopupService } from '../popup';\n\nconst DEFAULT_CHART_SIZE = '300px';\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n}\n\nconst DEFAULT_EXPAND = {\n show: true,\n label: 'Expandir'\n}\n\nconst DEFAULT_TOOLTIP = {\n show: true\n}\n\nconst DEFAULT_ANGLE = {\n start: 225,\n end: -45\n};\n\nconst DEFAULT_LIMIT = {\n min : 0,\n max: 1\n};\n\n@Component({\n selector: 'bizy-gauge-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyGaugeChartComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() angle: {start: number, end: number} = DEFAULT_ANGLE;\n @Input() limit: {min: number, max: number} = DEFAULT_LIMIT\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() expand: { show?: boolean, label?: string} = DEFAULT_EXPAND;\n @Output() onSelect = new EventEmitter<string>();\n @Output() onDownload = new EventEmitter<void>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #resize$ = new Subject<void>();\n #data: IBizyGaugeChartData | null = null;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: IBizyGaugeChartData | null) {\n if (!data) {\n this.#deleteChartContainer();\n }\n\n this.#setChartData(data);\n }\n\n async #setChartData(data: IBizyGaugeChartData | null) {\n this.#data = data;\n this.#createChartContainer()\n\n if (!this.#chartContainer) {\n return;\n }\n \n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n\n const { width, height } = this.#chartContainer.getBoundingClientRect();\n const base = Math.min(width, height);\n\n const backgroundColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-background-color');\n const progressColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-progress-color');\n const valueColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-value-color');\n const textColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-text-color');\n const anchorColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-anchor-color');\n const pointerColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-pointer-color');\n\n const series = [{\n type: 'gauge',\n radius: '100%',\n progress: {\n show: true,\n width: Math.round(Math.max(base / 10, 7)),\n itemStyle: {\n color: progressColor\n }\n },\n axisLine: {\n lineStyle: {\n width: Math.round(Math.max(base / 10, 7)),\n color: [[1, backgroundColor]]\n }\n },\n axisTick: {\n show: false\n },\n splitLine: {\n show: base > 100,\n distance: Math.round(Math.max(base / 30, 10)),\n length: Math.round(Math.max(base / 20, 10)),\n lineStyle: {\n width: 2,\n color: textColor\n }\n },\n axisLabel: {\n show: base > 100,\n distance: Math.round(Math.max(base / 15, 5)) + 3,\n color: textColor,\n fontSize: Math.round(Math.max(base / 17, 10))\n },\n startAngle: this.angle.start ?? DEFAULT_ANGLE.start,\n endAngle: this.angle.end ?? DEFAULT_ANGLE.end,\n anchor: {\n show: true,\n showAbove: true,\n size: Math.round(Math.max(base / 20, 5)),\n itemStyle: {\n borderWidth: Math.round(Math.max(base / 50, 3)),\n borderColor: anchorColor\n }\n },\n pointer: {\n show: true,\n itemStyle: {\n color: pointerColor\n }\n },\n title: {\n show: false,\n },\n detail: {\n valueAnimation: true,\n fontSize: Math.round(Math.max(base / 8, 7)),\n color: valueColor,\n formatter: this.#data.formatter ? this.#data.formatter : '{value}',\n offsetCenter: [0, '70%']\n },\n min: this.limit.min ?? DEFAULT_LIMIT.min,\n max: this.limit.max ?? DEFAULT_LIMIT.max,\n data: this.#data ? [this.#data] : []\n }];\n\n const tooltipTextColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-tooltip-color');\n const tooltipTextBackgroundColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-tooltip-background-color');\n const tooltipBorderColor = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-gauge-chart-tooltip-border-color');\n\n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n myExpandChart: {\n show: this.expand.show ?? DEFAULT_EXPAND.show,\n icon: 'path://M264 96L120 96C106.7 96 96 106.7 96 120L96 264C96 273.7 101.8 282.5 110.8 286.2C119.8 289.9 130.1 287.8 137 281L177 241L256 320L177 399L137 359C130.1 352.1 119.8 350.1 110.8 353.8C101.8 357.5 96 366.3 96 376L96 520C96 533.3 106.7 544 120 544L264 544C273.7 544 282.5 538.2 286.2 529.2C289.9 520.2 287.9 509.9 281 503L241 463L320 384L399 463L359 503C352.1 509.9 350.1 520.2 353.8 529.2C357.5 538.2 366.3 544 376 544L520 544C533.3 544 544 533.3 544 520L544 376C544 366.3 538.2 357.5 529.2 353.8C520.2 350.1 509.9 352.1 503 359L463 399L384 320L463 241L503 281C509.9 287.9 520.2 289.9 529.2 286.2C538.2 282.5 544 273.7 544 264L544 120C544 106.7 533.3 96 520 96L376 96C366.3 96 357.5 101.8 353.8 110.8C350.1 119.8 352.2 130.1 359 137L399 177L320 256L241 177L281 137C287.9 130.1 289.9 119.8 286.2 110.8C282.5 101.8 273.7 96 264 96z',\n title: this.expand.label ?? DEFAULT_EXPAND.label,\n onclick: () => {\n this.#popup.open({\n component: BizyGaugeChartPopupComponent,\n data: {\n download: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show, \n label: this.download?.label ?? DEFAULT_DOWNLOAD.label, \n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n option: this.#echarts.getOption()\n }\n })\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: tooltipTextColor,\n borderColor: tooltipBorderColor,\n borderWidth: 1,\n textBackgroundColor: tooltipTextBackgroundColor,\n textPadding: 5,\n }\n }\n };\n\n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n };\n\n const option: any = {\n tooltip,\n toolbox,\n series,\n };\n\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n\n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n\n if (!this.#chartContainer) {\n return;\n }\n\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...option, series: option.series.map(_serie => { return {..._serie, data: this.#data ? [this.#data] : []}})});\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-gauge-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-gauge-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth * 0.99}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BizyGaugeChartComponent } from './gauge-chart.component';\nimport { BizyGaugeChartPopupComponent } from './gauge-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyGaugeChartComponent,\n BizyGaugeChartPopupComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyGaugeChartModule {}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Directive, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[gridFor]',\n})\n\nexport class BizyGridForDirective {\n readonly viewContainerRef = inject(ViewContainerRef);\n readonly templateRef = inject(TemplateRef);\n #items = new BehaviorSubject<Array<unknown>>([]);\n\n get items$(): Observable<Array<unknown>> {\n return this.#items.asObservable();\n }\n\n @Input('gridForOf') set gridForOf(items: Array<unknown>) {\n this.#items.next(items);\n }\n}\n","\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Renderer2, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-grid-row',\n templateUrl: './grid-row.html',\n styleUrls: ['./grid-row.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyGridRowComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n\n @Input() rowHeight: number = 100; // Px\n\n @Input() set itemsPerRow(itemsPerRow: number) {\n if (!this.#elementRef.nativeElement) {\n return;\n }\n\n if (!itemsPerRow) {\n itemsPerRow = 1;\n }\n\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'gridTemplateRows', `${this.rowHeight}px`);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'gridTemplateColumns', `repeat(${itemsPerRow}, minmax(0, 1fr)`);\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<ng-content></ng-content>","import { Component, Input, ChangeDetectionStrategy, ContentChild, ChangeDetectorRef, ViewChild, AfterContentInit, ElementRef, Renderer2, TemplateRef, ViewContainerRef, DOCUMENT, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject, Subscription, debounceTime } from 'rxjs';\nimport { BizyGridForDirective } from './grid.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { BizyGridRowComponent } from './grid-row/grid-row.component';\n@Component({\n selector: 'bizy-grid',\n templateUrl: './grid.html',\n styleUrls: ['./grid.css'],\n imports: [CommonModule, ScrollingModule, BizyGridRowComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyGridComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n readonly #renderer = inject(Renderer2);\n \n @ViewChild('cdkVirtualScroll') private virtualScroll: CdkVirtualScrollViewport;\n @ViewChild('gridScrollingContent') content: TemplateRef<object>;\n @ContentChild(BizyGridForDirective) gridDirective: BizyGridForDirective;\n @Input() resizeRef: ElementRef | null = null;\n\n #rowScrollingMutationObserver: MutationObserver;\n #resizeObserver: ResizeObserver;\n #subscription = new Subscription();\n #view: ViewContainerRef;\n notifier$ = new Subject<void>();\n \n rowHeight: number = 100;\n itemRows: Array<Array<unknown>> = [];\n items: Array<unknown> = [];\n itemTemplate: TemplateRef<unknown>;\n itemsPerRow: number = 1;\n\n ngAfterContentInit() {\n if (this.gridDirective) {\n this.#initView();\n } else {\n this.#rowScrollingMutationObserver = new MutationObserver(() => {\n if (!this.gridDirective) {\n return;\n }\n \n this.#initView();\n \n this.#rowScrollingMutationObserver.disconnect();\n \n this.#ref.detectChanges();\n });\n \n this.#rowScrollingMutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n }\n }\n\n #initView = () => {\n this.#subscription.add(this.gridDirective.items$.subscribe(items => {\n if (this.items.length === 0 && items.length === 0) {\n return;\n }\n\n this.items = items;\n this.#updateView();\n }));\n\n if (!this.#view) {\n this.#view = this.gridDirective.viewContainerRef;\n this.#view.createEmbeddedView(this.content);\n }\n\n this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#subscription.add(this.notifier$.pipe(debounceTime(50)).subscribe(() => {\n this.#updateView();\n }));\n }\n\n #updateView = () => {\n this.itemTemplate = this.gridDirective.templateRef;\n const rowWidth = this.#elementRef.nativeElement.offsetWidth || this.#elementRef.nativeElement.firstChild.offsetWidth;\n let columnWidth = 100;\n const fontSize = Number(getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('font-size').split('px')[0]);\n\n const rowHeightParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-row-height');\n if (rowHeightParameter && rowHeightParameter.includes('rem')) {\n this.rowHeight = fontSize * Number(rowHeightParameter.split('rem')[0]);\n } else if (rowHeightParameter && rowHeightParameter.includes('px')) {\n this.rowHeight = Number(rowHeightParameter.split('px')[0]);\n }\n\n let gap = 10;\n const gapParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-gap');\n if (gapParameter && gapParameter.includes('rem')) {\n gap = fontSize * Number(gapParameter.split('rem')[0]);\n } else if (gapParameter && gapParameter.includes('px')) {\n gap = Number(gapParameter.split('px')[0]);\n }\n\n const columnWidthParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-column-width');\n if (columnWidthParameter && columnWidthParameter.includes('rem')) {\n columnWidth = fontSize * Number(columnWidthParameter.split('rem')[0]);\n } else if (columnWidthParameter && columnWidthParameter.includes('px')) {\n columnWidth = Number(columnWidthParameter.split('px')[0]);\n }\n\n columnWidth += gap;\n\n const count = Math.trunc(rowWidth / (columnWidth));\n if (Math.round((gap * (count - 1)) + (columnWidth * count)) <= (rowWidth)) {\n this.itemsPerRow = count <= 0 ? 1 : count;\n } else {\n this.itemsPerRow = (count - 1) <= 0 ? 1 : count - 1;\n }\n\n const itemRows: Array<Array<unknown>> = [];\n for (let i = 0; i < this.items.length; i += this.itemsPerRow) {\n const row: Array<unknown> = this.items.slice(i, i + this.itemsPerRow);\n itemRows.push(row);\n }\n\n this.itemRows = itemRows;\n this.#ref.detectChanges();\n }\n\n scrollTo(index: number, behavior: 'auto' | 'instant' | 'smooth' = 'smooth') {\n this.virtualScroll.scrollToIndex(index, behavior);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n\n if (this.#rowScrollingMutationObserver) {\n this.#rowScrollingMutationObserver.disconnect();\n }\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<div class=\"bizy-grid\" [ngClass]=\"{'bizy-grid--empty': items && items.length === 0}\">\n\n <cdk-virtual-scroll-viewport\n #cdkVirtualScroll\n class=\"bizy-grid__rows\"\n [itemSize]=\"rowHeight\"\n [minBufferPx]=\"rowHeight + (rowHeight * 5)\"\n [maxBufferPx]=\"rowHeight + (rowHeight * 10)\">\n\n <ng-content></ng-content>\n\n <ng-template #gridScrollingContent>\n <ng-template\n let-item\n let-index=\"index\"\n let-first=\"first\"\n let-last=\"last\"\n let-even=\"even\"\n let-odd=\"odd\"\n cdkVirtualFor\n [cdkVirtualForOf]=\"itemRows\">\n <bizy-grid-row [rowHeight]=\"rowHeight\" [itemsPerRow]=\"itemsPerRow\">\n @for (it of item; track it.id ?? i; let i = $index) {\n <ng-template\n *ngTemplateOutlet=\"itemTemplate;\n context: { \n $implicit: it,\n index: index * itemsPerRow + i,\n rowIndex: index,\n rowFirst: first,\n rowLast: last,\n rowEven: even,\n rowOdd: odd\n }\"></ng-template>\n }\n </bizy-grid-row>\n </ng-template>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n</div>\n","import { BizyGridForDirective } from './grid.directive';\nimport { NgModule } from '@angular/core';\nimport { BizyGridComponent } from './grid.component';\nimport { BizyGridRowComponent } from './grid-row/grid-row.component';\n\nconst COMPONENTS: Array<any> = [\n BizyGridComponent,\n BizyGridRowComponent\n];\n\nconst DIRECTIVES: Array<any> = [\n BizyGridForDirective,\n];\n\n@NgModule({\n imports: COMPONENTS.concat(DIRECTIVES),\n exports: COMPONENTS.concat(DIRECTIVES),\n})\n\nexport class BizyGridModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output,\n Renderer2\n} from '@angular/core';\nimport { IBizyHeatMapChartData, IBizyHeatMapChartRange, IBizyHeatMapHighlightArea, IBizyHeatMapHighlightLine, IBizyHeatMapHighlightLineLabel } from './heat-map-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { auditTime, BehaviorSubject, filter, skip, Subject, Subscription, take, throttleTime } from 'rxjs';\n\nconst DEFAULT_CHART_SIZE = '300px';\n\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n};\n\nconst DEFAULT_TOOLTIP = {\n show: true\n};\n\nconst DEFAULT_X_AXIS = {\n labels: [],\n position: 'top' as 'top' | 'bottom'\n};\n\nconst DEFAULT_Y_AXIS = {\n labels: [],\n position: 'left' as 'left' | 'right'\n};\n\nconst LINE_DASH_SOLID = [0, 0];\nconst LINE_DASH_DOTTED = [2, 4];\nconst LINE_DASH_DASH = [6, 6];\n\n@Component({\n selector: 'bizy-heat-map-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyHeatMapChartComponent implements OnDestroy, AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() ranges: Array<IBizyHeatMapChartRange> | {data: Array<IBizyHeatMapChartRange>, label?: {start?: string, end?: string}} = [];\n @Input() highlightAreas: Array<IBizyHeatMapHighlightArea> | {data: Array<IBizyHeatMapHighlightArea>} = [];\n @Input() highlightLines: Array<IBizyHeatMapHighlightLine> | {data: Array<IBizyHeatMapHighlightLine>, label: {x: IBizyHeatMapHighlightLineLabel, y: IBizyHeatMapHighlightLineLabel}, slot?: 'start' | 'center' | 'end'} = [];\n @Input() xAxis: {labels: Array<string>, position: 'top' | 'bottom', formatter?: (item: any ) => string} = DEFAULT_X_AXIS;\n @Input() yAxis: {labels: Array<string>, position: 'left' | 'right', formatter?: (item: any ) => string} = DEFAULT_Y_AXIS;\n @Output() onDownload = new EventEmitter<void>();\n @Output() onSelect = new EventEmitter<string>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<IBizyHeatMapChartData> = [];\n\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyHeatMapChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n }\n }\n\n async #setChartData(data: Array<IBizyHeatMapChartData>) {\n this.#data = data;\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n this.#createChartContainer()\n\n if (!this.#chartContainer) {\n return;\n }\n\n const series: Array<any> = [{\n type: 'heatmap',\n zlevel: 1,\n data: this.#data.map(_cell => {\n return {\n value: [_cell.x, _cell.y, _cell.value ?? '-'],\n metadata: _cell.metadata\n }\n })\n }];\n\n\n const xAreaBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-area-background-color');\n const xAreaBorderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-area-border-color');\n const xAreaBorderWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-area-border-width');\n const yAreaBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-area-background-color');\n const yAreaBorderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-area-border-color');\n const yAreaBorderWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-area-border-width');\n\n const xAreas: Array<[number, number]> = []\n const yAreas: Array<[number, number]> = []\n const highlightAreas: Array<IBizyHeatMapHighlightArea> = (<{data: Array<IBizyHeatMapHighlightArea>}>this.highlightAreas).data ?? (<Array<IBizyHeatMapHighlightArea>>this.highlightAreas);\n highlightAreas.forEach(_area => {\n if (typeof _area.from.x !== 'undefined' || _area.from.x !== null) {\n xAreas.push([_area.from.x, _area.to.x]);\n } else {\n yAreas.push([_area.from.y, _area.to.y]);\n }\n });\n\n if (xAreas.length > 0) {\n series.push({\n type: 'custom',\n silent: true,\n renderItem: function (params, api) {\n var xStart = api.coord([api.value(0), 0])[0];\n var xEnd = api.coord([api.value(1), 0])[0];\n var cellWidth = Math.abs(xEnd - xStart) / (api.value(1) - api.value(0));\n\n return {\n type: 'rect',\n shape: {\n x: xStart - cellWidth / 2,\n y: params.coordSys.y,\n width: Math.abs(xEnd - xStart) + cellWidth,\n height: params.coordSys.height\n },\n style: {\n fill: xAreaBackgroundColor,\n stroke: xAreaBorderColor,\n lineWidth: xAreaBorderWidth\n },\n silent: true,\n z2: 100\n };\n },\n data: xAreas,\n zlevel: 5\n })\n };\n\n if (yAreas.length > 0) {\n series.push({\n type: 'custom',\n silent: true,\n renderItem: function (params, api) {\n var yStart = api.coord([0, api.value(0)])[1];\n var yEnd = api.coord([0, api.value(1)])[1];\n var cellHeight = Math.abs(yEnd - yStart) / (api.value(1) - api.value(0));\n\n return {\n type: 'rect',\n shape: {\n x: params.coordSys.x,\n y: yStart - cellHeight / 2,\n width: params.coordSys.width,\n height: Math.abs(yEnd - yStart) + cellHeight\n },\n style: {\n fill: yAreaBackgroundColor,\n stroke: yAreaBorderColor,\n lineWidth: yAreaBorderWidth\n },\n silent: true,\n z2: 100\n };\n },\n data: yAreas,\n zlevel: 5\n })\n }\n\n const xLineWidth = Number(this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-width'));\n const xLineColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-color');\n const xLineStyle = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-style');\n const xLineLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-x-highlight-line-label-color');\n const yLineWidth = Number(this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-width'));\n const yLineColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-color');\n const yLineStyle = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-style');\n const yLineLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-y-highlight-line-label-color');\n\n const xLines: Array<[number]> = []\n const yLines: Array<[number]> = []\n const highlightLineLabel = (<{label: {x: IBizyHeatMapHighlightLineLabel, y: IBizyHeatMapHighlightLineLabel}}>this.highlightLines)?.label ?? null;\n const highlightLines: Array<IBizyHeatMapHighlightLine> = (<{data: Array<IBizyHeatMapHighlightLine>}>this.highlightLines).data ?? (<Array<IBizyHeatMapHighlightLine>>this.highlightLines);\n highlightLines.forEach(_line => {\n if (typeof _line.x !== 'undefined' || _line.x !== null) {\n xLines.push([_line.x]);\n } else {\n yLines.push([_line.y]);\n }\n });\n\n const slot = (<{slot: 'start' | 'center' | 'end'}>this.highlightLines).slot ?? 'center';\n\n if (xLines.length > 0) {\n series.push({\n type: 'custom',\n renderItem: function (params, api) {\n const xValue = api.value(0);\n \n const yStart = params.coordSys.y;\n const yEnd = params.coordSys.y + params.coordSys.height;\n\n const cellWidth = Math.abs(api.coord([1, 0])[0] - api.coord([0, 0])[0]);\n \n const centerX = api.coord([xValue, 0])[0];\n\n const xCoord = slot === 'start' ? centerX - (cellWidth / 2) : slot === 'end' ? centerX + (cellWidth / 2) : centerX;\n\n const children: Array<any> = [{\n type: 'line',\n shape: {\n x1: xCoord,\n y1: yStart,\n x2: xCoord,\n y2: yEnd\n },\n style: {\n stroke: xLineColor,\n lineWidth: xLineWidth,\n lineDash: xLineStyle === 'solid' ? LINE_DASH_SOLID : xLineStyle === 'dotted' ? LINE_DASH_DOTTED : xLineStyle === 'dashed' ? LINE_DASH_DASH : LINE_DASH_SOLID\n },\n z: 100\n }]\n\n if (highlightLineLabel && highlightLineLabel.x) {\n const top = yStart - 5;\n const bottom = yEnd + 20;\n\n const label = {\n type: 'text',\n style: {\n text: highlightLineLabel.x.formatter ? highlightLineLabel.x.formatter(xValue) : xValue,\n x: xCoord,\n y: highlightLineLabel.x.position === 'top' ? top : highlightLineLabel.x.position === 'bottom' ? bottom : bottom,\n fill: xLineLabelColor,\n textAlign: 'center',\n textVerticalAlign: 'bottom'\n },\n z: 101\n }\n\n children.push(label)\n }\n \n return {\n type: 'group',\n children\n };\n },\n data: xLines,\n silent: true,\n zlevel: 10\n })\n };\n\n if (yLines.length > 0) {\n series.push({\n type: 'custom',\n renderItem: function (params, api) {\n const yValue = api.value(0);\n\n const xStart = params.coordSys.x;\n const xEnd = params.coordSys.x + params.coordSys.width;\n\n const cellHeight = Math.abs(api.coord([0, 1])[1] - api.coord([0, 0])[1]);\n\n const centerY = api.coord([0, yValue])[1];\n\n const yCoord = slot === 'start' ? centerY + (cellHeight / 2) : slot === 'end' ? centerY - (cellHeight / 2) : centerY;\n\n const children: Array<any> = [{\n type: 'line',\n shape: {\n x1: xStart,\n y1: yCoord,\n x2: xEnd,\n y2: yCoord\n },\n style: {\n stroke: yLineColor,\n lineWidth: yLineWidth,\n lineDash: yLineStyle === 'solid' ? LINE_DASH_SOLID : yLineStyle === 'dotted' ? LINE_DASH_DOTTED : yLineStyle === 'dashed' ? LINE_DASH_DASH : LINE_DASH_SOLID\n },\n z: 100\n }]\n\n if (highlightLineLabel && highlightLineLabel.y) {\n const left = xStart - 5;\n const right = xEnd + 20;\n\n const label = {\n type: 'text',\n style: {\n text: highlightLineLabel.y.formatter ? highlightLineLabel.y.formatter(yValue) : yValue,\n x: yCoord,\n y: highlightLineLabel.y.position === 'left' ? left : highlightLineLabel.y.position === 'right' ? right : right,\n fill: yLineLabelColor,\n textAlign: 'right',\n textVerticalAlign: 'middle'\n },\n z: 101\n }\n\n children.push(label)\n }\n \n return {\n type: 'group',\n children\n };\n },\n data: yLines,\n silent: true,\n zlevel: 10\n })\n };\n\n \n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n }\n\n const xAxis = [\n {\n type: 'category',\n splitArea: {\n show: true\n },\n position: this.xAxis?.position ?? DEFAULT_X_AXIS.position,\n data: this.xAxis?.labels ?? DEFAULT_X_AXIS.labels,\n axisLabel: {\n formatter: this.xAxis?.formatter,\n }\n }\n ];\n\n const yAxis = [\n {\n type: 'category',\n position: this.yAxis?.position ?? DEFAULT_Y_AXIS.position,\n data: this.yAxis?.labels ?? DEFAULT_Y_AXIS.labels,\n splitArea: {\n show: true\n },\n axisLabel: {\n formatter: this.yAxis?.formatter,\n }\n }\n ];\n\n const outOfRangeColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-out-of-range-color');\n\n let text: [string | null, string | null] | null = null;\n let pieces: Array<IBizyHeatMapChartRange> = [];\n if (Array.isArray(this.ranges)) {\n pieces = this.ranges;\n } else if (this.ranges && this.ranges.data) {\n pieces = this.ranges.data;\n if (this.ranges.label?.start) {\n text = [null, this.ranges.label.start];\n }\n\n if (this.ranges.label?.end) {\n text = [this.ranges.label.end, text && text[1] ? text[1] : null];\n }\n }\n\n\n const visualMap = {\n type: 'piecewise',\n orient: 'horizontal',\n left: 'center',\n text,\n showLabel: true,\n pieces,\n outOfRange: {\n color: outOfRangeColor\n }\n };\n\n const textColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-tooltip-color');\n const textBackgroundColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-tooltip-background-color');\n const borderColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-tooltip-border-color');\n\n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n\n const grid = {\n left: 0,\n right: 0,\n containLabel: true\n }\n\n const option: any = {\n tooltip,\n xAxis,\n yAxis,\n toolbox,\n series,\n visualMap,\n grid\n };\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', params => {\n this.onSelect.emit(params.name)\n });\n });\n }));\n });\n });\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-heat-map-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyHeatMapChartComponent } from './heat-map-chart.component';\n\nconst COMPONENTS: Array<any> = [\n BizyHeatMapChartComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyHeatMapChartModule {}\n","import { NgModule } from '@angular/core';\nimport { BizyInputComponent } from './input.component';\nimport { BizyInputOptionComponent } from './input-option/input-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizyInputComponent,\n BizyInputOptionComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyInputModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-list',\n templateUrl: './list.html',\n styleUrls: ['./list.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizyListComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-list-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { BizyListComponent } from './list.component';\n\nconst COMPONENTS: Array<any> = [\n BizyListComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyListModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-menu-option',\n templateUrl: './menu-option.html',\n styleUrls: ['./menu-option.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyMenuOptionComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-menu-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() customClass: string = '';\n @Input() selected: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent & {target: {id: string}}>();\n\n _onSelect(event: PointerEvent & {target: {id: string}}) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n [ngClass]=\"{'bizy-menu-option--selected': selected, 'bizy-menu-option--disabled': disabled}\"\n class=\"bizy-menu-option {{customClass}}\">\n\n <span class=\"bizy-menu-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>\n\n<span class=\"bizy-menu-option__menu\">\n <ng-content select=\"bizy-menu\"></ng-content>\n</span>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { BizyMenuOptionComponent } from './menu-option/menu-option.component';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, inject, Input, Output, QueryList } from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-menu',\n templateUrl: './menu.html',\n styleUrls: ['./menu.css'],\n imports: [CommonModule, FormsModule, OverlayModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyMenuComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyMenuOptionComponent) options!: QueryList<BizyMenuOptionComponent>;\n @Input() id: string = `bizy-menu-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n @Input() customClass: string = '';\n @Input() hideArrow: boolean = false;\n @Input() opened: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _menuWidth: number;\n\n #subscription = new Subscription();\n\n readonly bizyMenuOptionsId = 'bizyMenuOptionsId';\n\n _onSelect(event: any) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n\n if (this.options && this.options.length > 0) {\n this.selectButton(event)\n }\n }\n\n selectButton(event: any) {\n this.opened = !this.opened;\n\n if (event && event.srcElement && event.srcElement.offsetWidth) {\n this._menuWidth = event.srcElement.offsetWidth; \n }\n\n if (this.opened) {\n this.#subscription = new Subscription();\n this.#subscription.add(fromEvent(window, 'scroll', { capture: true }).subscribe(() => {\n if (event && event.target && event.target.id && (event.target.id === this.id || event.target.id === this.bizyMenuOptionsId)) {\n return;\n }\n\n this.opened = false;\n this.#ref.detectChanges();\n this.#subscription.unsubscribe();\n }));\n\n if (this.options) {\n this.options.forEach((option: BizyMenuOptionComponent) => {\n this.#subscription.add(option.onSelect.subscribe(event => {\n this.close(event);\n }));\n });\n }\n } else {\n this.#subscription.unsubscribe();\n }\n }\n\n close = (event: Event & {target: {id: string}}) => {\n if (event && event.target && event.target.id && event.target.id === this.id) {\n return;\n }\n\n this.opened = false;\n this.#subscription.unsubscribe();\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}","<button\n type=\"button\"\n class=\"bizy-menu {{customClass}}\"\n [ngClass]=\"{'bizy-menu--disabled': disabled}\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n cdkOverlayOrigin\n #bizyMenuTrigger=\"cdkOverlayOrigin\">\n\n <span class=\"bizy-menu__content\">\n <ng-content></ng-content>\n </span>\n\n @if (!hideArrow) {\n <svg\n class=\"bizy-menu__arrow\"\n viewBox=\"0 0 96 96\"\n [ngClass]=\"{'bizy-menu__arrow--opened': opened}\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M81.8457,25.3876a6.0239,6.0239,0,0,0-8.45.7676L48,56.6257l-25.396-30.47a5.999,5.999,0,1,0-9.2114,7.6879L43.3943,69.8452a5.9969,5.9969,0,0,0,9.2114,0L82.6074,33.8431A6.0076,6.0076,0,0,0,81.8457,25.3876Z\"/>\n </svg>\n }\n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOffsetX]=\"offsetX\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayMinWidth]=\"_menuWidth\"\n [cdkConnectedOverlayOrigin]=\"bizyMenuTrigger\"\n (overlayOutsideClick)=\"close($event)\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayViewportMargin]=\"8\"\n [cdkConnectedOverlayOpen]=\"opened\">\n\n <span class=\"bizy-menu__options\" [id]=\"bizyMenuOptionsId\">\n\n <span class=\"bizy-menu__options__header\">\n <ng-content select=\"bizy-menu-title\"></ng-content>\n <ng-content select=\"bizy-input\"></ng-content>\n </span>\n\n <ng-content select=\"bizy-menu-option\"></ng-content>\n\n </span>\n\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n@Component({\n selector: 'bizy-menu-title',\n templateUrl: './menu-title.html',\n styleUrls: ['./menu-title.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id',\n '[class]': 'customClass'\n }\n})\nexport class BizyMenuTitleComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-menu-title-${Math.random()}`;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { BizyMenuComponent } from './menu.component';\nimport { BizyMenuOptionComponent } from './menu-option/menu-option.component';\nimport { BizyMenuTitleComponent } from './menu-title/menu-title.component';\n\nconst COMPONENTS: Array<any> = [\n BizyMenuComponent,\n BizyMenuOptionComponent,\n BizyMenuTitleComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyMenuModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, inject, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { BizyButtonModule } from '../../button';\n\n@Component({\n selector: 'bizy-menu-bar-option',\n templateUrl: './menu-bar-option.html',\n styleUrls: ['./menu-bar-option.css'],\n imports: [CommonModule, BizyButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyMenuBarOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @Input() id: string = `bizy-menu-bar-option-${Math.random()}`;\n @Input() selected: boolean = false;\n @Input() disabled: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n _setSelected = (selected: boolean) => {\n this.selected = selected;\n this.#ref.detectChanges();\n }\n\n _setDisabled = (disabled: boolean) => {\n this.disabled = disabled;\n this.#ref.detectChanges();\n }\n\n getId = (): string => this.id;\n}\n","<bizy-button \n [disabled]=\"disabled\"\n [id]=\"id\"\n [ngClass]=\"{'bizy-menu-bar-option--selected': selected}\"\n (onSelect)=\"_onSelect($event)\">\n <ng-content></ng-content>\n</bizy-button>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, inject, ElementRef, AfterContentInit, ContentChildren, QueryList } from '@angular/core';\nimport { BizyMenuBarOptionComponent } from './menu-bar-option/menu-bar-option.component';\nimport { BehaviorSubject, filter, Subscription, take } from 'rxjs';\n\n\n@Component({\n selector: 'bizy-menu-bar',\n templateUrl: './menu-bar.html',\n styleUrls: ['./menu-bar.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id',\n }\n})\nexport class BizyMenuBarComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n\n @ContentChildren(BizyMenuBarOptionComponent) options!: QueryList<BizyMenuBarOptionComponent>;\n @Input() id: string = `bizy-menu-bar-${Math.random()}`;\n @Output() selectedOptionChange = new EventEmitter<string>();\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set disabled(disabled: boolean) {\n if (typeof disabled === 'undefined' || disabled === null) {\n return;\n }\n\n this.#subscription.add(this.#afterContentInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n if (this.options) {\n this.options.forEach((option: BizyMenuBarOptionComponent) => {\n option._setDisabled(disabled);\n });\n }\n }));\n }\n\n @Input() set selectedOption(selectedOption: string) {\n if (!selectedOption) {\n return;\n }\n\n this.#subscription.add(this.#afterContentInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n if (this.options) {\n this.options.forEach((option: BizyMenuBarOptionComponent) => {\n option._setSelected(option.getId() === selectedOption);\n });\n }\n }));\n }\n\n _onSelect = (option: BizyMenuBarOptionComponent) => {\n if (this.disabled) {\n return;\n }\n\n this.selectedOptionChange.emit(option.getId());\n }\n\n #afterContentInit = new BehaviorSubject<boolean>(false);\n #subscription = new Subscription();\n\n ngAfterContentInit(): void {\n if (this.options) {\n this.options.forEach((option: BizyMenuBarOptionComponent) => {\n this.#subscription.add(option.onSelect.subscribe(() => {\n this._onSelect(option)\n }));\n });\n }\n\n this.#afterContentInit.next(true);\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}\n","<ng-content select=\"bizy-menu-bar-option\"></ng-content>","import { NgModule } from '@angular/core';\nimport { BizyMenuBarComponent } from './menu-bar.component';\nimport { BizyMenuBarOptionComponent } from './menu-bar-option/menu-bar-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizyMenuBarComponent,\n BizyMenuBarOptionComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyMenuBarModule {}\n","import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BizyPopupService } from '../popup';\n\n@Component({\n selector: 'bizy-pie-chart-popup',\n template: '',\n styles: [`\n :host {\n display: inline-block;\n height: min(60rem, 90dvh);\n width: min(60rem, 85dvw);\n }\n `]\n})\nexport class BizyPieChartPopupComponent implements OnInit {\n readonly #popup = inject(BizyPopupService);\n readonly #renderer = inject(Renderer2);\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #document = inject(DOCUMENT);\n\n #echarts: echarts.ECharts | null = null\n #chartContainer: HTMLDivElement | null = null;\n\n ngOnInit() {\n const data = this.#popup.getData<{\n download: {show: boolean, label: string, name: string}\n option: any\n }>();\n\n if (!data || !data.option) {\n this.#popup.close();\n return;\n }\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', '100%');\n this.#renderer.setStyle(this.#chartContainer, 'height', '100%');\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n\n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({\n ...data.option,\n series: [{\n ...data.option.series[0],\n minAngle: 1,\n label: {\n ...data.option.series[0].label,\n width: 'none',\n overflow: 'break',\n },\n labelLine: {\n show: data.option.series[0].labelLine?.show,\n length: 50,\n length2: 50\n },\n labelLayout() {\n return { \n moverOverlap: 'shiftY',\n hideOverlap: false\n };\n },\n }], \n toolbox: {\n show: true,\n feature: {\n mySaveAsImage: {\n show: data.download.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: data.download.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${data.download.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n });\n });\n }, 500);\n }\n }\n }\n }\n });\n });\n }).catch(() => {\n this.#popup.close();\n return;\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Output,\n Renderer2,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { IBizyPieChartData } from './pie-chart.types';\nimport { DOCUMENT } from '@angular/common';\nimport { BehaviorSubject, Subject, Subscription, auditTime, filter, skip, take, throttleTime } from 'rxjs';\nimport { BizyPieChartPopupComponent } from './pie-chart-popup.component';\nimport { BizyPopupService } from '../popup';\n\nconst EMPTY_CHART = [0];\nconst DEFAULT_CHART_SIZE = '300px';\nconst DEFAULT_DOWNLOAD = {\n show: true,\n label: 'Descargar',\n name: 'Bizy'\n};\n\nconst DEFAULT_EXPAND = {\n show: true,\n label: 'Expandir'\n};\n\nconst DEFAULT_TOOLTIP = {\n show: true\n};\n\nconst DEFAULT_LEGEND = {\n show: false,\n orient: 'vertical' as 'vertical' | 'horizontal',\n position: {\n x: 'auto' as 'left' | 'right' | 'center',\n y: 'auto' as 'top' | 'bottom' | 'center'\n }\n};\n\nconst DEFAULT_LABEL = {\n show: true,\n overflow: 'break' as 'break' | 'truncate',\n line: true\n};\n\n@Component({\n selector: 'bizy-pie-chart',\n template: '',\n styles: [`\n :host {\n display: flex;\n justify-content: center\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyPieChartComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n readonly #popup = inject(BizyPopupService);\n\n @Input() resizeRef: HTMLElement | null = null;\n @Input() centerLabel: string | null = null;\n @Input() tooltip: {show?: boolean, formatter?: (item: any ) => string} = DEFAULT_TOOLTIP\n @Input() legend: {show?: boolean, orient?: 'vertical' | 'horizontal', position?: {x: 'left' | 'right' | 'center', y: 'top' | 'bottom' | 'center'}} | null = null;\n @Input() download: {show?: boolean, label?: string, name?: string} = DEFAULT_DOWNLOAD;\n @Input() expand: { show?: boolean, label?: string} = DEFAULT_EXPAND;\n @Input() label: { show?: boolean, overflow?: 'break' | 'truncate', line?: boolean, formatter?: (item: any ) => string} = DEFAULT_LABEL;\n @Output() onSelect = new EventEmitter<IBizyPieChartData>();\n @Output() onDownload = new EventEmitter<void>();\n\n #echarts: echarts.ECharts | null = null\n\n #resizeObserver: ResizeObserver | null = null;\n #afterViewInitSubscription = new Subscription();\n #resizeSubscription = new Subscription();\n #chartContainer: HTMLDivElement | null = null;\n #afterViewInit = new BehaviorSubject<boolean>(false);\n #resize$ = new Subject<void>();\n #data: Array<{name: string, value: number, itemStyle: {color?: string}, metadata: any}> | typeof EMPTY_CHART = EMPTY_CHART;\n\n ngAfterViewInit() {\n this.#afterViewInit.next(true);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n @Input() set data(data: Array<IBizyPieChartData> | null) {\n if (!data) {\n return;\n }\n\n if (data.length > 0) {\n this.#setChartData(data);\n } else {\n this.#deleteChartContainer();\n\n this.#setChartData(EMPTY_CHART);\n }\n }\n\n async #setChartData(data: Array<IBizyPieChartData> | typeof EMPTY_CHART) {\n this.#afterViewInitSubscription.add(this.#afterViewInit.pipe(filter(value => value === true), take(1)).subscribe(() => {\n /**\n * setTimeout fix angular render problem\n */\n setTimeout(() => {\n this.#createChartContainer()\n \n if (!this.#chartContainer) {\n return;\n }\n \n if (data && data.length > 0 && data[0] !== 0) {\n this.#data = [];\n (<Array<IBizyPieChartData>>data).forEach(_d => {\n if (!_d.value) {\n _d.value = 0;\n }\n \n if (!_d.name) {\n _d.name = '---'\n }\n \n const itemStyle = _d.color ? {color: _d.color} : {};\n \n (<Array<{name: string, value: number, itemStyle: {color?: string}, metadata: any}>>this.#data).push({\n name: _d.name,\n value: _d.value,\n itemStyle,\n metadata: _d.metadata\n })\n });\n } else {\n this.#data = EMPTY_CHART;\n }\n\n const label = {\n show: this.label?.show ?? DEFAULT_LABEL.show,\n overflow: this.label?.overflow ?? DEFAULT_LABEL.overflow,\n formatter: this.label?.formatter\n };\n\n const labelLine = {\n show: this.label?.line ?? true\n }\n \n const series = [{\n type: 'pie',\n radius: '50%',\n center: ['50%', '50%'],\n data: this.#data,\n label,\n labelLine\n }];\n \n const textColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-pie-chart-tooltip-color');\n const textBackgroundColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-pie-chart-tooltip-background-color');\n const borderColor = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-pie-chart-tooltip-border-color');\n \n const toolbox = {\n show: true,\n feature: {\n mySaveAsImage: {\n show: this.download.show ?? DEFAULT_DOWNLOAD.show,\n icon: 'path://M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n title: this.download.label ?? DEFAULT_DOWNLOAD.label,\n onclick: () => {\n setTimeout(() => {\n import('html2canvas').then(module => {\n const html2canvas = module.default;\n html2canvas(this.#chartContainer).then(canvas => {\n var link = this.#renderer.createElement('a');\n link.href = canvas.toDataURL('image/png');\n link.download = `${this.download.name ?? DEFAULT_DOWNLOAD.name}.png`;\n this.#renderer.appendChild(this.#document.body, link);\n link.click();\n this.#renderer.removeChild(this.#document.body, link);\n this.onDownload.emit();\n });\n });\n }, 500);\n }\n },\n myExpandChart: {\n show: this.expand.show ?? DEFAULT_EXPAND.show,\n icon: 'path://M264 96L120 96C106.7 96 96 106.7 96 120L96 264C96 273.7 101.8 282.5 110.8 286.2C119.8 289.9 130.1 287.8 137 281L177 241L256 320L177 399L137 359C130.1 352.1 119.8 350.1 110.8 353.8C101.8 357.5 96 366.3 96 376L96 520C96 533.3 106.7 544 120 544L264 544C273.7 544 282.5 538.2 286.2 529.2C289.9 520.2 287.9 509.9 281 503L241 463L320 384L399 463L359 503C352.1 509.9 350.1 520.2 353.8 529.2C357.5 538.2 366.3 544 376 544L520 544C533.3 544 544 533.3 544 520L544 376C544 366.3 538.2 357.5 529.2 353.8C520.2 350.1 509.9 352.1 503 359L463 399L384 320L463 241L503 281C509.9 287.9 520.2 289.9 529.2 286.2C538.2 282.5 544 273.7 544 264L544 120C544 106.7 533.3 96 520 96L376 96C366.3 96 357.5 101.8 353.8 110.8C350.1 119.8 352.2 130.1 359 137L399 177L320 256L241 177L281 137C287.9 130.1 289.9 119.8 286.2 110.8C282.5 101.8 273.7 96 264 96z',\n title: this.expand.label ?? DEFAULT_EXPAND.label,\n onclick: () => {\n this.#popup.open({\n component: BizyPieChartPopupComponent,\n data: {\n download: {\n show: this.download?.show ?? DEFAULT_DOWNLOAD.show, \n label: this.download?.label ?? DEFAULT_DOWNLOAD.label, \n name: this.download?.name ?? DEFAULT_DOWNLOAD.name, \n },\n option: this.#echarts.getOption()\n }\n })\n }\n }\n },\n emphasis: {\n iconStyle: {\n color: textColor,\n borderColor,\n borderWidth: 1,\n textBackgroundColor,\n textPadding: 5,\n }\n }\n };\n \n const tooltip = {\n show: this.tooltip?.show ?? DEFAULT_TOOLTIP.show,\n trigger: 'item',\n appendToBody: true,\n formatter: this.tooltip?.formatter\n };\n \n let legend = {\n show: this.legend?.show ?? DEFAULT_LEGEND.show,\n orient: this.legend?.orient ?? DEFAULT_LEGEND.orient,\n left: this.legend?.position ? this.legend?.position.x : DEFAULT_LEGEND.position.x,\n top: this.legend?.position ? this.legend?.position.y : DEFAULT_LEGEND.position.y,\n };\n \n let graphic: any;\n if (this.centerLabel) {\n let centerLabelColor = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-pie-chart-center-label-color');\n let { width, height } = this.#chartContainer.getBoundingClientRect();\n let base = Math.min(width, height);\n let fontSize = base / 6;\n graphic = {\n type: 'text',\n left: 'center',\n top: 'center',\n style: {\n text: this.centerLabel,\n fill: centerLabelColor,\n textAlign: 'center',\n fontSize,\n fontWeight: 'bold'\n }\n };\n }\n \n const option: any = {\n tooltip,\n toolbox,\n legend,\n series,\n graphic\n };\n \n import('echarts').then(echarts => {\n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption(option);\n this.#echarts.on('click', (params: any) => {\n this.onSelect.emit({\n name: params.data.name,\n value: params.data.value,\n color: params.data.itemStyle.color,\n metadata: params.data.metadata || {}\n });\n });\n \n this.#resizeSubscription.unsubscribe();\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#resizeSubscription = new Subscription();\n this.#resizeSubscription.add(this.#resize$.pipe(skip(1), auditTime(300), throttleTime(500)).subscribe(() => {\n this.#deleteChartContainer();\n this.#createChartContainer();\n \n if (!this.#chartContainer) {\n return;\n }\n \n this.#echarts = echarts.init(this.#chartContainer);\n Promise.resolve().then(() => {\n this.#echarts.setOption({...option, series: option.series.map(_serie => { return {..._serie, data: this.#data}})});\n this.#echarts.on('click', (params: any) => {\n this.onSelect.emit({\n name: params.data.name,\n value: params.data.value,\n color: params.data.itemStyle.color,\n metadata: params.data.metadata || {}\n });\n });\n });\n }));\n });\n });\n })\n }));\n }\n\n #createChartContainer = () => {\n if (this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n let elementWidth = this.#elementRef.nativeElement.offsetWidth;\n let elementHeight = this.#elementRef.nativeElement.offsetHeight;\n\n let minWidth = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-pie-chart-width');\n let minHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-pie-chart-height');\n\n const width = minWidth ? minWidth : elementWidth ? `${elementWidth * 0.99}px` : DEFAULT_CHART_SIZE;\n const height = minHeight ? minHeight : elementHeight ? `${elementHeight}px` : DEFAULT_CHART_SIZE;\n\n this.#chartContainer = this.#renderer.createElement('div');\n this.#renderer.setStyle(this.#chartContainer, 'width', width);\n this.#renderer.setStyle(this.#chartContainer, 'height', height);\n this.#renderer.appendChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#ref.detectChanges();\n }\n\n #deleteChartContainer = () => {\n if (!this.#chartContainer || !this.#elementRef || !this.#elementRef.nativeElement) {\n return;\n }\n\n this.#echarts.clear();\n this.#renderer.removeChild(this.#elementRef.nativeElement, this.#chartContainer);\n this.#chartContainer = null;\n this.#ref.detectChanges();\n }\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n ngOnDestroy() {\n this.#afterViewInitSubscription.unsubscribe();\n this.#resizeSubscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n\n if (this.#echarts) {\n this.#echarts.clear();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BizyPieChartComponent } from './pie-chart.component';\nimport { BizyPieChartPopupComponent } from './pie-chart-popup.component';\n\nconst COMPONENTS: Array<any> = [\n BizyPieChartComponent,\n BizyPieChartPopupComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyPieChartModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-progress-bar',\n templateUrl: './progress-bar.html',\n styleUrls: ['./progress-bar.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizyProgressBarComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-progress-bar-${Math.random()}`;\n @Input() progress: number | null = null;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<div class=\"bizy-progress-bar\" [ngStyle]=\"{width: progress !== null ? progress + '%' : '0%'}\"></div>","import { NgModule } from '@angular/core';\nimport { BizyProgressBarComponent } from './progress-bar.component';\n\nconst COMPONENTS = [\n BizyProgressBarComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\nexport class BizyProgressBarModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-radio',\n templateUrl: './radio.html',\n styleUrls: ['./radio.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyRadioComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-radio-${Math.random()}`;\n @Input() name: string;\n @Input() selected: boolean = false;\n @Input() disabled: boolean = false;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.selectedChange.emit(!this.selected);\n this.onSelect.emit(event)\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button type=\"button\" (click)=\"_onSelect($event)\" (keyup.enter)=\"_onSelect($event)\" class=\"bizy-radio\" [ngClass]=\"{'bizy-radio--disabled': disabled}\">\n <input \n class=\"bizy-radio__input\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"selected\"/>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <span class=\"bizy-radio__radio\"></span>\n \n <ng-content select=\"[slot=end]\"></ng-content>\n</button>\n","import { NgModule } from '@angular/core';\nimport { BizyRadioComponent } from './radio.component';\n\nconst COMPONENTS: Array<any> = [\n BizyRadioComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyRadioModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section',\n templateUrl: './section.html',\n styleUrls: ['./section.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-section-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section-start',\n templateUrl: './section-start.html',\n styleUrls: ['./section-start.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionStartComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-section-start-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section-center',\n templateUrl: './section-center.html',\n styleUrls: ['./section-center.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionCenterComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-center-start-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-section-end',\n templateUrl: './section-end.html',\n styleUrls: ['./section-end.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id'\n }\n})\nexport class BizySectionEndComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-section-end-${Math.random()}`;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { BizySectionComponent } from './section.component';\nimport { BizySectionStartComponent } from './section-start/section-start.component';\nimport { BizySectionCenterComponent } from './section-center/section-center.component';\nimport { BizySectionEndComponent } from './section-end/section-end.component';\n\nconst COMPONENTS: Array<any> = [\n BizySectionComponent,\n BizySectionStartComponent,\n BizySectionCenterComponent,\n BizySectionEndComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySectionModule {}\n","import { NgModule } from '@angular/core';\nimport { BizySelectComponent } from './select.component';\nimport { BizySelectOptionComponent } from './select-option/select-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizySelectComponent,\n BizySelectOptionComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySelectModule {}\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ContentChildren, QueryList, ChangeDetectorRef, ElementRef, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { BizyAccordionComponent } from '../../accordion/accordion.component';\n\n\n@Component({\n selector: 'bizy-sidebar-option',\n templateUrl: './sidebar-option.html',\n styleUrls: ['./sidebar-option.css'],\n imports: [BizyAccordionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarOptionComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizySidebarOptionComponent) options: QueryList<BizySidebarOptionComponent>;\n @Input() id: string = `bizy-sidebar-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selectable: boolean = true;\n @Input() customClass: string = '';\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _turnOn$ = new BehaviorSubject<boolean>(false);\n _selected: boolean = false;\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n const turnOn = selected && selected !== this._selected;\n this._turnOn$.next(turnOn);\n this._selected = selected;\n this.#ref.detectChanges();\n }\n\n _onSelect(event: PointerEvent): void {\n if (this.disabled || !this.selectable) {\n return;\n }\n\n this.selectedChange.emit(!this._selected);\n this.onSelect.emit(event);\n }\n\n _setSelected(selected: boolean) {\n this._selected = selected;\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getSelected = (): boolean => {\n return this._selected;\n }\n}","<bizy-accordion\n class=\"{{customClass}}\"\n [id]=\"id\"\n customClass=\"bizy-sidebar-option {{_selected && (!options || options.length === 0) ? 'bizy-sidebar-option--selected' : ''}} {{!selectable ? 'bizy-sidebar-option--no-selectable' : ''}} {{disabled ? 'bizy-sidebar-option--disabled' : ''}}\"\n [opened]=\"_selected\"\n (onSelect)=\"_onSelect($event)\">\n\n <ng-content></ng-content>\n\n @if (options && options.length > 0) {\n <ng-container accordion-option>\n <ng-content select=\"bizy-sidebar-option\"></ng-content>\n </ng-container>\n }\n\n</bizy-accordion>","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, inject, Input, Output, QueryList } from '@angular/core';\nimport { BizySidebarOptionComponent } from '../sidebar-option/sidebar-option.component';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'bizy-sidebar-floating-option',\n templateUrl: './sidebar-floating-option.html',\n styleUrls: ['./sidebar-floating-option.css'],\n imports: [CommonModule, OverlayModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarFloatingOptionComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizySidebarOptionComponent) options!: QueryList<BizySidebarOptionComponent>;\n @Input() id: string = `bizy-sidebar-floating-option-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selectable: boolean = true;\n @Input() offsetX: number = 0;\n @Input() offsetY: number = 0;\n @Input() customClass: string = '';\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _turnOn$ = new BehaviorSubject<boolean>(false);\n _selected: boolean = false;\n _opened: boolean = false;\n\n @Input() set selected(selected: boolean) {\n if (typeof selected === 'undefined' || selected === null) {\n return;\n }\n\n const turnOn = selected && selected !== this._selected;\n this._turnOn$.next(turnOn);\n this._opened = turnOn;\n this._selected = selected;\n this.#ref.detectChanges();\n }\n\n #subscription = new Subscription();\n #optionSubscription = new Subscription();\n\n ngAfterContentInit() {\n if (this.options && this.options.length > 0) {\n this.#listenOptionChanges(this.options.toArray());\n this.#subscription.add(this.options.changes.subscribe(() => {\n this.#optionSubscription.unsubscribe();\n this.#optionSubscription = new Subscription();\n this.#listenOptionChanges(this.options.toArray());\n }))\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this.selectable) {\n return;\n }\n\n this._opened = !this._opened;\n this.#ref.detectChanges();\n this.selectedChange.emit(this._opened);\n this.onSelect.emit(event);\n }\n\n close = (event: PointerEvent & {target: {id: string}}) => {\n if (event && event.target && event.target.id && event.target.id === this.id) {\n return;\n }\n\n this._opened = false;\n this.#ref.detectChanges();\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n #listenOptionChanges = (options: Array<BizySidebarOptionComponent>) => {\n options.forEach(_option => {\n this.#optionSubscription.add(_option._turnOn$.subscribe(turnOn => {\n if (turnOn) {\n if (!_option.options || _option.options.length === 0) {\n this._opened = false;\n this.#ref.detectChanges();\n }\n\n this.#selectParents(this.options.toArray(), _option);\n }\n }));\n\n if (_option.options && _option.options.length > 0) {\n this.#listenOptionChanges(_option.options.toArray());\n }\n });\n }\n\n #selectParents = (options: Array<BizySidebarOptionComponent>, option: BizySidebarOptionComponent): boolean => {\n let founded: boolean = false;\n for (let i = 0; i < options.length; i++) {\n if (options[i].getId() === option.getId()) {\n founded = true;\n } else if (options[i].options && options[i].options.length > 0) {\n const _founded = this.#selectParents(options[i].options.toArray(), option);\n if (_founded) {\n founded = true;\n options[i].selectedChange.emit(true);\n } else {\n options[i].selectedChange.emit(false);\n }\n \n } else {\n options[i].selectedChange.emit(false);\n }\n }\n\n return founded;\n };\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#optionSubscription.unsubscribe();\n }\n}","<button \n type=\"button\"\n class=\"bizy-sidebar-floating-option {{customClass}}\"\n [ngClass]=\"{'bizy-sidebar-floating-option--selected': _selected, 'bizy-sidebar-floating-option--no-selectable': !selectable, 'bizy-sidebar-floating-option--disabled': disabled}\"\n [id]=\"id\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\"\n cdkOverlayOrigin \n #bizySidebarFloatingOptionTrigger=\"cdkOverlayOrigin\">\n\n <span class=\"bizy-sidebar-floating-option__content\">\n <ng-content></ng-content>\n </span>\n \n</button>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOffsetX]=\"offsetX\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOrigin]=\"bizySidebarFloatingOptionTrigger\"\n (overlayOutsideClick)=\"close($event)\"\n [cdkConnectedOverlayOpen]=\"_opened && options && options.length > 0\">\n\n <span class=\"bizy-sidebar-floating-option__options\">\n\n <ng-content select=\"bizy-sidebar-floating-option-title\"></ng-content>\n\n <ng-content select=\"bizy-sidebar-option\"></ng-content>\n\n </span>\n\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ContentChildren, QueryList, AfterContentInit, ElementRef, inject} from '@angular/core';\nimport { BizySidebarOptionComponent } from './sidebar-option/sidebar-option.component';\nimport { Subscription } from 'rxjs';\nimport { BizySidebarFloatingOptionComponent } from './sidebar-floating-option/sidebar-floating-option.component';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-sidebar',\n templateUrl: './sidebar.html',\n styleUrls: ['./sidebar.css'],\n imports: [\n CommonModule,\n OverlayModule\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-sidebar-${Math.random()}`;\n @ContentChildren(BizySidebarOptionComponent) options!: QueryList<BizySidebarOptionComponent>;\n @ContentChildren(BizySidebarFloatingOptionComponent) floatingOptions!: QueryList<BizySidebarFloatingOptionComponent>;\n @Output() toggleChange = new EventEmitter<boolean>(); \n @Output() onToggle = new EventEmitter<PointerEvent>(); \n\n _toggle: boolean = false;\n #subscription = new Subscription();\n #optionSubscription = new Subscription();\n #floatingOptionSubscription = new Subscription();\n\n @Input() set toggle(toggle: boolean) {\n if (typeof toggle === 'undefined' || toggle === null) {\n return;\n }\n\n this._toggle = toggle;\n\n this.#unsubscribe();\n this.#subscription = new Subscription();\n this.#optionSubscription = new Subscription();\n this.#floatingOptionSubscription = new Subscription();\n\n setTimeout(() => {\n this.#listenOptions();\n }, 500);\n }\n\n ngAfterContentInit() {\n this.#listenOptions();\n }\n\n #listenOptions() {\n if (this.options && this.options.length > 0) {\n this.#listenOptionChanges(this.options.toArray());\n this.#subscription.add(this.options.changes.subscribe(() => {\n this.#optionSubscription.unsubscribe();\n this.#optionSubscription = new Subscription();\n this.#listenOptionChanges(this.options.toArray());\n }))\n }\n\n if (this.floatingOptions && this.floatingOptions.length > 0) {\n this.#listenFloatingOptionChanges(this.floatingOptions.toArray());\n this.#subscription.add(this.floatingOptions.changes.subscribe(() => {\n this.#floatingOptionSubscription.unsubscribe();\n this.#floatingOptionSubscription = new Subscription();\n this.#listenFloatingOptionChanges(this.floatingOptions.toArray());\n }))\n }\n }\n\n #listenOptionChanges = (options: Array<BizySidebarOptionComponent>) => {\n options.forEach(_option => {\n this.#optionSubscription.add(_option._turnOn$.subscribe(turnOn => {\n if (turnOn) {\n this.#selectParents(this.options.toArray(), _option);\n }\n }));\n\n if (_option.options && _option.options.length > 0) {\n this.#listenOptionChanges(_option.options.toArray());\n }\n });\n }\n\n #listenFloatingOptionChanges = (options: Array<BizySidebarFloatingOptionComponent>) => {\n options.forEach(_option => {\n this.#floatingOptionSubscription.add(_option._turnOn$.subscribe(turnOn => {\n if (turnOn) {\n this.floatingOptions.forEach(__option => {\n if (__option.getId() !== _option.getId()) {\n setTimeout(() => {\n __option.selectedChange.emit(false);\n }, 100);\n }\n })\n }\n }));\n });\n }\n\n #selectParents = (options: Array<BizySidebarOptionComponent>, option: BizySidebarOptionComponent): boolean => {\n let founded: boolean = false;\n for (let i = 0; i < options.length; i++) {\n if (options[i].getId() === option.getId()) {\n founded = true;\n } else if (options[i].options && options[i].options.length > 0) {\n const _founded = this.#selectParents(options[i].options.toArray(), option);\n if (_founded) {\n founded = true;\n setTimeout(() => {\n options[i].selectedChange.emit(true);\n }, 100)\n } else {\n setTimeout(() => {\n options[i].selectedChange.emit(false);\n }, 100)\n }\n \n } else {\n setTimeout(() => {\n options[i].selectedChange.emit(false);\n }, 100)\n }\n }\n\n return founded;\n };\n\n #unsubscribe() {\n this.#subscription.unsubscribe();\n this.#optionSubscription.unsubscribe();\n this.#floatingOptionSubscription.unsubscribe();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onToggle(event: PointerEvent) {\n this.toggleChange.emit(!this._toggle);\n this.onToggle.emit(event)\n }\n\n ngOnDestroy() {\n this.#unsubscribe();\n }\n}","<div class=\"bizy-sidebar\" [id]=\"id\">\n\n <span class=\"bizy-sidebar__tab\" id=\"bizy-sidebar-tab\" (click)=\"_onToggle($event)\">\n <svg fill=\"none\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" class=\"bizy-sidebar__tab__svg\">\n <path class=\"bizy-sidebar__tab__svg__path\" d=\"M10 6C8.89543 6 8 5.10457 8 4C8 2.89543 8.89543 2 10 2C11.1046 2 12 2.89543 12 4C12 5.10457 11.1046 6 10 6Z\"/>\n <path class=\"bizy-sidebar__tab__svg__path\" d=\"M10 12C8.89543 12 8 11.1046 8 10C8 8.89543 8.89543 8 10 8C11.1046 8 12 8.89543 12 10C12 11.1046 11.1046 12 10 12Z\"/>\n <path class=\"bizy-sidebar__tab__svg__path\" d=\"M10 18C8.89543 18 8 17.1046 8 16C8 14.8954 8.89543 14 10 14C11.1046 14 12 14.8954 12 16C12 17.1046 11.1046 18 10 18Z\"/>\n </svg>\n </span>\n\n <input class=\"bizy-sidebar__toggle\" id=\"bizy-sidebar-toggle\" type=\"checkbox\" [checked]=\"_toggle\"/>\n\n <span class=\"bizy-sidebar__content bizy-sidebar__top\" [ngClass]=\"{'bizy-sidebar__content--shrinked': _toggle}\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n </span>\n\n <span class=\"bizy-sidebar__content\" [ngClass]=\"{'bizy-sidebar__content--shrinked': _toggle}\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <ng-content></ng-content>\n\n </span>\n\n <span class=\"bizy-sidebar__content bizy-sidebar__bottom\" [ngClass]=\"{'bizy-sidebar__content--shrinked': _toggle}\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n </span>\n\n</div>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-sidebar-floating-option-title',\n templateUrl: './sidebar-floating-option-title.html',\n styleUrls: ['./sidebar-floating-option-title.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizySidebarFloatingOptionTitleComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-sidebar-floating-option-title-${Math.random()}`;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<span class=\"bizy-sidebar-floating-option-title {{customClass}}\" [id]=\"id\">\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { BizySidebarComponent } from './sidebar.component';\nimport { BizySidebarFloatingOptionComponent } from './sidebar-floating-option/sidebar-floating-option.component';\nimport { BizySidebarFloatingOptionTitleComponent } from './sidebar-floating-option-title/sidebar-floating-option-title.component';\nimport { BizySidebarOptionComponent } from './sidebar-option/sidebar-option.component';\n\nconst COMPONENTS: Array<any> = [\n BizySidebarComponent,\n BizySidebarFloatingOptionComponent,\n BizySidebarFloatingOptionTitleComponent,\n BizySidebarOptionComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySidebarModule {}\n","export enum BIZY_SKELETON_SHAPE {\n CIRCLE = 'circle',\n SQUARE = 'square'\n}","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\nimport { BIZY_SKELETON_SHAPE } from './skeleton.types';\n\n\n@Component({\n selector: 'bizy-skeleton',\n templateUrl: './skeleton.html',\n styleUrls: ['./skeleton.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n '[style.width]': 'width',\n '[style.min-width]': 'width',\n '[style.height]': 'height',\n '[style.min-height]': 'height',\n '[class]': 'customClass',\n '[style.border-radius]': 'shape === BIZY_SKELETON_SHAPE.CIRCLE ? \"50%\" : \"0\"'\n }\n})\nexport class BizySkeletonComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-skeleton-${Math.random()}`;\n @Input() shape: BIZY_SKELETON_SHAPE = BIZY_SKELETON_SHAPE.SQUARE;\n @Input() height: string;\n @Input() width: string;\n @Input() customClass: string = '';\n\n readonly BIZY_SKELETON_SHAPE = BIZY_SKELETON_SHAPE;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","","import { NgModule } from '@angular/core';\nimport { BizySkeletonComponent } from './skeleton.component';\n\nconst COMPONENTS: Array<any> = [\n BizySkeletonComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySkeletonModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'bizy-slider',\n templateUrl: './slider.html',\n styleUrls: ['./slider.css'],\n imports: [CommonModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BizySliderComponent {\n readonly #elementRef = inject(ElementRef);\n @ViewChild('fromSlider') fromSlider: ElementRef\n @ViewChild('toSlider') toSlider: ElementRef\n @Input() minLimit: number = 0;\n @Input() maxLimit: number = 100;\n @Output() onChange = new EventEmitter<{min: number, max: number}>();\n\n _min: number = 0;\n _max: number = 100;\n\n\n @Input() set min(min: number) {\n if (typeof min === 'undefined' || min == null) {\n return;\n }\n\n this._min = min;\n };\n\n @Input() set max(max: number) {\n if (typeof max === 'undefined' || max == null) {\n return;\n }\n\n this._max = max;\n };\n\n setFromSlider(value: number) {\n if (value > this._max ) {\n this._min = this._max;\n this.fromSlider.nativeElement.value = this._max;\n } else {\n this._min = value;\n }\n\n this.onChange.emit({min: this._min, max: this._max})\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n setToSlider(value: number) {\n if (value < this._min ) {\n this._max = this._min;\n this.toSlider.nativeElement.value = this._min;\n } else {\n this._max = value;\n }\n\n this.onChange.emit({min: this._min, max: this._max})\n }\n}\n","<div class=\"bizy-slider\">\n\n <input \n #fromSlider\n class=\"bizy-slider__from\"\n type=\"range\"\n [ngModel]=\"_min\"\n [min]=\"minLimit\"\n [max]=\"maxLimit\"\n (ngModelChange)=\"setFromSlider($event)\"/>\n\n <input \n #toSlider\n type=\"range\"\n [ngStyle]=\"{'z-index': 2, background: 'linear-gradient(to right, var(--bizy-slider-color) 0%, var(--bizy-slider-color) ' + ((_min - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-range-color) ' + ((_min - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-range-color) ' + ((_max - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-color) ' + ((_max - minLimit) / (maxLimit - minLimit)) * 100 + '%, var(--bizy-slider-color) 100%)'}\"\n [ngModel]=\"_max\"\n [min]=\"minLimit\"\n [max]=\"maxLimit\"\n (ngModelChange)=\"setToSlider($event)\"/>\n</div>","import { NgModule } from '@angular/core';\nimport { BizySliderComponent } from './slider.component';\n\nconst COMPONENTS: Array<any> = [\n BizySliderComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizySliderModule {}\n","import { CommonModule, DOCUMENT } from '@angular/common';\nimport { AfterViewChecked, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Component({\n selector: 'bizy-stacked-bar-chart-segment',\n templateUrl: './stacked-bar-chart-segment.html',\n styleUrls: ['./stacked-bar-chart-segment.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n host: { \n '[id]': 'id',\n '[style.width]': 'this._width',\n }\n})\nexport class BizyStackedBarChartSegmentComponent implements AfterViewChecked {\n readonly #document = inject(DOCUMENT);\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-stacked-bar-chart-segment-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() name: string | null = null;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() onLegendSelect = new EventEmitter<PointerEvent>();\n\n _width: string = '100%';\n\n readonly #color = new BehaviorSubject<string>('');\n get color$(): Observable<string> {\n return this.#color.asObservable();\n }\n\n readonly #value = new BehaviorSubject<number>(0);\n get value$(): Observable<number> {\n return this.#value.asObservable();\n }\n\n @Input() set value(value: number) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n this.#value.next(value);\n }\n\n ngAfterViewChecked() {\n this.#color.next(this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-stacked-bar-chart-color')!);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n _setWidth(width: string) {\n this._width = width;\n }\n\n _getValue = () => this.#value.value;\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n}","<button \n type=\"button\"\n class=\"bizy-stacked-bar-chart-segment\"\n [class.bizy-stacked-bar-chart-segment--disabled]=\"disabled\"\n [class.bizy-stacked-bar-chart-segment--empty]=\"!(value$ | async)\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n</button>","export enum ANURA_STACKED_BAR_CHART_LEGEND_POSITION {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport interface IBizyStackedBarChartLegends {\n show?: boolean;\n position?: ANURA_STACKED_BAR_CHART_LEGEND_POSITION;\n}","import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, inject, Input, QueryList } from '@angular/core';\nimport { BizyStackedBarChartSegmentComponent } from './stacked-bar-chart-segment/stacked-bar-chart-segment.component';\nimport { ANURA_STACKED_BAR_CHART_LEGEND_POSITION, IBizyStackedBarChartLegends } from './stacked-bar-chart.types';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\nconst DEFAULT_LEGENDS: IBizyStackedBarChartLegends = {\n show: true,\n position: ANURA_STACKED_BAR_CHART_LEGEND_POSITION.BOTTOM\n};\n\n@Component({\n selector: 'bizy-stacked-bar-chart',\n templateUrl: './stacked-bar-chart.html',\n styleUrls: ['./stacked-bar-chart.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n '[id]': 'id',\n }\n})\nexport class BizyStackedBarChartComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-stacked-bar-chart-${Math.random()}`;\n\n @ContentChildren(BizyStackedBarChartSegmentComponent) segments: QueryList<BizyStackedBarChartSegmentComponent> | null = null;\n\n _total: number = 0;\n _forcedTotal: number = 0;\n _legends: IBizyStackedBarChartLegends = DEFAULT_LEGENDS;\n\n #segmentSubscription = new Subscription();\n #segmentValueSubscription = new Subscription();\n\n readonly ANURA_STACKED_BAR_CHART_LEGEND_POSITION = ANURA_STACKED_BAR_CHART_LEGEND_POSITION;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngAfterContentInit(): void {\n if (!this.segments || this.segments.length === 0) {\n return;\n }\n\n this.#segmentSubscription = new Subscription();\n this.#segmentSubscription.add(this.segments.changes.subscribe(_segments => {\n\n this.#segmentValueSubscription.unsubscribe();\n this.#segmentValueSubscription = new Subscription();\n \n _segments.forEach(_segment => {\n this.#segmentValueSubscription.add(_segment.value$.subscribe(_value => {\n this.#calculateWidth();\n }))\n });\n }));\n\n this.segments.forEach(_segment => {\n this.#segmentValueSubscription.add(_segment.value$.subscribe(_value => {\n this.#calculateWidth();\n }))\n });\n }\n\n @Input() set legends(legends: IBizyStackedBarChartLegends) {\n if (!legends) {\n return;\n }\n\n this._legends = {\n ...legends,\n show: typeof legends.show !== 'undefined' && legends.show !== null ? legends.show : DEFAULT_LEGENDS.show,\n position: legends.position || DEFAULT_LEGENDS.position\n }\n }\n\n @Input() set total(total: number) {\n if (!total) {\n return;\n }\n\n this._forcedTotal = total;\n\n this.#calculateWidth();\n }\n\n #calculateWidth() {\n if (!this.segments) {\n return;\n }\n\n let _total = this._forcedTotal || this.total || 0;\n\n if (!_total) {\n _total = 0;\n for (let i = 0; i < this.segments.length; i++) {\n _total += this.segments.get(i)._getValue() || 0;\n }\n }\n\n if (_total) {\n for (let i = 0; i < this.segments.length; i++) {\n this.segments.get(i)._setWidth(`${(this.segments.get(i)._getValue() / _total) * 100}%`);\n }\n }\n }\n\n ngOnDestroy() {\n this.#segmentSubscription.unsubscribe();\n this.#segmentValueSubscription.unsubscribe();\n }\n}","@if(segments && _legends.show && _legends.position === ANURA_STACKED_BAR_CHART_LEGEND_POSITION.TOP) {\n <div class=\"bizy-stacked-bar-chart__legends\">\n @for (segment of segments; track segment.id ?? i; let i = $index) {\n <button \n type=\"button\"\n class=\"bizy-stacked-bar-chart__legends__legend\"\n [class.bizy-button--disabled]=\"segment.disabled\"\n (click)=\"segment.disabled ? null : segment.onLegendSelect.emit($event)\"\n (keyup.enter)=\"segment.disabled ? null : segment.onLegendSelect.emit($event)\">\n <span class=\"bizy-stacked-bar-chart__legends__legend__bullet\"[style.backgroundColor]=\"(segment.color$ | async)\"></span>\n <h6>{{segment.name}} <strong>{{(segment.value$ | async) || 0}}</strong></h6>\n </button>\n }\n </div>\n}\n\n<div class=\"bizy-stacked-bar-chart\">\n <ng-content select=\"bizy-stacked-bar-chart-segment\"></ng-content>\n</div>\n\n\n@if(segments && _legends.show && _legends.position === ANURA_STACKED_BAR_CHART_LEGEND_POSITION.BOTTOM) {\n <div class=\"bizy-stacked-bar-chart__legends\">\n @for (segment of segments; track segment.id ?? i; let i = $index) {\n <button \n type=\"button\"\n class=\"bizy-stacked-bar-chart__legends__legend\"\n [class.bizy-button--disabled]=\"segment.disabled\"\n (click)=\"segment.disabled ? null : segment.onLegendSelect.emit($event)\"\n (keyup.enter)=\"segment.disabled ? null : segment.onLegendSelect.emit($event)\">\n <span class=\"bizy-stacked-bar-chart__legends__legend__bullet\"[style.backgroundColor]=\"(segment.color$ | async)\"></span>\n <h6>{{segment.name}} <strong>{{(segment.value$ | async) || 0}}</strong></h6>\n </button>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { BizyStackedBarChartComponent } from './stacked-bar-chart.component';\nimport { BizyStackedBarChartSegmentComponent } from './stacked-bar-chart-segment/stacked-bar-chart-segment.component';\n\nconst COMPONENTS: Array<any> = [\n BizyStackedBarChartComponent,\n BizyStackedBarChartSegmentComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyStackedBarChartModule {}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { ChangeDetectorRef, Directive, Inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BizyTableRowComponent } from '../table-row/table-row.component';\n\n@Directive({\n selector: '[tableFor]',\n})\n\nexport class BizyTableScrollingDirective {\n\n #items = new BehaviorSubject<Array<unknown>>([]);\n\n get items$(): Observable<Array<unknown>> {\n return this.#items.asObservable();\n }\n\n @Input()\n set tableForIn(value: Array<unknown>) {\n this.#items.next(value);\n } \n\n constructor(\n @Inject(ViewContainerRef) public viewContainerRef: ViewContainerRef,\n @Inject(TemplateRef) public template: TemplateRef<BizyTableRowComponent>,\n @Inject(ChangeDetectorRef) public ref: ChangeDetectorRef,\n ) { }\n}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n Input,\n inject,\n} from '@angular/core';\n\n@Directive({\n selector: '[bizyTableColumnFixed]',\n})\nexport class BizyTableColumnFixedDirective {\n readonly #elementRef = inject(ElementRef);\n readonly #renderer = inject(Renderer2);\n #originalBoxShadow: string = '';\n #originalBackgroundColor: string = '';\n #originalZIndex: string = '';\n #originalPosition: string = '';\n \n ngAfterViewInit() {\n const computedStyle = window.getComputedStyle(this.#elementRef.nativeElement);\n this.#originalBoxShadow = computedStyle.boxShadow;\n this.#originalZIndex = computedStyle.zIndex;\n this.#originalBackgroundColor = computedStyle.backgroundColor;\n this.#originalPosition = computedStyle.position;\n }\n\n\n @Input('bizyTableColumnFixed') set tableColumnFixed(value: boolean) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n if (value) {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'zIndex', '1');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'backgroundColor', 'inherit');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'position', 'relative');\n\n this.#elementRef.nativeElement.setMarginLeft = this.setMarginLeft;\n } else {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'zIndex', this.#originalZIndex);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'position', this.#originalPosition);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'backgroundColor', this.#originalBackgroundColor);\n this.#elementRef.nativeElement.setMarginLeft = null;\n }\n }\n\n setMarginLeft = (marginLeft: number): void => {\n if (marginLeft > 0) {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'boxShadow', '16px 0px 15px -5px rgba(0,0,0,0.37)');\n } else {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'zIndex', '0');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'boxShadow', this.#originalBoxShadow);\n }\n\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'left', `${marginLeft - 5}px`);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'paddingLeft', '5px');\n }\n}\n\n","\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, inject, ElementRef, HostListener } from '@angular/core';\n\n@Component({\n selector: 'bizy-table-column',\n templateUrl: './table-column.html',\n styleUrls: ['./table-column.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableColumnComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-table-column-${Math.random()}`;\n @Input() customClass: string = '';\n @Output() contextMenu = new EventEmitter<MouseEvent>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n @HostListener('contextmenu', ['$event'])\n onRightClick(event: MouseEvent) {\n this.contextMenu.emit(event);\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n setMarginLeft(margin: number): void {\n if (!this.#elementRef.nativeElement || !this.#elementRef.nativeElement.setMarginLeft) {\n return;\n }\n\n this.#elementRef.nativeElement.setMarginLeft(margin);\n }\n}","<button \n type=\"button\"\n [id]=\"id\"\n (click)=\"onSelect.emit($event)\"\n (keyup.enter)=\"onSelect.emit($event)\"\n class=\"bizy-table-column {{customClass}}\">\n\n <ng-content></ng-content>\n \n</button>","import { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, Output, EventEmitter, ElementRef, ContentChildren, QueryList, inject } from '@angular/core';\nimport { BizyTableColumnComponent } from '../table-column/table-column.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-table-header',\n templateUrl: './table-header.html',\n styleUrls: ['./table-header.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableHeaderComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTableColumnComponent) columns: QueryList<BizyTableColumnComponent>;\n @Input() id: string = `bizy-table-header-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() selected: boolean = false;\n @Input() selectable: boolean | null = null;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n marginRight = 0;\n\n getId = (): string => {\n return this.id;\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n setSelectable = (selectable: boolean): void => {\n if (this.selectable === false) {\n return;\n }\n\n this.selectable = selectable;\n this.#ref.detectChanges();\n }\n\n setMarginRight(margin: number) {\n this.marginRight = margin - 5;\n this.#ref.detectChanges();\n }\n\n setMarginLeft(margin: number) {\n if (this.columns.length === 0) {\n return;\n }\n\n this.columns.forEach(_column => {\n _column.setMarginLeft(margin);\n this.#ref.detectChanges();\n })\n }\n}","<div\n [id]=\"id\"\n class=\"bizy-table-header {{customClass}}\">\n\n <ng-content select=\"bizy-table-column\"></ng-content>\n\n @if (selectable !== null) {\n <span\n class=\"bizy-table-header__checkbox-wrapper\"\n [ngStyle]=\"{right: marginRight + 'px'}\"\n [ngClass]=\"{'bizy-table-footer__checkbox--shadow': marginRight > 0}\">\n <bizy-checkbox\n [selected]=\"selected\"\n (selectedChange)=\"selectedChange.emit($event)\"\n (onSelect)=\"onSelect.emit($event)\"\n [ngClass]=\"{'bizy-table-header__checkbox--hidden': selectable === false}\">\n </bizy-checkbox>\n </span>\n }\n\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, inject, Input, QueryList } from '@angular/core';\nimport { BizyTableColumnComponent } from '../table-column/table-column.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-table-footer',\n templateUrl: './table-footer.html',\n styleUrls: ['./table-footer.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableFooterComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTableColumnComponent) columns: QueryList<BizyTableColumnComponent>;\n @Input() id: string = `bizy-table-footer-${Math.random()}`;\n @Input() customClass: string = '';\n\n marginRight = 0;\n\n _selectable: boolean = false;\n\n getId = (): string => {\n return this.id;\n }\n\n setSelectable = (selectable: boolean): void => {\n this._selectable = selectable;\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n setMarginRight(margin: number) {\n this.marginRight = margin - 5;\n this.#ref.detectChanges();\n }\n\n setMarginLeft(margin: number) {\n if (this.columns.length === 0) {\n return;\n }\n\n this.columns.forEach(_column => {\n _column.setMarginLeft(margin);\n this.#ref.detectChanges();\n })\n }\n}","<div\n [id]=\"id\"\n class=\"bizy-table-footer {{customClass}}\">\n\n <ng-content select=\"bizy-table-column\"></ng-content>\n\n\n @if (_selectable) {\n <span\n class=\"bizy-table-footer__checkbox-wrapper\"\n [ngStyle]=\"{right: marginRight + 'px'}\"\n [ngClass]=\"{'bizy-table-footer__checkbox--shadow': marginRight > 0}\">\n <bizy-checkbox\n class=\"bizy-table-footer__checkbox\">\n </bizy-checkbox>\n </span>\n }\n\n</div>","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef, ContentChildren, QueryList, ElementRef, inject } from '@angular/core';\nimport { BizyTableColumnComponent } from '../table-column/table-column.component';\nimport { CommonModule } from '@angular/common';\nimport { BizyAccordionComponent } from '../../accordion/accordion.component';\n\n@Component({\n selector: 'bizy-table-row',\n templateUrl: './table-row.html',\n styleUrls: ['./table-row.css'],\n imports: [CommonModule, BizyAccordionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableRowComponent {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTableColumnComponent) columns: QueryList<BizyTableColumnComponent>;\n @Input() id: string = `bizy-table-row-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() opened: boolean = false;\n @Input() selectable: boolean | null = null;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() openedChange = new EventEmitter<boolean>();\n @Output() onOpen = new EventEmitter<PointerEvent>();\n\n marginRight = 0;\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n _onOpen(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.openedChange.emit(!this.opened);\n this.onOpen.emit(event);\n }\n\n getId = (): string => {\n return this.id;\n }\n\n getSelected = (): boolean => {\n return this.selected;\n }\n\n setSelectable = (selectable: boolean): void => {\n if (this.selectable === false) {\n return;\n }\n\n this.selectable = selectable;\n this.#ref.detectChanges();\n }\n\n setSelected = (selected: boolean): void => {\n if (this.selectable === false) {\n return;\n }\n \n this.selected = selected;\n this.selectedChange.emit(selected);\n this.#ref.detectChanges();\n }\n\n setMarginRight(margin: number) {\n this.marginRight = margin - 5;\n this.#ref.detectChanges();\n }\n\n setMarginLeft(margin: number) {\n if (this.columns.length === 0) {\n return;\n }\n\n this.columns.forEach(_column => {\n _column.setMarginLeft(margin);\n this.#ref.detectChanges();\n })\n }\n}","<bizy-accordion\n class=\"bizy-table-row__accordion\"\n customClass=\"bizy-table-row__accordion {{disabled ? 'bizy-table-row--disabled' : ''}} {{selected ? 'bizy-table-row--selected' : ''}} {{opened ? 'bizy-table-row--opened' : ''}}\"\n [(opened)]=\"opened\"\n (onSelect)=\"_onOpen($event)\">\n\n <button\n type=\"button\"\n [id]=\"id\"\n class=\"bizy-table-row {{customClass}}\"\n (click)=\"selectedChange.emit(!selected)\"\n (keyup.enter)=\"selectedChange.emit(!selected)\"\n [ngClass]=\"{'bizy-table-row--disabled': disabled, 'bizy-table-row--selected': selected}\">\n\n <ng-content select=\"bizy-table-column\"></ng-content>\n\n @if (selectable !== null) {\n <bizy-checkbox\n class=\"bizy-table-row__checkbox\"\n [ngStyle]=\"{right: marginRight + 'px'}\"\n [ngClass]=\"{'bizy-table-row__checkbox--hidden': selectable === false, 'bizy-table-row__checkbox--shadow': marginRight > 0}\"\n [selected]=\"selected\"\n [disabled]=\"disabled\"\n (selectedChange)=\"selectedChange.emit($event)\"\n (onSelect)=\"onSelect.emit($event); $event.stopPropagation()\">\n </bizy-checkbox>\n }\n\n </button>\n\n <ng-content accordion-option select=\"bizy-table-row-expand-content\"></ng-content>\n\n</bizy-accordion>","import { debounceTime, fromEvent, Observable, skip, Subscription } from 'rxjs';\nimport {\n Component,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n Inject,\n ElementRef,\n Input,\n OnDestroy,\n ChangeDetectorRef,\n DOCUMENT,\n inject\n} from '@angular/core';\nimport { BizyTableRowComponent } from '../table-row/table-row.component';\nimport { BizyTableScrollingDirective } from './table-scrolling.directive';\nimport { CommonModule } from '@angular/common';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\n\n@Component({\n selector: 'bizy-table-scrolling',\n templateUrl: './table-scrolling.html',\n styleUrls: ['./table-scrolling.css'],\n imports: [CommonModule, ScrollingModule]\n})\n\n// FIX: This components fixes the bug with Angular CDK virtual scrolling not supporting content projection.\n// https://github.com/angular/components/issues/15277\nexport class BizyTableScrollingComponent implements OnDestroy {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ViewChild(CdkVirtualScrollViewport) viewport!: CdkVirtualScrollViewport;\n @ViewChild('tableScrollingContent') content: TemplateRef<object>;\n\n #view: ViewContainerRef;\n items$: Observable<Array<unknown>>;\n itemTemplate: TemplateRef<BizyTableRowComponent>;\n\n itemSize: number;\n \n #subscription = new Subscription();\n #scrollTop: number = 0;\n\n /** Called by the virtual-for directive inside of the viewport. */\n public attachView(tableDirective: BizyTableScrollingDirective) {\n if (this.#view) {\n return;\n }\n \n let itemSize = 30;\n const rowHeight = this.#getClosestCssVariable(this.#elementRef.nativeElement, '--bizy-table-row-height');\n const fontSize = getComputedStyle(this.#document.documentElement).getPropertyValue('font-size');\n const gap = Number(fontSize.split('px')[0]) * 0.1;\n if (rowHeight && rowHeight.includes('rem')) {\n itemSize = Number(fontSize.split('px')[0]) * Number(rowHeight.split('rem')[0]);\n } else if (rowHeight && rowHeight.includes('px')) {\n itemSize = Number(rowHeight.split('px')[0]);\n }\n this.itemSize = itemSize + gap;\n this.items$ = tableDirective.items$;\n this.itemTemplate = tableDirective.template;\n this.#view = tableDirective.viewContainerRef;\n this.#view.createEmbeddedView(this.content);\n this.#ref.detectChanges();\n\n this.#subscription.add(fromEvent(this.#elementRef.nativeElement, 'scroll', { capture: true }).pipe(debounceTime(100)).subscribe(() => {\n this.#scrollTop = this.viewport.measureScrollOffset();\n }));\n\n this.#subscription.add(this.items$.pipe(skip(1)).subscribe(() => {\n if (this.viewport) {\n this.viewport.scrollToOffset(this.#scrollTop);\n this.#ref.detectChanges();\n }\n }));\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n #getClosestCssVariable = (element: HTMLElement, cssVariable: string): string | null => {\n while (element) {\n const value = getComputedStyle(element).getPropertyValue(cssVariable).trim();\n if (value) {\n return value;\n }\n element = element.parentElement as HTMLElement;\n }\n\n const rootValue = getComputedStyle(this.#document.documentElement).getPropertyValue(cssVariable).trim();\n return rootValue || null;\n }\n\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n }\n}\n","<cdk-virtual-scroll-viewport \n [itemSize]=\"itemSize\"\n [minBufferPx]=\"itemSize + (itemSize * 20)\"\n [maxBufferPx]=\"itemSize + (itemSize * 40)\">\n \n <ng-content></ng-content>\n\n <ng-template #tableScrollingContent>\n <ng-template let-item cdkVirtualFor [cdkVirtualForOf]=\"items$ | async\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n </ng-template>\n </ng-template>\n</cdk-virtual-scroll-viewport>","import { Component, Input, ChangeDetectionStrategy, ContentChildren, QueryList, ContentChild, ChangeDetectorRef, ViewChild, AfterContentInit, ElementRef, Renderer2, DOCUMENT, inject } from '@angular/core';\nimport { BizyTableHeaderComponent } from './table-header/table-header.component';\nimport { BizyTableFooterComponent } from './table-footer/table-footer.component';\nimport { BizyTableRowComponent } from './table-row/table-row.component';\n\nimport { Subject, Subscription, debounceTime, fromEvent, skip } from 'rxjs';\nimport { BizyTableScrollingComponent } from './table-scrolling/table-scrolling.component';\nimport { BizyTableScrollingDirective } from './table-scrolling/table-scrolling.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\n@Component({\n selector: 'bizy-table',\n templateUrl: './table.html',\n styleUrls: ['./table.css'],\n imports: [\n ScrollingModule,\n BizyTableScrollingComponent\n],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableComponent implements AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #document = inject(DOCUMENT);\n readonly #ref = inject(ChangeDetectorRef);\n readonly #renderer = inject(Renderer2);\n\n @ViewChild(BizyTableScrollingComponent) viewport: BizyTableScrollingComponent;\n @ContentChild(BizyTableScrollingDirective) virtualFor: BizyTableScrollingDirective;\n @ContentChildren(BizyTableRowComponent) rows: QueryList<BizyTableRowComponent>;\n @ContentChildren(BizyTableHeaderComponent) headers: QueryList<BizyTableHeaderComponent>;\n @ContentChildren(BizyTableFooterComponent) footers: QueryList<BizyTableFooterComponent>;\n @Input() resizeRef: ElementRef = null;\n\n #selectableMutationObserver: MutationObserver;\n #rowScrollingMutationObserver: MutationObserver;\n #afterContentInitObserver: MutationObserver;\n #resizeObserver: ResizeObserver;\n notifier$ = new Subject<void>();\n #subscription = new Subscription();\n marginRight: number = 0;\n marginLeft: number = 0;\n\n @Input() set selectable(selectable: boolean) {\n this.#selectableMutationObserver = new MutationObserver(() => {\n if (!this.rows || this.rows.length === 0) {\n return;\n }\n\n this.rows.forEach(_row => {\n _row.setSelectable(selectable);\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n\n this.headers.forEach(_header => {\n _header.setSelectable(selectable);\n });\n\n this.footers.forEach(_footer => {\n _footer.setSelectable(selectable);\n });\n\n this.#ref.detectChanges(); \n });\n\n this.#selectableMutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n };\n\n ngAfterContentInit() {\n this.#rowScrollingMutationObserver = new MutationObserver(() => {\n if (!this.virtualFor || !this.viewport) {\n return;\n }\n\n if (this.#elementRef.nativeElement.offsetHeight) {\n const fontSize = getComputedStyle(this.#document.documentElement).getPropertyValue('font-size');\n const gap = Number(fontSize.split('px')[0]) * 0.3;\n let headersHeight = 0;\n this.headers.forEach(_header => {\n headersHeight += _header.getNativeElement().offsetHeight + gap;\n });\n\n let footersHeight = 0;\n this.footers.forEach(_footer => {\n footersHeight += _footer.getNativeElement().offsetHeight + gap;\n });\n this.#renderer.setStyle(this.viewport.getNativeElement(), 'height', `${this.#elementRef.nativeElement.offsetHeight - headersHeight - footersHeight}px`)\n }\n\n this.viewport.attachView(this.virtualFor);\n this.#rowScrollingMutationObserver.disconnect();\n \n this.#ref.detectChanges(); \n \n this.#afterContentInitObserver = new MutationObserver(() => {\n if (!this.#elementRef.nativeElement.offsetWidth) {\n return;\n }\n \n this.marginRight = this.#elementRef.nativeElement.scrollWidth ? (this.#elementRef.nativeElement.scrollWidth - this.#elementRef.nativeElement.offsetWidth) - this.#elementRef.nativeElement.scrollLeft : 0;\n this.marginLeft = this.#elementRef.nativeElement.scrollLeft;\n this.rows.forEach(_row => {\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n\n this.headers.forEach(_header => {\n _header.setMarginRight(this.marginRight);\n _header.setMarginLeft(this.marginLeft);\n });\n \n this.footers.forEach(_footer => {\n _footer.setMarginRight(this.marginRight);\n _footer.setMarginLeft(this.marginLeft);\n });\n\n this.#subscription.add(fromEvent(this.#elementRef.nativeElement, 'scroll', { capture: true }).subscribe(() => {\n this.marginRight = this.#elementRef.nativeElement.scrollWidth ? (this.#elementRef.nativeElement.scrollWidth - this.#elementRef.nativeElement.offsetWidth) - this.#elementRef.nativeElement.scrollLeft : 0;\n this.marginLeft = this.#elementRef.nativeElement.scrollLeft;\n this.rows.forEach(_row => {\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n \n this.headers.forEach(_header => {\n _header.setMarginRight(this.marginRight);\n _header.setMarginLeft(this.marginLeft);\n });\n \n this.footers.forEach(_footer => {\n _footer.setMarginRight(this.marginRight);\n _footer.setMarginLeft(this.marginLeft);\n });\n }));\n \n this.#afterContentInitObserver.disconnect(); \n this.#ref.detectChanges(); \n });\n\n this.#afterContentInitObserver.observe(this.#document.body, { childList: true, subtree: true });\n });\n\n this.#rowScrollingMutationObserver.observe(this.#document.body, { childList: true, subtree: true });\n\n\n this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#subscription.add(this.notifier$.pipe(skip(1), debounceTime(200)).subscribe(() => {\n if (this.viewport && this.#elementRef.nativeElement.offsetHeight) {\n const fontSize = getComputedStyle(this.#document.documentElement).getPropertyValue('font-size');\n const gap = Number(fontSize.split('px')[0]) * 0.3;\n let headersHeight = 0;\n this.headers.forEach(_header => {\n headersHeight += _header.getNativeElement().offsetHeight + gap;\n });\n\n let footersHeight = 0;\n this.footers.forEach(_footer => {\n footersHeight += _footer.getNativeElement().offsetHeight + gap;\n });\n this.#renderer.setStyle(this.viewport.getNativeElement(), 'height', `${this.#elementRef.nativeElement.offsetHeight - headersHeight - footersHeight}px`)\n }\n this.marginRight = this.#elementRef.nativeElement.scrollWidth ? (this.#elementRef.nativeElement.scrollWidth - this.#elementRef.nativeElement.offsetWidth) - this.#elementRef.nativeElement.scrollLeft : 0;\n this.marginLeft = this.#elementRef.nativeElement.scrollLeft;\n this.rows.forEach(_row => {\n _row.setMarginRight(this.marginRight);\n _row.setMarginLeft(this.marginLeft);\n });\n \n this.headers.forEach(_header => {\n _header.setMarginRight(this.marginRight);\n _header.setMarginLeft(this.marginLeft);\n });\n\n this.footers.forEach(_footer => {\n _footer.setMarginRight(this.marginRight);\n _footer.setMarginLeft(this.marginLeft);\n });\n }));\n this.notifier$.next();\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n if (this.#selectableMutationObserver) {\n this.#selectableMutationObserver.disconnect();\n }\n\n if (this.#rowScrollingMutationObserver) {\n this.#rowScrollingMutationObserver.disconnect();\n }\n\n if (this.#afterContentInitObserver) {\n this.#afterContentInitObserver.disconnect();\n }\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<div class=\"bizy-table\">\n\n <ng-content select=\"bizy-table-header\"></ng-content>\n\n <bizy-table-scrolling class=\"bizy-table__rows\">\n\n <ng-content select=\"bizy-table-row\"></ng-content>\n\n </bizy-table-scrolling>\n\n <ng-content select=\"bizy-table-footer\"></ng-content>\n\n</div>","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-table-column-arrows',\n templateUrl: './table-column-arrows.html',\n styleUrls: ['./table-column-arrows.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableColumnArrowsComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() order: 'asc' | 'desc' | null = null;\n @Input() show: boolean = false;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","@if (order !== 'asc' && order !== 'desc') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 448 512\"\n name=\"bizy-table-column-arrows\"\n class=\"bizy-table-column-arrows bizy-table-column-arrows__down-up animated fade-in {{customClass}}\">\n <path d=\"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"/>\n </svg>\n}\n\n@if (order === 'desc') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 576 512\"\n name=\"bizy-table-column-down-arrow\"\n class=\"bizy-table-column-arrows animated fade-in {{customClass}}\"\n [ngClass]=\"{'bizy-table-column-arrows--visible': show}\">\n <path d=\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"/>\n </svg>\n}\n\n\n@if (order === 'asc') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 576 512\"\n class=\"bizy-table-column-arrows animated fade-in {{customClass}}\"\n [ngClass]=\"{'bizy-table-column-arrows--visible': show}\"\n name=\"bizy-table-column-up-arrow\">\n <path d=\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"/>\n </svg>\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-table-row-expand-content',\n templateUrl: './table-row-expand-content.html',\n styleUrls: ['./table-row-expand-content.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTableRowExpandContentComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<ng-content></ng-content>","import { BizyTableScrollingDirective } from './table-scrolling/table-scrolling.directive';\nimport { NgModule } from '@angular/core';\nimport { BizyTableColumnFixedDirective } from './directives';\nimport { BizyTableComponent } from './table.component';\nimport { BizyTableColumnComponent } from './table-column/table-column.component';\nimport { BizyTableColumnArrowsComponent } from './table-column-arrows/table-column-arrows.component';\nimport { BizyTableFooterComponent } from './table-footer/table-footer.component';\nimport { BizyTableHeaderComponent } from './table-header/table-header.component';\nimport { BizyTableRowComponent } from './table-row/table-row.component';\nimport { BizyTableRowExpandContentComponent } from './table-row-expand-content/table-row-expand-content.component';\nimport { BizyTableScrollingComponent } from './table-scrolling/table-scrolling.component';\n\nconst COMPONENTS: Array<any> = [\n BizyTableComponent,\n BizyTableColumnComponent,\n BizyTableColumnArrowsComponent,\n BizyTableFooterComponent,\n BizyTableHeaderComponent,\n BizyTableRowComponent,\n BizyTableRowExpandContentComponent,\n BizyTableScrollingComponent\n];\n\nconst DIRECTIVES: Array<any> = [\n BizyTableScrollingDirective,\n BizyTableColumnFixedDirective\n];\n\n@NgModule({\n imports: COMPONENTS.concat(DIRECTIVES),\n exports: COMPONENTS.concat(DIRECTIVES),\n})\n\nexport class BizyTableModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-tab',\n templateUrl: './tab.html',\n styleUrls: ['./tab.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTabComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-tab-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() linePosition: 'bottom' | 'top' = 'bottom';\n @Input() customClass: string;\n @Output() selectedChange = new EventEmitter<boolean>();\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.selectedChange.emit(true);\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","@if (linePosition === 'top') {\n <span class=\"bizy-tab__selected-line\" [ngClass]=\"{'bizy-tab__selected-line--visible': selected}\"></span>\n}\n\n<button\n type=\"button\"\n [id]=\"id\"\n [ngClass]=\"{'bizy-tab--selected': selected, 'bizy-tab--disabled': disabled}\"\n class=\"bizy-tab {{customClass}}\"\n (click)=\"_onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content></ng-content>\n\n</button>\n\n@if (linePosition === 'bottom') {\n <span class=\"bizy-tab__selected-line\" [ngClass]=\"{'bizy-tab__selected-line--visible': selected}\"></span>\n}\n","import { AfterContentInit, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, inject, Input, QueryList, ViewChild } from '@angular/core';\nimport { Subject, Subscription, debounceTime } from 'rxjs';\nimport { BizyTabComponent } from './tab/tab.component';\n\n\n@Component({\n selector: 'bizy-tabs',\n templateUrl: './tabs.html',\n styleUrls: ['./tabs.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTabsComponent implements AfterViewInit, AfterContentInit {\n readonly #elementRef = inject(ElementRef);\n readonly #ref = inject(ChangeDetectorRef);\n\n @ContentChildren(BizyTabComponent) tabs!: QueryList<BizyTabComponent>;\n @ViewChild('bizyTabs') private bizyTabs: ElementRef; \n @ViewChild('bizyTabsWrapper') private bizyTabsWrapper: ElementRef; \n @Input() customClass: string\n\n #SCROLL_STEP = 50;\n\n showLeftButton: boolean = false; \n showRightButton: boolean = false; \n\n #resizeObserver: ResizeObserver | null = null;\n #subscription = new Subscription();\n #resize$ = new Subject<void>();\n #initialScroll: number = 0;\n\n ngAfterViewInit(): void {\n this.bizyTabsWrapper.nativeElement.scrollLeft = this.#initialScroll;\n this.#resizeObserver = new ResizeObserver(() => this.#resize$.next());\n this.#resizeObserver.observe(this.bizyTabs.nativeElement);\n this.#subscription.add(this.#resize$.pipe(debounceTime(100)).subscribe(() => {\n this.#checkButtons();\n }));\n }\n\n ngAfterContentInit(): void {\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs.get(i).selected) {\n this.#initialScroll = this.tabs.get(i).getNativeElement().offsetLeft;\n break;\n }\n }\n }\n\n onScrollLeft() {\n this.bizyTabsWrapper.nativeElement.scrollLeft = this.bizyTabsWrapper.nativeElement.scrollLeft - this.#SCROLL_STEP < 0 ? 0 : this.bizyTabsWrapper.nativeElement.scrollLeft - this.#SCROLL_STEP;\n this.#checkButtons();\n }\n\n onScrollRight() {\n this.bizyTabsWrapper.nativeElement.scrollLeft = (this.bizyTabsWrapper.nativeElement.scrollLeft + this.#SCROLL_STEP) > this.bizyTabsWrapper.nativeElement.scrollWidth ? this.bizyTabsWrapper.nativeElement.scrollWidth : this.bizyTabsWrapper.nativeElement.scrollLeft + this.#SCROLL_STEP;\n this.#checkButtons();\n }\n\n #checkButtons() {\n this.showLeftButton = this.bizyTabsWrapper.nativeElement.scrollLeft > 0;\n this.showRightButton = (this.bizyTabsWrapper.nativeElement.scrollWidth - this.bizyTabs.nativeElement.offsetWidth) > 0 && (this.bizyTabsWrapper.nativeElement.scrollLeft < (this.bizyTabsWrapper.nativeElement.scrollWidth - this.bizyTabs.nativeElement.offsetWidth));\n this.#ref.detectChanges();\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n this.#resizeObserver.disconnect();\n }\n}","<div #bizyTabs class=\"bizy-tabs {{customClass}}\">\n\n @if (showLeftButton) {\n <button\n type=\"button\"\n class=\"bizy-tabs__scroll-button bizy-tabs__scroll-button--left\"\n (click)=\"onScrollLeft()\"\n (keyup.enter)=\"onScrollLeft()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" class=\"bizy-tabs__scroll-button__arrow\">\n <path d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"/>\n </svg>\n </button>\n }\n\n <span class=\"bizy-tabs__wrapper\" #bizyTabsWrapper>\n\n <ng-content select=\"bizy-tab\"></ng-content>\n\n </span>\n\n @if (showRightButton) {\n <button\n type=\"button\"\n class=\"bizy-tabs__scroll-button bizy-tabs__scroll-button--right\"\n (click)=\"onScrollRight()\"\n (keyup.enter)=\"onScrollRight()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\" class=\"bizy-tabs__scroll-button__arrow\">\n <path d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"/>\n </svg>\n </button>\n }\n\n</div>","import { NgModule } from '@angular/core';\nimport { BizyTabsComponent } from './tabs.component';\nimport { BizyTabComponent } from './tab/tab.component';\n\nconst COMPONENTS: Array<any> = [\n BizyTabsComponent,\n BizyTabComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyTabsModule {}\n","export enum BIZY_TAG_TYPE {\n DEFAULT = 'default',\n SUCCESS = 'success',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n};","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { BIZY_TAG_TYPE } from './tag.types';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'bizy-tag',\n templateUrl: './tag.html',\n styleUrls: ['./tag.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyTagComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-tag-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() disabled: boolean = false;\n @Input() type: BIZY_TAG_TYPE = BIZY_TAG_TYPE.DEFAULT;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _focused: boolean = false;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this._focused) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<button \n type=\"button\"\n [id]=\"id\"\n (focus)=\"_focused = true\"\n (blur)=\"_focused = false\"\n [ngClass]=\"{'bizy-tag--disabled': disabled}\"\n class=\"bizy-tag bizy-tag--{{type}} {{customClass}}\"\n (click)=\"_focused = true; _onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content></ng-content>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyTagComponent } from './tag.component';\n\nconst COMPONENTS: Array<any> = [\n BizyTagComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyTagModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'bizy-timeline',\n templateUrl: './timeline.html',\n styleUrls: ['./timeline.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n '[class]': 'customClass'\n }\n})\nexport class BizyTimelineComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-timeline-${Math.random()}`;\n @Input() customClass: string = '';\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","<ng-content select=\"bizy-timeline-event\"></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'bizy-timeline-event',\n templateUrl: './timeline-event.html',\n styleUrls: ['./timeline-event.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': 'id',\n '[class]': 'customClass'\n }\n})\nexport class BizyTimelineEventComponent {\n readonly #elementRef = inject(ElementRef);\n @Input() id: string = `bizy-timeline-event-${Math.random()}`;\n @Input() customClass: string = '';\n @Input() showLine: boolean = true;\n @Input() disabled: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n\n _focused: boolean = false;\n\n _onSelect(event: PointerEvent) {\n if (this.disabled || !this._focused) {\n return;\n }\n\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}\n","\n<span class=\"bizy-timeline-event--start\">\n <ng-content select=\"[slot=start]\"></ng-content>\n</span>\n\n<span class=\"bizy-timeline-event-content\" [ngClass]=\"{'bizy-timeline-event--disabled': disabled}\">\n\n <button\n type=\"button\"\n (focus)=\"_focused = true\"\n (blur)=\"_focused = false\"\n class=\"bizy-timeline-event-bullet\"\n (click)=\"_focused = true; _onSelect($event)\"\n (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content select=\"[slot=bullet]\"></ng-content>\n\n </button>\n\n @if (showLine) {\n <span class=\"bizy-timeline-event-line\"></span>\n }\n\n</span>\n\n<span class=\"bizy-timeline-event--end\">\n <ng-content select=\"[slot=end]\"></ng-content>\n</span>","import { NgModule } from '@angular/core';\nimport { BizyTimelineComponent } from './timeline.component';\nimport { BizyTimelineEventComponent } from './timeline-event/timeline-event.component';\n\nconst COMPONENTS = [\n BizyTimelineComponent,\n BizyTimelineEventComponent\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyTimelineModule {}\n","import { inject, Injectable, DOCUMENT } from '@angular/core';\nimport { BizyToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\nimport { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\n\n\nexport enum TOAST {\n DEBUG = 'debug',\n SUCCESS = 'success',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger'\n}\n\n@Injectable()\nexport class BizyToastService {\n readonly #document = inject(DOCUMENT);\n readonly #dialog = inject(Dialog);\n\n static toasts: Array<{ref: DialogRef<BizyToastWrapperComponent>, element: HTMLElement | null}> = [];\n\n duration: number = 3000;\n defaultDebugTitle = 'Ha sucedido un evento';\n defaultInfoTitle = 'Observación';\n defaultSuccessTitle = 'Operación exitosa';\n defaultWarningTitle = 'Advertencia';\n defaultDangerTitle = 'Hubo un problema';\n\n #open(data: {type: TOAST, data: string | {title: string, msg?: string, duration?: number} }) {\n\n if (typeof data.data !== 'string' && data.data.duration) {\n this.duration = data.data.duration;\n this.#document.documentElement.style.setProperty('--bizy-toast-duration', `${data.data.duration}ms`);\n }\n\n const id = `bizy-toast-${Math.random()}`;\n const toastRef = this.#dialog.open(BizyToastWrapperComponent, ({\n id,\n data: {\n type: data.type,\n duration: this.duration,\n id,\n title: typeof data.data === 'string' ? data.data : data.data.title,\n msg: typeof data.data === 'string' ? '' : data.data.msg\n },\n autoFocus: false,\n hasBackdrop: false,\n disableClose: false,\n panelClass: ['bizy-toast', 'bizy-toast--in'] \n } as DialogConfig<unknown, DialogRef<BizyToastWrapperComponent>>));\n\n let container: HTMLElement | null = null;\n let tries: number = 3;\n const interval = setInterval(() => {\n if (tries <= 0) {\n BizyToastService.toasts.push({ref: toastRef, element: null});\n clearInterval(interval);\n }\n\n container = this.#document.getElementById(id) as HTMLElement;\n if (!container || !container.parentElement) {\n tries--;\n return;\n }\n\n const offset = this.#calculateOffset();\n container.parentElement.style.top = `${offset}px`;\n BizyToastService.toasts.push({ref: toastRef, element: container.parentElement});\n\n tries = 0;\n clearInterval(interval);\n }, 300);\n }\n\n #calculateOffset = (): number => {\n let offset = 10;\n for (const toast of BizyToastService.toasts) {\n if (toast.element) {\n offset += toast.element.offsetHeight + 10;\n }\n }\n return offset;\n }\n\n #repositionToasts = () => {\n let offset = 10;\n for (const toast of BizyToastService.toasts) {\n if (toast.element) { \n toast.element.style.top = `${offset}px`;\n offset += toast.element.offsetHeight + 10;\n }\n }\n }\n\n config(data: {\n defaultDebugTitle?: string,\n defaultInfoTitle?: string,\n defaultSuccessTitle?: string,\n defaultWarningTitle?: string,\n defaultDangerTitle?: string,\n duration?: number\n }) {\n if (!data) {\n return;\n }\n\n if (data.defaultDebugTitle) {\n this.defaultDebugTitle = data.defaultDebugTitle;\n }\n\n if (data.defaultInfoTitle) {\n this.defaultInfoTitle = data.defaultInfoTitle;\n }\n\n if (data.defaultSuccessTitle) {\n this.defaultSuccessTitle = data.defaultSuccessTitle;\n }\n\n if (data.defaultWarningTitle) {\n this.defaultWarningTitle = data.defaultWarningTitle;\n }\n\n if (data.defaultDangerTitle) {\n this.defaultDangerTitle = data.defaultDangerTitle;\n }\n\n if (data.duration) {\n this.duration = data.duration;\n this.#document.documentElement.style.setProperty('--bizy-toast-duration', `${data.duration}ms`);\n }\n }\n\n debug(data: string | {title: string, msg?: string, duration?: number} = this.defaultDebugTitle) {\n this.#open({type: TOAST.DEBUG, data});\n }\n\n info(data: string | {title: string, msg?: string, duration?: number} = this.defaultInfoTitle) {\n this.#open({type: TOAST.INFO, data});\n }\n\n success(data: string | {title: string, msg?: string, duration?: number} = this.defaultSuccessTitle) {\n this.#open({type: TOAST.SUCCESS, data});\n }\n\n warning(data: string | {title: string, msg?: string, duration?: number} = this.defaultWarningTitle) {\n this.#open({type: TOAST.WARNING, data});\n }\n\n danger(data: string | {title: string, msg?: string, duration?: number} = this.defaultDangerTitle) {\n this.#open({type: TOAST.DANGER, data});\n }\n\n close = (id: string) => {\n if (!BizyToastService.toasts || BizyToastService.toasts.length === 0) {\n return;\n } \n\n let toast = BizyToastService.toasts.find(_toastRef => _toastRef.ref.id === id);\n\n if (!toast) {\n toast = BizyToastService.toasts[BizyToastService.toasts.length - 1];\n }\n\n if (toast.ref) {\n toast.ref.removePanelClass('bizy-toast--in');\n toast.ref.addPanelClass('bizy-toast--out');\n\n setTimeout(() => {\n toast.ref.close();\n BizyToastService.toasts = BizyToastService.toasts.filter(t => t.ref !== toast.ref);\n this.#repositionToasts();\n }, 500);\n }\n }\n}","import { DIALOG_DATA, DialogModule } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { TOAST, BizyToastService } from '../toast.service';\n\n\n@Component({\n selector: 'bizy-toast-wrapper',\n templateUrl: './toast-wrapper.html',\n styleUrls: ['./toast-wrapper.css'],\n imports: [DialogModule],\n providers: [BizyToastService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyToastWrapperComponent {\n readonly #data: {type: TOAST, title: string, msg: string, id: string, duration: number} = inject(DIALOG_DATA);\n readonly #toast = inject(BizyToastService);\n\n type: TOAST = TOAST.INFO;\n title: string = '';\n msg: string = '';\n id: string;\n\n constructor() {\n if (!this.#data) {\n this.close();\n return;\n }\n \n this.type = this.#data.type;\n this.title = this.#data.title;\n this.msg = this.#data.msg;\n this.id = this.#data.id;\n\n setTimeout(() => {\n this.close();\n }, this.#data.duration || 3000);\n }\n\n close() {\n this.#toast.close(this.id);\n }\n}","<div class=\"bizy-toast-wrapper bizy-toast-wrapper--{{type}}\">\n\n <span class=\"bizy-toast-wrapper__content\">\n\n @if (title) {\n <h4 class=\"bizy-toast-wrapper__title--{{type}}\">{{title}}</h4>\n }\n\n @if (msg) {\n <h6>{{msg}}</h6>\n }\n\n </span>\n\n <button (click)=\"close()\" (keyup.enter)=\"close()\" class=\"bizy-toast-wrapper__close-button\">\n\n <svg\n data-name=\"Cancel button\"\n id=\"bizy-toast-wrapper-close-svg\"\n viewBox=\"0 0 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"bizy-toast-wrapper-close-svg-content\" d=\"M114,100l49-49a9.9,9.9,0,0,0-14-14L100,86,51,37A9.9,9.9,0,0,0,37,51l49,49L37,149a9.9,9.9,0,0,0,14,14l49-49,49,49a9.9,9.9,0,0,0,14-14Z\"/>\n </svg>\n\n </button>\n\n <span class=\"bizy-toast__progress bizy-toast__progress--{{type}}\"></span>\n\n</div>","import { NgModule } from '@angular/core';\nimport { BizyToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\nimport { BizyToastService } from './toast.service';\n\n@NgModule({\n imports: [BizyToastWrapperComponent],\n exports: [BizyToastWrapperComponent],\n providers: [BizyToastService]\n})\n\nexport class BizyToastModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ElementRef, inject } from '@angular/core';\n@Component({\n selector: 'bizy-toggle',\n templateUrl: './toggle.html',\n styleUrls: ['./toggle.css'],\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyToggleComponent {\n readonly #elementRef = inject(ElementRef);\n\n @Input() id: string = `bizy-toggle-${Math.random()}`;\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Output() onSelect = new EventEmitter<PointerEvent>();\n @Output() selectedChange = new EventEmitter<boolean>();\n\n _onSelect(event: PointerEvent) {\n if (this.disabled) {\n return;\n }\n\n this.selectedChange.emit(!this.selected);\n this.onSelect.emit(event);\n }\n\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<button type=\"button\" class=\"bizy-toggle\" [ngClass]=\"{'bizy-toggle--disabled': disabled}\" (click)=\"_onSelect($event)\" (keyup.enter)=\"_onSelect($event)\">\n\n <ng-content select=\"[slot=start]\"></ng-content>\n\n <input \n class=\"bizy-toggle__toggle\"\n type=\"checkbox\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [checked]=\"selected\"\n readonly\n [ngClass]=\"{'bizy-toggle__toggle--disabled': disabled}\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n</button>","import { NgModule } from '@angular/core';\nimport { BizyToggleComponent } from './toggle.component';\n\nconst COMPONENTS: Array<any> = [\n BizyToggleComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyToggleModule {}\n","\nimport { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'bizy-toolbar',\n templateUrl: './toolbar.html',\n styleUrls: ['./toolbar.css'],\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BizyToolbarComponent {\n readonly #elementRef = inject(ElementRef);\n getNativeElement = () => this.#elementRef?.nativeElement;\n}","<div class=\"bizy-toolbar\">\n\n <span class=\"bizy-toolbar__start\">\n \n <ng-content select=\"[slot=start]\"></ng-content>\n\n </span>\n\n <span class=\"bizy-toolbar__end\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n </span>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { BizyToolbarComponent } from './toolbar.component';\n\nconst COMPONENTS: Array<any> = [\n BizyToolbarComponent,\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n})\n\nexport class BizyToolbarModule {}\n","import { inject, Injectable } from '@angular/core';\nimport { LangChangeEvent, StrictTranslation, TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\n\nexport enum LANGUAGE {\n SPANISH = 'es',\n ENGLISH = 'en',\n}\nexport interface ILocale {\n lang: LANGUAGE;\n translations: Record<string, StrictTranslation>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BizyTranslateService {\n readonly #translate = inject(TranslateService);\n\n get language$(): Observable<LangChangeEvent> {\n return this.#translate.onLangChange;\n }\n\n\n public loadTranslations(...args: ILocale[]): void {\n const locales = [...args];\n locales.forEach(locale => {\n this.#translate.setTranslation(locale.lang, locale.translations, true);\n });\n }\n\n addLangs(langs: Array<LANGUAGE>) {\n this.#translate.addLangs(langs);\n }\n\n getLangs(): Array<LANGUAGE> {\n return this.#translate.getLangs() as Array<LANGUAGE>;\n }\n\n setDefault(lang: LANGUAGE): void {\n this.#translate.setDefaultLang(lang);\n }\n\n getCurrentLang(): LANGUAGE {\n return this.#translate.currentLang as LANGUAGE;\n }\n\n use(lang: LANGUAGE): void {\n this.#translate.use(lang);\n }\n\n get(translation: string): string {\n return this.#translate.instant(translation);\n }\n}\n","import { Pipe, PipeTransform, Inject } from '@angular/core';\nimport { BizyTranslateService } from './translate.service';\n\n@Pipe({\n name: 'translate',\n pure: false\n})\nexport class BizyTranslatePipe implements PipeTransform {\n constructor(@Inject(BizyTranslateService) private translate: BizyTranslateService) {}\n\n transform(label: string): string {\n return this.translate.get(label);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyTranslatePipe } from './translate.pipe';\nimport { BizyTranslateService } from './translate.service';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [BizyTranslatePipe],\n exports: [BizyTranslatePipe],\n providers: [BizyTranslateService]\n})\n\nexport class BizyTranslateModule {\n static forRoot = TranslateModule.forRoot; \n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'bizyUnique' })\nexport class BizyUniquePipe implements PipeTransform {\n transform<T>(items: Array<T>, property?: string): Array<T> {\n if (!items) {\n return [];\n }\n\n if (!Array.isArray(items) || items.length <= 1) {\n return items;\n }\n\n function getNestedValue(obj: T, path: string): T {\n return path.split('.').reduce((acc, key) => acc?.[key], obj);\n }\n\n const _items = new Set<any>();\n\n return items.filter(item => {\n const value = property ? getNestedValue(item, property) : item;\n\n if (_items.has(value)) {\n return false;\n }\n\n _items.add(value);\n return true;\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyRound'\n})\nexport class BizyRoundPipe implements PipeTransform {\n transform(value: number, mode: 'ceil' | 'floor' | 'round' = 'round'): number {\n if (typeof value !== 'number') {\n return value;\n }\n\n switch (mode) {\n case 'ceil':\n return Math.ceil(value);\n case 'floor':\n return Math.floor(value);\n default:\n return Math.round(value);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyExtractNumbers'\n})\nexport class BizyExtractNumbersPipe implements PipeTransform {\n transform(value: string): string {\n if (!value) {\n return '';\n }\n\n const numbers = value.match(/\\d+/g);\n return numbers ? numbers.join('') : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyRepeat'\n})\nexport class BizyRepeatPipe implements PipeTransform {\n\n transform(value: number): number[] {\n return Array.from({ length: value }, (_, i) => i);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizySetToArray'\n})\nexport class BizySetToArrayPipe implements PipeTransform {\n transform<T>(items: Set<T>): Array<T> {\n if (!items) {\n return [];\n }\n\n return Array.from(items);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyEnumToArray'\n})\nexport class BizyEnumToArrayPipe implements PipeTransform {\n transform(enumObj: any): { key: string; value: any }[] {\n return Object.keys(enumObj)\n .filter(key => isNaN(Number(key))) // Only keep the keys, not the reverse mappings in numeric enums\n .map(key => ({ key, value: enumObj[key] }));\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyOrderBy'\n})\nexport class BizyOrderByPipe implements PipeTransform {\n transform<T>(items: Array<T>, order: 'asc' | 'desc' | null = null, property: string = ''): Array<T> {\n // No items\n if (!items || !order) {\n return items;\n }\n\n // Array with only one item\n if (items.length <= 1) {\n return items;\n }\n\n const sortByString = (items: Array<T>, order: 'asc' | 'desc'): Array<T> => {\n return items.sort((a: any, b: any) => {\n let aValue: any = getValue(a);\n let bValue: any = getValue(b);\n\n if ((typeof aValue === 'undefined' || aValue === null) && (typeof bValue === 'undefined' || bValue === null)) {\n return 0;\n }\n \n if ((typeof aValue === 'undefined' || aValue === null) && (typeof bValue !== 'undefined' && bValue !== null)) {\n return order === 'desc' ? 1 : -1;\n }\n \n if ((typeof aValue !== 'undefined' && aValue !== null) && (typeof bValue === 'undefined' || bValue === null) ) {\n return order === 'desc' ? -1 : 1;\n }\n \n if (aValue === bValue) {\n return 0;\n }\n \n if (order === 'desc') {\n return (this.#removeAccentsAndDiacritics(String(aValue)).toLowerCase() > this.#removeAccentsAndDiacritics(String(bValue)).toLowerCase() ? -1 : 1);\n }\n \n return (this.#removeAccentsAndDiacritics(String(bValue)).toLowerCase() > this.#removeAccentsAndDiacritics(String(aValue)).toLowerCase() ? -1 : 1);\n });\n }\n\n const sortByNumber = (items: Array<T>, order: 'asc' | 'desc'): Array<T> => {\n if (order === 'asc') {\n return items.sort((a, b) => Number(getValue(a)) - Number(getValue(b)));\n } else {\n return items.sort((a, b) => Number(getValue(b)) - Number(getValue(a)));\n }\n }\n\n const sortByDate = (items: Array<T>, order: 'asc' | 'desc'): Array<T> => {\n return items.sort((a, b) => {\n const aDate = parseDateString(getValue(a) as string)\n const bDate = parseDateString(getValue(b) as string)\n return order === 'asc' ? aDate.getTime() - bDate.getTime() : bDate.getTime() - aDate.getTime()\n });\n }\n\n const isDate = (value: string) => {\n const ddMMYYYYhhmmss = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}( \\d{1,2}:\\d{1,2}(:\\d{1,2})?)?$/;\n return ddMMYYYYhhmmss.test(value);\n }\n \n const parseDateString = (value: string) => {\n const [datePart, timePart] = value.split(' ');\n const separator = value.includes('/') ? '/' : '-';\n \n const [day, month, year] = datePart.split(separator).map(Number);\n \n let hours = 0, minutes = 0, seconds = 0;\n \n if (timePart) {\n const [hourStr, minuteStr, secondStr] = timePart.split(':').map(Number);\n hours = isNaN(hourStr) ? 0 : hourStr;\n minutes = isNaN(minuteStr) ? 0 : minuteStr;\n seconds = isNaN(secondStr) ? 0 : secondStr;\n }\n \n return new Date(year, month - 1, day, hours, minutes, seconds);\n }\n\n const getValue = (item: T) => {\n let value = item;\n\n if (property) {\n const nestedProperty = property.split('.');\n \n for (let i = 0; i < nestedProperty.length; i++) {\n const property = nestedProperty[i];\n if (!property || typeof value[property] === 'undefined' || value[property] === null) {\n value = null;\n break;\n }\n \n value = value[property];\n }\n }\n\n return value;\n }\n\n let output: Array<T> = [...items];\n\n const index = output.findIndex(_item => {\n const value = getValue(_item);\n return typeof value !== 'undefined' && value !== null;\n });\n\n if (index === -1) {\n return output;\n }\n\n\n const value = getValue(output[index]);\n if (typeof value === 'number' && !isNaN(value)) {\n return sortByNumber(output, order);\n } else if (isDate(value as string)) {\n return sortByDate(output, order);\n } else {\n return sortByString(output, order);\n }\n }\n\n #removeAccentsAndDiacritics(search: string): string {\n if (!search) {\n return '';\n }\n\n return search.normalize('NFD')!.replace(/[\\u0300-\\u036f]/g, '');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyReduce'\n})\nexport class BizyReducePipe implements PipeTransform {\n transform(items: Array<unknown>, key: string, fixedTo: number = 2): number {\n if (!items || items.length === 0) {\n return 0;\n }\n\n let _items = key ? items.filter(_item => _item[key]).map(_d => _d[key]) : items;\n const reduce = _items.filter(v => Number.isFinite(Number(v))).reduce((acc, value) => acc + Number(value), 0);\n return Number(reduce.toFixed(fixedTo));\n }\n}\n","import { Inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'bizySafe'\n})\nexport class BizySafePipe implements PipeTransform {\n constructor(@Inject(DomSanitizer) private sanitizer: DomSanitizer) {}\n\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script': return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default: throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bizyAverage'\n})\nexport class BizyAveragePipe implements PipeTransform {\n transform(items: Array<unknown>, key: string, fixedTo: number = 2): number {\n if (!items || items.length === 0) {\n return 0;\n }\n\n if (!key) {\n const reduce = (<Array<number>>items).reduce((acc, value) => acc + value, 0);\n return Number((reduce / items.length).toFixed(fixedTo));\n }\n\n const reduce = (<Array<number>>items.map(_d => _d[key])).reduce((acc, value) => acc + value, 0);\n return Number((reduce / items.length).toFixed(fixedTo));\n }\n}\n","import { FuseGetFunction } from \"fuse.js\";\n\nexport interface IFuseResult {\n item: any;\n refIndex: number;\n score: number;\n}\n\nexport interface IOptions {\n isCaseSensitive?: boolean; // Indica si las comparaciones deben ser sensibles a mayúsculas y minúsculas. (def: false)\n includeScore?: boolean; // Si la puntuación debe incluirse en el conjunto de resultados. Una puntuación de 0 indica una coincidencia perfecta, mientras que una puntuación de 1 indica una falta de coincidencia completa. (def: false)\n includeMatches?: boolean; // Si las coincidencias deben incluirse en el conjunto de resultados. Cuando es verdadero, cada registro en el conjunto de resultados incluirá los índices de los caracteres coincidentes. En consecuencia, se pueden usar para resaltar.(def: false)\n shouldSort?: boolean; // Si se debe ordenar la lista de resultados por puntuación. (def: true)\n findAllMatches?: boolean; // Cuando es verdadero, la función de coincidencia continuará hasta el final de un patrón de búsqueda, incluso si ya se ha encontrado una coincidencia perfecta en la cadena. (def: false)\n minMatchCharLength?: number; // Solo se devolverán las coincidencias cuya longitud exceda este valor. (Por ejemplo, si desea ignorar las coincidencias de un solo carácter en el resultado, configúrelo en 2). (def: 1)\n location?: number; // Determina aproximadamente en qué parte del texto se encuentra el patrón que se espera encontrar. (def: 0)\n threshold?: number; // ¿En qué punto se rinde el algoritmo de coincidencia? Un umbral de 0.0 requiere una coincidencia perfecta (tanto de letras como de ubicación), un umbral de 1.0 coincidiría con cualquier cosa. (def: 0.6)\n distance?: number; // Determina qué tan cerca debe estar la coincidencia de la ubicación difusa (especificada por la ubicación). Una coincidencia exacta de letras, que es la distancia de los caracteres lejos de la ubicación difusa, se consideraría como una falta de coincidencia completa. Una distancia de 0 requiere que la coincidencia esté en la ubicación exacta especificada. Una distancia de 1000 requeriría una coincidencia perfecta para estar dentro de los 800 caracteres de la ubicación que se encuentra utilizando un umbral de 0,8. (def: 100)\n useExtendedSearch?: boolean; // Cuando es verdadero, permite el uso de comandos de búsqueda tipo Unix. (def: false)\n ignoreLocation?: boolean; // Cuando es verdadero, la búsqueda ignorará la ubicación y la distancia, por lo que no importará en qué parte de la cadena aparezca el patrón. (def: false)\n ignoreFieldNorm?: boolean; // Cuando es verdadero, el cálculo de la puntuación de relevancia (utilizada para la clasificación) ignorará la norma de longitud de campo.\n getFn?: FuseGetFunction<any>; // La función que se utiliza para recuperar el valor de un objeto en la ruta proporcionada. El valor predeterminado también buscará rutas anidadas.\n // sortFn?: Function; // La función a utilizar para ordenar todos los resultados. El valor predeterminado se ordenará por puntuación de relevancia ascendente\n}\n/**\n * NOTA:\n * - Para comprender mejor cómo location, threshold y distance funcionan juntos, leer en https://fusejs.io/concepts/scoring-theory.html#scoring-theory\n * - El único momento en que tiene sentido establecer ignoreFieldNorm en true es cuando no importa cuántos términos haya, sino solo que el término de consulta exista.\n */\n\nexport interface IBizySearchPipeOptions extends IOptions {\n keys?: Array<string>;\n}\n\nexport class BizySearchPipeOptions implements IBizySearchPipeOptions {\n isCaseSensitive?: boolean;\n distance?: number;\n findAllMatches?: boolean;\n ignoreLocation?: boolean;\n ignoreFieldNorm?: boolean;\n includeMatches?: boolean;\n includeScore?: boolean;\n location?: number;\n minMatchCharLength?: number;\n shouldSort?: boolean;\n threshold?: number;\n useExtendedSearch?: boolean;\n keys: Array<string>;\n\n constructor(options: IOptions, keys?: Array<string>) {\n // Si se desea cambiar algun valor por default, este es el lugar indicado\n if (!keys) {\n keys = [];\n }\n\n const defaultOptions = {\n // Se activa includeScore para poder buscar internamente en propiedades de tipo array\n includeScore: true,\n // Cuando es verdadero, la búsqueda ignorará la ubicación y la distancia, por lo que no importará en qué parte de la cadena aparezca el patrón\n ignoreLocation: true,\n // Se reduce a 0.1 el threshold (default: 0.6) para aumentar precisión en resultados\n threshold: 0.1\n };\n\n if (options) {\n options = {...defaultOptions, ...options};\n } else {\n options = defaultOptions;\n }\n\n Object.assign(this, {...options, keys: keys});\n }\n}\n","import { BizySearchPipeOptions, IFuseResult, IBizySearchPipeOptions} from './search.model';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport Fuse from 'fuse.js';\n@Pipe({\n name: 'bizySearch'\n})\nexport class BizySearchPipe implements PipeTransform {\n searchPipeOptions: IBizySearchPipeOptions;\n fuse: Fuse<any>;\n items: Array<unknown>;\n\n readonly perfectMatch = {\n threshold: 0.0\n };\n\n transform<T>(\n items: Array<T>,\n search: string | number | Array<string | number>,\n keys?: string | Array<string>,\n options?: IBizySearchPipeOptions\n ): Array<T> {\n if (typeof search === 'undefined' || search === null || search === '' || (Array.isArray(search) && search.length === 0)) {\n return items;\n }\n\n let _keys: Array<string> = [];\n\n if (keys) {\n if (Array.isArray(keys)) {\n _keys = keys;\n } else {\n _keys = [keys];\n }\n }\n\n if (!Array.isArray(search)) {\n search = [this.#removeAccentsAndDiacritics(String(search))];\n } else {\n search = search.map(_search => this.#removeAccentsAndDiacritics(String(_search)))\n }\n\n const getFn = (item: T, keys: Array<string>) => {\n const value = keys.reduce((acc, key) => acc && acc[key], item);\n return typeof value === 'string' ? this.#removeAccentsAndDiacritics(value) : String(value);\n }\n\n const isNumber = (number: unknown): number is number => {\n const regex = /^[0-9]*$/;\n return regex.test(String(number).toLowerCase());\n }\n\n const isEmail = (email: unknown): boolean => {\n const regex = /^(([^ñ<>()[\\]\\\\.,;:\\s@\"]+(\\.[^ñ<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regex.test(String(email).toLowerCase());\n }\n\n // Remove empty items\n search = search.filter(n => n);\n search.forEach(_keyword => {\n\n if (!isNumber(_keyword) && !isEmail(_keyword)) {\n this.searchPipeOptions = new BizySearchPipeOptions({...options, getFn}, _keys);\n this.fuse = new Fuse(items, this.searchPipeOptions);\n } else {\n // Apply perfect match if \"search\" is a number or is an email\n this.searchPipeOptions = new BizySearchPipeOptions({...options, ...this.perfectMatch, getFn}, _keys);\n this.fuse = new Fuse(items, this.searchPipeOptions);\n }\n\n const fuseResult = this.fuse.search(String(_keyword)) as Array<IFuseResult>;\n // Get each fuse result item\n items = fuseResult.map(match => match.item);\n });\n\n return items;\n }\n\n #removeAccentsAndDiacritics(search: string): string {\n if (!search) {\n return '';\n }\n\n return search.normalize('NFD')!.replace(/[\\u0300-\\u036f]/g, '');\n }\n}\n","import { Inject, Pipe, PipeTransform } from '@angular/core';\nimport { BIZY_FORMAT_SECONDS_FORMAT, BIZY_FORMAT_SECONDS_LANGUAGE, BizyFormatSecondsService } from '../services/format-seconds.service';\n\n@Pipe({\n name: 'bizyFormatSeconds'\n})\nexport class BizyFormatSecondsPipe implements PipeTransform {\n\n constructor(@Inject(BizyFormatSecondsService) private bizyFormatSecondsService: BizyFormatSecondsService) {}\n\n transform(seconds: number, options?: {format: BIZY_FORMAT_SECONDS_FORMAT, language: BIZY_FORMAT_SECONDS_LANGUAGE}): string {\n if (!seconds) {\n return '00:00:00';\n }\n\n const regex = /^-?\\d+(\\.\\d+)?$/;\n const isNumber = regex.test(String(seconds).toLowerCase());\n if (!isNumber || seconds <= 0) {\n return '00:00:00';\n } \n\n const defaultOptions = this.bizyFormatSecondsService.getOptions();\n\n const language = options?.language ?? defaultOptions.language;\n const format = options?.format ?? defaultOptions.format;\n\n const DAY = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Día' : 'Day';\n const DAYS = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Días' : 'Days';\n const MONTH = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Mes' : 'Month';\n const MONTHS = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Meses' : 'Months';\n const YEAR = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Año' : 'Year';\n const YEARS = language === BIZY_FORMAT_SECONDS_LANGUAGE.SPANISH ? 'Años' : 'Years';\n\n let _seconds = Number(seconds);\n\n const SECONDS_IN_YEAR = 365.25 * 24 * 3600;\n const SECONDS_IN_MONTH = 30.44 * 24 * 3600;\n const SECONDS_IN_DAY = 24 * 3600;\n const SECONDS_IN_HOUR = 3600;\n const SECONDS_IN_MINUTE = 60;\n\n if (format === BIZY_FORMAT_SECONDS_FORMAT.DATE_TIME) {\n const years = Math.floor(_seconds / SECONDS_IN_YEAR);\n _seconds %= SECONDS_IN_YEAR;\n const months = Math.floor(_seconds / SECONDS_IN_MONTH);\n _seconds %= SECONDS_IN_MONTH;\n const days = Math.floor(_seconds / SECONDS_IN_DAY);\n _seconds %= SECONDS_IN_DAY;\n const hours = Math.floor(_seconds / SECONDS_IN_HOUR);\n _seconds %= SECONDS_IN_HOUR;\n const minutes = Math.floor(_seconds / SECONDS_IN_MINUTE);\n _seconds %= SECONDS_IN_MINUTE;\n \n const parts: Array<string> = [];\n if (years > 0) {\n parts.push(years + (years === 1 ? ` ${YEAR}` : ` ${YEARS}`));\n }\n \n if (months > 0) {\n parts.push(months + (months === 1 ? ` ${MONTH}` : ` ${MONTHS}`));\n }\n \n if (days > 0) {\n parts.push(days + (days === 1 ? ` ${DAY}` : ` ${DAYS}`));\n }\n\n parts.push(`${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${_seconds < 10 ? '0' + Math.trunc(_seconds) : Math.trunc(_seconds)}`);\n return parts.join(' ');\n } else {\n const hours = Math.floor(_seconds / SECONDS_IN_HOUR);\n _seconds %= SECONDS_IN_HOUR;\n const minutes = Math.floor(_seconds / SECONDS_IN_MINUTE);\n _seconds %= SECONDS_IN_MINUTE;\n \n const parts: Array<string> = [];\n parts.push(`${hours < 10 ? '0' + hours : hours}:${minutes < 10 ? '0' + minutes : minutes}:${_seconds < 10 ? '0' + Math.trunc(_seconds) : Math.trunc(_seconds)}`);\n return parts.join(' ');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyRepeatPipe } from './repeat.pipe';\nimport { BizySetToArrayPipe } from './set-to-array.pipe';\nimport { BizyEnumToArrayPipe } from './enum-to-array.pipe';\nimport { BizyOrderByPipe } from './order-by.pipe';\nimport { BizyReducePipe } from './reduce.pipe';\nimport { BizySafePipe } from './safe.pipe';\nimport { BizyAveragePipe } from './average.pipe';\nimport { BizySearchPipe } from './search';\nimport { BizyFormatSecondsPipe } from './format-seconds.pipe';\nimport { BizyExtractNumbersPipe } from './extractNumbers.pipe';\nimport { BizyRoundPipe } from './round.pipe';\nimport { BizyUniquePipe } from './unique.pipe';\n\nconst PIPES: Array<any> = [\n BizyRepeatPipe,\n BizySetToArrayPipe,\n BizyEnumToArrayPipe,\n BizyOrderByPipe,\n BizyReducePipe,\n BizySafePipe,\n BizyAveragePipe,\n BizySearchPipe,\n BizyFormatSecondsPipe,\n BizyExtractNumbersPipe,\n BizyRoundPipe,\n BizyUniquePipe\n]\n\n@NgModule({\n imports: PIPES,\n exports: PIPES,\n providers: PIPES\n})\n\nexport class BizyPipesModule {}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[bizyReload]'\n})\nexport class BizyReloadDirective {\n @Input() bizyReloadThreshold: number = 200;\n @Output() bizyReload = new EventEmitter<void>();\n\n #startY: number | null = null;\n #currentY: number | null = null;\n\n @HostListener('touchstart', ['$event'])\n onTouchStart(event: TouchEvent) {\n this.#startY = event.touches[0].clientY;\n }\n\n @HostListener('touchmove', ['$event'])\n onTouchMove(event: TouchEvent) {\n if (this.#startY === null) {\n return;\n }\n\n this.#currentY = event.touches[0].clientY;\n\n const deltaY = this.#currentY - this.#startY;\n\n if (deltaY > this.bizyReloadThreshold) {\n this.#startY = null;\n this.bizyReload.emit();\n }\n }\n}","import {\n Directive,\n ElementRef,\n Renderer2,\n HostListener,\n Inject,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { BizyCopyToClipboardService } from '../services/copy-to-clipboard.service';\n\n@Directive({\n selector: '[bizyCopyToClipboard]',\n})\nexport class BizyCopyToClipboardDirective {\n @Output() onCopy = new EventEmitter<void>();\n #svgElement: HTMLElement;\n\n readonly #COPY_ICON = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n <path d=\"M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z\"/>\n </svg>`;\n\n readonly #CHECK_ICON = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"/>\n </svg>`;\n\n readonly #ERROR_ICON = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"/>\n </svg>`\n\n constructor(\n @Inject(ElementRef) private elementRef: ElementRef,\n @Inject(Renderer2) private renderer: Renderer2,\n @Inject(BizyCopyToClipboardService) private copyToClipboard: BizyCopyToClipboardService\n ) {\n this.#svgElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n this.renderer.setStyle(this.#svgElement, 'position', 'absolute');\n this.renderer.setStyle(this.#svgElement, 'right', '0');\n this.renderer.setStyle(this.#svgElement, 'opacity', '0');\n this.renderer.setStyle(this.#svgElement, 'background', 'linear-gradient(to left, rgb(255, 255, 255), rgba(0, 0, 0, 0))');\n this.renderer.setStyle(this.#svgElement, 'paddingLeft', '5rem');\n this.renderer.setStyle(this.#svgElement, 'transition', 'opacity 0.2s ease-in-out');\n this.renderer.appendChild(this.elementRef.nativeElement, this.#svgElement);\n }\n\n @HostListener('mouseenter') onMouseEnter() {\n this.#svgElement.innerHTML = this.#COPY_ICON;\n this.renderer.setStyle(this.#svgElement, 'fill', 'var(--bizy-copy-to-clipboard-default-color)');\n const elementHeight = this.elementRef.nativeElement.offsetHeight - 4;\n this.renderer.setStyle(this.#svgElement, 'height', `${elementHeight}px`);\n const svg = this.#svgElement.querySelector('svg');\n if (svg) {\n this.renderer.setStyle(svg, 'height', '100%');\n this.renderer.setStyle(svg, 'width', 'auto');\n this.renderer.setStyle(svg, 'pointerEvents', 'none');\n }\n this.#setVisibility(true);\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n this.#setVisibility(false);\n }\n\n @HostListener('click', ['$event']) onClick(event) {\n if (!this.elementRef.nativeElement.innerText){\n return;\n }\n\n event.stopPropagation();\n this.copyToClipboard.copy(this.elementRef.nativeElement.innerText.trim()).then(() => {\n this.renderer.setStyle(this.#svgElement, 'fill', 'var(--bizy-copy-to-clipboard-success-color)');\n this.#svgElement.innerHTML = this.#CHECK_ICON;\n this.onCopy.emit();\n }).catch(() => {\n this.renderer.setStyle(this.#svgElement, 'fill', 'var(--bizy-copy-to-clipboard-danger-color)');\n this.#svgElement.innerHTML = this.#ERROR_ICON;\n }).finally(() => {\n const elementHeight = this.elementRef.nativeElement.offsetHeight - 1;\n this.renderer.setStyle(this.#svgElement, 'height', `${elementHeight}px`);\n const svg = this.#svgElement.querySelector('svg');\n if (svg) {\n this.renderer.setStyle(svg, 'height', '100%');\n this.renderer.setStyle(svg, 'width', 'auto');\n this.renderer.setStyle(svg, 'pointerEvents', 'none');\n }\n })\n }\n\n #setVisibility(visible: boolean) {\n this.renderer.setStyle(this.#svgElement, 'opacity', visible ? '1' : '0');\n }\n}\n","import {\n Directive,\n Input,\n ElementRef,\n Inject,\n Renderer2,\n} from '@angular/core';\n\nexport enum LOADING_TYPE {\n SPINNER = 'spinner',\n BAR = 'bar'\n}\n@Directive({\n selector: '[bizyLoading]'\n})\nexport class BizyLoadingDirective {\n @Input() set bizyLoading(value: boolean) {\n this.#setLoading(value);\n }\n\n @Input() bizyLoadingType: LOADING_TYPE = LOADING_TYPE.SPINNER;\n\n #loadingElement: any;\n #originalElement: HTMLElement;\n\n constructor(\n @Inject(ElementRef) private elementRef: ElementRef,\n @Inject(Renderer2) private renderer: Renderer2\n ) {}\n\n #setLoading(value: boolean) {\n if (value) {\n this.#originalElement = this.elementRef.nativeElement;\n const width = this.elementRef.nativeElement.offsetWidth;\n const height = this.elementRef.nativeElement.offsetHeight;\n const loadingWrapper = this.renderer.createElement('span');\n this.renderer.setStyle(loadingWrapper, 'width', width ? `${this.elementRef.nativeElement.offsetWidth}px` : '1rem');\n this.renderer.setStyle(loadingWrapper, 'height', height ? `${this.elementRef.nativeElement.offsetHeight}px` : '1rem');\n this.renderer.setStyle(loadingWrapper, 'display', 'grid');\n this.renderer.setStyle(loadingWrapper, 'placeItems', 'center');\n const backgroundColor = window.getComputedStyle(this.elementRef.nativeElement, null).getPropertyValue('background-color');\n this.renderer.setStyle(loadingWrapper, 'backgroundColor', backgroundColor);\n this.renderer.setStyle(loadingWrapper, 'pointer-events', 'none');\n \n const loading = this.renderer.createElement('span');\n this.renderer.addClass(loading, `bizy-loading--${this.bizyLoadingType}`);\n\n if (this.bizyLoadingType === LOADING_TYPE.SPINNER) {\n let minSize = 0;\n if (this.elementRef.nativeElement.offsetWidth > 0 && this.elementRef.nativeElement.offsetHeight > 0) {\n minSize = Math.min(this.elementRef.nativeElement.offsetWidth, this.elementRef.nativeElement.offsetHeight);\n }\n this.renderer.setStyle(loading, 'width', minSize ? `min(15rem, ${minSize}px)` : '1rem');\n this.renderer.setStyle(loading, 'height', minSize ? `min(15rem, ${minSize}px)` : '1rem');\n }\n\n this.renderer.appendChild(loadingWrapper, loading);\n\n this.#loadingElement = loadingWrapper;\n \n this.renderer.insertBefore(this.#originalElement.parentNode,this.#loadingElement,this.#originalElement);\n this.renderer.removeChild(this.#originalElement.parentNode, this.#originalElement);\n } else if (this.#loadingElement && this.#originalElement && value === false) {\n this.renderer.insertBefore(this.#loadingElement.parentNode, this.#originalElement, this.#loadingElement);\n this.renderer.removeChild(this.#loadingElement.parentNode, this.#loadingElement);\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Output,\n OnDestroy,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[bizyLongPress]',\n})\nexport class BizyLongPressDirective implements OnDestroy {\n @Input() threshold = 500;\n @Output() bizyLongPress = new EventEmitter<MouseEvent |TouchEvent>();\n\n #pressTimeout: any = null;\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onPressStart(event: MouseEvent | TouchEvent): void {\n this.clearTimeout(); // Clear any existing timeout\n this.#pressTimeout = setTimeout(() => {\n this.bizyLongPress.emit(event);\n }, this.threshold);\n }\n\n @HostListener('mouseup')\n @HostListener('mouseleave')\n @HostListener('touchend')\n @HostListener('touchcancel')\n onPressEnd(): void {\n this.clearTimeout();\n }\n\n private clearTimeout(): void {\n if (this.#pressTimeout) {\n clearTimeout(this.#pressTimeout);\n this.#pressTimeout = null;\n }\n }\n\n ngOnDestroy(): void {\n this.clearTimeout();\n }\n}\n","import { Directive, HostListener, Inject, Input, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[bizyOnlyNumbers]'\n})\nexport class BizyOnlyNumbersDirective {\n @Input('bizyOnlyNumbers') public onlyNumbers: boolean;\n #regex: RegExp = new RegExp(/^-?\\d+([.,]?\\d+)*$/);\n #specialKeys = ['Backspace', 'backspace', 'delete', 'Delete', 'Tab', 'tab', 'Escape', 'escape', 'Enter', 'enter', 'Subtract', 'subtract'];\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef){}\n\n @HostListener('input', ['$event'])\n onInput(event: Event) {\n if (typeof this.onlyNumbers === 'undefined' || this.onlyNumbers === null || this.onlyNumbers === false) {\n return\n }\n \n const inputElement = this.elementRef.nativeElement as HTMLInputElement;\n const value = inputElement.value;\n\n // Format and validate input value\n const formattedValue = this.#formatValue(value);\n if (formattedValue !== value) {\n inputElement.value = formattedValue;\n event.stopImmediatePropagation();\n }\n }\n \n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n if (typeof this.onlyNumbers === 'undefined' || this.onlyNumbers === null || this.onlyNumbers === false) {\n return\n }\n\n // Allow special keys\n if (this.#specialKeys.indexOf(event.key) !== -1 ||\n // Allow: Ctrl+A\n (event.key === 'a' && (event.ctrlKey || event.metaKey)) ||\n // Allow: Ctrl+C\n (event.key === 'c' && (event.ctrlKey || event.metaKey)) ||\n // Allow: Ctrl+V\n (event.key === 'v' && (event.ctrlKey || event.metaKey)) ||\n // Allow: Ctrl+X\n (event.key === 'x' && (event.ctrlKey || event.metaKey)) ||\n // Allow: home, end, left, right\n (event.keyCode >= 35 && event.keyCode <= 39)) {\n // Let it happen, don't do anything\n return;\n }\n\n // Allow numbers and decimals\n let current: string = this.elementRef.nativeElement.value;\n let next: string = current.concat(event.key);\n\n if (next && !String(next).match(this.#regex)) {\n event.preventDefault();\n }\n }\n\n #formatValue(value: string): string {\n // Remove all non-numeric characters except . , and -\n let newValue = value.replace(/[^0-9.,-]/g, '');\n\n // Ensure that '-' is only at the beginning and only once\n if (newValue.indexOf('-') !== newValue.lastIndexOf('-') || (newValue.indexOf('-') !== 0)) {\n newValue = newValue.replace(/-+/g, ''); // Remove all '-' characters\n }\n\n // Ensure only one '-' at the beginning\n if (newValue.startsWith('-') && newValue.indexOf('-') > 0) {\n newValue = '-' + newValue.replace(/^-+/, ''); // Remove additional '-' characters\n }\n\n // Ensure only one decimal separator\n const parts = newValue.split(/[,\\.]/);\n if (parts.length > 2) {\n newValue = `${parts[0]}.${parts.slice(1).join('')}`;\n }\n\n return newValue;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[bizyOnlyPhoneDigits]'\n})\nexport class BizyOnlyPhoneDigitsDirective {\n @Input('bizyOnlyPhoneDigits') public onlyPhoneNumbers: boolean;\n\n regexStr = '^[0-9*#+]*$';\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n if (typeof this.onlyPhoneNumbers === 'undefined' || this.onlyPhoneNumbers === null || this.onlyPhoneNumbers === false) {\n return\n }\n\n let e = <KeyboardEvent>event;\n const ignore = ['Backspace', 'backspace', 'delete', 'Delete', 'Tab', 'tab', 'Escape', 'escape', 'Enter', 'enter', 'Subtract', 'subtract'];\n if (ignore.indexOf(e.key) !== -1 ||\n (e.ctrlKey || e.metaKey) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n // Let it happen, don't do anything\n return;\n }\n\n let regEx = new RegExp(this.regexStr);\n if (!regEx.test(e.key)) {\n e.preventDefault();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n AfterViewInit,\n Renderer2,\n inject,\n Input\n} from '@angular/core';\nimport { debounceTime, skip, Subject, Subscription } from 'rxjs';\n\n@Directive({\n selector: '[bizyTextEllipsis]',\n})\nexport class BizyTextEllipsisDirective implements AfterViewInit {\n readonly #elementRef = inject(ElementRef);\n readonly #renderer = inject(Renderer2);\n\n @Input() resizeRef: ElementRef = null;\n\n #resizeObserver: ResizeObserver;\n notifier$ = new Subject<void>();\n #subscription = new Subscription();\n\n ngAfterViewInit() {\n this.#applyClamp();\n\n this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());\n const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;\n this.#resizeObserver.observe(resizeRef);\n this.#subscription.add(this.notifier$.pipe(skip(1), debounceTime(150)).subscribe(() => {\n this.#applyClamp();\n }));\n }\n\n #applyClamp() {\n const parent = this.#elementRef.nativeElement.parentElement;\n const element = this.#elementRef.nativeElement;\n const lineHeight = parseFloat(getComputedStyle(element).lineHeight);\n const parentHeight = parent.offsetHeight;\n\n if (lineHeight && parentHeight) {\n const lineClamp = Math.floor(parentHeight / lineHeight);\n this.#renderer.setStyle(element, 'display', '-webkit-box');\n this.#renderer.setStyle(element, 'text-overflow', 'ellipsis');\n this.#renderer.setStyle(element, '-webkit-box-orient', 'vertical');\n this.#renderer.setStyle(element, 'overflow', 'hidden');\n this.#renderer.setStyle(element, 'word-wrap', 'break-word');\n this.#renderer.setStyle(element, 'text-wrap', 'auto');\n this.#renderer.setStyle(element, 'white-space', 'pre-wrap');\n this.#renderer.setStyle(element, 'word-break', 'break-word');\n this.#renderer.setStyle(element, '-webkit-line-clamp', lineClamp ? lineClamp.toString() : '1');\n }\n }\n\n ngOnDestroy() {\n this.#subscription.unsubscribe();\n\n if (this.#resizeObserver) {\n this.#resizeObserver.disconnect();\n }\n }\n}\n","\nimport { Directive, Input, ElementRef, HostListener, Renderer2, Inject, OnDestroy, inject, DOCUMENT } from '@angular/core';\n\n@Directive({\n selector: '[bizyTooltip]'\n})\nexport class BizyTooltipDirective implements OnDestroy {\n @Input() tooltipCustomClass: string = '';\n @Input() tooltipPlacement: 'top' | 'right' | 'bottom' | 'left' = 'top';\n @Input() tooltipDelay: number = 0; // Milliseconds\n @Input() showTooltip: boolean = true;\n @Input() tooltipLongPressDuration: number = 500; // Milliseconds\n\n readonly #elementRef = inject(ElementRef);\n readonly #renderer = inject(Renderer2);\n readonly #document = inject(DOCUMENT); \n\n #tooltip: HTMLElement | null;\n #hiding: boolean;\n #longPressTimeout: any = null;\n #lineClamp: number = 0;\n #text: string | null = null;\n\n @Input() set tooltipLineClamp(lineClamp: number) {\n if (!lineClamp && lineClamp <= 0) {\n return;\n }\n\n this.#lineClamp = lineClamp;\n\n const computedStyle = window.getComputedStyle(this.#elementRef.nativeElement);\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'width', '100%');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'min-width', '0');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'overflow', 'hidden');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'text-overflow', 'ellipsis');\n\n if (lineClamp === 1) {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'white-space', 'nowrap');\n } else {\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'display', '-webkit-box');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'line-clamp', this.#lineClamp);\n this.#renderer.setStyle(this.#elementRef.nativeElement, '-webkit-line-clamp', this.#lineClamp);\n this.#renderer.setStyle(this.#elementRef.nativeElement, '-webkit-box-orient', 'vertical');\n this.#renderer.setStyle(this.#elementRef.nativeElement, 'max-height', `calc(${this.#lineClamp} * ${computedStyle.lineHeight})`);\n }\n\n }\n\n @Input('bizyTooltip') set tooltipText(tooltipText: string) {\n if (!tooltipText) {\n return;\n }\n\n this.#text = tooltipText;\n }\n\n // Deprecated\n @Input() set placement(placement: 'top' | 'right' | 'bottom' | 'left') {\n if (!placement) {\n return;\n }\n\n this.tooltipPlacement = placement;\n }\n\n // Deprecated\n @Input() set delay(delay: number) {\n if (typeof delay === 'undefined' || delay === null ) {\n return;\n }\n\n this.tooltipDelay = delay;\n }\n\n @HostListener('mouseenter') onMouseEnter() {\n if (!this.#tooltip) {\n \n if (!this.#text) {\n this.#text = this.#elementRef.nativeElement.textContent;\n }\n\n if (!this.#text) {\n return;\n }\n\n this.#hiding = false;\n this.#show();\n }\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n if (this.#longPressTimeout) {\n clearTimeout(this.#longPressTimeout);\n }\n\n if (this.#tooltip && !this.#hiding) {\n if (!this.#text) {\n return;\n }\n\n this.#hiding = true;\n this.#hide();\n }\n\n // Fix fixed tooltips\n this.#document.querySelectorAll('.bizy-tooltip-identify').forEach(element => {\n this.#renderer.removeChild(this.#document.body, element);\n });\n }\n\n @HostListener('mouseup') onMouseUp() {\n if (this.#longPressTimeout) {\n clearTimeout(this.#longPressTimeout);\n }\n }\n\n @HostListener('click') onClick() {\n if (this.#tooltip && !this.#hiding) {\n this.#hiding = true;\n this.#hide();\n return;\n }\n\n\n if (!this.#text) {\n this.#text = this.#elementRef.nativeElement.textContent;\n }\n\n if (!this.#tooltip && this.#text) {\n this.#longPressTimeout = setTimeout(() => {\n this.#hiding = false;\n this.#show();\n }, this.tooltipLongPressDuration);\n }\n }\n\n #show() {\n if (!this.showTooltip || (this.#lineClamp > 0 && !this.#isTextTruncated(this.#elementRef.nativeElement))) {\n return;\n }\n\n this.#create();\n this.#setPosition();\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip-identify');\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip--show');\n if (this.tooltipCustomClass) {\n this.#renderer.addClass(this.#tooltip, this.tooltipCustomClass);\n }\n }\n\n #hide() {\n this.#renderer.removeClass(this.#tooltip, 'bizy-tooltip--show');\n window.setTimeout(() => {\n this.#renderer.removeChild(this.#document.body, this.#tooltip);\n this.#tooltip = null;\n }, this.tooltipDelay);\n }\n\n #create() {\n this.#tooltip = this.#renderer.createElement('span');\n\n const sentences = String(this.#text).split('</br>');\n sentences.forEach(_sentence => {\n this.#renderer.appendChild(\n this.#tooltip,\n this.#renderer.createText(_sentence)\n );\n this.#renderer.appendChild(\n this.#tooltip,\n this.#renderer.createElement('br')\n );\n });\n\n this.#renderer.appendChild(this.#document.body, this.#tooltip);\n\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip');\n this.#renderer.addClass(this.#tooltip, 'bizy-tooltip-' + this.tooltipPlacement);\n\n if (this.tooltipDelay > 0) {\n this.#renderer.setStyle(this.#tooltip, '-webkit-transition', 'opacity ' + this.tooltipDelay + 'ms');\n this.#renderer.setStyle(this.#tooltip, '-moz-transition', 'opacity ' + this.tooltipDelay + 'ms');\n this.#renderer.setStyle(this.#tooltip, '-o-transition', 'opacity ' + this.tooltipDelay + 'ms');\n this.#renderer.setStyle(this.#tooltip, 'transition', 'opacity ' + this.tooltipDelay + 'ms');\n }\n }\n\n #setPosition() {\n const elRefPosition = this.#elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipPos = this.#tooltip?.getBoundingClientRect();\n\n const scrollPos = window.pageYOffset || this.#document.documentElement.scrollTop || this.#document.body.scrollTop || 0;\n\n let top;\n let left;\n\n if (this.tooltipPlacement === 'top') {\n // @ts-ignore\n top = elRefPosition.top - tooltipPos.height - 10;\n // @ts-ignore\n left = elRefPosition.left + ((elRefPosition.width - tooltipPos.width) / 2);\n } else if (this.tooltipPlacement === 'right') {\n // @ts-ignore\n top = elRefPosition.top + ((elRefPosition.height - tooltipPos.height) / 2);\n left = elRefPosition.right + 10;\n } else if (this.tooltipPlacement === 'bottom') {\n top = elRefPosition.bottom + 10;\n // @ts-ignore\n left = elRefPosition.left + ((elRefPosition.width - tooltipPos.width) / 2);\n } else if (this.tooltipPlacement === 'left') {\n // @ts-ignore\n top = elRefPosition.top + ((elRefPosition.height - tooltipPos.height) / 2);\n // @ts-ignore\n left = elRefPosition.left - tooltipPos.width - 10;\n }\n\n this.#renderer.setStyle(this.#tooltip, 'top', (top + scrollPos) + 'px');\n this.#renderer.setStyle(this.#tooltip, 'left', left + 'px');\n }\n\n #isTextTruncated = (element: HTMLElement) => {\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = element;\n return this.#lineClamp === 1 ? scrollWidth > clientWidth : scrollHeight > clientHeight;\n }\n\n ngOnDestroy() {\n this.#document.querySelectorAll('.bizy-tooltip-identify').forEach(element => {\n this.#renderer.removeChild(this.#document.body, element);\n });\n }\n}\n","import { NgForOf } from '@angular/common';\nimport { Directive, Host } from '@angular/core';\n\ninterface Item {\n id: string;\n}\n\n@Directive({\n selector: '[bizyTrackById]'\n})\nexport class BizyTrackByIdDirective<T extends Item> {\n constructor(@Host() private readonly ngFor: NgForOf<T>) {\n this.ngFor.ngForTrackBy = (_index: number, item: T) => item.id;\n }\n}\n","import { take } from 'rxjs/operators';\nimport { Directive, Input, ElementRef, Inject, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[bizyAutoFocus]'\n})\nexport class BizyAutoFocusDirective implements AfterViewInit {\n @Input('bizyAutoFocus') public autoFocus: boolean;\n\n constructor(\n @Inject(ElementRef) private elementRef: ElementRef,\n @Inject(ChangeDetectorRef) private ref: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n if (typeof this.autoFocus !== 'undefined' && this.autoFocus !== null && this.autoFocus !== false) {\n this.setFocus();\n }\n }\n\n setFocus() {\n const interval = setInterval(() => {\n this.elementRef.nativeElement.focus();\n this.ref.detectChanges();\n }, 300);\n\n fromEvent(this.elementRef.nativeElement, 'focus').pipe(take(1)).subscribe(() => {\n clearInterval(interval);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BizyCopyToClipboardDirective } from './copy-to-clipboard.directive';\nimport { BizyCurrencyFormatDirective } from './currency-format.directive';\nimport { BizyLoadingDirective } from './loading.directive';\nimport { BizyLongPressDirective } from './long-press.directive';\nimport { BizyOnlyNumbersDirective } from './only-numbers.directive';\nimport { BizyOnlyPhoneDigitsDirective } from './only-phone-digits.directive';\nimport { BizyTextEllipsisDirective } from './text-ellipsis.directive';\nimport { BizyTooltipDirective } from './tooltip.directive';\nimport { BizyTrackByIdDirective } from './track-by-id.directive';\nimport { BizyAutoFocusDirective } from './auto-focus.directive';\nimport { BizyReloadDirective } from './reload.directive';\n\nconst DIRECTIVES: Array<any> = [\n BizyCopyToClipboardDirective,\n BizyCurrencyFormatDirective,\n BizyLoadingDirective,\n BizyLongPressDirective,\n BizyOnlyNumbersDirective,\n BizyOnlyPhoneDigitsDirective,\n BizyTextEllipsisDirective,\n BizyTooltipDirective,\n BizyTrackByIdDirective,\n BizyAutoFocusDirective,\n BizyReloadDirective\n]\n\n@NgModule({\n imports: DIRECTIVES,\n exports: DIRECTIVES\n})\n\nexport class BizyDirectivesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["COMPONENTS","DEFAULT_DOWNLOAD","i1","debounceTime","DOCUMENT","distinctUntilChanged","getUserAgent","DEFAULT_CHART_SIZE","DEFAULT_TOOLTIP","filter","i2","i3","EMPTY_CHART","DEFAULT_EXPAND","DEFAULT_LEGEND","DEFAULT_LABEL","PIPES","DIRECTIVES","i2.BizyButtonComponent","take"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}