commons-shared-web-ui 0.0.20 → 0.0.21

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.
@@ -40,16 +40,16 @@ import * as i9 from '@angular/material/autocomplete';
40
40
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
41
41
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
42
42
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
43
- import * as i1$2 from '@angular/forms';
44
- import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators, FormControl, FormArray, FormGroup } from '@angular/forms';
45
43
  import * as i1$1 from '@angular/router';
46
44
  import { RouterModule } from '@angular/router';
45
+ import * as i3 from '@angular/common/http';
46
+ import { HttpHeaders, HttpParams } from '@angular/common/http';
47
+ import * as i1$2 from '@angular/forms';
48
+ import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators, FormControl, FormArray, FormGroup } from '@angular/forms';
47
49
  import * as i2$1 from '@angular/cdk/scrolling';
48
50
  import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
49
51
  import { Subject, BehaviorSubject, combineLatest, forkJoin, of } from 'rxjs';
50
52
  import { debounceTime, distinctUntilChanged, takeUntil, map, finalize, catchError } from 'rxjs/operators';
51
- import * as i3 from '@angular/common/http';
52
- import { HttpHeaders, HttpParams } from '@angular/common/http';
53
53
  import * as i11 from 'ngx-quill';
54
54
  import { QuillModule } from 'ngx-quill';
55
55
  import * as i1$3 from '@angular/platform-browser';
@@ -617,6 +617,170 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
617
617
  args: ['document:keydown.escape', ['$event']]
618
618
  }] } });
619
619
 
620
+ class ButtonDropdownComponent {
621
+ elementRef;
622
+ router;
623
+ http;
624
+ label = 'Actions';
625
+ variant = 'primary';
626
+ menuTheme = 'light';
627
+ icon = 'fa fa-chevron-down';
628
+ actions = [];
629
+ data = null;
630
+ disabled = false;
631
+ apiActionStart = new EventEmitter();
632
+ apiActionSuccess = new EventEmitter();
633
+ apiActionError = new EventEmitter();
634
+ actionClick = new EventEmitter();
635
+ isOpen = false;
636
+ isConfirmModalOpen = false;
637
+ pendingAction = null;
638
+ confirmConfig = null;
639
+ confirmMessage = '';
640
+ constructor(elementRef, router, http) {
641
+ this.elementRef = elementRef;
642
+ this.router = router;
643
+ this.http = http;
644
+ }
645
+ onClickOutside(event) {
646
+ if (!this.elementRef.nativeElement.contains(event.target)) {
647
+ this.isOpen = false;
648
+ }
649
+ }
650
+ toggleDropdown(event) {
651
+ if (this.disabled)
652
+ return;
653
+ event.stopPropagation();
654
+ this.isOpen = !this.isOpen;
655
+ }
656
+ onActionItemClick(action, event) {
657
+ event.stopPropagation();
658
+ this.isOpen = false;
659
+ if (action.disabled)
660
+ return;
661
+ if (action.confirmationNeeded) {
662
+ this.pendingAction = action;
663
+ // Smart inference for "delete" actions
664
+ const isDelete = action.apiMethod === 'DELETE' ||
665
+ action.variant === 'danger' ||
666
+ action.color === 'red' ||
667
+ action.label.toLowerCase().includes('delete');
668
+ // Apply intelligent fallbacks based on action intent
669
+ this.confirmMessage = action.confirmationMessage || (isDelete
670
+ ? 'Are you sure you want to delete this item? This action cannot be undone.'
671
+ : 'Are you sure you want to proceed?');
672
+ this.confirmConfig = {
673
+ title: action.confirmationTitle || (isDelete ? 'Confirm Deletion' : 'Please Confirm'),
674
+ icon: { type: 'material', value: 'warning', color: isDelete ? '#E63E30' : '#F9C80E' },
675
+ confirmButton: {
676
+ label: isDelete ? 'Delete' : 'Confirm',
677
+ type: isDelete ? 'danger' : 'primary'
678
+ },
679
+ cancelButton: {
680
+ show: true,
681
+ label: 'Cancel'
682
+ }
683
+ };
684
+ this.isConfirmModalOpen = true;
685
+ }
686
+ else {
687
+ this.executeAction(action);
688
+ }
689
+ }
690
+ executeAction(action) {
691
+ this.actionClick.emit({ action, data: this.data });
692
+ if (action.type === 'callback' && action.callback) {
693
+ action.callback(this.data);
694
+ }
695
+ else if (action.type === 'route' && action.route) {
696
+ this.navigateToRoute(action.route, this.data);
697
+ }
698
+ else if (action.type === 'api' && action.apiUrl) {
699
+ this.executeApiCall(action);
700
+ }
701
+ }
702
+ navigateToRoute(routePattern, rowData) {
703
+ let finalRoute = routePattern;
704
+ // Simple parameter replacement like smart-table: /users/:id -> /users/123
705
+ if (rowData) {
706
+ Object.keys(rowData).forEach(key => {
707
+ finalRoute = finalRoute.replace(`:${key}`, rowData[key]);
708
+ });
709
+ }
710
+ this.router.navigate([finalRoute]);
711
+ }
712
+ executeApiCall(action) {
713
+ this.apiActionStart.emit(action);
714
+ let url = action.apiUrl;
715
+ if (this.data) {
716
+ Object.keys(this.data).forEach(key => {
717
+ url = url.replace(`:${key}`, this.data[key]);
718
+ });
719
+ }
720
+ const method = (action.apiMethod || 'GET').toUpperCase();
721
+ let request$;
722
+ if (method === 'GET')
723
+ request$ = this.http.get(url);
724
+ else if (method === 'POST')
725
+ request$ = this.http.post(url, action.apiPayload || this.data);
726
+ else if (method === 'PUT')
727
+ request$ = this.http.put(url, action.apiPayload || this.data);
728
+ else if (method === 'DELETE')
729
+ request$ = this.http.delete(url);
730
+ else if (method === 'PATCH')
731
+ request$ = this.http.patch(url, action.apiPayload || this.data);
732
+ else
733
+ request$ = this.http.get(url); // fallback
734
+ request$.subscribe({
735
+ next: (res) => this.apiActionSuccess.emit({ action, response: res }),
736
+ error: (err) => this.apiActionError.emit({ action, error: err })
737
+ });
738
+ }
739
+ invokePendingAction() {
740
+ if (this.pendingAction) {
741
+ this.executeAction(this.pendingAction);
742
+ }
743
+ this.closeConfirmModal();
744
+ }
745
+ closeConfirmModal() {
746
+ this.isConfirmModalOpen = false;
747
+ this.pendingAction = null;
748
+ this.confirmConfig = null;
749
+ this.confirmMessage = '';
750
+ }
751
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ButtonDropdownComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.Router }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
752
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ButtonDropdownComponent, isStandalone: false, selector: "lib-button-dropdown", inputs: { label: "label", variant: "variant", menuTheme: "menuTheme", icon: "icon", actions: "actions", data: "data", disabled: "disabled" }, outputs: { apiActionStart: "apiActionStart", apiActionSuccess: "apiActionSuccess", apiActionError: "apiActionError", actionClick: "actionClick" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<div class=\"cc-btn-dropdown-container\">\r\n <!-- Main Toggle Button -->\r\n <lib-button \r\n [variant]=\"variant\" \r\n [disabled]=\"disabled\"\r\n (click)=\"toggleDropdown($event)\">\r\n <span class=\"cc-btn-dropdown-content\">\r\n {{ label }}\r\n <i *ngIf=\"icon\" [class]=\"icon\" class=\"cc-btn-dropdown-icon\"></i>\r\n </span>\r\n </lib-button>\r\n\r\n <!-- Dropdown Menu -->\r\n <div class=\"cc-dropdown-menu\" [ngClass]=\"'cc-dropdown-menu--' + menuTheme\" *ngIf=\"isOpen\">\r\n <button \r\n type=\"button\" \r\n class=\"cc-dropdown-item\" \r\n *ngFor=\"let action of actions\"\r\n [disabled]=\"action.disabled\"\r\n [ngClass]=\"action.variant ? 'cc-dropdown-item--' + action.variant : (action.color === 'red' || action.color === 'danger') ? 'cc-dropdown-item--danger' : ''\"\r\n [style.color]=\"action.color && !action.variant && action.color !== 'red' && action.color !== 'danger' ? action.color : null\"\r\n (click)=\"onActionItemClick(action, $event)\">\r\n <i *ngIf=\"action.icon\" [class]=\"action.icon\" class=\"cc-dropdown-item-icon\"></i>\r\n <span>{{ action.label }}</span>\r\n </button>\r\n <div class=\"cc-dropdown-empty\" *ngIf=\"!actions || actions.length === 0\">\r\n No actions available\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Confirmation Modal for Critical Actions -->\r\n<cc-confirmation-modal \r\n *ngIf=\"isConfirmModalOpen\"\r\n [isOpen]=\"isConfirmModalOpen\" \r\n [config]=\"confirmConfig!\"\r\n (confirm)=\"invokePendingAction()\"\r\n (close)=\"closeConfirmModal()\"\r\n (cancel)=\"closeConfirmModal()\">\r\n <p>{{ confirmMessage }}</p>\r\n</cc-confirmation-modal>\r\n", styles: [".cc-btn-dropdown-container{position:relative;display:inline-block}.cc-btn-dropdown-container .cc-btn-dropdown-content{display:flex;align-items:center;gap:.5rem}.cc-btn-dropdown-container .cc-btn-dropdown-icon{font-size:.85em;margin-left:2px}.cc-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:1000;min-width:140px;border-radius:var(--cc-btn-dropdown-radius, 4px);padding:.25rem 0;font-family:var(--cc-btn-font-family, \"Inter\", sans-serif);font-size:var(--cc-btn-font-size, .875rem)}.cc-dropdown-menu--light{background-color:var(--cc-btn-dropdown-light-bg, #ffffff);border:var(--cc-btn-dropdown-border-light, 1px solid #e0e0e0);box-shadow:var(--cc-btn-dropdown-shadow-light, 0 4px 6px rgba(0, 0, 0, .1))}.cc-dropdown-menu--light .cc-dropdown-item{color:var(--cc-btn-dropdown-light-item-color, #333333)}.cc-dropdown-menu--light .cc-dropdown-item:hover:not(:disabled){background-color:var(--cc-btn-dropdown-light-item-hover-bg, #f5f5f5)}.cc-dropdown-menu--light .cc-dropdown-empty{color:#888}.cc-dropdown-menu--dark{background-color:var(--cc-btn-dropdown-dark-bg, #1a1a1a);border:var(--cc-btn-dropdown-border-dark, 1px solid #444444);box-shadow:var(--cc-btn-dropdown-shadow-dark, 0 4px 6px rgba(0, 0, 0, .5))}.cc-dropdown-menu--dark .cc-dropdown-item{color:var(--cc-btn-dropdown-dark-item-color, #ffffff)}.cc-dropdown-menu--dark .cc-dropdown-item:hover:not(:disabled){background-color:var(--cc-btn-dropdown-dark-item-hover-bg, #2d2d2d)}.cc-dropdown-menu--dark .cc-dropdown-empty{color:#bbb}.cc-dropdown-menu .cc-dropdown-empty{padding:.5rem 1rem;font-style:italic}.cc-dropdown-menu .cc-dropdown-item{display:flex;align-items:center;width:100%;padding:.5rem 1rem;border:none;background:transparent;text-align:left;cursor:pointer;transition:background-color .2s,color .2s}.cc-dropdown-menu .cc-dropdown-item:disabled{opacity:.5;cursor:not-allowed}.cc-dropdown-menu .cc-dropdown-item .cc-dropdown-item-icon{margin-right:.5rem;width:1rem;text-align:center}.cc-dropdown-menu .cc-dropdown-item--primary{background-color:var(--cc-btn-dropdown-primary-bg, #262125);color:var(--cc-btn-dropdown-primary-color, #ffffff)}.cc-dropdown-menu .cc-dropdown-item--primary:hover:not(:disabled){background-color:var(--cc-btn-dropdown-primary-hover, #3d353b)}.cc-dropdown-menu .cc-dropdown-item--warning{background-color:var(--cc-btn-dropdown-warning-bg, #F9C80E);color:var(--cc-btn-dropdown-warning-color, #000000)}.cc-dropdown-menu .cc-dropdown-item--warning:hover:not(:disabled){background-color:var(--cc-btn-dropdown-warning-hover, #ebd573)}.cc-dropdown-menu .cc-dropdown-item--danger{background-color:var(--cc-btn-dropdown-danger-bg, #E63E30);color:var(--cc-btn-dropdown-danger-color, #ffffff)}.cc-dropdown-menu .cc-dropdown-item--danger:hover:not(:disabled){background-color:var(--cc-btn-dropdown-danger-hover, #c93528)}.cc-dropdown-menu .cc-dropdown-item--success{background-color:var(--cc-btn-dropdown-success-bg, #16A34A);color:var(--cc-btn-dropdown-success-color, #ffffff)}.cc-dropdown-menu .cc-dropdown-item--success:hover:not(:disabled){background-color:var(--cc-btn-dropdown-success-hover, #148f41)}.cc-dropdown-menu .cc-dropdown-item--secondary{background-color:var(--cc-btn-dropdown-secondary-bg, #E8EAED);color:var(--cc-btn-dropdown-secondary-color, #000000)}.cc-dropdown-menu .cc-dropdown-item--secondary:hover:not(:disabled){background-color:var(--cc-btn-dropdown-secondary-hover, #d1d5db)}.cc-dropdown-menu .cc-dropdown-item--outline{background-color:var(--cc-btn-dropdown-outline-bg, transparent);color:var(--cc-btn-dropdown-outline-color, #000000);border:1px solid var(--cc-btn-dropdown-outline-color, #000000)}.cc-dropdown-menu .cc-dropdown-item--outline:hover:not(:disabled){background-color:var(--cc-btn-dropdown-outline-hover, rgba(0, 0, 0, .05))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["variant", "type", "disabled", "width", "height", "borderRadius", "fontSize", "fontWeight", "backgroundColor", "color", "border", "icon", "labels"] }, { kind: "component", type: ConfirmationModalComponent, selector: "cc-confirmation-modal", inputs: ["config", "isOpen"], outputs: ["confirm", "cancel", "close", "showCodeSnippet"] }] });
753
+ }
754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ButtonDropdownComponent, decorators: [{
755
+ type: Component,
756
+ args: [{ selector: 'lib-button-dropdown', standalone: false, template: "<div class=\"cc-btn-dropdown-container\">\r\n <!-- Main Toggle Button -->\r\n <lib-button \r\n [variant]=\"variant\" \r\n [disabled]=\"disabled\"\r\n (click)=\"toggleDropdown($event)\">\r\n <span class=\"cc-btn-dropdown-content\">\r\n {{ label }}\r\n <i *ngIf=\"icon\" [class]=\"icon\" class=\"cc-btn-dropdown-icon\"></i>\r\n </span>\r\n </lib-button>\r\n\r\n <!-- Dropdown Menu -->\r\n <div class=\"cc-dropdown-menu\" [ngClass]=\"'cc-dropdown-menu--' + menuTheme\" *ngIf=\"isOpen\">\r\n <button \r\n type=\"button\" \r\n class=\"cc-dropdown-item\" \r\n *ngFor=\"let action of actions\"\r\n [disabled]=\"action.disabled\"\r\n [ngClass]=\"action.variant ? 'cc-dropdown-item--' + action.variant : (action.color === 'red' || action.color === 'danger') ? 'cc-dropdown-item--danger' : ''\"\r\n [style.color]=\"action.color && !action.variant && action.color !== 'red' && action.color !== 'danger' ? action.color : null\"\r\n (click)=\"onActionItemClick(action, $event)\">\r\n <i *ngIf=\"action.icon\" [class]=\"action.icon\" class=\"cc-dropdown-item-icon\"></i>\r\n <span>{{ action.label }}</span>\r\n </button>\r\n <div class=\"cc-dropdown-empty\" *ngIf=\"!actions || actions.length === 0\">\r\n No actions available\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- Confirmation Modal for Critical Actions -->\r\n<cc-confirmation-modal \r\n *ngIf=\"isConfirmModalOpen\"\r\n [isOpen]=\"isConfirmModalOpen\" \r\n [config]=\"confirmConfig!\"\r\n (confirm)=\"invokePendingAction()\"\r\n (close)=\"closeConfirmModal()\"\r\n (cancel)=\"closeConfirmModal()\">\r\n <p>{{ confirmMessage }}</p>\r\n</cc-confirmation-modal>\r\n", styles: [".cc-btn-dropdown-container{position:relative;display:inline-block}.cc-btn-dropdown-container .cc-btn-dropdown-content{display:flex;align-items:center;gap:.5rem}.cc-btn-dropdown-container .cc-btn-dropdown-icon{font-size:.85em;margin-left:2px}.cc-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:1000;min-width:140px;border-radius:var(--cc-btn-dropdown-radius, 4px);padding:.25rem 0;font-family:var(--cc-btn-font-family, \"Inter\", sans-serif);font-size:var(--cc-btn-font-size, .875rem)}.cc-dropdown-menu--light{background-color:var(--cc-btn-dropdown-light-bg, #ffffff);border:var(--cc-btn-dropdown-border-light, 1px solid #e0e0e0);box-shadow:var(--cc-btn-dropdown-shadow-light, 0 4px 6px rgba(0, 0, 0, .1))}.cc-dropdown-menu--light .cc-dropdown-item{color:var(--cc-btn-dropdown-light-item-color, #333333)}.cc-dropdown-menu--light .cc-dropdown-item:hover:not(:disabled){background-color:var(--cc-btn-dropdown-light-item-hover-bg, #f5f5f5)}.cc-dropdown-menu--light .cc-dropdown-empty{color:#888}.cc-dropdown-menu--dark{background-color:var(--cc-btn-dropdown-dark-bg, #1a1a1a);border:var(--cc-btn-dropdown-border-dark, 1px solid #444444);box-shadow:var(--cc-btn-dropdown-shadow-dark, 0 4px 6px rgba(0, 0, 0, .5))}.cc-dropdown-menu--dark .cc-dropdown-item{color:var(--cc-btn-dropdown-dark-item-color, #ffffff)}.cc-dropdown-menu--dark .cc-dropdown-item:hover:not(:disabled){background-color:var(--cc-btn-dropdown-dark-item-hover-bg, #2d2d2d)}.cc-dropdown-menu--dark .cc-dropdown-empty{color:#bbb}.cc-dropdown-menu .cc-dropdown-empty{padding:.5rem 1rem;font-style:italic}.cc-dropdown-menu .cc-dropdown-item{display:flex;align-items:center;width:100%;padding:.5rem 1rem;border:none;background:transparent;text-align:left;cursor:pointer;transition:background-color .2s,color .2s}.cc-dropdown-menu .cc-dropdown-item:disabled{opacity:.5;cursor:not-allowed}.cc-dropdown-menu .cc-dropdown-item .cc-dropdown-item-icon{margin-right:.5rem;width:1rem;text-align:center}.cc-dropdown-menu .cc-dropdown-item--primary{background-color:var(--cc-btn-dropdown-primary-bg, #262125);color:var(--cc-btn-dropdown-primary-color, #ffffff)}.cc-dropdown-menu .cc-dropdown-item--primary:hover:not(:disabled){background-color:var(--cc-btn-dropdown-primary-hover, #3d353b)}.cc-dropdown-menu .cc-dropdown-item--warning{background-color:var(--cc-btn-dropdown-warning-bg, #F9C80E);color:var(--cc-btn-dropdown-warning-color, #000000)}.cc-dropdown-menu .cc-dropdown-item--warning:hover:not(:disabled){background-color:var(--cc-btn-dropdown-warning-hover, #ebd573)}.cc-dropdown-menu .cc-dropdown-item--danger{background-color:var(--cc-btn-dropdown-danger-bg, #E63E30);color:var(--cc-btn-dropdown-danger-color, #ffffff)}.cc-dropdown-menu .cc-dropdown-item--danger:hover:not(:disabled){background-color:var(--cc-btn-dropdown-danger-hover, #c93528)}.cc-dropdown-menu .cc-dropdown-item--success{background-color:var(--cc-btn-dropdown-success-bg, #16A34A);color:var(--cc-btn-dropdown-success-color, #ffffff)}.cc-dropdown-menu .cc-dropdown-item--success:hover:not(:disabled){background-color:var(--cc-btn-dropdown-success-hover, #148f41)}.cc-dropdown-menu .cc-dropdown-item--secondary{background-color:var(--cc-btn-dropdown-secondary-bg, #E8EAED);color:var(--cc-btn-dropdown-secondary-color, #000000)}.cc-dropdown-menu .cc-dropdown-item--secondary:hover:not(:disabled){background-color:var(--cc-btn-dropdown-secondary-hover, #d1d5db)}.cc-dropdown-menu .cc-dropdown-item--outline{background-color:var(--cc-btn-dropdown-outline-bg, transparent);color:var(--cc-btn-dropdown-outline-color, #000000);border:1px solid var(--cc-btn-dropdown-outline-color, #000000)}.cc-dropdown-menu .cc-dropdown-item--outline:hover:not(:disabled){background-color:var(--cc-btn-dropdown-outline-hover, rgba(0, 0, 0, .05))}\n"] }]
757
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.Router }, { type: i3.HttpClient }], propDecorators: { label: [{
758
+ type: Input
759
+ }], variant: [{
760
+ type: Input
761
+ }], menuTheme: [{
762
+ type: Input
763
+ }], icon: [{
764
+ type: Input
765
+ }], actions: [{
766
+ type: Input
767
+ }], data: [{
768
+ type: Input
769
+ }], disabled: [{
770
+ type: Input
771
+ }], apiActionStart: [{
772
+ type: Output
773
+ }], apiActionSuccess: [{
774
+ type: Output
775
+ }], apiActionError: [{
776
+ type: Output
777
+ }], actionClick: [{
778
+ type: Output
779
+ }], onClickOutside: [{
780
+ type: HostListener,
781
+ args: ['document:click', ['$event']]
782
+ }] } });
783
+
620
784
  class ConfirmationModalModule {
621
785
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfirmationModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
622
786
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ConfirmationModalModule, declarations: [ConfirmationModalComponent], imports: [CommonModule,
@@ -645,6 +809,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
645
809
  }]
646
810
  }] });
647
811
 
812
+ class ButtonDropdownModule {
813
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ButtonDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
814
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ButtonDropdownModule, declarations: [ButtonDropdownComponent], imports: [CommonModule,
815
+ RouterModule,
816
+ ButtonModule,
817
+ ConfirmationModalModule], exports: [ButtonDropdownComponent] });
818
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ButtonDropdownModule, imports: [CommonModule,
819
+ RouterModule,
820
+ ButtonModule,
821
+ ConfirmationModalModule] });
822
+ }
823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ButtonDropdownModule, decorators: [{
824
+ type: NgModule,
825
+ args: [{
826
+ declarations: [
827
+ ButtonDropdownComponent
828
+ ],
829
+ imports: [
830
+ CommonModule,
831
+ RouterModule,
832
+ ButtonModule,
833
+ ConfirmationModalModule
834
+ ],
835
+ exports: [
836
+ ButtonDropdownComponent
837
+ ]
838
+ }]
839
+ }] });
840
+
648
841
  class InputComponent {
649
842
  config;
650
843
  labels;
@@ -6281,13 +6474,13 @@ class SharedUiModule {
6281
6474
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SharedUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6282
6475
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: SharedUiModule, imports: [CommonModule,
6283
6476
  MaterialModule,
6284
- AlertModule, ButtonModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6477
+ AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6285
6478
  SummaryCardModule,
6286
6479
  ConfigurableFormModule,
6287
6480
  FormComponentsModule,
6288
6481
  SmartFormModule,
6289
6482
  SideNavModule], exports: [MaterialModule,
6290
- AlertModule, ButtonModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6483
+ AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6291
6484
  SummaryCardModule,
6292
6485
  ConfigurableFormModule,
6293
6486
  FormComponentsModule,
@@ -6295,13 +6488,13 @@ class SharedUiModule {
6295
6488
  SideNavModule] });
6296
6489
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SharedUiModule, imports: [CommonModule,
6297
6490
  MaterialModule,
6298
- AlertModule, ButtonModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6491
+ AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6299
6492
  SummaryCardModule,
6300
6493
  ConfigurableFormModule,
6301
6494
  FormComponentsModule,
6302
6495
  SmartFormModule,
6303
6496
  SideNavModule, MaterialModule,
6304
- AlertModule, ButtonModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6497
+ AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6305
6498
  SummaryCardModule,
6306
6499
  ConfigurableFormModule,
6307
6500
  FormComponentsModule,
@@ -6315,7 +6508,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
6315
6508
  imports: [
6316
6509
  CommonModule,
6317
6510
  MaterialModule,
6318
- AlertModule, ButtonModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6511
+ AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6319
6512
  SummaryCardModule,
6320
6513
  ConfigurableFormModule,
6321
6514
  FormComponentsModule,
@@ -6324,7 +6517,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
6324
6517
  ],
6325
6518
  exports: [
6326
6519
  MaterialModule,
6327
- AlertModule, ButtonModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6520
+ AlertModule, ButtonModule, ButtonDropdownModule, ConfirmationModalModule, FilterSidebarModule, FilterModule,
6328
6521
  SummaryCardModule,
6329
6522
  ConfigurableFormModule,
6330
6523
  FormComponentsModule,
@@ -9078,5 +9271,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
9078
9271
  * Generated bundle index. Do not edit.
9079
9272
  */
9080
9273
 
9081
- export { AlertComponent, AlertModule, ButtonComponent, ButtonModule, CheckboxComponent, ConfigurableFormComponent, configurableForm_examples as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_SIDE_NAV_TOOLTIP_POSITION, DatepickerComponent, DropdownComponent, ExpressionService, FilterComponent, FilterModule, FilterSidebarComponent, FilterSidebarModule, FormComponentsModule, InputComponent, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, RadioComponent, SearchComponent, SharedUiModule, SideNavComponent, SideNavModule, SmartFormComponent, SmartFormController, smartForm_examples as SmartFormExamples, SmartFormModule, SmartTableComponent, SmartTableModule, SnackbarComponent, SnackbarModule, SnackbarService, StringUtils, SummaryCardComponent, SummaryCardModule, ToggleComponent, ValidationUtils, appendBaseUrlRecursively, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem, translateConfig };
9274
+ export { AlertComponent, AlertModule, ButtonComponent, ButtonDropdownComponent, ButtonDropdownModule, ButtonModule, CheckboxComponent, ConfigurableFormComponent, configurableForm_examples as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_SIDE_NAV_TOOLTIP_POSITION, DatepickerComponent, DropdownComponent, ExpressionService, FilterComponent, FilterModule, FilterSidebarComponent, FilterSidebarModule, FormComponentsModule, InputComponent, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, RadioComponent, SearchComponent, SharedUiModule, SideNavComponent, SideNavModule, SmartFormComponent, SmartFormController, smartForm_examples as SmartFormExamples, SmartFormModule, SmartTableComponent, SmartTableModule, SnackbarComponent, SnackbarModule, SnackbarService, StringUtils, SummaryCardComponent, SummaryCardModule, ToggleComponent, ValidationUtils, appendBaseUrlRecursively, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem, translateConfig };
9082
9275
  //# sourceMappingURL=commons-shared-web-ui.mjs.map