@bizy/core 21.8.8 → 21.9.1

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.
@@ -20,17 +20,8 @@ import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
20
20
  import localeEs from '@angular/common/locales/es';
21
21
  import * as i2$1 from '@angular/forms';
22
22
  import { FormsModule, FormBuilder, Validators } from '@angular/forms';
23
- import flatpickr from 'flatpickr';
24
- import monthSelectPlugin from 'flatpickr/dist/plugins/monthSelect/index.js';
25
- import { Spanish } from 'flatpickr/dist/l10n/es.js';
26
23
  import * as i2$2 from '@angular/cdk/overlay';
27
24
  import { OverlayModule, CdkConnectedOverlay } from '@angular/cdk/overlay';
28
- import AutoNumeric from 'autonumeric';
29
- import Uppy from '@uppy/core';
30
- import es_ES from '@uppy/locales/lib/es_ES';
31
- import en_US from '@uppy/locales/lib/en_US';
32
- import Dashboard from '@uppy/dashboard';
33
- import XHRUpload from '@uppy/xhr-upload';
34
25
  import { TemplatePortal, PortalModule } from '@angular/cdk/portal';
35
26
  import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
36
27
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
@@ -8833,7 +8824,7 @@ class BizyPopupWrapperComponent {
8833
8824
  this.#popup.close({ id: this.#dialogRef.id });
8834
8825
  }
8835
8826
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyPopupWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8836
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyPopupWrapperComponent, isStandalone: true, selector: "bizy-popup-wrapper", host: { properties: { "style.top": "position.top", "style.right": "position.right", "style.bottom": "position.bottom", "style.left": "position.left", "style.transform": "position.transform" } }, viewQueries: [{ propertyName: "dynamicComponentContainer", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "@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}", styles: [":host{font-size:1rem;position:fixed!important;min-height:150px;min-width:150px;width:fit-content;height:fit-content;z-index:10}.bizy-popup-wrapper{position:relative;padding:var(--bizy-popup-padding);background-color:var(--bizy-popup-background-color);min-width:var(--bizy-popup-min-width);width:var(--bizy-popup-width);max-width:var(--bizy-popup-max-width);border-radius:var(--bizy-popup-border-radius)}.bizy-popup-wrapper__drag-button{position:absolute;left:-.9rem;top:-.9rem;border:var(--bizy-popup-drag-button-border);border-radius:50%;padding:.2rem;place-items:center;display:grid;background-color:var(--bizy-popup-drag-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__drag-button:hover{transform:scale(1.1)}.bizy-popup-wrapper__drag-button__icon{height:1rem}.bizy-popup-wrapper__drag-button__icon{fill:var(--bizy-popup-drag-button-color)}.bizy-popup-wrapper__close-button{position:absolute;right:-.9rem;top:-.9rem;border:var(--bizy-popup-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-hover-color)}.bizy-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-color)}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8827
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyPopupWrapperComponent, isStandalone: true, selector: "bizy-popup-wrapper", host: { properties: { "style.top": "position.top", "style.right": "position.right", "style.bottom": "position.bottom", "style.left": "position.left", "style.transform": "position.transform" } }, viewQueries: [{ propertyName: "dynamicComponentContainer", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "@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}", styles: [":host{font-size:1rem;position:fixed!important;display:flex;height:var(--bizy-popup-height);min-height:var(--bizy-popup-min-height);max-height:var(--bizy-popup-max-height);width:var(--bizy-popup-width);min-width:var(--bizy-popup-min-width);max-width:var(--bizy-popup-max-width);z-index:10}.bizy-popup-wrapper{flex:1;position:relative;padding:var(--bizy-popup-padding);background-color:var(--bizy-popup-background-color);border-radius:var(--bizy-popup-border-radius)}.bizy-popup-wrapper__drag-button{position:absolute;left:-.9rem;top:-.9rem;border:var(--bizy-popup-drag-button-border);border-radius:50%;padding:.2rem;place-items:center;display:grid;background-color:var(--bizy-popup-drag-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__drag-button:hover{transform:scale(1.1)}.bizy-popup-wrapper__drag-button__icon{height:1rem}.bizy-popup-wrapper__drag-button__icon{fill:var(--bizy-popup-drag-button-color)}.bizy-popup-wrapper__close-button{position:absolute;right:-.9rem;top:-.9rem;border:var(--bizy-popup-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-hover-color)}.bizy-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-color)}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8837
8828
  }
8838
8829
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyPopupWrapperComponent, decorators: [{
8839
8830
  type: Component,
@@ -8843,7 +8834,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
8843
8834
  '[style.bottom]': 'position.bottom',
8844
8835
  '[style.left]': 'position.left',
8845
8836
  '[style.transform]': 'position.transform'
8846
- }, template: "@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}", styles: [":host{font-size:1rem;position:fixed!important;min-height:150px;min-width:150px;width:fit-content;height:fit-content;z-index:10}.bizy-popup-wrapper{position:relative;padding:var(--bizy-popup-padding);background-color:var(--bizy-popup-background-color);min-width:var(--bizy-popup-min-width);width:var(--bizy-popup-width);max-width:var(--bizy-popup-max-width);border-radius:var(--bizy-popup-border-radius)}.bizy-popup-wrapper__drag-button{position:absolute;left:-.9rem;top:-.9rem;border:var(--bizy-popup-drag-button-border);border-radius:50%;padding:.2rem;place-items:center;display:grid;background-color:var(--bizy-popup-drag-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__drag-button:hover{transform:scale(1.1)}.bizy-popup-wrapper__drag-button__icon{height:1rem}.bizy-popup-wrapper__drag-button__icon{fill:var(--bizy-popup-drag-button-color)}.bizy-popup-wrapper__close-button{position:absolute;right:-.9rem;top:-.9rem;border:var(--bizy-popup-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-hover-color)}.bizy-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-color)}\n"] }]
8837
+ }, template: "@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}", styles: [":host{font-size:1rem;position:fixed!important;display:flex;height:var(--bizy-popup-height);min-height:var(--bizy-popup-min-height);max-height:var(--bizy-popup-max-height);width:var(--bizy-popup-width);min-width:var(--bizy-popup-min-width);max-width:var(--bizy-popup-max-width);z-index:10}.bizy-popup-wrapper{flex:1;position:relative;padding:var(--bizy-popup-padding);background-color:var(--bizy-popup-background-color);border-radius:var(--bizy-popup-border-radius)}.bizy-popup-wrapper__drag-button{position:absolute;left:-.9rem;top:-.9rem;border:var(--bizy-popup-drag-button-border);border-radius:50%;padding:.2rem;place-items:center;display:grid;background-color:var(--bizy-popup-drag-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__drag-button:hover{transform:scale(1.1)}.bizy-popup-wrapper__drag-button__icon{height:1rem}.bizy-popup-wrapper__drag-button__icon{fill:var(--bizy-popup-drag-button-color)}.bizy-popup-wrapper__close-button{position:absolute;right:-.9rem;top:-.9rem;border:var(--bizy-popup-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-popup-wrapper__close-button:hover .bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-hover-color)}.bizy-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-popup-wrapper__close-button__icon{fill:var(--bizy-popup-close-button-color)}\n"] }]
8847
8838
  }], propDecorators: { dynamicComponentContainer: [{
8848
8839
  type: ViewChild,
8849
8840
  args: ['dynamicComponentContainer', { read: ViewContainerRef }]
@@ -9086,9 +9077,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
9086
9077
  args: [RendererFactory2]
9087
9078
  }] }] });
9088
9079
 
9080
+ var _a$1;
9089
9081
  class BizyRouterService {
9090
9082
  router;
9091
9083
  static backPath = '';
9084
+ static data = {};
9092
9085
  transitionsEnd$;
9093
9086
  transitionsStart$;
9094
9087
  popStateEvent$;
@@ -9097,21 +9090,15 @@ class BizyRouterService {
9097
9090
  this.router = router;
9098
9091
  this.transitionsEnd$ = this.router.events.pipe(filter(event => event instanceof NavigationEnd), map((event) => event.id), distinctUntilChanged$1(), map(() => this.router.routerState.snapshot.root));
9099
9092
  this.transitionsStart$ = this.router.events.pipe(filter(event => event instanceof NavigationStart), map((event) => event.id), distinctUntilChanged$1(), map(() => this.router.routerState.snapshot.root));
9093
+ this.#updateData(this.router.routerState.snapshot.root);
9094
+ this.transitionsEnd$.subscribe(snapshot => this.#updateData(snapshot));
9100
9095
  this.popStateEvent$ = fromEvent(window, 'popstate');
9101
9096
  this.routeChange$ = merge(this.transitionsEnd$, this.popStateEvent$).pipe(map(() => void 0));
9102
9097
  }
9103
- getURL() {
9104
- return window.location.pathname;
9105
- }
9106
- getBackPath() {
9107
- return BizyRouterService.backPath;
9108
- }
9109
- getId(activatedRoute, param) {
9110
- return activatedRoute.snapshot.paramMap.get(param);
9111
- }
9112
- getQueryParam(activatedRoute, param) {
9113
- return activatedRoute.snapshot.queryParamMap.get(param);
9114
- }
9098
+ getURL = () => window.location.pathname;
9099
+ getBackPath = () => _a$1.backPath;
9100
+ getId = (activatedRoute, param) => activatedRoute.snapshot.paramMap.get(param);
9101
+ getQueryParam = (activatedRoute, param) => activatedRoute.snapshot.queryParamMap.get(param);
9115
9102
  getAllQueryParam() {
9116
9103
  const params = new URL(window.location.href).searchParams;
9117
9104
  const queryParams = {};
@@ -9120,26 +9107,27 @@ class BizyRouterService {
9120
9107
  }
9121
9108
  return queryParams;
9122
9109
  }
9110
+ getData = () => _a$1.data;
9123
9111
  goTo(data) {
9124
9112
  if (data.replace) {
9125
- BizyRouterService.backPath = '';
9113
+ _a$1.backPath = '';
9126
9114
  }
9127
9115
  else {
9128
- BizyRouterService.backPath = this.getURL();
9116
+ _a$1.backPath = this.getURL();
9129
9117
  }
9130
9118
  if (data.path[0] === '/') {
9131
- this.router.navigateByUrl(`${data.path}${this._serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });
9119
+ this.router.navigateByUrl(`${data.path}${this.#serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });
9132
9120
  return;
9133
9121
  }
9134
9122
  const path = this.getURL();
9135
9123
  const index = path.indexOf('?');
9136
9124
  const url = index !== -1 ? path.substring(0, index) : path;
9137
- this.router.navigateByUrl(`${url}/${data.path}${this._serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });
9125
+ this.router.navigateByUrl(`${url}/${data.path}${this.#serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });
9138
9126
  }
9139
9127
  goBack(data) {
9140
- if (BizyRouterService.backPath) {
9128
+ if (_a$1.backPath) {
9141
9129
  history.back();
9142
- BizyRouterService.backPath = '';
9130
+ _a$1.backPath = '';
9143
9131
  }
9144
9132
  else if (data && data.path) {
9145
9133
  this.router.navigateByUrl(data.path, { replaceUrl: true });
@@ -9162,7 +9150,14 @@ class BizyRouterService {
9162
9150
  }, 1);
9163
9151
  }
9164
9152
  }
9165
- _serialize(params) {
9153
+ #updateData(root) {
9154
+ let route = root;
9155
+ while (route.firstChild) {
9156
+ route = route.firstChild;
9157
+ }
9158
+ _a$1.data = route.data ?? {};
9159
+ }
9160
+ #serialize(params) {
9166
9161
  if (!params) {
9167
9162
  return '';
9168
9163
  }
@@ -9178,11 +9173,10 @@ class BizyRouterService {
9178
9173
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyRouterService, deps: [{ token: Router }], target: i0.ɵɵFactoryTarget.Injectable });
9179
9174
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyRouterService, providedIn: 'root' });
9180
9175
  }
9176
+ _a$1 = BizyRouterService;
9181
9177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyRouterService, decorators: [{
9182
9178
  type: Injectable,
9183
- args: [{
9184
- providedIn: 'root'
9185
- }]
9179
+ args: [{ providedIn: 'root' }]
9186
9180
  }], ctorParameters: () => [{ type: i1$2.Router, decorators: [{
9187
9181
  type: Inject,
9188
9182
  args: [Router]
@@ -10114,6 +10108,7 @@ class BizyPopupService {
10114
10108
  disableClose: data.disableCloseButton ?? false,
10115
10109
  disableDrag: data.disableDragButton ?? false,
10116
10110
  position,
10111
+ element: data.element,
10117
10112
  placement
10118
10113
  },
10119
10114
  autoFocus: true,
@@ -10139,10 +10134,10 @@ class BizyPopupService {
10139
10134
  }
10140
10135
  let dialogRef = null;
10141
10136
  if (data.id) {
10142
- dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);
10137
+ dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id) || null;
10143
10138
  }
10144
10139
  else {
10145
- dialogRef = Array.from(BizyPopupService.dialogs).pop();
10140
+ dialogRef = Array.from(BizyPopupService.dialogs).pop() || null;
10146
10141
  }
10147
10142
  if (dialogRef && dialogRef.componentInstance instanceof BizyPopupWrapperComponent) {
10148
10143
  dialogRef.componentInstance.setPlacement(data.placement);
@@ -10154,10 +10149,10 @@ class BizyPopupService {
10154
10149
  async close(data) {
10155
10150
  let dialogRef = null;
10156
10151
  if (data && data.id) {
10157
- dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);
10152
+ dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id) || null;
10158
10153
  }
10159
10154
  else {
10160
- dialogRef = Array.from(BizyPopupService.dialogs).pop();
10155
+ dialogRef = Array.from(BizyPopupService.dialogs).pop() || null;
10161
10156
  }
10162
10157
  if (dialogRef) {
10163
10158
  if (dialogRef.componentInstance instanceof BizyFullScreenPopupWrapperComponent && dialogRef.overlayRef && dialogRef.overlayRef.overlayElement) {
@@ -10167,12 +10162,14 @@ class BizyPopupService {
10167
10162
  dialogRef.close(data ? data.response : null);
10168
10163
  BizyPopupService.dialogs.delete(dialogRef);
10169
10164
  }
10165
+ this.#data = null;
10170
10166
  }
10171
10167
  closeAll() {
10172
10168
  Array.from(BizyPopupService.dialogs).forEach(_dialogRef => {
10173
10169
  _dialogRef.close();
10174
10170
  });
10175
10171
  BizyPopupService.dialogs.clear();
10172
+ this.#data = null;
10176
10173
  }
10177
10174
  openedPopups() {
10178
10175
  return BizyPopupService.dialogs.size;
@@ -10190,10 +10187,13 @@ class BizyFullScreenPopupWrapperComponent {
10190
10187
  #dialogRef = inject(DialogRef);
10191
10188
  #popup = inject(BizyPopupService);
10192
10189
  #ref = inject(ChangeDetectorRef);
10190
+ #document = inject(DOCUMENT$1);
10193
10191
  dynamicComponentContainer;
10194
10192
  disabled = false;
10195
10193
  disableClose = false;
10196
10194
  disableDrag = false;
10195
+ position = { main: 'absolute', bottom: '0', left: '0', right: '0' };
10196
+ minWidth = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-popup-full-screen-min-width').trim();
10197
10197
  ngOnInit() {
10198
10198
  if (this.#data) {
10199
10199
  if (this.#data.disableClose) {
@@ -10202,6 +10202,20 @@ class BizyFullScreenPopupWrapperComponent {
10202
10202
  if (this.#data.disableDrag) {
10203
10203
  this.disableDrag = this.#data.disableDrag;
10204
10204
  }
10205
+ if (this.#data.element) {
10206
+ const rect = this.#data.element.getBoundingClientRect();
10207
+ const left = `${rect.left}px`;
10208
+ const right = `${window.innerWidth - rect.right}px`;
10209
+ const bottom = `${window.innerHeight - rect.bottom}px`;
10210
+ this.position = {
10211
+ main: 'fixed',
10212
+ right,
10213
+ bottom,
10214
+ left,
10215
+ transform: '',
10216
+ };
10217
+ this.minWidth = '0';
10218
+ }
10205
10219
  }
10206
10220
  }
10207
10221
  ngAfterViewInit() {
@@ -10220,13 +10234,19 @@ class BizyFullScreenPopupWrapperComponent {
10220
10234
  this.#popup.close({ id: this.#dialogRef.id });
10221
10235
  }
10222
10236
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFullScreenPopupWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10223
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyFullScreenPopupWrapperComponent, isStandalone: true, selector: "bizy-full-screen-popup-wrapper", host: { classAttribute: "animated slide-in-up" }, viewQueries: [{ propertyName: "dynamicComponentContainer", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-popup-full-screen-height);width:100dvw;display:inline-block;position:absolute;bottom:0;left:0;right:0}.bizy-full-screen-popup-wrapper--disabled{pointer-events:none;cursor:default}.bizy-full-screen-popup-wrapper{position:relative;padding:var(--bizy-popup-full-screen-padding);background-color:var(--bizy-popup-full-screen-background-color);height:100%;width:100%;border-top-left-radius:var(--bizy-popup-full-screen-border-radius);border-top-right-radius:var(--bizy-popup-full-screen-border-radius)}.bizy-full-screen-popup-wrapper__close-button{position:absolute;right:1rem;top:1rem;border:var(--bizy-popup-full-screen-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-full-screen-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-hover-color)}.bizy-full-screen-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DialogModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10237
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyFullScreenPopupWrapperComponent, isStandalone: true, selector: "bizy-full-screen-popup-wrapper", host: { properties: { "style.position": "position.main", "style.right": "position.right", "style.bottom": "position.bottom", "style.left": "position.left", "style.transform": "position.transform", "style.min-width": "minWidth" }, classAttribute: "animated slide-in-up" }, viewQueries: [{ propertyName: "dynamicComponentContainer", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-popup-full-screen-height);min-height:var(--bizy-popup-full-screen-min-height);max-height:var(--bizy-popup-full-screen-max-height);width:var(--bizy-popup-full-screen-width);max-width:var(--bizy-popup-full-screen-max-width);display:flex}.bizy-full-screen-popup-wrapper--disabled{pointer-events:none;cursor:default}.bizy-full-screen-popup-wrapper{flex:1;position:relative;padding:var(--bizy-popup-full-screen-padding);background-color:var(--bizy-popup-full-screen-background-color);border-top-left-radius:var(--bizy-popup-full-screen-border-top-left-radius, var(--bizy-popup-full-screen-border-radius, 1rem));border-top-right-radius:var(--bizy-popup-full-screen-border-top-right-radius, var(--bizy-popup-full-screen-border-radius, 1rem));border-bottom-right-radius:var(--bizy-popup-full-screen-border-bottom-right-radius, var(--bizy-popup-full-screen-border-radius, 0));border-bottom-left-radius:var(--bizy-popup-full-screen-border-bottom-left-radius, var(--bizy-popup-full-screen-border-radius, 0))}.bizy-full-screen-popup-wrapper__close-button{position:absolute;right:1rem;top:1rem;border:var(--bizy-popup-full-screen-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-full-screen-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-hover-color)}.bizy-full-screen-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DialogModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10224
10238
  }
10225
10239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFullScreenPopupWrapperComponent, decorators: [{
10226
10240
  type: Component,
10227
10241
  args: [{ selector: 'bizy-full-screen-popup-wrapper', imports: [CommonModule, DialogModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
10228
- 'class': 'animated slide-in-up'
10229
- }, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-popup-full-screen-height);width:100dvw;display:inline-block;position:absolute;bottom:0;left:0;right:0}.bizy-full-screen-popup-wrapper--disabled{pointer-events:none;cursor:default}.bizy-full-screen-popup-wrapper{position:relative;padding:var(--bizy-popup-full-screen-padding);background-color:var(--bizy-popup-full-screen-background-color);height:100%;width:100%;border-top-left-radius:var(--bizy-popup-full-screen-border-radius);border-top-right-radius:var(--bizy-popup-full-screen-border-radius)}.bizy-full-screen-popup-wrapper__close-button{position:absolute;right:1rem;top:1rem;border:var(--bizy-popup-full-screen-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-full-screen-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-hover-color)}.bizy-full-screen-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-color)}\n"] }]
10242
+ 'class': 'animated slide-in-up',
10243
+ '[style.position]': 'position.main',
10244
+ '[style.right]': 'position.right',
10245
+ '[style.bottom]': 'position.bottom',
10246
+ '[style.left]': 'position.left',
10247
+ '[style.transform]': 'position.transform',
10248
+ '[style.min-width]': 'minWidth',
10249
+ }, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-popup-full-screen-height);min-height:var(--bizy-popup-full-screen-min-height);max-height:var(--bizy-popup-full-screen-max-height);width:var(--bizy-popup-full-screen-width);max-width:var(--bizy-popup-full-screen-max-width);display:flex}.bizy-full-screen-popup-wrapper--disabled{pointer-events:none;cursor:default}.bizy-full-screen-popup-wrapper{flex:1;position:relative;padding:var(--bizy-popup-full-screen-padding);background-color:var(--bizy-popup-full-screen-background-color);border-top-left-radius:var(--bizy-popup-full-screen-border-top-left-radius, var(--bizy-popup-full-screen-border-radius, 1rem));border-top-right-radius:var(--bizy-popup-full-screen-border-top-right-radius, var(--bizy-popup-full-screen-border-radius, 1rem));border-bottom-right-radius:var(--bizy-popup-full-screen-border-bottom-right-radius, var(--bizy-popup-full-screen-border-radius, 0));border-bottom-left-radius:var(--bizy-popup-full-screen-border-bottom-left-radius, var(--bizy-popup-full-screen-border-radius, 0))}.bizy-full-screen-popup-wrapper__close-button{position:absolute;right:1rem;top:1rem;border:var(--bizy-popup-full-screen-close-button-border);border-radius:50%;padding:.25rem .35rem;place-items:center;display:grid;background-color:var(--bizy-popup-full-screen-close-button-background-color);cursor:pointer;transition:transform .2s;z-index:1}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{transform:scale(1.1)}.bizy-full-screen-popup-wrapper__close-button:hover .bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-hover-color)}.bizy-full-screen-popup-wrapper__close-button__icon{height:1rem;transition:fill .2s ease,}.bizy-full-screen-popup-wrapper__close-button__icon{fill:var(--bizy-popup-full-screen-close-button-color)}\n"] }]
10230
10250
  }], propDecorators: { dynamicComponentContainer: [{
10231
10251
  type: ViewChild,
10232
10252
  args: ['dynamicComponentContainer', { read: ViewContainerRef }]
@@ -11374,11 +11394,11 @@ class BizyCardComponent {
11374
11394
  }
11375
11395
  getNativeElement = () => this.#elementRef?.nativeElement;
11376
11396
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11377
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyCardComponent, isStandalone: true, selector: "bizy-card", inputs: { id: "id", disabled: "disabled", selected: "selected", customClass: "customClass" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-card-height);min-height:var(--bizy-card-min-height);max-height:var(--bizy-card-max-height);width:var(--bizy-card-width);min-width:var(--bizy-card-min-width);max-width:var(--bizy-card-max-width)}.bizy-card{height:100%;width:100%;cursor:var(--bizy-card-cursor);border-top:var(--bizy-card-border-top, var(--bizy-card-border, none));border-right:var(--bizy-card-border-right, var(--bizy-card-border, none));border-bottom:var(--bizy-card-border-bottom, var(--bizy-card-border, none));border-left:var(--bizy-card-border-left, var(--bizy-card-border, none));border-radius:var(--bizy-card-border-radius);overflow:hidden;padding:var(--bizy-card-padding);display:flex;flex-direction:column;justify-content:space-between;row-gap:var(--bizy-card-row-gap);background-color:var(--bizy-card-background-color);transition:transform .25s ease-in-out;box-shadow:var(--bizy-card-box-shadow)}.bizy-card:hover{transform:translateY(-1px);box-shadow:var(--bizy-card-hover-box-shadow)}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__content{display:none}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__header:not(:empty){height:100%!important}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__footer:not(:empty){height:100%!important}.bizy-card--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-card__content:not(:empty){display:flex;align-items:var(--bizy-card-content-align-items);column-gap:var(--bizy-card-content-column-gap, var(--bizy-card-content-gap, 0));row-gap:var(--bizy-card-content-row-gap, var(--bizy-card-content-gap, 0));flex-wrap:var(--bizy-card-content-flex-wrap);height:100%;width:100%;background-color:var(--bizy-card-content-background-color)}.bizy-card__header:has(>.bizy-card__header__start:empty):has(>.bizy-card__header__end:empty){display:none}.bizy-card__header:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-header-align-items);column-gap:var(--bizy-card-header-column-gap);background-color:var(--bizy-card-header-background-color)}.bizy-card__header__start{justify-content:flex-start}.bizy-card__header__end{justify-content:flex-end}.bizy-card__slot{width:100%;display:flex;align-items:center;column-gap:var(--bizy-card-slot-column-gap);height:100%;overflow:hidden}.bizy-card__footer:has(>.bizy-card__footer__start:empty):has(>.bizy-card__footer__end:empty){display:none}.bizy-card__footer:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-footer-align-items);column-gap:var(--bizy-card-footer-column-gap);background-color:var(--bizy-card-footer-background-color)}.bizy-card__footer__start{justify-content:flex-start}.bizy-card__footer__end{justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11397
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyCardComponent, isStandalone: true, selector: "bizy-card", inputs: { id: "id", disabled: "disabled", selected: "selected", customClass: "customClass" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-card-height);min-height:var(--bizy-card-min-height);max-height:var(--bizy-card-max-height);width:var(--bizy-card-width);min-width:var(--bizy-card-min-width);max-width:var(--bizy-card-max-width)}.bizy-card{height:100%;width:100%;cursor:var(--bizy-card-cursor);border-top:var(--bizy-card-border-top, var(--bizy-card-border, none));border-right:var(--bizy-card-border-right, var(--bizy-card-border, none));border-bottom:var(--bizy-card-border-bottom, var(--bizy-card-border, none));border-left:var(--bizy-card-border-left, var(--bizy-card-border, none));border-radius:var(--bizy-card-border-radius);overflow:hidden;padding:var(--bizy-card-padding);display:flex;flex-direction:column;justify-content:space-between;row-gap:var(--bizy-card-row-gap);background-color:var(--bizy-card-background-color);transition:transform .25s ease-in-out,box-shadow .2s ease;box-shadow:var(--bizy-card-box-shadow)}.bizy-card:hover{transform:translateY(-1px);box-shadow:var(--bizy-card-hover-box-shadow)}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__content{display:none}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__header:not(:empty){height:100%!important}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__footer:not(:empty){height:100%!important}.bizy-card--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-card__content:not(:empty){display:flex;align-items:var(--bizy-card-content-align-items);column-gap:var(--bizy-card-content-column-gap, var(--bizy-card-content-gap, 0));row-gap:var(--bizy-card-content-row-gap, var(--bizy-card-content-gap, 0));flex-wrap:var(--bizy-card-content-flex-wrap);height:100%;width:100%;background-color:var(--bizy-card-content-background-color)}.bizy-card__header:has(>.bizy-card__header__start:empty):has(>.bizy-card__header__end:empty){display:none}.bizy-card__header:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-header-align-items);column-gap:var(--bizy-card-header-column-gap);background-color:var(--bizy-card-header-background-color)}.bizy-card__header__start{justify-content:flex-start}.bizy-card__header__end{justify-content:flex-end}.bizy-card__slot{width:100%;display:flex;align-items:center;column-gap:var(--bizy-card-slot-column-gap);height:100%;overflow:hidden}.bizy-card__footer:has(>.bizy-card__footer__start:empty):has(>.bizy-card__footer__end:empty){display:none}.bizy-card__footer:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-footer-align-items);column-gap:var(--bizy-card-footer-column-gap);background-color:var(--bizy-card-footer-background-color)}.bizy-card__footer__start{justify-content:flex-start}.bizy-card__footer__end{justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11378
11398
  }
11379
11399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyCardComponent, decorators: [{
11380
11400
  type: Component,
11381
- args: [{ selector: 'bizy-card', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-card-height);min-height:var(--bizy-card-min-height);max-height:var(--bizy-card-max-height);width:var(--bizy-card-width);min-width:var(--bizy-card-min-width);max-width:var(--bizy-card-max-width)}.bizy-card{height:100%;width:100%;cursor:var(--bizy-card-cursor);border-top:var(--bizy-card-border-top, var(--bizy-card-border, none));border-right:var(--bizy-card-border-right, var(--bizy-card-border, none));border-bottom:var(--bizy-card-border-bottom, var(--bizy-card-border, none));border-left:var(--bizy-card-border-left, var(--bizy-card-border, none));border-radius:var(--bizy-card-border-radius);overflow:hidden;padding:var(--bizy-card-padding);display:flex;flex-direction:column;justify-content:space-between;row-gap:var(--bizy-card-row-gap);background-color:var(--bizy-card-background-color);transition:transform .25s ease-in-out;box-shadow:var(--bizy-card-box-shadow)}.bizy-card:hover{transform:translateY(-1px);box-shadow:var(--bizy-card-hover-box-shadow)}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__content{display:none}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__header:not(:empty){height:100%!important}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__footer:not(:empty){height:100%!important}.bizy-card--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-card__content:not(:empty){display:flex;align-items:var(--bizy-card-content-align-items);column-gap:var(--bizy-card-content-column-gap, var(--bizy-card-content-gap, 0));row-gap:var(--bizy-card-content-row-gap, var(--bizy-card-content-gap, 0));flex-wrap:var(--bizy-card-content-flex-wrap);height:100%;width:100%;background-color:var(--bizy-card-content-background-color)}.bizy-card__header:has(>.bizy-card__header__start:empty):has(>.bizy-card__header__end:empty){display:none}.bizy-card__header:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-header-align-items);column-gap:var(--bizy-card-header-column-gap);background-color:var(--bizy-card-header-background-color)}.bizy-card__header__start{justify-content:flex-start}.bizy-card__header__end{justify-content:flex-end}.bizy-card__slot{width:100%;display:flex;align-items:center;column-gap:var(--bizy-card-slot-column-gap);height:100%;overflow:hidden}.bizy-card__footer:has(>.bizy-card__footer__start:empty):has(>.bizy-card__footer__end:empty){display:none}.bizy-card__footer:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-footer-align-items);column-gap:var(--bizy-card-footer-column-gap);background-color:var(--bizy-card-footer-background-color)}.bizy-card__footer__start{justify-content:flex-start}.bizy-card__footer__end{justify-content:flex-end}\n"] }]
11401
+ args: [{ selector: 'bizy-card', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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>", styles: [":host{font-size:1rem;height:var(--bizy-card-height);min-height:var(--bizy-card-min-height);max-height:var(--bizy-card-max-height);width:var(--bizy-card-width);min-width:var(--bizy-card-min-width);max-width:var(--bizy-card-max-width)}.bizy-card{height:100%;width:100%;cursor:var(--bizy-card-cursor);border-top:var(--bizy-card-border-top, var(--bizy-card-border, none));border-right:var(--bizy-card-border-right, var(--bizy-card-border, none));border-bottom:var(--bizy-card-border-bottom, var(--bizy-card-border, none));border-left:var(--bizy-card-border-left, var(--bizy-card-border, none));border-radius:var(--bizy-card-border-radius);overflow:hidden;padding:var(--bizy-card-padding);display:flex;flex-direction:column;justify-content:space-between;row-gap:var(--bizy-card-row-gap);background-color:var(--bizy-card-background-color);transition:transform .25s ease-in-out,box-shadow .2s ease;box-shadow:var(--bizy-card-box-shadow)}.bizy-card:hover{transform:translateY(-1px);box-shadow:var(--bizy-card-hover-box-shadow)}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__content{display:none}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__header:not(:empty){height:100%!important}.bizy-card:has(>.bizy-card__content:empty)>.bizy-card__footer:not(:empty){height:100%!important}.bizy-card--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-card__content:not(:empty){display:flex;align-items:var(--bizy-card-content-align-items);column-gap:var(--bizy-card-content-column-gap, var(--bizy-card-content-gap, 0));row-gap:var(--bizy-card-content-row-gap, var(--bizy-card-content-gap, 0));flex-wrap:var(--bizy-card-content-flex-wrap);height:100%;width:100%;background-color:var(--bizy-card-content-background-color)}.bizy-card__header:has(>.bizy-card__header__start:empty):has(>.bizy-card__header__end:empty){display:none}.bizy-card__header:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-header-align-items);column-gap:var(--bizy-card-header-column-gap);background-color:var(--bizy-card-header-background-color)}.bizy-card__header__start{justify-content:flex-start}.bizy-card__header__end{justify-content:flex-end}.bizy-card__slot{width:100%;display:flex;align-items:center;column-gap:var(--bizy-card-slot-column-gap);height:100%;overflow:hidden}.bizy-card__footer:has(>.bizy-card__footer__start:empty):has(>.bizy-card__footer__end:empty){display:none}.bizy-card__footer:not(:empty){width:100%;height:fit-content;display:grid;grid-template-columns:auto auto;align-items:var(--bizy-card-footer-align-items);column-gap:var(--bizy-card-footer-column-gap);background-color:var(--bizy-card-footer-background-color)}.bizy-card__footer__start{justify-content:flex-start}.bizy-card__footer__end{justify-content:flex-end}\n"] }]
11382
11402
  }], propDecorators: { id: [{
11383
11403
  type: Input
11384
11404
  }], disabled: [{
@@ -11531,28 +11551,34 @@ class BizyCurrencyFormatDirective {
11531
11551
  elementRef;
11532
11552
  bizyCurrencyFormat = false;
11533
11553
  options = {};
11534
- #autoNumericInstance;
11554
+ #autoNumericInstance = null;
11555
+ #destroyed = false;
11535
11556
  constructor(elementRef) {
11536
11557
  this.elementRef = elementRef;
11537
11558
  }
11538
- ngOnInit() {
11559
+ async ngOnInit() {
11539
11560
  if (typeof this.bizyCurrencyFormat === 'undefined' || this.bizyCurrencyFormat === null || this.bizyCurrencyFormat === false) {
11540
11561
  return;
11541
11562
  }
11542
- this.#autoNumericInstance = new AutoNumeric(this.elementRef.nativeElement, this.options);
11563
+ const { default: AutoNumericConstructor } = await import('autonumeric');
11564
+ if (this.#destroyed) {
11565
+ return;
11566
+ }
11567
+ this.#autoNumericInstance = new AutoNumericConstructor(this.elementRef.nativeElement, this.options);
11543
11568
  this.elementRef.nativeElement.getValue = this.getValue;
11544
11569
  this.elementRef.nativeElement.setValue = this.setValue;
11545
11570
  }
11546
11571
  ngOnDestroy() {
11572
+ this.#destroyed = true;
11547
11573
  if (this.#autoNumericInstance) {
11548
11574
  this.#autoNumericInstance.remove();
11549
11575
  }
11550
11576
  }
11551
11577
  getValue = () => {
11552
- return this.#autoNumericInstance.getNumber();
11578
+ return this.#autoNumericInstance?.getNumber() ?? 0;
11553
11579
  };
11554
11580
  setValue = (value) => {
11555
- this.#autoNumericInstance.set(value);
11581
+ this.#autoNumericInstance?.set(value);
11556
11582
  };
11557
11583
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyCurrencyFormatDirective, deps: [{ token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
11558
11584
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.5", type: BizyCurrencyFormatDirective, isStandalone: true, selector: "[bizyCurrencyFormat]", inputs: { bizyCurrencyFormat: "bizyCurrencyFormat", options: ["bizyCurrencyOptions", "options"] }, ngImport: i0 });
@@ -11592,6 +11618,7 @@ class BizyInputComponent {
11592
11618
  valueChange = new EventEmitter();
11593
11619
  onChange = new EventEmitter();
11594
11620
  onEnter = new EventEmitter();
11621
+ onKey = new EventEmitter();
11595
11622
  onBackspace = new EventEmitter();
11596
11623
  onSelect = new EventEmitter();
11597
11624
  onBlur = new EventEmitter();
@@ -11667,6 +11694,12 @@ class BizyInputComponent {
11667
11694
  }
11668
11695
  this.onEnter.emit(event);
11669
11696
  };
11697
+ _onKeyDown = (event) => {
11698
+ if (this.disabled || this.readonly || !this.focused) {
11699
+ return;
11700
+ }
11701
+ this.onKey.emit(event.key);
11702
+ };
11670
11703
  _onBackspace = (event) => {
11671
11704
  setTimeout(() => {
11672
11705
  this.onBackspace.emit(event);
@@ -11740,11 +11773,11 @@ class BizyInputComponent {
11740
11773
  this.#optionSubscription.unsubscribe();
11741
11774
  }
11742
11775
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11743
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyInputComponent, isStandalone: true, selector: "bizy-input", inputs: { id: "id", name: "name", customClass: "customClass", placeholder: "placeholder", debounceTime: "debounceTime", rows: "rows", type: "type", maxLength: "maxLength", autofocus: "autofocus", disabled: "disabled", readonly: "readonly", value: "value" }, outputs: { valueChange: "valueChange", onChange: "onChange", onEnter: "onEnter", onBackspace: "onBackspace", onSelect: "onSelect", onBlur: "onBlur", onFocus: "onFocus", onPaste: "onPaste" }, queries: [{ propertyName: "options", predicate: BizyInputOptionComponent }], viewQueries: [{ propertyName: "bizyInputWrapper", first: true, predicate: ["bizyInputWrapper"], descendants: true }, { propertyName: "bizyInput", first: true, predicate: ["bizyInput"], descendants: true }], ngImport: i0, template: "<button\n #bizyInputWrapper\n type=\"button\"\n (click)=\"_onClick($event)\"\n (keyup)=\"_onClick($event)\"\n class=\"bizy-input {{customClass}}\"\n (focus)=\"setFocus(true)\"\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 [maxlength]=\"maxLength\"\n [bizyCurrencyFormat]=\"type === 'currency'\"\n [bizyCurrencyOptions]=\"currencyOptions\"\n [bizyOnlyPhoneDigits]=\"type === 'tel'\"\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 [maxlength]=\"maxLength\"\n class=\"bizy-input__content__input\"\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", styles: [":host{width:var(--bizy-input-width);min-width:var(--bizy-input-min-width);max-width:var(--bizy-input-max-width);display:flex;flex-direction:column;row-gap:.3rem}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__bottom-line{background-color:var(--bizy-input-invalid-color)!important;visibility:visible!important}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__content__input{color:var(--bizy-input-invalid-color)!important}.bizy-input{width:100%;background-color:var(--bizy-input-background-color);border:none;border-top-left-radius:.3rem;border-top-right-radius:.3rem;display:flex;padding:.3rem .3rem 0;flex-direction:column;cursor:var(--bizy-input-cursor)}.bizy-input--negative,.bizy-input--negative .bizy-input__header,.bizy-input--negative .bizy-input__content,.bizy-input--negative .bizy-input__content__input{background-color:var(--bizy-input-negative-background-color)}.bizy-input--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-input__header{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.5rem;padding-bottom:.1rem}.bizy-input__header:empty{display:none!important}.bizy-input__content{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.3rem}.bizy-input__content--readonly{pointer-events:none;cursor:default!important}.bizy-input__content__prefix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__prefix:empty{display:none!important}.bizy-input__content__suffix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__suffix:empty{display:none!important}.bizy-input__content__input{width:100%;background-color:var(--bizy-input-background-color);color:var(--bizy-input-color);flex:1;border:none;padding-block:0;padding-inline:0;padding:0 0 .2rem;font-size:var(--bizy-input-font-size)}.bizy-input__content__input:focus{outline:none;border:none}.bizy-input__content__input::placeholder{color:var(--bizy-input-placeholder-color)}.bizy-input__content input[type=number]::-webkit-inner-spin-button,.bizy-input__content input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.bizy-input__bottom-line{width:calc(100% + .6rem);position:relative;right:.3rem;height:.1rem;visibility:hidden;pointer-events:none;background-color:var(--bizy-input-focus-color)}.bizy-input__bottom-line--visible{visibility:visible;animation-name:zoomIn;animation-duration:.2s;animation-fill-mode:both}.bizy-input__options{background-color:var(--bizy-input-background-color);display:flex;min-width:fit-content;width:100%;flex-direction:column;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;max-height:var(--bizy-input-options-height);overflow-y:auto;overflow-x:hidden;position:relative}.bizy-input__errors:empty{display:none!important}::ng-deep .bizy-input__errors *{color:var(--bizy-input-invalid-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: BizyCurrencyFormatDirective, selector: "[bizyCurrencyFormat]", inputs: ["bizyCurrencyFormat", "bizyCurrencyOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11776
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyInputComponent, isStandalone: true, selector: "bizy-input", inputs: { id: "id", name: "name", customClass: "customClass", placeholder: "placeholder", debounceTime: "debounceTime", rows: "rows", type: "type", maxLength: "maxLength", autofocus: "autofocus", disabled: "disabled", readonly: "readonly", value: "value" }, outputs: { valueChange: "valueChange", onChange: "onChange", onEnter: "onEnter", onKey: "onKey", onBackspace: "onBackspace", onSelect: "onSelect", onBlur: "onBlur", onFocus: "onFocus", onPaste: "onPaste" }, queries: [{ propertyName: "options", predicate: BizyInputOptionComponent }], viewQueries: [{ propertyName: "bizyInputWrapper", first: true, predicate: ["bizyInputWrapper"], descendants: true }, { propertyName: "bizyInput", first: true, predicate: ["bizyInput"], descendants: true }], ngImport: i0, template: "<button\n #bizyInputWrapper\n type=\"button\"\n (click)=\"_onClick($event)\"\n (keyup)=\"_onClick($event)\"\n class=\"bizy-input {{customClass}}\"\n (focus)=\"setFocus(true)\"\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 [maxlength]=\"maxLength\"\n [bizyCurrencyFormat]=\"type === 'currency'\"\n [bizyCurrencyOptions]=\"currencyOptions\"\n [bizyOnlyPhoneDigits]=\"type === 'tel'\"\n (keydown)=\"_onKeyDown($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 [maxlength]=\"maxLength\"\n class=\"bizy-input__content__input\"\n (keydown)=\"_onKeyDown($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", styles: [":host{width:var(--bizy-input-width);min-width:var(--bizy-input-min-width);max-width:var(--bizy-input-max-width);display:flex;flex-direction:column;row-gap:.3rem}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__bottom-line{background-color:var(--bizy-input-invalid-color)!important;visibility:visible!important}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__content__input{color:var(--bizy-input-invalid-color)!important}.bizy-input{width:100%;background-color:var(--bizy-input-background-color);border:none;border-top-left-radius:var(--bizy-input-border-top-left-radius, var(--bizy-input-border-radius, .3rem));border-top-right-radius:var(--bizy-input-border-top-right-radius, var(--bizy-input-border-radius, .3rem));border-bottom-right-radius:var(--bizy-input-border-bottom-right-radius, var(--bizy-input-border-radius, none));border-bottom-left-radius:var(--bizy-input-border-bottom-left-radius, var(--bizy-input-border-radius, none));display:flex;padding:.3rem .3rem 0;flex-direction:column;cursor:var(--bizy-input-cursor)}.bizy-input--negative,.bizy-input--negative .bizy-input__header,.bizy-input--negative .bizy-input__content,.bizy-input--negative .bizy-input__content__input{background-color:var(--bizy-input-negative-background-color)}.bizy-input--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-input__header{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.5rem;padding-bottom:.1rem}.bizy-input__header:empty{display:none!important}.bizy-input__content{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.3rem}.bizy-input__content--readonly{pointer-events:none;cursor:default!important}.bizy-input__content__prefix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__prefix:empty{display:none!important}.bizy-input__content__suffix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__suffix:empty{display:none!important}.bizy-input__content__input{width:100%;background-color:var(--bizy-input-background-color);color:var(--bizy-input-color);flex:1;border:none;padding-block:0;padding-inline:0;padding:0 0 .2rem;font-size:var(--bizy-input-font-size);resize:var(--bizy-input-resize)}.bizy-input__content__input:focus{outline:none;border:none}.bizy-input__content__input::placeholder{color:var(--bizy-input-placeholder-color)}.bizy-input__content input[type=number]::-webkit-inner-spin-button,.bizy-input__content input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.bizy-input__bottom-line{width:calc(100% + .6rem);position:relative;right:.3rem;height:.1rem;visibility:hidden;pointer-events:none;background-color:var(--bizy-input-focus-color)}.bizy-input__bottom-line--visible{visibility:visible;animation-name:zoomIn;animation-duration:.2s;animation-fill-mode:both}.bizy-input__options{background-color:var(--bizy-input-background-color);display:flex;min-width:fit-content;width:100%;flex-direction:column;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;max-height:var(--bizy-input-options-height);overflow-y:auto;overflow-x:hidden;position:relative}.bizy-input__errors:empty{display:none!important}::ng-deep .bizy-input__errors *{color:var(--bizy-input-invalid-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: BizyCurrencyFormatDirective, selector: "[bizyCurrencyFormat]", inputs: ["bizyCurrencyFormat", "bizyCurrencyOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11744
11777
  }
11745
11778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyInputComponent, decorators: [{
11746
11779
  type: Component,
11747
- args: [{ selector: 'bizy-input', imports: [CommonModule, FormsModule, OverlayModule, BizyCurrencyFormatDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #bizyInputWrapper\n type=\"button\"\n (click)=\"_onClick($event)\"\n (keyup)=\"_onClick($event)\"\n class=\"bizy-input {{customClass}}\"\n (focus)=\"setFocus(true)\"\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 [maxlength]=\"maxLength\"\n [bizyCurrencyFormat]=\"type === 'currency'\"\n [bizyCurrencyOptions]=\"currencyOptions\"\n [bizyOnlyPhoneDigits]=\"type === 'tel'\"\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 [maxlength]=\"maxLength\"\n class=\"bizy-input__content__input\"\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", styles: [":host{width:var(--bizy-input-width);min-width:var(--bizy-input-min-width);max-width:var(--bizy-input-max-width);display:flex;flex-direction:column;row-gap:.3rem}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__bottom-line{background-color:var(--bizy-input-invalid-color)!important;visibility:visible!important}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__content__input{color:var(--bizy-input-invalid-color)!important}.bizy-input{width:100%;background-color:var(--bizy-input-background-color);border:none;border-top-left-radius:.3rem;border-top-right-radius:.3rem;display:flex;padding:.3rem .3rem 0;flex-direction:column;cursor:var(--bizy-input-cursor)}.bizy-input--negative,.bizy-input--negative .bizy-input__header,.bizy-input--negative .bizy-input__content,.bizy-input--negative .bizy-input__content__input{background-color:var(--bizy-input-negative-background-color)}.bizy-input--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-input__header{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.5rem;padding-bottom:.1rem}.bizy-input__header:empty{display:none!important}.bizy-input__content{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.3rem}.bizy-input__content--readonly{pointer-events:none;cursor:default!important}.bizy-input__content__prefix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__prefix:empty{display:none!important}.bizy-input__content__suffix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__suffix:empty{display:none!important}.bizy-input__content__input{width:100%;background-color:var(--bizy-input-background-color);color:var(--bizy-input-color);flex:1;border:none;padding-block:0;padding-inline:0;padding:0 0 .2rem;font-size:var(--bizy-input-font-size)}.bizy-input__content__input:focus{outline:none;border:none}.bizy-input__content__input::placeholder{color:var(--bizy-input-placeholder-color)}.bizy-input__content input[type=number]::-webkit-inner-spin-button,.bizy-input__content input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.bizy-input__bottom-line{width:calc(100% + .6rem);position:relative;right:.3rem;height:.1rem;visibility:hidden;pointer-events:none;background-color:var(--bizy-input-focus-color)}.bizy-input__bottom-line--visible{visibility:visible;animation-name:zoomIn;animation-duration:.2s;animation-fill-mode:both}.bizy-input__options{background-color:var(--bizy-input-background-color);display:flex;min-width:fit-content;width:100%;flex-direction:column;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;max-height:var(--bizy-input-options-height);overflow-y:auto;overflow-x:hidden;position:relative}.bizy-input__errors:empty{display:none!important}::ng-deep .bizy-input__errors *{color:var(--bizy-input-invalid-color)!important}\n"] }]
11780
+ args: [{ selector: 'bizy-input', imports: [CommonModule, FormsModule, OverlayModule, BizyCurrencyFormatDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #bizyInputWrapper\n type=\"button\"\n (click)=\"_onClick($event)\"\n (keyup)=\"_onClick($event)\"\n class=\"bizy-input {{customClass}}\"\n (focus)=\"setFocus(true)\"\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 [maxlength]=\"maxLength\"\n [bizyCurrencyFormat]=\"type === 'currency'\"\n [bizyCurrencyOptions]=\"currencyOptions\"\n [bizyOnlyPhoneDigits]=\"type === 'tel'\"\n (keydown)=\"_onKeyDown($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 [maxlength]=\"maxLength\"\n class=\"bizy-input__content__input\"\n (keydown)=\"_onKeyDown($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", styles: [":host{width:var(--bizy-input-width);min-width:var(--bizy-input-min-width);max-width:var(--bizy-input-max-width);display:flex;flex-direction:column;row-gap:.3rem}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__bottom-line{background-color:var(--bizy-input-invalid-color)!important;visibility:visible!important}:host:has(>.bizy-input__errors:not(:empty)) .bizy-input__content__input{color:var(--bizy-input-invalid-color)!important}.bizy-input{width:100%;background-color:var(--bizy-input-background-color);border:none;border-top-left-radius:var(--bizy-input-border-top-left-radius, var(--bizy-input-border-radius, .3rem));border-top-right-radius:var(--bizy-input-border-top-right-radius, var(--bizy-input-border-radius, .3rem));border-bottom-right-radius:var(--bizy-input-border-bottom-right-radius, var(--bizy-input-border-radius, none));border-bottom-left-radius:var(--bizy-input-border-bottom-left-radius, var(--bizy-input-border-radius, none));display:flex;padding:.3rem .3rem 0;flex-direction:column;cursor:var(--bizy-input-cursor)}.bizy-input--negative,.bizy-input--negative .bizy-input__header,.bizy-input--negative .bizy-input__content,.bizy-input--negative .bizy-input__content__input{background-color:var(--bizy-input-negative-background-color)}.bizy-input--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-input__header{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.5rem;padding-bottom:.1rem}.bizy-input__header:empty{display:none!important}.bizy-input__content{background-color:var(--bizy-input-background-color);width:100%;display:flex;align-items:center;column-gap:.3rem}.bizy-input__content--readonly{pointer-events:none;cursor:default!important}.bizy-input__content__prefix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__prefix:empty{display:none!important}.bizy-input__content__suffix{display:flex;align-items:center;column-gap:.3rem}.bizy-input__content__suffix:empty{display:none!important}.bizy-input__content__input{width:100%;background-color:var(--bizy-input-background-color);color:var(--bizy-input-color);flex:1;border:none;padding-block:0;padding-inline:0;padding:0 0 .2rem;font-size:var(--bizy-input-font-size);resize:var(--bizy-input-resize)}.bizy-input__content__input:focus{outline:none;border:none}.bizy-input__content__input::placeholder{color:var(--bizy-input-placeholder-color)}.bizy-input__content input[type=number]::-webkit-inner-spin-button,.bizy-input__content input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.bizy-input__bottom-line{width:calc(100% + .6rem);position:relative;right:.3rem;height:.1rem;visibility:hidden;pointer-events:none;background-color:var(--bizy-input-focus-color)}.bizy-input__bottom-line--visible{visibility:visible;animation-name:zoomIn;animation-duration:.2s;animation-fill-mode:both}.bizy-input__options{background-color:var(--bizy-input-background-color);display:flex;min-width:fit-content;width:100%;flex-direction:column;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;max-height:var(--bizy-input-options-height);overflow-y:auto;overflow-x:hidden;position:relative}.bizy-input__errors:empty{display:none!important}::ng-deep .bizy-input__errors *{color:var(--bizy-input-invalid-color)!important}\n"] }]
11748
11781
  }], propDecorators: { options: [{
11749
11782
  type: ContentChildren,
11750
11783
  args: [BizyInputOptionComponent]
@@ -11779,6 +11812,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
11779
11812
  type: Output
11780
11813
  }], onEnter: [{
11781
11814
  type: Output
11815
+ }], onKey: [{
11816
+ type: Output
11782
11817
  }], onBackspace: [{
11783
11818
  type: Output
11784
11819
  }], onSelect: [{
@@ -11800,7 +11835,7 @@ class BizyDatePickerComponent {
11800
11835
  #elementRef = inject(ElementRef);
11801
11836
  #datePipe = inject(DatePipe);
11802
11837
  #ref = inject(ChangeDetectorRef);
11803
- bizyDatePicker;
11838
+ bizyDatePicker = null;
11804
11839
  id = `bizy-date-picker-${Math.random()}`;
11805
11840
  disabled = false;
11806
11841
  customClass = '';
@@ -11822,6 +11857,9 @@ class BizyDatePickerComponent {
11822
11857
  mode = 'single';
11823
11858
  dates = [Date.now()];
11824
11859
  time = Date.now();
11860
+ #instance = null;
11861
+ #starting = null;
11862
+ #destroyed = false;
11825
11863
  get touched() {
11826
11864
  return this.bizyDatePicker ? this.bizyDatePicker.touched : false;
11827
11865
  }
@@ -11834,7 +11872,7 @@ class BizyDatePickerComponent {
11834
11872
  this.time = date;
11835
11873
  this.value = this.#datePipe.transform(date, this.datePipeFormat, undefined, 'es-AR');
11836
11874
  if (!this.enableTime || !this.started) {
11837
- this.#start();
11875
+ void this.#start();
11838
11876
  }
11839
11877
  }
11840
11878
  set range(range) {
@@ -11845,7 +11883,7 @@ class BizyDatePickerComponent {
11845
11883
  this.dates = [range.from, range.to];
11846
11884
  this.time = range.from;
11847
11885
  this.value = `${this.#datePipe.transform(range.from, this.datePipeFormat, undefined, 'es-AR')} - ${this.#datePipe.transform(range.to, this.datePipeFormat, undefined, 'es-AR')}`;
11848
- this.#start();
11886
+ void this.#start();
11849
11887
  }
11850
11888
  value = '';
11851
11889
  set type(type) {
@@ -11885,59 +11923,89 @@ class BizyDatePickerComponent {
11885
11923
  }
11886
11924
  }
11887
11925
  ngAfterViewInit() {
11888
- this.#start();
11926
+ void this.#start();
11927
+ }
11928
+ ngOnDestroy() {
11929
+ this.#destroyed = true;
11930
+ this.#instance?.destroy();
11931
+ this.#instance = null;
11889
11932
  }
11890
- #start() {
11933
+ async #start() {
11934
+ if (this.started || this.#starting) {
11935
+ return this.#starting ?? Promise.resolve();
11936
+ }
11891
11937
  if (this.bizyDatePicker && this.bizyDatePicker.bizyInputWrapper && this.bizyDatePicker.bizyInputWrapper.nativeElement) {
11892
- const plugins = [];
11893
- if (this.dateFormat === 'Y-M') {
11894
- plugins.push(monthSelectPlugin({
11895
- shorthand: true
11896
- }));
11938
+ this.#starting = this.#initialize();
11939
+ try {
11940
+ await this.#starting;
11897
11941
  }
11898
- flatpickr(this.bizyDatePicker.bizyInputWrapper.nativeElement, {
11899
- locale: Spanish,
11900
- mode: this.mode,
11901
- dateFormat: this.dateFormat,
11902
- enableTime: this.enableTime,
11903
- enableSeconds: this.enableSeconds,
11904
- plugins,
11905
- minDate: this.minDate,
11906
- maxDate: this.maxDate,
11907
- noCalendar: this.noCalendar,
11908
- disableMobile: true,
11909
- time_24hr: true,
11910
- defaultDate: this.mode === 'single' ? new Date(this.dates[0]) : this.dates.map(_date => new Date(_date)),
11911
- defaultHour: this.#getHour(this.time),
11912
- defaultMinute: this.#getMinute(this.time),
11913
- onChange: (selectedDates) => {
11914
- if (this.mode === 'single' && selectedDates[0]) {
11915
- const date = new Date(selectedDates[0]);
11916
- this.dateChange.emit(date.getTime());
11917
- this.onChange.emit(date.getTime());
11918
- }
11919
- else if (selectedDates[0] && selectedDates[1]) {
11920
- const from = new Date(selectedDates[0]);
11921
- const to = new Date(selectedDates[1]);
11922
- to.setHours(23, 59, 59, 999);
11923
- const range = { from: from.getTime(), to: to.getTime() };
11924
- this.rangeChange.emit(range);
11925
- this.onChange.emit(range);
11926
- }
11927
- },
11928
- onOpen: () => {
11929
- this.opened = true;
11930
- this.openedChange.emit(this.opened);
11931
- this.onOpen.emit(this.opened);
11932
- },
11933
- onClose: () => {
11934
- this.opened = false;
11935
- this.openedChange.emit(this.opened);
11936
- this.onOpen.emit(this.opened);
11937
- }
11938
- });
11939
- this.started = true;
11942
+ finally {
11943
+ this.#starting = null;
11944
+ }
11945
+ }
11946
+ }
11947
+ async #initialize() {
11948
+ const [{ default: flatpickr }, { default: monthSelectPlugin }, { Spanish }] = await Promise.all([
11949
+ import('flatpickr'),
11950
+ import('flatpickr/dist/plugins/monthSelect/index.js'),
11951
+ import('flatpickr/dist/l10n/es.js')
11952
+ ]);
11953
+ if (this.#destroyed) {
11954
+ return;
11955
+ }
11956
+ const plugins = [];
11957
+ if (this.dateFormat === 'Y-M') {
11958
+ plugins.push(monthSelectPlugin({
11959
+ shorthand: true
11960
+ }));
11940
11961
  }
11962
+ const overlayHost = this.#getOverlayHost();
11963
+ this.#instance = flatpickr(this.bizyDatePicker.bizyInputWrapper.nativeElement, {
11964
+ locale: Spanish,
11965
+ mode: this.mode,
11966
+ dateFormat: this.dateFormat,
11967
+ enableTime: this.enableTime,
11968
+ enableSeconds: this.enableSeconds,
11969
+ plugins,
11970
+ minDate: this.minDate,
11971
+ maxDate: this.maxDate,
11972
+ noCalendar: this.noCalendar,
11973
+ disableMobile: true,
11974
+ ...(overlayHost ? {
11975
+ appendTo: overlayHost,
11976
+ position: (instance, positionElement) => this.#positionCalendar(instance, positionElement)
11977
+ } : {}),
11978
+ time_24hr: true,
11979
+ defaultDate: this.mode === 'single' ? new Date(this.dates[0]) : this.dates.map(_date => new Date(_date)),
11980
+ defaultHour: this.#getHour(this.time),
11981
+ defaultMinute: this.#getMinute(this.time),
11982
+ onChange: (selectedDates) => {
11983
+ if (this.mode === 'single' && selectedDates[0]) {
11984
+ const date = new Date(selectedDates[0]);
11985
+ this.dateChange.emit(date.getTime());
11986
+ this.onChange.emit(date.getTime());
11987
+ }
11988
+ else if (selectedDates[0] && selectedDates[1]) {
11989
+ const from = new Date(selectedDates[0]);
11990
+ const to = new Date(selectedDates[1]);
11991
+ to.setHours(23, 59, 59, 999);
11992
+ const range = { from: from.getTime(), to: to.getTime() };
11993
+ this.rangeChange.emit(range);
11994
+ this.onChange.emit(range);
11995
+ }
11996
+ },
11997
+ onOpen: () => {
11998
+ this.opened = true;
11999
+ this.openedChange.emit(this.opened);
12000
+ this.onOpen.emit(this.opened);
12001
+ },
12002
+ onClose: () => {
12003
+ this.opened = false;
12004
+ this.openedChange.emit(this.opened);
12005
+ this.onOpen.emit(this.opened);
12006
+ }
12007
+ });
12008
+ this.started = true;
11941
12009
  }
11942
12010
  setTouched(touched) {
11943
12011
  if (this.bizyDatePicker) {
@@ -11946,6 +12014,32 @@ class BizyDatePickerComponent {
11946
12014
  }
11947
12015
  }
11948
12016
  getNativeElement = () => this.#elementRef?.nativeElement;
12017
+ #getOverlayHost() {
12018
+ const overlayHost = this.#elementRef.nativeElement.closest('.cdk-overlay-popover');
12019
+ return overlayHost instanceof HTMLElement ? overlayHost : undefined;
12020
+ }
12021
+ #positionCalendar(instance, customPositionElement) {
12022
+ const calendar = instance.calendarContainer;
12023
+ const positionElement = customPositionElement ?? instance._positionElement;
12024
+ if (!calendar || !positionElement) {
12025
+ return;
12026
+ }
12027
+ const inputBounds = positionElement.getBoundingClientRect();
12028
+ const calendarHeight = Array.from(calendar.children)
12029
+ .reduce((height, child) => height + child.offsetHeight, 0);
12030
+ const calendarWidth = calendar.offsetWidth;
12031
+ const showOnTop = window.innerHeight - inputBounds.bottom < calendarHeight && inputBounds.top > calendarHeight;
12032
+ const top = showOnTop ? inputBounds.top - calendarHeight - 2 : inputBounds.bottom + 2;
12033
+ const left = Math.max(0, Math.min(inputBounds.left, window.innerWidth - calendarWidth));
12034
+ calendar.classList.toggle('arrowTop', !showOnTop);
12035
+ calendar.classList.toggle('arrowBottom', showOnTop);
12036
+ calendar.style.position = 'fixed';
12037
+ calendar.style.top = `${top}px`;
12038
+ calendar.style.left = `${left}px`;
12039
+ calendar.style.right = 'auto';
12040
+ calendar.style.zIndex = '1001';
12041
+ calendar.style.pointerEvents = 'auto';
12042
+ }
11949
12043
  #getHour(time) {
11950
12044
  const date = new Date(time);
11951
12045
  return date.getHours();
@@ -11955,7 +12049,7 @@ class BizyDatePickerComponent {
11955
12049
  return date.getMinutes();
11956
12050
  }
11957
12051
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11958
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyDatePickerComponent, isStandalone: true, selector: "bizy-date-picker", inputs: { id: "id", disabled: "disabled", customClass: "customClass", opened: "opened", minDate: "minDate", maxDate: "maxDate", enableSeconds: "enableSeconds", date: "date", range: "range", type: "type" }, outputs: { dateChange: "dateChange", rangeChange: "rangeChange", onChange: "onChange", openedChange: "openedChange", onOpen: "onOpen", onSelect: "onSelect" }, providers: [DatePipe], viewQueries: [{ propertyName: "bizyDatePicker", first: true, predicate: ["bizyDatePicker"], descendants: true }], ngImport: i0, template: "<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", styles: [":host{font-size:1rem;width:var(--bizy-input-width);min-width:var(--bizy-input-min-width);max-width:var(--bizy-input-max-width);display:flex}.bizy-date-picker{--bizy-input-cursor: pointer}.bizy-date-picker__arrow{height:1rem;pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-input-color)}.bizy-date-picker__arrow--opened{transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12052
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyDatePickerComponent, isStandalone: true, selector: "bizy-date-picker", inputs: { id: "id", disabled: "disabled", customClass: "customClass", opened: "opened", minDate: "minDate", maxDate: "maxDate", enableSeconds: "enableSeconds", date: "date", range: "range", type: "type" }, outputs: { dateChange: "dateChange", rangeChange: "rangeChange", onChange: "onChange", openedChange: "openedChange", onOpen: "onOpen", onSelect: "onSelect" }, providers: [DatePipe], viewQueries: [{ propertyName: "bizyDatePicker", first: true, predicate: ["bizyDatePicker"], descendants: true }], ngImport: i0, template: "<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", styles: [":host{font-size:1rem;width:var(--bizy-input-width);min-width:var(--bizy-input-min-width);max-width:var(--bizy-input-max-width);display:flex}.bizy-date-picker{--bizy-input-cursor: pointer}.bizy-date-picker__arrow{height:1rem;pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-input-color)}.bizy-date-picker__arrow--opened{transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onKey", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11959
12053
  }
11960
12054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyDatePickerComponent, decorators: [{
11961
12055
  type: Component,
@@ -12538,24 +12632,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
12538
12632
  }]
12539
12633
  }] });
12540
12634
 
12541
- const ES = {
12542
- ...es_ES,
12543
- strings: {
12544
- ...es_ES.strings,
12545
- noDuplicates: 'Archivo duplicado: \'%{fileName}\'',
12546
- browseFiles: 'buscar archivo',
12547
- dropPasteFiles: 'Soltar archivo aquí, pegar o %{browse}'
12548
- }
12549
- };
12550
- const EN = {
12551
- ...en_US,
12552
- strings: {
12553
- ...en_US.strings,
12554
- noDuplicates: 'Duplicated file: \'%{fileName}\'',
12555
- browseFiles: 'browse file',
12556
- dropPasteFiles: 'Drop a file here or %{browse}'
12557
- }
12558
- };
12559
12635
  class BizyFileUploaderService {
12560
12636
  #renderer = inject(Renderer2);
12561
12637
  #document = inject(DOCUMENT$1);
@@ -12589,10 +12665,35 @@ class BizyFileUploaderService {
12589
12665
  get complete$() {
12590
12666
  return this.#complete.asObservable();
12591
12667
  }
12592
- createFileUploader(data) {
12668
+ async createFileUploader(data) {
12669
+ const [{ default: UppyConstructor }, { default: es_ES }, { default: en_US }, { default: Dashboard }, { default: XHRUpload }] = await Promise.all([
12670
+ import('@uppy/core'),
12671
+ import('@uppy/locales/lib/es_ES'),
12672
+ import('@uppy/locales/lib/en_US'),
12673
+ import('@uppy/dashboard'),
12674
+ import('@uppy/xhr-upload')
12675
+ ]);
12676
+ const ES = {
12677
+ ...es_ES,
12678
+ strings: {
12679
+ ...es_ES.strings,
12680
+ noDuplicates: 'Archivo duplicado: \'%{fileName}\'',
12681
+ browseFiles: 'buscar archivo',
12682
+ dropPasteFiles: 'Soltar archivo aquí, pegar o %{browseFiles}'
12683
+ }
12684
+ };
12685
+ const EN = {
12686
+ ...en_US,
12687
+ strings: {
12688
+ ...en_US.strings,
12689
+ noDuplicates: 'Duplicated file: \'%{fileName}\'',
12690
+ browseFiles: 'browse file',
12691
+ dropPasteFiles: 'Drop a file here or %{browseFiles}'
12692
+ }
12693
+ };
12593
12694
  const locale = data.language === 'es' ? ES : EN;
12594
12695
  this.#disableLocalFiles = data.disableLocalFiles;
12595
- this.#uppy = new Uppy({
12696
+ this.#uppy = new UppyConstructor({
12596
12697
  locale,
12597
12698
  infoTimeout: 2500,
12598
12699
  restrictions: {
@@ -12603,7 +12704,8 @@ class BizyFileUploaderService {
12603
12704
  minNumberOfFiles: data.minNumberOfFiles,
12604
12705
  allowedFileTypes: data.allowedFileTypes
12605
12706
  }
12606
- })
12707
+ });
12708
+ this.#uppy
12607
12709
  .use(Dashboard, {
12608
12710
  inline: true,
12609
12711
  singleFileFullScreen: false,
@@ -12611,20 +12713,23 @@ class BizyFileUploaderService {
12611
12713
  width: data.dragDropAreaWidth,
12612
12714
  height: data.dragDropAreaHeight,
12613
12715
  hideCancelButton: data.hideCancelButton,
12614
- hideUploadButton: data.hideUploadButton,
12716
+ hideUploadButton: !data.enableUpload || data.hideUploadButton,
12615
12717
  hidePauseResumeButton: data.hidePauseResumeButton,
12616
12718
  disableLocalFiles: data.disableLocalFiles
12617
- })
12618
- .use(XHRUpload, {
12619
- endpoint: '',
12620
- headers: data.headers,
12621
- getResponseData: (responseText, response) => {
12622
- return {
12623
- fileId: responseText,
12624
- response
12625
- };
12626
- }
12627
- })
12719
+ });
12720
+ if (data.enableUpload) {
12721
+ this.#uppy.use(XHRUpload, {
12722
+ endpoint: '',
12723
+ headers: data.headers,
12724
+ getResponseData: xhr => {
12725
+ return {
12726
+ fileId: xhr.responseText,
12727
+ response: xhr
12728
+ };
12729
+ }
12730
+ });
12731
+ }
12732
+ this.#uppy
12628
12733
  .on('file-added', file => {
12629
12734
  this.#removeUnnecessaryOptions(this.#disableLocalFiles);
12630
12735
  this.#fileLoaded.next(file);
@@ -12655,40 +12760,56 @@ class BizyFileUploaderService {
12655
12760
  })
12656
12761
  .on('complete', result => {
12657
12762
  this.#removeUnnecessaryOptions(this.#disableLocalFiles);
12658
- this.#complete.next(result);
12763
+ this.#complete.next({
12764
+ successful: result.successful ?? [],
12765
+ failed: result.failed ?? []
12766
+ });
12659
12767
  });
12660
12768
  this.#removeUnnecessaryOptions(this.#disableLocalFiles);
12661
12769
  }
12662
12770
  load = (data) => {
12663
12771
  if (!this.#uppy) {
12664
- return;
12772
+ return null;
12665
12773
  }
12666
- this.#uppy.addFile({
12667
- name: data.file.name, // File name
12668
- type: data.file.type, // File type
12669
- data: data.file, // File blob
12774
+ const loadFile = this.#normalizeLoadFile(data);
12775
+ return this.#uppy.addFile({
12776
+ name: loadFile.file.name, // File name
12777
+ type: loadFile.file.type, // File type
12778
+ data: loadFile.file, // File blob
12670
12779
  meta: {
12671
12780
  // Optional, store the directory path of a file so Uppy can tell identical files in different directories apart.
12672
- relativePath: data.file.webkitRelativePath,
12673
- referenceId: data.id
12781
+ relativePath: loadFile.file.webkitRelativePath,
12782
+ referenceId: loadFile.id
12674
12783
  },
12675
12784
  source: 'Local', // Optional, determines the source of the file, for example, Instagram.
12676
12785
  isRemote: false // Optional, set to true if actual file is not in the browser, but on some remote server, for example,
12677
12786
  // when using companion in combination with Instagram.
12678
12787
  });
12679
12788
  };
12789
+ remove = (fileId) => {
12790
+ if (!this.#uppy) {
12791
+ return;
12792
+ }
12793
+ this.#uppy.removeFile(fileId);
12794
+ };
12680
12795
  disable(value) {
12681
12796
  if (!this.#uppy) {
12682
12797
  return;
12683
12798
  }
12684
12799
  const dashboard = this.#uppy.getPlugin('Dashboard');
12685
- dashboard.setOptions({ disabled: value });
12800
+ if (dashboard) {
12801
+ dashboard.setOptions({ disabled: value });
12802
+ }
12686
12803
  }
12687
12804
  upload = (data) => {
12688
12805
  if (!this.#uppy) {
12689
12806
  return;
12690
12807
  }
12691
- this.#uppy.getPlugin('XHRUpload').setOptions({
12808
+ const xhrUpload = this.#uppy.getPlugin('XHRUpload');
12809
+ if (!xhrUpload) {
12810
+ return;
12811
+ }
12812
+ xhrUpload.setOptions({
12692
12813
  endpoint: data.endpoint,
12693
12814
  headers: data.headers ?? {}
12694
12815
  });
@@ -12700,6 +12821,19 @@ class BizyFileUploaderService {
12700
12821
  }
12701
12822
  this.#uppy.cancelAll();
12702
12823
  };
12824
+ destroy = () => {
12825
+ this.#uppy?.destroy();
12826
+ this.#uppy = null;
12827
+ };
12828
+ #normalizeLoadFile = (data) => {
12829
+ if (this.#isLoadFile(data)) {
12830
+ return data;
12831
+ }
12832
+ return { file: data };
12833
+ };
12834
+ #isLoadFile = (data) => {
12835
+ return typeof data === 'object' && data !== null && 'file' in data;
12836
+ };
12703
12837
  #removeUnnecessaryOptions = (remove) => {
12704
12838
  setTimeout(() => {
12705
12839
  if (!remove) {
@@ -12724,15 +12858,18 @@ class BizyFileUploaderService {
12724
12858
  }, 0);
12725
12859
  };
12726
12860
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12727
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService, providedIn: 'root' });
12861
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService });
12728
12862
  }
12729
12863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService, decorators: [{
12730
- type: Injectable,
12731
- args: [{
12732
- providedIn: 'root'
12733
- }]
12864
+ type: Injectable
12734
12865
  }] });
12735
12866
 
12867
+ var BIZY_FILE_UPLOADER_MODE;
12868
+ (function (BIZY_FILE_UPLOADER_MODE) {
12869
+ BIZY_FILE_UPLOADER_MODE["UPLOAD"] = "UPLOAD";
12870
+ BIZY_FILE_UPLOADER_MODE["ATTACH"] = "ATTACH";
12871
+ })(BIZY_FILE_UPLOADER_MODE || (BIZY_FILE_UPLOADER_MODE = {}));
12872
+
12736
12873
  class BizyFileUploaderComponent {
12737
12874
  #elementRef = inject(ElementRef);
12738
12875
  #fileUploader = inject(BizyFileUploaderService);
@@ -12745,24 +12882,38 @@ class BizyFileUploaderComponent {
12745
12882
  maxTotalFileSize = 31458000; // 30MB
12746
12883
  maxNumberOfFiles = null;
12747
12884
  minNumberOfFiles = null;
12748
- allowedFileTypes = ['.wav'];
12885
+ allowedFileTypes = null;
12749
12886
  hideUploadButton = true;
12750
12887
  hidePauseResumeButton = true;
12751
12888
  hideCancelButton = false;
12752
12889
  disableLocalFiles = false;
12753
- load;
12754
- upload;
12890
+ mode = BIZY_FILE_UPLOADER_MODE.UPLOAD;
12891
+ load = null;
12892
+ upload = null;
12893
+ set files(value) {
12894
+ this.#inputFiles = value ?? [];
12895
+ this.#syncInputFiles();
12896
+ }
12897
+ get files() {
12898
+ return this.#inputFiles;
12899
+ }
12755
12900
  set disabled(value) {
12756
12901
  this.#fileUploader.disable(Boolean(value));
12757
12902
  }
12758
12903
  ;
12759
12904
  completed = new EventEmitter();
12760
12905
  loadedFiles = new EventEmitter();
12906
+ attachedFiles = new EventEmitter();
12761
12907
  #subscription = new Subscription();
12762
12908
  #files = new Set();
12909
+ #inputFiles = [];
12910
+ #inputFileIds = new Map();
12911
+ #isFileUploaderReady = false;
12912
+ #destroyed = false;
12763
12913
  TEMPLATE_ID = 'bizy-file-uploader-template';
12764
- ngAfterViewInit() {
12765
- this.#fileUploader.createFileUploader({
12914
+ async ngAfterViewInit() {
12915
+ const allowedFileTypes = this.#getAllowedFileTypes();
12916
+ await this.#fileUploader.createFileUploader({
12766
12917
  maxFileSize: this.maxFileSize,
12767
12918
  minFileSize: this.minFileSize,
12768
12919
  maxTotalFileSize: this.maxTotalFileSize,
@@ -12770,15 +12921,20 @@ class BizyFileUploaderComponent {
12770
12921
  minNumberOfFiles: this.minNumberOfFiles,
12771
12922
  dragDropAreaWidth: this.dragDropAreaWidth,
12772
12923
  dragDropAreaHeight: this.dragDropAreaHeight,
12773
- allowedFileTypes: this.allowedFileTypes,
12924
+ allowedFileTypes,
12774
12925
  language: this.language,
12775
12926
  templateId: this.TEMPLATE_ID,
12776
12927
  hideCancelButton: this.hideCancelButton,
12777
12928
  hideUploadButton: this.hideUploadButton,
12778
12929
  hidePauseResumeButton: this.hidePauseResumeButton,
12779
12930
  disableLocalFiles: this.disableLocalFiles,
12931
+ enableUpload: this.mode === BIZY_FILE_UPLOADER_MODE.UPLOAD,
12780
12932
  headers: this.headers,
12781
12933
  });
12934
+ if (this.#destroyed) {
12935
+ this.#fileUploader.destroy();
12936
+ return;
12937
+ }
12782
12938
  if (this.upload) {
12783
12939
  this.#subscription.add(this.upload.subscribe(data => {
12784
12940
  if (this.#files.size === 0 || (this.minNumberOfFiles && this.#files.size < this.minNumberOfFiles)) {
@@ -12813,20 +12969,96 @@ class BizyFileUploaderComponent {
12813
12969
  }));
12814
12970
  this.#subscription.add(this.#fileUploader.fileLoaded$.subscribe(file => {
12815
12971
  this.#files.add(file);
12816
- this.loadedFiles.emit(Array.from(this.#files));
12972
+ this.#emitFiles();
12817
12973
  }));
12818
12974
  this.#subscription.add(this.#fileUploader.fileRemoved$.subscribe(file => {
12819
12975
  this.#files.delete(file);
12820
- this.loadedFiles.emit(Array.from(this.#files));
12976
+ this.#removeTrackedInputFile(file.id);
12977
+ this.#emitFiles();
12821
12978
  }));
12979
+ this.#isFileUploaderReady = true;
12980
+ this.#syncInputFiles();
12822
12981
  }
12982
+ #getAllowedFileTypes = () => {
12983
+ if (typeof this.allowedFileTypes === 'string') {
12984
+ return [this.allowedFileTypes];
12985
+ }
12986
+ if (Array.isArray(this.allowedFileTypes) && this.allowedFileTypes.length > 0) {
12987
+ return this.allowedFileTypes;
12988
+ }
12989
+ return null;
12990
+ };
12991
+ #syncInputFiles = () => {
12992
+ if (!this.#isFileUploaderReady) {
12993
+ return;
12994
+ }
12995
+ const nextInputKeys = new Set(this.#inputFiles.map(this.#getInputFileKey));
12996
+ Array.from(this.#inputFileIds.entries()).forEach(([key, fileId]) => {
12997
+ if (!nextInputKeys.has(key)) {
12998
+ this.#fileUploader.remove(fileId);
12999
+ this.#inputFileIds.delete(key);
13000
+ }
13001
+ });
13002
+ this.#inputFiles.forEach(inputFile => {
13003
+ const key = this.#getInputFileKey(inputFile);
13004
+ if (this.#inputFileIds.has(key) || (this.maxNumberOfFiles && this.#files.size >= this.maxNumberOfFiles)) {
13005
+ return;
13006
+ }
13007
+ try {
13008
+ const fileId = this.#fileUploader.load(inputFile);
13009
+ if (fileId) {
13010
+ this.#inputFileIds.set(key, fileId);
13011
+ }
13012
+ }
13013
+ catch {
13014
+ return;
13015
+ }
13016
+ });
13017
+ };
13018
+ #getInputFileKey = (inputFile) => {
13019
+ if (this.#isLoadFile(inputFile)) {
13020
+ return `id:${inputFile.id}`;
13021
+ }
13022
+ return `file:${inputFile.name}:${inputFile.size}:${inputFile.type}:${inputFile.lastModified}`;
13023
+ };
13024
+ #isLoadFile = (inputFile) => {
13025
+ return typeof inputFile === 'object' && inputFile !== null && 'file' in inputFile;
13026
+ };
13027
+ #removeTrackedInputFile = (fileId) => {
13028
+ Array.from(this.#inputFileIds.entries()).forEach(([key, trackedFileId]) => {
13029
+ if (trackedFileId === fileId) {
13030
+ this.#inputFileIds.delete(key);
13031
+ }
13032
+ });
13033
+ };
13034
+ #emitFiles = () => {
13035
+ const files = Array.from(this.#files);
13036
+ this.loadedFiles.emit(files);
13037
+ this.attachedFiles.emit(this.#mapAttachedFiles(files));
13038
+ };
13039
+ #mapAttachedFiles = (files) => {
13040
+ return files.flatMap(file => {
13041
+ if (file.isRemote === true || !file.data) {
13042
+ return [];
13043
+ }
13044
+ return [{
13045
+ id: file.id,
13046
+ file: file.data,
13047
+ meta: file.meta,
13048
+ name: file.name,
13049
+ size: file.size,
13050
+ type: file.type
13051
+ }];
13052
+ });
13053
+ };
12823
13054
  getNativeElement = () => this.#elementRef?.nativeElement;
12824
13055
  ngOnDestroy() {
12825
- this.#fileUploader.cleanAllFiles();
13056
+ this.#destroyed = true;
13057
+ this.#fileUploader.destroy();
12826
13058
  this.#subscription.unsubscribe();
12827
13059
  }
12828
13060
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12829
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyFileUploaderComponent, isStandalone: true, selector: "bizy-file-uploader", inputs: { dragDropAreaWidth: "dragDropAreaWidth", dragDropAreaHeight: "dragDropAreaHeight", language: "language", headers: "headers", maxFileSize: "maxFileSize", minFileSize: "minFileSize", maxTotalFileSize: "maxTotalFileSize", maxNumberOfFiles: "maxNumberOfFiles", minNumberOfFiles: "minNumberOfFiles", allowedFileTypes: "allowedFileTypes", hideUploadButton: "hideUploadButton", hidePauseResumeButton: "hidePauseResumeButton", hideCancelButton: "hideCancelButton", disableLocalFiles: "disableLocalFiles", load: "load", upload: "upload", disabled: "disabled" }, outputs: { completed: "completed", loadedFiles: "loadedFiles" }, providers: [BizyFileUploaderService], ngImport: i0, template: '<div [id]="TEMPLATE_ID"></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
13061
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyFileUploaderComponent, isStandalone: true, selector: "bizy-file-uploader", inputs: { dragDropAreaWidth: "dragDropAreaWidth", dragDropAreaHeight: "dragDropAreaHeight", language: "language", headers: "headers", maxFileSize: "maxFileSize", minFileSize: "minFileSize", maxTotalFileSize: "maxTotalFileSize", maxNumberOfFiles: "maxNumberOfFiles", minNumberOfFiles: "minNumberOfFiles", allowedFileTypes: "allowedFileTypes", hideUploadButton: "hideUploadButton", hidePauseResumeButton: "hidePauseResumeButton", hideCancelButton: "hideCancelButton", disableLocalFiles: "disableLocalFiles", mode: "mode", load: "load", upload: "upload", files: "files", disabled: "disabled" }, outputs: { completed: "completed", loadedFiles: "loadedFiles", attachedFiles: "attachedFiles" }, providers: [BizyFileUploaderService], ngImport: i0, template: '<div [id]="TEMPLATE_ID"></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
12830
13062
  }
12831
13063
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderComponent, decorators: [{
12832
13064
  type: Component,
@@ -12864,16 +13096,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
12864
13096
  type: Input
12865
13097
  }], disableLocalFiles: [{
12866
13098
  type: Input
13099
+ }], mode: [{
13100
+ type: Input
12867
13101
  }], load: [{
12868
13102
  type: Input
12869
13103
  }], upload: [{
12870
13104
  type: Input
13105
+ }], files: [{
13106
+ type: Input
12871
13107
  }], disabled: [{
12872
13108
  type: Input
12873
13109
  }], completed: [{
12874
13110
  type: Output
12875
13111
  }], loadedFiles: [{
12876
13112
  type: Output
13113
+ }], attachedFiles: [{
13114
+ type: Output
12877
13115
  }] } });
12878
13116
 
12879
13117
  const COMPONENTS$o = [
@@ -13006,7 +13244,7 @@ class BizyFilterSectionRangeOptionComponent {
13006
13244
  return this.#activated.value;
13007
13245
  };
13008
13246
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionRangeOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13009
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyFilterSectionRangeOptionComponent, isStandalone: true, selector: "bizy-filter-section-range-option", inputs: { id: "id", disabled: "disabled", customClass: "customClass", min: "min", max: "max", minLimit: "minLimit", maxLimit: "maxLimit" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<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>", styles: [":host{font-size:1rem}.bizy-filter-section-range-option{display:flex;flex-direction:column;row-gap:1rem}.bizy-filter-section-range-option__inputs{display:flex;align-items:center;column-gap:.5rem}.bizy-filter-section-range-option__input{--bizy-input-background-color: #f3f3f3 !important}\n"], dependencies: [{ kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13247
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyFilterSectionRangeOptionComponent, isStandalone: true, selector: "bizy-filter-section-range-option", inputs: { id: "id", disabled: "disabled", customClass: "customClass", min: "min", max: "max", minLimit: "minLimit", maxLimit: "maxLimit" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<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>", styles: [":host{font-size:1rem}.bizy-filter-section-range-option{display:flex;flex-direction:column;row-gap:1rem}.bizy-filter-section-range-option__inputs{display:flex;align-items:center;column-gap:.5rem}.bizy-filter-section-range-option__input{--bizy-input-background-color: #f3f3f3 !important}\n"], dependencies: [{ kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onKey", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13010
13248
  }
13011
13249
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionRangeOptionComponent, decorators: [{
13012
13250
  type: Component,
@@ -13120,7 +13358,7 @@ class BizyFilterSectionSearchOptionComponent {
13120
13358
  return this.#activated.value;
13121
13359
  };
13122
13360
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionSearchOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyFilterSectionSearchOptionComponent, isStandalone: true, selector: "bizy-filter-section-search-option", inputs: { id: "id", customClass: "customClass", value: "value" }, outputs: { valueChange: "valueChange", onChange: "onChange" }, ngImport: i0, template: "<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", styles: [":host{font-size:1rem;width:100%}.bizy-filter-section-search-option{--bizy-input-background-color: #f3f3f3 !important}\n"], dependencies: [{ kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13361
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyFilterSectionSearchOptionComponent, isStandalone: true, selector: "bizy-filter-section-search-option", inputs: { id: "id", customClass: "customClass", value: "value" }, outputs: { valueChange: "valueChange", onChange: "onChange" }, ngImport: i0, template: "<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", styles: [":host{font-size:1rem;width:100%}.bizy-filter-section-search-option{--bizy-input-background-color: #f3f3f3 !important}\n"], dependencies: [{ kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onKey", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13124
13362
  }
13125
13363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionSearchOptionComponent, decorators: [{
13126
13364
  type: Component,
@@ -13755,7 +13993,7 @@ class BizySelectComponent {
13755
13993
  this.#contentChildrenSubscription.unsubscribe();
13756
13994
  }
13757
13995
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizySelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13758
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizySelectComponent, isStandalone: true, selector: "bizy-select", inputs: { id: "id", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", customClass: "customClass", opened: "opened" }, outputs: { openedChange: "openedChange", onSelect: "onSelect", onOpen: "onOpen" }, queries: [{ propertyName: "options", predicate: BizySelectOptionComponent }], viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }, { propertyName: "bizyInput", first: true, predicate: ["bizyInput"], descendants: true }], ngImport: i0, template: "<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", styles: [":host{font-size:1rem;width:var(--bizy-select-width);min-width:var(--bizy-select-min-width);max-width:var(--bizy-select-max-width);display:flex;flex-direction:column;row-gap:.3rem;--bizy-input-focus-color: transparent}:host:has(>.bizy-select__errors:not(:empty)) ::ng-deep .bizy-input__bottom-line{background-color:var(--bizy-input-invalid-color)!important;visibility:visible!important}:host:has(>.bizy-select__errors:not(:empty)) ::ng-deep .bizy-input__content__input{color:var(--bizy-input-invalid-color)!important}.bizy-select{--bizy-input-cursor: pointer;--bizy-input-background-color: var(--bizy-select-background-color);--bizy-input-color: var(--bizy-select-color)}.bizy-select--readonly{--bizy-input-cursor: default}.bizy-select__arrow{height:var(--bizy-select-arrow-height);pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-select-color)}.bizy-select__arrow--opened{transform:rotate(180deg)}.bizy-select__options{background-color:var(--bizy-select-background-color);display:flex;min-width:fit-content;width:100%;flex-direction:column;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;max-height:var(--bizy-select-height);overflow-y:auto;overflow-x:hidden;position:relative}.bizy-select__options::-webkit-scrollbar{width:.5rem;height:.5rem}.bizy-select__options::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-select-scroll-bar-color)}.bizy-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-select-scroll-bar-hover-color)}.bizy-select__options::-webkit-scrollbar-button{height:1rem}.bizy-select__options__search{position:sticky;z-index:1;top:0}::ng-deep .bizy-select__options__search{--bizy-input-width: auto;--bizy-input-background-color: #fff;--bizy-input-min-width: var(--bizy-select-min-width);--bizy-input-max-width: auto;margin-bottom:.3rem}.bizy-select__errors:empty{display:none!important}::ng-deep .bizy-select__errors *{color:var(--bizy-input-invalid-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.ɵɵCdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13996
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizySelectComponent, isStandalone: true, selector: "bizy-select", inputs: { id: "id", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", customClass: "customClass", opened: "opened" }, outputs: { openedChange: "openedChange", onSelect: "onSelect", onOpen: "onOpen" }, queries: [{ propertyName: "options", predicate: BizySelectOptionComponent }], viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }, { propertyName: "bizyInput", first: true, predicate: ["bizyInput"], descendants: true }], ngImport: i0, template: "<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", styles: [":host{font-size:1rem;width:var(--bizy-select-width);min-width:var(--bizy-select-min-width);max-width:var(--bizy-select-max-width);display:flex;flex-direction:column;row-gap:.3rem;--bizy-input-focus-color: transparent}:host:has(>.bizy-select__errors:not(:empty)) ::ng-deep .bizy-input__bottom-line{background-color:var(--bizy-input-invalid-color)!important;visibility:visible!important}:host:has(>.bizy-select__errors:not(:empty)) ::ng-deep .bizy-input__content__input{color:var(--bizy-input-invalid-color)!important}.bizy-select{--bizy-input-cursor: pointer;--bizy-input-background-color: var(--bizy-select-background-color);--bizy-input-color: var(--bizy-select-color)}.bizy-select--readonly{--bizy-input-cursor: default}.bizy-select__arrow{height:var(--bizy-select-arrow-height);pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-select-color)}.bizy-select__arrow--opened{transform:rotate(180deg)}.bizy-select__options{background-color:var(--bizy-select-background-color);display:flex;min-width:fit-content;width:100%;flex-direction:column;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;max-height:var(--bizy-select-height);overflow-y:auto;overflow-x:hidden;position:relative}.bizy-select__options::-webkit-scrollbar{width:.5rem;height:.5rem}.bizy-select__options::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-select-scroll-bar-color)}.bizy-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-select-scroll-bar-hover-color)}.bizy-select__options::-webkit-scrollbar-button{height:1rem}.bizy-select__options__search{position:sticky;z-index:1;top:0}::ng-deep .bizy-select__options__search{--bizy-input-width: auto;--bizy-input-background-color: #fff;--bizy-input-min-width: var(--bizy-select-min-width);--bizy-input-max-width: auto;margin-bottom:.3rem}.bizy-select__errors:empty{display:none!important}::ng-deep .bizy-select__errors *{color:var(--bizy-input-invalid-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BizyInputComponent, selector: "bizy-input", inputs: ["id", "name", "customClass", "placeholder", "debounceTime", "rows", "type", "maxLength", "autofocus", "disabled", "readonly", "value"], outputs: ["valueChange", "onChange", "onEnter", "onKey", "onBackspace", "onSelect", "onBlur", "onFocus", "onPaste"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.ɵɵCdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13759
13997
  }
13760
13998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizySelectComponent, decorators: [{
13761
13999
  type: Component,
@@ -14307,54 +14545,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
14307
14545
  class BizyGridComponent {
14308
14546
  #elementRef = inject(ElementRef);
14309
14547
  #ref = inject(ChangeDetectorRef);
14310
- #document = inject(DOCUMENT$1);
14548
+ #document = inject(DOCUMENT);
14311
14549
  #renderer = inject(Renderer2);
14312
- virtualScroll;
14313
- content;
14314
- gridDirective;
14550
+ #zone = inject(NgZone);
14551
+ virtualScroll = null;
14552
+ content = null;
14553
+ gridDirective = null;
14315
14554
  resizeRef = null;
14316
- #rowScrollingMutationObserver;
14317
- #resizeObserver;
14555
+ scrollDisabled = false;
14556
+ set scrollResetKey(_value) {
14557
+ this.#wasAtEnd = false;
14558
+ }
14559
+ endReached = new EventEmitter();
14560
+ #bottomThreshold = 120;
14561
+ #resizeObserver = null;
14318
14562
  #subscription = new Subscription();
14319
- #view;
14563
+ #view = null;
14564
+ #viewportCheckFrame = null;
14565
+ #scrollFrame = null;
14566
+ #wasAtEnd = false;
14567
+ #destroyed = false;
14320
14568
  notifier$ = new Subject();
14321
14569
  rowHeight = 100;
14322
14570
  itemRows = [];
14323
14571
  items = [];
14324
- itemTemplate;
14572
+ itemTemplate = null;
14325
14573
  itemsPerRow = 1;
14326
14574
  getNativeElement = () => this.#elementRef?.nativeElement;
14327
- ngAfterContentInit() {
14328
- this.#rowScrollingMutationObserver = new MutationObserver(() => {
14329
- if (!this.gridDirective) {
14575
+ ngAfterViewInit() {
14576
+ this.#listenToScroll();
14577
+ if (!this.gridDirective) {
14578
+ return;
14579
+ }
14580
+ this.#subscription.add(this.gridDirective.items$.subscribe(items => {
14581
+ if (this.items.length === 0 && items.length === 0) {
14582
+ this.#scheduleViewportCheck();
14330
14583
  return;
14331
14584
  }
14332
- this.#subscription.add(this.gridDirective.items$.subscribe(items => {
14333
- if (this.items.length === 0 && items.length === 0) {
14334
- return;
14335
- }
14336
- this.items = items;
14337
- this.#updateView();
14338
- if (!this.#view) {
14339
- this.#view = this.gridDirective.viewContainerRef;
14340
- this.#view.createEmbeddedView(this.content);
14341
- }
14342
- }));
14343
- this.#rowScrollingMutationObserver.disconnect();
14344
- this.#ref.detectChanges();
14345
- });
14346
- this.#rowScrollingMutationObserver.observe(this.#document.body, { childList: true, subtree: true });
14585
+ this.items = items;
14586
+ this.#updateView();
14587
+ this.#createScrollingContent();
14588
+ }));
14347
14589
  this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());
14348
- const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;
14590
+ const resizeRef = this.#getResizeElement();
14349
14591
  this.#resizeObserver.observe(resizeRef);
14350
14592
  this.#subscription.add(this.notifier$.pipe(debounceTime(50)).subscribe(() => {
14351
14593
  this.#updateView(true);
14352
14594
  }));
14595
+ this.#scheduleViewportCheck();
14353
14596
  }
14354
- #updateView = (resize = false) => {
14597
+ #updateView = (resize) => {
14598
+ if (!this.gridDirective) {
14599
+ return;
14600
+ }
14355
14601
  this.itemTemplate = this.gridDirective.templateRef;
14356
- const rowWidth = this.#elementRef.nativeElement.offsetWidth || this.#elementRef.nativeElement.firstChild.offsetWidth;
14357
- const gridHeight = this.#elementRef.nativeElement.offsetHeight || this.#elementRef.nativeElement.firstChild.offsetHeight;
14602
+ const firstChild = this.#elementRef.nativeElement.firstElementChild;
14603
+ const rowWidth = this.#elementRef.nativeElement.offsetWidth || firstChild?.offsetWidth || 0;
14358
14604
  let columnWidth = 100;
14359
14605
  const fontSize = Number(getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('font-size').split('px')[0]);
14360
14606
  const rowHeightParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-row-height');
@@ -14364,9 +14610,6 @@ class BizyGridComponent {
14364
14610
  else if (rowHeightParameter && rowHeightParameter.includes('px')) {
14365
14611
  this.rowHeight = Number(rowHeightParameter.split('px')[0]);
14366
14612
  }
14367
- else if (rowHeightParameter && rowHeightParameter.includes('%')) {
14368
- this.rowHeight = (Number(rowHeightParameter.split('%')[0]) / 100) * gridHeight;
14369
- }
14370
14613
  let gap = 10;
14371
14614
  const gapParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-gap');
14372
14615
  if (gapParameter && gapParameter.includes('rem')) {
@@ -14375,9 +14618,6 @@ class BizyGridComponent {
14375
14618
  else if (gapParameter && gapParameter.includes('px')) {
14376
14619
  gap = Number(gapParameter.split('px')[0]);
14377
14620
  }
14378
- else if (gapParameter && gapParameter.includes('%')) {
14379
- gap = (Number(gapParameter.split('%')[0]) / 100) * gridHeight;
14380
- }
14381
14621
  const columnWidthParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-column-width');
14382
14622
  if (columnWidthParameter && columnWidthParameter.includes('rem')) {
14383
14623
  columnWidth = fontSize * Number(columnWidthParameter.split('rem')[0]);
@@ -14398,6 +14638,7 @@ class BizyGridComponent {
14398
14638
  newItemsPerRow = (count - 1) <= 0 ? 1 : count - 1;
14399
14639
  }
14400
14640
  if (resize && newItemsPerRow === this.itemsPerRow) {
14641
+ this.#scheduleViewportCheck();
14401
14642
  return;
14402
14643
  }
14403
14644
  this.itemsPerRow = newItemsPerRow;
@@ -14408,6 +14649,89 @@ class BizyGridComponent {
14408
14649
  }
14409
14650
  this.itemRows = itemRows;
14410
14651
  this.#ref.detectChanges();
14652
+ this.#scheduleViewportCheck();
14653
+ };
14654
+ #createScrollingContent = () => {
14655
+ if (this.#view || !this.content) {
14656
+ return;
14657
+ }
14658
+ if (this.gridDirective) {
14659
+ this.#view = this.gridDirective.viewContainerRef;
14660
+ this.#view.createEmbeddedView(this.content);
14661
+ this.#ref.detectChanges();
14662
+ this.#scheduleViewportCheck();
14663
+ }
14664
+ };
14665
+ #getResizeElement = () => {
14666
+ if (this.resizeRef instanceof ElementRef) {
14667
+ return this.resizeRef.nativeElement;
14668
+ }
14669
+ if (this.resizeRef) {
14670
+ return this.resizeRef;
14671
+ }
14672
+ return this.#renderer.parentNode(this.#elementRef.nativeElement) || this.#elementRef.nativeElement;
14673
+ };
14674
+ #listenToScroll = () => {
14675
+ const windowRef = this.#document.defaultView;
14676
+ const listenToScroll = () => {
14677
+ this.#scrollFrame = null;
14678
+ if (this.#destroyed) {
14679
+ return;
14680
+ }
14681
+ const scrollElement = this.#getScrollElement();
14682
+ this.#subscription.add(fromEvent(scrollElement, 'scroll', { passive: true })
14683
+ .pipe(auditTime(150))
14684
+ .subscribe(() => this.#onScroll(scrollElement)));
14685
+ };
14686
+ this.#zone.runOutsideAngular(() => {
14687
+ if (windowRef?.requestAnimationFrame) {
14688
+ this.#scrollFrame = windowRef.requestAnimationFrame(listenToScroll);
14689
+ return;
14690
+ }
14691
+ listenToScroll();
14692
+ });
14693
+ };
14694
+ #onScroll = (scrollElement) => {
14695
+ if (this.scrollDisabled) {
14696
+ return;
14697
+ }
14698
+ if (scrollElement.scrollTop <= this.#bottomThreshold) {
14699
+ return;
14700
+ }
14701
+ const distanceToBottom = scrollElement.scrollHeight - scrollElement.scrollTop - scrollElement.clientHeight;
14702
+ const atEnd = distanceToBottom <= this.#bottomThreshold;
14703
+ if (!atEnd) {
14704
+ this.#wasAtEnd = false;
14705
+ return;
14706
+ }
14707
+ if (this.#wasAtEnd) {
14708
+ return;
14709
+ }
14710
+ this.#wasAtEnd = true;
14711
+ this.#zone.run(() => this.endReached.emit());
14712
+ };
14713
+ #getScrollElement = () => {
14714
+ return (this.#elementRef.nativeElement.querySelector('.cdk-virtual-scrollable') ??
14715
+ this.#elementRef.nativeElement.querySelector('cdk-virtual-scroll-viewport') ??
14716
+ this.#elementRef.nativeElement);
14717
+ };
14718
+ #scheduleViewportCheck = () => {
14719
+ if (this.#viewportCheckFrame !== null) {
14720
+ return;
14721
+ }
14722
+ const windowRef = this.#document.defaultView;
14723
+ const checkViewport = () => {
14724
+ this.#viewportCheckFrame = null;
14725
+ if (this.#destroyed) {
14726
+ return;
14727
+ }
14728
+ this.virtualScroll?.checkViewportSize();
14729
+ };
14730
+ if (windowRef?.requestAnimationFrame) {
14731
+ this.#viewportCheckFrame = windowRef.requestAnimationFrame(checkViewport);
14732
+ return;
14733
+ }
14734
+ checkViewport();
14411
14735
  };
14412
14736
  trackByRow(index, row) {
14413
14737
  if (row && row.length > 0) {
@@ -14416,19 +14740,28 @@ class BizyGridComponent {
14416
14740
  return index;
14417
14741
  }
14418
14742
  scrollTo(index, behavior = 'smooth') {
14743
+ if (!this.virtualScroll) {
14744
+ return;
14745
+ }
14419
14746
  this.virtualScroll.scrollToIndex(index, behavior);
14420
14747
  }
14421
14748
  ngOnDestroy() {
14749
+ this.#destroyed = true;
14422
14750
  this.#subscription.unsubscribe();
14423
- if (this.#rowScrollingMutationObserver) {
14424
- this.#rowScrollingMutationObserver.disconnect();
14751
+ if (this.#viewportCheckFrame !== null) {
14752
+ this.#document.defaultView?.cancelAnimationFrame(this.#viewportCheckFrame);
14753
+ this.#viewportCheckFrame = null;
14754
+ }
14755
+ if (this.#scrollFrame !== null) {
14756
+ this.#document.defaultView?.cancelAnimationFrame(this.#scrollFrame);
14757
+ this.#scrollFrame = null;
14425
14758
  }
14426
14759
  if (this.#resizeObserver) {
14427
14760
  this.#resizeObserver.disconnect();
14428
14761
  }
14429
14762
  }
14430
14763
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14431
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyGridComponent, isStandalone: true, selector: "bizy-grid", inputs: { resizeRef: "resizeRef" }, queries: [{ propertyName: "gridDirective", first: true, predicate: BizyGridForDirective, descendants: true }], viewQueries: [{ propertyName: "virtualScroll", first: true, predicate: ["cdkVirtualScroll"], descendants: true }, { propertyName: "content", first: true, predicate: ["gridScrollingContent"], descendants: true }], ngImport: i0, template: "<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 * 10)\"\n [maxBufferPx]=\"rowHeight + (rowHeight * 20)\">\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 [cdkVirtualForTrackBy]=\"trackByRow\">\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 }\">\n </ng-template>\n }\n </bizy-grid-row>\n </ng-template>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n</div>\n", styles: [":host{display:inline-block!important;min-height:var(--bizy-grid-min-height);max-height:var(--bizy-grid-max-height);height:var(--bizy-grid-height);width:var(--bizy-grid-width);flex:1;overflow-x:auto;overflow-y:hidden;font-size:1rem}:host:has(.bizy-grid--empty){height:0!important;min-height:0!important;max-height:0!important}.bizy-grid{width:inherit;height:inherit;min-width:fit-content;display:flex;flex-direction:column;row-gap:.3rem;overflow-x:clip;background-color:var(--bizy-grid-background-color)}.bizy-grid__rows{width:100%;display:flex;flex-direction:column;min-width:fit-content;overflow-x:hidden}::ng-deep .cdk-virtual-scrollable{height:100%;width:100%;overflow-y:auto!important;overflow-x:hidden!important;contain:inline-size!important}::ng-deep .cdk-virtual-scroll-content-wrapper{min-width:100%;max-width:100%}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar{width:.5rem;height:.5rem}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-grid-scroll-bar-color)}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-grid-scroll-bar-hover-color)}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar-button{height:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2$2.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2$2.ɵɵCdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2$2.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: BizyGridRowComponent, selector: "bizy-grid-row", inputs: ["rowHeight", "itemsPerRow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14764
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyGridComponent, isStandalone: true, selector: "bizy-grid", inputs: { resizeRef: "resizeRef", scrollDisabled: "scrollDisabled", scrollResetKey: "scrollResetKey" }, outputs: { endReached: "endReached" }, queries: [{ propertyName: "gridDirective", first: true, predicate: BizyGridForDirective, descendants: true }], viewQueries: [{ propertyName: "virtualScroll", first: true, predicate: ["cdkVirtualScroll"], descendants: true }, { propertyName: "content", first: true, predicate: ["gridScrollingContent"], descendants: true }], ngImport: i0, template: "<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 * 10)\"\n [maxBufferPx]=\"rowHeight + (rowHeight * 20)\">\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 [cdkVirtualForTrackBy]=\"trackByRow\">\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 }\">\n </ng-template>\n }\n </bizy-grid-row>\n </ng-template>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n</div>\n", styles: [":host{display:inline-block!important;min-height:var(--bizy-grid-min-height);max-height:var(--bizy-grid-max-height);height:var(--bizy-grid-height);width:var(--bizy-grid-width);flex:1;overflow-x:auto;overflow-y:hidden;font-size:1rem}:host:has(.bizy-grid--empty){height:0!important;min-height:0!important;max-height:0!important}.bizy-grid{width:inherit;height:inherit;min-width:fit-content;display:flex;flex-direction:column;row-gap:.3rem;overflow-x:clip;background-color:var(--bizy-grid-background-color)}.bizy-grid__rows{width:100%;display:flex;flex-direction:column;min-width:fit-content;overflow-x:hidden}::ng-deep .cdk-virtual-scrollable{height:100%;width:100%;overflow-y:auto!important;overflow-x:hidden!important;contain:inline-size!important}::ng-deep .cdk-virtual-scroll-content-wrapper{min-width:100%;max-width:100%}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar{width:.5rem;height:.5rem}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-grid-scroll-bar-color)}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-grid-scroll-bar-hover-color)}::ng-deep .cdk-virtual-scrollable::-webkit-scrollbar-button{height:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2$2.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2$2.ɵɵCdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2$2.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: BizyGridRowComponent, selector: "bizy-grid-row", inputs: ["rowHeight", "itemsPerRow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14432
14765
  }
14433
14766
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyGridComponent, decorators: [{
14434
14767
  type: Component,
@@ -14444,6 +14777,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
14444
14777
  args: [BizyGridForDirective]
14445
14778
  }], resizeRef: [{
14446
14779
  type: Input
14780
+ }], scrollDisabled: [{
14781
+ type: Input
14782
+ }], scrollResetKey: [{
14783
+ type: Input
14784
+ }], endReached: [{
14785
+ type: Output
14447
14786
  }] } });
14448
14787
 
14449
14788
  const COMPONENTS$k = [
@@ -15044,11 +15383,11 @@ class BizyMenuOptionComponent {
15044
15383
  }
15045
15384
  getNativeElement = () => this.#elementRef?.nativeElement;
15046
15385
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyMenuOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15047
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyMenuOptionComponent, isStandalone: true, selector: "bizy-menu-option", inputs: { id: "id", disabled: "disabled", customClass: "customClass", selected: "selected" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu-option__menu:not(:empty)) .bizy-menu-option{display:none!important}.bizy-menu-option{font-size:1rem;width:100%;border:none;background-color:var(--bizy-menu-option-background-color);display:flex;align-items:center;justify-content:space-between;column-gap:.5rem;padding:.5rem;color:var(--bizy-menu-option-color);cursor:pointer}.bizy-menu-option:hover{background-color:var(--bizy-menu-option-hover-background-color)}.bizy-menu-option--selected{color:var(--bizy-menu-option-selected-color)!important;background-color:var(--bizy-menu-option-selected-background-color)!important}::ng-deep .bizy-menu-option--selected *{color:var(--bizy-menu-option-selected-color)!important}.bizy-menu-option--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-menu-option__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;width:100%}::ng-deep .bizy-menu-option__menu *{color:var(--bizy-menu-option-color);fill:var(--bizy-menu-option-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15386
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.5", type: BizyMenuOptionComponent, isStandalone: true, selector: "bizy-menu-option", inputs: { id: "id", disabled: "disabled", customClass: "customClass", selected: "selected" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu-option__menu:not(:empty)) .bizy-menu-option{display:none!important}.bizy-menu-option{font-size:1rem;width:100%;height:var(--bizy-menu-option-height, 2rem);border:none;background-color:var(--bizy-menu-option-background-color);display:flex;align-items:center;justify-content:space-between;column-gap:var(--bizy-menu-option-column-gap, .5rem);padding:var(--bizy-menu-option-padding, .5rem);color:var(--bizy-menu-option-color);cursor:pointer}.bizy-menu-option:hover{background-color:var(--bizy-menu-option-hover-background-color)}.bizy-menu-option--selected{color:var(--bizy-menu-option-selected-color)!important;background-color:var(--bizy-menu-option-selected-background-color)!important}::ng-deep .bizy-menu-option--selected *{color:var(--bizy-menu-option-selected-color)!important}.bizy-menu-option--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-menu-option__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;width:100%}::ng-deep .bizy-menu-option__menu *{color:var(--bizy-menu-option-color);fill:var(--bizy-menu-option-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15048
15387
  }
15049
15388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyMenuOptionComponent, decorators: [{
15050
15389
  type: Component,
15051
- args: [{ selector: 'bizy-menu-option', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu-option__menu:not(:empty)) .bizy-menu-option{display:none!important}.bizy-menu-option{font-size:1rem;width:100%;border:none;background-color:var(--bizy-menu-option-background-color);display:flex;align-items:center;justify-content:space-between;column-gap:.5rem;padding:.5rem;color:var(--bizy-menu-option-color);cursor:pointer}.bizy-menu-option:hover{background-color:var(--bizy-menu-option-hover-background-color)}.bizy-menu-option--selected{color:var(--bizy-menu-option-selected-color)!important;background-color:var(--bizy-menu-option-selected-background-color)!important}::ng-deep .bizy-menu-option--selected *{color:var(--bizy-menu-option-selected-color)!important}.bizy-menu-option--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-menu-option__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;width:100%}::ng-deep .bizy-menu-option__menu *{color:var(--bizy-menu-option-color);fill:var(--bizy-menu-option-color)}\n"] }]
15390
+ args: [{ selector: 'bizy-menu-option', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu-option__menu:not(:empty)) .bizy-menu-option{display:none!important}.bizy-menu-option{font-size:1rem;width:100%;height:var(--bizy-menu-option-height, 2rem);border:none;background-color:var(--bizy-menu-option-background-color);display:flex;align-items:center;justify-content:space-between;column-gap:var(--bizy-menu-option-column-gap, .5rem);padding:var(--bizy-menu-option-padding, .5rem);color:var(--bizy-menu-option-color);cursor:pointer}.bizy-menu-option:hover{background-color:var(--bizy-menu-option-hover-background-color)}.bizy-menu-option--selected{color:var(--bizy-menu-option-selected-color)!important;background-color:var(--bizy-menu-option-selected-background-color)!important}::ng-deep .bizy-menu-option--selected *{color:var(--bizy-menu-option-selected-color)!important}.bizy-menu-option--disabled{opacity:.5;pointer-events:none;cursor:not-allowed!important}.bizy-menu-option__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;width:100%}::ng-deep .bizy-menu-option__menu *{color:var(--bizy-menu-option-color);fill:var(--bizy-menu-option-color)}\n"] }]
15052
15391
  }], propDecorators: { id: [{
15053
15392
  type: Input
15054
15393
  }], disabled: [{
@@ -15125,11 +15464,11 @@ class BizyMenuComponent {
15125
15464
  this.#subscription.unsubscribe();
15126
15465
  }
15127
15466
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15128
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyMenuComponent, isStandalone: true, selector: "bizy-menu", inputs: { id: "id", disabled: "disabled", offsetX: "offsetX", offsetY: "offsetY", customClass: "customClass", hideArrow: "hideArrow", opened: "opened" }, outputs: { onSelect: "onSelect" }, queries: [{ propertyName: "options", predicate: BizyMenuOptionComponent }], ngImport: i0, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu__options:empty) .bizy-menu>.bizy-menu__arrow{display:none!important}.bizy-menu{font-size:1rem;width:100%;border:none;background-color:transparent;display:flex;align-items:center;justify-content:space-between;column-gap:.5rem;padding:var(--bizy-menu-padding);color:var(--bizy-menu-color);cursor:pointer}.bizy-menu--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-menu__arrow{height:var(--bizy-menu-arrow-height);pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-menu-color)}.bizy-menu__arrow--opened{transform:rotate(180deg)}.bizy-menu__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;pointer-events:none}.bizy-menu__options{background-color:var(--bizy-menu-background-color);min-width:var(--bizy-menu-min-width);max-width:var(--bizy-menu-max-width);max-height:var(--bizy-menu-max-height);overflow-y:auto;overflow-x:hidden;width:100%;display:flex;flex-direction:column;position:relative;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}.bizy-menu__options::-webkit-scrollbar{width:.5rem;height:.5rem}.bizy-menu__options::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-menu-scroll-bar-color)}.bizy-menu__options::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-menu-scroll-bar-hover-color)}.bizy-menu__options::-webkit-scrollbar-button{height:1rem}.bizy-menu__options__header{position:sticky;z-index:1;top:0;display:flex;flex-direction:column;row-gap:.3rem;background-color:#fff}::ng-deep .bizy-menu__options__header{--bizy-input-width: auto;--bizy-input-background-color: #fff;--bizy-input-min-width: var(--bizy-select-min-width);--bizy-input-max-width: auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15467
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.5", type: BizyMenuComponent, isStandalone: true, selector: "bizy-menu", inputs: { id: "id", disabled: "disabled", offsetX: "offsetX", offsetY: "offsetY", customClass: "customClass", hideArrow: "hideArrow", opened: "opened" }, outputs: { onSelect: "onSelect" }, queries: [{ propertyName: "options", predicate: BizyMenuOptionComponent }], ngImport: i0, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu__options:empty) .bizy-menu>.bizy-menu__arrow{display:none!important}.bizy-menu{font-size:1rem;width:100%;border:none;background-color:transparent;display:flex;align-items:center;justify-content:space-between;column-gap:.5rem;padding:var(--bizy-menu-padding);color:var(--bizy-menu-color);cursor:pointer}.bizy-menu--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-menu__arrow{height:var(--bizy-menu-arrow-height);pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-menu-color)}.bizy-menu__arrow--opened{transform:rotate(180deg)}.bizy-menu__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;pointer-events:none}.bizy-menu__options{border-top-left-radius:var(--bizy-menu-border-top-left-radius, var(--bizy-menu-border-radius, .5rem));border-top-right-radius:var(--bizy-menu-border-top-right-radius, var(--bizy-menu-border-radius, .5rem));border-bottom-right-radius:var(--bizy-menu-border-bottom-right-radius, var(--bizy-menu-border-radius, .5rem));border-bottom-left-radius:var(--bizy-menu-border-bottom-left-radius, var(--bizy-menu-border-radius, .5rem));background-color:var(--bizy-menu-background-color);min-width:var(--bizy-menu-min-width);max-width:var(--bizy-menu-max-width);max-height:var(--bizy-menu-max-height);overflow-y:auto;overflow-x:hidden;width:100%;display:flex;flex-direction:column;position:relative;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}.bizy-menu__options::-webkit-scrollbar{width:.5rem;height:.5rem}.bizy-menu__options::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-menu-scroll-bar-color)}.bizy-menu__options::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-menu-scroll-bar-hover-color)}.bizy-menu__options::-webkit-scrollbar-button{height:1rem}.bizy-menu__options__header{position:sticky;z-index:1;top:0;display:flex;flex-direction:column;row-gap:.3rem;background-color:#fff}::ng-deep .bizy-menu__options__header{--bizy-input-width: auto;--bizy-input-background-color: #fff;--bizy-input-min-width: var(--bizy-select-min-width);--bizy-input-max-width: auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2$2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15129
15468
  }
15130
15469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyMenuComponent, decorators: [{
15131
15470
  type: Component,
15132
- args: [{ selector: 'bizy-menu', imports: [CommonModule, FormsModule, OverlayModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu__options:empty) .bizy-menu>.bizy-menu__arrow{display:none!important}.bizy-menu{font-size:1rem;width:100%;border:none;background-color:transparent;display:flex;align-items:center;justify-content:space-between;column-gap:.5rem;padding:var(--bizy-menu-padding);color:var(--bizy-menu-color);cursor:pointer}.bizy-menu--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-menu__arrow{height:var(--bizy-menu-arrow-height);pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-menu-color)}.bizy-menu__arrow--opened{transform:rotate(180deg)}.bizy-menu__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;pointer-events:none}.bizy-menu__options{background-color:var(--bizy-menu-background-color);min-width:var(--bizy-menu-min-width);max-width:var(--bizy-menu-max-width);max-height:var(--bizy-menu-max-height);overflow-y:auto;overflow-x:hidden;width:100%;display:flex;flex-direction:column;position:relative;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}.bizy-menu__options::-webkit-scrollbar{width:.5rem;height:.5rem}.bizy-menu__options::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-menu-scroll-bar-color)}.bizy-menu__options::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-menu-scroll-bar-hover-color)}.bizy-menu__options::-webkit-scrollbar-button{height:1rem}.bizy-menu__options__header{position:sticky;z-index:1;top:0;display:flex;flex-direction:column;row-gap:.3rem;background-color:#fff}::ng-deep .bizy-menu__options__header{--bizy-input-width: auto;--bizy-input-background-color: #fff;--bizy-input-min-width: var(--bizy-select-min-width);--bizy-input-max-width: auto}\n"] }]
15471
+ args: [{ selector: 'bizy-menu', imports: [CommonModule, FormsModule, OverlayModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{font-size:1rem}:host:has(>.bizy-menu__options:empty) .bizy-menu>.bizy-menu__arrow{display:none!important}.bizy-menu{font-size:1rem;width:100%;border:none;background-color:transparent;display:flex;align-items:center;justify-content:space-between;column-gap:.5rem;padding:var(--bizy-menu-padding);color:var(--bizy-menu-color);cursor:pointer}.bizy-menu--disabled{pointer-events:none;opacity:.5;cursor:not-allowed!important}.bizy-menu__arrow{height:var(--bizy-menu-arrow-height);pointer-events:none;display:block;transition:transform .2s ease;fill:var(--bizy-menu-color)}.bizy-menu__arrow--opened{transform:rotate(180deg)}.bizy-menu__content{font-size:1rem;display:flex;align-items:center;column-gap:.3rem;pointer-events:none}.bizy-menu__options{border-top-left-radius:var(--bizy-menu-border-top-left-radius, var(--bizy-menu-border-radius, .5rem));border-top-right-radius:var(--bizy-menu-border-top-right-radius, var(--bizy-menu-border-radius, .5rem));border-bottom-right-radius:var(--bizy-menu-border-bottom-right-radius, var(--bizy-menu-border-radius, .5rem));border-bottom-left-radius:var(--bizy-menu-border-bottom-left-radius, var(--bizy-menu-border-radius, .5rem));background-color:var(--bizy-menu-background-color);min-width:var(--bizy-menu-min-width);max-width:var(--bizy-menu-max-width);max-height:var(--bizy-menu-max-height);overflow-y:auto;overflow-x:hidden;width:100%;display:flex;flex-direction:column;position:relative;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}.bizy-menu__options::-webkit-scrollbar{width:.5rem;height:.5rem}.bizy-menu__options::-webkit-scrollbar-thumb{border-radius:1rem;background-color:var(--bizy-menu-scroll-bar-color)}.bizy-menu__options::-webkit-scrollbar-thumb:hover{background-color:var(--bizy-menu-scroll-bar-hover-color)}.bizy-menu__options::-webkit-scrollbar-button{height:1rem}.bizy-menu__options__header{position:sticky;z-index:1;top:0;display:flex;flex-direction:column;row-gap:.3rem;background-color:#fff}::ng-deep .bizy-menu__options__header{--bizy-input-width: auto;--bizy-input-background-color: #fff;--bizy-input-min-width: var(--bizy-select-min-width);--bizy-input-max-width: auto}\n"] }]
15133
15472
  }], propDecorators: { options: [{
15134
15473
  type: ContentChildren,
15135
15474
  args: [BizyMenuOptionComponent]
@@ -18668,6 +19007,9 @@ class BizyCopyToClipboardDirective {
18668
19007
  this.copyToClipboard = copyToClipboard;
18669
19008
  this.#svgElement = this.renderer.createElement('div');
18670
19009
  this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');
19010
+ this.renderer.setStyle(this.elementRef.nativeElement, 'paddingRight', '1.6rem');
19011
+ this.renderer.setStyle(this.elementRef.nativeElement, 'cursor', 'pointer');
19012
+ this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', 'hidden');
18671
19013
  this.renderer.setStyle(this.#svgElement, 'position', 'absolute');
18672
19014
  this.renderer.setStyle(this.#svgElement, 'right', '0');
18673
19015
  this.renderer.setStyle(this.#svgElement, 'opacity', '0');
@@ -19345,5 +19687,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
19345
19687
  * Generated bundle index. Do not edit.
19346
19688
  */
19347
19689
 
19348
- export { BIZY_ANIMATION, BIZY_BAR_LINE_CHART_AXIS_POSITION, BIZY_CALENDAR_DAY, BIZY_CALENDAR_EVENT_ACTION, BIZY_CALENDAR_LANGUAGE, BIZY_CALENDAR_MODE, BIZY_FORMAT_SECONDS_FORMAT, BIZY_FORMAT_SECONDS_LANGUAGE, BIZY_SKELETON_SHAPE, BIZY_STACKED_BAR_CHART_LEGEND_POSITION, BIZY_TAG_TYPE, BizyAccordionComponent, BizyAccordionModule, BizyAnimationService, BizyAudioPlayerComponent, BizyAudioPlayerFormatSecondsPipe, BizyAudioPlayerModule, BizyAudioRecorderComponent, BizyAudioRecorderModule, BizyAutoFocusDirective, BizyAveragePipe, BizyBarChartComponent, BizyBarLineChartComponent, BizyBarLineChartModule, BizyBarLineChartPopupComponent, BizyBreadcrumbComponent, BizyBreadcrumbModule, BizyButtonComponent, BizyButtonModule, BizyCacheService, BizyCalendarComponent, BizyCalendarModule, BizyCardComponent, BizyCardModule, BizyCheckboxComponent, BizyCheckboxModule, BizyContentComponent, BizyContentModule, BizyCopyToClipboardDirective, BizyCopyToClipboardService, BizyCurrencyFormatDirective, BizyDatePickerComponent, BizyDatePickerModule, BizyDeviceService, BizyDirectivesModule, BizyDonutChartComponent, BizyDonutChartModule, BizyDonutChartPopupComponent, BizyDonutChartSectionComponent, BizyEnumToArrayPipe, BizyExportToCSVService, BizyExtractNumbersPipe, BizyFileUploaderComponent, BizyFileUploaderModule, BizyFileUploaderService, BizyFilterComponent, BizyFilterContentComponent, BizyFilterModule, BizyFilterPipe, BizyFilterSectionCheckboxOptionComponent, BizyFilterSectionComponent, BizyFilterSectionRangeOptionComponent, BizyFilterSectionSearchOptionComponent, BizyFilterSectionsComponent, BizyFormComponent, BizyFormModule, BizyFormatSecondsPipe, BizyFormatSecondsService, BizyFullScreenPopupWrapperComponent, BizyGaugeChartComponent, BizyGaugeChartModule, BizyGaugeChartPopupComponent, BizyGridComponent, BizyGridForDirective, BizyGridModule, BizyGridRowComponent, BizyHeatMapChartComponent, BizyHeatMapChartModule, BizyInputComponent, BizyInputModule, BizyInputOptionComponent, BizyKeyboardService, BizyLineChartComponent, BizyListComponent, BizyListModule, BizyLoadingDirective, BizyLogService, BizyLongPressDirective, BizyMenuBarComponent, BizyMenuBarModule, BizyMenuBarOptionComponent, BizyMenuComponent, BizyMenuModule, BizyMenuOptionComponent, BizyMenuTitleComponent, BizyMouseOverDirective, BizyOnlyNumbersDirective, BizyOnlyPhoneDigitsDirective, BizyOrderByPipe, BizyPieChartComponent, BizyPieChartModule, BizyPieChartPopupComponent, BizyPieChartSectionComponent, BizyPieChartService, BizyPipesModule, BizyPopupModule, BizyPopupService, BizyPopupWrapperComponent, BizyProgressBarComponent, BizyProgressBarModule, BizyRadioComponent, BizyRadioModule, BizyRangeFilterPipe, BizyReducePipe, BizyReloadDirective, BizyRepeatPipe, BizyRoundPipe, BizyRouterService, BizySafePipe, BizySearchPipe, BizySectionCenterComponent, BizySectionComponent, BizySectionEndComponent, BizySectionModule, BizySectionStartComponent, BizySelectComponent, BizySelectModule, BizySelectOptionComponent, BizySelectSelectedOptionComponent, BizyServicesModule, BizySetToArrayPipe, BizySidebarComponent, BizySidebarFloatingOptionComponent, BizySidebarFloatingOptionTitleComponent, BizySidebarModule, BizySidebarOptionComponent, BizySkeletonComponent, BizySkeletonModule, BizySliderComponent, BizySliderModule, BizyStackedBarChartComponent, BizyStackedBarChartModule, BizyStackedBarChartSegmentComponent, BizyStorageService, BizyTabComponent, BizyTableColumnArrowsComponent, BizyTableColumnComponent, BizyTableColumnFixedDirective, BizyTableComponent, BizyTableFooterComponent, BizyTableHeaderComponent, BizyTableModule, BizyTableRowComponent, BizyTableRowExpandContentComponent, BizyTableScrollingComponent, BizyTableScrollingDirective, BizyTabsComponent, BizyTabsModule, BizyTagComponent, BizyTagModule, BizyTextEllipsisDirective, BizyTimelineComponent, BizyTimelineEventComponent, BizyTimelineModule, BizyToastModule, BizyToastService, BizyToastWrapperComponent, BizyToggleComponent, BizyToggleModule, BizyToolbarComponent, BizyToolbarModule, BizyTooltipDirective, BizyTranslateModule, BizyTranslatePipe, BizyTranslateService, BizyUniquePipe, BizyValidatorService, BizyViewportService, LANGUAGE, LOADING_TYPE, MIME_TYPE, POPUP_PLACEMENT };
19690
+ export { BIZY_ANIMATION, BIZY_BAR_LINE_CHART_AXIS_POSITION, BIZY_CALENDAR_DAY, BIZY_CALENDAR_EVENT_ACTION, BIZY_CALENDAR_LANGUAGE, BIZY_CALENDAR_MODE, BIZY_DEVICE_BROWSER, BIZY_DEVICE_OS, BIZY_FILE_UPLOADER_MODE, BIZY_FORMAT_SECONDS_FORMAT, BIZY_FORMAT_SECONDS_LANGUAGE, BIZY_SKELETON_SHAPE, BIZY_STACKED_BAR_CHART_LEGEND_POSITION, BIZY_TAG_TYPE, BizyAccordionComponent, BizyAccordionModule, BizyAnimationService, BizyAudioPlayerComponent, BizyAudioPlayerFormatSecondsPipe, BizyAudioPlayerModule, BizyAudioRecorderComponent, BizyAudioRecorderModule, BizyAutoFocusDirective, BizyAveragePipe, BizyBarChartComponent, BizyBarLineChartComponent, BizyBarLineChartModule, BizyBarLineChartPopupComponent, BizyBreadcrumbComponent, BizyBreadcrumbModule, BizyButtonComponent, BizyButtonModule, BizyCacheService, BizyCalendarComponent, BizyCalendarModule, BizyCardComponent, BizyCardModule, BizyCheckboxComponent, BizyCheckboxModule, BizyContentComponent, BizyContentModule, BizyCopyToClipboardDirective, BizyCopyToClipboardService, BizyCurrencyFormatDirective, BizyDatePickerComponent, BizyDatePickerModule, BizyDeviceService, BizyDirectivesModule, BizyDonutChartComponent, BizyDonutChartModule, BizyDonutChartPopupComponent, BizyDonutChartSectionComponent, BizyEnumToArrayPipe, BizyExportToCSVService, BizyExtractNumbersPipe, BizyFileUploaderComponent, BizyFileUploaderModule, BizyFileUploaderService, BizyFilterComponent, BizyFilterContentComponent, BizyFilterModule, BizyFilterPipe, BizyFilterSectionCheckboxOptionComponent, BizyFilterSectionComponent, BizyFilterSectionRangeOptionComponent, BizyFilterSectionSearchOptionComponent, BizyFilterSectionsComponent, BizyFormComponent, BizyFormModule, BizyFormatSecondsPipe, BizyFormatSecondsService, BizyFullScreenPopupWrapperComponent, BizyGaugeChartComponent, BizyGaugeChartModule, BizyGaugeChartPopupComponent, BizyGridComponent, BizyGridForDirective, BizyGridModule, BizyGridRowComponent, BizyHeatMapChartComponent, BizyHeatMapChartModule, BizyInputComponent, BizyInputModule, BizyInputOptionComponent, BizyKeyboardService, BizyLineChartComponent, BizyListComponent, BizyListModule, BizyLoadingDirective, BizyLogService, BizyLongPressDirective, BizyMenuBarComponent, BizyMenuBarModule, BizyMenuBarOptionComponent, BizyMenuComponent, BizyMenuModule, BizyMenuOptionComponent, BizyMenuTitleComponent, BizyMouseOverDirective, BizyOnlyNumbersDirective, BizyOnlyPhoneDigitsDirective, BizyOrderByPipe, BizyPieChartComponent, BizyPieChartModule, BizyPieChartPopupComponent, BizyPieChartSectionComponent, BizyPieChartService, BizyPipesModule, BizyPopupModule, BizyPopupService, BizyPopupWrapperComponent, BizyProgressBarComponent, BizyProgressBarModule, BizyRadioComponent, BizyRadioModule, BizyRangeFilterPipe, BizyReducePipe, BizyReloadDirective, BizyRepeatPipe, BizyRoundPipe, BizyRouterService, BizySafePipe, BizySearchPipe, BizySectionCenterComponent, BizySectionComponent, BizySectionEndComponent, BizySectionModule, BizySectionStartComponent, BizySelectComponent, BizySelectModule, BizySelectOptionComponent, BizySelectSelectedOptionComponent, BizyServicesModule, BizySetToArrayPipe, BizySidebarComponent, BizySidebarFloatingOptionComponent, BizySidebarFloatingOptionTitleComponent, BizySidebarModule, BizySidebarOptionComponent, BizySkeletonComponent, BizySkeletonModule, BizySliderComponent, BizySliderModule, BizyStackedBarChartComponent, BizyStackedBarChartModule, BizyStackedBarChartSegmentComponent, BizyStorageService, BizyTabComponent, BizyTableColumnArrowsComponent, BizyTableColumnComponent, BizyTableColumnFixedDirective, BizyTableComponent, BizyTableFooterComponent, BizyTableHeaderComponent, BizyTableModule, BizyTableRowComponent, BizyTableRowExpandContentComponent, BizyTableScrollingComponent, BizyTableScrollingDirective, BizyTabsComponent, BizyTabsModule, BizyTagComponent, BizyTagModule, BizyTextEllipsisDirective, BizyTimelineComponent, BizyTimelineEventComponent, BizyTimelineModule, BizyToastModule, BizyToastService, BizyToastWrapperComponent, BizyToggleComponent, BizyToggleModule, BizyToolbarComponent, BizyToolbarModule, BizyTooltipDirective, BizyTranslateModule, BizyTranslatePipe, BizyTranslateService, BizyUniquePipe, BizyValidatorService, BizyViewportService, LANGUAGE, LOADING_TYPE, MIME_TYPE, POPUP_PLACEMENT };
19349
19691
  //# sourceMappingURL=bizy-core.mjs.map