@paperless/angular 0.1.0-alpha.194 → 0.1.0-alpha.196

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,10 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, EventEmitter, Input, Output, ViewChild, Directive, HostListener, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { Component, EventEmitter, Input, Output, ViewChild, Directive, HostListener, ChangeDetectionStrategy, HostBinding, TemplateRef, ContentChild, ContentChildren, NgModule } from '@angular/core';
3
3
  import { FormControl, FormGroup, FormArray, NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { __decorate } from 'tslib';
5
5
  import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
6
6
  import { timer, fromEvent } from 'rxjs';
7
7
  import { startWith, pairwise, map, filter, debounce } from 'rxjs/operators';
8
+ import { objectGetByPath } from '@paperless/core';
9
+ import * as i1 from '@angular/common';
10
+ import { CommonModule } from '@angular/common';
8
11
 
9
12
  class FormBaseComponent {
10
13
  constructor() {
@@ -356,306 +359,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
356
359
  args: ['focusout']
357
360
  }] } });
358
361
 
359
- class PageSizeSelectDirective extends BaseValueAccessor {
360
- constructor(el) {
361
- super(el);
362
- }
363
- writeValue(value) {
364
- this.el.nativeElement.page = this.lastValue =
365
- value == null ? '' : value;
366
- }
367
- registerOnChange(fn) {
368
- super.registerOnChange((value) => fn(value === '' ? null : parseInt(value, 10)));
369
- }
370
- }
371
- PageSizeSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PageSizeSelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
372
- PageSizeSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: PageSizeSelectDirective, selector: "p-page-size-select", host: { listeners: { "sizeChange": "handleChangeEvent($event.detail)" } }, providers: [
373
- {
374
- provide: NG_VALUE_ACCESSOR,
375
- useExisting: PageSizeSelectDirective,
376
- multi: true,
377
- },
378
- ], usesInheritance: true, ngImport: i0 });
379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PageSizeSelectDirective, decorators: [{
380
- type: Directive,
381
- args: [{
382
- /* tslint:disable-next-line:directive-selector */
383
- selector: 'p-page-size-select',
384
- host: {
385
- '(sizeChange)': 'handleChangeEvent($event.detail)',
386
- },
387
- providers: [
388
- {
389
- provide: NG_VALUE_ACCESSOR,
390
- useExisting: PageSizeSelectDirective,
391
- multi: true,
392
- },
393
- ],
394
- }]
395
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
396
-
397
- class PaginationDirective extends BaseValueAccessor {
398
- constructor(el) {
399
- super(el);
400
- }
401
- writeValue(value) {
402
- this.el.nativeElement.page = this.lastValue =
403
- value == null ? '' : value;
404
- }
405
- registerOnChange(fn) {
406
- super.registerOnChange((value) => fn(value === '' ? null : parseInt(value, 10)));
407
- }
408
- }
409
- PaginationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaginationDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
410
- PaginationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: PaginationDirective, selector: "p-pagination", host: { listeners: { "pageChange": "handleChangeEvent($event.detail)" } }, providers: [
411
- {
412
- provide: NG_VALUE_ACCESSOR,
413
- useExisting: PaginationDirective,
414
- multi: true,
415
- },
416
- ], usesInheritance: true, ngImport: i0 });
417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaginationDirective, decorators: [{
418
- type: Directive,
419
- args: [{
420
- /* tslint:disable-next-line:directive-selector */
421
- selector: 'p-pagination',
422
- host: {
423
- '(pageChange)': 'handleChangeEvent($event.detail)',
424
- },
425
- providers: [
426
- {
427
- provide: NG_VALUE_ACCESSOR,
428
- useExisting: PaginationDirective,
429
- multi: true,
430
- },
431
- ],
432
- }]
433
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
434
-
435
- class SelectDirective extends BaseValueAccessor {
436
- constructor(el) {
437
- super(el);
438
- console.log(el);
439
- }
440
- writeValue(value) {
441
- console.log(value);
442
- this.el.nativeElement.value = this.lastValue =
443
- value == null ? '' : value;
444
- }
445
- }
446
- SelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
447
- SelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: SelectDirective, selector: "p-select", host: { listeners: { "valueChange": "handleChangeEvent($event.detail)" } }, providers: [
448
- {
449
- provide: NG_VALUE_ACCESSOR,
450
- useExisting: SelectDirective,
451
- multi: true,
452
- },
453
- ], usesInheritance: true, ngImport: i0 });
454
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SelectDirective, decorators: [{
455
- type: Directive,
456
- args: [{
457
- selector: 'p-select',
458
- host: {
459
- '(valueChange)': 'handleChangeEvent($event.detail)',
460
- },
461
- providers: [
462
- {
463
- provide: NG_VALUE_ACCESSOR,
464
- useExisting: SelectDirective,
465
- multi: true,
466
- },
467
- ],
468
- }]
469
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
470
-
471
- class TableFooterDirective extends BaseValueAccessor {
472
- constructor(el) {
473
- super(el);
474
- this.lastValue = {
475
- page: 1,
476
- pageSize: 12,
477
- };
478
- }
479
- writeValue(value) {
480
- this.el.nativeElement.page = this.lastValue.page =
481
- value?.page == null ? '' : value?.page;
482
- this.el.nativeElement.pageSize = this.lastValue.pageSize =
483
- value?.pageSize == null ? '' : value?.pageSize;
484
- }
485
- handleChange(value, type) {
486
- this.handleChangeEvent({
487
- ...this.lastValue,
488
- [type]: value,
489
- });
490
- }
491
- }
492
- TableFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableFooterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
493
- TableFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: TableFooterDirective, selector: "p-table-footer", host: { listeners: { "pageChange": "handleChange($event.detail, \"page\")", "pageSizeChange": "handleChange($event.detail, \"pageSize\")" } }, providers: [
494
- {
495
- provide: NG_VALUE_ACCESSOR,
496
- useExisting: TableFooterDirective,
497
- multi: true,
498
- },
499
- ], usesInheritance: true, ngImport: i0 });
500
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableFooterDirective, decorators: [{
501
- type: Directive,
502
- args: [{
503
- /* tslint:disable-next-line:directive-selector */
504
- selector: 'p-table-footer',
505
- host: {
506
- '(pageChange)': 'handleChange($event.detail, "page")',
507
- '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
508
- },
509
- providers: [
510
- {
511
- provide: NG_VALUE_ACCESSOR,
512
- useExisting: TableFooterDirective,
513
- multi: true,
514
- },
515
- ],
516
- }]
517
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
518
-
519
- class TableHeaderDirective extends BaseValueAccessor {
520
- constructor(el) {
521
- super(el);
522
- this.lastValue = {
523
- query: '',
524
- quickFilter: undefined,
525
- };
526
- }
527
- writeValue(value) {
528
- this.el.nativeElement.query = this.lastValue.query = value?.query;
529
- this.lastValue.quickFilter = value?.quickFilter;
530
- if (value?.quickFilter) {
531
- this._setActiveQuickFilter(value.quickFilter);
532
- }
533
- }
534
- handleChange(value, type) {
535
- this.handleChangeEvent({
536
- ...this.lastValue,
537
- [type]: value,
538
- });
539
- if (type === 'quickFilter' && typeof value !== 'string') {
540
- this._setActiveQuickFilter(value);
541
- }
542
- }
543
- _setActiveQuickFilter(quickFilter) {
544
- this.el.nativeElement.activeQuickFilterIdentifier =
545
- quickFilter?.identifier;
546
- }
547
- }
548
- TableHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableHeaderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
549
- TableHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: TableHeaderDirective, selector: "p-table-header", host: { listeners: { "queryChange": "handleChange($event.detail, \"query\")", "quickFilter": "handleChange($event.detail, \"quickFilter\")" } }, providers: [
550
- {
551
- provide: NG_VALUE_ACCESSOR,
552
- useExisting: TableHeaderDirective,
553
- multi: true,
554
- },
555
- ], usesInheritance: true, ngImport: i0 });
556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableHeaderDirective, decorators: [{
557
- type: Directive,
558
- args: [{
559
- /* tslint:disable-next-line:directive-selector */
560
- selector: 'p-table-header',
561
- host: {
562
- '(queryChange)': 'handleChange($event.detail, "query")',
563
- '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
564
- },
565
- providers: [
566
- {
567
- provide: NG_VALUE_ACCESSOR,
568
- useExisting: TableHeaderDirective,
569
- multi: true,
570
- },
571
- ],
572
- }]
573
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
574
-
575
- class TableDirective extends BaseValueAccessor {
576
- constructor(el) {
577
- super(el);
578
- this.lastValue = {
579
- query: '',
580
- quickFilter: undefined,
581
- page: 1,
582
- pageSize: 12,
583
- selectedRows: [],
584
- };
585
- }
586
- writeValue(value) {
587
- this.el.nativeElement.query = this.lastValue.query = value?.query;
588
- this.lastValue.quickFilter = value?.quickFilter;
589
- this.el.nativeElement.page = this.lastValue.page =
590
- value?.page == null ? 1 : value?.page;
591
- this.el.nativeElement.pageSize = this.lastValue.pageSize =
592
- value?.pageSize == null ? 12 : value?.pageSize;
593
- this.lastValue.selectedRows =
594
- value?.selectedRows == null ? [] : value?.selectedRows;
595
- if (value?.quickFilter) {
596
- this._setActiveQuickFilter(value.quickFilter);
597
- }
598
- }
599
- registerOnChange(fn) {
600
- this.onChange = fn;
601
- }
602
- registerOnTouched(fn) {
603
- this.onTouched = fn;
604
- }
605
- handleChange(value, type) {
606
- this.handleChangeEvent({
607
- ...this.lastValue,
608
- [type]: value,
609
- });
610
- if (type === 'quickFilter' && typeof value === 'object') {
611
- this._setActiveQuickFilter(value);
612
- }
613
- }
614
- _setActiveQuickFilter(quickFilter) {
615
- this.el.nativeElement.activeQuickFilterIdentifier =
616
- quickFilter?.identifier;
617
- }
618
- }
619
- TableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
620
- TableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", 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: [
621
- {
622
- provide: NG_VALUE_ACCESSOR,
623
- useExisting: TableDirective,
624
- multi: true,
625
- },
626
- ], usesInheritance: true, ngImport: i0 });
627
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableDirective, decorators: [{
628
- type: Directive,
629
- args: [{
630
- /* tslint:disable-next-line:directive-selector */
631
- selector: 'p-table',
632
- host: {
633
- '(queryChange)': 'handleChange($event.detail, "query")',
634
- '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
635
- '(pageChange)': 'handleChange($event.detail, "page")',
636
- '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
637
- '(selectedRowsChange)': 'handleChange($event.detail, "selectedRows")',
638
- },
639
- providers: [
640
- {
641
- provide: NG_VALUE_ACCESSOR,
642
- useExisting: TableDirective,
643
- multi: true,
644
- },
645
- ],
646
- }]
647
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
648
-
649
- // Custom directives
650
- const CUSTOM_DIRECTIVES = [
651
- PaginationDirective,
652
- PageSizeSelectDirective,
653
- TableFooterDirective,
654
- TableHeaderDirective,
655
- TableDirective,
656
- SelectDirective,
657
- ];
658
-
659
362
  /* eslint-disable */
660
363
  const proxyInputs = (Cmp, inputs) => {
661
364
  const Prototype = Cmp.prototype;
@@ -1148,11 +851,11 @@ let PLabel = class PLabel {
1148
851
  }
1149
852
  };
1150
853
  PLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1151
- PLabel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PLabel, selector: "p-label", inputs: { circle: "circle", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
854
+ PLabel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PLabel, selector: "p-label", inputs: { circle: "circle", icon: "icon", iconFlip: "iconFlip", iconOnly: "iconOnly", iconRotate: "iconRotate", mobileIcon: "mobileIcon", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1152
855
  PLabel = __decorate([
1153
856
  ProxyCmp({
1154
857
  defineCustomElementFn: undefined,
1155
- inputs: ['circle', 'size', 'variant']
858
+ inputs: ['circle', 'icon', 'iconFlip', 'iconOnly', 'iconRotate', 'mobileIcon', 'size', 'variant']
1156
859
  })
1157
860
  ], PLabel);
1158
861
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PLabel, decorators: [{
@@ -1161,7 +864,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
1161
864
  selector: 'p-label',
1162
865
  changeDetection: ChangeDetectionStrategy.OnPush,
1163
866
  template: '<ng-content></ng-content>',
1164
- inputs: ['circle', 'size', 'variant']
867
+ inputs: ['circle', 'icon', 'iconFlip', 'iconOnly', 'iconRotate', 'mobileIcon', 'size', 'variant']
1165
868
  }]
1166
869
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1167
870
  let PLayout = class PLayout {
@@ -1739,175 +1442,1183 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
1739
1442
  inputs: ['active']
1740
1443
  }]
1741
1444
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1742
- let PTableColumn = class PTableColumn {
1445
+ let PTableContainer = class PTableContainer {
1446
+ constructor(c, r, z) {
1447
+ this.z = z;
1448
+ c.detach();
1449
+ this.el = r.nativeElement;
1450
+ }
1451
+ };
1452
+ PTableContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1453
+ PTableContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableContainer, selector: "p-table-container", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1454
+ PTableContainer = __decorate([
1455
+ ProxyCmp({
1456
+ defineCustomElementFn: undefined
1457
+ })
1458
+ ], PTableContainer);
1459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableContainer, decorators: [{
1460
+ type: Component,
1461
+ args: [{
1462
+ selector: 'p-table-container',
1463
+ changeDetection: ChangeDetectionStrategy.OnPush,
1464
+ template: '<ng-content></ng-content>'
1465
+ }]
1466
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1467
+ let PTableFooter = class PTableFooter {
1743
1468
  constructor(c, r, z) {
1744
1469
  this.z = z;
1745
1470
  c.detach();
1746
1471
  this.el = r.nativeElement;
1472
+ proxyOutputs(this, this.el, ['pageChange', 'pageSizeChange', 'export']);
1747
1473
  }
1748
1474
  };
1749
- PTableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableColumn, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1750
- PTableColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableColumn, selector: "p-table-column", inputs: { checkbox: "checkbox", definition: "definition", index: "index", item: "item", rowIndex: "rowIndex", template: "template", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1751
- PTableColumn = __decorate([
1475
+ PTableFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1476
+ PTableFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableFooter, selector: "p-table-footer", inputs: { enableExport: "enableExport", enablePageSize: "enablePageSize", enablePagination: "enablePagination", hideOnSinglePage: "hideOnSinglePage", page: "page", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1477
+ PTableFooter = __decorate([
1752
1478
  ProxyCmp({
1753
1479
  defineCustomElementFn: undefined,
1754
- inputs: ['checkbox', 'definition', 'index', 'item', 'rowIndex', 'template', 'value', 'variant']
1480
+ inputs: ['enableExport', 'enablePageSize', 'enablePagination', 'hideOnSinglePage', 'page', 'pageSize', 'pageSizeOptions', 'total']
1755
1481
  })
1756
- ], PTableColumn);
1757
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableColumn, decorators: [{
1482
+ ], PTableFooter);
1483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableFooter, decorators: [{
1758
1484
  type: Component,
1759
1485
  args: [{
1760
- selector: 'p-table-column',
1486
+ selector: 'p-table-footer',
1761
1487
  changeDetection: ChangeDetectionStrategy.OnPush,
1762
1488
  template: '<ng-content></ng-content>',
1763
- inputs: ['checkbox', 'definition', 'index', 'item', 'rowIndex', 'template', 'value', 'variant']
1489
+ inputs: ['enableExport', 'enablePageSize', 'enablePagination', 'hideOnSinglePage', 'page', 'pageSize', 'pageSizeOptions', 'total']
1764
1490
  }]
1765
1491
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1766
- let PTableContainer = class PTableContainer {
1492
+ let PTableHeader = class PTableHeader {
1767
1493
  constructor(c, r, z) {
1768
1494
  this.z = z;
1769
1495
  c.detach();
1770
1496
  this.el = r.nativeElement;
1497
+ proxyOutputs(this, this.el, ['quickFilter', 'queryChange', 'filter', 'edit']);
1771
1498
  }
1772
1499
  };
1773
- PTableContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1774
- PTableContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableContainer, selector: "p-table-container", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1775
- PTableContainer = __decorate([
1500
+ PTableHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1501
+ PTableHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableHeader, selector: "p-table-header", inputs: { activeQuickFilterIdentifier: "activeQuickFilterIdentifier", canEdit: "canEdit", editButtonTemplate: "editButtonTemplate", enableEdit: "enableEdit", enableFilter: "enableFilter", enableSearch: "enableSearch", filterButtonTemplate: "filterButtonTemplate", itemsSelectedAmount: "itemsSelectedAmount", query: "query", quickFilters: "quickFilters", selectedFiltersAmount: "selectedFiltersAmount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1502
+ PTableHeader = __decorate([
1776
1503
  ProxyCmp({
1777
- defineCustomElementFn: undefined
1504
+ defineCustomElementFn: undefined,
1505
+ inputs: ['activeQuickFilterIdentifier', 'canEdit', 'editButtonTemplate', 'enableEdit', 'enableFilter', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'query', 'quickFilters', 'selectedFiltersAmount']
1778
1506
  })
1779
- ], PTableContainer);
1780
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableContainer, decorators: [{
1507
+ ], PTableHeader);
1508
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableHeader, decorators: [{
1781
1509
  type: Component,
1782
1510
  args: [{
1783
- selector: 'p-table-container',
1511
+ selector: 'p-table-header',
1784
1512
  changeDetection: ChangeDetectionStrategy.OnPush,
1785
- template: '<ng-content></ng-content>'
1513
+ template: '<ng-content></ng-content>',
1514
+ inputs: ['activeQuickFilterIdentifier', 'canEdit', 'editButtonTemplate', 'enableEdit', 'enableFilter', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'query', 'quickFilters', 'selectedFiltersAmount']
1786
1515
  }]
1787
1516
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1788
- let PTableFooter = class PTableFooter {
1517
+ let PTableRow = class PTableRow {
1518
+ constructor(c, r, z) {
1519
+ this.z = z;
1520
+ c.detach();
1521
+ this.el = r.nativeElement;
1522
+ }
1523
+ };
1524
+ PTableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1525
+ PTableRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableRow, selector: "p-table-row", inputs: { enableHover: "enableHover", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1526
+ PTableRow = __decorate([
1527
+ ProxyCmp({
1528
+ defineCustomElementFn: undefined,
1529
+ inputs: ['enableHover', 'variant']
1530
+ })
1531
+ ], PTableRow);
1532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableRow, decorators: [{
1533
+ type: Component,
1534
+ args: [{
1535
+ selector: 'p-table-row',
1536
+ changeDetection: ChangeDetectionStrategy.OnPush,
1537
+ template: '<ng-content></ng-content>',
1538
+ inputs: ['enableHover', 'variant']
1539
+ }]
1540
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1541
+ let PToastContainer = class PToastContainer {
1542
+ constructor(c, r, z) {
1543
+ this.z = z;
1544
+ c.detach();
1545
+ this.el = r.nativeElement;
1546
+ }
1547
+ };
1548
+ PToastContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PToastContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1549
+ PToastContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PToastContainer, selector: "p-toast-container", inputs: { placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1550
+ PToastContainer = __decorate([
1551
+ ProxyCmp({
1552
+ defineCustomElementFn: undefined,
1553
+ inputs: ['placement']
1554
+ })
1555
+ ], PToastContainer);
1556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PToastContainer, decorators: [{
1557
+ type: Component,
1558
+ args: [{
1559
+ selector: 'p-toast-container',
1560
+ changeDetection: ChangeDetectionStrategy.OnPush,
1561
+ template: '<ng-content></ng-content>',
1562
+ inputs: ['placement']
1563
+ }]
1564
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1565
+ let PTooltip = class PTooltip {
1566
+ constructor(c, r, z) {
1567
+ this.z = z;
1568
+ c.detach();
1569
+ this.el = r.nativeElement;
1570
+ proxyOutputs(this, this.el, ['isOpen']);
1571
+ }
1572
+ };
1573
+ PTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1574
+ PTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTooltip, selector: "p-tooltip", inputs: { canManuallyClose: "canManuallyClose", placement: "placement", popover: "popover", show: "show", strategy: "strategy", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1575
+ PTooltip = __decorate([
1576
+ ProxyCmp({
1577
+ defineCustomElementFn: undefined,
1578
+ inputs: ['canManuallyClose', 'placement', 'popover', 'show', 'strategy', 'variant']
1579
+ })
1580
+ ], PTooltip);
1581
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTooltip, decorators: [{
1582
+ type: Component,
1583
+ args: [{
1584
+ selector: 'p-tooltip',
1585
+ changeDetection: ChangeDetectionStrategy.OnPush,
1586
+ template: '<ng-content></ng-content>',
1587
+ inputs: ['canManuallyClose', 'placement', 'popover', 'show', 'strategy', 'variant']
1588
+ }]
1589
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1590
+
1591
+ /* eslint-disable max-len */
1592
+ class TableCell {
1593
+ constructor() {
1594
+ /**
1595
+ * The variant of the column
1596
+ */
1597
+ this.variant = 'default';
1598
+ /**
1599
+ * The index of the column
1600
+ */
1601
+ this.index = 0;
1602
+ /**
1603
+ * The index of the row
1604
+ */
1605
+ this.rowIndex = 0;
1606
+ }
1607
+ get class() {
1608
+ return this.getColumnClasses();
1609
+ }
1610
+ get data() {
1611
+ if (this.variant === 'header') {
1612
+ return {
1613
+ value: this.value,
1614
+ };
1615
+ }
1616
+ return {
1617
+ value: this.value ?? objectGetByPath(this.item, this.definition.path),
1618
+ item: this.item,
1619
+ index: this.index,
1620
+ rowIndex: this.rowIndex,
1621
+ };
1622
+ }
1623
+ // render() {
1624
+ // return (
1625
+ // <Host
1626
+ // class={{
1627
+ // 'p-table-column': true,
1628
+ // [`variant-${this.variant}`]: true,
1629
+ // ...this._getColumnClasses(),
1630
+ // }}
1631
+ // >
1632
+ // {this.checkbox}
1633
+ // {this.variant === 'loading' ? (
1634
+ // <p-loader
1635
+ // variant="ghost"
1636
+ // class="rounded flex-1 w-full h-6"
1637
+ // />
1638
+ // ) : (
1639
+ // <div class="flex">
1640
+ // {this.variant === 'header' ? (
1641
+ // this.data.value
1642
+ // ) : this.definition.useSlot ? (
1643
+ // <slot />
1644
+ // ) : (
1645
+ // this.template(this.data as TableDefinitionData)
1646
+ // )}
1647
+ // </div>
1648
+ // )}
1649
+ // </Host>
1650
+ // );
1651
+ // }
1652
+ getColumnClasses() {
1653
+ const sizes = this.definition ? this._getSizes(this.definition) : {};
1654
+ return {
1655
+ 'justify-start': !this.definition?.align || this.definition?.align === 'start',
1656
+ 'justify-center': this.definition?.align === 'center',
1657
+ 'justify-end': this.definition?.align === 'end',
1658
+ 'font-semibold': this.variant !== 'header' && this.definition?.type === 'th',
1659
+ 'text-storm-dark': this.variant !== 'header' && this.definition?.type === 'th',
1660
+ ...sizes,
1661
+ };
1662
+ }
1663
+ /*
1664
+ With this, we shall hack the system in ways no one would ever have thought.
1665
+
1666
+ w-1/12 w-2/12 w-3/12 w-4/12 w-5/12 w-6/12 w-7/12 w-8/12 w-9/12 w-10/12 w-11/12 w-12/12
1667
+ tablet:w-1/12 tablet:w-2/12 tablet:w-3/12 tablet:w-4/12 tablet:w-5/12 tablet:w-6/12 tablet:w-7/12 tablet:w-8/12 tablet:w-9/12 tablet:w-10/12 tablet:w-11/12 tablet:w-12/12
1668
+ desktop-xs:w-1/12 desktop-xs:w-2/12 desktop-xs:w-3/12 desktop-xs:w-4/12 desktop-xs:w-5/12 desktop-xs:w-6/12 desktop-xs:w-7/12 desktop-xs:w-8/12 desktop-xs:w-9/12 desktop-xs:w-10/12 desktop-xs:w-11/12 desktop-xs:w-12/12
1669
+ desktop-xs:w-1/12 desktop-xs:w-2/12 desktop-xs:w-3/12 desktop-xs:w-4/12 desktop-xs:w-5/12 desktop-xs:w-6/12 desktop-xs:w-7/12 desktop-xs:w-8/12 desktop-xs:w-9/12 desktop-xs:w-10/12 desktop-xs:w-11/12 desktop-xs:w-12/12
1670
+ desktop-sm:w-1/12 desktop-sm:w-2/12 desktop-sm:w-3/12 desktop-sm:w-4/12 desktop-sm:w-5/12 desktop-sm:w-6/12 desktop-sm:w-7/12 desktop-sm:w-8/12 desktop-sm:w-9/12 desktop-sm:w-10/12 desktop-sm:w-11/12 desktop-sm:w-12/12
1671
+ desktop:w-1/12 desktop:w-2/12 desktop:w-3/12 desktop:w-4/12 desktop:w-5/12 desktop:w-6/12 desktop:w-7/12 desktop:w-8/12 desktop:w-9/12 desktop:w-10/12 desktop:w-11/12 desktop:w-12/12
1672
+ desktop-lg:w-1/12 desktop-lg:w-2/12 desktop-lg:w-3/12 desktop-lg:w-4/12 desktop-lg:w-5/12 desktop-lg:w-6/12 desktop-lg:w-7/12 desktop-lg:w-8/12 desktop-lg:w-9/12 desktop-lg:w-10/12 desktop-lg:w-11/12 desktop-lg:w-12/12
1673
+ desktop-xl:w-1/12 desktop-xl:w-2/12 desktop-xl:w-3/12 desktop-xl:w-4/12 desktop-xl:w-5/12 desktop-xl:w-6/12 desktop-xl:w-7/12 desktop-xl:w-8/12 desktop-xl:w-9/12 desktop-xl:w-10/12 desktop-xl:w-11/12 desktop-xl:w-12/12
1674
+
1675
+
1676
+ ⠀⠀⠀⠀⠀⣠⣴⣶⣿⣿⠿⣷⣶⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣷⠿⣿⣿⣶⣦⣀⠀⠀⠀⠀⠀
1677
+ ⠀⠀⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣶⣦⣬⡉⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⢉⣥⣴⣾⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀
1678
+ ⠀⠀⠀⡾⠿⠛⠛⠛⠛⠿⢿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⣿⣿⣿⣿⣿⠿⠿⠛⠛⠛⠛⠿⢧⠀⠀⠀
1679
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1680
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1681
+ ⠀⠀⠀⠀⠀⠀⠀⣠⣤⠶⠶⠶⠰⠦⣤⣀⠀⠙⣷⠀⠀⠀⠀⠀⠀⠀⢠⡿⠋⢀⣀⣤⢴⠆⠲⠶⠶⣤⣄⠀⠀⠀⠀⠀⠀⠀
1682
+ ⠀⠘⣆⠀⠀⢠⣾⣫⣶⣾⣿⣿⣿⣿⣷⣯⣿⣦⠈⠃⡇⠀⠀⠀⠀⢸⠘⢁⣶⣿⣵⣾⣿⣿⣿⣿⣷⣦⣝⣷⡄⠀⠀⡰⠂⠀
1683
+ ⠀⠀⣨⣷⣶⣿⣧⣛⣛⠿⠿⣿⢿⣿⣿⣛⣿⡿⠀⠀⡇⠀⠀⠀⠀⢸⠀⠈⢿⣟⣛⠿⢿⡿⢿⢿⢿⣛⣫⣼⡿⣶⣾⣅⡀⠀
1684
+ ⢀⡼⠋⠁⠀⠀⠈⠉⠛⠛⠻⠟⠸⠛⠋⠉⠁⠀⠀⢸⡇⠀⠀⠄⠀⢸⡄⠀⠀⠈⠉⠙⠛⠃⠻⠛⠛⠛⠉⠁⠀⠀⠈⠙⢧⡀
1685
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⡇⢠⠀⠀⠀⢸⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1686
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡇⠀⠀⠀⠀⢸⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1687
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠟⠁⣿⠇⠀⠀⠀⠀⢸⡇⠙⢿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1688
+ ⠀⠰⣄⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⠖⡾⠁⠀⠀⣿⠀⠀⠀⠀⠀⠘⣿⠀⠀⠙⡇⢸⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠄⠀
1689
+ ⠀⠀⢻⣷⡦⣤⣤⣤⡴⠶⠿⠛⠉⠁⠀⢳⠀⢠⡀⢿⣀⠀⠀⠀⠀⣠⡟⢀⣀⢠⠇⠀⠈⠙⠛⠷⠶⢦⣤⣤⣤⢴⣾⡏⠀⠀
1690
+ ⠀⠀⠈⣿⣧⠙⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⢊⣙⠛⠒⠒⢛⣋⡚⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⡿⠁⣾⡿⠀⠀⠀
1691
+ ⠀⠀⠀⠘⣿⣇⠈⢿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⡟⠁⣼⡿⠁⠀⠀⠀
1692
+ ⠀⠀⠀⠀⠘⣿⣦⠀⠻⣿⣷⣦⣤⣤⣶⣶⣶⣿⣿⣿⣿⠏⠀⠀⠻⣿⣿⣿⣿⣶⣶⣶⣦⣤⣴⣿⣿⠏⢀⣼⡿⠁⠀⠀⠀⠀
1693
+ ⠀⠀⠀⠀⠀⠘⢿⣷⣄⠙⠻⠿⠿⠿⠿⠿⢿⣿⣿⣿⣁⣀⣀⣀⣀⣙⣿⣿⣿⠿⠿⠿⠿⠿⠿⠟⠁⣠⣿⡿⠁⠀⠀⠀⠀⠀
1694
+ ⠀⠀⠀⠀⠀⠀⠈⠻⣯⠙⢦⣀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⣠⠴⢋⣾⠟⠀⠀⠀⠀⠀⠀⠀
1695
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠙⢧⡀⠈⠉⠒⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠐⠒⠉⠁⢀⡾⠃⠀⠀⠀⠀⠀⠀⠀⠀
1696
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⣠⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1697
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢦⡀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⢀⡴⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1698
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1699
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1700
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1701
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1702
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
1703
+ */
1704
+ _getSizes({ sizes } /* Table Definition */) {
1705
+ if (sizes === 'auto' || !sizes) {
1706
+ return {
1707
+ 'w-auto': true,
1708
+ };
1709
+ }
1710
+ if (typeof sizes === 'object') {
1711
+ const classes = {};
1712
+ for (const size of Object.keys(sizes)) {
1713
+ if (size === 'default') {
1714
+ classes[`w-${sizes.default}/12`] = true;
1715
+ continue;
1716
+ }
1717
+ classes[`${size}:w-${sizes[`${size}`]}/12`] = true;
1718
+ }
1719
+ return classes;
1720
+ }
1721
+ // is a number.
1722
+ return {
1723
+ [`w-${sizes}/12`]: true,
1724
+ };
1725
+ }
1726
+ }
1727
+ TableCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableCell, deps: [], target: i0.ɵɵFactoryTarget.Component });
1728
+ TableCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TableCell, selector: "p-table-cell-ngx", inputs: { variant: "variant", index: "index", rowIndex: "rowIndex", definition: "definition", item: "item", value: "value", checkbox: "checkbox", template: "template" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<ng-container *ngIf=\"checkbox\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n</ng-container>\n\n<ng-container [ngSwitch]=\"variant\">\n <p-loader\n *ngSwitchCase=\"'loading'\"\n variant=\"ghost\"\n class=\"rounded flex-1 w-full h-6\"\n ></p-loader>\n\n <div *ngSwitchCase=\"'header'\" class=\"flex\">\n <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n </div>\n\n <div *ngSwitchCase=\"'default'\" class=\"flex\">\n <ng-container *ngIf=\"template; else valueTemplate\">\n <ng-container\n *ngTemplateOutlet=\"template; context: data\"\n ></ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #valueTemplate>\n {{ data.value }}\n</ng-template>\n", styles: [":host{@apply flex gap-4 items-center;}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: PLoader, selector: "p-loader", inputs: ["color", "modalDescription", "modalTitle", "show", "variant"] }] });
1729
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableCell, decorators: [{
1730
+ type: Component,
1731
+ args: [{ selector: 'p-table-cell-ngx', template: "<ng-container *ngIf=\"checkbox\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n</ng-container>\n\n<ng-container [ngSwitch]=\"variant\">\n <p-loader\n *ngSwitchCase=\"'loading'\"\n variant=\"ghost\"\n class=\"rounded flex-1 w-full h-6\"\n ></p-loader>\n\n <div *ngSwitchCase=\"'header'\" class=\"flex\">\n <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n </div>\n\n <div *ngSwitchCase=\"'default'\" class=\"flex\">\n <ng-container *ngIf=\"template; else valueTemplate\">\n <ng-container\n *ngTemplateOutlet=\"template; context: data\"\n ></ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #valueTemplate>\n {{ data.value }}\n</ng-template>\n", styles: [":host{@apply flex gap-4 items-center;}\n"] }]
1732
+ }], propDecorators: { variant: [{
1733
+ type: Input
1734
+ }], index: [{
1735
+ type: Input
1736
+ }], rowIndex: [{
1737
+ type: Input
1738
+ }], definition: [{
1739
+ type: Input
1740
+ }], item: [{
1741
+ type: Input
1742
+ }], value: [{
1743
+ type: Input
1744
+ }], checkbox: [{
1745
+ type: Input
1746
+ }], template: [{
1747
+ type: Input
1748
+ }], class: [{
1749
+ type: HostBinding,
1750
+ args: ['class']
1751
+ }] } });
1752
+
1753
+ let TableColumn = class TableColumn {
1789
1754
  constructor(c, r, z) {
1790
1755
  this.z = z;
1791
1756
  c.detach();
1792
1757
  this.el = r.nativeElement;
1793
- proxyOutputs(this, this.el, ['pageChange', 'pageSizeChange', 'export']);
1758
+ console.log(this.el);
1759
+ proxyOutputs(this, this.el, ['tableDefinitionChanged']);
1794
1760
  }
1795
1761
  };
1796
- PTableFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1797
- PTableFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableFooter, selector: "p-table-footer", inputs: { enableExport: "enableExport", enablePageSize: "enablePageSize", enablePagination: "enablePagination", hideOnSinglePage: "hideOnSinglePage", page: "page", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1798
- PTableFooter = __decorate([
1762
+ TableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableColumn, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1763
+ TableColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TableColumn, selector: "p-table-column", inputs: { align: "align", name: "name", path: "path", sizes: "sizes", type: "type", useSlot: "useSlot" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1764
+ TableColumn = __decorate([
1799
1765
  ProxyCmp({
1800
1766
  defineCustomElementFn: undefined,
1801
- inputs: ['enableExport', 'enablePageSize', 'enablePagination', 'hideOnSinglePage', 'page', 'pageSize', 'pageSizeOptions', 'total']
1767
+ inputs: ['align', 'name', 'path', 'sizes', 'type', 'useSlot'],
1802
1768
  })
1803
- ], PTableFooter);
1804
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableFooter, decorators: [{
1769
+ ], TableColumn);
1770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableColumn, decorators: [{
1805
1771
  type: Component,
1806
1772
  args: [{
1807
- selector: 'p-table-footer',
1773
+ selector: 'p-table-column',
1808
1774
  changeDetection: ChangeDetectionStrategy.OnPush,
1809
1775
  template: '<ng-content></ng-content>',
1810
- inputs: ['enableExport', 'enablePageSize', 'enablePagination', 'hideOnSinglePage', 'page', 'pageSize', 'pageSizeOptions', 'total']
1776
+ inputs: ['align', 'name', 'path', 'sizes', 'type', 'useSlot'],
1811
1777
  }]
1812
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1813
- let PTableHeader = class PTableHeader {
1814
- constructor(c, r, z) {
1815
- this.z = z;
1816
- c.detach();
1817
- this.el = r.nativeElement;
1818
- proxyOutputs(this, this.el, ['quickFilter', 'queryChange', 'filter', 'edit']);
1778
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { template: [{
1779
+ type: ContentChild,
1780
+ args: [TemplateRef, {
1781
+ read: TemplateRef,
1782
+ static: true,
1783
+ }]
1784
+ }] } });
1785
+
1786
+ const defaultSize = 12;
1787
+ const defaultSizeOptions = [12, 24, 68, 136];
1788
+
1789
+ class TableFooterDirective extends BaseValueAccessor {
1790
+ constructor(el) {
1791
+ super(el);
1792
+ this.lastValue = {
1793
+ page: 1,
1794
+ pageSize: 12,
1795
+ };
1796
+ }
1797
+ writeValue(value) {
1798
+ this.el.nativeElement.page = this.lastValue.page =
1799
+ value?.page == null ? '' : value?.page;
1800
+ this.el.nativeElement.pageSize = this.lastValue.pageSize =
1801
+ value?.pageSize == null ? '' : value?.pageSize;
1802
+ }
1803
+ handleChange(value, type) {
1804
+ this.handleChangeEvent({
1805
+ ...this.lastValue,
1806
+ [type]: value,
1807
+ });
1808
+ }
1809
+ }
1810
+ TableFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableFooterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1811
+ TableFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: TableFooterDirective, selector: "p-table-footer", host: { listeners: { "pageChange": "handleChange($event.detail, \"page\")", "pageSizeChange": "handleChange($event.detail, \"pageSize\")" } }, providers: [
1812
+ {
1813
+ provide: NG_VALUE_ACCESSOR,
1814
+ useExisting: TableFooterDirective,
1815
+ multi: true,
1816
+ },
1817
+ ], usesInheritance: true, ngImport: i0 });
1818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableFooterDirective, decorators: [{
1819
+ type: Directive,
1820
+ args: [{
1821
+ /* tslint:disable-next-line:directive-selector */
1822
+ selector: 'p-table-footer',
1823
+ host: {
1824
+ '(pageChange)': 'handleChange($event.detail, "page")',
1825
+ '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
1826
+ },
1827
+ providers: [
1828
+ {
1829
+ provide: NG_VALUE_ACCESSOR,
1830
+ useExisting: TableFooterDirective,
1831
+ multi: true,
1832
+ },
1833
+ ],
1834
+ }]
1835
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
1836
+
1837
+ class TableHeaderDirective extends BaseValueAccessor {
1838
+ constructor(el) {
1839
+ super(el);
1840
+ this.lastValue = {
1841
+ query: '',
1842
+ quickFilter: undefined,
1843
+ };
1844
+ }
1845
+ writeValue(value) {
1846
+ this.el.nativeElement.query = this.lastValue.query = value?.query;
1847
+ this.lastValue.quickFilter = value?.quickFilter;
1848
+ if (value?.quickFilter) {
1849
+ this._setActiveQuickFilter(value.quickFilter);
1850
+ }
1851
+ }
1852
+ handleChange(value, type) {
1853
+ this.handleChangeEvent({
1854
+ ...this.lastValue,
1855
+ [type]: value,
1856
+ });
1857
+ if (type === 'quickFilter' && typeof value !== 'string') {
1858
+ this._setActiveQuickFilter(value);
1859
+ }
1860
+ }
1861
+ _setActiveQuickFilter(quickFilter) {
1862
+ this.el.nativeElement.activeQuickFilterIdentifier =
1863
+ quickFilter?.identifier;
1864
+ }
1865
+ }
1866
+ TableHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableHeaderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1867
+ TableHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: TableHeaderDirective, selector: "p-table-header", host: { listeners: { "queryChange": "handleChange($event.detail, \"query\")", "quickFilter": "handleChange($event.detail, \"quickFilter\")" } }, providers: [
1868
+ {
1869
+ provide: NG_VALUE_ACCESSOR,
1870
+ useExisting: TableHeaderDirective,
1871
+ multi: true,
1872
+ },
1873
+ ], usesInheritance: true, ngImport: i0 });
1874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableHeaderDirective, decorators: [{
1875
+ type: Directive,
1876
+ args: [{
1877
+ /* tslint:disable-next-line:directive-selector */
1878
+ selector: 'p-table-header',
1879
+ host: {
1880
+ '(queryChange)': 'handleChange($event.detail, "query")',
1881
+ '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
1882
+ },
1883
+ providers: [
1884
+ {
1885
+ provide: NG_VALUE_ACCESSOR,
1886
+ useExisting: TableHeaderDirective,
1887
+ multi: true,
1888
+ },
1889
+ ],
1890
+ }]
1891
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
1892
+
1893
+ let TableComponent = class TableComponent {
1894
+ constructor() {
1895
+ /**
1896
+ * Wether data is loading
1897
+ */
1898
+ this.loading = false;
1899
+ /**
1900
+ * The amount of loading rows to show
1901
+ */
1902
+ this.amountOfLoadingRows = 4;
1903
+ /**
1904
+ * Wether to enable selection
1905
+ */
1906
+ this.enableRowSelection = true;
1907
+ /**
1908
+ * Wether to enable row clicking
1909
+ */
1910
+ this.enableRowClick = true;
1911
+ /**
1912
+ * The current selection of items
1913
+ */
1914
+ this.selectedRows = [];
1915
+ /**
1916
+ * Event whenever the current selection changes
1917
+ */
1918
+ this.selectedRowsChange = new EventEmitter();
1919
+ /**
1920
+ * Event whenever a row is clicked
1921
+ */
1922
+ this.rowClick = new EventEmitter();
1923
+ /**
1924
+ * Event whenever a row is selected
1925
+ */
1926
+ this.rowSelected = new EventEmitter();
1927
+ /**
1928
+ * Event whenever a row is deselected
1929
+ */
1930
+ this.rowDeselected = new EventEmitter();
1931
+ /** START HEADER */
1932
+ /**
1933
+ * Quick filters to show
1934
+ */
1935
+ this.quickFilters = [];
1936
+ /**
1937
+ * Wether to show the search input
1938
+ */
1939
+ this.enableSearch = true;
1940
+ /**
1941
+ * Wether to show the filter button
1942
+ */
1943
+ this.enableFilter = true;
1944
+ /**
1945
+ * Wether to show the edit button
1946
+ */
1947
+ this.enableEdit = true;
1948
+ /**
1949
+ * Event when one of the quick filters is clicked
1950
+ */
1951
+ this.quickFilter = new EventEmitter();
1952
+ /**
1953
+ * Event when the query changes
1954
+ */
1955
+ this.queryChange = new EventEmitter();
1956
+ /**
1957
+ * Event when the filter button is clicked
1958
+ */
1959
+ this.filter = new EventEmitter();
1960
+ /**
1961
+ * Event when the edit button is clicked
1962
+ */
1963
+ this.edit = new EventEmitter();
1964
+ /** START FOOTER */
1965
+ /**
1966
+ * Wether to enable page size select
1967
+ */
1968
+ this.enablePageSize = true;
1969
+ /**
1970
+ * Wether to enable pagination
1971
+ */
1972
+ this.enablePagination = true;
1973
+ /**
1974
+ * Wether to enable export
1975
+ */
1976
+ this.enableExport = true;
1977
+ /**
1978
+ * The current page
1979
+ */
1980
+ this.page = 1;
1981
+ /**
1982
+ * Event whenever the page changes
1983
+ */
1984
+ this.pageChange = new EventEmitter();
1985
+ /**
1986
+ * The amount of items per page
1987
+ */
1988
+ this.pageSize = defaultSize;
1989
+ /**
1990
+ * The options for the page size
1991
+ */
1992
+ this.pageSizeOptions = defaultSizeOptions;
1993
+ /**
1994
+ * Event whenever the page changes
1995
+ */
1996
+ this.pageSizeChange = new EventEmitter();
1997
+ /**
1998
+ * Event whenever the page changes
1999
+ */
2000
+ this.export = new EventEmitter();
2001
+ /**
2002
+ * Wether to hide when there is only 1 page available
2003
+ */
2004
+ this.hideOnSinglePage = true;
2005
+ this.columns = [];
2006
+ this.parsedItems = [];
2007
+ this.loadingRows = Array.from({
2008
+ length: this.amountOfLoadingRows,
2009
+ });
2010
+ this._ctrlDown = false;
2011
+ }
2012
+ set columnDefinitions(v) {
2013
+ this._columnDefinitions = v;
2014
+ this._generateColumns();
2015
+ }
2016
+ get columnDefinitions() {
2017
+ return this._columnDefinitions;
2018
+ }
2019
+ ngOnInit() {
2020
+ this._parseItems(this.items);
2021
+ // this._generateColumns();
2022
+ }
2023
+ ngOnChanges(changes) {
2024
+ if (changes['items']) {
2025
+ this._parseItems(changes['items'].currentValue);
2026
+ }
2027
+ }
2028
+ // @HostListener('body:tableDefinitionChanged', { target: 'body' })
2029
+ // onTableDefinitionUpdated() {
2030
+ // this._generateColumns();
2031
+ // }
2032
+ keyDown({ key }) {
2033
+ if (key !== 'Control' || this._ctrlDown === true) {
2034
+ return;
2035
+ }
2036
+ this._ctrlDown = true;
2037
+ }
2038
+ keyUp({ key }) {
2039
+ if (key !== 'Control' || this._ctrlDown === false) {
2040
+ return;
2041
+ }
2042
+ this._ctrlDown = false;
2043
+ }
2044
+ visibilityChange() {
2045
+ if (document.visibilityState !== 'hidden' || this._ctrlDown === false) {
2046
+ return;
2047
+ }
2048
+ this._ctrlDown = false;
2049
+ }
2050
+ onQueryChange({ detail }) {
2051
+ this.queryChange.emit(detail);
2052
+ }
2053
+ onQuickFilter({ detail }) {
2054
+ this.quickFilter.emit(detail);
2055
+ }
2056
+ onPageSizeChange({ detail }) {
2057
+ this.pageSizeChange.emit(detail);
2058
+ }
2059
+ onPageChange({ detail }) {
2060
+ this.pageChange.emit(detail);
2061
+ }
2062
+ _parseItems(items) {
2063
+ if (!items) {
2064
+ this.parsedItems = [];
2065
+ return;
2066
+ }
2067
+ if (Array.isArray(items)) {
2068
+ this.parsedItems = items;
2069
+ return;
2070
+ }
2071
+ this.parsedItems = JSON.parse(items);
2072
+ }
2073
+ _generateColumns() {
2074
+ // const definitions =
2075
+ // this._el.nativeElement.querySelectorAll('p-table-definition');
2076
+ this.columns = Array.from(this._columnDefinitions);
2077
+ }
2078
+ // private _getHeader() {
2079
+ // return (
2080
+ // <p-table-row variant="header">
2081
+ // {this._columns.map((col: TableDefinition, index) => (
2082
+ // <p-table-column
2083
+ // definition={col}
2084
+ // value={col.name}
2085
+ // variant="header"
2086
+ // checkbox={this._getCheckbox(index, null, 'header')}
2087
+ // index={index}
2088
+ // ></p-table-column>
2089
+ // ))}
2090
+ // </p-table-row>
2091
+ // );
2092
+ // }
2093
+ // private _getRows() {
2094
+ // if (this.loading) {
2095
+ // return Array.from(
2096
+ // {
2097
+ // length: this.amountOfLoadingRows,
2098
+ // },
2099
+ // (_, i) => (
2100
+ // <p-table-row
2101
+ // enableHover={
2102
+ // this.enableRowSelection || this.enableRowClick
2103
+ // }
2104
+ // >
2105
+ // {this._getLoadingColumns(i)}
2106
+ // </p-table-row>
2107
+ // )
2108
+ // );
2109
+ // }
2110
+ // return this._items.map((item, index) => (
2111
+ // <p-table-row
2112
+ // enableHover={this.enableRowSelection || this.enableRowClick}
2113
+ // onClick={(ev) => this._rowClick(ev, index)}
2114
+ // >
2115
+ // {this._getRowColumns(item, index)}
2116
+ // </p-table-row>
2117
+ // ));
2118
+ // }
2119
+ // private _getRowColumns(item, index) {
2120
+ // return this._columns.map((col: TableDefinition, colIndex) => {
2121
+ // return (
2122
+ // <p-table-column
2123
+ // definition={col}
2124
+ // item={item}
2125
+ // checkbox={this._getCheckbox(colIndex, index)}
2126
+ // index={colIndex}
2127
+ // rowIndex={index}
2128
+ // ></p-table-column>
2129
+ // );
2130
+ // });
2131
+ // }
2132
+ // private _getLoadingColumns(index) {
2133
+ // return this._columns.map((col: TableDefinition, colIndex) => {
2134
+ // return (
2135
+ // <p-table-column
2136
+ // definition={col}
2137
+ // variant="loading"
2138
+ // checkbox={this._getCheckbox(colIndex, index, 'loading')}
2139
+ // index={colIndex}
2140
+ // rowIndex={index}
2141
+ // ></p-table-column>
2142
+ // );
2143
+ // });
2144
+ // }
2145
+ // private _getCheckbox(
2146
+ // index,
2147
+ // rowIndex,
2148
+ // variant: 'header' | 'default' | 'loading' = 'default'
2149
+ // ) {
2150
+ // if (!this.enableRowSelection || !this.selectionKey || index !== 0) {
2151
+ // return;
2152
+ // }
2153
+ // if (variant === 'loading') {
2154
+ // return <p-loader variant="ghost" class="rounded w-6 h-6" />;
2155
+ // }
2156
+ // if (variant === 'header') {
2157
+ // return (
2158
+ // <input
2159
+ // class="p-input"
2160
+ // type="checkbox"
2161
+ // onChange={(ev) => this._selectAllChange(ev)}
2162
+ // checked={this._selectionContainsAll()}
2163
+ // indeterminate={this._selectionIndeterminate()}
2164
+ // />
2165
+ // );
2166
+ // }
2167
+ // const item = this._items[rowIndex];
2168
+ // return (
2169
+ // <input
2170
+ // class="p-input"
2171
+ // type="checkbox"
2172
+ // onChange={(ev) => this._checkboxChange(ev?.target, rowIndex)}
2173
+ // disabled={this.canSelectKey && !item[this.canSelectKey]}
2174
+ // checked={this._selectionContains(item, rowIndex)}
2175
+ // />
2176
+ // );
2177
+ // }
2178
+ _checkboxDisabled(item) {
2179
+ return this.canSelectKey && !item[this.canSelectKey];
2180
+ }
2181
+ _selectAllChange($event) {
2182
+ if (!this.enableRowSelection) {
2183
+ return;
2184
+ }
2185
+ const value = this._getCheckedValue($event.target);
2186
+ if (value) {
2187
+ const toAdd = [];
2188
+ for (let i = 0; i < this.parsedItems.length; i++) {
2189
+ const row = this.parsedItems[i];
2190
+ if (this.canSelectKey && !row[this.canSelectKey]) {
2191
+ continue;
2192
+ }
2193
+ if (this._selectionContains(row, i)) {
2194
+ continue;
2195
+ }
2196
+ toAdd.push(row);
2197
+ this.rowSelected.emit(row);
2198
+ }
2199
+ this.selectedRows = [...this.selectedRows, ...toAdd];
2200
+ this.selectedRowsChange.emit(this.selectedRows);
2201
+ return;
2202
+ }
2203
+ for (let i = 0; i < this.selectedRows.length; i++) {
2204
+ const value = this.selectedRows[i];
2205
+ const row = this.parsedItems.find((d) => this._getSelectionValue(d, i) ===
2206
+ this._getSelectionValue(value, i));
2207
+ if (!row) {
2208
+ continue;
2209
+ }
2210
+ this.rowDeselected.emit(row);
2211
+ }
2212
+ this.selectedRows = [];
2213
+ this.selectedRowsChange.emit(this.selectedRows);
2214
+ }
2215
+ _checkboxChange(target, index) {
2216
+ if (!this.enableRowSelection) {
2217
+ return;
2218
+ }
2219
+ const row = this.parsedItems[index];
2220
+ if (this.canSelectKey && !row[this.canSelectKey]) {
2221
+ target.checked = false;
2222
+ return;
2223
+ }
2224
+ const value = this._getCheckedValue(target);
2225
+ if (value) {
2226
+ this.selectedRows = [...this.selectedRows, row];
2227
+ this.selectedRowsChange.emit(this.selectedRows);
2228
+ this.rowSelected.emit(row);
2229
+ return;
2230
+ }
2231
+ const indexOfToRemove = this._selectionContains(row, index, true);
2232
+ // we need to do this, because splice does not trigger the selection setter.
2233
+ const selection = [...this.selectedRows];
2234
+ selection.splice(indexOfToRemove, 1);
2235
+ this.selectedRows = selection;
2236
+ this.selectedRowsChange.emit(this.selectedRows);
2237
+ this.rowDeselected.emit(row);
2238
+ }
2239
+ _getCheckedValue(target) {
2240
+ return target?.checked;
2241
+ }
2242
+ _getSelectionValue(row, index) {
2243
+ return this.selectionKey ? row?.[this.selectionKey] || index : index;
2244
+ }
2245
+ _selectionContains(row, index, returnIndex = false) {
2246
+ const returnValue = this.selectedRows.findIndex((item) => this._getSelectionValue(row, index) ===
2247
+ this._getSelectionValue(item, index));
2248
+ return !returnIndex ? returnValue >= 0 : returnValue;
2249
+ }
2250
+ _selectionContainsAll() {
2251
+ let returnValue = true;
2252
+ if (!this.parsedItems?.length) {
2253
+ return false;
2254
+ }
2255
+ for (let i = 0; i < this.parsedItems?.length; i++) {
2256
+ const item = this.parsedItems[i];
2257
+ const contains = this._selectionContains(item, i);
2258
+ if (!contains) {
2259
+ returnValue = false;
2260
+ break;
2261
+ }
2262
+ }
2263
+ return returnValue;
2264
+ }
2265
+ _selectionIndeterminate() {
2266
+ if (!this.parsedItems?.length || !this.selectedRows?.length) {
2267
+ return false;
2268
+ }
2269
+ let containsCount = 0;
2270
+ for (let i = 0; i < this.parsedItems?.length; i++) {
2271
+ const item = this.parsedItems[i];
2272
+ const contains = this._selectionContains(item, i);
2273
+ if (contains) {
2274
+ containsCount++;
2275
+ }
2276
+ }
2277
+ return containsCount > 0 && containsCount !== this.parsedItems.length;
2278
+ }
2279
+ _rowClick($event, index) {
2280
+ const target = $event.target;
2281
+ if (target.tagName.toLowerCase() === 'input' ||
2282
+ target.type === 'checkbox') {
2283
+ return;
2284
+ }
2285
+ const row = this._findRow($event.target);
2286
+ if (this.enableRowClick) {
2287
+ const action = this._findRowAction($event.target);
2288
+ if (action) {
2289
+ return;
2290
+ }
2291
+ const item = this.parsedItems[index];
2292
+ this.rowClick.emit({
2293
+ item,
2294
+ ctrlDown: this._ctrlDown,
2295
+ });
2296
+ return;
2297
+ }
2298
+ if (!this.enableRowSelection) {
2299
+ return;
2300
+ }
2301
+ const checkbox = row?.querySelector('input[type="checkbox"]');
2302
+ if (!checkbox) {
2303
+ return;
2304
+ }
2305
+ checkbox.checked = !checkbox.checked;
2306
+ this._checkboxChange(checkbox, index);
2307
+ }
2308
+ _findRow(el) {
2309
+ if (!el) {
2310
+ return el;
2311
+ }
2312
+ if (el?.tagName?.toLowerCase() === 'p-table-row') {
2313
+ return el;
2314
+ }
2315
+ return this._findRow(el?.parentElement);
2316
+ }
2317
+ _findRowAction(el) {
2318
+ if (!el) {
2319
+ return null;
2320
+ }
2321
+ if (el.getAttribute('data-is-action') !== null &&
2322
+ el.getAttribute('data-is-action') !== 'false') {
2323
+ return el;
2324
+ }
2325
+ if (el?.tagName?.toLowerCase() === 'p-table-row') {
2326
+ return null;
2327
+ }
2328
+ return this._findRowAction(el?.parentElement);
2329
+ }
2330
+ };
2331
+ TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2332
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TableComponent, selector: "p-table-ngx", inputs: { items: "items", loading: "loading", 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", editButtonTemplate: "editButtonTemplate", enablePageSize: "enablePageSize", enablePagination: "enablePagination", enableExport: "enableExport", page: "page", total: "total", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", hideOnSinglePage: "hideOnSinglePage" }, outputs: { selectedRowsChange: "selectedRowsChange", rowClick: "rowClick", rowSelected: "rowSelected", rowDeselected: "rowDeselected", quickFilter: "quickFilter", queryChange: "queryChange", filter: "filter", edit: "edit", pageChange: "pageChange", pageSizeChange: "pageSizeChange", export: "export" }, host: { listeners: { "document:keydown": "keyDown($event)", "document:keyup": "keyUp($event)", "document:visibilitychange": "visibilityChange($event)" } }, queries: [{ propertyName: "columnDefinitions", predicate: TableColumn }], usesOnChanges: true, ngImport: i0, template: "<p-table-container>\n <p-table-header\n [quickFilters]=\"quickFilters\"\n [activeQuickFilterIdentifier]=\"activeQuickFilterIdentifier\"\n (onQuickFilter)=\"(onQuickFilter)\"\n [enableSearch]=\"enableSearch\"\n [query]=\"query\"\n (onQueryChange)=\"(onQueryChange)\"\n [enableFilter]=\"enableFilter\"\n [selectedFiltersAmount]=\"selectedFiltersAmount\"\n [filterButtonTemplate]=\"filterButtonTemplate\"\n (onFilter)=\"filter.emit()\"\n [enableEdit]=\"enableEdit\"\n [canEdit]=\"!!selectedRows.length\"\n [editButtonTemplate]=\"editButtonTemplate\"\n (onEdit)=\"edit.emit()\"\n [itemsSelectedAmount]=\"selectedRows.length\"\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]=\"index === 0 ? checkboxTemplate : undefined\"\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]=\"index === 0 ? checkboxTemplate : undefined\"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <p-loader\n variant=\"ghost\"\n class=\"rounded w-6 h-6\"\n ></p-loader>\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n\n <ng-template #contentTemplate>\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 *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n [item]=\"item\"\n [checkbox]=\"index === 0 ? checkboxTemplate : undefined\"\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)=\"_checkboxChange($event.target, rowIndex)\"\n [disabled]=\"_checkboxDisabled(item)\"\n [checked]=\"_selectionContains(item, rowIndex)\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-template>\n </div>\n\n <p-table-footer\n [hideOnSinglePage]=\"hideOnSinglePage\"\n [enablePageSize]=\"enablePageSize\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (onPageSizeChange)=\"(pageSizeChange)\"\n [enablePagination]=\"enablePagination\"\n [page]=\"page\"\n [total]=\"total\"\n (onPageChange)=\"(pageChange)\"\n [enableExport]=\"enableExport\"\n (onExport)=\"export.emit()\"\n ></p-table-footer>\n</p-table-container>\n", styles: [":host{@apply flex flex-col;}\n"], dependencies: [{ 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: PLoader, selector: "p-loader", inputs: ["color", "modalDescription", "modalTitle", "show", "variant"] }, { kind: "component", type: PTableContainer, selector: "p-table-container" }, { kind: "component", type: PTableFooter, selector: "p-table-footer", inputs: ["enableExport", "enablePageSize", "enablePagination", "hideOnSinglePage", "page", "pageSize", "pageSizeOptions", "total"] }, { kind: "component", type: PTableHeader, selector: "p-table-header", inputs: ["activeQuickFilterIdentifier", "canEdit", "editButtonTemplate", "enableEdit", "enableFilter", "enableSearch", "filterButtonTemplate", "itemsSelectedAmount", "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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2333
+ TableComponent = __decorate([
2334
+ UntilDestroy({ checkProperties: true })
2335
+ ], TableComponent);
2336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableComponent, decorators: [{
2337
+ type: Component,
2338
+ args: [{ selector: 'p-table-ngx', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-table-container>\n <p-table-header\n [quickFilters]=\"quickFilters\"\n [activeQuickFilterIdentifier]=\"activeQuickFilterIdentifier\"\n (onQuickFilter)=\"(onQuickFilter)\"\n [enableSearch]=\"enableSearch\"\n [query]=\"query\"\n (onQueryChange)=\"(onQueryChange)\"\n [enableFilter]=\"enableFilter\"\n [selectedFiltersAmount]=\"selectedFiltersAmount\"\n [filterButtonTemplate]=\"filterButtonTemplate\"\n (onFilter)=\"filter.emit()\"\n [enableEdit]=\"enableEdit\"\n [canEdit]=\"!!selectedRows.length\"\n [editButtonTemplate]=\"editButtonTemplate\"\n (onEdit)=\"edit.emit()\"\n [itemsSelectedAmount]=\"selectedRows.length\"\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]=\"index === 0 ? checkboxTemplate : undefined\"\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]=\"index === 0 ? checkboxTemplate : undefined\"\n [index]=\"index\"\n [rowIndex]=\"rowIndex\"\n ></p-table-cell-ngx>\n <ng-template #checkboxTemplate>\n <p-loader\n variant=\"ghost\"\n class=\"rounded w-6 h-6\"\n ></p-loader>\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-container>\n\n <ng-template #contentTemplate>\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 *ngFor=\"let col of columns; let index = index\">\n <p-table-cell-ngx\n [definition]=\"col\"\n [item]=\"item\"\n [checkbox]=\"index === 0 ? checkboxTemplate : undefined\"\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)=\"_checkboxChange($event.target, rowIndex)\"\n [disabled]=\"_checkboxDisabled(item)\"\n [checked]=\"_selectionContains(item, rowIndex)\"\n />\n </ng-template>\n </ng-container>\n </p-table-row>\n </ng-template>\n </div>\n\n <p-table-footer\n [hideOnSinglePage]=\"hideOnSinglePage\"\n [enablePageSize]=\"enablePageSize\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (onPageSizeChange)=\"(pageSizeChange)\"\n [enablePagination]=\"enablePagination\"\n [page]=\"page\"\n [total]=\"total\"\n (onPageChange)=\"(pageChange)\"\n [enableExport]=\"enableExport\"\n (onExport)=\"export.emit()\"\n ></p-table-footer>\n</p-table-container>\n", styles: [":host{@apply flex flex-col;}\n"] }]
2339
+ }], ctorParameters: function () { return []; }, propDecorators: { items: [{
2340
+ type: Input
2341
+ }], loading: [{
2342
+ type: Input
2343
+ }], amountOfLoadingRows: [{
2344
+ type: Input
2345
+ }], enableRowSelection: [{
2346
+ type: Input
2347
+ }], enableRowClick: [{
2348
+ type: Input
2349
+ }], selectedRows: [{
2350
+ type: Input
2351
+ }], selectedRowsChange: [{
2352
+ type: Output
2353
+ }], selectionKey: [{
2354
+ type: Input
2355
+ }], canSelectKey: [{
2356
+ type: Input
2357
+ }], rowClick: [{
2358
+ type: Output
2359
+ }], rowSelected: [{
2360
+ type: Output
2361
+ }], rowDeselected: [{
2362
+ type: Output
2363
+ }], quickFilters: [{
2364
+ type: Input
2365
+ }], activeQuickFilterIdentifier: [{
2366
+ type: Input
2367
+ }], enableSearch: [{
2368
+ type: Input
2369
+ }], query: [{
2370
+ type: Input
2371
+ }], enableFilter: [{
2372
+ type: Input
2373
+ }], selectedFiltersAmount: [{
2374
+ type: Input
2375
+ }], filterButtonTemplate: [{
2376
+ type: Input
2377
+ }], enableEdit: [{
2378
+ type: Input
2379
+ }], editButtonTemplate: [{
2380
+ type: Input
2381
+ }], quickFilter: [{
2382
+ type: Output
2383
+ }], queryChange: [{
2384
+ type: Output
2385
+ }], filter: [{
2386
+ type: Output
2387
+ }], edit: [{
2388
+ type: Output
2389
+ }], enablePageSize: [{
2390
+ type: Input
2391
+ }], enablePagination: [{
2392
+ type: Input
2393
+ }], enableExport: [{
2394
+ type: Input
2395
+ }], page: [{
2396
+ type: Input
2397
+ }], total: [{
2398
+ type: Input
2399
+ }], pageChange: [{
2400
+ type: Output
2401
+ }], pageSize: [{
2402
+ type: Input
2403
+ }], pageSizeOptions: [{
2404
+ type: Input
2405
+ }], pageSizeChange: [{
2406
+ type: Output
2407
+ }], export: [{
2408
+ type: Output
2409
+ }], hideOnSinglePage: [{
2410
+ type: Input
2411
+ }], columnDefinitions: [{
2412
+ type: ContentChildren,
2413
+ args: [TableColumn]
2414
+ }], keyDown: [{
2415
+ type: HostListener,
2416
+ args: ['document:keydown', ['$event']]
2417
+ }], keyUp: [{
2418
+ type: HostListener,
2419
+ args: ['document:keyup', ['$event']]
2420
+ }], visibilityChange: [{
2421
+ type: HostListener,
2422
+ args: ['document:visibilitychange', ['$event']]
2423
+ }] } });
2424
+
2425
+ const COMPONENTS = [TableComponent, TableColumn, TableCell];
2426
+
2427
+ class PageSizeSelectDirective extends BaseValueAccessor {
2428
+ constructor(el) {
2429
+ super(el);
2430
+ }
2431
+ writeValue(value) {
2432
+ this.el.nativeElement.page = this.lastValue =
2433
+ value == null ? '' : value;
1819
2434
  }
1820
- };
1821
- PTableHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1822
- PTableHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableHeader, selector: "p-table-header", inputs: { activeQuickFilterIdentifier: "activeQuickFilterIdentifier", canEdit: "canEdit", editButtonTemplate: "editButtonTemplate", enableEdit: "enableEdit", enableFilter: "enableFilter", enableSearch: "enableSearch", filterButtonTemplate: "filterButtonTemplate", itemsSelectedAmount: "itemsSelectedAmount", query: "query", quickFilters: "quickFilters", selectedFiltersAmount: "selectedFiltersAmount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1823
- PTableHeader = __decorate([
1824
- ProxyCmp({
1825
- defineCustomElementFn: undefined,
1826
- inputs: ['activeQuickFilterIdentifier', 'canEdit', 'editButtonTemplate', 'enableEdit', 'enableFilter', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'query', 'quickFilters', 'selectedFiltersAmount']
1827
- })
1828
- ], PTableHeader);
1829
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableHeader, decorators: [{
1830
- type: Component,
2435
+ registerOnChange(fn) {
2436
+ super.registerOnChange((value) => fn(value === '' ? null : parseInt(value, 10)));
2437
+ }
2438
+ }
2439
+ PageSizeSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PageSizeSelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2440
+ PageSizeSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: PageSizeSelectDirective, selector: "p-page-size-select", host: { listeners: { "sizeChange": "handleChangeEvent($event.detail)" } }, providers: [
2441
+ {
2442
+ provide: NG_VALUE_ACCESSOR,
2443
+ useExisting: PageSizeSelectDirective,
2444
+ multi: true,
2445
+ },
2446
+ ], usesInheritance: true, ngImport: i0 });
2447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PageSizeSelectDirective, decorators: [{
2448
+ type: Directive,
1831
2449
  args: [{
1832
- selector: 'p-table-header',
1833
- changeDetection: ChangeDetectionStrategy.OnPush,
1834
- template: '<ng-content></ng-content>',
1835
- inputs: ['activeQuickFilterIdentifier', 'canEdit', 'editButtonTemplate', 'enableEdit', 'enableFilter', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'query', 'quickFilters', 'selectedFiltersAmount']
2450
+ /* tslint:disable-next-line:directive-selector */
2451
+ selector: 'p-page-size-select',
2452
+ host: {
2453
+ '(sizeChange)': 'handleChangeEvent($event.detail)',
2454
+ },
2455
+ providers: [
2456
+ {
2457
+ provide: NG_VALUE_ACCESSOR,
2458
+ useExisting: PageSizeSelectDirective,
2459
+ multi: true,
2460
+ },
2461
+ ],
1836
2462
  }]
1837
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1838
- let PTableRow = class PTableRow {
1839
- constructor(c, r, z) {
1840
- this.z = z;
1841
- c.detach();
1842
- this.el = r.nativeElement;
2463
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
2464
+
2465
+ class PaginationDirective extends BaseValueAccessor {
2466
+ constructor(el) {
2467
+ super(el);
1843
2468
  }
1844
- };
1845
- PTableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1846
- PTableRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTableRow, selector: "p-table-row", inputs: { enableHover: "enableHover", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1847
- PTableRow = __decorate([
1848
- ProxyCmp({
1849
- defineCustomElementFn: undefined,
1850
- inputs: ['enableHover', 'variant']
1851
- })
1852
- ], PTableRow);
1853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTableRow, decorators: [{
1854
- type: Component,
2469
+ writeValue(value) {
2470
+ this.el.nativeElement.page = this.lastValue =
2471
+ value == null ? '' : value;
2472
+ }
2473
+ registerOnChange(fn) {
2474
+ super.registerOnChange((value) => fn(value === '' ? null : parseInt(value, 10)));
2475
+ }
2476
+ }
2477
+ PaginationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaginationDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2478
+ PaginationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: PaginationDirective, selector: "p-pagination", host: { listeners: { "pageChange": "handleChangeEvent($event.detail)" } }, providers: [
2479
+ {
2480
+ provide: NG_VALUE_ACCESSOR,
2481
+ useExisting: PaginationDirective,
2482
+ multi: true,
2483
+ },
2484
+ ], usesInheritance: true, ngImport: i0 });
2485
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaginationDirective, decorators: [{
2486
+ type: Directive,
1855
2487
  args: [{
1856
- selector: 'p-table-row',
1857
- changeDetection: ChangeDetectionStrategy.OnPush,
1858
- template: '<ng-content></ng-content>',
1859
- inputs: ['enableHover', 'variant']
2488
+ /* tslint:disable-next-line:directive-selector */
2489
+ selector: 'p-pagination',
2490
+ host: {
2491
+ '(pageChange)': 'handleChangeEvent($event.detail)',
2492
+ },
2493
+ providers: [
2494
+ {
2495
+ provide: NG_VALUE_ACCESSOR,
2496
+ useExisting: PaginationDirective,
2497
+ multi: true,
2498
+ },
2499
+ ],
1860
2500
  }]
1861
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1862
- let PToastContainer = class PToastContainer {
1863
- constructor(c, r, z) {
1864
- this.z = z;
1865
- c.detach();
1866
- this.el = r.nativeElement;
2501
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
2502
+
2503
+ class SelectDirective extends BaseValueAccessor {
2504
+ constructor(el) {
2505
+ super(el);
2506
+ console.log(el);
1867
2507
  }
1868
- };
1869
- PToastContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PToastContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1870
- PToastContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PToastContainer, selector: "p-toast-container", inputs: { placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1871
- PToastContainer = __decorate([
1872
- ProxyCmp({
1873
- defineCustomElementFn: undefined,
1874
- inputs: ['placement']
1875
- })
1876
- ], PToastContainer);
1877
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PToastContainer, decorators: [{
1878
- type: Component,
2508
+ writeValue(value) {
2509
+ console.log(value);
2510
+ this.el.nativeElement.value = this.lastValue =
2511
+ value == null ? '' : value;
2512
+ }
2513
+ }
2514
+ SelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2515
+ SelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: SelectDirective, selector: "p-select", host: { listeners: { "valueChange": "handleChangeEvent($event.detail)" } }, providers: [
2516
+ {
2517
+ provide: NG_VALUE_ACCESSOR,
2518
+ useExisting: SelectDirective,
2519
+ multi: true,
2520
+ },
2521
+ ], usesInheritance: true, ngImport: i0 });
2522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SelectDirective, decorators: [{
2523
+ type: Directive,
1879
2524
  args: [{
1880
- selector: 'p-toast-container',
1881
- changeDetection: ChangeDetectionStrategy.OnPush,
1882
- template: '<ng-content></ng-content>',
1883
- inputs: ['placement']
2525
+ selector: 'p-select',
2526
+ host: {
2527
+ '(valueChange)': 'handleChangeEvent($event.detail)',
2528
+ },
2529
+ providers: [
2530
+ {
2531
+ provide: NG_VALUE_ACCESSOR,
2532
+ useExisting: SelectDirective,
2533
+ multi: true,
2534
+ },
2535
+ ],
1884
2536
  }]
1885
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1886
- let PTooltip = class PTooltip {
1887
- constructor(c, r, z) {
1888
- this.z = z;
1889
- c.detach();
1890
- this.el = r.nativeElement;
1891
- proxyOutputs(this, this.el, ['isOpen']);
2537
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
2538
+
2539
+ class TableDirective extends BaseValueAccessor {
2540
+ constructor(el) {
2541
+ super(el);
2542
+ this.lastValue = {
2543
+ query: '',
2544
+ quickFilter: undefined,
2545
+ page: 1,
2546
+ pageSize: 12,
2547
+ selectedRows: [],
2548
+ };
1892
2549
  }
1893
- };
1894
- PTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1895
- PTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PTooltip, selector: "p-tooltip", inputs: { canManuallyClose: "canManuallyClose", placement: "placement", popover: "popover", show: "show", strategy: "strategy", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1896
- PTooltip = __decorate([
1897
- ProxyCmp({
1898
- defineCustomElementFn: undefined,
1899
- inputs: ['canManuallyClose', 'placement', 'popover', 'show', 'strategy', 'variant']
1900
- })
1901
- ], PTooltip);
1902
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PTooltip, decorators: [{
1903
- type: Component,
2550
+ writeValue(value) {
2551
+ this.el.nativeElement.query = this.lastValue.query = value?.query;
2552
+ this.lastValue.quickFilter = value?.quickFilter;
2553
+ this.el.nativeElement.page = this.lastValue.page =
2554
+ value?.page == null ? 1 : value?.page;
2555
+ this.el.nativeElement.pageSize = this.lastValue.pageSize =
2556
+ value?.pageSize == null ? 12 : value?.pageSize;
2557
+ this.lastValue.selectedRows =
2558
+ value?.selectedRows == null ? [] : value?.selectedRows;
2559
+ if (value?.quickFilter) {
2560
+ this._setActiveQuickFilter(value.quickFilter);
2561
+ }
2562
+ }
2563
+ registerOnChange(fn) {
2564
+ this.onChange = fn;
2565
+ }
2566
+ registerOnTouched(fn) {
2567
+ this.onTouched = fn;
2568
+ }
2569
+ handleChange(value, type) {
2570
+ this.handleChangeEvent({
2571
+ ...this.lastValue,
2572
+ [type]: value,
2573
+ });
2574
+ if (type === 'quickFilter' && typeof value === 'object') {
2575
+ this._setActiveQuickFilter(value);
2576
+ }
2577
+ }
2578
+ _setActiveQuickFilter(quickFilter) {
2579
+ this.el.nativeElement.activeQuickFilterIdentifier =
2580
+ quickFilter?.identifier;
2581
+ }
2582
+ }
2583
+ TableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2584
+ TableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", 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: [
2585
+ {
2586
+ provide: NG_VALUE_ACCESSOR,
2587
+ useExisting: TableDirective,
2588
+ multi: true,
2589
+ },
2590
+ ], usesInheritance: true, ngImport: i0 });
2591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TableDirective, decorators: [{
2592
+ type: Directive,
1904
2593
  args: [{
1905
- selector: 'p-tooltip',
1906
- changeDetection: ChangeDetectionStrategy.OnPush,
1907
- template: '<ng-content></ng-content>',
1908
- inputs: ['canManuallyClose', 'placement', 'popover', 'show', 'strategy', 'variant']
2594
+ /* tslint:disable-next-line:directive-selector */
2595
+ selector: 'p-table',
2596
+ host: {
2597
+ '(queryChange)': 'handleChange($event.detail, "query")',
2598
+ '(quickFilter)': 'handleChange($event.detail, "quickFilter")',
2599
+ '(pageChange)': 'handleChange($event.detail, "page")',
2600
+ '(pageSizeChange)': 'handleChange($event.detail, "pageSize")',
2601
+ '(selectedRowsChange)': 'handleChange($event.detail, "selectedRows")',
2602
+ },
2603
+ providers: [
2604
+ {
2605
+ provide: NG_VALUE_ACCESSOR,
2606
+ useExisting: TableDirective,
2607
+ multi: true,
2608
+ },
2609
+ ],
1909
2610
  }]
1910
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2611
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
2612
+
2613
+ // Custom directives
2614
+ const CUSTOM_DIRECTIVES = [
2615
+ PaginationDirective,
2616
+ PageSizeSelectDirective,
2617
+ TableFooterDirective,
2618
+ TableHeaderDirective,
2619
+ TableDirective,
2620
+ SelectDirective,
2621
+ ];
1911
2622
 
1912
2623
  const DIRECTIVES = [
1913
2624
  PAccordion,
@@ -1953,7 +2664,6 @@ const DIRECTIVES = [
1953
2664
  PStepperLine,
1954
2665
  PTabGroup,
1955
2666
  PTabItem,
1956
- PTableColumn,
1957
2667
  PTableContainer,
1958
2668
  PTableFooter,
1959
2669
  PTableHeader,
@@ -1965,13 +2675,14 @@ const DIRECTIVES = [
1965
2675
  class PaperlessModule {
1966
2676
  }
1967
2677
  PaperlessModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaperlessModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1968
- PaperlessModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: PaperlessModule, declarations: [PAccordion, PAvatar, PAvatarGroup, PButton, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDivider, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIcon, PIllustration, PInfoPanel, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBackdrop, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableColumn, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToastContainer, PTooltip, PaginationDirective, PageSizeSelectDirective, TableFooterDirective, TableHeaderDirective, TableDirective, SelectDirective], exports: [PAccordion, PAvatar, PAvatarGroup, PButton, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDivider, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIcon, PIllustration, PInfoPanel, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBackdrop, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableColumn, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToastContainer, PTooltip, PaginationDirective, PageSizeSelectDirective, TableFooterDirective, TableHeaderDirective, TableDirective, SelectDirective] });
1969
- PaperlessModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaperlessModule });
2678
+ PaperlessModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: PaperlessModule, declarations: [PAccordion, PAvatar, PAvatarGroup, PButton, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDivider, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIcon, PIllustration, PInfoPanel, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBackdrop, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToastContainer, PTooltip, TableComponent, TableColumn, TableCell, PaginationDirective, PageSizeSelectDirective, TableFooterDirective, TableHeaderDirective, TableDirective, SelectDirective], imports: [CommonModule], exports: [PAccordion, PAvatar, PAvatarGroup, PButton, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDivider, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIcon, PIllustration, PInfoPanel, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBackdrop, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToastContainer, PTooltip, TableComponent, TableColumn, TableCell, PaginationDirective, PageSizeSelectDirective, TableFooterDirective, TableHeaderDirective, TableDirective, SelectDirective] });
2679
+ PaperlessModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaperlessModule, imports: [CommonModule] });
1970
2680
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PaperlessModule, decorators: [{
1971
2681
  type: NgModule,
1972
2682
  args: [{
1973
- declarations: [...DIRECTIVES, ...CUSTOM_DIRECTIVES],
1974
- exports: [...DIRECTIVES, ...CUSTOM_DIRECTIVES],
2683
+ imports: [CommonModule],
2684
+ declarations: [...DIRECTIVES, ...COMPONENTS, ...CUSTOM_DIRECTIVES],
2685
+ exports: [...DIRECTIVES, ...COMPONENTS, ...CUSTOM_DIRECTIVES],
1975
2686
  }]
1976
2687
  }] });
1977
2688
 
@@ -1983,5 +2694,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
1983
2694
  * Generated bundle index. Do not edit.
1984
2695
  */
1985
2696
 
1986
- export { BaseTableComponent, BaseUploadComponent, BaseValueAccessor, CUSTOM_DIRECTIVES, FormBaseComponent, PAccordion, PAvatar, PAvatarGroup, PButton, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDivider, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIcon, PIllustration, PInfoPanel, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBackdrop, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableColumn, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToastContainer, PTooltip, PageSizeSelectDirective, PaginationDirective, PaperlessModule, SelectDirective, TableDirective, TableFooterDirective, TableHeaderDirective };
2697
+ export { BaseTableComponent, BaseUploadComponent, BaseValueAccessor, COMPONENTS, CUSTOM_DIRECTIVES, FormBaseComponent, PAccordion, PAvatar, PAvatarGroup, PButton, PCardBody, PCardContainer, PCardHeader, PContentSlider, PCounter, PDivider, PDropdown, PDropdownMenuContainer, PDropdownMenuItem, PHelper, PIcon, PIllustration, PInfoPanel, PInputGroup, PLabel, PLayout, PLoader, PModal, PModalBackdrop, PModalBody, PModalContainer, PModalFooter, PModalHeader, PNavbar, PNavigationItem, PPageSizeSelect, PPagination, PPaginationItem, PProfile, PSegmentContainer, PSegmentItem, PSelect, PSliderIndicator, PStatus, PStepper, PStepperItem, PStepperLine, PTabGroup, PTabItem, PTableContainer, PTableFooter, PTableHeader, PTableRow, PToastContainer, PTooltip, PageSizeSelectDirective, PaginationDirective, PaperlessModule, SelectDirective, TableCell, TableColumn, TableComponent, TableDirective, TableFooterDirective, TableHeaderDirective };
1987
2698
  //# sourceMappingURL=paperless-angular.mjs.map