@bizy/core 21.8.7 → 21.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8833,7 +8833,7 @@ class BizyPopupWrapperComponent {
8833
8833
  this.#popup.close({ id: this.#dialogRef.id });
8834
8834
  }
8835
8835
  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 });
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;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);max-height:95dvh;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
8837
  }
8838
8838
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyPopupWrapperComponent, decorators: [{
8839
8839
  type: Component,
@@ -8843,7 +8843,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
8843
8843
  '[style.bottom]': 'position.bottom',
8844
8844
  '[style.left]': 'position.left',
8845
8845
  '[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"] }]
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;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);max-height:95dvh;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
8847
  }], propDecorators: { dynamicComponentContainer: [{
8848
8848
  type: ViewChild,
8849
8849
  args: ['dynamicComponentContainer', { read: ViewContainerRef }]
@@ -9089,6 +9089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
9089
9089
  class BizyRouterService {
9090
9090
  router;
9091
9091
  static backPath = '';
9092
+ static data = {};
9092
9093
  transitionsEnd$;
9093
9094
  transitionsStart$;
9094
9095
  popStateEvent$;
@@ -9100,18 +9101,10 @@ class BizyRouterService {
9100
9101
  this.popStateEvent$ = fromEvent(window, 'popstate');
9101
9102
  this.routeChange$ = merge(this.transitionsEnd$, this.popStateEvent$).pipe(map(() => void 0));
9102
9103
  }
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
- }
9104
+ getURL = () => window.location.pathname;
9105
+ getBackPath = () => BizyRouterService.backPath;
9106
+ getId = (activatedRoute, param) => activatedRoute.snapshot.paramMap.get(param);
9107
+ getQueryParam = (activatedRoute, param) => activatedRoute.snapshot.queryParamMap.get(param);
9115
9108
  getAllQueryParam() {
9116
9109
  const params = new URL(window.location.href).searchParams;
9117
9110
  const queryParams = {};
@@ -9120,6 +9113,7 @@ class BizyRouterService {
9120
9113
  }
9121
9114
  return queryParams;
9122
9115
  }
9116
+ getData = () => BizyRouterService.data;
9123
9117
  goTo(data) {
9124
9118
  if (data.replace) {
9125
9119
  BizyRouterService.backPath = '';
@@ -9127,14 +9121,22 @@ class BizyRouterService {
9127
9121
  else {
9128
9122
  BizyRouterService.backPath = this.getURL();
9129
9123
  }
9124
+ if (this.router.routerState && this.router.routerState.snapshot && this.router.routerState.snapshot.root) {
9125
+ const root = this.router.routerState.snapshot.root;
9126
+ let route = root;
9127
+ while (route.firstChild) {
9128
+ route = route.firstChild;
9129
+ }
9130
+ BizyRouterService.data = route && route.data ? route.data : {};
9131
+ }
9130
9132
  if (data.path[0] === '/') {
9131
- this.router.navigateByUrl(`${data.path}${this._serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });
9133
+ this.router.navigateByUrl(`${data.path}${this.#serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });
9132
9134
  return;
9133
9135
  }
9134
9136
  const path = this.getURL();
9135
9137
  const index = path.indexOf('?');
9136
9138
  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 });
9139
+ this.router.navigateByUrl(`${url}/${data.path}${this.#serialize(data.params)}`, { replaceUrl: data.replace ?? false, skipLocationChange: data.skip ?? false });
9138
9140
  }
9139
9141
  goBack(data) {
9140
9142
  if (BizyRouterService.backPath) {
@@ -9162,7 +9164,7 @@ class BizyRouterService {
9162
9164
  }, 1);
9163
9165
  }
9164
9166
  }
9165
- _serialize(params) {
9167
+ #serialize(params) {
9166
9168
  if (!params) {
9167
9169
  return '';
9168
9170
  }
@@ -9180,9 +9182,7 @@ class BizyRouterService {
9180
9182
  }
9181
9183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyRouterService, decorators: [{
9182
9184
  type: Injectable,
9183
- args: [{
9184
- providedIn: 'root'
9185
- }]
9185
+ args: [{ providedIn: 'root' }]
9186
9186
  }], ctorParameters: () => [{ type: i1$2.Router, decorators: [{
9187
9187
  type: Inject,
9188
9188
  args: [Router]
@@ -9957,17 +9957,32 @@ async function overrideUserAgentUsingClientHints(hints) {
9957
9957
  }
9958
9958
  const exportedForTests = { getVersion, getWindowsPlatformVersion };
9959
9959
 
9960
+ var BIZY_DEVICE_OS;
9961
+ (function (BIZY_DEVICE_OS) {
9962
+ BIZY_DEVICE_OS["IOS"] = "iOS";
9963
+ BIZY_DEVICE_OS["MAC"] = "Mac";
9964
+ BIZY_DEVICE_OS["ANDROID"] = "Android";
9965
+ BIZY_DEVICE_OS["WINDOWS"] = "Windows";
9966
+ BIZY_DEVICE_OS["LINUX"] = "Linux";
9967
+ })(BIZY_DEVICE_OS || (BIZY_DEVICE_OS = {}));
9968
+ var BIZY_DEVICE_BROWSER;
9969
+ (function (BIZY_DEVICE_BROWSER) {
9970
+ BIZY_DEVICE_BROWSER["CHROME"] = "CHROME";
9971
+ BIZY_DEVICE_BROWSER["SAFARI"] = "SAFARI";
9972
+ BIZY_DEVICE_BROWSER["EDGE"] = "EDGE";
9973
+ BIZY_DEVICE_BROWSER["OPERA"] = "OPERA";
9974
+ BIZY_DEVICE_BROWSER["FIREFOX"] = "FIREFOX";
9975
+ BIZY_DEVICE_BROWSER["UNKNOWN"] = "UNKNOWN";
9976
+ })(BIZY_DEVICE_BROWSER || (BIZY_DEVICE_BROWSER = {}));
9960
9977
  class BizyDeviceService {
9961
9978
  #device = inject(DeviceDetectorService);
9962
- get windowSizeChange$() {
9963
- return fromEvent(window, 'resize').pipe(debounceTime(200), map$1((event) => ({
9964
- width: event.currentTarget.innerWidth,
9965
- height: event.currentTarget.innerHeight
9966
- })), startWith({
9967
- width: window.innerWidth,
9968
- height: window.innerHeight
9969
- }));
9970
- }
9979
+ windowSizeChange$ = fromEvent(window, 'resize').pipe(map$1((event) => ({
9980
+ width: event.currentTarget.innerWidth,
9981
+ height: event.currentTarget.innerHeight
9982
+ })), startWith({
9983
+ width: window.innerWidth,
9984
+ height: window.innerHeight
9985
+ }));
9971
9986
  async getUserAgent() {
9972
9987
  try {
9973
9988
  const userAgent = await overrideUserAgentUsingClientHints([
@@ -9984,11 +9999,44 @@ class BizyDeviceService {
9984
9999
  return window.navigator.userAgent;
9985
10000
  }
9986
10001
  }
10002
+ getWindowSize = () => {
10003
+ return {
10004
+ width: window.innerWidth,
10005
+ height: window.innerHeight
10006
+ };
10007
+ };
10008
+ getWindowWidth = () => window.innerWidth;
10009
+ getWindowHeight = () => window.innerHeight;
9987
10010
  isMobile = () => this.#device.isMobile();
9988
10011
  isTablet = () => this.#device.isTablet();
9989
10012
  isDesktop = () => this.#device.isDesktop();
9990
10013
  isPortrait = () => this.#device.orientation() === 'portrait';
9991
10014
  isLandscape = () => this.#device.orientation() === 'landscape';
10015
+ isIOS = () => this.#device.os() === BIZY_DEVICE_OS.IOS;
10016
+ isAndroid = () => this.#device.os() === BIZY_DEVICE_OS.ANDROID;
10017
+ isMacintosh = () => this.#device.os() === BIZY_DEVICE_OS.MAC;
10018
+ isWindows = () => this.#device.os() === BIZY_DEVICE_OS.WINDOWS;
10019
+ isLinux = () => this.#device.os() === BIZY_DEVICE_OS.LINUX;
10020
+ getOS = () => this.#device.os();
10021
+ getBrowser = () => {
10022
+ const browser = this.#device.browser();
10023
+ if (browser.indexOf('Chrome') !== -1) {
10024
+ return BIZY_DEVICE_BROWSER.CHROME;
10025
+ }
10026
+ if (browser.indexOf('Firefox') !== -1) {
10027
+ return BIZY_DEVICE_BROWSER.FIREFOX;
10028
+ }
10029
+ if (browser.indexOf('Safari') !== -1) {
10030
+ return BIZY_DEVICE_BROWSER.SAFARI;
10031
+ }
10032
+ if (browser.indexOf('Edge') !== -1) {
10033
+ return BIZY_DEVICE_BROWSER.EDGE;
10034
+ }
10035
+ if (browser.indexOf('Opera') !== -1 || browser.indexOf('OPR') !== -1) {
10036
+ return BIZY_DEVICE_BROWSER.OPERA;
10037
+ }
10038
+ return BIZY_DEVICE_BROWSER.UNKNOWN;
10039
+ };
9992
10040
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyDeviceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9993
10041
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyDeviceService, providedIn: 'root' });
9994
10042
  }
@@ -10066,6 +10114,7 @@ class BizyPopupService {
10066
10114
  disableClose: data.disableCloseButton ?? false,
10067
10115
  disableDrag: data.disableDragButton ?? false,
10068
10116
  position,
10117
+ element: data.element,
10069
10118
  placement
10070
10119
  },
10071
10120
  autoFocus: true,
@@ -10091,10 +10140,10 @@ class BizyPopupService {
10091
10140
  }
10092
10141
  let dialogRef = null;
10093
10142
  if (data.id) {
10094
- dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);
10143
+ dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id) || null;
10095
10144
  }
10096
10145
  else {
10097
- dialogRef = Array.from(BizyPopupService.dialogs).pop();
10146
+ dialogRef = Array.from(BizyPopupService.dialogs).pop() || null;
10098
10147
  }
10099
10148
  if (dialogRef && dialogRef.componentInstance instanceof BizyPopupWrapperComponent) {
10100
10149
  dialogRef.componentInstance.setPlacement(data.placement);
@@ -10106,10 +10155,10 @@ class BizyPopupService {
10106
10155
  async close(data) {
10107
10156
  let dialogRef = null;
10108
10157
  if (data && data.id) {
10109
- dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id);
10158
+ dialogRef = Array.from(BizyPopupService.dialogs).find(_dialogRef => _dialogRef.id === data.id) || null;
10110
10159
  }
10111
10160
  else {
10112
- dialogRef = Array.from(BizyPopupService.dialogs).pop();
10161
+ dialogRef = Array.from(BizyPopupService.dialogs).pop() || null;
10113
10162
  }
10114
10163
  if (dialogRef) {
10115
10164
  if (dialogRef.componentInstance instanceof BizyFullScreenPopupWrapperComponent && dialogRef.overlayRef && dialogRef.overlayRef.overlayElement) {
@@ -10119,12 +10168,14 @@ class BizyPopupService {
10119
10168
  dialogRef.close(data ? data.response : null);
10120
10169
  BizyPopupService.dialogs.delete(dialogRef);
10121
10170
  }
10171
+ this.#data = null;
10122
10172
  }
10123
10173
  closeAll() {
10124
10174
  Array.from(BizyPopupService.dialogs).forEach(_dialogRef => {
10125
10175
  _dialogRef.close();
10126
10176
  });
10127
10177
  BizyPopupService.dialogs.clear();
10178
+ this.#data = null;
10128
10179
  }
10129
10180
  openedPopups() {
10130
10181
  return BizyPopupService.dialogs.size;
@@ -10142,10 +10193,13 @@ class BizyFullScreenPopupWrapperComponent {
10142
10193
  #dialogRef = inject(DialogRef);
10143
10194
  #popup = inject(BizyPopupService);
10144
10195
  #ref = inject(ChangeDetectorRef);
10196
+ #document = inject(DOCUMENT$1);
10145
10197
  dynamicComponentContainer;
10146
10198
  disabled = false;
10147
10199
  disableClose = false;
10148
10200
  disableDrag = false;
10201
+ position = { main: 'absolute', bottom: '0', left: '0', right: '0' };
10202
+ minWidth = getComputedStyle(this.#document.documentElement).getPropertyValue('--bizy-popup-full-screen-min-width').trim();
10149
10203
  ngOnInit() {
10150
10204
  if (this.#data) {
10151
10205
  if (this.#data.disableClose) {
@@ -10154,6 +10208,20 @@ class BizyFullScreenPopupWrapperComponent {
10154
10208
  if (this.#data.disableDrag) {
10155
10209
  this.disableDrag = this.#data.disableDrag;
10156
10210
  }
10211
+ if (this.#data.element) {
10212
+ const rect = this.#data.element.getBoundingClientRect();
10213
+ const left = `${rect.left}px`;
10214
+ const right = `${window.innerWidth - rect.right}px`;
10215
+ const bottom = `${window.innerHeight - rect.bottom}px`;
10216
+ this.position = {
10217
+ main: 'fixed',
10218
+ right,
10219
+ bottom,
10220
+ left,
10221
+ transform: '',
10222
+ };
10223
+ this.minWidth = '0';
10224
+ }
10157
10225
  }
10158
10226
  }
10159
10227
  ngAfterViewInit() {
@@ -10172,13 +10240,19 @@ class BizyFullScreenPopupWrapperComponent {
10172
10240
  this.#popup.close({ id: this.#dialogRef.id });
10173
10241
  }
10174
10242
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFullScreenPopupWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10175
- 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 });
10243
+ 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 });
10176
10244
  }
10177
10245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFullScreenPopupWrapperComponent, decorators: [{
10178
10246
  type: Component,
10179
10247
  args: [{ selector: 'bizy-full-screen-popup-wrapper', imports: [CommonModule, DialogModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
10180
- 'class': 'animated slide-in-up'
10181
- }, 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"] }]
10248
+ 'class': 'animated slide-in-up',
10249
+ '[style.position]': 'position.main',
10250
+ '[style.right]': 'position.right',
10251
+ '[style.bottom]': 'position.bottom',
10252
+ '[style.left]': 'position.left',
10253
+ '[style.transform]': 'position.transform',
10254
+ '[style.min-width]': 'minWidth',
10255
+ }, 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"] }]
10182
10256
  }], propDecorators: { dynamicComponentContainer: [{
10183
10257
  type: ViewChild,
10184
10258
  args: ['dynamicComponentContainer', { read: ViewContainerRef }]
@@ -11326,11 +11400,11 @@ class BizyCardComponent {
11326
11400
  }
11327
11401
  getNativeElement = () => this.#elementRef?.nativeElement;
11328
11402
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11329
- 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 });
11403
+ 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 });
11330
11404
  }
11331
11405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyCardComponent, decorators: [{
11332
11406
  type: Component,
11333
- 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"] }]
11407
+ 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"] }]
11334
11408
  }], propDecorators: { id: [{
11335
11409
  type: Input
11336
11410
  }], disabled: [{
@@ -11544,6 +11618,7 @@ class BizyInputComponent {
11544
11618
  valueChange = new EventEmitter();
11545
11619
  onChange = new EventEmitter();
11546
11620
  onEnter = new EventEmitter();
11621
+ onKey = new EventEmitter();
11547
11622
  onBackspace = new EventEmitter();
11548
11623
  onSelect = new EventEmitter();
11549
11624
  onBlur = new EventEmitter();
@@ -11619,6 +11694,12 @@ class BizyInputComponent {
11619
11694
  }
11620
11695
  this.onEnter.emit(event);
11621
11696
  };
11697
+ _onKeyDown = (event) => {
11698
+ if (this.disabled || this.readonly || !this.focused) {
11699
+ return;
11700
+ }
11701
+ this.onKey.emit(event.key);
11702
+ };
11622
11703
  _onBackspace = (event) => {
11623
11704
  setTimeout(() => {
11624
11705
  this.onBackspace.emit(event);
@@ -11692,11 +11773,11 @@ class BizyInputComponent {
11692
11773
  this.#optionSubscription.unsubscribe();
11693
11774
  }
11694
11775
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11695
- 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 });
11696
11777
  }
11697
11778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyInputComponent, decorators: [{
11698
11779
  type: Component,
11699
- 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"] }]
11700
11781
  }], propDecorators: { options: [{
11701
11782
  type: ContentChildren,
11702
11783
  args: [BizyInputOptionComponent]
@@ -11731,6 +11812,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
11731
11812
  type: Output
11732
11813
  }], onEnter: [{
11733
11814
  type: Output
11815
+ }], onKey: [{
11816
+ type: Output
11734
11817
  }], onBackspace: [{
11735
11818
  type: Output
11736
11819
  }], onSelect: [{
@@ -11752,7 +11835,7 @@ class BizyDatePickerComponent {
11752
11835
  #elementRef = inject(ElementRef);
11753
11836
  #datePipe = inject(DatePipe);
11754
11837
  #ref = inject(ChangeDetectorRef);
11755
- bizyDatePicker;
11838
+ bizyDatePicker = null;
11756
11839
  id = `bizy-date-picker-${Math.random()}`;
11757
11840
  disabled = false;
11758
11841
  customClass = '';
@@ -11847,6 +11930,7 @@ class BizyDatePickerComponent {
11847
11930
  shorthand: true
11848
11931
  }));
11849
11932
  }
11933
+ const overlayHost = this.#getOverlayHost();
11850
11934
  flatpickr(this.bizyDatePicker.bizyInputWrapper.nativeElement, {
11851
11935
  locale: Spanish,
11852
11936
  mode: this.mode,
@@ -11858,6 +11942,10 @@ class BizyDatePickerComponent {
11858
11942
  maxDate: this.maxDate,
11859
11943
  noCalendar: this.noCalendar,
11860
11944
  disableMobile: true,
11945
+ ...(overlayHost ? {
11946
+ appendTo: overlayHost,
11947
+ position: (instance, positionElement) => this.#positionCalendar(instance, positionElement)
11948
+ } : {}),
11861
11949
  time_24hr: true,
11862
11950
  defaultDate: this.mode === 'single' ? new Date(this.dates[0]) : this.dates.map(_date => new Date(_date)),
11863
11951
  defaultHour: this.#getHour(this.time),
@@ -11898,6 +11986,32 @@ class BizyDatePickerComponent {
11898
11986
  }
11899
11987
  }
11900
11988
  getNativeElement = () => this.#elementRef?.nativeElement;
11989
+ #getOverlayHost() {
11990
+ const overlayHost = this.#elementRef.nativeElement.closest('.cdk-overlay-popover');
11991
+ return overlayHost instanceof HTMLElement ? overlayHost : undefined;
11992
+ }
11993
+ #positionCalendar(instance, customPositionElement) {
11994
+ const calendar = instance.calendarContainer;
11995
+ const positionElement = customPositionElement ?? instance._positionElement;
11996
+ if (!calendar || !positionElement) {
11997
+ return;
11998
+ }
11999
+ const inputBounds = positionElement.getBoundingClientRect();
12000
+ const calendarHeight = Array.from(calendar.children)
12001
+ .reduce((height, child) => height + child.offsetHeight, 0);
12002
+ const calendarWidth = calendar.offsetWidth;
12003
+ const showOnTop = window.innerHeight - inputBounds.bottom < calendarHeight && inputBounds.top > calendarHeight;
12004
+ const top = showOnTop ? inputBounds.top - calendarHeight - 2 : inputBounds.bottom + 2;
12005
+ const left = Math.max(0, Math.min(inputBounds.left, window.innerWidth - calendarWidth));
12006
+ calendar.classList.toggle('arrowTop', !showOnTop);
12007
+ calendar.classList.toggle('arrowBottom', showOnTop);
12008
+ calendar.style.position = 'fixed';
12009
+ calendar.style.top = `${top}px`;
12010
+ calendar.style.left = `${left}px`;
12011
+ calendar.style.right = 'auto';
12012
+ calendar.style.zIndex = '1001';
12013
+ calendar.style.pointerEvents = 'auto';
12014
+ }
11901
12015
  #getHour(time) {
11902
12016
  const date = new Date(time);
11903
12017
  return date.getHours();
@@ -11907,7 +12021,7 @@ class BizyDatePickerComponent {
11907
12021
  return date.getMinutes();
11908
12022
  }
11909
12023
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11910
- 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 });
12024
+ 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 });
11911
12025
  }
11912
12026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyDatePickerComponent, decorators: [{
11913
12027
  type: Component,
@@ -12496,7 +12610,7 @@ const ES = {
12496
12610
  ...es_ES.strings,
12497
12611
  noDuplicates: 'Archivo duplicado: \'%{fileName}\'',
12498
12612
  browseFiles: 'buscar archivo',
12499
- dropPasteFiles: 'Soltar archivo aquí, pegar o %{browse}'
12613
+ dropPasteFiles: 'Soltar archivo aquí, pegar o %{browseFiles}'
12500
12614
  }
12501
12615
  };
12502
12616
  const EN = {
@@ -12505,7 +12619,7 @@ const EN = {
12505
12619
  ...en_US.strings,
12506
12620
  noDuplicates: 'Duplicated file: \'%{fileName}\'',
12507
12621
  browseFiles: 'browse file',
12508
- dropPasteFiles: 'Drop a file here or %{browse}'
12622
+ dropPasteFiles: 'Drop a file here or %{browseFiles}'
12509
12623
  }
12510
12624
  };
12511
12625
  class BizyFileUploaderService {
@@ -12555,7 +12669,8 @@ class BizyFileUploaderService {
12555
12669
  minNumberOfFiles: data.minNumberOfFiles,
12556
12670
  allowedFileTypes: data.allowedFileTypes
12557
12671
  }
12558
- })
12672
+ });
12673
+ this.#uppy
12559
12674
  .use(Dashboard, {
12560
12675
  inline: true,
12561
12676
  singleFileFullScreen: false,
@@ -12563,20 +12678,23 @@ class BizyFileUploaderService {
12563
12678
  width: data.dragDropAreaWidth,
12564
12679
  height: data.dragDropAreaHeight,
12565
12680
  hideCancelButton: data.hideCancelButton,
12566
- hideUploadButton: data.hideUploadButton,
12681
+ hideUploadButton: !data.enableUpload || data.hideUploadButton,
12567
12682
  hidePauseResumeButton: data.hidePauseResumeButton,
12568
12683
  disableLocalFiles: data.disableLocalFiles
12569
- })
12570
- .use(XHRUpload, {
12571
- endpoint: '',
12572
- headers: data.headers,
12573
- getResponseData: (responseText, response) => {
12574
- return {
12575
- fileId: responseText,
12576
- response
12577
- };
12578
- }
12579
- })
12684
+ });
12685
+ if (data.enableUpload) {
12686
+ this.#uppy.use(XHRUpload, {
12687
+ endpoint: '',
12688
+ headers: data.headers,
12689
+ getResponseData: xhr => {
12690
+ return {
12691
+ fileId: xhr.responseText,
12692
+ response: xhr
12693
+ };
12694
+ }
12695
+ });
12696
+ }
12697
+ this.#uppy
12580
12698
  .on('file-added', file => {
12581
12699
  this.#removeUnnecessaryOptions(this.#disableLocalFiles);
12582
12700
  this.#fileLoaded.next(file);
@@ -12607,40 +12725,56 @@ class BizyFileUploaderService {
12607
12725
  })
12608
12726
  .on('complete', result => {
12609
12727
  this.#removeUnnecessaryOptions(this.#disableLocalFiles);
12610
- this.#complete.next(result);
12728
+ this.#complete.next({
12729
+ successful: result.successful ?? [],
12730
+ failed: result.failed ?? []
12731
+ });
12611
12732
  });
12612
12733
  this.#removeUnnecessaryOptions(this.#disableLocalFiles);
12613
12734
  }
12614
12735
  load = (data) => {
12615
12736
  if (!this.#uppy) {
12616
- return;
12737
+ return null;
12617
12738
  }
12618
- this.#uppy.addFile({
12619
- name: data.file.name, // File name
12620
- type: data.file.type, // File type
12621
- data: data.file, // File blob
12739
+ const loadFile = this.#normalizeLoadFile(data);
12740
+ return this.#uppy.addFile({
12741
+ name: loadFile.file.name, // File name
12742
+ type: loadFile.file.type, // File type
12743
+ data: loadFile.file, // File blob
12622
12744
  meta: {
12623
12745
  // Optional, store the directory path of a file so Uppy can tell identical files in different directories apart.
12624
- relativePath: data.file.webkitRelativePath,
12625
- referenceId: data.id
12746
+ relativePath: loadFile.file.webkitRelativePath,
12747
+ referenceId: loadFile.id
12626
12748
  },
12627
12749
  source: 'Local', // Optional, determines the source of the file, for example, Instagram.
12628
12750
  isRemote: false // Optional, set to true if actual file is not in the browser, but on some remote server, for example,
12629
12751
  // when using companion in combination with Instagram.
12630
12752
  });
12631
12753
  };
12754
+ remove = (fileId) => {
12755
+ if (!this.#uppy) {
12756
+ return;
12757
+ }
12758
+ this.#uppy.removeFile(fileId);
12759
+ };
12632
12760
  disable(value) {
12633
12761
  if (!this.#uppy) {
12634
12762
  return;
12635
12763
  }
12636
12764
  const dashboard = this.#uppy.getPlugin('Dashboard');
12637
- dashboard.setOptions({ disabled: value });
12765
+ if (dashboard) {
12766
+ dashboard.setOptions({ disabled: value });
12767
+ }
12638
12768
  }
12639
12769
  upload = (data) => {
12640
12770
  if (!this.#uppy) {
12641
12771
  return;
12642
12772
  }
12643
- this.#uppy.getPlugin('XHRUpload').setOptions({
12773
+ const xhrUpload = this.#uppy.getPlugin('XHRUpload');
12774
+ if (!xhrUpload) {
12775
+ return;
12776
+ }
12777
+ xhrUpload.setOptions({
12644
12778
  endpoint: data.endpoint,
12645
12779
  headers: data.headers ?? {}
12646
12780
  });
@@ -12652,6 +12786,15 @@ class BizyFileUploaderService {
12652
12786
  }
12653
12787
  this.#uppy.cancelAll();
12654
12788
  };
12789
+ #normalizeLoadFile = (data) => {
12790
+ if (this.#isLoadFile(data)) {
12791
+ return data;
12792
+ }
12793
+ return { file: data };
12794
+ };
12795
+ #isLoadFile = (data) => {
12796
+ return typeof data === 'object' && data !== null && 'file' in data;
12797
+ };
12655
12798
  #removeUnnecessaryOptions = (remove) => {
12656
12799
  setTimeout(() => {
12657
12800
  if (!remove) {
@@ -12676,15 +12819,18 @@ class BizyFileUploaderService {
12676
12819
  }, 0);
12677
12820
  };
12678
12821
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12679
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService, providedIn: 'root' });
12822
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService });
12680
12823
  }
12681
12824
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderService, decorators: [{
12682
- type: Injectable,
12683
- args: [{
12684
- providedIn: 'root'
12685
- }]
12825
+ type: Injectable
12686
12826
  }] });
12687
12827
 
12828
+ var BIZY_FILE_UPLOADER_MODE;
12829
+ (function (BIZY_FILE_UPLOADER_MODE) {
12830
+ BIZY_FILE_UPLOADER_MODE["UPLOAD"] = "UPLOAD";
12831
+ BIZY_FILE_UPLOADER_MODE["ATTACH"] = "ATTACH";
12832
+ })(BIZY_FILE_UPLOADER_MODE || (BIZY_FILE_UPLOADER_MODE = {}));
12833
+
12688
12834
  class BizyFileUploaderComponent {
12689
12835
  #elementRef = inject(ElementRef);
12690
12836
  #fileUploader = inject(BizyFileUploaderService);
@@ -12697,23 +12843,36 @@ class BizyFileUploaderComponent {
12697
12843
  maxTotalFileSize = 31458000; // 30MB
12698
12844
  maxNumberOfFiles = null;
12699
12845
  minNumberOfFiles = null;
12700
- allowedFileTypes = ['.wav'];
12846
+ allowedFileTypes = null;
12701
12847
  hideUploadButton = true;
12702
12848
  hidePauseResumeButton = true;
12703
12849
  hideCancelButton = false;
12704
12850
  disableLocalFiles = false;
12705
- load;
12706
- upload;
12851
+ mode = BIZY_FILE_UPLOADER_MODE.UPLOAD;
12852
+ load = null;
12853
+ upload = null;
12854
+ set files(value) {
12855
+ this.#inputFiles = value ?? [];
12856
+ this.#syncInputFiles();
12857
+ }
12858
+ get files() {
12859
+ return this.#inputFiles;
12860
+ }
12707
12861
  set disabled(value) {
12708
12862
  this.#fileUploader.disable(Boolean(value));
12709
12863
  }
12710
12864
  ;
12711
12865
  completed = new EventEmitter();
12712
12866
  loadedFiles = new EventEmitter();
12867
+ attachedFiles = new EventEmitter();
12713
12868
  #subscription = new Subscription();
12714
12869
  #files = new Set();
12870
+ #inputFiles = [];
12871
+ #inputFileIds = new Map();
12872
+ #isFileUploaderReady = false;
12715
12873
  TEMPLATE_ID = 'bizy-file-uploader-template';
12716
12874
  ngAfterViewInit() {
12875
+ const allowedFileTypes = this.#getAllowedFileTypes();
12717
12876
  this.#fileUploader.createFileUploader({
12718
12877
  maxFileSize: this.maxFileSize,
12719
12878
  minFileSize: this.minFileSize,
@@ -12722,13 +12881,14 @@ class BizyFileUploaderComponent {
12722
12881
  minNumberOfFiles: this.minNumberOfFiles,
12723
12882
  dragDropAreaWidth: this.dragDropAreaWidth,
12724
12883
  dragDropAreaHeight: this.dragDropAreaHeight,
12725
- allowedFileTypes: this.allowedFileTypes,
12884
+ allowedFileTypes,
12726
12885
  language: this.language,
12727
12886
  templateId: this.TEMPLATE_ID,
12728
12887
  hideCancelButton: this.hideCancelButton,
12729
12888
  hideUploadButton: this.hideUploadButton,
12730
12889
  hidePauseResumeButton: this.hidePauseResumeButton,
12731
12890
  disableLocalFiles: this.disableLocalFiles,
12891
+ enableUpload: this.mode === BIZY_FILE_UPLOADER_MODE.UPLOAD,
12732
12892
  headers: this.headers,
12733
12893
  });
12734
12894
  if (this.upload) {
@@ -12765,20 +12925,95 @@ class BizyFileUploaderComponent {
12765
12925
  }));
12766
12926
  this.#subscription.add(this.#fileUploader.fileLoaded$.subscribe(file => {
12767
12927
  this.#files.add(file);
12768
- this.loadedFiles.emit(Array.from(this.#files));
12928
+ this.#emitFiles();
12769
12929
  }));
12770
12930
  this.#subscription.add(this.#fileUploader.fileRemoved$.subscribe(file => {
12771
12931
  this.#files.delete(file);
12772
- this.loadedFiles.emit(Array.from(this.#files));
12932
+ this.#removeTrackedInputFile(file.id);
12933
+ this.#emitFiles();
12773
12934
  }));
12935
+ this.#isFileUploaderReady = true;
12936
+ this.#syncInputFiles();
12774
12937
  }
12938
+ #getAllowedFileTypes = () => {
12939
+ if (typeof this.allowedFileTypes === 'string') {
12940
+ return [this.allowedFileTypes];
12941
+ }
12942
+ if (Array.isArray(this.allowedFileTypes) && this.allowedFileTypes.length > 0) {
12943
+ return this.allowedFileTypes;
12944
+ }
12945
+ return null;
12946
+ };
12947
+ #syncInputFiles = () => {
12948
+ if (!this.#isFileUploaderReady) {
12949
+ return;
12950
+ }
12951
+ const nextInputKeys = new Set(this.#inputFiles.map(this.#getInputFileKey));
12952
+ Array.from(this.#inputFileIds.entries()).forEach(([key, fileId]) => {
12953
+ if (!nextInputKeys.has(key)) {
12954
+ this.#fileUploader.remove(fileId);
12955
+ this.#inputFileIds.delete(key);
12956
+ }
12957
+ });
12958
+ this.#inputFiles.forEach(inputFile => {
12959
+ const key = this.#getInputFileKey(inputFile);
12960
+ if (this.#inputFileIds.has(key) || (this.maxNumberOfFiles && this.#files.size >= this.maxNumberOfFiles)) {
12961
+ return;
12962
+ }
12963
+ try {
12964
+ const fileId = this.#fileUploader.load(inputFile);
12965
+ if (fileId) {
12966
+ this.#inputFileIds.set(key, fileId);
12967
+ }
12968
+ }
12969
+ catch {
12970
+ return;
12971
+ }
12972
+ });
12973
+ };
12974
+ #getInputFileKey = (inputFile) => {
12975
+ if (this.#isLoadFile(inputFile)) {
12976
+ return `id:${inputFile.id}`;
12977
+ }
12978
+ return `file:${inputFile.name}:${inputFile.size}:${inputFile.type}:${inputFile.lastModified}`;
12979
+ };
12980
+ #isLoadFile = (inputFile) => {
12981
+ return typeof inputFile === 'object' && inputFile !== null && 'file' in inputFile;
12982
+ };
12983
+ #removeTrackedInputFile = (fileId) => {
12984
+ Array.from(this.#inputFileIds.entries()).forEach(([key, trackedFileId]) => {
12985
+ if (trackedFileId === fileId) {
12986
+ this.#inputFileIds.delete(key);
12987
+ }
12988
+ });
12989
+ };
12990
+ #emitFiles = () => {
12991
+ const files = Array.from(this.#files);
12992
+ this.loadedFiles.emit(files);
12993
+ this.attachedFiles.emit(this.#mapAttachedFiles(files));
12994
+ };
12995
+ #mapAttachedFiles = (files) => {
12996
+ return files.flatMap(file => {
12997
+ if (file.isRemote === true || !file.data) {
12998
+ return [];
12999
+ }
13000
+ return [{
13001
+ id: file.id,
13002
+ file: file.data,
13003
+ meta: file.meta,
13004
+ name: file.name,
13005
+ size: file.size,
13006
+ type: file.type
13007
+ }];
13008
+ });
13009
+ };
12775
13010
  getNativeElement = () => this.#elementRef?.nativeElement;
12776
13011
  ngOnDestroy() {
12777
13012
  this.#fileUploader.cleanAllFiles();
12778
13013
  this.#subscription.unsubscribe();
12779
13014
  }
12780
13015
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12781
- 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 });
13016
+ 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 });
12782
13017
  }
12783
13018
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFileUploaderComponent, decorators: [{
12784
13019
  type: Component,
@@ -12816,16 +13051,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
12816
13051
  type: Input
12817
13052
  }], disableLocalFiles: [{
12818
13053
  type: Input
13054
+ }], mode: [{
13055
+ type: Input
12819
13056
  }], load: [{
12820
13057
  type: Input
12821
13058
  }], upload: [{
12822
13059
  type: Input
13060
+ }], files: [{
13061
+ type: Input
12823
13062
  }], disabled: [{
12824
13063
  type: Input
12825
13064
  }], completed: [{
12826
13065
  type: Output
12827
13066
  }], loadedFiles: [{
12828
13067
  type: Output
13068
+ }], attachedFiles: [{
13069
+ type: Output
12829
13070
  }] } });
12830
13071
 
12831
13072
  const COMPONENTS$o = [
@@ -12958,7 +13199,7 @@ class BizyFilterSectionRangeOptionComponent {
12958
13199
  return this.#activated.value;
12959
13200
  };
12960
13201
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionRangeOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12961
- 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 });
13202
+ 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 });
12962
13203
  }
12963
13204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionRangeOptionComponent, decorators: [{
12964
13205
  type: Component,
@@ -13072,7 +13313,7 @@ class BizyFilterSectionSearchOptionComponent {
13072
13313
  return this.#activated.value;
13073
13314
  };
13074
13315
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionSearchOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13075
- 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 });
13316
+ 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 });
13076
13317
  }
13077
13318
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyFilterSectionSearchOptionComponent, decorators: [{
13078
13319
  type: Component,
@@ -13707,7 +13948,7 @@ class BizySelectComponent {
13707
13948
  this.#contentChildrenSubscription.unsubscribe();
13708
13949
  }
13709
13950
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizySelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13710
- 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 });
13951
+ 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 });
13711
13952
  }
13712
13953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizySelectComponent, decorators: [{
13713
13954
  type: Component,
@@ -14259,54 +14500,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
14259
14500
  class BizyGridComponent {
14260
14501
  #elementRef = inject(ElementRef);
14261
14502
  #ref = inject(ChangeDetectorRef);
14262
- #document = inject(DOCUMENT$1);
14503
+ #document = inject(DOCUMENT);
14263
14504
  #renderer = inject(Renderer2);
14264
- virtualScroll;
14265
- content;
14266
- gridDirective;
14505
+ #zone = inject(NgZone);
14506
+ virtualScroll = null;
14507
+ content = null;
14508
+ gridDirective = null;
14267
14509
  resizeRef = null;
14268
- #rowScrollingMutationObserver;
14269
- #resizeObserver;
14510
+ scrollDisabled = false;
14511
+ set scrollResetKey(_value) {
14512
+ this.#wasAtEnd = false;
14513
+ }
14514
+ endReached = new EventEmitter();
14515
+ #bottomThreshold = 120;
14516
+ #resizeObserver = null;
14270
14517
  #subscription = new Subscription();
14271
- #view;
14518
+ #view = null;
14519
+ #viewportCheckFrame = null;
14520
+ #scrollFrame = null;
14521
+ #wasAtEnd = false;
14522
+ #destroyed = false;
14272
14523
  notifier$ = new Subject();
14273
14524
  rowHeight = 100;
14274
14525
  itemRows = [];
14275
14526
  items = [];
14276
- itemTemplate;
14527
+ itemTemplate = null;
14277
14528
  itemsPerRow = 1;
14278
14529
  getNativeElement = () => this.#elementRef?.nativeElement;
14279
- ngAfterContentInit() {
14280
- this.#rowScrollingMutationObserver = new MutationObserver(() => {
14281
- if (!this.gridDirective) {
14530
+ ngAfterViewInit() {
14531
+ this.#listenToScroll();
14532
+ if (!this.gridDirective) {
14533
+ return;
14534
+ }
14535
+ this.#subscription.add(this.gridDirective.items$.subscribe(items => {
14536
+ if (this.items.length === 0 && items.length === 0) {
14537
+ this.#scheduleViewportCheck();
14282
14538
  return;
14283
14539
  }
14284
- this.#subscription.add(this.gridDirective.items$.subscribe(items => {
14285
- if (this.items.length === 0 && items.length === 0) {
14286
- return;
14287
- }
14288
- this.items = items;
14289
- this.#updateView();
14290
- if (!this.#view) {
14291
- this.#view = this.gridDirective.viewContainerRef;
14292
- this.#view.createEmbeddedView(this.content);
14293
- }
14294
- }));
14295
- this.#rowScrollingMutationObserver.disconnect();
14296
- this.#ref.detectChanges();
14297
- });
14298
- this.#rowScrollingMutationObserver.observe(this.#document.body, { childList: true, subtree: true });
14540
+ this.items = items;
14541
+ this.#updateView();
14542
+ this.#createScrollingContent();
14543
+ }));
14299
14544
  this.#resizeObserver = new ResizeObserver(() => this.notifier$.next());
14300
- const resizeRef = this.resizeRef ? this.resizeRef : this.#renderer.parentNode(this.#elementRef.nativeElement) ? this.#renderer.parentNode(this.#elementRef.nativeElement) : this.#elementRef.nativeElement;
14545
+ const resizeRef = this.#getResizeElement();
14301
14546
  this.#resizeObserver.observe(resizeRef);
14302
14547
  this.#subscription.add(this.notifier$.pipe(debounceTime(50)).subscribe(() => {
14303
14548
  this.#updateView(true);
14304
14549
  }));
14550
+ this.#scheduleViewportCheck();
14305
14551
  }
14306
- #updateView = (resize = false) => {
14552
+ #updateView = (resize) => {
14553
+ if (!this.gridDirective) {
14554
+ return;
14555
+ }
14307
14556
  this.itemTemplate = this.gridDirective.templateRef;
14308
- const rowWidth = this.#elementRef.nativeElement.offsetWidth || this.#elementRef.nativeElement.firstChild.offsetWidth;
14309
- const gridHeight = this.#elementRef.nativeElement.offsetHeight || this.#elementRef.nativeElement.firstChild.offsetHeight;
14557
+ const firstChild = this.#elementRef.nativeElement.firstElementChild;
14558
+ const rowWidth = this.#elementRef.nativeElement.offsetWidth || firstChild?.offsetWidth || 0;
14310
14559
  let columnWidth = 100;
14311
14560
  const fontSize = Number(getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('font-size').split('px')[0]);
14312
14561
  const rowHeightParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-row-height');
@@ -14316,9 +14565,6 @@ class BizyGridComponent {
14316
14565
  else if (rowHeightParameter && rowHeightParameter.includes('px')) {
14317
14566
  this.rowHeight = Number(rowHeightParameter.split('px')[0]);
14318
14567
  }
14319
- else if (rowHeightParameter && rowHeightParameter.includes('%')) {
14320
- this.rowHeight = (Number(rowHeightParameter.split('%')[0]) / 100) * gridHeight;
14321
- }
14322
14568
  let gap = 10;
14323
14569
  const gapParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-gap');
14324
14570
  if (gapParameter && gapParameter.includes('rem')) {
@@ -14327,9 +14573,6 @@ class BizyGridComponent {
14327
14573
  else if (gapParameter && gapParameter.includes('px')) {
14328
14574
  gap = Number(gapParameter.split('px')[0]);
14329
14575
  }
14330
- else if (gapParameter && gapParameter.includes('%')) {
14331
- gap = (Number(gapParameter.split('%')[0]) / 100) * gridHeight;
14332
- }
14333
14576
  const columnWidthParameter = getComputedStyle(this.#elementRef.nativeElement).getPropertyValue('--bizy-grid-column-width');
14334
14577
  if (columnWidthParameter && columnWidthParameter.includes('rem')) {
14335
14578
  columnWidth = fontSize * Number(columnWidthParameter.split('rem')[0]);
@@ -14350,6 +14593,7 @@ class BizyGridComponent {
14350
14593
  newItemsPerRow = (count - 1) <= 0 ? 1 : count - 1;
14351
14594
  }
14352
14595
  if (resize && newItemsPerRow === this.itemsPerRow) {
14596
+ this.#scheduleViewportCheck();
14353
14597
  return;
14354
14598
  }
14355
14599
  this.itemsPerRow = newItemsPerRow;
@@ -14360,6 +14604,89 @@ class BizyGridComponent {
14360
14604
  }
14361
14605
  this.itemRows = itemRows;
14362
14606
  this.#ref.detectChanges();
14607
+ this.#scheduleViewportCheck();
14608
+ };
14609
+ #createScrollingContent = () => {
14610
+ if (this.#view || !this.content) {
14611
+ return;
14612
+ }
14613
+ if (this.gridDirective) {
14614
+ this.#view = this.gridDirective.viewContainerRef;
14615
+ this.#view.createEmbeddedView(this.content);
14616
+ this.#ref.detectChanges();
14617
+ this.#scheduleViewportCheck();
14618
+ }
14619
+ };
14620
+ #getResizeElement = () => {
14621
+ if (this.resizeRef instanceof ElementRef) {
14622
+ return this.resizeRef.nativeElement;
14623
+ }
14624
+ if (this.resizeRef) {
14625
+ return this.resizeRef;
14626
+ }
14627
+ return this.#renderer.parentNode(this.#elementRef.nativeElement) || this.#elementRef.nativeElement;
14628
+ };
14629
+ #listenToScroll = () => {
14630
+ const windowRef = this.#document.defaultView;
14631
+ const listenToScroll = () => {
14632
+ this.#scrollFrame = null;
14633
+ if (this.#destroyed) {
14634
+ return;
14635
+ }
14636
+ const scrollElement = this.#getScrollElement();
14637
+ this.#subscription.add(fromEvent(scrollElement, 'scroll', { passive: true })
14638
+ .pipe(auditTime(150))
14639
+ .subscribe(() => this.#onScroll(scrollElement)));
14640
+ };
14641
+ this.#zone.runOutsideAngular(() => {
14642
+ if (windowRef?.requestAnimationFrame) {
14643
+ this.#scrollFrame = windowRef.requestAnimationFrame(listenToScroll);
14644
+ return;
14645
+ }
14646
+ listenToScroll();
14647
+ });
14648
+ };
14649
+ #onScroll = (scrollElement) => {
14650
+ if (this.scrollDisabled) {
14651
+ return;
14652
+ }
14653
+ if (scrollElement.scrollTop <= this.#bottomThreshold) {
14654
+ return;
14655
+ }
14656
+ const distanceToBottom = scrollElement.scrollHeight - scrollElement.scrollTop - scrollElement.clientHeight;
14657
+ const atEnd = distanceToBottom <= this.#bottomThreshold;
14658
+ if (!atEnd) {
14659
+ this.#wasAtEnd = false;
14660
+ return;
14661
+ }
14662
+ if (this.#wasAtEnd) {
14663
+ return;
14664
+ }
14665
+ this.#wasAtEnd = true;
14666
+ this.#zone.run(() => this.endReached.emit());
14667
+ };
14668
+ #getScrollElement = () => {
14669
+ return (this.#elementRef.nativeElement.querySelector('.cdk-virtual-scrollable') ??
14670
+ this.#elementRef.nativeElement.querySelector('cdk-virtual-scroll-viewport') ??
14671
+ this.#elementRef.nativeElement);
14672
+ };
14673
+ #scheduleViewportCheck = () => {
14674
+ if (this.#viewportCheckFrame !== null) {
14675
+ return;
14676
+ }
14677
+ const windowRef = this.#document.defaultView;
14678
+ const checkViewport = () => {
14679
+ this.#viewportCheckFrame = null;
14680
+ if (this.#destroyed) {
14681
+ return;
14682
+ }
14683
+ this.virtualScroll?.checkViewportSize();
14684
+ };
14685
+ if (windowRef?.requestAnimationFrame) {
14686
+ this.#viewportCheckFrame = windowRef.requestAnimationFrame(checkViewport);
14687
+ return;
14688
+ }
14689
+ checkViewport();
14363
14690
  };
14364
14691
  trackByRow(index, row) {
14365
14692
  if (row && row.length > 0) {
@@ -14368,19 +14695,28 @@ class BizyGridComponent {
14368
14695
  return index;
14369
14696
  }
14370
14697
  scrollTo(index, behavior = 'smooth') {
14698
+ if (!this.virtualScroll) {
14699
+ return;
14700
+ }
14371
14701
  this.virtualScroll.scrollToIndex(index, behavior);
14372
14702
  }
14373
14703
  ngOnDestroy() {
14704
+ this.#destroyed = true;
14374
14705
  this.#subscription.unsubscribe();
14375
- if (this.#rowScrollingMutationObserver) {
14376
- this.#rowScrollingMutationObserver.disconnect();
14706
+ if (this.#viewportCheckFrame !== null) {
14707
+ this.#document.defaultView?.cancelAnimationFrame(this.#viewportCheckFrame);
14708
+ this.#viewportCheckFrame = null;
14709
+ }
14710
+ if (this.#scrollFrame !== null) {
14711
+ this.#document.defaultView?.cancelAnimationFrame(this.#scrollFrame);
14712
+ this.#scrollFrame = null;
14377
14713
  }
14378
14714
  if (this.#resizeObserver) {
14379
14715
  this.#resizeObserver.disconnect();
14380
14716
  }
14381
14717
  }
14382
14718
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14383
- 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 });
14719
+ 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 });
14384
14720
  }
14385
14721
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyGridComponent, decorators: [{
14386
14722
  type: Component,
@@ -14396,6 +14732,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
14396
14732
  args: [BizyGridForDirective]
14397
14733
  }], resizeRef: [{
14398
14734
  type: Input
14735
+ }], scrollDisabled: [{
14736
+ type: Input
14737
+ }], scrollResetKey: [{
14738
+ type: Input
14739
+ }], endReached: [{
14740
+ type: Output
14399
14741
  }] } });
14400
14742
 
14401
14743
  const COMPONENTS$k = [
@@ -15077,11 +15419,11 @@ class BizyMenuComponent {
15077
15419
  this.#subscription.unsubscribe();
15078
15420
  }
15079
15421
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15080
- 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 });
15422
+ 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 });
15081
15423
  }
15082
15424
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImport: i0, type: BizyMenuComponent, decorators: [{
15083
15425
  type: Component,
15084
- 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"] }]
15426
+ 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"] }]
15085
15427
  }], propDecorators: { options: [{
15086
15428
  type: ContentChildren,
15087
15429
  args: [BizyMenuOptionComponent]
@@ -18620,6 +18962,9 @@ class BizyCopyToClipboardDirective {
18620
18962
  this.copyToClipboard = copyToClipboard;
18621
18963
  this.#svgElement = this.renderer.createElement('div');
18622
18964
  this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');
18965
+ this.renderer.setStyle(this.elementRef.nativeElement, 'paddingRight', '1.6rem');
18966
+ this.renderer.setStyle(this.elementRef.nativeElement, 'cursor', 'pointer');
18967
+ this.renderer.setStyle(this.elementRef.nativeElement, 'overflow', 'hidden');
18623
18968
  this.renderer.setStyle(this.#svgElement, 'position', 'absolute');
18624
18969
  this.renderer.setStyle(this.#svgElement, 'right', '0');
18625
18970
  this.renderer.setStyle(this.#svgElement, 'opacity', '0');
@@ -19297,5 +19642,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.5", ngImpor
19297
19642
  * Generated bundle index. Do not edit.
19298
19643
  */
19299
19644
 
19300
- 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 };
19645
+ 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 };
19301
19646
  //# sourceMappingURL=bizy-core.mjs.map