@filip.mazev/modal 1.0.13 → 1.0.18

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.
@@ -412,11 +412,11 @@ class ModalBackdrop {
412
412
  isOpen = input(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
413
413
  click = output();
414
414
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component });
415
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ModalBackdrop, isStandalone: true, selector: "app-modal-backdrop", inputs: { isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: "<div class=\"modal-backdrop\" [class.backdrop-fade-in]=\"isAnimated() && isOpen()\"\n [class.backdrop-fade-out]=\"isAnimated() && !isOpen()\" (click)=\"click.emit($event)\">\n</div>", styles: [".modal-backdrop{position:fixed;inset:0;z-index:3;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}\n"] });
415
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: ModalBackdrop, isStandalone: true, selector: "app-modal-backdrop", inputs: { isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: "<div class=\"modal-backdrop\" [class.backdrop-fade-in]=\"isAnimated() && isOpen()\"\n [class.backdrop-fade-out]=\"isAnimated() && !isOpen()\" (click)=\"click.emit($event)\">\n</div>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.modal-backdrop{position:fixed;inset:0;z-index:400;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}\n"] });
416
416
  }
417
417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalBackdrop, decorators: [{
418
418
  type: Component,
419
- args: [{ selector: 'app-modal-backdrop', imports: [], template: "<div class=\"modal-backdrop\" [class.backdrop-fade-in]=\"isAnimated() && isOpen()\"\n [class.backdrop-fade-out]=\"isAnimated() && !isOpen()\" (click)=\"click.emit($event)\">\n</div>", styles: [".modal-backdrop{position:fixed;inset:0;z-index:3;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}\n"] }]
419
+ args: [{ selector: 'app-modal-backdrop', imports: [], template: "<div class=\"modal-backdrop\" [class.backdrop-fade-in]=\"isAnimated() && isOpen()\"\n [class.backdrop-fade-out]=\"isAnimated() && !isOpen()\" (click)=\"click.emit($event)\">\n</div>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.modal-backdrop{position:fixed;inset:0;z-index:400;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}\n"] }]
420
420
  }], propDecorators: { isAnimated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAnimated", required: false }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], click: [{ type: i0.Output, args: ["click"] }] } });
421
421
 
422
422
  class ModalDefaultCloseButton {
@@ -576,11 +576,11 @@ class ModalBottomSheet {
576
576
  this.globalResizeCleanup = () => window.removeEventListener('pointerdown', handler);
577
577
  }
578
578
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalBottomSheet, deps: [], target: i0.ɵɵFactoryTarget.Component });
579
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ModalBottomSheet, isStandalone: true, selector: "app-modal-bottom-sheet", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: true, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: true, transformFunction: null }, animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close" }, viewQueries: [{ propertyName: "verticalSwipeTarget", first: true, predicate: ["verticalSwipeTarget"], descendants: true, static: true }, { propertyName: "elementRef", first: true, predicate: ["elementRef"], descendants: true, static: true }], ngImport: i0, template: "<div (click)=\"$event.stopPropagation()\" \n [id]=\"id() ?? ''\"\n [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\"\n [style.max-height]=\"config()?.style?.mobileConfig?.customHeight ?? ''\"\n [style.transform]=\"modalTransform()\"\n [style.transition]=\"isAnimated() && !isSwipingVertically() ? 'transform 300ms ease-in-out' : ''\" \n [ngClass]=\"{\n 'opened-bottom-sheet-modal': isAnimated()\n }\" \n #elementRef\n class=\"bottom-sheet-modal-style\">\n \n <div #verticalSwipeTarget \n class=\"touch-hitbox bottom-sheet-modal-top-bar\"\n (click)=\"isTrackingSwipe ? null : close.emit('cancel')\">\n <div class=\"swipe-line\"></div>\n </div>\n\n <div class=\"bottom-sheet-modal-inner-content-container\">\n <div class=\"bottom-sheet-modal-top-group\">\n @if (headerTemplate()) {\n <div class=\"bottom-sheet-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"bottom-sheet-modal-main-content-container\"\n [style.animationDuration]=\"isAnimated() ? animationDuration() + 'ms' : '0ms'\">\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"bottom-sheet-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n</div>", styles: [".bottom-sheet-modal-style{position:fixed;z-index:3;min-height:60vh;min-height:60dvh;max-height:98vh;max-height:98dvh;width:100vw;width:100dvw;min-width:100vw;max-width:100dvw;bottom:0;left:0;margin:0 auto;border-radius:30px 30px 0 0;background-color:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);display:flex;flex-direction:column}.touch-hitbox{display:flex;flex-direction:row;width:100%;height:3.5rem;justify-content:center;align-items:center;padding-bottom:.5rem;margin-top:-1.5rem;flex-shrink:0}.swipe-line{width:7rem;height:.33rem;background-color:var(--modal-mobile-swipe-line-color, #000000);border-radius:200rem;margin-top:1.5rem;opacity:.215;cursor:pointer}.bottom-sheet-modal-inner-content-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 1.25rem 1.75rem;gap:1.5rem;box-sizing:border-box;overflow:hidden}.bottom-sheet-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.bottom-sheet-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;padding:0}.opened-bottom-sheet-modal{animation:opened-bottom-sheet-modal-anim .35s}.bottom-sheet-modal-top-bar{display:flex;justify-content:center}.bottom-sheet-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:flex-start;padding-top:.5rem;gap:.5rem}.bottom-sheet-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}@-moz-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@-webkit-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
579
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ModalBottomSheet, isStandalone: true, selector: "app-modal-bottom-sheet", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: true, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: true, transformFunction: null }, animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close" }, viewQueries: [{ propertyName: "verticalSwipeTarget", first: true, predicate: ["verticalSwipeTarget"], descendants: true, static: true }, { propertyName: "elementRef", first: true, predicate: ["elementRef"], descendants: true, static: true }], ngImport: i0, template: "<div (click)=\"$event.stopPropagation()\" \n [id]=\"id() ?? ''\"\n [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\"\n [style.max-height]=\"config()?.style?.mobileConfig?.customHeight ?? ''\"\n [style.transform]=\"modalTransform()\"\n [style.transition]=\"isAnimated() && !isSwipingVertically() ? 'transform 300ms ease-in-out' : ''\" \n [ngClass]=\"{\n 'opened-bottom-sheet-modal': isAnimated()\n }\" \n #elementRef\n class=\"bottom-sheet-modal-style\">\n \n <div #verticalSwipeTarget \n class=\"touch-hitbox bottom-sheet-modal-top-bar\"\n (click)=\"isTrackingSwipe ? null : close.emit('cancel')\">\n <div class=\"swipe-line\"></div>\n </div>\n\n <div class=\"bottom-sheet-modal-inner-content-container\">\n <div class=\"bottom-sheet-modal-top-group\">\n @if (headerTemplate()) {\n <div class=\"bottom-sheet-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"bottom-sheet-modal-main-content-container\"\n [style.animationDuration]=\"isAnimated() ? animationDuration() + 'ms' : '0ms'\">\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"bottom-sheet-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n</div>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.bottom-sheet-modal-style{position:fixed;z-index:400;min-height:60vh;min-height:60dvh;max-height:98vh;max-height:98dvh;width:100vw;width:100dvw;min-width:100vw;max-width:100dvw;bottom:0;left:0;margin:0 auto;border-radius:1.875rem 1.875rem 0 0;background-color:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);display:flex;flex-direction:column}.touch-hitbox{display:flex;flex-direction:row;width:100%;height:3.5rem;justify-content:center;align-items:center;padding-bottom:.5rem;margin-top:-1.5rem;flex-shrink:0}.swipe-line{width:7rem;height:.33rem;background-color:var(--modal-mobile-swipe-line-color, #000000);border-radius:9999px;margin-top:1.5rem;opacity:.215;cursor:pointer}.bottom-sheet-modal-inner-content-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 1.25rem 1.5rem;gap:1.5rem;box-sizing:border-box;overflow:hidden}.bottom-sheet-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.bottom-sheet-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;padding:0}.opened-bottom-sheet-modal{animation:opened-bottom-sheet-modal-anim .35s}.bottom-sheet-modal-top-bar{display:flex;justify-content:center}.bottom-sheet-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:flex-start;padding-top:.5rem;gap:.5rem}.bottom-sheet-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}@-moz-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@-webkit-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
580
580
  }
581
581
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalBottomSheet, decorators: [{
582
582
  type: Component,
583
- args: [{ selector: 'app-modal-bottom-sheet', imports: [NgClass, NgTemplateOutlet], template: "<div (click)=\"$event.stopPropagation()\" \n [id]=\"id() ?? ''\"\n [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\"\n [style.max-height]=\"config()?.style?.mobileConfig?.customHeight ?? ''\"\n [style.transform]=\"modalTransform()\"\n [style.transition]=\"isAnimated() && !isSwipingVertically() ? 'transform 300ms ease-in-out' : ''\" \n [ngClass]=\"{\n 'opened-bottom-sheet-modal': isAnimated()\n }\" \n #elementRef\n class=\"bottom-sheet-modal-style\">\n \n <div #verticalSwipeTarget \n class=\"touch-hitbox bottom-sheet-modal-top-bar\"\n (click)=\"isTrackingSwipe ? null : close.emit('cancel')\">\n <div class=\"swipe-line\"></div>\n </div>\n\n <div class=\"bottom-sheet-modal-inner-content-container\">\n <div class=\"bottom-sheet-modal-top-group\">\n @if (headerTemplate()) {\n <div class=\"bottom-sheet-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"bottom-sheet-modal-main-content-container\"\n [style.animationDuration]=\"isAnimated() ? animationDuration() + 'ms' : '0ms'\">\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"bottom-sheet-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n</div>", styles: [".bottom-sheet-modal-style{position:fixed;z-index:3;min-height:60vh;min-height:60dvh;max-height:98vh;max-height:98dvh;width:100vw;width:100dvw;min-width:100vw;max-width:100dvw;bottom:0;left:0;margin:0 auto;border-radius:30px 30px 0 0;background-color:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);display:flex;flex-direction:column}.touch-hitbox{display:flex;flex-direction:row;width:100%;height:3.5rem;justify-content:center;align-items:center;padding-bottom:.5rem;margin-top:-1.5rem;flex-shrink:0}.swipe-line{width:7rem;height:.33rem;background-color:var(--modal-mobile-swipe-line-color, #000000);border-radius:200rem;margin-top:1.5rem;opacity:.215;cursor:pointer}.bottom-sheet-modal-inner-content-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 1.25rem 1.75rem;gap:1.5rem;box-sizing:border-box;overflow:hidden}.bottom-sheet-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.bottom-sheet-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;padding:0}.opened-bottom-sheet-modal{animation:opened-bottom-sheet-modal-anim .35s}.bottom-sheet-modal-top-bar{display:flex;justify-content:center}.bottom-sheet-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:flex-start;padding-top:.5rem;gap:.5rem}.bottom-sheet-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}@-moz-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@-webkit-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"] }]
583
+ args: [{ selector: 'app-modal-bottom-sheet', imports: [NgClass, NgTemplateOutlet], template: "<div (click)=\"$event.stopPropagation()\" \n [id]=\"id() ?? ''\"\n [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\"\n [style.max-height]=\"config()?.style?.mobileConfig?.customHeight ?? ''\"\n [style.transform]=\"modalTransform()\"\n [style.transition]=\"isAnimated() && !isSwipingVertically() ? 'transform 300ms ease-in-out' : ''\" \n [ngClass]=\"{\n 'opened-bottom-sheet-modal': isAnimated()\n }\" \n #elementRef\n class=\"bottom-sheet-modal-style\">\n \n <div #verticalSwipeTarget \n class=\"touch-hitbox bottom-sheet-modal-top-bar\"\n (click)=\"isTrackingSwipe ? null : close.emit('cancel')\">\n <div class=\"swipe-line\"></div>\n </div>\n\n <div class=\"bottom-sheet-modal-inner-content-container\">\n <div class=\"bottom-sheet-modal-top-group\">\n @if (headerTemplate()) {\n <div class=\"bottom-sheet-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"bottom-sheet-modal-main-content-container\"\n [style.animationDuration]=\"isAnimated() ? animationDuration() + 'ms' : '0ms'\">\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"bottom-sheet-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n</div>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.bottom-sheet-modal-style{position:fixed;z-index:400;min-height:60vh;min-height:60dvh;max-height:98vh;max-height:98dvh;width:100vw;width:100dvw;min-width:100vw;max-width:100dvw;bottom:0;left:0;margin:0 auto;border-radius:1.875rem 1.875rem 0 0;background-color:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);display:flex;flex-direction:column}.touch-hitbox{display:flex;flex-direction:row;width:100%;height:3.5rem;justify-content:center;align-items:center;padding-bottom:.5rem;margin-top:-1.5rem;flex-shrink:0}.swipe-line{width:7rem;height:.33rem;background-color:var(--modal-mobile-swipe-line-color, #000000);border-radius:9999px;margin-top:1.5rem;opacity:.215;cursor:pointer}.bottom-sheet-modal-inner-content-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 1.25rem 1.5rem;gap:1.5rem;box-sizing:border-box;overflow:hidden}.bottom-sheet-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.bottom-sheet-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;padding:0}.opened-bottom-sheet-modal{animation:opened-bottom-sheet-modal-anim .35s}.bottom-sheet-modal-top-bar{display:flex;justify-content:center}.bottom-sheet-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:flex-start;padding-top:.5rem;gap:.5rem}.bottom-sheet-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}@-moz-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@-webkit-keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes opened-bottom-sheet-modal-anim{0%{transform:translateY(100%)}to{transform:translateY(0)}}\n"] }]
584
584
  }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTemplate", required: true }] }], footerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerTemplate", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: true }] }], isAnimated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAnimated", required: true }] }], animationDuration: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationDuration", required: true }] }], close: [{ type: i0.Output, args: ["close"] }], verticalSwipeTarget: [{
585
585
  type: ViewChild,
586
586
  args: ['verticalSwipeTarget', { static: true }]
@@ -612,11 +612,11 @@ class ModalCentered {
612
612
  };
613
613
  }, ...(ngDevMode ? [{ debugName: "modalClasses" }] : /* istanbul ignore next */ []));
614
614
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalCentered, deps: [], target: i0.ɵɵFactoryTarget.Component });
615
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ModalCentered, isStandalone: true, selector: "app-modal-centered", inputs: { headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: true, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: true, transformFunction: null }, isBottomSheetModalActive: { classPropertyName: "isBottomSheetModalActive", publicName: "isBottomSheetModalActive", isSignal: true, isRequired: true, transformFunction: null }, animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: true, transformFunction: null }, hasDefaultContentWrapperClass: { classPropertyName: "hasDefaultContentWrapperClass", publicName: "hasDefaultContentWrapperClass", isSignal: true, isRequired: true, transformFunction: null }, hasBanner: { classPropertyName: "hasBanner", publicName: "hasBanner", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close", onBackdropClick: "onBackdropClick" }, viewQueries: [{ propertyName: "bottomSheet", predicate: ModalBottomSheet, descendants: true }], ngImport: i0, template: "@if(!isBottomSheetModalActive()) {\n<div class=\"modal-overlay\" [ngClass]=\"{'modal-backdrop': config()?.style?.hasBackdrop}\" [id]=\"id() ?? ''\"\n (click)=\"config()?.style?.hasBackdrop ? onBackdropClick.emit($event) : null\">\n <div class=\"modal-overlay-wrapper\">\n <div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\">\n <div class=\"centered-modal-inner-content-container\" [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\">\n\n <div class=\"centered-modal-top-group\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"centered-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"centered-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"centered-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".modal-overlay-wrapper{display:flex;position:absolute;z-index:3;justify-content:center;align-items:center;width:100%;height:100%}.modal-overlay{position:absolute;inset:0;z-index:2}.modal-backdrop{position:fixed;inset:0;z-index:3;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}.centered-modal-content-wrapper{display:flex;flex-direction:column;max-width:90vw;max-width:90dvw;max-height:95vh;max-height:95dvh;overflow:hidden}.centered-modal-default-style{border-radius:.75rem;box-shadow:0 8px 20px #0000001f;color:var(--modal-text, #000000);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid transparent;background-color:var(--modal-bg, #ffffff)}.centered-modal-default-content-container{padding:1rem 1.5rem;max-height:85vh;max-height:85dvh;overflow-y:auto}.centered-modal-inner-content-container{display:flex;flex-direction:column;height:100%;padding:1rem 1.5rem;gap:1.5rem;box-sizing:border-box}.centered-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.centered-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0}.centered-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem}.centered-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}.centered-modal-animate-in{scale:0;animation:centered-modal-animate-in .15s ease-in-out forwards}.centered-modal-animate-out{animation:centered-modal-animate-out .15s ease-in-out forwards}@keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-webkit-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-moz-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-webkit-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-moz-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ModalBottomSheet, selector: "app-modal-bottom-sheet", inputs: ["id", "headerTemplate", "footerTemplate", "config", "isOpen", "isAnimated", "animationDuration"], outputs: ["close"] }, { kind: "component", type: ModalBanner, selector: "app-modal-banner", inputs: ["config"], outputs: ["close"] }, { kind: "component", type: ModalDefaultCloseButton, selector: "app-modal-default-close-button", inputs: ["config"], outputs: ["close"] }] });
615
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ModalCentered, isStandalone: true, selector: "app-modal-centered", inputs: { headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: true, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: true, transformFunction: null }, isBottomSheetModalActive: { classPropertyName: "isBottomSheetModalActive", publicName: "isBottomSheetModalActive", isSignal: true, isRequired: true, transformFunction: null }, animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: true, transformFunction: null }, hasDefaultContentWrapperClass: { classPropertyName: "hasDefaultContentWrapperClass", publicName: "hasDefaultContentWrapperClass", isSignal: true, isRequired: true, transformFunction: null }, hasBanner: { classPropertyName: "hasBanner", publicName: "hasBanner", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close", onBackdropClick: "onBackdropClick" }, viewQueries: [{ propertyName: "bottomSheet", predicate: ModalBottomSheet, descendants: true }], ngImport: i0, template: "@if(!isBottomSheetModalActive()) {\n<div class=\"modal-overlay\" [ngClass]=\"{'modal-backdrop': config()?.style?.hasBackdrop}\" [id]=\"id() ?? ''\"\n (click)=\"config()?.style?.hasBackdrop ? onBackdropClick.emit($event) : null\">\n <div class=\"modal-overlay-wrapper\">\n <div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\">\n <div class=\"centered-modal-inner-content-container\" [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\">\n\n <div class=\"centered-modal-top-group\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"centered-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"centered-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"centered-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.modal-overlay-wrapper{display:flex;position:absolute;z-index:400;justify-content:center;align-items:center;width:100%;height:100%}.modal-overlay{position:absolute;inset:0;z-index:0}.modal-backdrop{position:fixed;inset:0;z-index:400;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}.centered-modal-content-wrapper{display:flex;flex-direction:column;max-width:90vw;max-width:90dvw;max-height:95vh;max-height:95dvh;overflow:hidden}.centered-modal-default-style{border-radius:.75rem;box-shadow:\"0 8px 20px rgba(0, 0, 0, 0.12)\";color:var(--modal-text, #000000);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid transparent;background-color:var(--modal-bg, #ffffff)}.centered-modal-default-content-container{padding:1rem 1.5rem;max-height:85vh;max-height:85dvh;overflow-y:auto}.centered-modal-inner-content-container{display:flex;flex-direction:column;height:100%;padding:1rem 1.5rem;gap:1.5rem;box-sizing:border-box}.centered-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.centered-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0}.centered-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem}.centered-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}.centered-modal-animate-in{scale:0;animation:centered-modal-animate-in .15s ease-in-out forwards}.centered-modal-animate-out{animation:centered-modal-animate-out .15s ease-in-out forwards}@keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-webkit-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-moz-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-webkit-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-moz-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ModalBottomSheet, selector: "app-modal-bottom-sheet", inputs: ["id", "headerTemplate", "footerTemplate", "config", "isOpen", "isAnimated", "animationDuration"], outputs: ["close"] }, { kind: "component", type: ModalBanner, selector: "app-modal-banner", inputs: ["config"], outputs: ["close"] }, { kind: "component", type: ModalDefaultCloseButton, selector: "app-modal-default-close-button", inputs: ["config"], outputs: ["close"] }] });
616
616
  }
617
617
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalCentered, decorators: [{
618
618
  type: Component,
619
- args: [{ selector: 'app-modal-centered', imports: [NgTemplateOutlet, NgClass, ModalBottomSheet, ModalBanner, ModalDefaultCloseButton], template: "@if(!isBottomSheetModalActive()) {\n<div class=\"modal-overlay\" [ngClass]=\"{'modal-backdrop': config()?.style?.hasBackdrop}\" [id]=\"id() ?? ''\"\n (click)=\"config()?.style?.hasBackdrop ? onBackdropClick.emit($event) : null\">\n <div class=\"modal-overlay-wrapper\">\n <div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\">\n <div class=\"centered-modal-inner-content-container\" [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\">\n\n <div class=\"centered-modal-top-group\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"centered-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"centered-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"centered-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".modal-overlay-wrapper{display:flex;position:absolute;z-index:3;justify-content:center;align-items:center;width:100%;height:100%}.modal-overlay{position:absolute;inset:0;z-index:2}.modal-backdrop{position:fixed;inset:0;z-index:3;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}.centered-modal-content-wrapper{display:flex;flex-direction:column;max-width:90vw;max-width:90dvw;max-height:95vh;max-height:95dvh;overflow:hidden}.centered-modal-default-style{border-radius:.75rem;box-shadow:0 8px 20px #0000001f;color:var(--modal-text, #000000);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid transparent;background-color:var(--modal-bg, #ffffff)}.centered-modal-default-content-container{padding:1rem 1.5rem;max-height:85vh;max-height:85dvh;overflow-y:auto}.centered-modal-inner-content-container{display:flex;flex-direction:column;height:100%;padding:1rem 1.5rem;gap:1.5rem;box-sizing:border-box}.centered-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.centered-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0}.centered-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem}.centered-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}.centered-modal-animate-in{scale:0;animation:centered-modal-animate-in .15s ease-in-out forwards}.centered-modal-animate-out{animation:centered-modal-animate-out .15s ease-in-out forwards}@keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-webkit-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-moz-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-webkit-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-moz-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}\n"] }]
619
+ args: [{ selector: 'app-modal-centered', imports: [NgTemplateOutlet, NgClass, ModalBottomSheet, ModalBanner, ModalDefaultCloseButton], template: "@if(!isBottomSheetModalActive()) {\n<div class=\"modal-overlay\" [ngClass]=\"{'modal-backdrop': config()?.style?.hasBackdrop}\" [id]=\"id() ?? ''\"\n (click)=\"config()?.style?.hasBackdrop ? onBackdropClick.emit($event) : null\">\n <div class=\"modal-overlay-wrapper\">\n <div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\">\n <div class=\"centered-modal-inner-content-container\" [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\">\n\n <div class=\"centered-modal-top-group\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"centered-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"centered-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"centered-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.modal-overlay-wrapper{display:flex;position:absolute;z-index:400;justify-content:center;align-items:center;width:100%;height:100%}.modal-overlay{position:absolute;inset:0;z-index:0}.modal-backdrop{position:fixed;inset:0;z-index:400;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:#00000040;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform-style:preserve-3d;transform-origin:center}.centered-modal-content-wrapper{display:flex;flex-direction:column;max-width:90vw;max-width:90dvw;max-height:95vh;max-height:95dvh;overflow:hidden}.centered-modal-default-style{border-radius:.75rem;box-shadow:\"0 8px 20px rgba(0, 0, 0, 0.12)\";color:var(--modal-text, #000000);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid transparent;background-color:var(--modal-bg, #ffffff)}.centered-modal-default-content-container{padding:1rem 1.5rem;max-height:85vh;max-height:85dvh;overflow-y:auto}.centered-modal-inner-content-container{display:flex;flex-direction:column;height:100%;padding:1rem 1.5rem;gap:1.5rem;box-sizing:border-box}.centered-modal-top-group{display:flex;flex-direction:column;gap:1rem;flex-grow:1;min-height:0}.centered-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0}.centered-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem}.centered-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:center;gap:.5rem}.centered-modal-animate-in{scale:0;animation:centered-modal-animate-in .15s ease-in-out forwards}.centered-modal-animate-out{animation:centered-modal-animate-out .15s ease-in-out forwards}@keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-webkit-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@-moz-keyframes centered-modal-animate-in{0%{scale:0}to{scale:1}}@keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-webkit-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}@-moz-keyframes centered-modal-animate-out{0%{scale:1}to{scale:0}}\n"] }]
620
620
  }], propDecorators: { headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTemplate", required: true }] }], footerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerTemplate", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: true }] }], isAnimated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAnimated", required: true }] }], isBottomSheetModalActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBottomSheetModalActive", required: true }] }], animationDuration: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationDuration", required: true }] }], hasDefaultContentWrapperClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasDefaultContentWrapperClass", required: true }] }], hasBanner: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBanner", required: true }] }], close: [{ type: i0.Output, args: ["close"] }], onBackdropClick: [{ type: i0.Output, args: ["onBackdropClick"] }], bottomSheet: [{
621
621
  type: ViewChildren,
622
622
  args: [ModalBottomSheet]
@@ -667,11 +667,11 @@ class ModalSide {
667
667
  });
668
668
  }
669
669
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalSide, deps: [], target: i0.ɵɵFactoryTarget.Component });
670
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ModalSide, isStandalone: true, selector: "app-modal-side", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: true, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: true, transformFunction: null }, isBottomSheetModalActive: { classPropertyName: "isBottomSheetModalActive", publicName: "isBottomSheetModalActive", isSignal: true, isRequired: true, transformFunction: null }, animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: true, transformFunction: null }, hasDefaultContentWrapperClass: { classPropertyName: "hasDefaultContentWrapperClass", publicName: "hasDefaultContentWrapperClass", isSignal: true, isRequired: true, transformFunction: null }, hasBanner: { classPropertyName: "hasBanner", publicName: "hasBanner", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close" }, viewQueries: [{ propertyName: "bottomSheet", predicate: ModalBottomSheet, descendants: true }], ngImport: i0, template: "@if(!isBottomSheetModalActive()) {\n<div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\" [id]=\"id() ?? ''\"\n [style.--anim-duration.ms]=\"animationDuration()\">\n <div class=\"side-modal-inner-content-container\"\n [class]=\"config() && config()?.style?.wrapperClasses ? config()?.style?.wrapperClasses : ''\"\n [style]=\"config() && config()?.style?.wrapperStyles ? config()?.style?.wrapperStyles : ''\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"side-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"side-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"side-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".side-modal-content-wrapper{position:fixed;top:0;height:100vh;height:100dvh;z-index:3;display:flex;flex-direction:column;padding:1rem;gap:1rem;box-sizing:border-box;overflow:hidden;transition:transform var(--anim-duration, 175ms) ease-in-out}.side-modal-content-wrapper.left{left:0}.side-modal-content-wrapper.right{right:0}.side-modal-content-wrapper.side-modal-animate-in{transform:translate(0)!important}.side-modal-content-wrapper.side-modal-animate-out.left{transform:translate(-100%)}.side-modal-content-wrapper.side-modal-animate-out.right{transform:translate(100%)}.side-modal-content-wrapper.with-footer{justify-content:space-between}.side-modal-content-wrapper .side-modal-inner-content-container{flex-grow:1;display:flex;flex-direction:column;gap:1rem;min-height:0}@media(max-width:768px){.side-modal-content-wrapper{max-width:90vw;max-width:95dvw}}.side-modal-default-style{background:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);box-shadow:0 0 15px #0000004d;max-width:85vw;max-width:85dvw}.side-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;max-height:none}.side-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem;padding-top:.75rem}.side-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:flex-end;gap:.5rem;padding-bottom:.75rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ModalBottomSheet, selector: "app-modal-bottom-sheet", inputs: ["id", "headerTemplate", "footerTemplate", "config", "isOpen", "isAnimated", "animationDuration"], outputs: ["close"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ModalBanner, selector: "app-modal-banner", inputs: ["config"], outputs: ["close"] }, { kind: "component", type: ModalDefaultCloseButton, selector: "app-modal-default-close-button", inputs: ["config"], outputs: ["close"] }] });
670
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ModalSide, isStandalone: true, selector: "app-modal-side", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: true, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: true, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: true, transformFunction: null }, isBottomSheetModalActive: { classPropertyName: "isBottomSheetModalActive", publicName: "isBottomSheetModalActive", isSignal: true, isRequired: true, transformFunction: null }, animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: true, transformFunction: null }, hasDefaultContentWrapperClass: { classPropertyName: "hasDefaultContentWrapperClass", publicName: "hasDefaultContentWrapperClass", isSignal: true, isRequired: true, transformFunction: null }, hasBanner: { classPropertyName: "hasBanner", publicName: "hasBanner", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close" }, viewQueries: [{ propertyName: "bottomSheet", predicate: ModalBottomSheet, descendants: true }], ngImport: i0, template: "@if(!isBottomSheetModalActive()) {\n<div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\" [id]=\"id() ?? ''\"\n [style.--anim-duration.ms]=\"animationDuration()\">\n <div class=\"side-modal-inner-content-container\"\n [class]=\"config() && config()?.style?.wrapperClasses ? config()?.style?.wrapperClasses : ''\"\n [style]=\"config() && config()?.style?.wrapperStyles ? config()?.style?.wrapperStyles : ''\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"side-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"side-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"side-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.side-modal-content-wrapper{position:fixed;top:0;height:100vh;height:100dvh;z-index:400;display:flex;flex-direction:column;padding:1rem;gap:1rem;box-sizing:border-box;overflow:hidden;transition:transform var(--anim-duration, 175ms) ease-in-out}.side-modal-content-wrapper.left{left:0}.side-modal-content-wrapper.right{right:0}.side-modal-content-wrapper.side-modal-animate-in{transform:translate(0)!important}.side-modal-content-wrapper.side-modal-animate-out.left{transform:translate(-100%)}.side-modal-content-wrapper.side-modal-animate-out.right{transform:translate(100%)}.side-modal-content-wrapper.with-footer{justify-content:space-between}.side-modal-content-wrapper .side-modal-inner-content-container{flex-grow:1;display:flex;flex-direction:column;gap:1rem;min-height:0}@media(max-width:768px){.side-modal-content-wrapper{max-width:90vw;max-width:95dvw}}.side-modal-default-style{background:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);box-shadow:\"0 8px 20px rgba(0, 0, 0, 0.12)\";max-width:85vw;max-width:85dvw}.side-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;max-height:none}.side-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem;padding-top:.75rem}.side-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:flex-end;gap:.5rem;padding-bottom:.75rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ModalBottomSheet, selector: "app-modal-bottom-sheet", inputs: ["id", "headerTemplate", "footerTemplate", "config", "isOpen", "isAnimated", "animationDuration"], outputs: ["close"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ModalBanner, selector: "app-modal-banner", inputs: ["config"], outputs: ["close"] }, { kind: "component", type: ModalDefaultCloseButton, selector: "app-modal-default-close-button", inputs: ["config"], outputs: ["close"] }] });
671
671
  }
672
672
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ModalSide, decorators: [{
673
673
  type: Component,
674
- args: [{ selector: 'app-modal-side', imports: [NgTemplateOutlet, ModalBottomSheet, NgClass, ModalBanner, ModalDefaultCloseButton], template: "@if(!isBottomSheetModalActive()) {\n<div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\" [id]=\"id() ?? ''\"\n [style.--anim-duration.ms]=\"animationDuration()\">\n <div class=\"side-modal-inner-content-container\"\n [class]=\"config() && config()?.style?.wrapperClasses ? config()?.style?.wrapperClasses : ''\"\n [style]=\"config() && config()?.style?.wrapperStyles ? config()?.style?.wrapperStyles : ''\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"side-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"side-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"side-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".side-modal-content-wrapper{position:fixed;top:0;height:100vh;height:100dvh;z-index:3;display:flex;flex-direction:column;padding:1rem;gap:1rem;box-sizing:border-box;overflow:hidden;transition:transform var(--anim-duration, 175ms) ease-in-out}.side-modal-content-wrapper.left{left:0}.side-modal-content-wrapper.right{right:0}.side-modal-content-wrapper.side-modal-animate-in{transform:translate(0)!important}.side-modal-content-wrapper.side-modal-animate-out.left{transform:translate(-100%)}.side-modal-content-wrapper.side-modal-animate-out.right{transform:translate(100%)}.side-modal-content-wrapper.with-footer{justify-content:space-between}.side-modal-content-wrapper .side-modal-inner-content-container{flex-grow:1;display:flex;flex-direction:column;gap:1rem;min-height:0}@media(max-width:768px){.side-modal-content-wrapper{max-width:90vw;max-width:95dvw}}.side-modal-default-style{background:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);box-shadow:0 0 15px #0000004d;max-width:85vw;max-width:85dvw}.side-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;max-height:none}.side-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem;padding-top:.75rem}.side-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:flex-end;gap:.5rem;padding-bottom:.75rem}\n"] }]
674
+ args: [{ selector: 'app-modal-side', imports: [NgTemplateOutlet, ModalBottomSheet, NgClass, ModalBanner, ModalDefaultCloseButton], template: "@if(!isBottomSheetModalActive()) {\n<div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\" [id]=\"id() ?? ''\"\n [style.--anim-duration.ms]=\"animationDuration()\">\n <div class=\"side-modal-inner-content-container\"\n [class]=\"config() && config()?.style?.wrapperClasses ? config()?.style?.wrapperClasses : ''\"\n [style]=\"config() && config()?.style?.wrapperStyles ? config()?.style?.wrapperStyles : ''\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"side-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"side-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"side-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>", styles: [".fm-p-0{padding:0}.fm-pt-0{padding-top:0}.fm-pr-0{padding-right:0}.fm-pb-0{padding-bottom:0}.fm-pl-0{padding-left:0}.fm-px-0{padding-left:0;padding-right:0}.fm-py-0{padding-top:0;padding-bottom:0}.fm-m-0{margin:0}.fm-mt-0{margin-top:0}.fm-mr-0{margin-right:0}.fm-mb-0{margin-bottom:0}.fm-ml-0{margin-left:0}.fm-mx-0{margin-left:0;margin-right:0}.fm-my-0{margin-top:0;margin-bottom:0}.fm-p-1{padding:.25rem}.fm-pt-1{padding-top:.25rem}.fm-pr-1{padding-right:.25rem}.fm-pb-1{padding-bottom:.25rem}.fm-pl-1{padding-left:.25rem}.fm-px-1{padding-left:.25rem;padding-right:.25rem}.fm-py-1{padding-top:.25rem;padding-bottom:.25rem}.fm-m-1{margin:.25rem}.fm-mt-1{margin-top:.25rem}.fm-mr-1{margin-right:.25rem}.fm-mb-1{margin-bottom:.25rem}.fm-ml-1{margin-left:.25rem}.fm-mx-1{margin-left:.25rem;margin-right:.25rem}.fm-my-1{margin-top:.25rem;margin-bottom:.25rem}.fm-p-2{padding:.5rem}.fm-pt-2{padding-top:.5rem}.fm-pr-2{padding-right:.5rem}.fm-pb-2{padding-bottom:.5rem}.fm-pl-2{padding-left:.5rem}.fm-px-2{padding-left:.5rem;padding-right:.5rem}.fm-py-2{padding-top:.5rem;padding-bottom:.5rem}.fm-m-2{margin:.5rem}.fm-mt-2{margin-top:.5rem}.fm-mr-2{margin-right:.5rem}.fm-mb-2{margin-bottom:.5rem}.fm-ml-2{margin-left:.5rem}.fm-mx-2{margin-left:.5rem;margin-right:.5rem}.fm-my-2{margin-top:.5rem;margin-bottom:.5rem}.fm-p-3{padding:.75rem}.fm-pt-3{padding-top:.75rem}.fm-pr-3{padding-right:.75rem}.fm-pb-3{padding-bottom:.75rem}.fm-pl-3{padding-left:.75rem}.fm-px-3{padding-left:.75rem;padding-right:.75rem}.fm-py-3{padding-top:.75rem;padding-bottom:.75rem}.fm-m-3{margin:.75rem}.fm-mt-3{margin-top:.75rem}.fm-mr-3{margin-right:.75rem}.fm-mb-3{margin-bottom:.75rem}.fm-ml-3{margin-left:.75rem}.fm-mx-3{margin-left:.75rem;margin-right:.75rem}.fm-my-3{margin-top:.75rem;margin-bottom:.75rem}.fm-p-4{padding:1rem}.fm-pt-4{padding-top:1rem}.fm-pr-4{padding-right:1rem}.fm-pb-4{padding-bottom:1rem}.fm-pl-4{padding-left:1rem}.fm-px-4{padding-left:1rem;padding-right:1rem}.fm-py-4{padding-top:1rem;padding-bottom:1rem}.fm-m-4{margin:1rem}.fm-mt-4{margin-top:1rem}.fm-mr-4{margin-right:1rem}.fm-mb-4{margin-bottom:1rem}.fm-ml-4{margin-left:1rem}.fm-mx-4{margin-left:1rem;margin-right:1rem}.fm-my-4{margin-top:1rem;margin-bottom:1rem}.fm-p-5{padding:1.25rem}.fm-pt-5{padding-top:1.25rem}.fm-pr-5{padding-right:1.25rem}.fm-pb-5{padding-bottom:1.25rem}.fm-pl-5{padding-left:1.25rem}.fm-px-5{padding-left:1.25rem;padding-right:1.25rem}.fm-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.fm-m-5{margin:1.25rem}.fm-mt-5{margin-top:1.25rem}.fm-mr-5{margin-right:1.25rem}.fm-mb-5{margin-bottom:1.25rem}.fm-ml-5{margin-left:1.25rem}.fm-mx-5{margin-left:1.25rem;margin-right:1.25rem}.fm-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.fm-p-6{padding:1.5rem}.fm-pt-6{padding-top:1.5rem}.fm-pr-6{padding-right:1.5rem}.fm-pb-6{padding-bottom:1.5rem}.fm-pl-6{padding-left:1.5rem}.fm-px-6{padding-left:1.5rem;padding-right:1.5rem}.fm-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.fm-m-6{margin:1.5rem}.fm-mt-6{margin-top:1.5rem}.fm-mr-6{margin-right:1.5rem}.fm-mb-6{margin-bottom:1.5rem}.fm-ml-6{margin-left:1.5rem}.fm-mx-6{margin-left:1.5rem;margin-right:1.5rem}.fm-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.fm-p-8{padding:2rem}.fm-pt-8{padding-top:2rem}.fm-pr-8{padding-right:2rem}.fm-pb-8{padding-bottom:2rem}.fm-pl-8{padding-left:2rem}.fm-px-8{padding-left:2rem;padding-right:2rem}.fm-py-8{padding-top:2rem;padding-bottom:2rem}.fm-m-8{margin:2rem}.fm-mt-8{margin-top:2rem}.fm-mr-8{margin-right:2rem}.fm-mb-8{margin-bottom:2rem}.fm-ml-8{margin-left:2rem}.fm-mx-8{margin-left:2rem;margin-right:2rem}.fm-my-8{margin-top:2rem;margin-bottom:2rem}.fm-p-10{padding:2.5rem}.fm-pt-10{padding-top:2.5rem}.fm-pr-10{padding-right:2.5rem}.fm-pb-10{padding-bottom:2.5rem}.fm-pl-10{padding-left:2.5rem}.fm-px-10{padding-left:2.5rem;padding-right:2.5rem}.fm-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.fm-m-10{margin:2.5rem}.fm-mt-10{margin-top:2.5rem}.fm-mr-10{margin-right:2.5rem}.fm-mb-10{margin-bottom:2.5rem}.fm-ml-10{margin-left:2.5rem}.fm-mx-10{margin-left:2.5rem;margin-right:2.5rem}.fm-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.fm-p-12{padding:3rem}.fm-pt-12{padding-top:3rem}.fm-pr-12{padding-right:3rem}.fm-pb-12{padding-bottom:3rem}.fm-pl-12{padding-left:3rem}.fm-px-12{padding-left:3rem;padding-right:3rem}.fm-py-12{padding-top:3rem;padding-bottom:3rem}.fm-m-12{margin:3rem}.fm-mt-12{margin-top:3rem}.fm-mr-12{margin-right:3rem}.fm-mb-12{margin-bottom:3rem}.fm-ml-12{margin-left:3rem}.fm-mx-12{margin-left:3rem;margin-right:3rem}.fm-my-12{margin-top:3rem;margin-bottom:3rem}.fm-rounded-none{border-radius:0}.fm-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.fm-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.fm-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.fm-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.fm-rounded-sm{border-radius:.25rem}.fm-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.fm-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.fm-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.fm-rounded-md{border-radius:.5rem}.fm-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.fm-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.fm-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.fm-rounded-lg{border-radius:.75rem}.fm-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.fm-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.fm-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.fm-rounded-xl{border-radius:1rem}.fm-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.fm-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.fm-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.fm-rounded-2xl{border-radius:1.5rem}.fm-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.fm-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.fm-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.fm-rounded-3xl{border-radius:1.875rem}.fm-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.fm-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.fm-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.fm-rounded-pill{border-radius:9999px}.fm-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.fm-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.fm-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.fm-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.fm-shadow-sm{box-shadow:0 1px 2px #0000000d}.fm-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.fm-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.fm-shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.fm-shadow-modal{box-shadow:0 8px 20px #0000001f}.fm-shadow-toast{box-shadow:0 4px 12px #00000026}.fm-z-base{z-index:1}.fm-z-dropdown{z-index:100}.fm-z-sticky{z-index:200}.fm-z-fixed{z-index:300}.fm-z-modal{z-index:400}.fm-z-popover{z-index:500}.fm-z-tooltip{z-index:600}.fm-z-toast{z-index:9999}:root{--fm-space-0: 0;--fm-space-1: .25rem;--fm-space-2: .5rem;--fm-space-3: .75rem;--fm-space-4: 1rem;--fm-space-5: 1.25rem;--fm-space-6: 1.5rem;--fm-space-8: 2rem;--fm-space-10: 2.5rem;--fm-space-12: 3rem;--fm-rounded-none: 0;--fm-rounded-sm: .25rem;--fm-rounded-md: .5rem;--fm-rounded-lg: .75rem;--fm-rounded-xl: 1rem;--fm-rounded-2xl: 1.5rem;--fm-rounded-3xl: 1.875rem;--fm-rounded-pill: 9999px;--fm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--fm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--fm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--fm-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--fm-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--fm-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--fm-z-base: 1;--fm-z-dropdown: 100;--fm-z-sticky: 200;--fm-z-fixed: 300;--fm-z-modal: 400;--fm-z-popover: 500;--fm-z-tooltip: 600;--fm-z-toast: 9999}.side-modal-content-wrapper{position:fixed;top:0;height:100vh;height:100dvh;z-index:400;display:flex;flex-direction:column;padding:1rem;gap:1rem;box-sizing:border-box;overflow:hidden;transition:transform var(--anim-duration, 175ms) ease-in-out}.side-modal-content-wrapper.left{left:0}.side-modal-content-wrapper.right{right:0}.side-modal-content-wrapper.side-modal-animate-in{transform:translate(0)!important}.side-modal-content-wrapper.side-modal-animate-out.left{transform:translate(-100%)}.side-modal-content-wrapper.side-modal-animate-out.right{transform:translate(100%)}.side-modal-content-wrapper.with-footer{justify-content:space-between}.side-modal-content-wrapper .side-modal-inner-content-container{flex-grow:1;display:flex;flex-direction:column;gap:1rem;min-height:0}@media(max-width:768px){.side-modal-content-wrapper{max-width:90vw;max-width:95dvw}}.side-modal-default-style{background:var(--modal-bg, #ffffff);color:var(--modal-text, #000000);box-shadow:\"0 8px 20px rgba(0, 0, 0, 0.12)\";max-width:85vw;max-width:85dvw}.side-modal-main-content-container{flex-grow:1;overflow-y:auto;min-height:0;max-height:none}.side-modal-header{flex-shrink:0;width:100%;display:flex;justify-content:space-between;gap:.5rem;padding-top:.75rem}.side-modal-footer{flex-shrink:0;width:100%;display:flex;justify-content:flex-end;gap:.5rem;padding-bottom:.75rem}\n"] }]
675
675
  }], ctorParameters: () => [], propDecorators: { layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: true }] }], headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTemplate", required: true }] }], footerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerTemplate", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: true }] }], isAnimated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAnimated", required: true }] }], isBottomSheetModalActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBottomSheetModalActive", required: true }] }], animationDuration: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationDuration", required: true }] }], hasDefaultContentWrapperClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasDefaultContentWrapperClass", required: true }] }], hasBanner: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBanner", required: true }] }], close: [{ type: i0.Output, args: ["close"] }], bottomSheet: [{
676
676
  type: ViewChildren,
677
677
  args: [ModalBottomSheet]
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-modal.mjs","sources":["../../../projects/modal/src/lib/classes/modal-style.config.ts","../../../projects/modal/src/lib/classes/modal-config.ts","../../../projects/modal/src/lib/enums/modal-state.enum.ts","../../../projects/modal/src/lib/classes/modal-ref.ts","../../../projects/modal/src/lib/tokens/modal-data.token.ts","../../../projects/modal/src/lib/services/modal-global-settings.service.ts","../../../projects/modal/src/lib/services/modal.service.ts","../../../projects/modal/src/lib/components/shared/ui/backdrop/modal-backdrop.ts","../../../projects/modal/src/lib/components/shared/ui/backdrop/modal-backdrop.html","../../../projects/modal/src/lib/components/shared/ui/default-close-button/default-close-button.ts","../../../projects/modal/src/lib/components/shared/ui/default-close-button/default-close-button.html","../../../projects/modal/src/lib/components/shared/ui/banner/modal-banner.ts","../../../projects/modal/src/lib/components/shared/ui/banner/modal-banner.html","../../../projects/modal/src/lib/constants/modal-bottom-sheet.constants.ts","../../../projects/modal/src/lib/components/views/bottom-sheet/modal-bottom-sheet.ts","../../../projects/modal/src/lib/components/views/bottom-sheet/modal-bottom-sheet.html","../../../projects/modal/src/lib/components/views/centered/modal-centered.ts","../../../projects/modal/src/lib/components/views/centered/modal-centered.html","../../../projects/modal/src/lib/components/views/side/modal-side.ts","../../../projects/modal/src/lib/components/views/side/modal-side.html","../../../projects/modal/src/lib/constants/modal-animation.constants.ts","../../../projects/modal/src/lib/components/modal-core.ts","../../../projects/modal/src/lib/components/modal-core.html","../../../projects/modal/src/lib/classes/modal.ts","../../../projects/modal/src/lib/enums/modal-warnings.enum.ts","../../../projects/modal/src/lib/directives/modal-header.directive.ts","../../../projects/modal/src/lib/directives/modal-footer.directive.ts","../../../projects/modal/src/lib/classes/modal-close-guard.ts","../../../projects/modal/src/lib/classes/guards/modal-confirm-close-guard.ts","../../../projects/modal/src/public-api.ts","../../../projects/modal/src/filip.mazev-modal.ts"],"sourcesContent":["import { IModalStyleConfig } from '../interfaces/imodal-style-config.interface';\nimport { IBottomSheetModalConfig } from '../interfaces/ibottom-sheet-modal-config.interface';\nimport { BreakpointKey, ModalLayout } from '../types/modal.types';\n\nexport class ModalStyleConfig implements IModalStyleConfig {\n public layout: ModalLayout;\n public breakpoints?: Partial<Record<BreakpointKey, ModalLayout>>;\n\n public animate: boolean;\n public hasBackdrop: boolean;\n public closeDelay?: number;\n public showCloseButton?: boolean;\n\n public mobileConfig: IBottomSheetModalConfig;\n\n public contentWrapper: boolean;\n\n public wrapperClasses: string;\n public wrapperStyles: string;\n\n public overrideFullHeight: boolean;\n\n constructor(config?: IModalStyleConfig) {\n this.layout = config?.layout ?? 'center';\n this.breakpoints = config?.breakpoints;\n\n this.animate = config?.animate ?? true;\n this.hasBackdrop = config?.hasBackdrop ?? true;\n this.closeDelay = config?.closeDelay;\n this.showCloseButton = config?.showCloseButton ?? true;\n\n this.mobileConfig = config?.mobileConfig ?? {};\n\n this.contentWrapper = config?.contentWrapper ?? true;\n\n this.wrapperClasses = config?.wrapperClasses ?? '';\n this.wrapperStyles = config?.wrapperStyles ?? '';\n\n this.overrideFullHeight = config?.overrideFullHeight ?? false;\n }\n}\n","import { IModalConfig } from '../interfaces/imodal-config.interface';\nimport { ModalStyleConfig } from './modal-style.config';\nimport { ModalCloseGuard } from './modal-close-guard';\nimport { IModalCloseResult } from '@modal/public-api';\nimport { Observable } from 'rxjs';\n\nexport class ModalConfig<D, R> {\n public open: boolean;\n\n public afterClose?: () => Observable<IModalCloseResult<R | undefined>>;\n\n public closeGuard?: ModalCloseGuard;\n public closeGuardOnlyOnCancel?: boolean;\n\n public disableClose: boolean;\n public disableCloseOnBackdropClick: boolean;\n public disableCloseOnNavigation: boolean;\n\n public data: D | null;\n\n public style: ModalStyleConfig;\n\n public bannerText: string;\n\n public contentClasses: string;\n public contentStyles: string;\n\n public disableConsoleWarnings: boolean;\n public disableConsoleInfo: boolean;\n\n public id?: string;\n\n constructor(config?: IModalConfig<D, R>) {\n this.open = config?.open ?? true;\n\n this.afterClose = config?.afterClose;\n\n this.closeGuard = config?.closeGuard;\n this.closeGuardOnlyOnCancel = config?.closeGuardOnlyOnCancel ?? true;\n\n this.disableClose = config?.disableClose ?? false;\n this.disableCloseOnBackdropClick = config?.disableCloseOnBackdropClick ?? false;\n this.disableCloseOnNavigation = config?.disableCloseOnNavigation ?? false;\n\n this.data = config?.data ?? null;\n this.style = new ModalStyleConfig(config?.style);\n\n this.bannerText = config?.bannerText ?? '';\n\n this.contentClasses = config?.contentClasses ?? '';\n this.contentStyles = config?.contentStyles ?? '';\n\n this.disableConsoleWarnings = config?.disableConsoleWarnings ?? false;\n this.disableConsoleInfo = config?.disableConsoleInfo ?? false;\n\n this.id = config?.id;\n }\n}\n","export enum ModalState {\n OPEN = 'open',\n OPENING = 'opening',\n CLOSED = 'closed',\n CLOSING = 'closing'\n}\n","import { ComponentRef, Type } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { ModalConfig } from './modal-config';\nimport { ModalCore } from '../components/modal-core';\nimport { ModalState } from '../enums/modal-state.enum';\nimport { IModalCloseResult } from '../interfaces/imodal-close-result.interface';\nimport { IModalRef } from '../interfaces/imodal-ref.interface';\nimport { ModalService } from '../services/modal.service';\nimport { ModalCloseMode } from '../types/modal.types';\nimport { IModal } from '../interfaces/imodal.interface';\nimport { ComponentType } from '@angular/cdk/portal';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class ModalRef<D = unknown, R = any, C extends IModal<D, R> = IModal<D, R>> implements IModalRef<D, R, C> {\n //#region Modal Container\n\n private _modalContainer: Type<ModalCore<D, R, C>> = {} as Type<ModalCore<D, R, C>>;\n\n private _modalContainerRef: ComponentRef<ModalCore<D, R, C>> = {} as ComponentRef<ModalCore<D, R, C>>;\n private _modalContainerElement: HTMLElement = {} as HTMLElement;\n private _parentElement: HTMLElement | undefined = undefined;\n //#region Component\n private _componentRef: ComponentRef<C> = {} as ComponentRef<C>;\n //#region Self\n private _modalState: ModalState = ModalState.CLOSED;\n //#endregion\n private modalState = new BehaviorSubject<ModalState>(this.getStatus());\n private _modalConfig?: ModalConfig<D, R> = undefined;\n //#region Observables\n private backdropClickSubject: Subject<MouseEvent> = new Subject<MouseEvent>();\n //#endregion\n private afterCloseSubject: Subject<IModalCloseResult<R | undefined>> = new Subject<IModalCloseResult<R | undefined>>();\n //#endregion\n constructor(\n componentRef: ComponentRef<C>,\n public componentType: ComponentType<C>,\n modalContainerRef: ComponentRef<ModalCore<D, R, C>>,\n private modalService: ModalService,\n modalConfig?: ModalConfig<D, R>\n ) {\n this.modalConfig = modalConfig;\n this.modalContainerRef = modalContainerRef;\n this.modalContainerElement = modalContainerRef.location.nativeElement;\n\n this.componentRef = componentRef;\n }\n\n public get modalContainer(): Type<ModalCore<D, R, C>> {\n return this._modalContainer;\n }\n\n private set modalContainer(modalContainer: Type<ModalCore<D, R, C>>) {\n this._modalContainer = modalContainer;\n }\n\n public get modalContainerRef(): ComponentRef<ModalCore<D, R, C>> {\n return this._modalContainerRef;\n }\n\n private set modalContainerRef(modalContainerRef: ComponentRef<ModalCore<D, R, C>>) {\n this._modalContainerRef = modalContainerRef;\n }\n\n public get modalContainerElement(): HTMLElement {\n return this._modalContainerElement;\n }\n\n private set modalContainerElement(modalContainerElement: HTMLElement) {\n this._modalContainerElement = modalContainerElement;\n }\n\n public get parentElement(): HTMLElement | undefined {\n return this._parentElement;\n }\n\n private set parentElement(parentElement: HTMLElement | undefined) {\n this._parentElement = parentElement;\n }\n\n //#endregion\n\n public get componentRef(): ComponentRef<C> {\n return this._componentRef;\n }\n\n private set componentRef(componentRef: ComponentRef<C>) {\n this._componentRef = componentRef;\n }\n\n public get modalConfig(): ModalConfig<D, R> | undefined {\n return this._modalConfig;\n }\n\n private set modalConfig(modalConfig: ModalConfig<D, R> | undefined) {\n this._modalConfig = modalConfig;\n }\n\n public backdropClick(): Observable<MouseEvent> {\n return this.backdropClickSubject.asObservable();\n }\n\n public modalState$(): Observable<ModalState> {\n return this.modalState.asObservable();\n }\n\n /**\n * Observable that emits when the modal has been closed.\n * @returns An Observable that emits an IModalCloseResult<R | undefined> when the modal is closed.\n */\n public afterClosed(): Observable<IModalCloseResult<R | undefined>> {\n return this.afterCloseSubject.asObservable();\n }\n\n //#region Public Methods\n\n public async open(): Promise<void> {\n this._modalState = ModalState.OPENING;\n this.modalState.next(ModalState.OPENING);\n\n this.modalContainerRef.instance.componentRef = this._componentRef;\n\n const config = new ModalConfig(this.modalConfig);\n\n this.modalContainerRef.instance.config = config;\n\n this.modalContainerRef.instance.closeFunction = this.handleClose.bind(this);\n\n this.parentElement?.appendChild(this.modalContainerElement);\n\n this.modalContainerRef.instance.backdropClick.subscribe((event) => {\n this.backdropClicked(event);\n });\n\n this._modalState = ModalState.OPEN;\n this.modalState.next(ModalState.OPEN);\n }\n\n public close(state: ModalCloseMode = 'cancel', result: R | undefined = undefined, forceClose: boolean = false): void {\n this.modalContainerRef.instance.close(state, result, false, forceClose);\n }\n\n private getStatus(): ModalState {\n return this._modalState;\n }\n\n private backdropClicked(event: MouseEvent) {\n this.backdropClickSubject.next(event);\n }\n\n private afterClose(result: IModalCloseResult<R | undefined>) {\n this.afterCloseSubject.next(result);\n }\n\n //#endregion\n\n //#region Private Methods\n\n private handleClose(result: IModalCloseResult<R | undefined>): void {\n this._modalState = ModalState.CLOSING;\n this.modalState.next(ModalState.CLOSING);\n\n setTimeout(() => {\n if (this.modalConfig?.afterClose) {\n this.modalConfig.afterClose();\n }\n\n this.modalContainerRef.destroy();\n\n this._modalState = ModalState.CLOSED;\n this.modalState.next(ModalState.CLOSED);\n\n this.afterClose(result);\n\n this.modalService?.unregister(this);\n }, this.modalContainerRef.instance.animationDuration);\n }\n //#endregion\n}\n","import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const MODAL_DATA: InjectionToken<any> = new InjectionToken<any>('MODAL_DATA');\n","import { Injectable, signal } from '@angular/core';\nimport { ModalLayout } from '../types/modal.types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalGlobalSettingsService {\n public readonly layout = signal<ModalLayout>('center');\n public readonly animate = signal<boolean>(true);\n public readonly hasBackdrop = signal<boolean>(true);\n public readonly showCloseButton = signal<boolean>(true);\n public readonly contentWrapper = signal<boolean>(true);\n public readonly overrideFullHeight = signal<boolean>(false);\n \n public readonly disableClose = signal<boolean>(false);\n public readonly disableCloseOnBackdropClick = signal<boolean>(false);\n public readonly disableCloseOnNavigation = signal<boolean>(false);\n public readonly closeGuardOnlyOnCancel = signal<boolean>(true);\n \n public readonly disableConsoleWarnings = signal<boolean>(false);\n public readonly disableConsoleInfo = signal<boolean>(false);\n\n /**\n * Updates the global modal settings with the provided values. Only the specified settings will be updated, while others will remain unchanged.\n * @param settings An object containing the settings to be updated. Each property is optional, and only those provided will be updated.\n * Example usage:\n * this.modalGlobalSettingsService.update({\n * animate: false,\n * hasBackdrop: true,\n * disableCloseOnBackdropClick: true\n * });\n * In this example, the global settings for 'animate', 'hasBackdrop', and 'disableCloseOnBackdropClick' will be updated, while all other settings will retain their current values.\n */\n public update(settings: Partial<{\n layout: ModalLayout;\n animate: boolean;\n hasBackdrop: boolean;\n showCloseButton: boolean;\n contentWrapper: boolean;\n overrideFullHeight: boolean;\n disableCloseOnBackdropClick: boolean;\n disableCloseOnNavigation: boolean;\n closeGuardOnlyOnCancel: boolean;\n disableConsoleWarnings: boolean;\n disableConsoleInfo: boolean;\n }>) {\n if (settings.animate !== undefined) this.animate.set(settings.animate);\n if (settings.hasBackdrop !== undefined) this.hasBackdrop.set(settings.hasBackdrop);\n if (settings.disableCloseOnBackdropClick !== undefined) this.disableCloseOnBackdropClick.set(settings.disableCloseOnBackdropClick);\n }\n}","import { Injectable, inject, Injector, ApplicationRef, EnvironmentInjector, createComponent, RendererFactory2, Renderer2, Type } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { BehaviorSubject, filter, skip } from 'rxjs';\nimport { ModalConfig } from '../classes/modal-config';\nimport { ModalRef } from '../classes/modal-ref';\nimport { ModalCore } from '../components/modal-core';\nimport { IModalConfig } from '../interfaces/imodal-config.interface';\nimport { IModalService } from '../interfaces/imodal-service.interface';\nimport { MODAL_DATA } from '../tokens/modal-data.token';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IModal } from '../interfaces/imodal.interface';\nimport { ModalGlobalSettingsService } from './modal-global-settings.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService implements IModalService {\n private readonly router = inject(Router);\n private readonly injector = inject(Injector);\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly rendererFactory = inject(RendererFactory2);\n private readonly document = inject(DOCUMENT);\n\n private readonly renderer: Renderer2;\n\n private readonly globalSettings = inject(ModalGlobalSettingsService);\n\n //#region Properties\n\n private modals: Set<ModalRef> = new Set();\n private modalsSubject = new BehaviorSubject<Set<ModalRef>>(this.modals);\n\n //#endregion\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n this.createSubscriptions();\n }\n\n //#region Subscription Methods\n\n private createSubscriptions(): void {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n skip(1),\n takeUntilDestroyed()\n )\n .subscribe(() => {\n if (this.modalsCount() > 0) {\n this.closeAll(true);\n }\n });\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * Opens a modal with the specified component and configuration.\n * @param component The component to be displayed in the modal.\n * @param config Optional configuration for the modal.\n * @returns A ModalRef instance representing the opened modal.\n */\n public open<D, R, C extends IModal<D, R> = IModal<D, R>>(component: ComponentType<C>, config?: IModalConfig<D, R>): ModalRef<D, R, C> {\n const dataInjector = Injector.create({\n providers: [{ provide: MODAL_DATA, useValue: config?.data }],\n parent: this.injector\n });\n\n const wrapperRef = createComponent(ModalCore<D, R, C>, {\n environmentInjector: this.environmentInjector,\n elementInjector: dataInjector\n });\n\n const contentInjector = Injector.create({\n providers: [{ provide: ModalCore, useValue: wrapperRef.instance }],\n parent: wrapperRef.injector\n });\n\n const contentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: contentInjector\n });\n\n const resolvedConfig = this.resolveConfig(config);\n\n wrapperRef.instance.componentRef = contentRef;\n wrapperRef.instance.config = new ModalConfig(resolvedConfig);\n\n this.appRef.attachView(wrapperRef.hostView);\n this.document.body.appendChild(wrapperRef.location.nativeElement);\n\n const modal = new ModalRef<D, R, C>(contentRef, component, wrapperRef, this, new ModalConfig(resolvedConfig));\n\n if (this.isIModal<D, R>(contentRef.instance)) {\n contentRef.instance.modal = modal;\n contentRef.instance.onModalInit();\n }\n\n wrapperRef.onDestroy(() => {\n this.appRef.detachView(wrapperRef.hostView);\n wrapperRef.location.nativeElement.remove();\n });\n\n const modalElement = modal.componentRef.location.nativeElement;\n this.renderer.setStyle(modalElement, 'height', '97%');\n this.renderer.setStyle(modalElement, 'width', '100%');\n this.renderer.setStyle(modalElement, 'display', 'flex');\n this.renderer.setStyle(modalElement, 'flex-grow', '1');\n\n this.modals.add(modal);\n this.modalsSubject.next(this.modals);\n\n modal.open();\n\n return modal;\n }\n\n /**\n * Closes the specified modal.\n * @param modal The ModalRef instance representing the modal to be closed.\n */\n public close<D, R, C extends IModal<D, R> = IModal<D, R>>(modal: ModalRef<D, R, C>): void {\n modal.close();\n }\n\n /**\n * Unregisters the specified modal from the service.\n * @param modal The ModalRef instance representing the modal to be unregistered.\n */\n public unregister<D, R, C extends IModal<D, R> = IModal<D, R>>(modal: ModalRef<D, R, C>): void {\n this.modals.delete(modal);\n this.modalsSubject.next(this.modals);\n }\n\n /**\n * Closes all open modals.\n * @param onNavigate Indicates if the closeAll is triggered by navigation event.\n */\n public closeAll(onNavigate: boolean = false): void {\n this.modals.forEach((modal) => {\n if (modal.modalConfig?.disableCloseOnNavigation !== true || !onNavigate) {\n modal.close('cancel', undefined, true);\n }\n });\n }\n\n /**\n * Finds if a modal with the specified component type is currently open.\n * @param componentType The component type to search for.\n * @returns True if a modal with the specified component type is open, false otherwise.\n */\n public find<D, R>(componentType: Type<IModal<D, R>>): boolean {\n for (const modal of this.modals) {\n if (modal.componentRef.componentType === componentType) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the count of currently open modals.\n * @returns The number of open modals.\n */\n public modalsCount(): number {\n return this.modals.size;\n }\n\n //#endregion\n\n //#region Helper Methods\n\n private isIModal<D, R>(component: unknown): component is IModal<D, R> {\n return typeof component === 'object' && component !== null && 'onModalInit' in component && typeof (component as IModal<D, R>).onModalInit === 'function';\n }\n\n private resolveConfig<D, R>(config: IModalConfig<D, R> | undefined): IModalConfig<D, R> {\n const resolvedStyle = {\n layout: config?.style?.layout ?? this.globalSettings.layout(),\n animate: config?.style?.animate ?? this.globalSettings.animate(),\n hasBackdrop: config?.style?.hasBackdrop ?? this.globalSettings.hasBackdrop(),\n showCloseButton: config?.style?.showCloseButton ?? this.globalSettings.showCloseButton(),\n contentWrapper: config?.style?.contentWrapper ?? this.globalSettings.contentWrapper(),\n overrideFullHeight: config?.style?.overrideFullHeight ?? this.globalSettings.overrideFullHeight(),\n breakpoints: config?.style?.breakpoints,\n mobileConfig: config?.style?.mobileConfig,\n wrapperClasses: config?.style?.wrapperClasses,\n wrapperStyles: config?.style?.wrapperStyles,\n closeDelay: config?.style?.closeDelay,\n };\n\n return {\n ...config,\n disableClose: config?.disableClose ?? this.globalSettings.disableClose(),\n disableCloseOnBackdropClick: config?.disableCloseOnBackdropClick ?? this.globalSettings.disableCloseOnBackdropClick(),\n disableCloseOnNavigation: config?.disableCloseOnNavigation ?? this.globalSettings.disableCloseOnNavigation(),\n closeGuardOnlyOnCancel: config?.closeGuardOnlyOnCancel ?? this.globalSettings.closeGuardOnlyOnCancel(),\n disableConsoleWarnings: config?.disableConsoleWarnings ?? this.globalSettings.disableConsoleWarnings(),\n disableConsoleInfo: config?.disableConsoleInfo ?? this.globalSettings.disableConsoleInfo(),\n style: resolvedStyle,\n };\n }\n\n //#endregion\n}\n","import { Component, input, output } from '@angular/core';\n\n@Component({\n selector: 'app-modal-backdrop',\n imports: [],\n templateUrl: './modal-backdrop.html',\n styleUrls: ['./modal-backdrop.scss']\n})\nexport class ModalBackdrop {\n public readonly isAnimated = input(false);\n public readonly isOpen = input(false);\n\n public readonly click = output<MouseEvent>();\n}\n","<div class=\"modal-backdrop\" [class.backdrop-fade-in]=\"isAnimated() && isOpen()\"\n [class.backdrop-fade-out]=\"isAnimated() && !isOpen()\" (click)=\"click.emit($event)\">\n</div>","import { Component, input, output } from '@angular/core';\nimport { ModalConfig, ModalCloseMode } from '../../../../../public-api';\n\n@Component({\n selector: 'app-modal-default-close-button',\n imports: [],\n templateUrl: './default-close-button.html',\n styleUrl: './default-close-button.scss'\n})\nexport class ModalDefaultCloseButton<D = unknown, R = unknown> {\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n}\n"," @if (config()?.disableClose !== true && config()?.style?.showCloseButton !== false) {\n <svg (click)=\"close.emit('cancel')\" aria-label=\"Close\" class=\"default-close-button\" viewBox=\"0 0 24 24\"\n fill=\"#ffffff\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.4 24L0 21.6L9.6 12L0 2.4L2.4 0L12 9.6L21.6 0L24 2.4L14.4 12L24 21.6L21.6 24L12 14.4L2.4 24Z\"\n fill=\"#ffffff\" />\n </svg>\n }","import { Component, input, output } from '@angular/core';\nimport { ModalConfig } from '../../../../classes/modal-config';\nimport { ModalCloseMode } from '../../../../types/modal.types';\nimport { ModalDefaultCloseButton } from '../default-close-button/default-close-button';\n\n@Component({\n selector: 'app-modal-banner',\n imports: [ModalDefaultCloseButton],\n templateUrl: './modal-banner.html',\n styleUrl: './modal-banner.scss'\n})\nexport class ModalBanner<D = unknown, R = unknown> {\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n}\n","<div class=\"modal-top-banner-container\">\n <div class=\"modal-top-banner-title-container\">\n @if (config() && config()?.bannerText && (config() && config()!.bannerText.length > 0)) {\n {{ config()?.bannerText }}\n }\n </div>\n\n <app-modal-default-close-button [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n</div>","export const MODAL_DOWN_SWIPE_LIMIT = 3;\nexport const MODAL_SWIPE_VELOCITY_THRESHOLD = 80;\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild, input, output, signal, computed } from '@angular/core';\nimport { ModalConfig } from '../../../classes/modal-config';\nimport { ModalCloseMode } from '../../../types/modal.types';\nimport * as bottomSheetConst from '../../../constants/modal-bottom-sheet.constants';\n\n@Component({\n selector: 'app-modal-bottom-sheet',\n imports: [NgClass, NgTemplateOutlet],\n templateUrl: './modal-bottom-sheet.html',\n styleUrl: './modal-bottom-sheet.scss'\n})\nexport class ModalBottomSheet<D = unknown, R = unknown> implements OnInit, OnDestroy {\n public readonly id = input.required<string | null>();\n\n public readonly headerTemplate = input.required<TemplateRef<void> | null>();\n public readonly footerTemplate = input.required<TemplateRef<void> | null>();\n\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n public readonly isOpen = input.required<boolean>();\n public readonly isAnimated = input.required<boolean>();\n public readonly animationDuration = input.required<number>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n\n public currentTranslateY = signal(0);\n public isSwipingVerticallyFinished = signal(false);\n protected isSwipingVertically = signal(false);\n\n @ViewChild('verticalSwipeTarget', { static: true }) protected verticalSwipeTarget?: ElementRef;\n @ViewChild('elementRef', { static: true }) protected elementRef?: ElementRef;\n\n protected modalTransform = computed(() => {\n if (this.isSwipingVerticallyFinished()) {\n return 'translateY(100%)';\n }\n\n const calculatedY = Math.max(0, this.currentTranslateY());\n\n return `translateY(${calculatedY}px)`;\n });\n\n protected downSwipeLimit: number = 0;\n protected isTrackingSwipe: boolean = false;\n\n private isTouchActive = false;\n private bottomSheetInitiated: boolean = false;\n\n private cleanupListeners: (() => void) | null = null;\n private globalResizeCleanup: (() => void) | null = null;\n\n public ngOnInit(): void {\n this.startVerticalSwipeDetection();\n this.monitorInputType();\n }\n\n public ngOnDestroy(): void {\n this.stopVerticalSwipeDetection();\n this.globalResizeCleanup?.();\n }\n\n //#region Swipe Methods\n\n private startVerticalSwipeDetection(): void {\n if (this.isTrackingSwipe) return;\n\n const hasTouch = typeof window !== 'undefined' && (window.matchMedia('(pointer: coarse)').matches || navigator.maxTouchPoints > 0);\n if (!hasTouch) return;\n\n this.initBottomSheetModalParams();\n this.isTrackingSwipe = true;\n\n const target = this.verticalSwipeTarget?.nativeElement;\n if (!target) return;\n\n let limit = 0;\n\n let startY = 0;\n let startTime = 0;\n let isPointerDown = false;\n\n const pointerDown = (event: PointerEvent) => {\n if (event.button !== 0 && event.pointerType === 'mouse') return;\n\n const modalHeight = this.elementRef?.nativeElement.offsetHeight || 0;\n limit = modalHeight / this.downSwipeLimit;\n\n isPointerDown = true;\n startY = event.clientY;\n startTime = event.timeStamp;\n\n this.isSwipingVertically.set(true);\n\n target.setPointerCapture(event.pointerId);\n };\n\n const pointerMove = (event: PointerEvent) => {\n if (!isPointerDown) return;\n\n const currentY = event.clientY - startY;\n\n if (event.cancelable) event.preventDefault();\n\n this.currentTranslateY.set(currentY);\n };\n\n const pointerUp = (event: PointerEvent) => {\n if (!isPointerDown) return;\n\n isPointerDown = false;\n this.isSwipingVertically.set(false);\n target.releasePointerCapture(event.pointerId);\n\n const deltaY = event.clientY - startY;\n const duration = event.timeStamp - startTime || 1;\n const velocityY = deltaY / duration;\n\n if (deltaY > limit || (velocityY > bottomSheetConst.MODAL_SWIPE_VELOCITY_THRESHOLD && deltaY > 0)) {\n this.close.emit('cancel');\n } else {\n this.currentTranslateY.set(0);\n }\n };\n\n target.addEventListener('pointerdown', pointerDown, { passive: false });\n target.addEventListener('pointermove', pointerMove, { passive: false });\n target.addEventListener('pointerup', pointerUp);\n target.addEventListener('pointercancel', pointerUp);\n\n this.cleanupListeners = () => {\n target.removeEventListener('pointerdown', pointerDown);\n target.removeEventListener('pointermove', pointerMove);\n target.removeEventListener('pointerup', pointerUp);\n target.removeEventListener('pointercancel', pointerUp);\n };\n }\n\n private stopVerticalSwipeDetection(): void {\n if (!this.isTrackingSwipe) return;\n\n this.isTrackingSwipe = false;\n\n if (this.cleanupListeners) {\n this.cleanupListeners();\n this.cleanupListeners = null;\n }\n }\n\n private initBottomSheetModalParams(): void {\n if (this.bottomSheetInitiated) return;\n this.bottomSheetInitiated = true;\n\n const config = this.config();\n const style = config?.style?.mobileConfig;\n\n this.downSwipeLimit = style?.downSwipeLimit && style.downSwipeLimit > 0 ? style.downSwipeLimit : bottomSheetConst.MODAL_DOWN_SWIPE_LIMIT;\n }\n\n private monitorInputType(): void {\n if (this.globalResizeCleanup) return;\n\n const handler = (event: PointerEvent) => {\n const isTouch = event.pointerType === 'touch';\n\n if (isTouch && !this.isTouchActive) {\n this.isTouchActive = true;\n this.startVerticalSwipeDetection();\n } else if (!isTouch && this.isTouchActive) {\n this.isTouchActive = false;\n this.stopVerticalSwipeDetection();\n }\n };\n\n window.addEventListener('pointerdown', handler);\n this.globalResizeCleanup = () => window.removeEventListener('pointerdown', handler);\n }\n\n //#endregion\n}\n","<div (click)=\"$event.stopPropagation()\" \n [id]=\"id() ?? ''\"\n [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\"\n [style.max-height]=\"config()?.style?.mobileConfig?.customHeight ?? ''\"\n [style.transform]=\"modalTransform()\"\n [style.transition]=\"isAnimated() && !isSwipingVertically() ? 'transform 300ms ease-in-out' : ''\" \n [ngClass]=\"{\n 'opened-bottom-sheet-modal': isAnimated()\n }\" \n #elementRef\n class=\"bottom-sheet-modal-style\">\n \n <div #verticalSwipeTarget \n class=\"touch-hitbox bottom-sheet-modal-top-bar\"\n (click)=\"isTrackingSwipe ? null : close.emit('cancel')\">\n <div class=\"swipe-line\"></div>\n </div>\n\n <div class=\"bottom-sheet-modal-inner-content-container\">\n <div class=\"bottom-sheet-modal-top-group\">\n @if (headerTemplate()) {\n <div class=\"bottom-sheet-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"bottom-sheet-modal-main-content-container\"\n [style.animationDuration]=\"isAnimated() ? animationDuration() + 'ms' : '0ms'\">\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"bottom-sheet-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n</div>","import { NgTemplateOutlet, NgClass } from '@angular/common';\nimport { Component, input, output, ViewChildren, QueryList, TemplateRef, computed } from '@angular/core';\nimport { ModalConfig } from '../../../classes/modal-config';\nimport { IModalView } from '../../../interfaces/imodal-view.interface';\nimport { ModalCloseMode } from '../../../types/modal.types';\nimport { ModalBanner } from '../../shared/ui/banner/modal-banner';\nimport { ModalBottomSheet } from '../bottom-sheet/modal-bottom-sheet';\nimport { ModalDefaultCloseButton } from '../../shared/ui/default-close-button/default-close-button';\n\n@Component({\n selector: 'app-modal-centered',\n imports: [NgTemplateOutlet, NgClass, ModalBottomSheet, ModalBanner, ModalDefaultCloseButton],\n templateUrl: './modal-centered.html',\n styleUrl: './modal-centered.scss'\n})\nexport class ModalCentered<D = unknown, R = unknown> implements IModalView<D, R> {\n public readonly headerTemplate = input.required<TemplateRef<void> | null>();\n public readonly footerTemplate = input.required<TemplateRef<void> | null>();\n\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n public readonly id = input.required<string | null>();\n public readonly isOpen = input.required<boolean>();\n public readonly isAnimated = input.required<boolean>();\n public readonly isBottomSheetModalActive = input.required<boolean>();\n public readonly animationDuration = input.required<number>();\n public readonly hasDefaultContentWrapperClass = input.required<boolean>();\n public readonly hasBanner = input.required<boolean>();\n public readonly close = output<ModalCloseMode | undefined>();\n public readonly onBackdropClick = output<MouseEvent>();\n\n @ViewChildren(ModalBottomSheet) public bottomSheet!: QueryList<ModalBottomSheet>;\n\n public modalClasses = computed(() => {\n return {\n 'centered-modal-content-wrapper': true,\n 'centered-modal-default-style': this.hasDefaultContentWrapperClass() || this.hasBanner(),\n\n 'centered-modal-animate-in': this.isAnimated() && this.isOpen(),\n 'centered-modal-animate-out': this.isAnimated() && !this.isOpen()\n };\n });\n}\n","@if(!isBottomSheetModalActive()) {\n<div class=\"modal-overlay\" [ngClass]=\"{'modal-backdrop': config()?.style?.hasBackdrop}\" [id]=\"id() ?? ''\"\n (click)=\"config()?.style?.hasBackdrop ? onBackdropClick.emit($event) : null\">\n <div class=\"modal-overlay-wrapper\">\n <div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\">\n <div class=\"centered-modal-inner-content-container\" [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\">\n\n <div class=\"centered-modal-top-group\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"centered-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"centered-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"centered-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>","import { NgTemplateOutlet, NgClass } from '@angular/common';\nimport { Component, QueryList, TemplateRef, ViewChildren, effect, input, output, signal, computed } from '@angular/core';\nimport { ModalConfig } from '../../../classes/modal-config';\nimport { IModalView } from '../../../interfaces/imodal-view.interface';\nimport { ModalCloseMode, ModalLayout } from '../../../types/modal.types';\nimport { ModalBanner } from '../../shared/ui/banner/modal-banner';\nimport { ModalBottomSheet } from '../bottom-sheet/modal-bottom-sheet';\nimport { ModalDefaultCloseButton } from '../../shared/ui/default-close-button/default-close-button';\n\n@Component({\n selector: 'app-modal-side',\n imports: [NgTemplateOutlet, ModalBottomSheet, NgClass, ModalBanner, ModalDefaultCloseButton],\n templateUrl: './modal-side.html',\n styleUrl: './modal-side.scss'\n})\nexport class ModalSide<D = unknown, R = unknown> implements IModalView<D, R> {\n public readonly layout = input.required<ModalLayout>();\n\n public readonly headerTemplate = input.required<TemplateRef<void> | null>();\n public readonly footerTemplate = input.required<TemplateRef<void> | null>();\n\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n public readonly id = input.required<string | null>();\n public readonly isOpen = input.required<boolean>();\n public readonly isAnimated = input.required<boolean>();\n public readonly isBottomSheetModalActive = input.required<boolean>();\n public readonly animationDuration = input.required<number>();\n public readonly hasDefaultContentWrapperClass = input.required<boolean>();\n public readonly hasBanner = input.required<boolean>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n\n @ViewChildren(ModalBottomSheet) public bottomSheet!: QueryList<ModalBottomSheet>;\n\n public modalClasses = computed(() => {\n const positionLeft = this.layout() === 'left';\n const positionRight = this.layout() === 'right';\n const shouldAnimate = this.isAnimated();\n\n const isRenderedOpen = this.renderOpenClass();\n\n return {\n 'side-modal-content-wrapper': true,\n 'side-modal-default-style': this.hasDefaultContentWrapperClass() || this.hasBanner(),\n 'with-footer': this.footerTemplate() !== null,\n left: positionLeft,\n right: positionRight,\n\n 'side-modal-animate-in': shouldAnimate ? isRenderedOpen : true,\n 'side-modal-animate-out': shouldAnimate ? !isRenderedOpen : false\n };\n });\n\n protected renderOpenClass = signal(false);\n\n constructor() {\n effect(() => {\n const isOpen = this.isOpen();\n\n if (isOpen) {\n this.renderOpenClass.set(false);\n\n setTimeout(() => {\n this.renderOpenClass.set(true);\n }, 50);\n } else {\n this.renderOpenClass.set(false);\n }\n });\n }\n}\n","@if(!isBottomSheetModalActive()) {\n<div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\" [id]=\"id() ?? ''\"\n [style.--anim-duration.ms]=\"animationDuration()\">\n <div class=\"side-modal-inner-content-container\"\n [class]=\"config() && config()?.style?.wrapperClasses ? config()?.style?.wrapperClasses : ''\"\n [style]=\"config() && config()?.style?.wrapperStyles ? config()?.style?.wrapperStyles : ''\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"side-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"side-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"side-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>","export const MODAL_DEFAULT_ANIM_DURATION = 175;\nexport const MODAL_DEFAULT_INTERNAL_ANIM_DURATION = 350;\n\nexport const MODAL_DEFAULT_ANIM_DURATION_MULTIPLIER_SMALL = 0.65;\nexport const MODAL_DEFAULT_ANIM_DURATION_MULTIPLIER_LARGE = 0.85;\n","import {\n Component,\n inject,\n ComponentRef,\n ViewChild,\n ElementRef,\n ViewChildren,\n QueryList,\n TemplateRef,\n ViewContainerRef,\n signal,\n effect,\n OnInit,\n AfterViewInit,\n computed\n} from '@angular/core';\nimport { Subject, Observable, fromEvent, filter, take, from, of } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ModalConfig } from '../classes/modal-config';\nimport { IModalComponent } from '../interfaces/imodal-component.interface';\nimport { ModalService } from '../services/modal.service';\nimport { ModalBackdrop } from './shared/ui/backdrop/modal-backdrop';\nimport { ModalCentered } from './views/centered/modal-centered';\nimport { ModalSide } from './views/side/modal-side';\nimport { ModalBottomSheet } from './views/bottom-sheet/modal-bottom-sheet';\nimport { BreakpointKey, ModalCloseMode, ModalLayout } from '../types/modal.types';\nimport { IModalCloseResult } from '../interfaces/imodal-close-result.interface';\nimport { ScrollLockService, uuidv4, WindowDimensionsService } from '@filip.mazev/blocks-core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ModalGlobalSettingsService } from '../services/modal-global-settings.service';\nimport { IModal } from '../interfaces/imodal.interface';\nimport * as animConst from '../constants/modal-animation.constants';\n\n@Component({\n selector: 'app-modal',\n imports: [NgTemplateOutlet, ModalCentered, ModalSide, ModalBackdrop],\n templateUrl: './modal-core.html',\n styleUrl: './modal-core.scss'\n})\nexport class ModalCore<D, R, C extends IModal<D, R> = IModal<D, R>> implements IModalComponent<D, R, C>, OnInit, AfterViewInit {\n private readonly modalService = inject(ModalService);\n private readonly globalSettings = inject(ModalGlobalSettingsService);\n private readonly scrollLockService = inject(ScrollLockService);\n private readonly windowDimensionsService = inject(WindowDimensionsService);\n\n public readonly animationDuration: number = animConst.MODAL_DEFAULT_ANIM_DURATION;\n\n public componentRef: ComponentRef<C> = {} as ComponentRef<C>;\n public config?: ModalConfig<D, R>;\n public closeFunction?: (data: IModalCloseResult<R | undefined>) => void;\n public backdropClickSubject = new Subject<MouseEvent>();\n public backdropClick: Observable<MouseEvent> = this.backdropClickSubject.asObservable();\n public isOpen = signal<boolean>(true);\n public effectiveLayout = signal<ModalLayout>('center');\n public isCentered = signal<boolean>(false);\n public isSide = signal<boolean>(false);\n public isAnimated = computed(() => this.config?.style.animate ?? this.globalSettings.animate());\n\n protected headerTemplate = signal<TemplateRef<void> | null>(null);\n protected footerTemplate = signal<TemplateRef<void> | null>(null);\n protected id = signal<string | null>(null);\n protected isBottomSheetModalActive = signal<boolean>(false);\n protected hasBanner: boolean = false;\n\n protected hasDefaultContentWrapperClass: boolean = false;\n\n protected windowDimensions = this.windowDimensionsService.dimensions;\n\n @ViewChild('modalContainer', { static: false }) protected modalContainer?: ElementRef;\n @ViewChild('contentTemplate') protected contentTemplate?: TemplateRef<HTMLElement>;\n\n @ViewChildren(ModalSide) private sideModalComponents?: QueryList<ModalSide>;\n @ViewChildren(ModalCentered) private centeredModalComponents?: QueryList<ModalCentered>;\n\n private isConfirmCloseModalOpen: boolean = false;\n private scrollLockId: string = uuidv4();\n\n private _sortedBreakpoints: Array<{ width: number; layout: ModalLayout }> = [];\n\n private _currentVcr: ViewContainerRef | null = null;\n\n constructor() {\n this.initKeyboardSubscription();\n\n effect(() => {\n const width = this.windowDimensions().width;\n this.handleLayout(width);\n });\n }\n\n public ngOnInit() {\n this.initParamsFromConfig();\n this.initBreakpointCache();\n\n this.scrollLockService.disableScroll(this.scrollLockId, {\n animationDuration: this.animationDuration,\n handleTouchInput: true,\n mobileOnlyTouchPrevention: true\n });\n }\n\n public ngAfterViewInit(): void {\n if (!this.componentRef) return;\n this.dynamicContainer?.insert(this.componentRef.hostView);\n\n const width = this.windowDimensionsService.dimensions().width;\n this.handleLayout(width);\n }\n\n public ngOnDestroy(): void {\n this.componentRef?.destroy();\n this.dynamicContainer?.clear();\n this.scrollLockService.enableScroll(this.scrollLockId);\n }\n\n //#region Public Template Methods\n public setHeaderTemplate(template: TemplateRef<void>) {\n this.headerTemplate.set(template);\n }\n\n //#endregion\n public setFooterTemplate(template: TemplateRef<void>) {\n this.footerTemplate.set(template);\n }\n\n //#region Closing Methods\n public close(state: ModalCloseMode = 'cancel', result: R | undefined = undefined, fromInsideInteraction: boolean = false, forceClose: boolean = false): void {\n if (forceClose) {\n this.handleClose(state, result);\n return;\n }\n\n if (this.config?.disableClose === true && fromInsideInteraction) {\n return;\n }\n\n const shouldCheckCloseGuard = this.config?.closeGuardOnlyOnCancel !== true || state !== 'confirm';\n\n if (shouldCheckCloseGuard && this.config?.closeGuard) {\n const guardResult = this.config.closeGuard.canClose(this.modalService);\n\n const canClose$ = guardResult instanceof Observable ? guardResult : guardResult instanceof Promise ? from(guardResult) : of(guardResult);\n\n if (this.isBottomSheetModalActive()) {\n this.resetBottomSheetModalLayout();\n }\n\n canClose$.pipe(take(1)).subscribe((canClose) => {\n if (canClose) {\n this.handleClose(state, result);\n }\n });\n return;\n }\n\n this.handleClose(state, result);\n }\n\n //#endregion\n protected onBackdropClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.isOpen()) {\n return;\n }\n\n this.backdropClickSubject.next(event);\n\n if (this.config?.style?.hasBackdrop && this.config?.disableCloseOnBackdropClick !== true) {\n this.close('cancel', undefined, true);\n }\n }\n\n @ViewChild('dynamicContainer', { read: ViewContainerRef })\n protected set dynamicContainer(vcr: ViewContainerRef | undefined) {\n if (vcr && this.componentRef) {\n this._currentVcr = vcr;\n vcr.insert(this.componentRef.hostView);\n }\n }\n\n //#region Subscription Methods\n\n private initKeyboardSubscription(): void {\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.key === 'Escape'),\n takeUntilDestroyed()\n )\n .subscribe(() => {\n if (!this.isConfirmCloseModalOpen) {\n this.close('cancel', undefined, true);\n }\n });\n }\n\n //#endregion\n\n //#region Initialization Methods\n\n private initParamsFromConfig() {\n this.id.set(this.config?.id ?? this.scrollLockId);\n\n this.hasBanner =\n this.config !== undefined &&\n ((this.config.bannerText !== undefined && this.config.bannerText.length > 0) ||\n (this.config.disableClose !== true && this.config.style.showCloseButton !== false && this.headerTemplate() === null));\n\n this.hasDefaultContentWrapperClass = this.config?.style.contentWrapper !== false;\n }\n\n private initBreakpointCache(): void {\n const definedBreakpoints = this.config?.style?.breakpoints;\n\n if (definedBreakpoints && Object.keys(definedBreakpoints).length > 0) {\n const serviceBreakpoints = this.windowDimensionsService.breakpoints;\n\n this._sortedBreakpoints = (Object.keys(definedBreakpoints) as BreakpointKey[])\n .map((key) => ({\n width: serviceBreakpoints[key],\n layout: definedBreakpoints[key] ?? this.config?.style.layout ?? 'center'\n }))\n .sort((a, b) => a.width - b.width);\n }\n }\n\n private async handleClose(state: ModalCloseMode, result: R | undefined): Promise<void> {\n this.isOpen.set(false);\n this.setBottomSheetModalFinishedState(true);\n\n const returnResult = {\n data: result,\n state: state\n } as IModalCloseResult<R | undefined>;\n\n if (this.closeFunction) {\n this.closeFunction(returnResult);\n }\n }\n\n //#endregion\n\n //#region Helper Methods\n\n private handleLayout(width: number): void {\n if (!this.config) return;\n\n let resolvedLayout: ModalLayout = this.config.style.layout;\n\n for (const bp of this._sortedBreakpoints) {\n if (width <= bp.width) {\n resolvedLayout = bp.layout;\n break;\n }\n }\n\n const prevIsSide = this.isSide();\n const nextIsSide = resolvedLayout === 'left' || resolvedLayout === 'right';\n const layoutTypeChanged = prevIsSide !== nextIsSide;\n\n if (layoutTypeChanged && this._currentVcr && this.componentRef) {\n const index = this._currentVcr.indexOf(this.componentRef.hostView);\n if (index !== -1) {\n this._currentVcr.detach(index);\n }\n }\n\n this.effectiveLayout.set(resolvedLayout);\n this.isSide.set(nextIsSide);\n this.isCentered.set(resolvedLayout === 'center' || resolvedLayout === 'bottom-sheet');\n\n const shouldBeBottomSheet = resolvedLayout === 'bottom-sheet';\n const currentSwipeState = this.isBottomSheetModalActive();\n\n if (shouldBeBottomSheet && !currentSwipeState) {\n this.isBottomSheetModalActive.set(true);\n } else if (!shouldBeBottomSheet && currentSwipeState) {\n this.isBottomSheetModalActive.set(false);\n }\n }\n\n private getBottomSheetModal(): ModalBottomSheet | undefined {\n return this.sideModalComponents?.first?.bottomSheet?.first ?? this.centeredModalComponents?.first?.bottomSheet?.first;\n }\n\n private resetBottomSheetModalLayout(): void {\n const bottomSheet = this.getBottomSheetModal();\n if (bottomSheet) {\n bottomSheet.currentTranslateY.set(0);\n }\n }\n\n private setBottomSheetModalFinishedState(isFinished: boolean): void {\n const bottomSheet = this.getBottomSheetModal();\n if (bottomSheet) {\n bottomSheet.isSwipingVerticallyFinished.set(isFinished);\n }\n this.isBottomSheetModalActive.set(false);\n }\n\n //#endregion\n}\n","@if (config?.style?.hasBackdrop && (isSide() || isBottomSheetModalActive())) {\n<app-modal-backdrop [isAnimated]=\"isAnimated()\" [isOpen]=\"isOpen()\" (click)=\"onBackdropClick($event)\">\n</app-modal-backdrop>\n}\n\n<ng-container #modalContainer>\n @switch (true) {\n @case (isSide()) {\n <app-modal-side [layout]=\"effectiveLayout()\" [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\"\n [config]=\"config\" [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\"\n [isBottomSheetModalActive]=\"isBottomSheetModalActive()\" [animationDuration]=\"animationDuration\"\n [hasDefaultContentWrapperClass]=\"hasDefaultContentWrapperClass\" [hasBanner]=\"hasBanner\" (close)=\"close($event)\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n </app-modal-side>\n }\n @case (isCentered()) {\n <app-modal-centered [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\"\n [isBottomSheetModalActive]=\"isBottomSheetModalActive()\" [animationDuration]=\"animationDuration\"\n [hasDefaultContentWrapperClass]=\"hasDefaultContentWrapperClass\" [hasBanner]=\"hasBanner\" (close)=\"close($event)\"\n (onBackdropClick)=\"onBackdropClick($event)\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n </app-modal-centered>\n }\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-container #dynamicContainer></ng-container>\n</ng-template>","import { inject, Injectable } from '@angular/core';\nimport { ModalRef } from './modal-ref';\nimport { MODAL_DATA } from '../tokens/modal-data.token';\nimport { IModal } from '../interfaces/imodal.interface';\n\n@Injectable()\nexport class Modal<D, R> implements IModal<D, R> {\n /**\n * Data injected into the modal component.\n */\n public data = inject<D>(MODAL_DATA);\n\n /**\n * Reference to the ModalRef instance associated with this modal.\n */\n public modal!: ModalRef<D, R>;\n\n /**\n * Called when the modal is initialized.\n */\n public onModalInit(): void {}\n\n /**\n * Closes the modal (with \"cancel\" reason) with an optional result.\n * @param result The result to be passed when closing the modal.\n */\n public close(result?: R) {\n this.modal?.close('cancel', result);\n }\n}\n","export enum ModalWarnings {\n //#region Directive usage\n FOOTER_DIRECTIVE_OUTSIDE_MODAL = '[ModalFooter] Directive used outside of a ModalComponent.',\n HEADER_DIRECTIVE_OUTSIDE_MODAL = '[ModalHeader] Directive used outside of a ModalComponent.'\n //#endregion\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { ModalCore } from '../components/modal-core';\nimport { ModalWarnings } from '../enums/modal-warnings.enum';\n\n@Directive({\n selector: '[appModalHeader]',\n standalone: true\n})\nexport class ModalHeaderDirective {\n private readonly templateRef = inject(TemplateRef);\n private readonly modal = inject(ModalCore, { optional: true });\n\n constructor() {\n if (this.modal) {\n this.modal.setHeaderTemplate(this.templateRef);\n } else {\n console.warn(ModalWarnings.HEADER_DIRECTIVE_OUTSIDE_MODAL);\n }\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { ModalCore } from '../components/modal-core';\nimport { ModalWarnings } from '../enums/modal-warnings.enum';\n\n@Directive({\n selector: '[appModalFooter]',\n standalone: true\n})\nexport class ModalFooterDirective {\n private readonly templateRef = inject(TemplateRef);\n private readonly modal = inject(ModalCore, { optional: true });\n\n constructor() {\n if (this.modal) {\n this.modal.setFooterTemplate(this.templateRef);\n } else {\n console.warn(ModalWarnings.FOOTER_DIRECTIVE_OUTSIDE_MODAL);\n }\n }\n}\n","import { Observable } from 'rxjs';\nimport { ModalService } from '../services/modal.service';\n\n/**\n * Abstract class representing a modal close guard.\n */\nexport abstract class ModalCloseGuard {\n /**\n * Determines whether the modal can be closed.\n */\n public abstract canClose(modalService: ModalService): Observable<boolean> | Promise<boolean> | boolean;\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { IModal } from '../../interfaces/imodal.interface';\nimport { ModalCloseGuard } from '../modal-close-guard';\nimport { IModalConfig } from '../../interfaces/imodal-config.interface';\nimport { ModalService } from '../../services/modal.service';\nimport { map, Observable } from 'rxjs';\nimport { IModalCloseResult } from '@modal/public-api';\n\n/**\n * Modal Close Guard that opens a confirmation modal before allowing the original modal to close.\n * @param component The component to use for the confirmation modal.\n * @param config The configuration for the confirmation modal.\n */\nexport class ModalConfirmCloseGuard<D, R, C extends IModal<D, R> = IModal<D, R>> extends ModalCloseGuard {\n constructor(\n public component: ComponentType<C>,\n public config: IModalConfig<D, R>\n ) {\n super();\n }\n\n public override canClose(modalService: ModalService): Observable<boolean> {\n const ref = modalService.open<D, R, C>(this.component, this.config);\n\n return ref.afterClosed().pipe(map((result: IModalCloseResult<R | undefined>) => result.state === 'confirm'));\n }\n}\n","/*\n * Public API Surface of modal\n */\n\nexport * from './lib/components/modal-core';\nexport * from './lib/components/views/bottom-sheet/modal-bottom-sheet';\nexport * from './lib/components/views/side/modal-side';\nexport * from './lib/components/views/centered/modal-centered';\nexport * from './lib/components/shared/ui/backdrop/modal-backdrop';\nexport * from './lib/components/shared/ui/banner/modal-banner';\n\nexport * from './lib/services/modal-global-settings.service';\nexport * from './lib/services/modal.service';\n\nexport * from './lib/classes/modal';\nexport * from './lib/classes/modal-config';\nexport * from './lib/classes/modal-ref';\nexport * from './lib/classes/modal-style.config';\n\nexport * from './lib/interfaces/imodal-close-result.interface';\nexport * from './lib/interfaces/imodal-component.interface';\nexport * from './lib/interfaces/imodal-config.interface';\nexport * from './lib/interfaces/imodal-ref.interface';\nexport * from './lib/interfaces/imodal-service.interface';\nexport * from './lib/interfaces/imodal-style-config.interface';\nexport * from './lib/interfaces/imodal-view.interface';\nexport * from './lib/interfaces/ibottom-sheet-modal-config.interface';\n\nexport * from './lib/constants/modal-animation.constants';\nexport * from './lib/constants/modal-bottom-sheet.constants';\n\nexport * from './lib/enums/modal-warnings.enum';\nexport * from './lib/enums/modal-state.enum';\n\nexport * from './lib/directives/modal-header.directive';\nexport * from './lib/directives/modal-footer.directive';\n\nexport * from './lib/tokens/modal-data.token';\n\nexport * from './lib/types/modal.types';\n\nexport * from './lib/classes/modal-close-guard';\nexport * from './lib/classes/guards/modal-confirm-close-guard';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["bottomSheetConst.MODAL_SWIPE_VELOCITY_THRESHOLD","bottomSheetConst.MODAL_DOWN_SWIPE_LIMIT","animConst.MODAL_DEFAULT_ANIM_DURATION"],"mappings":"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"}
1
+ {"version":3,"file":"filip.mazev-modal.mjs","sources":["../../../projects/modal/src/lib/classes/modal-style.config.ts","../../../projects/modal/src/lib/classes/modal-config.ts","../../../projects/modal/src/lib/enums/modal-state.enum.ts","../../../projects/modal/src/lib/classes/modal-ref.ts","../../../projects/modal/src/lib/tokens/modal-data.token.ts","../../../projects/modal/src/lib/services/modal-global-settings.service.ts","../../../projects/modal/src/lib/services/modal.service.ts","../../../projects/modal/src/lib/components/shared/ui/backdrop/modal-backdrop.ts","../../../projects/modal/src/lib/components/shared/ui/backdrop/modal-backdrop.html","../../../projects/modal/src/lib/components/shared/ui/default-close-button/default-close-button.ts","../../../projects/modal/src/lib/components/shared/ui/default-close-button/default-close-button.html","../../../projects/modal/src/lib/components/shared/ui/banner/modal-banner.ts","../../../projects/modal/src/lib/components/shared/ui/banner/modal-banner.html","../../../projects/modal/src/lib/constants/modal-bottom-sheet.constants.ts","../../../projects/modal/src/lib/components/views/bottom-sheet/modal-bottom-sheet.ts","../../../projects/modal/src/lib/components/views/bottom-sheet/modal-bottom-sheet.html","../../../projects/modal/src/lib/components/views/centered/modal-centered.ts","../../../projects/modal/src/lib/components/views/centered/modal-centered.html","../../../projects/modal/src/lib/components/views/side/modal-side.ts","../../../projects/modal/src/lib/components/views/side/modal-side.html","../../../projects/modal/src/lib/constants/modal-animation.constants.ts","../../../projects/modal/src/lib/components/modal-core.ts","../../../projects/modal/src/lib/components/modal-core.html","../../../projects/modal/src/lib/classes/modal.ts","../../../projects/modal/src/lib/enums/modal-warnings.enum.ts","../../../projects/modal/src/lib/directives/modal-header.directive.ts","../../../projects/modal/src/lib/directives/modal-footer.directive.ts","../../../projects/modal/src/lib/classes/modal-close-guard.ts","../../../projects/modal/src/lib/classes/guards/modal-confirm-close-guard.ts","../../../projects/modal/src/public-api.ts","../../../projects/modal/src/filip.mazev-modal.ts"],"sourcesContent":["import { IModalStyleConfig } from '../interfaces/imodal-style-config.interface';\nimport { IBottomSheetModalConfig } from '../interfaces/ibottom-sheet-modal-config.interface';\nimport { BreakpointKey, ModalLayout } from '../types/modal.types';\n\nexport class ModalStyleConfig implements IModalStyleConfig {\n public layout: ModalLayout;\n public breakpoints?: Partial<Record<BreakpointKey, ModalLayout>>;\n\n public animate: boolean;\n public hasBackdrop: boolean;\n public closeDelay?: number;\n public showCloseButton?: boolean;\n\n public mobileConfig: IBottomSheetModalConfig;\n\n public contentWrapper: boolean;\n\n public wrapperClasses: string;\n public wrapperStyles: string;\n\n public overrideFullHeight: boolean;\n\n constructor(config?: IModalStyleConfig) {\n this.layout = config?.layout ?? 'center';\n this.breakpoints = config?.breakpoints;\n\n this.animate = config?.animate ?? true;\n this.hasBackdrop = config?.hasBackdrop ?? true;\n this.closeDelay = config?.closeDelay;\n this.showCloseButton = config?.showCloseButton ?? true;\n\n this.mobileConfig = config?.mobileConfig ?? {};\n\n this.contentWrapper = config?.contentWrapper ?? true;\n\n this.wrapperClasses = config?.wrapperClasses ?? '';\n this.wrapperStyles = config?.wrapperStyles ?? '';\n\n this.overrideFullHeight = config?.overrideFullHeight ?? false;\n }\n}\n","import { IModalConfig } from '../interfaces/imodal-config.interface';\nimport { ModalStyleConfig } from './modal-style.config';\nimport { ModalCloseGuard } from './modal-close-guard';\nimport { IModalCloseResult } from '@modal/public-api';\nimport { Observable } from 'rxjs';\n\nexport class ModalConfig<D, R> {\n public open: boolean;\n\n public afterClose?: () => Observable<IModalCloseResult<R | undefined>>;\n\n public closeGuard?: ModalCloseGuard;\n public closeGuardOnlyOnCancel?: boolean;\n\n public disableClose: boolean;\n public disableCloseOnBackdropClick: boolean;\n public disableCloseOnNavigation: boolean;\n\n public data: D | null;\n\n public style: ModalStyleConfig;\n\n public bannerText: string;\n\n public contentClasses: string;\n public contentStyles: string;\n\n public disableConsoleWarnings: boolean;\n public disableConsoleInfo: boolean;\n\n public id?: string;\n\n constructor(config?: IModalConfig<D, R>) {\n this.open = config?.open ?? true;\n\n this.afterClose = config?.afterClose;\n\n this.closeGuard = config?.closeGuard;\n this.closeGuardOnlyOnCancel = config?.closeGuardOnlyOnCancel ?? true;\n\n this.disableClose = config?.disableClose ?? false;\n this.disableCloseOnBackdropClick = config?.disableCloseOnBackdropClick ?? false;\n this.disableCloseOnNavigation = config?.disableCloseOnNavigation ?? false;\n\n this.data = config?.data ?? null;\n this.style = new ModalStyleConfig(config?.style);\n\n this.bannerText = config?.bannerText ?? '';\n\n this.contentClasses = config?.contentClasses ?? '';\n this.contentStyles = config?.contentStyles ?? '';\n\n this.disableConsoleWarnings = config?.disableConsoleWarnings ?? false;\n this.disableConsoleInfo = config?.disableConsoleInfo ?? false;\n\n this.id = config?.id;\n }\n}\n","export enum ModalState {\n OPEN = 'open',\n OPENING = 'opening',\n CLOSED = 'closed',\n CLOSING = 'closing'\n}\n","import { ComponentRef, Type } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { ModalConfig } from './modal-config';\nimport { ModalCore } from '../components/modal-core';\nimport { ModalState } from '../enums/modal-state.enum';\nimport { IModalCloseResult } from '../interfaces/imodal-close-result.interface';\nimport { IModalRef } from '../interfaces/imodal-ref.interface';\nimport { ModalService } from '../services/modal.service';\nimport { ModalCloseMode } from '../types/modal.types';\nimport { IModal } from '../interfaces/imodal.interface';\nimport { ComponentType } from '@angular/cdk/portal';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class ModalRef<D = unknown, R = any, C extends IModal<D, R> = IModal<D, R>> implements IModalRef<D, R, C> {\n //#region Modal Container\n\n private _modalContainer: Type<ModalCore<D, R, C>> = {} as Type<ModalCore<D, R, C>>;\n\n private _modalContainerRef: ComponentRef<ModalCore<D, R, C>> = {} as ComponentRef<ModalCore<D, R, C>>;\n private _modalContainerElement: HTMLElement = {} as HTMLElement;\n private _parentElement: HTMLElement | undefined = undefined;\n //#region Component\n private _componentRef: ComponentRef<C> = {} as ComponentRef<C>;\n //#region Self\n private _modalState: ModalState = ModalState.CLOSED;\n //#endregion\n private modalState = new BehaviorSubject<ModalState>(this.getStatus());\n private _modalConfig?: ModalConfig<D, R> = undefined;\n //#region Observables\n private backdropClickSubject: Subject<MouseEvent> = new Subject<MouseEvent>();\n //#endregion\n private afterCloseSubject: Subject<IModalCloseResult<R | undefined>> = new Subject<IModalCloseResult<R | undefined>>();\n //#endregion\n constructor(\n componentRef: ComponentRef<C>,\n public componentType: ComponentType<C>,\n modalContainerRef: ComponentRef<ModalCore<D, R, C>>,\n private modalService: ModalService,\n modalConfig?: ModalConfig<D, R>\n ) {\n this.modalConfig = modalConfig;\n this.modalContainerRef = modalContainerRef;\n this.modalContainerElement = modalContainerRef.location.nativeElement;\n\n this.componentRef = componentRef;\n }\n\n public get modalContainer(): Type<ModalCore<D, R, C>> {\n return this._modalContainer;\n }\n\n private set modalContainer(modalContainer: Type<ModalCore<D, R, C>>) {\n this._modalContainer = modalContainer;\n }\n\n public get modalContainerRef(): ComponentRef<ModalCore<D, R, C>> {\n return this._modalContainerRef;\n }\n\n private set modalContainerRef(modalContainerRef: ComponentRef<ModalCore<D, R, C>>) {\n this._modalContainerRef = modalContainerRef;\n }\n\n public get modalContainerElement(): HTMLElement {\n return this._modalContainerElement;\n }\n\n private set modalContainerElement(modalContainerElement: HTMLElement) {\n this._modalContainerElement = modalContainerElement;\n }\n\n public get parentElement(): HTMLElement | undefined {\n return this._parentElement;\n }\n\n private set parentElement(parentElement: HTMLElement | undefined) {\n this._parentElement = parentElement;\n }\n\n //#endregion\n\n public get componentRef(): ComponentRef<C> {\n return this._componentRef;\n }\n\n private set componentRef(componentRef: ComponentRef<C>) {\n this._componentRef = componentRef;\n }\n\n public get modalConfig(): ModalConfig<D, R> | undefined {\n return this._modalConfig;\n }\n\n private set modalConfig(modalConfig: ModalConfig<D, R> | undefined) {\n this._modalConfig = modalConfig;\n }\n\n public backdropClick(): Observable<MouseEvent> {\n return this.backdropClickSubject.asObservable();\n }\n\n public modalState$(): Observable<ModalState> {\n return this.modalState.asObservable();\n }\n\n /**\n * Observable that emits when the modal has been closed.\n * @returns An Observable that emits an IModalCloseResult<R | undefined> when the modal is closed.\n */\n public afterClosed(): Observable<IModalCloseResult<R | undefined>> {\n return this.afterCloseSubject.asObservable();\n }\n\n //#region Public Methods\n\n public async open(): Promise<void> {\n this._modalState = ModalState.OPENING;\n this.modalState.next(ModalState.OPENING);\n\n this.modalContainerRef.instance.componentRef = this._componentRef;\n\n const config = new ModalConfig(this.modalConfig);\n\n this.modalContainerRef.instance.config = config;\n\n this.modalContainerRef.instance.closeFunction = this.handleClose.bind(this);\n\n this.parentElement?.appendChild(this.modalContainerElement);\n\n this.modalContainerRef.instance.backdropClick.subscribe((event) => {\n this.backdropClicked(event);\n });\n\n this._modalState = ModalState.OPEN;\n this.modalState.next(ModalState.OPEN);\n }\n\n public close(state: ModalCloseMode = 'cancel', result: R | undefined = undefined, forceClose: boolean = false): void {\n this.modalContainerRef.instance.close(state, result, false, forceClose);\n }\n\n private getStatus(): ModalState {\n return this._modalState;\n }\n\n private backdropClicked(event: MouseEvent) {\n this.backdropClickSubject.next(event);\n }\n\n private afterClose(result: IModalCloseResult<R | undefined>) {\n this.afterCloseSubject.next(result);\n }\n\n //#endregion\n\n //#region Private Methods\n\n private handleClose(result: IModalCloseResult<R | undefined>): void {\n this._modalState = ModalState.CLOSING;\n this.modalState.next(ModalState.CLOSING);\n\n setTimeout(() => {\n if (this.modalConfig?.afterClose) {\n this.modalConfig.afterClose();\n }\n\n this.modalContainerRef.destroy();\n\n this._modalState = ModalState.CLOSED;\n this.modalState.next(ModalState.CLOSED);\n\n this.afterClose(result);\n\n this.modalService?.unregister(this);\n }, this.modalContainerRef.instance.animationDuration);\n }\n //#endregion\n}\n","import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const MODAL_DATA: InjectionToken<any> = new InjectionToken<any>('MODAL_DATA');\n","import { Injectable, signal } from '@angular/core';\nimport { ModalLayout } from '../types/modal.types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalGlobalSettingsService {\n public readonly layout = signal<ModalLayout>('center');\n public readonly animate = signal<boolean>(true);\n public readonly hasBackdrop = signal<boolean>(true);\n public readonly showCloseButton = signal<boolean>(true);\n public readonly contentWrapper = signal<boolean>(true);\n public readonly overrideFullHeight = signal<boolean>(false);\n \n public readonly disableClose = signal<boolean>(false);\n public readonly disableCloseOnBackdropClick = signal<boolean>(false);\n public readonly disableCloseOnNavigation = signal<boolean>(false);\n public readonly closeGuardOnlyOnCancel = signal<boolean>(true);\n \n public readonly disableConsoleWarnings = signal<boolean>(false);\n public readonly disableConsoleInfo = signal<boolean>(false);\n\n /**\n * Updates the global modal settings with the provided values. Only the specified settings will be updated, while others will remain unchanged.\n * @param settings An object containing the settings to be updated. Each property is optional, and only those provided will be updated.\n * Example usage:\n * this.modalGlobalSettingsService.update({\n * animate: false,\n * hasBackdrop: true,\n * disableCloseOnBackdropClick: true\n * });\n * In this example, the global settings for 'animate', 'hasBackdrop', and 'disableCloseOnBackdropClick' will be updated, while all other settings will retain their current values.\n */\n public update(settings: Partial<{\n layout: ModalLayout;\n animate: boolean;\n hasBackdrop: boolean;\n showCloseButton: boolean;\n contentWrapper: boolean;\n overrideFullHeight: boolean;\n disableCloseOnBackdropClick: boolean;\n disableCloseOnNavigation: boolean;\n closeGuardOnlyOnCancel: boolean;\n disableConsoleWarnings: boolean;\n disableConsoleInfo: boolean;\n }>) {\n if (settings.animate !== undefined) this.animate.set(settings.animate);\n if (settings.hasBackdrop !== undefined) this.hasBackdrop.set(settings.hasBackdrop);\n if (settings.disableCloseOnBackdropClick !== undefined) this.disableCloseOnBackdropClick.set(settings.disableCloseOnBackdropClick);\n }\n}","import { Injectable, inject, Injector, ApplicationRef, EnvironmentInjector, createComponent, RendererFactory2, Renderer2, Type } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { BehaviorSubject, filter, skip } from 'rxjs';\nimport { ModalConfig } from '../classes/modal-config';\nimport { ModalRef } from '../classes/modal-ref';\nimport { ModalCore } from '../components/modal-core';\nimport { IModalConfig } from '../interfaces/imodal-config.interface';\nimport { IModalService } from '../interfaces/imodal-service.interface';\nimport { MODAL_DATA } from '../tokens/modal-data.token';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IModal } from '../interfaces/imodal.interface';\nimport { ModalGlobalSettingsService } from './modal-global-settings.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService implements IModalService {\n private readonly router = inject(Router);\n private readonly injector = inject(Injector);\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly rendererFactory = inject(RendererFactory2);\n private readonly document = inject(DOCUMENT);\n\n private readonly renderer: Renderer2;\n\n private readonly globalSettings = inject(ModalGlobalSettingsService);\n\n //#region Properties\n\n private modals: Set<ModalRef> = new Set();\n private modalsSubject = new BehaviorSubject<Set<ModalRef>>(this.modals);\n\n //#endregion\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n this.createSubscriptions();\n }\n\n //#region Subscription Methods\n\n private createSubscriptions(): void {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n skip(1),\n takeUntilDestroyed()\n )\n .subscribe(() => {\n if (this.modalsCount() > 0) {\n this.closeAll(true);\n }\n });\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * Opens a modal with the specified component and configuration.\n * @param component The component to be displayed in the modal.\n * @param config Optional configuration for the modal.\n * @returns A ModalRef instance representing the opened modal.\n */\n public open<D, R, C extends IModal<D, R> = IModal<D, R>>(component: ComponentType<C>, config?: IModalConfig<D, R>): ModalRef<D, R, C> {\n const dataInjector = Injector.create({\n providers: [{ provide: MODAL_DATA, useValue: config?.data }],\n parent: this.injector\n });\n\n const wrapperRef = createComponent(ModalCore<D, R, C>, {\n environmentInjector: this.environmentInjector,\n elementInjector: dataInjector\n });\n\n const contentInjector = Injector.create({\n providers: [{ provide: ModalCore, useValue: wrapperRef.instance }],\n parent: wrapperRef.injector\n });\n\n const contentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: contentInjector\n });\n\n const resolvedConfig = this.resolveConfig(config);\n\n wrapperRef.instance.componentRef = contentRef;\n wrapperRef.instance.config = new ModalConfig(resolvedConfig);\n\n this.appRef.attachView(wrapperRef.hostView);\n this.document.body.appendChild(wrapperRef.location.nativeElement);\n\n const modal = new ModalRef<D, R, C>(contentRef, component, wrapperRef, this, new ModalConfig(resolvedConfig));\n\n if (this.isIModal<D, R>(contentRef.instance)) {\n contentRef.instance.modal = modal;\n contentRef.instance.onModalInit();\n }\n\n wrapperRef.onDestroy(() => {\n this.appRef.detachView(wrapperRef.hostView);\n wrapperRef.location.nativeElement.remove();\n });\n\n const modalElement = modal.componentRef.location.nativeElement;\n this.renderer.setStyle(modalElement, 'height', '97%');\n this.renderer.setStyle(modalElement, 'width', '100%');\n this.renderer.setStyle(modalElement, 'display', 'flex');\n this.renderer.setStyle(modalElement, 'flex-grow', '1');\n\n this.modals.add(modal);\n this.modalsSubject.next(this.modals);\n\n modal.open();\n\n return modal;\n }\n\n /**\n * Closes the specified modal.\n * @param modal The ModalRef instance representing the modal to be closed.\n */\n public close<D, R, C extends IModal<D, R> = IModal<D, R>>(modal: ModalRef<D, R, C>): void {\n modal.close();\n }\n\n /**\n * Unregisters the specified modal from the service.\n * @param modal The ModalRef instance representing the modal to be unregistered.\n */\n public unregister<D, R, C extends IModal<D, R> = IModal<D, R>>(modal: ModalRef<D, R, C>): void {\n this.modals.delete(modal);\n this.modalsSubject.next(this.modals);\n }\n\n /**\n * Closes all open modals.\n * @param onNavigate Indicates if the closeAll is triggered by navigation event.\n */\n public closeAll(onNavigate: boolean = false): void {\n this.modals.forEach((modal) => {\n if (modal.modalConfig?.disableCloseOnNavigation !== true || !onNavigate) {\n modal.close('cancel', undefined, true);\n }\n });\n }\n\n /**\n * Finds if a modal with the specified component type is currently open.\n * @param componentType The component type to search for.\n * @returns True if a modal with the specified component type is open, false otherwise.\n */\n public find<D, R>(componentType: Type<IModal<D, R>>): boolean {\n for (const modal of this.modals) {\n if (modal.componentRef.componentType === componentType) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the count of currently open modals.\n * @returns The number of open modals.\n */\n public modalsCount(): number {\n return this.modals.size;\n }\n\n //#endregion\n\n //#region Helper Methods\n\n private isIModal<D, R>(component: unknown): component is IModal<D, R> {\n return typeof component === 'object' && component !== null && 'onModalInit' in component && typeof (component as IModal<D, R>).onModalInit === 'function';\n }\n\n private resolveConfig<D, R>(config: IModalConfig<D, R> | undefined): IModalConfig<D, R> {\n const resolvedStyle = {\n layout: config?.style?.layout ?? this.globalSettings.layout(),\n animate: config?.style?.animate ?? this.globalSettings.animate(),\n hasBackdrop: config?.style?.hasBackdrop ?? this.globalSettings.hasBackdrop(),\n showCloseButton: config?.style?.showCloseButton ?? this.globalSettings.showCloseButton(),\n contentWrapper: config?.style?.contentWrapper ?? this.globalSettings.contentWrapper(),\n overrideFullHeight: config?.style?.overrideFullHeight ?? this.globalSettings.overrideFullHeight(),\n breakpoints: config?.style?.breakpoints,\n mobileConfig: config?.style?.mobileConfig,\n wrapperClasses: config?.style?.wrapperClasses,\n wrapperStyles: config?.style?.wrapperStyles,\n closeDelay: config?.style?.closeDelay,\n };\n\n return {\n ...config,\n disableClose: config?.disableClose ?? this.globalSettings.disableClose(),\n disableCloseOnBackdropClick: config?.disableCloseOnBackdropClick ?? this.globalSettings.disableCloseOnBackdropClick(),\n disableCloseOnNavigation: config?.disableCloseOnNavigation ?? this.globalSettings.disableCloseOnNavigation(),\n closeGuardOnlyOnCancel: config?.closeGuardOnlyOnCancel ?? this.globalSettings.closeGuardOnlyOnCancel(),\n disableConsoleWarnings: config?.disableConsoleWarnings ?? this.globalSettings.disableConsoleWarnings(),\n disableConsoleInfo: config?.disableConsoleInfo ?? this.globalSettings.disableConsoleInfo(),\n style: resolvedStyle,\n };\n }\n\n //#endregion\n}\n","import { Component, input, output } from '@angular/core';\n\n@Component({\n selector: 'app-modal-backdrop',\n imports: [],\n templateUrl: './modal-backdrop.html',\n styleUrls: ['./modal-backdrop.scss']\n})\nexport class ModalBackdrop {\n public readonly isAnimated = input(false);\n public readonly isOpen = input(false);\n\n public readonly click = output<MouseEvent>();\n}\n","<div class=\"modal-backdrop\" [class.backdrop-fade-in]=\"isAnimated() && isOpen()\"\n [class.backdrop-fade-out]=\"isAnimated() && !isOpen()\" (click)=\"click.emit($event)\">\n</div>","import { Component, input, output } from '@angular/core';\nimport { ModalConfig, ModalCloseMode } from '../../../../../public-api';\n\n@Component({\n selector: 'app-modal-default-close-button',\n imports: [],\n templateUrl: './default-close-button.html',\n styleUrl: './default-close-button.scss'\n})\nexport class ModalDefaultCloseButton<D = unknown, R = unknown> {\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n}\n"," @if (config()?.disableClose !== true && config()?.style?.showCloseButton !== false) {\n <svg (click)=\"close.emit('cancel')\" aria-label=\"Close\" class=\"default-close-button\" viewBox=\"0 0 24 24\"\n fill=\"#ffffff\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.4 24L0 21.6L9.6 12L0 2.4L2.4 0L12 9.6L21.6 0L24 2.4L14.4 12L24 21.6L21.6 24L12 14.4L2.4 24Z\"\n fill=\"#ffffff\" />\n </svg>\n }","import { Component, input, output } from '@angular/core';\nimport { ModalConfig } from '../../../../classes/modal-config';\nimport { ModalCloseMode } from '../../../../types/modal.types';\nimport { ModalDefaultCloseButton } from '../default-close-button/default-close-button';\n\n@Component({\n selector: 'app-modal-banner',\n imports: [ModalDefaultCloseButton],\n templateUrl: './modal-banner.html',\n styleUrl: './modal-banner.scss'\n})\nexport class ModalBanner<D = unknown, R = unknown> {\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n}\n","<div class=\"modal-top-banner-container\">\n <div class=\"modal-top-banner-title-container\">\n @if (config() && config()?.bannerText && (config() && config()!.bannerText.length > 0)) {\n {{ config()?.bannerText }}\n }\n </div>\n\n <app-modal-default-close-button [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n</div>","export const MODAL_DOWN_SWIPE_LIMIT = 3;\nexport const MODAL_SWIPE_VELOCITY_THRESHOLD = 80;\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild, input, output, signal, computed } from '@angular/core';\nimport { ModalConfig } from '../../../classes/modal-config';\nimport { ModalCloseMode } from '../../../types/modal.types';\nimport * as bottomSheetConst from '../../../constants/modal-bottom-sheet.constants';\n\n@Component({\n selector: 'app-modal-bottom-sheet',\n imports: [NgClass, NgTemplateOutlet],\n templateUrl: './modal-bottom-sheet.html',\n styleUrl: './modal-bottom-sheet.scss'\n})\nexport class ModalBottomSheet<D = unknown, R = unknown> implements OnInit, OnDestroy {\n public readonly id = input.required<string | null>();\n\n public readonly headerTemplate = input.required<TemplateRef<void> | null>();\n public readonly footerTemplate = input.required<TemplateRef<void> | null>();\n\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n public readonly isOpen = input.required<boolean>();\n public readonly isAnimated = input.required<boolean>();\n public readonly animationDuration = input.required<number>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n\n public currentTranslateY = signal(0);\n public isSwipingVerticallyFinished = signal(false);\n protected isSwipingVertically = signal(false);\n\n @ViewChild('verticalSwipeTarget', { static: true }) protected verticalSwipeTarget?: ElementRef;\n @ViewChild('elementRef', { static: true }) protected elementRef?: ElementRef;\n\n protected modalTransform = computed(() => {\n if (this.isSwipingVerticallyFinished()) {\n return 'translateY(100%)';\n }\n\n const calculatedY = Math.max(0, this.currentTranslateY());\n\n return `translateY(${calculatedY}px)`;\n });\n\n protected downSwipeLimit: number = 0;\n protected isTrackingSwipe: boolean = false;\n\n private isTouchActive = false;\n private bottomSheetInitiated: boolean = false;\n\n private cleanupListeners: (() => void) | null = null;\n private globalResizeCleanup: (() => void) | null = null;\n\n public ngOnInit(): void {\n this.startVerticalSwipeDetection();\n this.monitorInputType();\n }\n\n public ngOnDestroy(): void {\n this.stopVerticalSwipeDetection();\n this.globalResizeCleanup?.();\n }\n\n //#region Swipe Methods\n\n private startVerticalSwipeDetection(): void {\n if (this.isTrackingSwipe) return;\n\n const hasTouch = typeof window !== 'undefined' && (window.matchMedia('(pointer: coarse)').matches || navigator.maxTouchPoints > 0);\n if (!hasTouch) return;\n\n this.initBottomSheetModalParams();\n this.isTrackingSwipe = true;\n\n const target = this.verticalSwipeTarget?.nativeElement;\n if (!target) return;\n\n let limit = 0;\n\n let startY = 0;\n let startTime = 0;\n let isPointerDown = false;\n\n const pointerDown = (event: PointerEvent) => {\n if (event.button !== 0 && event.pointerType === 'mouse') return;\n\n const modalHeight = this.elementRef?.nativeElement.offsetHeight || 0;\n limit = modalHeight / this.downSwipeLimit;\n\n isPointerDown = true;\n startY = event.clientY;\n startTime = event.timeStamp;\n\n this.isSwipingVertically.set(true);\n\n target.setPointerCapture(event.pointerId);\n };\n\n const pointerMove = (event: PointerEvent) => {\n if (!isPointerDown) return;\n\n const currentY = event.clientY - startY;\n\n if (event.cancelable) event.preventDefault();\n\n this.currentTranslateY.set(currentY);\n };\n\n const pointerUp = (event: PointerEvent) => {\n if (!isPointerDown) return;\n\n isPointerDown = false;\n this.isSwipingVertically.set(false);\n target.releasePointerCapture(event.pointerId);\n\n const deltaY = event.clientY - startY;\n const duration = event.timeStamp - startTime || 1;\n const velocityY = deltaY / duration;\n\n if (deltaY > limit || (velocityY > bottomSheetConst.MODAL_SWIPE_VELOCITY_THRESHOLD && deltaY > 0)) {\n this.close.emit('cancel');\n } else {\n this.currentTranslateY.set(0);\n }\n };\n\n target.addEventListener('pointerdown', pointerDown, { passive: false });\n target.addEventListener('pointermove', pointerMove, { passive: false });\n target.addEventListener('pointerup', pointerUp);\n target.addEventListener('pointercancel', pointerUp);\n\n this.cleanupListeners = () => {\n target.removeEventListener('pointerdown', pointerDown);\n target.removeEventListener('pointermove', pointerMove);\n target.removeEventListener('pointerup', pointerUp);\n target.removeEventListener('pointercancel', pointerUp);\n };\n }\n\n private stopVerticalSwipeDetection(): void {\n if (!this.isTrackingSwipe) return;\n\n this.isTrackingSwipe = false;\n\n if (this.cleanupListeners) {\n this.cleanupListeners();\n this.cleanupListeners = null;\n }\n }\n\n private initBottomSheetModalParams(): void {\n if (this.bottomSheetInitiated) return;\n this.bottomSheetInitiated = true;\n\n const config = this.config();\n const style = config?.style?.mobileConfig;\n\n this.downSwipeLimit = style?.downSwipeLimit && style.downSwipeLimit > 0 ? style.downSwipeLimit : bottomSheetConst.MODAL_DOWN_SWIPE_LIMIT;\n }\n\n private monitorInputType(): void {\n if (this.globalResizeCleanup) return;\n\n const handler = (event: PointerEvent) => {\n const isTouch = event.pointerType === 'touch';\n\n if (isTouch && !this.isTouchActive) {\n this.isTouchActive = true;\n this.startVerticalSwipeDetection();\n } else if (!isTouch && this.isTouchActive) {\n this.isTouchActive = false;\n this.stopVerticalSwipeDetection();\n }\n };\n\n window.addEventListener('pointerdown', handler);\n this.globalResizeCleanup = () => window.removeEventListener('pointerdown', handler);\n }\n\n //#endregion\n}\n","<div (click)=\"$event.stopPropagation()\" \n [id]=\"id() ?? ''\"\n [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\"\n [style.max-height]=\"config()?.style?.mobileConfig?.customHeight ?? ''\"\n [style.transform]=\"modalTransform()\"\n [style.transition]=\"isAnimated() && !isSwipingVertically() ? 'transform 300ms ease-in-out' : ''\" \n [ngClass]=\"{\n 'opened-bottom-sheet-modal': isAnimated()\n }\" \n #elementRef\n class=\"bottom-sheet-modal-style\">\n \n <div #verticalSwipeTarget \n class=\"touch-hitbox bottom-sheet-modal-top-bar\"\n (click)=\"isTrackingSwipe ? null : close.emit('cancel')\">\n <div class=\"swipe-line\"></div>\n </div>\n\n <div class=\"bottom-sheet-modal-inner-content-container\">\n <div class=\"bottom-sheet-modal-top-group\">\n @if (headerTemplate()) {\n <div class=\"bottom-sheet-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"bottom-sheet-modal-main-content-container\"\n [style.animationDuration]=\"isAnimated() ? animationDuration() + 'ms' : '0ms'\">\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"bottom-sheet-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n</div>","import { NgTemplateOutlet, NgClass } from '@angular/common';\nimport { Component, input, output, ViewChildren, QueryList, TemplateRef, computed } from '@angular/core';\nimport { ModalConfig } from '../../../classes/modal-config';\nimport { IModalView } from '../../../interfaces/imodal-view.interface';\nimport { ModalCloseMode } from '../../../types/modal.types';\nimport { ModalBanner } from '../../shared/ui/banner/modal-banner';\nimport { ModalBottomSheet } from '../bottom-sheet/modal-bottom-sheet';\nimport { ModalDefaultCloseButton } from '../../shared/ui/default-close-button/default-close-button';\n\n@Component({\n selector: 'app-modal-centered',\n imports: [NgTemplateOutlet, NgClass, ModalBottomSheet, ModalBanner, ModalDefaultCloseButton],\n templateUrl: './modal-centered.html',\n styleUrl: './modal-centered.scss'\n})\nexport class ModalCentered<D = unknown, R = unknown> implements IModalView<D, R> {\n public readonly headerTemplate = input.required<TemplateRef<void> | null>();\n public readonly footerTemplate = input.required<TemplateRef<void> | null>();\n\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n public readonly id = input.required<string | null>();\n public readonly isOpen = input.required<boolean>();\n public readonly isAnimated = input.required<boolean>();\n public readonly isBottomSheetModalActive = input.required<boolean>();\n public readonly animationDuration = input.required<number>();\n public readonly hasDefaultContentWrapperClass = input.required<boolean>();\n public readonly hasBanner = input.required<boolean>();\n public readonly close = output<ModalCloseMode | undefined>();\n public readonly onBackdropClick = output<MouseEvent>();\n\n @ViewChildren(ModalBottomSheet) public bottomSheet!: QueryList<ModalBottomSheet>;\n\n public modalClasses = computed(() => {\n return {\n 'centered-modal-content-wrapper': true,\n 'centered-modal-default-style': this.hasDefaultContentWrapperClass() || this.hasBanner(),\n\n 'centered-modal-animate-in': this.isAnimated() && this.isOpen(),\n 'centered-modal-animate-out': this.isAnimated() && !this.isOpen()\n };\n });\n}\n","@if(!isBottomSheetModalActive()) {\n<div class=\"modal-overlay\" [ngClass]=\"{'modal-backdrop': config()?.style?.hasBackdrop}\" [id]=\"id() ?? ''\"\n (click)=\"config()?.style?.hasBackdrop ? onBackdropClick.emit($event) : null\">\n <div class=\"modal-overlay-wrapper\">\n <div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\">\n <div class=\"centered-modal-inner-content-container\" [class]=\"config()?.style?.wrapperClasses ?? ''\"\n [style]=\"config()?.style?.wrapperStyles ?? ''\">\n\n <div class=\"centered-modal-top-group\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"centered-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"centered-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"centered-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>","import { NgTemplateOutlet, NgClass } from '@angular/common';\nimport { Component, QueryList, TemplateRef, ViewChildren, effect, input, output, signal, computed } from '@angular/core';\nimport { ModalConfig } from '../../../classes/modal-config';\nimport { IModalView } from '../../../interfaces/imodal-view.interface';\nimport { ModalCloseMode, ModalLayout } from '../../../types/modal.types';\nimport { ModalBanner } from '../../shared/ui/banner/modal-banner';\nimport { ModalBottomSheet } from '../bottom-sheet/modal-bottom-sheet';\nimport { ModalDefaultCloseButton } from '../../shared/ui/default-close-button/default-close-button';\n\n@Component({\n selector: 'app-modal-side',\n imports: [NgTemplateOutlet, ModalBottomSheet, NgClass, ModalBanner, ModalDefaultCloseButton],\n templateUrl: './modal-side.html',\n styleUrl: './modal-side.scss'\n})\nexport class ModalSide<D = unknown, R = unknown> implements IModalView<D, R> {\n public readonly layout = input.required<ModalLayout>();\n\n public readonly headerTemplate = input.required<TemplateRef<void> | null>();\n public readonly footerTemplate = input.required<TemplateRef<void> | null>();\n\n public readonly config = input.required<ModalConfig<D, R> | undefined>();\n public readonly id = input.required<string | null>();\n public readonly isOpen = input.required<boolean>();\n public readonly isAnimated = input.required<boolean>();\n public readonly isBottomSheetModalActive = input.required<boolean>();\n public readonly animationDuration = input.required<number>();\n public readonly hasDefaultContentWrapperClass = input.required<boolean>();\n public readonly hasBanner = input.required<boolean>();\n\n public readonly close = output<ModalCloseMode | undefined>();\n\n @ViewChildren(ModalBottomSheet) public bottomSheet!: QueryList<ModalBottomSheet>;\n\n public modalClasses = computed(() => {\n const positionLeft = this.layout() === 'left';\n const positionRight = this.layout() === 'right';\n const shouldAnimate = this.isAnimated();\n\n const isRenderedOpen = this.renderOpenClass();\n\n return {\n 'side-modal-content-wrapper': true,\n 'side-modal-default-style': this.hasDefaultContentWrapperClass() || this.hasBanner(),\n 'with-footer': this.footerTemplate() !== null,\n left: positionLeft,\n right: positionRight,\n\n 'side-modal-animate-in': shouldAnimate ? isRenderedOpen : true,\n 'side-modal-animate-out': shouldAnimate ? !isRenderedOpen : false\n };\n });\n\n protected renderOpenClass = signal(false);\n\n constructor() {\n effect(() => {\n const isOpen = this.isOpen();\n\n if (isOpen) {\n this.renderOpenClass.set(false);\n\n setTimeout(() => {\n this.renderOpenClass.set(true);\n }, 50);\n } else {\n this.renderOpenClass.set(false);\n }\n });\n }\n}\n","@if(!isBottomSheetModalActive()) {\n<div [ngClass]=\"modalClasses()\" (click)=\"$event.stopPropagation()\" [id]=\"id() ?? ''\"\n [style.--anim-duration.ms]=\"animationDuration()\">\n <div class=\"side-modal-inner-content-container\"\n [class]=\"config() && config()?.style?.wrapperClasses ? config()?.style?.wrapperClasses : ''\"\n [style]=\"config() && config()?.style?.wrapperStyles ? config()?.style?.wrapperStyles : ''\">\n @if (hasBanner()) {\n <app-modal-banner [config]=\"config()\" (close)=\"close.emit('cancel')\"></app-modal-banner>\n }\n @if (headerTemplate()) {\n <div class=\"side-modal-header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n @if(!hasBanner()) {\n <app-modal-default-close-button [config]=\"config()\"\n (close)=\"close.emit('cancel')\"></app-modal-default-close-button>\n }\n </div>\n }\n <div class=\"side-modal-main-content-container\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n </div>\n </div>\n\n @if (footerTemplate()) {\n <div class=\"side-modal-footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n</div>\n} @else {\n<app-modal-bottom-sheet [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config()\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\" [animationDuration]=\"animationDuration()\"\n (close)=\"close.emit('cancel')\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"> </ng-container>\n</app-modal-bottom-sheet>\n}\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>","export const MODAL_DEFAULT_ANIM_DURATION = 175;\nexport const MODAL_DEFAULT_INTERNAL_ANIM_DURATION = 350;\n\nexport const MODAL_DEFAULT_ANIM_DURATION_MULTIPLIER_SMALL = 0.65;\nexport const MODAL_DEFAULT_ANIM_DURATION_MULTIPLIER_LARGE = 0.85;\n","import {\n Component,\n inject,\n ComponentRef,\n ViewChild,\n ElementRef,\n ViewChildren,\n QueryList,\n TemplateRef,\n ViewContainerRef,\n signal,\n effect,\n OnInit,\n AfterViewInit,\n computed\n} from '@angular/core';\nimport { Subject, Observable, fromEvent, filter, take, from, of } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ModalConfig } from '../classes/modal-config';\nimport { IModalComponent } from '../interfaces/imodal-component.interface';\nimport { ModalService } from '../services/modal.service';\nimport { ModalBackdrop } from './shared/ui/backdrop/modal-backdrop';\nimport { ModalCentered } from './views/centered/modal-centered';\nimport { ModalSide } from './views/side/modal-side';\nimport { ModalBottomSheet } from './views/bottom-sheet/modal-bottom-sheet';\nimport { BreakpointKey, ModalCloseMode, ModalLayout } from '../types/modal.types';\nimport { IModalCloseResult } from '../interfaces/imodal-close-result.interface';\nimport { ScrollLockService, uuidv4, WindowDimensionsService } from '@filip.mazev/blocks-core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ModalGlobalSettingsService } from '../services/modal-global-settings.service';\nimport { IModal } from '../interfaces/imodal.interface';\nimport * as animConst from '../constants/modal-animation.constants';\n\n@Component({\n selector: 'app-modal',\n imports: [NgTemplateOutlet, ModalCentered, ModalSide, ModalBackdrop],\n templateUrl: './modal-core.html',\n styleUrl: './modal-core.scss'\n})\nexport class ModalCore<D, R, C extends IModal<D, R> = IModal<D, R>> implements IModalComponent<D, R, C>, OnInit, AfterViewInit {\n private readonly modalService = inject(ModalService);\n private readonly globalSettings = inject(ModalGlobalSettingsService);\n private readonly scrollLockService = inject(ScrollLockService);\n private readonly windowDimensionsService = inject(WindowDimensionsService);\n\n public readonly animationDuration: number = animConst.MODAL_DEFAULT_ANIM_DURATION;\n\n public componentRef: ComponentRef<C> = {} as ComponentRef<C>;\n public config?: ModalConfig<D, R>;\n public closeFunction?: (data: IModalCloseResult<R | undefined>) => void;\n public backdropClickSubject = new Subject<MouseEvent>();\n public backdropClick: Observable<MouseEvent> = this.backdropClickSubject.asObservable();\n public isOpen = signal<boolean>(true);\n public effectiveLayout = signal<ModalLayout>('center');\n public isCentered = signal<boolean>(false);\n public isSide = signal<boolean>(false);\n public isAnimated = computed(() => this.config?.style.animate ?? this.globalSettings.animate());\n\n protected headerTemplate = signal<TemplateRef<void> | null>(null);\n protected footerTemplate = signal<TemplateRef<void> | null>(null);\n protected id = signal<string | null>(null);\n protected isBottomSheetModalActive = signal<boolean>(false);\n protected hasBanner: boolean = false;\n\n protected hasDefaultContentWrapperClass: boolean = false;\n\n protected windowDimensions = this.windowDimensionsService.dimensions;\n\n @ViewChild('modalContainer', { static: false }) protected modalContainer?: ElementRef;\n @ViewChild('contentTemplate') protected contentTemplate?: TemplateRef<HTMLElement>;\n\n @ViewChildren(ModalSide) private sideModalComponents?: QueryList<ModalSide>;\n @ViewChildren(ModalCentered) private centeredModalComponents?: QueryList<ModalCentered>;\n\n private isConfirmCloseModalOpen: boolean = false;\n private scrollLockId: string = uuidv4();\n\n private _sortedBreakpoints: Array<{ width: number; layout: ModalLayout }> = [];\n\n private _currentVcr: ViewContainerRef | null = null;\n\n constructor() {\n this.initKeyboardSubscription();\n\n effect(() => {\n const width = this.windowDimensions().width;\n this.handleLayout(width);\n });\n }\n\n public ngOnInit() {\n this.initParamsFromConfig();\n this.initBreakpointCache();\n\n this.scrollLockService.disableScroll(this.scrollLockId, {\n animationDuration: this.animationDuration,\n handleTouchInput: true,\n mobileOnlyTouchPrevention: true\n });\n }\n\n public ngAfterViewInit(): void {\n if (!this.componentRef) return;\n this.dynamicContainer?.insert(this.componentRef.hostView);\n\n const width = this.windowDimensionsService.dimensions().width;\n this.handleLayout(width);\n }\n\n public ngOnDestroy(): void {\n this.componentRef?.destroy();\n this.dynamicContainer?.clear();\n this.scrollLockService.enableScroll(this.scrollLockId);\n }\n\n //#region Public Template Methods\n public setHeaderTemplate(template: TemplateRef<void>) {\n this.headerTemplate.set(template);\n }\n\n //#endregion\n public setFooterTemplate(template: TemplateRef<void>) {\n this.footerTemplate.set(template);\n }\n\n //#region Closing Methods\n public close(state: ModalCloseMode = 'cancel', result: R | undefined = undefined, fromInsideInteraction: boolean = false, forceClose: boolean = false): void {\n if (forceClose) {\n this.handleClose(state, result);\n return;\n }\n\n if (this.config?.disableClose === true && fromInsideInteraction) {\n return;\n }\n\n const shouldCheckCloseGuard = this.config?.closeGuardOnlyOnCancel !== true || state !== 'confirm';\n\n if (shouldCheckCloseGuard && this.config?.closeGuard) {\n const guardResult = this.config.closeGuard.canClose(this.modalService);\n\n const canClose$ = guardResult instanceof Observable ? guardResult : guardResult instanceof Promise ? from(guardResult) : of(guardResult);\n\n if (this.isBottomSheetModalActive()) {\n this.resetBottomSheetModalLayout();\n }\n\n canClose$.pipe(take(1)).subscribe((canClose) => {\n if (canClose) {\n this.handleClose(state, result);\n }\n });\n return;\n }\n\n this.handleClose(state, result);\n }\n\n //#endregion\n protected onBackdropClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.isOpen()) {\n return;\n }\n\n this.backdropClickSubject.next(event);\n\n if (this.config?.style?.hasBackdrop && this.config?.disableCloseOnBackdropClick !== true) {\n this.close('cancel', undefined, true);\n }\n }\n\n @ViewChild('dynamicContainer', { read: ViewContainerRef })\n protected set dynamicContainer(vcr: ViewContainerRef | undefined) {\n if (vcr && this.componentRef) {\n this._currentVcr = vcr;\n vcr.insert(this.componentRef.hostView);\n }\n }\n\n //#region Subscription Methods\n\n private initKeyboardSubscription(): void {\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.key === 'Escape'),\n takeUntilDestroyed()\n )\n .subscribe(() => {\n if (!this.isConfirmCloseModalOpen) {\n this.close('cancel', undefined, true);\n }\n });\n }\n\n //#endregion\n\n //#region Initialization Methods\n\n private initParamsFromConfig() {\n this.id.set(this.config?.id ?? this.scrollLockId);\n\n this.hasBanner =\n this.config !== undefined &&\n ((this.config.bannerText !== undefined && this.config.bannerText.length > 0) ||\n (this.config.disableClose !== true && this.config.style.showCloseButton !== false && this.headerTemplate() === null));\n\n this.hasDefaultContentWrapperClass = this.config?.style.contentWrapper !== false;\n }\n\n private initBreakpointCache(): void {\n const definedBreakpoints = this.config?.style?.breakpoints;\n\n if (definedBreakpoints && Object.keys(definedBreakpoints).length > 0) {\n const serviceBreakpoints = this.windowDimensionsService.breakpoints;\n\n this._sortedBreakpoints = (Object.keys(definedBreakpoints) as BreakpointKey[])\n .map((key) => ({\n width: serviceBreakpoints[key],\n layout: definedBreakpoints[key] ?? this.config?.style.layout ?? 'center'\n }))\n .sort((a, b) => a.width - b.width);\n }\n }\n\n private async handleClose(state: ModalCloseMode, result: R | undefined): Promise<void> {\n this.isOpen.set(false);\n this.setBottomSheetModalFinishedState(true);\n\n const returnResult = {\n data: result,\n state: state\n } as IModalCloseResult<R | undefined>;\n\n if (this.closeFunction) {\n this.closeFunction(returnResult);\n }\n }\n\n //#endregion\n\n //#region Helper Methods\n\n private handleLayout(width: number): void {\n if (!this.config) return;\n\n let resolvedLayout: ModalLayout = this.config.style.layout;\n\n for (const bp of this._sortedBreakpoints) {\n if (width <= bp.width) {\n resolvedLayout = bp.layout;\n break;\n }\n }\n\n const prevIsSide = this.isSide();\n const nextIsSide = resolvedLayout === 'left' || resolvedLayout === 'right';\n const layoutTypeChanged = prevIsSide !== nextIsSide;\n\n if (layoutTypeChanged && this._currentVcr && this.componentRef) {\n const index = this._currentVcr.indexOf(this.componentRef.hostView);\n if (index !== -1) {\n this._currentVcr.detach(index);\n }\n }\n\n this.effectiveLayout.set(resolvedLayout);\n this.isSide.set(nextIsSide);\n this.isCentered.set(resolvedLayout === 'center' || resolvedLayout === 'bottom-sheet');\n\n const shouldBeBottomSheet = resolvedLayout === 'bottom-sheet';\n const currentSwipeState = this.isBottomSheetModalActive();\n\n if (shouldBeBottomSheet && !currentSwipeState) {\n this.isBottomSheetModalActive.set(true);\n } else if (!shouldBeBottomSheet && currentSwipeState) {\n this.isBottomSheetModalActive.set(false);\n }\n }\n\n private getBottomSheetModal(): ModalBottomSheet | undefined {\n return this.sideModalComponents?.first?.bottomSheet?.first ?? this.centeredModalComponents?.first?.bottomSheet?.first;\n }\n\n private resetBottomSheetModalLayout(): void {\n const bottomSheet = this.getBottomSheetModal();\n if (bottomSheet) {\n bottomSheet.currentTranslateY.set(0);\n }\n }\n\n private setBottomSheetModalFinishedState(isFinished: boolean): void {\n const bottomSheet = this.getBottomSheetModal();\n if (bottomSheet) {\n bottomSheet.isSwipingVerticallyFinished.set(isFinished);\n }\n this.isBottomSheetModalActive.set(false);\n }\n\n //#endregion\n}\n","@if (config?.style?.hasBackdrop && (isSide() || isBottomSheetModalActive())) {\n<app-modal-backdrop [isAnimated]=\"isAnimated()\" [isOpen]=\"isOpen()\" (click)=\"onBackdropClick($event)\">\n</app-modal-backdrop>\n}\n\n<ng-container #modalContainer>\n @switch (true) {\n @case (isSide()) {\n <app-modal-side [layout]=\"effectiveLayout()\" [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\"\n [config]=\"config\" [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\"\n [isBottomSheetModalActive]=\"isBottomSheetModalActive()\" [animationDuration]=\"animationDuration\"\n [hasDefaultContentWrapperClass]=\"hasDefaultContentWrapperClass\" [hasBanner]=\"hasBanner\" (close)=\"close($event)\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n </app-modal-side>\n }\n @case (isCentered()) {\n <app-modal-centered [headerTemplate]=\"headerTemplate()\" [footerTemplate]=\"footerTemplate()\" [config]=\"config\"\n [id]=\"id()\" [isOpen]=\"isOpen()\" [isAnimated]=\"isAnimated()\"\n [isBottomSheetModalActive]=\"isBottomSheetModalActive()\" [animationDuration]=\"animationDuration\"\n [hasDefaultContentWrapperClass]=\"hasDefaultContentWrapperClass\" [hasBanner]=\"hasBanner\" (close)=\"close($event)\"\n (onBackdropClick)=\"onBackdropClick($event)\">\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n </app-modal-centered>\n }\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-container #dynamicContainer></ng-container>\n</ng-template>","import { inject, Injectable } from '@angular/core';\nimport { ModalRef } from './modal-ref';\nimport { MODAL_DATA } from '../tokens/modal-data.token';\nimport { IModal } from '../interfaces/imodal.interface';\n\n@Injectable()\nexport class Modal<D, R> implements IModal<D, R> {\n /**\n * Data injected into the modal component.\n */\n public data = inject<D>(MODAL_DATA);\n\n /**\n * Reference to the ModalRef instance associated with this modal.\n */\n public modal!: ModalRef<D, R>;\n\n /**\n * Called when the modal is initialized.\n */\n public onModalInit(): void {}\n\n /**\n * Closes the modal (with \"cancel\" reason) with an optional result.\n * @param result The result to be passed when closing the modal.\n */\n public close(result?: R) {\n this.modal?.close('cancel', result);\n }\n}\n","export enum ModalWarnings {\n //#region Directive usage\n FOOTER_DIRECTIVE_OUTSIDE_MODAL = '[ModalFooter] Directive used outside of a ModalComponent.',\n HEADER_DIRECTIVE_OUTSIDE_MODAL = '[ModalHeader] Directive used outside of a ModalComponent.'\n //#endregion\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { ModalCore } from '../components/modal-core';\nimport { ModalWarnings } from '../enums/modal-warnings.enum';\n\n@Directive({\n selector: '[appModalHeader]',\n standalone: true\n})\nexport class ModalHeaderDirective {\n private readonly templateRef = inject(TemplateRef);\n private readonly modal = inject(ModalCore, { optional: true });\n\n constructor() {\n if (this.modal) {\n this.modal.setHeaderTemplate(this.templateRef);\n } else {\n console.warn(ModalWarnings.HEADER_DIRECTIVE_OUTSIDE_MODAL);\n }\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport { ModalCore } from '../components/modal-core';\nimport { ModalWarnings } from '../enums/modal-warnings.enum';\n\n@Directive({\n selector: '[appModalFooter]',\n standalone: true\n})\nexport class ModalFooterDirective {\n private readonly templateRef = inject(TemplateRef);\n private readonly modal = inject(ModalCore, { optional: true });\n\n constructor() {\n if (this.modal) {\n this.modal.setFooterTemplate(this.templateRef);\n } else {\n console.warn(ModalWarnings.FOOTER_DIRECTIVE_OUTSIDE_MODAL);\n }\n }\n}\n","import { Observable } from 'rxjs';\nimport { ModalService } from '../services/modal.service';\n\n/**\n * Abstract class representing a modal close guard.\n */\nexport abstract class ModalCloseGuard {\n /**\n * Determines whether the modal can be closed.\n */\n public abstract canClose(modalService: ModalService): Observable<boolean> | Promise<boolean> | boolean;\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { IModal } from '../../interfaces/imodal.interface';\nimport { ModalCloseGuard } from '../modal-close-guard';\nimport { IModalConfig } from '../../interfaces/imodal-config.interface';\nimport { ModalService } from '../../services/modal.service';\nimport { map, Observable } from 'rxjs';\nimport { IModalCloseResult } from '@modal/public-api';\n\n/**\n * Modal Close Guard that opens a confirmation modal before allowing the original modal to close.\n * @param component The component to use for the confirmation modal.\n * @param config The configuration for the confirmation modal.\n */\nexport class ModalConfirmCloseGuard<D, R, C extends IModal<D, R> = IModal<D, R>> extends ModalCloseGuard {\n constructor(\n public component: ComponentType<C>,\n public config: IModalConfig<D, R>\n ) {\n super();\n }\n\n public override canClose(modalService: ModalService): Observable<boolean> {\n const ref = modalService.open<D, R, C>(this.component, this.config);\n\n return ref.afterClosed().pipe(map((result: IModalCloseResult<R | undefined>) => result.state === 'confirm'));\n }\n}\n","/*\n * Public API Surface of modal\n */\n\nexport * from './lib/components/modal-core';\nexport * from './lib/components/views/bottom-sheet/modal-bottom-sheet';\nexport * from './lib/components/views/side/modal-side';\nexport * from './lib/components/views/centered/modal-centered';\nexport * from './lib/components/shared/ui/backdrop/modal-backdrop';\nexport * from './lib/components/shared/ui/banner/modal-banner';\n\nexport * from './lib/services/modal-global-settings.service';\nexport * from './lib/services/modal.service';\n\nexport * from './lib/classes/modal';\nexport * from './lib/classes/modal-config';\nexport * from './lib/classes/modal-ref';\nexport * from './lib/classes/modal-style.config';\n\nexport * from './lib/interfaces/imodal-close-result.interface';\nexport * from './lib/interfaces/imodal-component.interface';\nexport * from './lib/interfaces/imodal-config.interface';\nexport * from './lib/interfaces/imodal-ref.interface';\nexport * from './lib/interfaces/imodal-service.interface';\nexport * from './lib/interfaces/imodal-style-config.interface';\nexport * from './lib/interfaces/imodal-view.interface';\nexport * from './lib/interfaces/ibottom-sheet-modal-config.interface';\n\nexport * from './lib/constants/modal-animation.constants';\nexport * from './lib/constants/modal-bottom-sheet.constants';\n\nexport * from './lib/enums/modal-warnings.enum';\nexport * from './lib/enums/modal-state.enum';\n\nexport * from './lib/directives/modal-header.directive';\nexport * from './lib/directives/modal-footer.directive';\n\nexport * from './lib/tokens/modal-data.token';\n\nexport * from './lib/types/modal.types';\n\nexport * from './lib/classes/modal-close-guard';\nexport * from './lib/classes/guards/modal-confirm-close-guard';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["bottomSheetConst.MODAL_SWIPE_VELOCITY_THRESHOLD","bottomSheetConst.MODAL_DOWN_SWIPE_LIMIT","animConst.MODAL_DEFAULT_ANIM_DURATION"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@filip.mazev/modal",
3
- "version": "1.0.13",
3
+ "version": "1.0.18",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  "./_modal-theme": "./lib/styles/_modal-theme.scss",
@@ -18,7 +18,7 @@
18
18
  "peerDependencies": {
19
19
  "@angular/common": "^21.1.1",
20
20
  "@angular/core": "^21.1.1",
21
- "@filip.mazev/blocks-core": "^1.0.13"
21
+ "@filip.mazev/blocks-core": "^1.0.15"
22
22
  },
23
23
  "dependencies": {
24
24
  "tslib": "^2.3.0"