mis-crystal-design-system 18.1.0-signal → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/async-search-dropdown/async-dropdown.component.d.ts +2 -2
- package/button/button.component.d.ts +0 -2
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +4 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +9 -5
- package/dropdown/dropdown.component.d.ts +1 -1
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +2 -2
- package/esm2022/button/button.component.mjs +7 -15
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/chip/chip.component.mjs +4 -4
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +17 -10
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +87 -32
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +6 -3
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +316 -141
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.component.mjs +1 -1
- package/esm2022/fab/fab.component.mjs +4 -4
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +28 -27
- package/esm2022/input/directives/input/input.directive.mjs +28 -10
- package/esm2022/input/mis-input.component.mjs +19 -13
- package/esm2022/loader/loader.component.mjs +13 -7
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +4 -4
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +10 -5
- package/esm2022/phone-input/phone-input.component.mjs +4 -4
- package/esm2022/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +4 -4
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +24 -20
- package/esm2022/switch/switch.component.mjs +2 -4
- package/esm2022/table/sub-table/sub-table.component.mjs +18 -5
- package/esm2022/table/table.component.mjs +52 -28
- package/esm2022/toast/toast.component.mjs +4 -4
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +4 -4
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +6 -14
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +101 -39
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +320 -142
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +27 -26
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +45 -21
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs +12 -6
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +9 -4
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +23 -19
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +1 -3
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +68 -32
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/filter/filter-panel/filter-panel.component.d.ts +1 -1
- package/input/directives/input/input.directive.d.ts +3 -4
- package/input/mis-input.component.d.ts +3 -6
- package/input/mis-input.component.scss +12 -4
- package/loader/loader.component.d.ts +7 -1
- package/package.json +13 -13
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-drawer.mjs","sources":["../../../projects/mis-components/drawer/drawer-ref.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.html","../../../projects/mis-components/drawer/drawer-constants.ts","../../../projects/mis-components/drawer/drawer.service.ts","../../../projects/mis-components/drawer/drawer.module.ts","../../../projects/mis-components/drawer/mis-crystal-design-system-drawer.ts"],"sourcesContent":["/** @format */\n\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class DrawerRef {\n private _isExpanded = false;\n private afterClosed$ = new Subject<any>();\n afterClosed = this.afterClosed$.asObservable();\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n constructor(public overlay: OverlayRef) {}\n\n close(data?: any): void {\n this.overlay.detach();\n this.overlay.dispose();\n this.afterClosed$.next(data);\n this.afterClosed$.complete();\n }\n\n expand(): void {\n this.overlay.updateSize({ width: \"100%\" });\n this._isExpanded = true;\n }\n\n collapse(): void {\n this.overlay.updateSize({ width: \"422px\" });\n this._isExpanded = false;\n }\n}\n","/** @format */\n\nimport { trigger, transition, style, animate } from \"@angular/animations\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { Component, ComponentFactoryResolver, Injector, OnInit, ViewChild, ViewContainerRef, ChangeDetectionStrategy, signal, Signal, WritableSignal } from \"@angular/core\";\nimport { DrawerRef } from \"../drawer-ref\";\n\n@Component({\n selector: \"mis-drawer-body\",\n templateUrl: \"./drawer-body.component.html\",\n styleUrls: [\"./drawer-body.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger(\"slideInOut\", [\n transition(\":enter\", [style({ transform: \"translateX(100%)\" }), animate(\"200ms ease-out\", style({ transform: \"translateX(0%)\" }))]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translateX(100%)\" }))])\n ])\n ]\n})\nexport class DrawerBodyComponent {\n drawerPortal: WritableSignal<ComponentPortal<any> | null> = signal(null);\n \n constructor(private cfr: ComponentFactoryResolver) {}\n\n @ViewChild(\"place\", { static: false, read: ViewContainerRef }) place: ViewContainerRef;\n\n bindComponent(type: any, injector: PortalInjector) {\n this.initComponent(type, injector);\n }\n\n private initComponent(type: any, injector: PortalInjector) {\n this.drawerPortal.set(new ComponentPortal(type, this.place, injector));\n }\n\n private createInjector(ref: DrawerRef, inj: Injector): PortalInjector {\n const injectorTokens = new WeakMap([[DrawerRef, ref]]);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","<!-- @format -->\n\n<div class=\"mis-drawer-body\" #place @slideInOut>\n <ng-template [cdkPortalOutlet]=\"drawerPortal()\"></ng-template>\n</div>\n","/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const DRAWER_DATA_VAR = new InjectionToken<any>(\"MISDrawerDataInjectionToken\");\n","/** @format */\n\nimport { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, ComponentType, PortalInjector } from \"@angular/cdk/portal\";\nimport { ComponentRef, Injectable, Injector } from \"@angular/core\";\nimport { take } from \"rxjs/operators\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { DrawerRef } from \"./drawer-ref\";\nimport { DRAWER_DATA_VAR } from \"./drawer-constants\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class DrawerService {\n drawerRef: DrawerRef;\n componentInstance: ComponentRef<any>;\n\n constructor(private overlay: Overlay, private injector: Injector) {}\n\n show<T, D>(component: ComponentType<T>, data?: D, options?: { width?: string; height?: string }): DrawerRef {\n const positionStrategy = this.overlay.position().global().top(\"0px\").right(\"0px\");\n const { width = \"422px\", height = \"100%\" } = options || {};\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width: width,\n height,\n panelClass: \"mis-drawer\",\n backdropClass: \"mis-drawer-overlay\"\n });\n const overlayRef = this.overlay.create(config);\n this.drawerRef = new DrawerRef(overlayRef);\n const injector = this.createInjector(this.drawerRef, this.injector, data);\n const portal = new ComponentPortal(DrawerBodyComponent, null);\n this.componentInstance = overlayRef.attach(portal);\n this.componentInstance.instance.bindComponent(component, injector);\n overlayRef.backdropClick().pipe(take(1)).subscribe(this.hide.bind(this));\n return this.drawerRef;\n }\n\n hide(): void {\n this.drawerRef?.close();\n }\n\n private createInjector<D>(ref: DrawerRef, inj: Injector, data?: D): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(DrawerRef, ref);\n injectorTokens.set(DRAWER_DATA_VAR, data);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DrawerService } from \"./drawer.service\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { PortalModule } from \"@angular/cdk/portal\";\n\n@NgModule({\n declarations: [DrawerBodyComponent],\n imports: [CommonModule, OverlayModule, PortalModule]\n})\nexport class DrawerModule {\n static forRoot(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n\n static forChild(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-drawer.mjs","sources":["../../../projects/mis-components/drawer/drawer-ref.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.ts","../../../projects/mis-components/drawer/drawer-body/drawer-body.component.html","../../../projects/mis-components/drawer/drawer-constants.ts","../../../projects/mis-components/drawer/drawer.service.ts","../../../projects/mis-components/drawer/drawer.module.ts","../../../projects/mis-components/drawer/mis-crystal-design-system-drawer.ts"],"sourcesContent":["/** @format */\n\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class DrawerRef {\n private _isExpanded = false;\n private afterClosed$ = new Subject<any>();\n afterClosed = this.afterClosed$.asObservable();\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n constructor(public overlay: OverlayRef) {}\n\n close(data?: any): void {\n this.overlay.detach();\n this.overlay.dispose();\n this.afterClosed$.next(data);\n this.afterClosed$.complete();\n }\n\n expand(): void {\n this.overlay.updateSize({ width: \"100%\" });\n this._isExpanded = true;\n }\n\n collapse(): void {\n this.overlay.updateSize({ width: \"422px\" });\n this._isExpanded = false;\n }\n}\n","/** @format */\n\nimport { trigger, transition, style, animate } from \"@angular/animations\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { Component, ComponentFactoryResolver, Injector, OnInit, ViewChild, ViewContainerRef, ChangeDetectionStrategy, signal, Signal, WritableSignal } from \"@angular/core\";\nimport { DrawerRef } from \"../drawer-ref\";\n\n@Component({\n selector: \"mis-drawer-body\",\n templateUrl: \"./drawer-body.component.html\",\n styleUrls: [\"./drawer-body.component.scss\"],\n animations: [\n trigger(\"slideInOut\", [\n transition(\":enter\", [style({ transform: \"translateX(100%)\" }), animate(\"200ms ease-out\", style({ transform: \"translateX(0%)\" }))]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translateX(100%)\" }))])\n ])\n ]\n})\nexport class DrawerBodyComponent {\n drawerPortal: WritableSignal<ComponentPortal<any> | null> = signal(null);\n \n constructor(private cfr: ComponentFactoryResolver) {}\n\n @ViewChild(\"place\", { static: false, read: ViewContainerRef }) place: ViewContainerRef;\n\n bindComponent(type: any, injector: PortalInjector) {\n this.initComponent(type, injector);\n }\n\n private initComponent(type: any, injector: PortalInjector) {\n this.drawerPortal.set(new ComponentPortal(type, this.place, injector));\n }\n\n private createInjector(ref: DrawerRef, inj: Injector): PortalInjector {\n const injectorTokens = new WeakMap([[DrawerRef, ref]]);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","<!-- @format -->\n\n<div class=\"mis-drawer-body\" #place @slideInOut>\n <ng-template [cdkPortalOutlet]=\"drawerPortal()\"></ng-template>\n</div>\n","/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const DRAWER_DATA_VAR = new InjectionToken<any>(\"MISDrawerDataInjectionToken\");\n","/** @format */\n\nimport { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, ComponentType, PortalInjector } from \"@angular/cdk/portal\";\nimport { ComponentRef, Injectable, Injector } from \"@angular/core\";\nimport { take } from \"rxjs/operators\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { DrawerRef } from \"./drawer-ref\";\nimport { DRAWER_DATA_VAR } from \"./drawer-constants\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class DrawerService {\n drawerRef: DrawerRef;\n componentInstance: ComponentRef<any>;\n\n constructor(private overlay: Overlay, private injector: Injector) {}\n\n show<T, D>(component: ComponentType<T>, data?: D, options?: { width?: string; height?: string }): DrawerRef {\n const positionStrategy = this.overlay.position().global().top(\"0px\").right(\"0px\");\n const { width = \"422px\", height = \"100%\" } = options || {};\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width: width,\n height,\n panelClass: \"mis-drawer\",\n backdropClass: \"mis-drawer-overlay\"\n });\n const overlayRef = this.overlay.create(config);\n this.drawerRef = new DrawerRef(overlayRef);\n const injector = this.createInjector(this.drawerRef, this.injector, data);\n const portal = new ComponentPortal(DrawerBodyComponent, null);\n this.componentInstance = overlayRef.attach(portal);\n this.componentInstance.instance.bindComponent(component, injector);\n overlayRef.backdropClick().pipe(take(1)).subscribe(this.hide.bind(this));\n return this.drawerRef;\n }\n\n hide(): void {\n this.drawerRef?.close();\n }\n\n private createInjector<D>(ref: DrawerRef, inj: Injector, data?: D): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(DrawerRef, ref);\n injectorTokens.set(DRAWER_DATA_VAR, data);\n return new PortalInjector(inj, injectorTokens);\n // return Injector.create({ providers: [{ provide: inj, useValue: injectorTokens }] });\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DrawerService } from \"./drawer.service\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { DrawerBodyComponent } from \"./drawer-body/drawer-body.component\";\nimport { PortalModule } from \"@angular/cdk/portal\";\n\n@NgModule({\n declarations: [DrawerBodyComponent],\n imports: [CommonModule, OverlayModule, PortalModule]\n})\nexport class DrawerModule {\n static forRoot(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n\n static forChild(): ModuleWithProviders<DrawerModule> {\n return {\n ngModule: DrawerModule,\n providers: [DrawerService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-dropdown.mjs","sources":["../../../projects/mis-components/dropdown/dropdown.component.html","../../../projects/mis-components/dropdown/dropdown.component.ts","../../../projects/mis-components/dropdown/calculate-container-height.directive.ts","../../../projects/mis-components/dropdown/dropdown.module.ts","../../../projects/mis-components/dropdown/mis-crystal-design-system-dropdown.ts"],"sourcesContent":["<div (click)=\"setUpAsyncDataSearch()\"\n(keyup.enter)=\"setUpAsyncDataSearch()\"\n class=\"main-container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"customStyles()\"\n [attr.aria-label]=\"ariaLabel()\"\n [ngClass]=\"isOpen() ? 'dropdown-port': ''\"\n >\n <img class=\"img-container\" [width]=\"16\" [height]=\"16\" [src]=\"selectedItem()?.customIcon\" *ngIf=\"selectedItem()?.customIcon\">\n <div class=\"label\" [ngStyle]=\"{width: selectedItem()?.customIcon ? 'calc(100% - 48px)' : 'calc(100% - 32px)'}\">\n <p class=\"text\" *ngIf=\"!showOnlyIcon(); else showIcon\">\n {{ multiLine() ? selectedItem()?.label?.primaryText : selectedItem()?.label || label() }}\n </p>\n <ng-template #showIcon>\n <p class=\"text\" *ngIf=\"!selectedItem()?.icon\">\n {{ label() }}\n </p>\n <img class=\"icon\" *ngIf=\"!!selectedItem()?.icon\" [src]=\"selectedItem()?.icon\" alt=\"no img\" />\n </ng-template>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen() ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n\n<ng-template #popupContainer>\n <div\n class=\"popup-container\" \n cdkTrapFocus \n [cdkTrapFocusAutoCapture]=\"true\" \n tabindex=\"0\"\n [ngStyle]=\"{\n height: dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n (keyup.esc)=\"closeOnEsc($event)\"\n aria-label=\"dropdown\"\n >\n <div *ngIf=\"searchEnabled()\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused()\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput()\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused() ? '12px' : '45px',\n border: isSearchInputFocused() ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused() ? '45px' : '10px'\n }\"\n [tabIndex]=\"0\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchLabel()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n [attr.aria-label]=\"searchLabel()\"\n />\n <svg\n *ngIf=\"isSearchInputFocused()\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"status-container\" *ngIf=\"loading()\">\n <mis-loader [mobileView]=\"true\"></mis-loader>\n </div>\n <div tabindex=\"-1\" *ngIf=\"!searchEnabled()\" cdkFocusInitial></div>\n <div class=\"items\" #itemsContainer [ngStyle]=\"itemsContainerStyle\" *ngIf=\"!loading()\">\n <cdk-virtual-scroll-viewport *ngIf=\"currentData.length > 0\" \n [itemSize]=\"itemSizeForCdk() || 36\" \n class=\"dropdown-viewport\"\n [minBufferPx]=\"200\"\n [maxBufferPx]=\"400\">\n <div\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ \n 'item-disabled': item.disabled, \n 'item-selected': (higlightSelectedValue() && item.value === selectedItem()?.value), \n 'icon-only': showOnlyIcon() \n }\"\n (click)=\"item.disabled ? null : selectItem(item)\"\n (keyup.enter)=\"item.disabled ? null : selectItem(item)\"\n *cdkVirtualFor=\"let item of currentData; let i = index\"\n tabIndex=\"0\"\n >\n <ng-container *ngIf=\"customItem; else standardItem\">\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardItem>\n <div class=\"label\" *ngIf=\"!showOnlyIcon()\" [ngStyle]=\"{ \n width: item.icon ? '90%' : '100%', \n 'display': multiLine() ? 'flex': 'inherit', \n 'flex-direction': multiLine() ? 'column': 'inherit' \n }\">\n <span class=\"primaryText\">\n {{ multiLine() ? item?.label?.primaryText : item?.label }}\n </span>\n <span class=\"secondaryText\" *ngIf=\"multiLine()\">\n {{ item?.label?.secondaryText ? item?.label?.secondaryText : additionalInfoMessage() }}\n </span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </ng-template>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"noData\" *ngIf=\"currentData.length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>","import {\n Component,\n ElementRef,\n HostListener,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ChangeDetectorRef,\n ContentChild,\n signal,\n input,\n output,\n effect,\n} from \"@angular/core\";\nimport {\n ConnectionPositionPair,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\n\n@Component({\n selector: \"mis-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"],\n})\nexport class DropdownComponent {\n // Internal signals\n readonly isOpen = signal(false);\n readonly loading = signal(false);\n readonly isSearchInputFocused = signal(false);\n readonly searchInput = signal(\"\");\n readonly searchData = signal<DropdownItem[]>([]);\n readonly dynamicHeight = signal(\"auto\");\n\n // ✅ Writable signal for internal data\n readonly internalData = signal<DropdownItem[]>([]);\n\n // Inputs\n readonly data = input<DropdownItem[]>([]);\n readonly height = input(\"\");\n readonly ariaLabel = input(\"\");\n readonly width = input(\"\");\n readonly label = input(\"Select\");\n readonly itemSizeForCdk = input<number>();\n readonly showOnlyIcon = input(false);\n readonly higlightSelectedValue = input(false);\n readonly dropdownListHeight = input(\"\");\n readonly dropdownListWidth = input(\"\");\n readonly dropdownListPosition = input<\"Left\" | \"Right\">(\"Left\");\n readonly config = input<any>();\n readonly searchEnabled = input(true);\n readonly selectedItem = input<DropdownItem>({ value: \"\", label: \"\" });\n readonly noDataMessage = input(\"No Data\");\n readonly multiLine = input(false);\n readonly additionalInfoMessage = input<string>(\"\");\n readonly scrollIntoView = input(false);\n readonly searchLabel = input(\"Search Keyword\");\n readonly customStyles = input<{ [key: string]: string }>({});\n readonly activeItem = input(false);\n\n // Output\n readonly onChange = output<DropdownItem>();\n\n // Template & DOM refs\n @ViewChild(\"select\", { static: false }) selectElement!: ElementRef;\n @ViewChild(\"popupContainer\", { static: false })\n popupContainer!: TemplateRef<Element>;\n @ViewChild(CdkVirtualScrollViewport) viewPort!: CdkVirtualScrollViewport;\n @ContentChild(\"misCustomItem\", { static: false })\n customItem!: TemplateRef<Element>;\n\n private _itemsContainer: ElementRef | null = null;\n @ViewChild(\"itemsContainer\", { static: false }) set itemsContainer(\n container: ElementRef | null\n ) {\n this._itemsContainer = container;\n if (container) this.measureAndUpdateHeight();\n }\n\n private overlayRef!: OverlayRef;\n\n constructor(\n private eRef: ElementRef,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n // ✅ Keep internalData in sync with input data (and allow writes)\n effect(\n () => {\n this.internalData.set(this.data() || []);\n },\n { allowSignalWrites: true }\n );\n }\n\n // ========== Core Logic ==========\n\n measureAndUpdateHeight() {\n if (!this.isOpen() || !this._itemsContainer) return;\n\n const container = this._itemsContainer.nativeElement;\n const items = container.querySelectorAll(\".item\");\n\n if (!items || items.length === 0) {\n this.dynamicHeight.set(\"50px\");\n return;\n }\n\n let totalMeasuredHeight = 0;\n let maxItemHeight = 0;\n\n Array.from(items)\n .slice(0, Math.min(8, items.length))\n .forEach((item) => {\n const htmlItem = item as HTMLElement;\n let itemHeight = htmlItem.offsetHeight || 0;\n totalMeasuredHeight += itemHeight;\n maxItemHeight = Math.max(maxItemHeight, itemHeight);\n });\n\n const containerPadding = 8;\n const finalHeight = Math.max(\n 50,\n Math.min(totalMeasuredHeight + containerPadding, 320)\n );\n\n this.dynamicHeight.set(\n this.dropdownListHeight() ? this.dropdownListHeight() : `${finalHeight}px`\n );\n }\n\n get currentData(): DropdownItem[] {\n return this.searchInput() ? this.searchData() : this.internalData();\n }\n\n get itemsContainerStyle(): { [key: string]: string } {\n return {\n height: this.dynamicHeight(),\n \"max-height\": \"320px\",\n \"min-height\": \"50px\",\n };\n }\n\n setUpAsyncDataSearch() {\n if (this.config()) {\n this.loading.set(true);\n this.config()\n ?.dataStream()\n ?.pipe()\n .subscribe((res: DropdownItem[]) => {\n this.internalData.set(res || []); // ✅ safe\n this.loading.set(false);\n setTimeout(() => this.measureAndUpdateHeight(), 60);\n });\n }\n const index =\n this.internalData()?.findIndex(\n (dataItem) => dataItem?.value === this.selectedItem()?.value\n ) || -1;\n if (this.scrollIntoView() && this.viewPort) {\n this.viewPort.scrollToIndex(index, \"smooth\");\n }\n }\n\n searchInputOnChange(newValue: string) {\n this.searchInput.set(newValue);\n if (newValue) {\n this.searchData.set(\n this.multiLine()\n ? this.filterByPrimaryText(this.internalData(), newValue)\n : this.filterByValue(this.internalData(), newValue)\n );\n } else {\n this.searchData.set([]);\n }\n requestAnimationFrame(() => this.measureAndUpdateHeight());\n }\n\n filterByValue(array: DropdownItem[], string: string) {\n return (\n array?.filter((o) =>\n o?.label?.toLowerCase()?.includes(string?.toLowerCase()?.trim())\n ) || []\n );\n }\n\n filterByPrimaryText(array: DropdownItem[], string: string) {\n return (\n array?.filter((o) =>\n o?.label?.primaryText\n ?.toLowerCase()\n ?.includes(string?.toLowerCase()?.trim())\n ) || []\n );\n }\n\n searchInputFocused(isFocused: boolean) {\n this.isSearchInputFocused.set(isFocused);\n }\n\n searchInputCanceled(event: Event) {\n event.stopPropagation();\n this.searchInput.set(\"\");\n this.isSearchInputFocused.set(false);\n requestAnimationFrame(() => this.measureAndUpdateHeight());\n }\n\n toggleDropdown() {\n this.isOpen.set(!this.isOpen());\n if (this.isOpen()) {\n this.openDropdown(this.popupContainer, this.selectElement?.nativeElement);\n } else {\n this.onCancel();\n }\n }\n\n private openDropdown(template: TemplateRef<Element>, origin: HTMLElement): void {\n const positionsBottom = [\n new ConnectionPositionPair(\n { originX: \"start\", originY: \"bottom\" },\n { overlayX: \"start\", overlayY: \"top\" },\n 0,\n 4\n ),\n new ConnectionPositionPair(\n { originX: \"end\", originY: \"bottom\" },\n { overlayX: \"end\", overlayY: \"top\" },\n 0,\n 4\n ),\n ];\n const positionsTop = [\n new ConnectionPositionPair(\n { originX: \"start\", originY: \"top\" },\n { overlayX: \"start\", overlayY: \"bottom\" },\n 0,\n -4\n ),\n new ConnectionPositionPair(\n { originX: \"end\", originY: \"top\" },\n { overlayX: \"end\", overlayY: \"bottom\" },\n 0,\n -4\n ),\n ];\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions([\n ...(this.dropdownListPosition() === \"Right\"\n ? positionsBottom.reverse()\n : positionsBottom),\n ...(this.dropdownListPosition() === \"Right\"\n ? positionsTop.reverse()\n : positionsTop),\n ])\n .withPush(true);\n\n const configs = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy,\n width: origin?.clientWidth,\n });\n\n this.overlayRef = this.overlay.create(configs);\n\n if (this.dropdownListWidth()) {\n this.overlayRef.updateSize({ width: this.dropdownListWidth() });\n }\n if (this.dropdownListHeight()) {\n this.overlayRef.updateSize({ height: this.dropdownListHeight() });\n }\n\n this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe(() => {\n this.onCancel();\n });\n }\n\n selectItem(item: DropdownItem) {\n this.onChange.emit(item);\n this.toggleDropdown();\n }\n\n onCancel() {\n this.isSearchInputFocused.set(false);\n this.isOpen.set(false);\n this.overlayRef?.detach();\n this.searchInput.set(\"\");\n this._itemsContainer = null;\n }\n\n @HostListener(\"keyup.esc\", [\"$event\"])\n closeOnEsc(event: KeyboardEvent) {\n this.onCancel();\n event.stopPropagation();\n event.preventDefault();\n }\n}\n\nexport interface DropdownItem {\n label: any;\n value: string;\n icon?: string;\n disabled?: boolean;\n customIcon?: string;\n}\n","import { AfterViewInit, computed, Directive, effect, ElementRef, inject, input, Input } from '@angular/core';\n\n@Directive({\n selector: '[calculateContainerHeight]'\n})\nexport class CalculateContainerHeightDirective {\n public items = input<any[]>([]);\n public visibleItems = input<number>(10);\n\n private readonly el = inject(ElementRef);\n\n private itemHeight = computed(() => {\n const firstItemElement = this.el.nativeElement.querySelector('.item');\n return firstItemElement ? firstItemElement.getBoundingClientRect().height : 0;\n });\n\n private heightEffect = effect(() => {\n this.setContainerHeight();\n });\n\n private setContainerHeight() {\n const firstItemHeight = this.itemHeight();\n const numberOfItems = this.items()?.length || 0;\n \n if (firstItemHeight === 0) {\n return;\n }\n\n let containerHeight = 0;\n const maxScrollHeight = 200;\n\n if (firstItemHeight * numberOfItems > maxScrollHeight) {\n containerHeight = maxScrollHeight;\n } else if (numberOfItems <= this.visibleItems()) {\n containerHeight = firstItemHeight * numberOfItems;\n } else {\n containerHeight = firstItemHeight * this.visibleItems();\n }\n\n this.el.nativeElement.style.height = `${containerHeight}px`;\n }\n}\n\n","import { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { DropdownComponent } from \"./dropdown.component\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { ScrollingModule } from \"@angular/cdk/scrolling\";\nimport { LoaderModule } from \"mis-crystal-design-system/loader\";\nimport { CalculateContainerHeightDirective } from './calculate-container-height.directive';\nimport { A11yModule } from \"@angular/cdk/a11y\";\n\n@NgModule({\n declarations: [DropdownComponent, CalculateContainerHeightDirective],\n imports: [CommonModule, FormsModule, OverlayModule, ScrollingModule,LoaderModule, A11yModule], \n exports: [DropdownComponent]\n})\nexport class DropdownModule {\n static forRoot(): ModuleWithProviders<DropdownModule> {\n return { ngModule: DropdownModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-dropdown.mjs","sources":["../../../projects/mis-components/dropdown/dropdown.component.html","../../../projects/mis-components/dropdown/dropdown.component.ts","../../../projects/mis-components/dropdown/calculate-container-height.directive.ts","../../../projects/mis-components/dropdown/dropdown.module.ts","../../../projects/mis-components/dropdown/mis-crystal-design-system-dropdown.ts"],"sourcesContent":["<div (click)=\"setUpAsyncDataSearch()\"\n(keyup.enter)=\"setUpAsyncDataSearch()\"\n class=\"main-container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"customStyles()\"\n [attr.aria-label]=\"ariaLabel()\"\n [ngClass]=\"isOpen() ? 'dropdown-port': ''\"\n >\n <img class=\"img-container\" [width]=\"16\" [height]=\"16\" [src]=\"selectedItem()?.customIcon\" *ngIf=\"selectedItem()?.customIcon\">\n <div class=\"label\" [ngStyle]=\"{width: selectedItem()?.customIcon ? 'calc(100% - 48px)' : 'calc(100% - 32px)'}\">\n <p class=\"text\" *ngIf=\"!showOnlyIcon(); else showIcon\">\n {{ multiLine() ? selectedItem()?.label?.primaryText : selectedItem()?.label || label() }}\n </p>\n <ng-template #showIcon>\n <p class=\"text\" *ngIf=\"!selectedItem()?.icon\">\n {{ label() }}\n </p>\n <img class=\"icon\" *ngIf=\"!!selectedItem()?.icon\" [src]=\"selectedItem()?.icon\" alt=\"no img\" />\n </ng-template>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen() ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n\n<ng-template #popupContainer>\n <div\n class=\"popup-container\" \n cdkTrapFocus \n [cdkTrapFocusAutoCapture]=\"true\" \n tabindex=\"0\"\n [ngStyle]=\"{\n height: dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n (keyup.esc)=\"closeOnEsc($event)\"\n aria-label=\"dropdown\"\n >\n <div *ngIf=\"searchEnabled()\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused()\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput()\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused() ? '12px' : '45px',\n border: isSearchInputFocused() ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused() ? '45px' : '10px'\n }\"\n [tabIndex]=\"0\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchLabel()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n [attr.aria-label]=\"searchLabel()\"\n />\n <svg\n *ngIf=\"isSearchInputFocused()\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"status-container\" *ngIf=\"loading()\">\n <mis-loader [mobileView]=\"true\"></mis-loader>\n </div>\n <div tabindex=\"-1\" *ngIf=\"!searchEnabled()\" cdkFocusInitial></div>\n <div class=\"items\" #itemsContainer [ngStyle]=\"itemsContainerStyle\" *ngIf=\"!loading()\">\n <cdk-virtual-scroll-viewport *ngIf=\"currentData.length > 0\" \n [itemSize]=\"itemSizeForCdk() || 36\" \n class=\"dropdown-viewport\"\n [minBufferPx]=\"200\"\n [maxBufferPx]=\"400\">\n <div\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ \n 'item-disabled': item.disabled, \n 'item-selected': (higlightSelectedValue() && item.value === selectedItem()?.value), \n 'icon-only': showOnlyIcon() \n }\"\n (click)=\"item.disabled ? null : selectItem(item)\"\n (keyup.enter)=\"item.disabled ? null : selectItem(item)\"\n *cdkVirtualFor=\"let item of currentData; let i = index\"\n tabIndex=\"0\"\n >\n <ng-container *ngIf=\"customItem; else standardItem\">\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardItem>\n <div class=\"label\" *ngIf=\"!showOnlyIcon()\" [ngStyle]=\"{ \n width: item.icon ? '90%' : '100%', \n 'display': multiLine() ? 'flex': 'inherit', \n 'flex-direction': multiLine() ? 'column': 'inherit' \n }\">\n <span class=\"primaryText\">\n {{ multiLine() ? item?.label?.primaryText : item?.label }}\n </span>\n <span class=\"secondaryText\" *ngIf=\"multiLine()\">\n {{ item?.label?.secondaryText ? item?.label?.secondaryText : additionalInfoMessage() }}\n </span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </ng-template>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"noData\" *ngIf=\"currentData.length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>","import {\n Component,\n ElementRef,\n HostListener,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ChangeDetectorRef,\n ContentChild,\n signal,\n input,\n output,\n effect,\n} from \"@angular/core\";\nimport {\n ConnectionPositionPair,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\n\n@Component({\n selector: \"mis-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"],\n})\nexport class DropdownComponent {\n // Internal signals\n public isOpen = signal(false);\n readonly loading = signal(false);\n readonly isSearchInputFocused = signal(false);\n readonly searchInput = signal(\"\");\n readonly searchData = signal<DropdownItem[]>([]);\n readonly dynamicHeight = signal(\"auto\");\n\n // ✅ Writable signal for internal data\n readonly internalData = signal<DropdownItem[]>([]);\n\n // Inputs\n readonly data = input<DropdownItem[]>([]);\n readonly height = input(\"\");\n readonly ariaLabel = input(\"\");\n readonly width = input(\"\");\n readonly label = input(\"Select\");\n readonly itemSizeForCdk = input<number>();\n readonly showOnlyIcon = input(false);\n readonly higlightSelectedValue = input(false);\n readonly dropdownListHeight = input(\"\");\n readonly dropdownListWidth = input(\"\");\n readonly dropdownListPosition = input<\"Left\" | \"Right\">(\"Left\");\n readonly config = input<any>();\n readonly searchEnabled = input(true);\n readonly selectedItem = input<DropdownItem>({ value: \"\", label: \"\" });\n readonly noDataMessage = input(\"No Data\");\n readonly multiLine = input(false);\n readonly additionalInfoMessage = input<string>(\"\");\n readonly scrollIntoView = input(false);\n readonly searchLabel = input(\"Search Keyword\");\n readonly customStyles = input<{ [key: string]: string }>({});\n readonly activeItem = input(false);\n\n // Output\n readonly onChange = output<DropdownItem>();\n\n // Template & DOM refs\n @ViewChild(\"select\", { static: false }) selectElement!: ElementRef;\n @ViewChild(\"popupContainer\", { static: false })\n popupContainer!: TemplateRef<Element>;\n @ViewChild(CdkVirtualScrollViewport) viewPort!: CdkVirtualScrollViewport;\n @ContentChild(\"misCustomItem\", { static: false })\n customItem!: TemplateRef<Element>;\n\n private _itemsContainer: ElementRef | null = null;\n @ViewChild(\"itemsContainer\", { static: false }) set itemsContainer(\n container: ElementRef | null\n ) {\n this._itemsContainer = container;\n if (container) this.measureAndUpdateHeight();\n }\n\n private overlayRef!: OverlayRef;\n\n constructor(\n private eRef: ElementRef,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n // ✅ Keep internalData in sync with input data (and allow writes)\n effect(\n () => {\n this.internalData.set(this.data() || []);\n },\n { allowSignalWrites: true }\n );\n }\n\n // ========== Core Logic ==========\n\n measureAndUpdateHeight() {\n if (!this.isOpen() || !this._itemsContainer) return;\n\n const container = this._itemsContainer.nativeElement;\n const items = container.querySelectorAll(\".item\");\n\n if (!items || items.length === 0) {\n this.dynamicHeight.set(\"50px\");\n return;\n }\n\n let totalMeasuredHeight = 0;\n let maxItemHeight = 0;\n\n Array.from(items)\n .slice(0, Math.min(8, items.length))\n .forEach((item) => {\n const htmlItem = item as HTMLElement;\n let itemHeight = htmlItem.offsetHeight || 0;\n totalMeasuredHeight += itemHeight;\n maxItemHeight = Math.max(maxItemHeight, itemHeight);\n });\n\n const containerPadding = 8;\n const finalHeight = Math.max(\n 50,\n Math.min(totalMeasuredHeight + containerPadding, 320)\n );\n\n this.dynamicHeight.set(\n this.dropdownListHeight() ? this.dropdownListHeight() : `${finalHeight}px`\n );\n }\n\n get currentData(): DropdownItem[] {\n return this.searchInput() ? this.searchData() : this.internalData();\n }\n\n get itemsContainerStyle(): { [key: string]: string } {\n return {\n height: this.dynamicHeight(),\n \"max-height\": \"320px\",\n \"min-height\": \"50px\",\n };\n }\n\n setUpAsyncDataSearch() {\n if (this.config()) {\n this.loading.set(true);\n this.config()\n ?.dataStream()\n ?.pipe()\n .subscribe((res: DropdownItem[]) => {\n this.internalData.set(res || []); // ✅ safe\n this.loading.set(false);\n setTimeout(() => this.measureAndUpdateHeight(), 60);\n });\n }\n const index =\n this.internalData()?.findIndex(\n (dataItem) => dataItem?.value === this.selectedItem()?.value\n ) || -1;\n if (this.scrollIntoView() && this.viewPort) {\n this.viewPort.scrollToIndex(index, \"smooth\");\n }\n }\n\n searchInputOnChange(newValue: string) {\n this.searchInput.set(newValue);\n if (newValue) {\n this.searchData.set(\n this.multiLine()\n ? this.filterByPrimaryText(this.internalData(), newValue)\n : this.filterByValue(this.internalData(), newValue)\n );\n } else {\n this.searchData.set([]);\n }\n requestAnimationFrame(() => this.measureAndUpdateHeight());\n }\n\n filterByValue(array: DropdownItem[], string: string) {\n return (\n array?.filter((o) =>\n o?.label?.toLowerCase()?.includes(string?.toLowerCase()?.trim())\n ) || []\n );\n }\n\n filterByPrimaryText(array: DropdownItem[], string: string) {\n return (\n array?.filter((o) =>\n o?.label?.primaryText\n ?.toLowerCase()\n ?.includes(string?.toLowerCase()?.trim())\n ) || []\n );\n }\n\n searchInputFocused(isFocused: boolean) {\n this.isSearchInputFocused.set(isFocused);\n }\n\n searchInputCanceled(event: Event) {\n event.stopPropagation();\n this.searchInput.set(\"\");\n this.isSearchInputFocused.set(false);\n requestAnimationFrame(() => this.measureAndUpdateHeight());\n }\n\n toggleDropdown() {\n this.isOpen.set(!this.isOpen());\n if (this.isOpen()) {\n this.openDropdown(this.popupContainer, this.selectElement?.nativeElement);\n } else {\n this.onCancel();\n }\n }\n\n private openDropdown(template: TemplateRef<Element>, origin: HTMLElement): void {\n const positionsBottom = [\n new ConnectionPositionPair(\n { originX: \"start\", originY: \"bottom\" },\n { overlayX: \"start\", overlayY: \"top\" },\n 0,\n 4\n ),\n new ConnectionPositionPair(\n { originX: \"end\", originY: \"bottom\" },\n { overlayX: \"end\", overlayY: \"top\" },\n 0,\n 4\n ),\n ];\n const positionsTop = [\n new ConnectionPositionPair(\n { originX: \"start\", originY: \"top\" },\n { overlayX: \"start\", overlayY: \"bottom\" },\n 0,\n -4\n ),\n new ConnectionPositionPair(\n { originX: \"end\", originY: \"top\" },\n { overlayX: \"end\", overlayY: \"bottom\" },\n 0,\n -4\n ),\n ];\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions([\n ...(this.dropdownListPosition() === \"Right\"\n ? positionsBottom.reverse()\n : positionsBottom),\n ...(this.dropdownListPosition() === \"Right\"\n ? positionsTop.reverse()\n : positionsTop),\n ])\n .withPush(true);\n\n const configs = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy,\n width: origin?.clientWidth,\n });\n\n this.overlayRef = this.overlay.create(configs);\n\n if (this.dropdownListWidth()) {\n this.overlayRef.updateSize({ width: this.dropdownListWidth() });\n }\n if (this.dropdownListHeight()) {\n this.overlayRef.updateSize({ height: this.dropdownListHeight() });\n }\n\n this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe(() => {\n this.onCancel();\n });\n }\n\n selectItem(item: DropdownItem) {\n this.onChange.emit(item);\n this.toggleDropdown();\n }\n\n onCancel() {\n this.isSearchInputFocused.set(false);\n this.isOpen.set(false);\n this.overlayRef?.detach();\n this.searchInput.set(\"\");\n this._itemsContainer = null;\n }\n\n @HostListener(\"keyup.esc\", [\"$event\"])\n closeOnEsc(event: KeyboardEvent) {\n this.onCancel();\n event.stopPropagation();\n event.preventDefault();\n }\n}\n\nexport interface DropdownItem {\n label: any;\n value: string;\n icon?: string;\n disabled?: boolean;\n customIcon?: string;\n}\n","import { AfterViewInit, computed, Directive, effect, ElementRef, inject, input, Input } from '@angular/core';\n\n@Directive({\n selector: '[calculateContainerHeight]'\n})\nexport class CalculateContainerHeightDirective {\n public items = input<any[]>([]);\n public visibleItems = input<number>(10);\n\n private readonly el = inject(ElementRef);\n\n private itemHeight = computed(() => {\n const firstItemElement = this.el.nativeElement.querySelector('.item');\n return firstItemElement ? firstItemElement.getBoundingClientRect().height : 0;\n });\n\n private heightEffect = effect(() => {\n this.setContainerHeight();\n });\n\n private setContainerHeight() {\n const firstItemHeight = this.itemHeight();\n const numberOfItems = this.items()?.length || 0;\n \n if (firstItemHeight === 0) {\n return;\n }\n\n let containerHeight = 0;\n const maxScrollHeight = 200;\n\n if (firstItemHeight * numberOfItems > maxScrollHeight) {\n containerHeight = maxScrollHeight;\n } else if (numberOfItems <= this.visibleItems()) {\n containerHeight = firstItemHeight * numberOfItems;\n } else {\n containerHeight = firstItemHeight * this.visibleItems();\n }\n\n this.el.nativeElement.style.height = `${containerHeight}px`;\n }\n}\n\n","import { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { DropdownComponent } from \"./dropdown.component\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { ScrollingModule } from \"@angular/cdk/scrolling\";\nimport { LoaderModule } from \"mis-crystal-design-system/loader\";\nimport { CalculateContainerHeightDirective } from './calculate-container-height.directive';\nimport { A11yModule } from \"@angular/cdk/a11y\";\n\n@NgModule({\n declarations: [DropdownComponent, CalculateContainerHeightDirective],\n imports: [CommonModule, FormsModule, OverlayModule, ScrollingModule,LoaderModule, A11yModule], \n exports: [DropdownComponent]\n})\nexport class DropdownModule {\n static forRoot(): ModuleWithProviders<DropdownModule> {\n return { ngModule: DropdownModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, signal, computed, Component,
|
|
2
|
+
import { input, signal, computed, Component, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
@@ -116,11 +116,11 @@ class FabComponent {
|
|
|
116
116
|
transition("rotated => default", animate("300ms ease-out")),
|
|
117
117
|
transition("default => rotated", animate("200ms ease-in"))
|
|
118
118
|
])
|
|
119
|
-
] }
|
|
119
|
+
] } }); }
|
|
120
120
|
}
|
|
121
121
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FabComponent, [{
|
|
122
122
|
type: Component,
|
|
123
|
-
args: [{ selector: "mis-fab",
|
|
123
|
+
args: [{ selector: "mis-fab", animations: [
|
|
124
124
|
trigger("slideUpFab", [
|
|
125
125
|
transition(":enter", [
|
|
126
126
|
style({ transform: "translateY(50px)", opacity: 0 }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-fab.mjs","sources":["../../../projects/mis-components/fab/fab.component.ts","../../../projects/mis-components/fab/fab.component.html","../../../projects/mis-components/fab/fab.module.ts","../../../projects/mis-components/fab/mis-crystal-design-system-fab.ts"],"sourcesContent":["/** @format */\n\nimport { Component, ElementRef, HostListener, OnDestroy, ChangeDetectionStrategy, input, signal, WritableSignal, computed } from \"@angular/core\";\nimport { trigger, transition, style, animate, state } from \"@angular/animations\";\n\nexport type FabOptions = {\n backgroundColorClosed?: string;\n backgroundColorOpened?: string;\n size?: number;\n};\n\nexport type FabItem = {\n label?: string;\n icon: string;\n backgroundColor?: string;\n id?: string;\n click?: () => any;\n};\n\nexport type FabItems = FabItem[];\n\n@Component({\n selector: \"mis-fab\",\n templateUrl: \"./fab.component.html\",\n styleUrls: [\"./fab.component.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger(\"slideUpFab\", [\n transition(\":enter\", [\n style({ transform: \"translateY(50px)\", opacity: 0 }),\n animate(\"300ms ease-out\", style({ transform: \"translateY(0px)\", opacity: 1 }))\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translateY(70px)\", opacity: 0 }))])\n ]),\n trigger(\"rotateButton\", [\n state(\"default\", style({ transform: \"rotate(0)\" })),\n state(\"rotated\", style({ transform: \"rotate(45deg)\" })),\n transition(\"rotated => default\", animate(\"300ms ease-out\")),\n transition(\"default => rotated\", animate(\"200ms ease-in\"))\n ])\n ]\n})\nexport class FabComponent implements OnDestroy {\n show = input<boolean>(false);\n options = input<FabOptions>({});\n items = input<FabItems>([]);\n\n isOpen: WritableSignal<boolean> = signal(false);\n\n // Computed signal for options with defaults\n computedOptions = computed(() => {\n const currentOptions = this.options();\n return {\n size: 56,\n backgroundColorClosed: \"#0937B2\",\n backgroundColorOpened: \"#3a5fc1\",\n ...currentOptions\n };\n });\n\n constructor(private eRef: ElementRef) {}\n\n @HostListener(\"document:click\", [\"$event\"])\n clickout(event: any) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeFab();\n }\n }\n\n ngOnDestroy(): void {}\n\n clickItem(item: FabItem) {\n this.closeFab();\n item.click?.();\n }\n\n closeFab() {\n this.isOpen.set(false);\n }\n\n toogleFab() {\n this.isOpen.set(!this.isOpen());\n }\n}\n","<div class=\"fab-wrapper\" *ngIf=\"show()\">\n <div class=\"fab-items\" *ngIf=\"isOpen()\" @slideUpFab>\n <div class=\"fab-item\" *ngFor=\"let item of items().reverse(); let i = index\" (click)=\"clickItem(item)\">\n <div *ngIf=\"item.label\" class=\"fab-tooltip\">\n {{ item.label }}\n </div>\n <div\n class=\"fab-button\"\n [ngStyle]=\"{\n backgroundColor: item.backgroundColor || '#0937B2'\n }\"\n >\n <img [src]=\"item.icon\" class=\"add-img\" />\n </div>\n </div>\n </div>\n <div\n class=\"fab-container\"\n [ngStyle]=\"{\n backgroundColor: isOpen() ? computedOptions().backgroundColorOpened : computedOptions().backgroundColorClosed\n }\"\n (click)=\"toogleFab()\"\n >\n <svg\n [@rotateButton]=\"isOpen() ? 'rotated' : 'default'\"\n class=\"add-img\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.1424 5.15607C13.1424 4.51759 12.6313 4 12.0009 4C11.3704 4 10.8594 4.51759 10.8594 5.15607V10.8421H5.14149C4.51106 10.8421 4 11.3597 4 11.9982C4 12.6367 4.51106 13.1543 5.14149 13.1543H10.8594V18.8439C10.8594 19.4824 11.3704 20 12.0009 20C12.6313 20 13.1424 19.4824 13.1424 18.8439V13.1543H18.8585C19.4889 13.1543 20 12.6367 20 11.9982C20 11.3597 19.4889 10.8421 18.8585 10.8421H13.1424V5.15607Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n</div>\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FabComponent } from \"./fab.component\";\n\n@NgModule({\n declarations: [FabComponent],\n imports: [CommonModule],\n exports: [FabComponent]\n})\nexport class FabModule {\n static forRoot(): ModuleWithProviders<FabModule> {\n return { ngModule: FabModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-fab.mjs","sources":["../../../projects/mis-components/fab/fab.component.ts","../../../projects/mis-components/fab/fab.component.html","../../../projects/mis-components/fab/fab.module.ts","../../../projects/mis-components/fab/mis-crystal-design-system-fab.ts"],"sourcesContent":["/** @format */\n\nimport { Component, ElementRef, HostListener, OnDestroy, ChangeDetectionStrategy, input, signal, WritableSignal, computed } from \"@angular/core\";\nimport { trigger, transition, style, animate, state } from \"@angular/animations\";\n\nexport type FabOptions = {\n backgroundColorClosed?: string;\n backgroundColorOpened?: string;\n size?: number;\n};\n\nexport type FabItem = {\n label?: string;\n icon: string;\n backgroundColor?: string;\n id?: string;\n click?: () => any;\n};\n\nexport type FabItems = FabItem[];\n\n@Component({\n selector: \"mis-fab\",\n templateUrl: \"./fab.component.html\",\n styleUrls: [\"./fab.component.scss\"],\n animations: [\n trigger(\"slideUpFab\", [\n transition(\":enter\", [\n style({ transform: \"translateY(50px)\", opacity: 0 }),\n animate(\"300ms ease-out\", style({ transform: \"translateY(0px)\", opacity: 1 }))\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translateY(70px)\", opacity: 0 }))])\n ]),\n trigger(\"rotateButton\", [\n state(\"default\", style({ transform: \"rotate(0)\" })),\n state(\"rotated\", style({ transform: \"rotate(45deg)\" })),\n transition(\"rotated => default\", animate(\"300ms ease-out\")),\n transition(\"default => rotated\", animate(\"200ms ease-in\"))\n ])\n ]\n})\nexport class FabComponent implements OnDestroy {\n show = input<boolean>(false);\n options = input<FabOptions>({});\n items = input<FabItems>([]);\n\n isOpen: WritableSignal<boolean> = signal(false);\n\n // Computed signal for options with defaults\n computedOptions = computed(() => {\n const currentOptions = this.options();\n return {\n size: 56,\n backgroundColorClosed: \"#0937B2\",\n backgroundColorOpened: \"#3a5fc1\",\n ...currentOptions\n };\n });\n\n constructor(private eRef: ElementRef) {}\n\n @HostListener(\"document:click\", [\"$event\"])\n clickout(event: any) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeFab();\n }\n }\n\n ngOnDestroy(): void {}\n\n clickItem(item: FabItem) {\n this.closeFab();\n item.click?.();\n }\n\n closeFab() {\n this.isOpen.set(false);\n }\n\n toogleFab() {\n this.isOpen.set(!this.isOpen());\n }\n}\n","<div class=\"fab-wrapper\" *ngIf=\"show()\">\n <div class=\"fab-items\" *ngIf=\"isOpen()\" @slideUpFab>\n <div class=\"fab-item\" *ngFor=\"let item of items().reverse(); let i = index\" (click)=\"clickItem(item)\">\n <div *ngIf=\"item.label\" class=\"fab-tooltip\">\n {{ item.label }}\n </div>\n <div\n class=\"fab-button\"\n [ngStyle]=\"{\n backgroundColor: item.backgroundColor || '#0937B2'\n }\"\n >\n <img [src]=\"item.icon\" class=\"add-img\" />\n </div>\n </div>\n </div>\n <div\n class=\"fab-container\"\n [ngStyle]=\"{\n backgroundColor: isOpen() ? computedOptions().backgroundColorOpened : computedOptions().backgroundColorClosed\n }\"\n (click)=\"toogleFab()\"\n >\n <svg\n [@rotateButton]=\"isOpen() ? 'rotated' : 'default'\"\n class=\"add-img\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.1424 5.15607C13.1424 4.51759 12.6313 4 12.0009 4C11.3704 4 10.8594 4.51759 10.8594 5.15607V10.8421H5.14149C4.51106 10.8421 4 11.3597 4 11.9982C4 12.6367 4.51106 13.1543 5.14149 13.1543H10.8594V18.8439C10.8594 19.4824 11.3704 20 12.0009 20C12.6313 20 13.1424 19.4824 13.1424 18.8439V13.1543H18.8585C19.4889 13.1543 20 12.6367 20 11.9982C20 11.3597 19.4889 10.8421 18.8585 10.8421H13.1424V5.15607Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n</div>\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FabComponent } from \"./fab.component\";\n\n@NgModule({\n declarations: [FabComponent],\n imports: [CommonModule],\n exports: [FabComponent]\n})\nexport class FabModule {\n static forRoot(): ModuleWithProviders<FabModule> {\n return { ngModule: FabModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;;ICGM,EAA4C,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAC1C,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;IADJ,EACF,CAAA,SAAA,EAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;;;;IAHF,EAAsG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AAA1B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,yBAAe,CAAC,CAAA,EAAA,CAAA,CAAA;IACnG,EAA4C,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAG5C,EAKC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACC,EAAyC,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AAE7C,IADE,iBAAM,EACF,CAAA;;;IAXE,EAAgB,CAAA,SAAA,EAAA,CAAA;IAAhB,EAAgB,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;IAKpB,EAEE,CAAA,SAAA,EAAA,CAAA;IAFF,EAEE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,OAAA,CAAA,eAAA,IAAA,SAAA,CAAA,CAAA,CAAA;IAEG,EAAiB,CAAA,SAAA,EAAA,CAAA;IAAjB,EAAiB,CAAA,UAAA,CAAA,KAAA,EAAA,OAAA,CAAA,IAAA,EAAA,EAAA,CAAA,aAAA,CAAA,CAAA;;;IAX5B,EAAoD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAClD,EAAsG,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAaxG,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAdkC,EAAW,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,CAAA,CAAA;IACV,EAAsB,CAAA,SAAA,EAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,EAAA,CAAA,OAAA,EAAA,CAAA,CAAA;;;;IAFjE,EAAwC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACtC,EAAoD,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAepD,EAMC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AADC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,kBAAW,CAAC,CAAA,EAAA,CAAA,CAAA;;IAErB,EAQC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACC,EAKE,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IACJ,EAAM,CAAA,YAAA,EAAA,EACF,EACF,CAAA;;;IAvCoB,EAAc,CAAA,SAAA,EAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,MAAA,EAAA,CAAA,CAAA;IAiBpC,EAEE,CAAA,SAAA,EAAA,CAAA;IAFF,EAEE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,MAAA,EAAA,GAAA,MAAA,CAAA,eAAA,EAAA,CAAA,qBAAA,GAAA,MAAA,CAAA,eAAA,EAAA,CAAA,qBAAA,CAAA,CAAA,CAAA;IAIA,EAAkD,CAAA,SAAA,EAAA,CAAA;IAAlD,EAAkD,CAAA,UAAA,CAAA,eAAA,EAAA,MAAA,CAAA,MAAA,EAAA,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;;MDiB3C,YAAY,CAAA;AAkBvB,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAjBpC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAa,EAAE,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAW,EAAE,CAAC,CAAC;AAE5B,QAAA,IAAA,CAAA,MAAM,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;;AAGhD,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAC9B,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO;AACL,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,qBAAqB,EAAE,SAAS;AAChC,gBAAA,qBAAqB,EAAE,SAAS;AAChC,gBAAA,GAAG,cAAc;aAClB,CAAC;AACJ,SAAC,CAAC,CAAC;KAEqC;AAGxC,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;AAED,IAAA,WAAW,MAAW;AAEtB,IAAA,SAAS,CAAC,IAAa,EAAA;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC;KAChB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,SAAS,GAAA;QACP,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACjC;6GAxCU,YAAY,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAAZ,YAAY,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAZ,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qCAAA,CAAA,MAAA,EAAA,EAAA,OAAA,oBAAgB,CAAJ,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,CAAA;;YCzCzB,EAAwC,CAAA,UAAA,CAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YAAd,EAAY,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,EAAA,CAAA,CAAA;ADyBxB,SAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,imJAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA;gBACV,OAAO,CAAC,YAAY,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE;wBACnB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpD,wBAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC/E,CAAC;oBACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBACxG,CAAC;gBACF,OAAO,CAAC,cAAc,EAAE;oBACtB,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;oBACnD,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AACvD,oBAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC3D,oBAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;iBAC3D,CAAC;AACH,aAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;iFAEU,YAAY,EAAA,CAAA;cApBxB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAGP,UAAA,EAAA;oBACV,OAAO,CAAC,YAAY,EAAE;wBACpB,UAAU,CAAC,QAAQ,EAAE;4BACnB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpD,4BAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;yBAC/E,CAAC;wBACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBACxG,CAAC;oBACF,OAAO,CAAC,cAAc,EAAE;wBACtB,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;wBACnD,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AACvD,wBAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC3D,wBAAA,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;qBAC3D,CAAC;AACH,iBAAA,EAAA,QAAA,EAAA,6hDAAA,EAAA,MAAA,EAAA,CAAA,g2IAAA,CAAA,EAAA,CAAA;2CAuBD,QAAQ,EAAA,CAAA;kBADP,YAAY;mBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;kFApB/B,YAAY,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MEhCZ,SAAS,CAAA;AACpB,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KAC/C;0GAHU,SAAS,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAT,SAAS,EAAA,CAAA,CAAA,EAAA;uEAHV,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAGX,SAAS,EAAA,CAAA;cALrB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,SAAS,EAJL,EAAA,YAAA,EAAA,CAAA,YAAY,CACjB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACPxB;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, input, output, signal,
|
|
2
|
+
import { Pipe, input, output, signal, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i4 from '@angular/forms';
|
|
@@ -287,37 +287,38 @@ class FilterPanelComponent {
|
|
|
287
287
|
startDate: '',
|
|
288
288
|
endDate: '',
|
|
289
289
|
});
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
else if (filter.type === 'multiSelect' || filter.type === 'checkbox') {
|
|
304
|
-
if (value.length > 0) {
|
|
305
|
-
count++;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
else {
|
|
309
|
-
count++;
|
|
310
|
-
}
|
|
290
|
+
}
|
|
291
|
+
// Method to calculate filter count (not a computed signal because form values aren't reactive)
|
|
292
|
+
getFilterCount() {
|
|
293
|
+
let count = 0;
|
|
294
|
+
const formValue = this.filterForm.value;
|
|
295
|
+
this.config().forEach((filter) => {
|
|
296
|
+
const value = formValue[filter.key];
|
|
297
|
+
// Special handling for range type - only count if at least one value is set
|
|
298
|
+
if (filter.type === 'range') {
|
|
299
|
+
if (value && (value.min !== null || value.max !== null)) {
|
|
300
|
+
count++;
|
|
311
301
|
}
|
|
312
|
-
|
|
313
|
-
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
// Special handling for multiSelect/checkbox - check array length directly
|
|
305
|
+
if (filter.type === 'multiSelect' || filter.type === 'checkbox') {
|
|
306
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
307
|
+
count++;
|
|
308
|
+
}
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
// For other types, use hasValue pipe
|
|
312
|
+
if (this.hasValue.transform(value)) {
|
|
313
|
+
count++;
|
|
314
|
+
}
|
|
314
315
|
});
|
|
316
|
+
return count;
|
|
315
317
|
}
|
|
316
318
|
ngOnInit() {
|
|
317
319
|
// Access the config signal value by calling it like a function
|
|
318
320
|
this.initializeFormControls(this.config());
|
|
319
321
|
}
|
|
320
|
-
// The ngOnChanges lifecycle hook is no longer necessary with signal inputs.
|
|
321
322
|
initializeFormControls(config) {
|
|
322
323
|
this.filterForm = new FormGroup({});
|
|
323
324
|
config.forEach((filter) => {
|
|
@@ -371,7 +372,7 @@ class FilterPanelComponent {
|
|
|
371
372
|
// Emit the apply event with the filter data using the signal output
|
|
372
373
|
this.onApply.emit({
|
|
373
374
|
filterData: this.filterForm.value,
|
|
374
|
-
filterCount: this.
|
|
375
|
+
filterCount: this.getFilterCount()
|
|
375
376
|
});
|
|
376
377
|
this.closePanel();
|
|
377
378
|
}
|