@paperless/angular 0.1.0-alpha.368 → 0.1.0-alpha.369

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.
@@ -1,6 +1,6 @@
1
1
  import { trigger, transition, style, animate } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, EventEmitter, Input, Output, ViewChild, Directive, HostListener, ChangeDetectionStrategy, NgModule, Injector, Injectable, HostBinding, TemplateRef, ContentChild, ContentChildren, Host, Pipe } from '@angular/core';
3
+ import { Component, EventEmitter, Input, Output, ViewChild, Directive, HostListener, ChangeDetectionStrategy, NgModule, Injector, Injectable, HostBinding, TemplateRef, ContentChild, Host, ContentChildren, Pipe } from '@angular/core';
4
4
  import { FormControl, FormGroup, FormArray, NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import * as i1$1 from '@angular/common';
6
6
  import { CommonModule, DatePipe, CurrencyPipe } from '@angular/common';
@@ -2423,6 +2423,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
2423
2423
  }]
2424
2424
  }] } });
2425
2425
 
2426
+ class TableCustomFilterDirective {
2427
+ }
2428
+ TableCustomFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableCustomFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2429
+ TableCustomFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: TableCustomFilterDirective, selector: "[p-table-custom-filter]", ngImport: i0 });
2430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableCustomFilterDirective, decorators: [{
2431
+ type: Directive,
2432
+ args: [{
2433
+ selector: '[p-table-custom-filter]',
2434
+ }]
2435
+ }] });
2436
+
2426
2437
  class TableFilterModalDirective {
2427
2438
  }
2428
2439
  TableFilterModalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableFilterModalDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -2434,9 +2445,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
2434
2445
  }]
2435
2446
  }] });
2436
2447
 
2437
- const defaultSize = 12;
2438
- const defaultSizeOptions = [12, 24, 68, 136];
2439
-
2440
2448
  class TableFooterDirective extends BaseValueAccessor {
2441
2449
  constructor(el) {
2442
2450
  super(el);
@@ -2541,6 +2549,208 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
2541
2549
  }]
2542
2550
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
2543
2551
 
2552
+ /* eslint-disable @angular-eslint/no-host-metadata-property */
2553
+ class TableNgxDirective extends BaseValueAccessor {
2554
+ constructor(el, _base) {
2555
+ super(el);
2556
+ this._base = _base;
2557
+ this.lastValue = {
2558
+ query: '',
2559
+ quickFilter: undefined,
2560
+ filters: [],
2561
+ page: 1,
2562
+ pageSize: 12,
2563
+ selectedRows: [],
2564
+ };
2565
+ }
2566
+ writeValue(value) {
2567
+ this._base.query = this.lastValue.query = value?.query;
2568
+ // this.el.nativeElement.query = this.lastValue.query = value?.query;
2569
+ this.lastValue.quickFilter = value?.quickFilter;
2570
+ this.lastValue.filters = value?.filters;
2571
+ this._base.page = this.lastValue.page =
2572
+ value?.page == null ? 1 : value?.page;
2573
+ this._base.pageSize = this.lastValue.pageSize =
2574
+ value?.pageSize == null ? 12 : value?.pageSize;
2575
+ // this.el.nativeElement.page = this.lastValue.page =
2576
+ // value?.page == null ? 1 : value?.page;
2577
+ // this.el.nativeElement.pageSize = this.lastValue.pageSize =
2578
+ // value?.pageSize == null ? 12 : value?.pageSize;
2579
+ this.lastValue.selectedRows =
2580
+ value?.selectedRows == null ? [] : value?.selectedRows;
2581
+ if (value?.quickFilter) {
2582
+ this._setActiveQuickFilter(value.quickFilter);
2583
+ }
2584
+ this._base.selectedFiltersAmount = !value.filters || value.filters.length === 0 ? undefined : value.filters.length;
2585
+ this._checkEmptyStateType();
2586
+ this._checkResetButtons();
2587
+ }
2588
+ registerOnChange(fn) {
2589
+ this.onChange = fn;
2590
+ }
2591
+ registerOnTouched(fn) {
2592
+ this.onTouched = fn;
2593
+ }
2594
+ handleChange(value, type) {
2595
+ this.handleChangeEvent({
2596
+ ...this.lastValue,
2597
+ [type]: value,
2598
+ });
2599
+ if (type === 'quickFilter' && typeof value === 'object') {
2600
+ this._setActiveQuickFilter(value);
2601
+ }
2602
+ this._checkEmptyStateType();
2603
+ this._checkResetButtons();
2604
+ }
2605
+ _setActiveQuickFilter(quickFilter) {
2606
+ this._base.activeQuickFilterIdentifier = quickFilter?.identifier;
2607
+ // this.el.nativeElement.activeQuickFilterIdentifier =
2608
+ // quickFilter?.identifier;
2609
+ }
2610
+ _checkEmptyStateType() {
2611
+ if (this.lastValue.query?.length || !this.lastValue.quickFilter?.default || (this._base.selectedFiltersAmount && this._base.selectedFiltersAmount > 0) || this.lastValue.filters?.length) {
2612
+ this._base.emptyStateType = 'filtered';
2613
+ return;
2614
+ }
2615
+ this._base.emptyStateType = 'no_filter';
2616
+ }
2617
+ _checkResetButtons() {
2618
+ const activeQuickFilter = this.lastValue.quickFilter;
2619
+ const selectedFiltersAmount = this._base.selectedFiltersAmount;
2620
+ if (activeQuickFilter ||
2621
+ selectedFiltersAmount) {
2622
+ if (selectedFiltersAmount && selectedFiltersAmount > 0) {
2623
+ this._base.filterModalShowReset = true;
2624
+ }
2625
+ else {
2626
+ this._base.filterModalShowReset = false;
2627
+ }
2628
+ if (selectedFiltersAmount && selectedFiltersAmount > 0 || !activeQuickFilter?.default) {
2629
+ this._base.filterModalShowResetMobile = true;
2630
+ }
2631
+ else {
2632
+ this._base.filterModalShowResetMobile = false;
2633
+ }
2634
+ }
2635
+ }
2636
+ }
2637
+ TableNgxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableNgxDirective, deps: [{ token: i0.ElementRef }, { token: Table, host: true }], target: i0.ɵɵFactoryTarget.Directive });
2638
+ TableNgxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: TableNgxDirective, selector: "p-table-ngx", host: { listeners: { "queryChange": "handleChange($event.detail, \"query\")", "quickFilter": "handleChange($event.detail, \"quickFilter\")", "pageChange": "handleChange($event.detail, \"page\")", "pageSizeChange": "handleChange($event.detail, \"pageSize\")", "selectedRowsChange": "handleChange($event, \"selectedRows\")" } }, providers: [
2639
+ {
2640
+ provide: NG_VALUE_ACCESSOR,
2641
+ useExisting: TableNgxDirective,
2642
+ multi: true,
2643
+ },
2644
+ ], usesInheritance: true, ngImport: i0 });
2645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableNgxDirective, decorators: [{
2646
+ type: Directive,
2647
+ args: [{
2648
+ selector: 'p-table-ngx',
2649
+ host: {
2650
+ '(queryChange)': 'handleChange($event.detail, "query")',
2651
+ '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
2652
+ '(pageChange)': 'handleChange($event.detail, "page")',
2653
+ '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
2654
+ '(selectedRowsChange)': 'handleChange($event, "selectedRows")',
2655
+ },
2656
+ providers: [
2657
+ {
2658
+ provide: NG_VALUE_ACCESSOR,
2659
+ useExisting: TableNgxDirective,
2660
+ multi: true,
2661
+ },
2662
+ ],
2663
+ }]
2664
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Table, decorators: [{
2665
+ type: Host
2666
+ }] }]; } });
2667
+
2668
+ class TableDirective extends BaseValueAccessor {
2669
+ constructor(el) {
2670
+ super(el);
2671
+ this.lastValue = {
2672
+ query: '',
2673
+ quickFilter: undefined,
2674
+ page: 1,
2675
+ pageSize: 12,
2676
+ selectedRows: [],
2677
+ };
2678
+ }
2679
+ writeValue(value) {
2680
+ this.el.nativeElement.query = this.lastValue.query = value?.query;
2681
+ this.lastValue.quickFilter = value?.quickFilter;
2682
+ this.el.nativeElement.page = this.lastValue.page =
2683
+ value?.page == null ? 1 : value?.page;
2684
+ this.el.nativeElement.pageSize = this.lastValue.pageSize =
2685
+ value?.pageSize == null ? 12 : value?.pageSize;
2686
+ this.lastValue.selectedRows =
2687
+ value?.selectedRows == null ? [] : value?.selectedRows;
2688
+ if (value?.quickFilter) {
2689
+ this._setActiveQuickFilter(value.quickFilter);
2690
+ }
2691
+ }
2692
+ registerOnChange(fn) {
2693
+ this.onChange = fn;
2694
+ }
2695
+ registerOnTouched(fn) {
2696
+ this.onTouched = fn;
2697
+ }
2698
+ handleChange(value, type) {
2699
+ this.handleChangeEvent({
2700
+ ...this.lastValue,
2701
+ [type]: value,
2702
+ });
2703
+ if (type === 'quickFilter' && typeof value === 'object') {
2704
+ this._setActiveQuickFilter(value);
2705
+ }
2706
+ }
2707
+ _setActiveQuickFilter(quickFilter) {
2708
+ this.el.nativeElement.activeQuickFilterIdentifier =
2709
+ quickFilter?.identifier;
2710
+ }
2711
+ }
2712
+ TableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2713
+ TableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: TableDirective, selector: "p-table", host: { listeners: { "queryChange": "handleChange($event.detail, \"query\")", "quickFilter": "handleChange($event.detail, \"quickFilter\")", "pageChange": "handleChange($event.detail, \"page\")", "pageSizeChange": "handleChange($event.detail, \"pageSize\")", "selectedRowsChange": "handleChange($event.detail, \"selectedRows\")" } }, providers: [
2714
+ {
2715
+ provide: NG_VALUE_ACCESSOR,
2716
+ useExisting: TableDirective,
2717
+ multi: true,
2718
+ },
2719
+ ], usesInheritance: true, ngImport: i0 });
2720
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableDirective, decorators: [{
2721
+ type: Directive,
2722
+ args: [{
2723
+ /* tslint:disable-next-line:directive-selector */
2724
+ selector: 'p-table',
2725
+ host: {
2726
+ '(queryChange)': 'handleChange($event.detail, "query")',
2727
+ '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
2728
+ '(pageChange)': 'handleChange($event.detail, "page")',
2729
+ '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
2730
+ '(selectedRowsChange)': 'handleChange($event.detail, "selectedRows")',
2731
+ },
2732
+ providers: [
2733
+ {
2734
+ provide: NG_VALUE_ACCESSOR,
2735
+ useExisting: TableDirective,
2736
+ multi: true,
2737
+ },
2738
+ ],
2739
+ }]
2740
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
2741
+
2742
+ const TABLE_DIRECTIVES = [
2743
+ TableFooterDirective,
2744
+ TableHeaderDirective,
2745
+ TableDirective,
2746
+ TableNgxDirective,
2747
+ TableFilterModalDirective,
2748
+ TableCustomFilterDirective,
2749
+ ];
2750
+
2751
+ const defaultSize = 12;
2752
+ const defaultSizeOptions = [12, 24, 68, 136];
2753
+
2544
2754
  let Table = class Table {
2545
2755
  constructor() {
2546
2756
  /**
@@ -2588,6 +2798,10 @@ let Table = class Table {
2588
2798
  */
2589
2799
  this.rowDeselected = new EventEmitter();
2590
2800
  /** START HEADER */
2801
+ /**
2802
+ * Wether to show the header
2803
+ */
2804
+ this.enableHeader = true;
2591
2805
  /**
2592
2806
  * Quick filters to show
2593
2807
  */
@@ -2625,6 +2839,10 @@ let Table = class Table {
2625
2839
  */
2626
2840
  this.edit = new EventEmitter();
2627
2841
  /** START FOOTER */
2842
+ /**
2843
+ * Wether to show the footer
2844
+ */
2845
+ this.enableFooter = true;
2628
2846
  /**
2629
2847
  * Wether to enable page size select
2630
2848
  */
@@ -3028,13 +3246,13 @@ let Table = class Table {
3028
3246
  }
3029
3247
  };
3030
3248
  Table.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Table, deps: [], target: i0.ɵɵFactoryTarget.Component });
3031
- Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: Table, selector: "p-table-ngx", inputs: { items: "items", loading: "loading", headerLoading: "headerLoading", footerLoading: "footerLoading", amountOfLoadingRows: "amountOfLoadingRows", enableRowSelection: "enableRowSelection", enableRowClick: "enableRowClick", selectedRows: "selectedRows", selectionKey: "selectionKey", canSelectKey: "canSelectKey", quickFilters: "quickFilters", activeQuickFilterIdentifier: "activeQuickFilterIdentifier", enableSearch: "enableSearch", query: "query", enableFilter: "enableFilter", selectedFiltersAmount: "selectedFiltersAmount", filterButtonTemplate: "filterButtonTemplate", enableEdit: "enableEdit", editButtonIcon: "editButtonIcon", editButtonText: "editButtonText", editButtonTemplate: "editButtonTemplate", enablePageSize: "enablePageSize", enablePagination: "enablePagination", enableExport: "enableExport", page: "page", total: "total", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", hideOnSinglePage: "hideOnSinglePage", emptyStateType: "emptyStateType", emptyStateHeader: "emptyStateHeader", emptyStateContent: "emptyStateContent", emptyStateAction: "emptyStateAction", emptyStateFilteredHeader: "emptyStateFilteredHeader", emptyStateFilteredContent: "emptyStateFilteredContent", filterModalHeaderText: "filterModalHeaderText", filterModalSaveText: "filterModalSaveText", filterModalCancelText: "filterModalCancelText", filterModalResetText: "filterModalResetText", filterModalShowReset: "filterModalShowReset", filterModalShowResetMobile: "filterModalShowResetMobile" }, outputs: { selectedRowsChange: "selectedRowsChange", rowClick: "rowClick", rowSelected: "rowSelected", rowDeselected: "rowDeselected", quickFilter: "quickFilter", queryChange: "queryChange", filter: "filter", edit: "edit", pageChange: "pageChange", pageSizeChange: "pageSizeChange", export: "export", emptyStateActionClick: "emptyStateActionClick", filterModalShow: "filterModalShow", filterModalSave: "filterModalSave", filterModalReset: "filterModalReset" }, host: { listeners: { "document:keydown": "keyDown($event)", "document:keyup": "keyUp($event)", "document:visibilitychange": "visibilityChange($event)" } }, queries: [{ propertyName: "filterModalTemplate", first: true, predicate: TableFilterModalDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "columnDefinitions", predicate: TableColumn }], usesOnChanges: true, ngImport: i0, template: "<p-table-container>\n <p-table-header\n [quickFilters]=\"quickFilters\"\n [activeQuickFilterIdentifier]=\"activeQuickFilterIdentifier\"\n (quickFilter)=\"(onQuickFilter)\"\n [enableSearch]=\"enableSearch\"\n [query]=\"query\"\n (queryChange)=\"(onQueryChange)\"\n [enableFilter]=\"enableFilter\"\n [selectedFiltersAmount]=\"selectedFiltersAmount\"\n [filterButtonTemplate]=\"filterButtonTemplate\"\n (filter)=\"filterModalShow$.next(true)\"\n [enableEdit]=\"enableEdit\"\n [canEdit]=\"!!selectedRows.length\"\n [editButtonTemplate]=\"editButtonTemplate\"\n [editText]=\"editButtonText\"\n [editIcon]=\"editButtonIcon\"\n (edit)=\"edit.emit()\"\n [itemsSelectedAmount]=\"selectedRows.length\"\n [loading]=\"headerLoading\"\n ></p-table-header>\n\n <p-table-row variant=\"header\">\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n [value]=\"col.name\"\n variant=\"header\"\n [index]=\"index\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"_selectAllChange($event)\"\n [checked]=\"_selectionContainsAll()\"\n [indeterminate]=\"_selectionIndeterminate()\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n\n <div class=\"flex flex-col\">\n <ng-container *ngIf=\"loading; else contentTemplate\">\n <p-table-row\n *ngFor=\"let r of loadingRows; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n >\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n variant=\"loading\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <p-loader\n variant=\"ghost\"\n class=\"h-6 w-6 rounded\"\n ></p-loader>\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"items?.length; else emptyStateTemplate\">\n <p-table-row\n *ngFor=\"let item of items; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n (click)=\"_rowClick($event, rowIndex)\"\n >\n <ng-container\n *ngFor=\"let col of columns; let index = index\"\n >\n <p-table-cell-ngx\n [definition]=\"col\"\n [item]=\"item\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n [template]=\"col.template\"\n ></p-table-cell-ngx>\n\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"\n _checkboxChange($event.target, rowIndex)\n \"\n [disabled]=\"_checkboxDisabled(item)\"\n [checked]=\"_selectionContains(item, rowIndex)\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n </ng-template>\n </div>\n\n <p-table-footer\n [hideOnSinglePage]=\"hideOnSinglePage\"\n [enablePageSize]=\"enablePageSize\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (pageSizeChange)=\"(pageSizeChange)\"\n [enablePagination]=\"enablePagination\"\n [page]=\"page\"\n [total]=\"total\"\n (pageChange)=\"(pageChange)\"\n [enableExport]=\"enableExport\"\n (export)=\"export.emit()\"\n [loading]=\"footerLoading\"\n ></p-table-footer>\n</p-table-container>\n\n<ng-container *ngIf=\"filterModalTemplate\">\n <p-modal\n [header]=\"filterModalHeaderText\"\n [show]=\"filterModalShow$ | async\"\n (close)=\"filterModalShow$.next(false)\"\n >\n <div slot=\"content\" class=\"flex flex-col gap-6\">\n <ng-container\n *ngTemplateOutlet=\"filterModalTemplate\"\n ></ng-container>\n </div>\n <div slot=\"footer\" class=\"flex w-full justify-between gap-4\">\n <p-button\n *ngIf=\"filterModalShowResetMobile\"\n class=\"flex w-full tablet:w-auto desktop-xs:hidden\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset(true)\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n *ngIf=\"filterModalShowReset\"\n class=\"hidden w-full tablet:w-auto desktop-xs:flex\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset()\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n class=\"ml-auto w-full tablet:w-auto\"\n icon=\"checkmark\"\n (onClick)=\"onFilterModalSave()\"\n >\n {{ filterModalSaveText }}\n </p-button>\n </div>\n </p-modal>\n</ng-container>\n\n<ng-template #emptyStateTemplate>\n <div\n *ngIf=\"emptyStateType === 'filtered'; else emptyStateNonFilterTemplate\"\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-search\"\n class=\"mb-6\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateFilteredHeader }}\n </p>\n <p class=\"mb-14 text-sm text-storm-medium\">\n {{ emptyStateFilteredContent }}\n </p>\n </div>\n</ng-template>\n\n<ng-template #emptyStateNonFilterTemplate>\n <div\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-overview\"\n class=\"mb-6 cursor-pointer\"\n (onClick)=\"emptyStateActionClick.emit()\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateHeader }}\n </p>\n <p class=\"mb-6 text-sm text-storm-medium\">\n {{ emptyStateContent }}\n </p>\n <p-button\n variant=\"secondary\"\n icon=\"plus\"\n size=\"small\"\n (onClick)=\"emptyStateActionClick.emit()\"\n >\n {{ emptyStateAction }}\n </p-button>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PButton, selector: "p-button", inputs: ["chevron", "chevronPosition", "disabled", "href", "icon", "iconFlip", "iconOnly", "iconPosition", "iconRotate", "inheritText", "loading", "size", "target", "variant"] }, { kind: "component", type: PIllustration, selector: "p-illustration", inputs: ["variant"] }, { kind: "component", type: PLoader, selector: "p-loader", inputs: ["color", "modalDescription", "modalTitle", "show", "variant"] }, { kind: "component", type: PModal, selector: "p-modal", inputs: ["applyBlur", "backdropClickClose", "header", "scrollLock", "show", "showClose", "showMobileFooter", "size", "variant"] }, { kind: "component", type: PTableContainer, selector: "p-table-container" }, { kind: "component", type: PTableFooter, selector: "p-table-footer", inputs: ["enableExport", "enablePageSize", "enablePagination", "hideOnSinglePage", "loading", "page", "pageSize", "pageSizeOptions", "total"] }, { kind: "component", type: PTableHeader, selector: "p-table-header", inputs: ["activeQuickFilterIdentifier", "canEdit", "editButtonTemplate", "editIcon", "editText", "enableEdit", "enableFilter", "enableSearch", "filterButtonTemplate", "itemsSelectedAmount", "loading", "query", "quickFilters", "selectedFiltersAmount"] }, { kind: "component", type: PTableRow, selector: "p-table-row", inputs: ["enableHover", "variant"] }, { kind: "component", type: TableCell, selector: "p-table-cell-ngx", inputs: ["variant", "index", "rowIndex", "definition", "item", "value", "checkbox", "template"] }, { kind: "directive", type: TableFooterDirective, selector: "p-table-footer" }, { kind: "directive", type: TableHeaderDirective, selector: "p-table-header" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3249
+ Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: Table, selector: "p-table-ngx", inputs: { items: "items", loading: "loading", headerLoading: "headerLoading", footerLoading: "footerLoading", amountOfLoadingRows: "amountOfLoadingRows", enableRowSelection: "enableRowSelection", enableRowClick: "enableRowClick", selectedRows: "selectedRows", selectionKey: "selectionKey", canSelectKey: "canSelectKey", enableHeader: "enableHeader", quickFilters: "quickFilters", activeQuickFilterIdentifier: "activeQuickFilterIdentifier", enableSearch: "enableSearch", query: "query", enableFilter: "enableFilter", selectedFiltersAmount: "selectedFiltersAmount", filterButtonTemplate: "filterButtonTemplate", enableEdit: "enableEdit", editButtonIcon: "editButtonIcon", editButtonText: "editButtonText", editButtonTemplate: "editButtonTemplate", enableFooter: "enableFooter", enablePageSize: "enablePageSize", enablePagination: "enablePagination", enableExport: "enableExport", page: "page", total: "total", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", hideOnSinglePage: "hideOnSinglePage", emptyStateType: "emptyStateType", emptyStateHeader: "emptyStateHeader", emptyStateContent: "emptyStateContent", emptyStateAction: "emptyStateAction", emptyStateFilteredHeader: "emptyStateFilteredHeader", emptyStateFilteredContent: "emptyStateFilteredContent", filterModalHeaderText: "filterModalHeaderText", filterModalSaveText: "filterModalSaveText", filterModalCancelText: "filterModalCancelText", filterModalResetText: "filterModalResetText", filterModalShowReset: "filterModalShowReset", filterModalShowResetMobile: "filterModalShowResetMobile" }, outputs: { selectedRowsChange: "selectedRowsChange", rowClick: "rowClick", rowSelected: "rowSelected", rowDeselected: "rowDeselected", quickFilter: "quickFilter", queryChange: "queryChange", filter: "filter", edit: "edit", pageChange: "pageChange", pageSizeChange: "pageSizeChange", export: "export", emptyStateActionClick: "emptyStateActionClick", filterModalShow: "filterModalShow", filterModalSave: "filterModalSave", filterModalReset: "filterModalReset" }, host: { listeners: { "document:keydown": "keyDown($event)", "document:keyup": "keyUp($event)", "document:visibilitychange": "visibilityChange($event)" } }, queries: [{ propertyName: "headerCustomFilterTemplate", first: true, predicate: TableCustomFilterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "filterModalTemplate", first: true, predicate: TableFilterModalDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "columnDefinitions", predicate: TableColumn }], usesOnChanges: true, ngImport: i0, template: "<p-table-container>\n <p-table-header\n *ngIf=\"enableHeader\"\n [quickFilters]=\"quickFilters\"\n [activeQuickFilterIdentifier]=\"activeQuickFilterIdentifier\"\n (quickFilter)=\"(onQuickFilter)\"\n [enableSearch]=\"enableSearch\"\n [query]=\"query\"\n (queryChange)=\"(onQueryChange)\"\n [enableFilter]=\"enableFilter\"\n [selectedFiltersAmount]=\"selectedFiltersAmount\"\n [filterButtonTemplate]=\"filterButtonTemplate\"\n (filter)=\"filterModalShow$.next(true)\"\n [enableEdit]=\"enableEdit\"\n [canEdit]=\"!!selectedRows.length\"\n [editButtonTemplate]=\"editButtonTemplate\"\n [editText]=\"editButtonText\"\n [editIcon]=\"editButtonIcon\"\n (edit)=\"edit.emit()\"\n [itemsSelectedAmount]=\"selectedRows.length\"\n [loading]=\"headerLoading\"\n >\n <div *ngIf=\"headerCustomFilterTemplate\" slot=\"custom-filter\">\n <ng-container\n *ngTemplateOutlet=\"headerCustomFilterTemplate\"\n ></ng-container>\n </div>\n </p-table-header>\n\n <p-table-row variant=\"header\">\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n [value]=\"col.name\"\n variant=\"header\"\n [index]=\"index\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"_selectAllChange($event)\"\n [checked]=\"_selectionContainsAll()\"\n [indeterminate]=\"_selectionIndeterminate()\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n\n <div class=\"flex flex-col\">\n <ng-container *ngIf=\"loading; else contentTemplate\">\n <p-table-row\n *ngFor=\"let r of loadingRows; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n >\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n variant=\"loading\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <p-loader\n variant=\"ghost\"\n class=\"h-6 w-6 rounded\"\n ></p-loader>\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"items?.length; else emptyStateTemplate\">\n <p-table-row\n *ngFor=\"let item of items; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n (click)=\"_rowClick($event, rowIndex)\"\n >\n <ng-container\n *ngFor=\"let col of columns; let index = index\"\n >\n <p-table-cell-ngx\n [definition]=\"col\"\n [item]=\"item\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n [template]=\"col.template\"\n ></p-table-cell-ngx>\n\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"\n _checkboxChange($event.target, rowIndex)\n \"\n [disabled]=\"_checkboxDisabled(item)\"\n [checked]=\"_selectionContains(item, rowIndex)\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n </ng-template>\n </div>\n\n <p-table-footer\n *ngIf=\"enableFooter\"\n [hideOnSinglePage]=\"hideOnSinglePage\"\n [enablePageSize]=\"enablePageSize\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (pageSizeChange)=\"(pageSizeChange)\"\n [enablePagination]=\"enablePagination\"\n [page]=\"page\"\n [total]=\"total\"\n (pageChange)=\"(pageChange)\"\n [enableExport]=\"enableExport\"\n (export)=\"export.emit()\"\n [loading]=\"footerLoading\"\n ></p-table-footer>\n</p-table-container>\n\n<ng-container *ngIf=\"filterModalTemplate\">\n <p-modal\n [header]=\"filterModalHeaderText\"\n [show]=\"filterModalShow$ | async\"\n (close)=\"filterModalShow$.next(false)\"\n >\n <div slot=\"content\" class=\"flex flex-col gap-6\">\n <ng-container\n *ngTemplateOutlet=\"filterModalTemplate\"\n ></ng-container>\n </div>\n <div slot=\"footer\" class=\"flex w-full justify-between gap-4\">\n <p-button\n *ngIf=\"filterModalShowResetMobile\"\n class=\"flex w-full tablet:w-auto desktop-xs:hidden\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset(true)\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n *ngIf=\"filterModalShowReset\"\n class=\"hidden w-full tablet:w-auto desktop-xs:flex\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset()\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n class=\"ml-auto w-full tablet:w-auto\"\n icon=\"checkmark\"\n (onClick)=\"onFilterModalSave()\"\n >\n {{ filterModalSaveText }}\n </p-button>\n </div>\n </p-modal>\n</ng-container>\n\n<ng-template #emptyStateTemplate>\n <div\n *ngIf=\"emptyStateType === 'filtered'; else emptyStateNonFilterTemplate\"\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-search\"\n class=\"mb-6\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateFilteredHeader }}\n </p>\n <p class=\"mb-14 text-sm text-storm-medium\">\n {{ emptyStateFilteredContent }}\n </p>\n </div>\n</ng-template>\n\n<ng-template #emptyStateNonFilterTemplate>\n <div\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-overview\"\n class=\"mb-6 cursor-pointer\"\n (onClick)=\"emptyStateActionClick.emit()\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateHeader }}\n </p>\n <p class=\"mb-6 text-sm text-storm-medium\">\n {{ emptyStateContent }}\n </p>\n <p-button\n variant=\"secondary\"\n icon=\"plus\"\n size=\"small\"\n (onClick)=\"emptyStateActionClick.emit()\"\n >\n {{ emptyStateAction }}\n </p-button>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PButton, selector: "p-button", inputs: ["chevron", "chevronPosition", "disabled", "href", "icon", "iconFlip", "iconOnly", "iconPosition", "iconRotate", "inheritText", "loading", "size", "target", "variant"] }, { kind: "component", type: PIllustration, selector: "p-illustration", inputs: ["variant"] }, { kind: "component", type: PLoader, selector: "p-loader", inputs: ["color", "modalDescription", "modalTitle", "show", "variant"] }, { kind: "component", type: PModal, selector: "p-modal", inputs: ["applyBlur", "backdropClickClose", "header", "scrollLock", "show", "showClose", "showMobileFooter", "size", "variant"] }, { kind: "component", type: PTableContainer, selector: "p-table-container" }, { kind: "component", type: PTableFooter, selector: "p-table-footer", inputs: ["enableExport", "enablePageSize", "enablePagination", "hideOnSinglePage", "loading", "page", "pageSize", "pageSizeOptions", "total"] }, { kind: "component", type: PTableHeader, selector: "p-table-header", inputs: ["activeQuickFilterIdentifier", "canEdit", "editButtonTemplate", "editIcon", "editText", "enableEdit", "enableFilter", "enableSearch", "filterButtonTemplate", "itemsSelectedAmount", "loading", "query", "quickFilters", "selectedFiltersAmount"] }, { kind: "component", type: PTableRow, selector: "p-table-row", inputs: ["enableHover", "variant"] }, { kind: "component", type: TableCell, selector: "p-table-cell-ngx", inputs: ["variant", "index", "rowIndex", "definition", "item", "value", "checkbox", "template"] }, { kind: "directive", type: TableFooterDirective, selector: "p-table-footer" }, { kind: "directive", type: TableHeaderDirective, selector: "p-table-header" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3032
3250
  Table = __decorate([
3033
3251
  UntilDestroy({ checkProperties: true })
3034
3252
  ], Table);
3035
3253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Table, decorators: [{
3036
3254
  type: Component,
3037
- args: [{ selector: 'p-table-ngx', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-table-container>\n <p-table-header\n [quickFilters]=\"quickFilters\"\n [activeQuickFilterIdentifier]=\"activeQuickFilterIdentifier\"\n (quickFilter)=\"(onQuickFilter)\"\n [enableSearch]=\"enableSearch\"\n [query]=\"query\"\n (queryChange)=\"(onQueryChange)\"\n [enableFilter]=\"enableFilter\"\n [selectedFiltersAmount]=\"selectedFiltersAmount\"\n [filterButtonTemplate]=\"filterButtonTemplate\"\n (filter)=\"filterModalShow$.next(true)\"\n [enableEdit]=\"enableEdit\"\n [canEdit]=\"!!selectedRows.length\"\n [editButtonTemplate]=\"editButtonTemplate\"\n [editText]=\"editButtonText\"\n [editIcon]=\"editButtonIcon\"\n (edit)=\"edit.emit()\"\n [itemsSelectedAmount]=\"selectedRows.length\"\n [loading]=\"headerLoading\"\n ></p-table-header>\n\n <p-table-row variant=\"header\">\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n [value]=\"col.name\"\n variant=\"header\"\n [index]=\"index\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"_selectAllChange($event)\"\n [checked]=\"_selectionContainsAll()\"\n [indeterminate]=\"_selectionIndeterminate()\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n\n <div class=\"flex flex-col\">\n <ng-container *ngIf=\"loading; else contentTemplate\">\n <p-table-row\n *ngFor=\"let r of loadingRows; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n >\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n variant=\"loading\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <p-loader\n variant=\"ghost\"\n class=\"h-6 w-6 rounded\"\n ></p-loader>\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"items?.length; else emptyStateTemplate\">\n <p-table-row\n *ngFor=\"let item of items; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n (click)=\"_rowClick($event, rowIndex)\"\n >\n <ng-container\n *ngFor=\"let col of columns; let index = index\"\n >\n <p-table-cell-ngx\n [definition]=\"col\"\n [item]=\"item\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n [template]=\"col.template\"\n ></p-table-cell-ngx>\n\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"\n _checkboxChange($event.target, rowIndex)\n \"\n [disabled]=\"_checkboxDisabled(item)\"\n [checked]=\"_selectionContains(item, rowIndex)\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n </ng-template>\n </div>\n\n <p-table-footer\n [hideOnSinglePage]=\"hideOnSinglePage\"\n [enablePageSize]=\"enablePageSize\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (pageSizeChange)=\"(pageSizeChange)\"\n [enablePagination]=\"enablePagination\"\n [page]=\"page\"\n [total]=\"total\"\n (pageChange)=\"(pageChange)\"\n [enableExport]=\"enableExport\"\n (export)=\"export.emit()\"\n [loading]=\"footerLoading\"\n ></p-table-footer>\n</p-table-container>\n\n<ng-container *ngIf=\"filterModalTemplate\">\n <p-modal\n [header]=\"filterModalHeaderText\"\n [show]=\"filterModalShow$ | async\"\n (close)=\"filterModalShow$.next(false)\"\n >\n <div slot=\"content\" class=\"flex flex-col gap-6\">\n <ng-container\n *ngTemplateOutlet=\"filterModalTemplate\"\n ></ng-container>\n </div>\n <div slot=\"footer\" class=\"flex w-full justify-between gap-4\">\n <p-button\n *ngIf=\"filterModalShowResetMobile\"\n class=\"flex w-full tablet:w-auto desktop-xs:hidden\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset(true)\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n *ngIf=\"filterModalShowReset\"\n class=\"hidden w-full tablet:w-auto desktop-xs:flex\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset()\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n class=\"ml-auto w-full tablet:w-auto\"\n icon=\"checkmark\"\n (onClick)=\"onFilterModalSave()\"\n >\n {{ filterModalSaveText }}\n </p-button>\n </div>\n </p-modal>\n</ng-container>\n\n<ng-template #emptyStateTemplate>\n <div\n *ngIf=\"emptyStateType === 'filtered'; else emptyStateNonFilterTemplate\"\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-search\"\n class=\"mb-6\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateFilteredHeader }}\n </p>\n <p class=\"mb-14 text-sm text-storm-medium\">\n {{ emptyStateFilteredContent }}\n </p>\n </div>\n</ng-template>\n\n<ng-template #emptyStateNonFilterTemplate>\n <div\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-overview\"\n class=\"mb-6 cursor-pointer\"\n (onClick)=\"emptyStateActionClick.emit()\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateHeader }}\n </p>\n <p class=\"mb-6 text-sm text-storm-medium\">\n {{ emptyStateContent }}\n </p>\n <p-button\n variant=\"secondary\"\n icon=\"plus\"\n size=\"small\"\n (onClick)=\"emptyStateActionClick.emit()\"\n >\n {{ emptyStateAction }}\n </p-button>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
3255
+ args: [{ selector: 'p-table-ngx', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-table-container>\n <p-table-header\n *ngIf=\"enableHeader\"\n [quickFilters]=\"quickFilters\"\n [activeQuickFilterIdentifier]=\"activeQuickFilterIdentifier\"\n (quickFilter)=\"(onQuickFilter)\"\n [enableSearch]=\"enableSearch\"\n [query]=\"query\"\n (queryChange)=\"(onQueryChange)\"\n [enableFilter]=\"enableFilter\"\n [selectedFiltersAmount]=\"selectedFiltersAmount\"\n [filterButtonTemplate]=\"filterButtonTemplate\"\n (filter)=\"filterModalShow$.next(true)\"\n [enableEdit]=\"enableEdit\"\n [canEdit]=\"!!selectedRows.length\"\n [editButtonTemplate]=\"editButtonTemplate\"\n [editText]=\"editButtonText\"\n [editIcon]=\"editButtonIcon\"\n (edit)=\"edit.emit()\"\n [itemsSelectedAmount]=\"selectedRows.length\"\n [loading]=\"headerLoading\"\n >\n <div *ngIf=\"headerCustomFilterTemplate\" slot=\"custom-filter\">\n <ng-container\n *ngTemplateOutlet=\"headerCustomFilterTemplate\"\n ></ng-container>\n </div>\n </p-table-header>\n\n <p-table-row variant=\"header\">\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n [value]=\"col.name\"\n variant=\"header\"\n [index]=\"index\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"_selectAllChange($event)\"\n [checked]=\"_selectionContainsAll()\"\n [indeterminate]=\"_selectionIndeterminate()\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n\n <div class=\"flex flex-col\">\n <ng-container *ngIf=\"loading; else contentTemplate\">\n <p-table-row\n *ngFor=\"let r of loadingRows; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n >\n <ng-container *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n variant=\"loading\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <p-loader\n variant=\"ghost\"\n class=\"h-6 w-6 rounded\"\n ></p-loader>\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"items?.length; else emptyStateTemplate\">\n <p-table-row\n *ngFor=\"let item of items; let rowIndex = index\"\n [enableHover]=\"enableRowSelection || enableRowClick\"\n (click)=\"_rowClick($event, rowIndex)\"\n >\n <ng-container\n *ngFor=\"let col of columns; let index = index\"\n >\n <p-table-cell-ngx\n [definition]=\"col\"\n [item]=\"item\"\n [checkbox]=\"\n index === 0 && enableRowSelection\n ? checkboxTemplate\n : undefined\n \"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n [template]=\"col.template\"\n ></p-table-cell-ngx>\n\n <ng-template #checkboxTemplate>\n <input\n class=\"p-input\"\n type=\"checkbox\"\n (change)=\"\n _checkboxChange($event.target, rowIndex)\n \"\n [disabled]=\"_checkboxDisabled(item)\"\n [checked]=\"_selectionContains(item, rowIndex)\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n </ng-template>\n </div>\n\n <p-table-footer\n *ngIf=\"enableFooter\"\n [hideOnSinglePage]=\"hideOnSinglePage\"\n [enablePageSize]=\"enablePageSize\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (pageSizeChange)=\"(pageSizeChange)\"\n [enablePagination]=\"enablePagination\"\n [page]=\"page\"\n [total]=\"total\"\n (pageChange)=\"(pageChange)\"\n [enableExport]=\"enableExport\"\n (export)=\"export.emit()\"\n [loading]=\"footerLoading\"\n ></p-table-footer>\n</p-table-container>\n\n<ng-container *ngIf=\"filterModalTemplate\">\n <p-modal\n [header]=\"filterModalHeaderText\"\n [show]=\"filterModalShow$ | async\"\n (close)=\"filterModalShow$.next(false)\"\n >\n <div slot=\"content\" class=\"flex flex-col gap-6\">\n <ng-container\n *ngTemplateOutlet=\"filterModalTemplate\"\n ></ng-container>\n </div>\n <div slot=\"footer\" class=\"flex w-full justify-between gap-4\">\n <p-button\n *ngIf=\"filterModalShowResetMobile\"\n class=\"flex w-full tablet:w-auto desktop-xs:hidden\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset(true)\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n *ngIf=\"filterModalShowReset\"\n class=\"hidden w-full tablet:w-auto desktop-xs:flex\"\n variant=\"secondary\"\n (onClick)=\"onFilterModalReset()\"\n >\n {{ filterModalResetText }}\n </p-button>\n <p-button\n class=\"ml-auto w-full tablet:w-auto\"\n icon=\"checkmark\"\n (onClick)=\"onFilterModalSave()\"\n >\n {{ filterModalSaveText }}\n </p-button>\n </div>\n </p-modal>\n</ng-container>\n\n<ng-template #emptyStateTemplate>\n <div\n *ngIf=\"emptyStateType === 'filtered'; else emptyStateNonFilterTemplate\"\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-search\"\n class=\"mb-6\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateFilteredHeader }}\n </p>\n <p class=\"mb-14 text-sm text-storm-medium\">\n {{ emptyStateFilteredContent }}\n </p>\n </div>\n</ng-template>\n\n<ng-template #emptyStateNonFilterTemplate>\n <div\n class=\"\n flex\n max-w-[20rem]\n flex-col\n items-center\n self-center\n py-24\n text-center\n \"\n >\n <p-illustration\n variant=\"empty-state-overview\"\n class=\"mb-6 cursor-pointer\"\n (onClick)=\"emptyStateActionClick.emit()\"\n ></p-illustration>\n <p class=\"text-storm-default font-semibold\">\n {{ emptyStateHeader }}\n </p>\n <p class=\"mb-6 text-sm text-storm-medium\">\n {{ emptyStateContent }}\n </p>\n <p-button\n variant=\"secondary\"\n icon=\"plus\"\n size=\"small\"\n (onClick)=\"emptyStateActionClick.emit()\"\n >\n {{ emptyStateAction }}\n </p-button>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
3038
3256
  }], ctorParameters: function () { return []; }, propDecorators: { items: [{
3039
3257
  type: Input
3040
3258
  }], loading: [{
@@ -3063,6 +3281,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
3063
3281
  type: Output
3064
3282
  }], rowDeselected: [{
3065
3283
  type: Output
3284
+ }], enableHeader: [{
3285
+ type: Input
3066
3286
  }], quickFilters: [{
3067
3287
  type: Input
3068
3288
  }], activeQuickFilterIdentifier: [{
@@ -3093,6 +3313,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
3093
3313
  type: Output
3094
3314
  }], edit: [{
3095
3315
  type: Output
3316
+ }], enableFooter: [{
3317
+ type: Input
3096
3318
  }], enablePageSize: [{
3097
3319
  type: Input
3098
3320
  }], enablePagination: [{
@@ -3129,6 +3351,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
3129
3351
  type: Input
3130
3352
  }], emptyStateActionClick: [{
3131
3353
  type: Output
3354
+ }], headerCustomFilterTemplate: [{
3355
+ type: ContentChild,
3356
+ args: [TableCustomFilterDirective, {
3357
+ read: TemplateRef,
3358
+ static: true,
3359
+ }]
3132
3360
  }], columnDefinitions: [{
3133
3361
  type: ContentChildren,
3134
3362
  args: [TableColumn]
@@ -3169,208 +3397,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
3169
3397
 
3170
3398
  const TABLE_COMPONENTS = [Table, TableCell, TableColumn];
3171
3399
 
3172
- /* eslint-disable @angular-eslint/no-host-metadata-property */
3173
- class TableNgxDirective extends BaseValueAccessor {
3174
- constructor(el, _base) {
3175
- super(el);
3176
- this._base = _base;
3177
- this.lastValue = {
3178
- query: '',
3179
- quickFilter: undefined,
3180
- filters: [],
3181
- page: 1,
3182
- pageSize: 12,
3183
- selectedRows: [],
3184
- };
3185
- }
3186
- writeValue(value) {
3187
- this._base.query = this.lastValue.query = value?.query;
3188
- // this.el.nativeElement.query = this.lastValue.query = value?.query;
3189
- this.lastValue.quickFilter = value?.quickFilter;
3190
- this.lastValue.filters = value?.filters;
3191
- this._base.page = this.lastValue.page =
3192
- value?.page == null ? 1 : value?.page;
3193
- this._base.pageSize = this.lastValue.pageSize =
3194
- value?.pageSize == null ? 12 : value?.pageSize;
3195
- // this.el.nativeElement.page = this.lastValue.page =
3196
- // value?.page == null ? 1 : value?.page;
3197
- // this.el.nativeElement.pageSize = this.lastValue.pageSize =
3198
- // value?.pageSize == null ? 12 : value?.pageSize;
3199
- this.lastValue.selectedRows =
3200
- value?.selectedRows == null ? [] : value?.selectedRows;
3201
- if (value?.quickFilter) {
3202
- this._setActiveQuickFilter(value.quickFilter);
3203
- }
3204
- this._base.selectedFiltersAmount = !value.filters || value.filters.length === 0 ? undefined : value.filters.length;
3205
- this._checkEmptyStateType();
3206
- this._checkResetButtons();
3207
- }
3208
- registerOnChange(fn) {
3209
- this.onChange = fn;
3210
- }
3211
- registerOnTouched(fn) {
3212
- this.onTouched = fn;
3213
- }
3214
- handleChange(value, type) {
3215
- this.handleChangeEvent({
3216
- ...this.lastValue,
3217
- [type]: value,
3218
- });
3219
- if (type === 'quickFilter' && typeof value === 'object') {
3220
- this._setActiveQuickFilter(value);
3221
- }
3222
- this._checkEmptyStateType();
3223
- this._checkResetButtons();
3224
- }
3225
- _setActiveQuickFilter(quickFilter) {
3226
- this._base.activeQuickFilterIdentifier = quickFilter?.identifier;
3227
- // this.el.nativeElement.activeQuickFilterIdentifier =
3228
- // quickFilter?.identifier;
3229
- }
3230
- _checkEmptyStateType() {
3231
- if (this.lastValue.query?.length || !this.lastValue.quickFilter?.default || (this._base.selectedFiltersAmount && this._base.selectedFiltersAmount > 0) || this.lastValue.filters?.length) {
3232
- this._base.emptyStateType = 'filtered';
3233
- return;
3234
- }
3235
- this._base.emptyStateType = 'no_filter';
3236
- }
3237
- _checkResetButtons() {
3238
- const activeQuickFilter = this.lastValue.quickFilter;
3239
- const selectedFiltersAmount = this._base.selectedFiltersAmount;
3240
- if (activeQuickFilter ||
3241
- selectedFiltersAmount) {
3242
- if (selectedFiltersAmount && selectedFiltersAmount > 0) {
3243
- this._base.filterModalShowReset = true;
3244
- }
3245
- else {
3246
- this._base.filterModalShowReset = false;
3247
- }
3248
- if (selectedFiltersAmount && selectedFiltersAmount > 0 || !activeQuickFilter?.default) {
3249
- this._base.filterModalShowResetMobile = true;
3250
- }
3251
- else {
3252
- this._base.filterModalShowResetMobile = false;
3253
- }
3254
- }
3255
- }
3256
- }
3257
- TableNgxDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableNgxDirective, deps: [{ token: i0.ElementRef }, { token: Table, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3258
- TableNgxDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: TableNgxDirective, selector: "p-table-ngx", host: { listeners: { "queryChange": "handleChange($event.detail, \"query\")", "quickFilter": "handleChange($event.detail, \"quickFilter\")", "pageChange": "handleChange($event.detail, \"page\")", "pageSizeChange": "handleChange($event.detail, \"pageSize\")", "selectedRowsChange": "handleChange($event, \"selectedRows\")" } }, providers: [
3259
- {
3260
- provide: NG_VALUE_ACCESSOR,
3261
- useExisting: TableNgxDirective,
3262
- multi: true,
3263
- },
3264
- ], usesInheritance: true, ngImport: i0 });
3265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableNgxDirective, decorators: [{
3266
- type: Directive,
3267
- args: [{
3268
- selector: 'p-table-ngx',
3269
- host: {
3270
- '(queryChange)': 'handleChange($event.detail, "query")',
3271
- '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
3272
- '(pageChange)': 'handleChange($event.detail, "page")',
3273
- '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
3274
- '(selectedRowsChange)': 'handleChange($event, "selectedRows")',
3275
- },
3276
- providers: [
3277
- {
3278
- provide: NG_VALUE_ACCESSOR,
3279
- useExisting: TableNgxDirective,
3280
- multi: true,
3281
- },
3282
- ],
3283
- }]
3284
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Table, decorators: [{
3285
- type: Host
3286
- }] }]; } });
3287
-
3288
- class TableDirective extends BaseValueAccessor {
3289
- constructor(el) {
3290
- super(el);
3291
- this.lastValue = {
3292
- query: '',
3293
- quickFilter: undefined,
3294
- page: 1,
3295
- pageSize: 12,
3296
- selectedRows: [],
3297
- };
3298
- }
3299
- writeValue(value) {
3300
- this.el.nativeElement.query = this.lastValue.query = value?.query;
3301
- this.lastValue.quickFilter = value?.quickFilter;
3302
- this.el.nativeElement.page = this.lastValue.page =
3303
- value?.page == null ? 1 : value?.page;
3304
- this.el.nativeElement.pageSize = this.lastValue.pageSize =
3305
- value?.pageSize == null ? 12 : value?.pageSize;
3306
- this.lastValue.selectedRows =
3307
- value?.selectedRows == null ? [] : value?.selectedRows;
3308
- if (value?.quickFilter) {
3309
- this._setActiveQuickFilter(value.quickFilter);
3310
- }
3311
- }
3312
- registerOnChange(fn) {
3313
- this.onChange = fn;
3314
- }
3315
- registerOnTouched(fn) {
3316
- this.onTouched = fn;
3317
- }
3318
- handleChange(value, type) {
3319
- this.handleChangeEvent({
3320
- ...this.lastValue,
3321
- [type]: value,
3322
- });
3323
- if (type === 'quickFilter' && typeof value === 'object') {
3324
- this._setActiveQuickFilter(value);
3325
- }
3326
- }
3327
- _setActiveQuickFilter(quickFilter) {
3328
- this.el.nativeElement.activeQuickFilterIdentifier =
3329
- quickFilter?.identifier;
3330
- }
3331
- }
3332
- TableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3333
- TableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: TableDirective, selector: "p-table", host: { listeners: { "queryChange": "handleChange($event.detail, \"query\")", "quickFilter": "handleChange($event.detail, \"quickFilter\")", "pageChange": "handleChange($event.detail, \"page\")", "pageSizeChange": "handleChange($event.detail, \"pageSize\")", "selectedRowsChange": "handleChange($event.detail, \"selectedRows\")" } }, providers: [
3334
- {
3335
- provide: NG_VALUE_ACCESSOR,
3336
- useExisting: TableDirective,
3337
- multi: true,
3338
- },
3339
- ], usesInheritance: true, ngImport: i0 });
3340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableDirective, decorators: [{
3341
- type: Directive,
3342
- args: [{
3343
- /* tslint:disable-next-line:directive-selector */
3344
- selector: 'p-table',
3345
- host: {
3346
- '(queryChange)': 'handleChange($event.detail, "query")',
3347
- '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
3348
- '(pageChange)': 'handleChange($event.detail, "page")',
3349
- '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
3350
- '(selectedRowsChange)': 'handleChange($event.detail, "selectedRows")',
3351
- },
3352
- providers: [
3353
- {
3354
- provide: NG_VALUE_ACCESSOR,
3355
- useExisting: TableDirective,
3356
- multi: true,
3357
- },
3358
- ],
3359
- }]
3360
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
3361
-
3362
- const TABLE_DIRECTIVES = [
3363
- TableFooterDirective,
3364
- TableHeaderDirective,
3365
- TableDirective,
3366
- TableNgxDirective,
3367
- TableFilterModalDirective,
3368
- ];
3369
-
3370
3400
  class TableModule {
3371
3401
  }
3372
3402
  TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3373
- TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: TableModule, declarations: [Table, TableCell, TableColumn, TableFooterDirective, TableHeaderDirective, TableDirective, TableNgxDirective, TableFilterModalDirective], imports: [CommonModule, StencilModule], exports: [Table, TableCell, TableColumn, TableFooterDirective, TableHeaderDirective, TableDirective, TableNgxDirective, TableFilterModalDirective] });
3403
+ TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: TableModule, declarations: [Table, TableCell, TableColumn, TableFooterDirective, TableHeaderDirective, TableDirective, TableNgxDirective, TableFilterModalDirective, TableCustomFilterDirective], imports: [CommonModule, StencilModule], exports: [Table, TableCell, TableColumn, TableFooterDirective, TableHeaderDirective, TableDirective, TableNgxDirective, TableFilterModalDirective, TableCustomFilterDirective] });
3374
3404
  TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableModule, imports: [CommonModule, StencilModule] });
3375
3405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TableModule, decorators: [{
3376
3406
  type: NgModule,
@@ -3631,5 +3661,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
3631
3661
  * Generated bundle index. Do not edit.
3632
3662
  */
3633
3663
 
3634
- export { BaseFormComponent, BaseTableComponent, BaseUploadComponent, BaseValueAccessor, CustomCurrencyPipe, CustomDatePipe, DIRECTIVES$1 as DIRECTIVES, DatepickerDirective, FADE_IN, FADE_OUT, MODULES, OVERLAY_SERVICES, OverlayModule, OverlayRef, OverlayService, PAccordion, PAttachment, PAvatar, PAvatarGroup, PBackdrop, PButton, PCalendar, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDatepicker, PDivider, PDrawer, PDrawerBody, PDrawerContainer, PDrawerHeader, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIPES, PIcon, PIllustration, PInfoPanel, PInputError, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToast, PTooltip, PageSizeSelectDirective, PaginationDirective, PaperlessModule, SLIDE_IN_BOTTOM_OUT_TOP, SLIDE_IN_TOP_OUT_BOTTOM, SafePipe, SelectDirective, StencilModule, TABLE_COMPONENTS, TABLE_DIRECTIVES, TOAST_COMPONENTS, TOAST_DIRECTIVES, TOAST_SERVICES, Table, TableCell, TableColumn, TableDirective, TableFilterModalDirective, TableFooterDirective, TableHeaderDirective, TableModule, TableNgxDirective, ToastContainer, ToastDirective, ToastModule, ToastService, ToastVariants, createFormFilters };
3664
+ export { BaseFormComponent, BaseTableComponent, BaseUploadComponent, BaseValueAccessor, CustomCurrencyPipe, CustomDatePipe, DIRECTIVES$1 as DIRECTIVES, DatepickerDirective, FADE_IN, FADE_OUT, MODULES, OVERLAY_SERVICES, OverlayModule, OverlayRef, OverlayService, PAccordion, PAttachment, PAvatar, PAvatarGroup, PBackdrop, PButton, PCalendar, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDatepicker, PDivider, PDrawer, PDrawerBody, PDrawerContainer, PDrawerHeader, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIPES, PIcon, PIllustration, PInfoPanel, PInputError, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToast, PTooltip, PageSizeSelectDirective, PaginationDirective, PaperlessModule, SLIDE_IN_BOTTOM_OUT_TOP, SLIDE_IN_TOP_OUT_BOTTOM, SafePipe, SelectDirective, StencilModule, TABLE_COMPONENTS, TABLE_DIRECTIVES, TOAST_COMPONENTS, TOAST_DIRECTIVES, TOAST_SERVICES, Table, TableCell, TableColumn, TableCustomFilterDirective, TableDirective, TableFilterModalDirective, TableFooterDirective, TableHeaderDirective, TableModule, TableNgxDirective, ToastContainer, ToastDirective, ToastModule, ToastService, ToastVariants, createFormFilters };
3635
3665
  //# sourceMappingURL=paperless-angular.mjs.map