@mediusinc/mng-commons 3.7.0-rc.0 → 4.0.0-rc.2

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.
Files changed (55) hide show
  1. package/esm2022/index.mjs +8 -2
  2. package/esm2022/lib/components/action/index.mjs +2 -1
  3. package/esm2022/lib/components/action/table/action-table.component.mjs +164 -0
  4. package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +4 -4
  5. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +4 -5
  6. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +3 -3
  7. package/esm2022/lib/components/layoutV2/topbar.component.mjs +2 -7
  8. package/esm2022/lib/components/table/column-filter-full/column-filter-full.component.mjs +466 -0
  9. package/esm2022/lib/components/table/column-value/column-value.component.mjs +87 -0
  10. package/esm2022/lib/components/table/models/table.event.mjs +16 -0
  11. package/esm2022/lib/components/table/models/table.interface.mjs +2 -0
  12. package/esm2022/lib/components/table/table-column-filter-class/table-column-filter-class.pipe.mjs +25 -0
  13. package/esm2022/lib/components/table/table.component.mjs +723 -0
  14. package/esm2022/lib/components/tableview/index.mjs +1 -4
  15. package/esm2022/lib/components/tableview/tableview.component.mjs +6 -7
  16. package/esm2022/lib/descriptors/editor/editor.descriptor.mjs +1 -1
  17. package/esm2022/lib/descriptors/table/table.descriptor.mjs +16 -17
  18. package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +1 -1
  19. package/esm2022/lib/utils/tableview.util.mjs +2 -2
  20. package/fesm2022/mediusinc-mng-commons.mjs +2221 -2080
  21. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  22. package/index.d.ts +6 -1
  23. package/lib/components/action/index.d.ts +1 -0
  24. package/lib/components/action/table/action-table.component.d.ts +55 -0
  25. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +1 -1
  26. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +1 -1
  27. package/lib/components/layoutV2/topbar.component.d.ts +0 -1
  28. package/lib/components/{tableview/table → table}/column-filter-full/column-filter-full.component.d.ts +2 -2
  29. package/lib/components/{tableview/table → table}/column-value/column-value.component.d.ts +3 -3
  30. package/lib/components/{tableview/table → table}/models/table.interface.d.ts +3 -1
  31. package/lib/components/table/table-column-filter-class/table-column-filter-class.pipe.d.ts +8 -0
  32. package/lib/components/table/table.component.d.ts +125 -0
  33. package/lib/components/tableview/index.d.ts +0 -3
  34. package/lib/components/tableview/tableview.component.d.ts +3 -3
  35. package/lib/descriptors/editor/editor.descriptor.d.ts +1 -1
  36. package/lib/descriptors/table/table.descriptor.d.ts +15 -12
  37. package/lib/descriptors/tableview/tableview.descriptor.d.ts +1 -1
  38. package/package.json +1 -1
  39. package/scss/mng-overrides/_theme_datatable.scss +24 -10
  40. package/scss/v2/theme/theme-base/mng/_mng_theme_datatable.scss +24 -9
  41. package/scss/v2/theme/theme-dark/_variables.scss +24 -12
  42. package/scss/v2/theme/theme-dark/blue/theme.scss +4 -4
  43. package/scss/v2/theme/theme-light/_variables.scss +23 -11
  44. package/scss/v2/theme/theme-light/blue/theme.scss +2 -2
  45. package/esm2022/lib/components/tableview/models/index.mjs +0 -2
  46. package/esm2022/lib/components/tableview/models/table.event.mjs +0 -16
  47. package/esm2022/lib/components/tableview/table/column-filter-full/column-filter-full.component.mjs +0 -467
  48. package/esm2022/lib/components/tableview/table/column-value/column-value.component.mjs +0 -87
  49. package/esm2022/lib/components/tableview/table/models/index.mjs +0 -2
  50. package/esm2022/lib/components/tableview/table/models/table.interface.mjs +0 -2
  51. package/esm2022/lib/components/tableview/table/table.component.mjs +0 -752
  52. package/lib/components/tableview/models/index.d.ts +0 -1
  53. package/lib/components/tableview/table/models/index.d.ts +0 -1
  54. package/lib/components/tableview/table/table.component.d.ts +0 -147
  55. /package/lib/components/{tableview → table}/models/table.event.d.ts +0 -0
@@ -1,87 +0,0 @@
1
- import { CurrencyPipe, DatePipe, DecimalPipe } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core';
3
- import { TranslateModule, TranslateService } from '@ngx-translate/core';
4
- import { MessageService } from 'primeng/api';
5
- import { ButtonModule } from 'primeng/button';
6
- import { RippleModule } from 'primeng/ripple';
7
- import { TooltipModule } from 'primeng/tooltip';
8
- import { ColumnDescriptor } from '../../../../descriptors/table';
9
- import { ColumnDisplayTypeEnum } from '../../../../descriptors/types';
10
- import { MngComponentDirective } from '../../../../directives';
11
- import { JsonPathPipe, MngBooleanPipe, MngEnumPipe, MngGetterPipe, MngTemplatePipe } from '../../../../pipes';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "primeng/api";
14
- import * as i2 from "@ngx-translate/core";
15
- import * as i3 from "../../../../pipes";
16
- import * as i4 from "primeng/tooltip";
17
- import * as i5 from "primeng/button";
18
- import * as i6 from "primeng/ripple";
19
- export class MngTableColumnValueComponent {
20
- constructor(elementRef, messageService, translate, jsonPathPipe, getterPipe, templatePipe) {
21
- this.elementRef = elementRef;
22
- this.messageService = messageService;
23
- this.translate = translate;
24
- this.jsonPathPipe = jsonPathPipe;
25
- this.getterPipe = getterPipe;
26
- this.templatePipe = templatePipe;
27
- this.columnDisplayTypeString = ColumnDisplayTypeEnum.String;
28
- this.columnDisplayTypeNumber = ColumnDisplayTypeEnum.Number;
29
- this.columnDisplayTypeCurrency = ColumnDisplayTypeEnum.Currency;
30
- this.columnDisplayTypeBoolean = ColumnDisplayTypeEnum.Boolean;
31
- this.columnDisplayTypeDate = ColumnDisplayTypeEnum.Date;
32
- this.columnDisplayTypeEnum = ColumnDisplayTypeEnum.Enum;
33
- this.columnDisplayTypeComponent = ColumnDisplayTypeEnum.Component;
34
- this.columnDisplayTypeHtml = ColumnDisplayTypeEnum.Html;
35
- this.styleMaxWidth = null;
36
- this.className = 'nowrap';
37
- this.jsonPath = '$';
38
- }
39
- ngOnInit() {
40
- if (this.descriptor.columnDisplayType === ColumnDisplayTypeEnum.Currency) {
41
- this.currency = this.descriptor.currencyProperty ? this.item[this.descriptor.currencyProperty] : this.descriptor.currencyCode ?? 'EUR';
42
- }
43
- else if (this.descriptor.columnDisplayType === ColumnDisplayTypeEnum.String) {
44
- if (this.descriptor.isMultiline) {
45
- this.className += ' multiline';
46
- }
47
- }
48
- if (this.descriptor.maxWidth) {
49
- this.styleMaxWidth = this.descriptor.maxWidth;
50
- }
51
- let value = this.item?.[this.descriptor.property];
52
- if (typeof this.descriptor.getter === 'function') {
53
- value = this.getterPipe.transform(this.item, this.descriptor.getter, value);
54
- }
55
- if (this.descriptor.template) {
56
- value = this.templatePipe.transform(value, this.descriptor.template);
57
- }
58
- this.value = value;
59
- }
60
- copyToClipboard(event) {
61
- event.stopPropagation();
62
- const value = this.elementRef.nativeElement.innerText.trim();
63
- navigator.clipboard.writeText(value);
64
- const title = this.translate.instant('mngTable.copyNotificationTitle');
65
- const message = this.translate.instant('mngTable.copyNotificationMessage', { value });
66
- this.messageService.add({ severity: 'info', summary: title, detail: message });
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngTableColumnValueComponent, deps: [{ token: i0.ElementRef }, { token: i1.MessageService }, { token: i2.TranslateService }, { token: i3.JsonPathPipe }, { token: i3.MngGetterPipe }, { token: i3.MngTemplatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: MngTableColumnValueComponent, isStandalone: true, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, host: { properties: { "style.max-width.px": "this.styleMaxWidth", "class": "this.className" } }, ngImport: i0, template: "@if (descriptor.localizationExistsProperty && !item[descriptor.localizationExistsProperty]) {\n <i class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n}\n@switch (descriptor.columnDisplayType) {\n @case (columnDisplayTypeString) {\n @if (descriptor.hasValueAsTooltip) {\n <span [pTooltip]=\"value\" tooltipPosition=\"left\">{{ value }}</span>\n } @else {\n {{ value }}\n }\n }\n @case (columnDisplayTypeHtml) {\n <span [innerHTML]=\"value\"></span>\n }\n @case (columnDisplayTypeNumber) {\n {{ value | number: descriptor.displayFormat : descriptor.locale }}\n }\n @case (columnDisplayTypeCurrency) {\n {{ value | currency: currency : descriptor.currencyDisplay : descriptor.displayFormat : descriptor.locale }}\n }\n @case (columnDisplayTypeDate) {\n {{ value | date: descriptor.displayFormat }}\n }\n @case (columnDisplayTypeBoolean) {\n @if (descriptor.booleanAsIcon) {\n <i [class]=\"value | boolean: descriptor.booleanYes : descriptor.booleanNo : true\"></i>\n } @else {\n {{ value | boolean: descriptor.booleanYes : descriptor.booleanNo | translate }}\n }\n }\n @case (columnDisplayTypeEnum) {\n {{ value | enum: descriptor.enumType : descriptor.enumTitlePath : descriptor.enumNameAsValue | translate }}\n }\n @case (columnDisplayTypeComponent) {\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n }\n}\n@if (descriptor.hasCopyToClipboard) {\n <div class=\"help-buttons\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n </div>\n}\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host.multiline{white-space:pre-wrap;word-wrap:break-word}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: MngBooleanPipe, name: "boolean" }, { kind: "pipe", type: MngEnumPipe, name: "enum" }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngTableColumnValueComponent, decorators: [{
72
- type: Component,
73
- args: [{ standalone: true, selector: 'mng-table-column-value', imports: [TooltipModule, TranslateModule, MngBooleanPipe, MngEnumPipe, MngComponentDirective, ButtonModule, RippleModule, DecimalPipe, CurrencyPipe, DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (descriptor.localizationExistsProperty && !item[descriptor.localizationExistsProperty]) {\n <i class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n}\n@switch (descriptor.columnDisplayType) {\n @case (columnDisplayTypeString) {\n @if (descriptor.hasValueAsTooltip) {\n <span [pTooltip]=\"value\" tooltipPosition=\"left\">{{ value }}</span>\n } @else {\n {{ value }}\n }\n }\n @case (columnDisplayTypeHtml) {\n <span [innerHTML]=\"value\"></span>\n }\n @case (columnDisplayTypeNumber) {\n {{ value | number: descriptor.displayFormat : descriptor.locale }}\n }\n @case (columnDisplayTypeCurrency) {\n {{ value | currency: currency : descriptor.currencyDisplay : descriptor.displayFormat : descriptor.locale }}\n }\n @case (columnDisplayTypeDate) {\n {{ value | date: descriptor.displayFormat }}\n }\n @case (columnDisplayTypeBoolean) {\n @if (descriptor.booleanAsIcon) {\n <i [class]=\"value | boolean: descriptor.booleanYes : descriptor.booleanNo : true\"></i>\n } @else {\n {{ value | boolean: descriptor.booleanYes : descriptor.booleanNo | translate }}\n }\n }\n @case (columnDisplayTypeEnum) {\n {{ value | enum: descriptor.enumType : descriptor.enumTitlePath : descriptor.enumNameAsValue | translate }}\n }\n @case (columnDisplayTypeComponent) {\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n }\n}\n@if (descriptor.hasCopyToClipboard) {\n <div class=\"help-buttons\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n </div>\n}\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host.multiline{white-space:pre-wrap;word-wrap:break-word}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"] }]
74
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MessageService }, { type: i2.TranslateService }, { type: i3.JsonPathPipe }, { type: i3.MngGetterPipe }, { type: i3.MngTemplatePipe }], propDecorators: { descriptor: [{
75
- type: Input,
76
- args: [{ required: true }]
77
- }], item: [{
78
- type: Input,
79
- args: [{ required: true }]
80
- }], styleMaxWidth: [{
81
- type: HostBinding,
82
- args: ['style.max-width.px']
83
- }], className: [{
84
- type: HostBinding,
85
- args: ['class']
86
- }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGUvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7OztBQVU1RyxNQUFN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Q3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OEdBOURRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHVPQ3RCekMsODdEQWdEQSw0V0Q3QmMsYUFBYSxxWEFBRSxlQUFlLHVGQUFFLGNBQWMsMkNBQUUsV0FBVyw2Q0FBRSxxQkFBcUIsNElBQUUsWUFBWSxzS0FBRSxZQUFZLHlGQUFFLFdBQVcsMENBQUUsWUFBWSw0Q0FBRSxRQUFROzsyRkFHcEosNEJBQTRCO2tCQVJ4QyxTQUFTO2lDQUNNLElBQUksWUFDTix3QkFBd0IsV0FHekIsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxtQkFDN0ksdUJBQXVCLENBQUMsTUFBTTtnT0FZdEIsVUFBVTtzQkFBbEMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBQ0UsSUFBSTtzQkFBNUIsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBRW1CLGFBQWE7c0JBQXRELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNKLFNBQVM7c0JBQXJDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q3VycmVuY3lQaXBlLCBEYXRlUGlwZSwgRGVjaW1hbFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5cbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMvdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW19IGZyb20gJy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7TW5nQ29tcG9uZW50RGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7SnNvblBhdGhQaXBlLCBNbmdCb29sZWFuUGlwZSwgTW5nRW51bVBpcGUsIE1uZ0dldHRlclBpcGUsIE1uZ1RlbXBsYXRlUGlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxlLWNvbHVtbi12YWx1ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXZhbHVlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1Rvb2x0aXBNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTW5nQm9vbGVhblBpcGUsIE1uZ0VudW1QaXBlLCBNbmdDb21wb25lbnREaXJlY3RpdmUsIEJ1dHRvbk1vZHVsZSwgUmlwcGxlTW9kdWxlLCBEZWNpbWFsUGlwZSwgQ3VycmVuY3lQaXBlLCBEYXRlUGlwZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGVDb2x1bW5WYWx1ZUNvbXBvbmVudDxULCBUVD4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZVN0cmluZzogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLlN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVOdW1iZXI6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5OdW1iZXI7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQ3VycmVuY3k6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVCb29sZWFuOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQm9vbGVhbjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVEYXRlOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uRGF0ZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVFbnVtOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uRW51bTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVDb21wb25lbnQ6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5Db21wb25lbnQ7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlSHRtbDogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkh0bWw7XG5cbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgZGVzY3JpcHRvciE6IENvbHVtbkRlc2NyaXB0b3I8VCwgVFQ+O1xuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBpdGVtITogYW55O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgucHgnKSBwdWJsaWMgc3R5bGVNYXhXaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyBjbGFzc05hbWUgPSAnbm93cmFwJztcblxuICAgIHB1YmxpYyBjdXJyZW5jeT86IHN0cmluZztcblxuICAgIHB1YmxpYyBqc29uUGF0aCA9ICckJztcblxuICAgIHB1YmxpYyB2YWx1ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGpzb25QYXRoUGlwZTogSnNvblBhdGhQaXBlLFxuICAgICAgICBwcml2YXRlIGdldHRlclBpcGU6IE1uZ0dldHRlclBpcGUsXG4gICAgICAgIHByaXZhdGUgdGVtcGxhdGVQaXBlOiBNbmdUZW1wbGF0ZVBpcGVcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IuY29sdW1uRGlzcGxheVR5cGUgPT09IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW5jeSA9IHRoaXMuZGVzY3JpcHRvci5jdXJyZW5jeVByb3BlcnR5ID8gdGhpcy5pdGVtW3RoaXMuZGVzY3JpcHRvci5jdXJyZW5jeVByb3BlcnR5XSA6IHRoaXMuZGVzY3JpcHRvci5jdXJyZW5jeUNvZGUgPz8gJ0VVUic7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZXNjcmlwdG9yLmNvbHVtbkRpc3BsYXlUeXBlID09PSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uU3RyaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmlzTXVsdGlsaW5lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGFzc05hbWUgKz0gJyBtdWx0aWxpbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5tYXhXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5zdHlsZU1heFdpZHRoID0gdGhpcy5kZXNjcmlwdG9yLm1heFdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5pdGVtPy5bdGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdG9yLmdldHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdldHRlclBpcGUudHJhbnNmb3JtKHRoaXMuaXRlbSwgdGhpcy5kZXNjcmlwdG9yLmdldHRlciwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IudGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy50ZW1wbGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCB0aGlzLmRlc2NyaXB0b3IudGVtcGxhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5VG9DbGlwYm9hcmQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC50cmltKCk7XG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHZhbHVlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdtbmdUYWJsZS5jb3B5Tm90aWZpY2F0aW9uVGl0bGUnKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ21uZ1RhYmxlLmNvcHlOb3RpZmljYXRpb25NZXNzYWdlJywge3ZhbHVlfSk7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiB0aXRsZSwgZGV0YWlsOiBtZXNzYWdlfSk7XG4gICAgfVxufVxuIiwiQGlmIChkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5ICYmICFpdGVtW2Rlc2NyaXB0b3IubG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHldKSB7XG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcIiBbcFRvb2x0aXBdPVwiJ21uZ1RhYmxlLnRyYW5zbGF0aW9uTWlzc2luZycgfCB0cmFuc2xhdGVcIj48L2k+XG59XG5Ac3dpdGNoIChkZXNjcmlwdG9yLmNvbHVtbkRpc3BsYXlUeXBlKSB7XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlU3RyaW5nKSB7XG4gICAgICAgIEBpZiAoZGVzY3JpcHRvci5oYXNWYWx1ZUFzVG9vbHRpcCkge1xuICAgICAgICAgICAgPHNwYW4gW3BUb29sdGlwXT1cInZhbHVlXCIgdG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiPnt7IHZhbHVlIH19PC9zcGFuPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7IHZhbHVlIH19XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlSHRtbCkge1xuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInZhbHVlXCI+PC9zcGFuPlxuICAgIH1cbiAgICBAY2FzZSAoY29sdW1uRGlzcGxheVR5cGVOdW1iZXIpIHtcbiAgICAgICAge3sgdmFsdWUgfCBudW1iZXI6IGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdCA6IGRlc2NyaXB0b3IubG9jYWxlIH19XG4gICAgfVxuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZUN1cnJlbmN5KSB7XG4gICAgICAgIHt7IHZhbHVlIHwgY3VycmVuY3k6IGN1cnJlbmN5IDogZGVzY3JpcHRvci5jdXJyZW5jeURpc3BsYXkgOiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgOiBkZXNjcmlwdG9yLmxvY2FsZSB9fVxuICAgIH1cbiAgICBAY2FzZSAoY29sdW1uRGlzcGxheVR5cGVEYXRlKSB7XG4gICAgICAgIHt7IHZhbHVlIHwgZGF0ZTogZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0IH19XG4gICAgfVxuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZUJvb2xlYW4pIHtcbiAgICAgICAgQGlmIChkZXNjcmlwdG9yLmJvb2xlYW5Bc0ljb24pIHtcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJ2YWx1ZSB8IGJvb2xlYW46IGRlc2NyaXB0b3IuYm9vbGVhblllcyA6IGRlc2NyaXB0b3IuYm9vbGVhbk5vIDogdHJ1ZVwiPjwvaT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB7eyB2YWx1ZSB8IGJvb2xlYW46IGRlc2NyaXB0b3IuYm9vbGVhblllcyA6IGRlc2NyaXB0b3IuYm9vbGVhbk5vIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlRW51bSkge1xuICAgICAgICB7eyB2YWx1ZSB8IGVudW06IGRlc2NyaXB0b3IuZW51bVR5cGUgOiBkZXNjcmlwdG9yLmVudW1UaXRsZVBhdGggOiBkZXNjcmlwdG9yLmVudW1OYW1lQXNWYWx1ZSB8IHRyYW5zbGF0ZSB9fVxuICAgIH1cbiAgICBAY2FzZSAoY29sdW1uRGlzcGxheVR5cGVDb21wb25lbnQpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW21uZ0NvbXBvbmVudF09XCJkZXNjcmlwdG9yLmN1c3RvbUNvbXBvbmVudFR5cGUhXCJcbiAgICAgICAgICAgIFtpbnB1dHNdPVwie1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JcbiAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG59XG5AaWYgKGRlc2NyaXB0b3IuaGFzQ29weVRvQ2xpcGJvYXJkKSB7XG4gICAgPGRpdiBjbGFzcz1cImhlbHAtYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWNvcHlcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24taW5mbyBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50KVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './table.interface';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWJsZS5pbnRlcmZhY2UnO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxldmlldy90YWJsZS9tb2RlbHMvdGFibGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbHVtbkRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzL3RhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5XaXRoUHJlZmVyZW5jZXMge1xuICAgIGRlc2NyaXB0b3I6IENvbHVtbkRlc2NyaXB0b3I8YW55LCBhbnk+O1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIGlzVmlzaWJsZTogYm9vbGVhbjtcbiAgICB3aWR0aD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUxheW91dFByZWZlcmVuY2VzIHtcbiAgICBjb2x1bW5XaWR0aHM/OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICAgIGNvbHVtbk9yZGVyPzogc3RyaW5nW107XG4gICAgY29sdW1uVmlzaWJpbGl0eT86IHN0cmluZ1tdO1xufVxuIl19