ng-firebase-table-kxp 1.0.0 → 1.0.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.
- package/README.md +500 -381
- package/esm2020/lib/components/table/table.component.mjs +776 -0
- package/esm2020/lib/firebase-table-kxp-lib.component.mjs +19 -0
- package/esm2020/lib/firebase-table-kxp-lib.module.mjs +74 -0
- package/esm2020/lib/firebase-table-kxp-lib.service.mjs +14 -0
- package/esm2020/lib/services/table.service.mjs +908 -0
- package/esm2020/lib/types/Table.mjs +2 -0
- package/esm2020/ng-firebase-table-kxp.mjs +5 -0
- package/esm2020/public-api.mjs +15 -0
- package/fesm2015/ng-firebase-table-kxp.mjs +1811 -0
- package/fesm2015/ng-firebase-table-kxp.mjs.map +1 -0
- package/fesm2020/ng-firebase-table-kxp.mjs +1784 -0
- package/fesm2020/ng-firebase-table-kxp.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/table/table.component.d.ts +111 -0
- package/lib/firebase-table-kxp-lib.component.d.ts +5 -0
- package/lib/firebase-table-kxp-lib.module.d.ts +21 -0
- package/lib/firebase-table-kxp-lib.service.d.ts +6 -0
- package/lib/services/table.service.d.ts +70 -0
- package/{src/lib/types/Table.ts → lib/types/Table.d.ts} +28 -31
- package/package.json +23 -3
- package/{src/public-api.ts → public-api.d.ts} +0 -13
- package/CHANGELOG.md +0 -88
- package/ng-package.json +0 -7
- package/src/lib/components/table/table.component.html +0 -555
- package/src/lib/components/table/table.component.scss +0 -22
- package/src/lib/components/table/table.component.spec.ts +0 -24
- package/src/lib/components/table/table.component.ts +0 -917
- package/src/lib/firebase-table-kxp-lib.component.spec.ts +0 -23
- package/src/lib/firebase-table-kxp-lib.component.ts +0 -15
- package/src/lib/firebase-table-kxp-lib.module.ts +0 -45
- package/src/lib/firebase-table-kxp-lib.service.spec.ts +0 -16
- package/src/lib/firebase-table-kxp-lib.service.ts +0 -9
- package/src/lib/services/table.service.spec.ts +0 -16
- package/src/lib/services/table.service.ts +0 -1235
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FirebaseTableKxpLibComponent {
|
|
4
|
+
}
|
|
5
|
+
FirebaseTableKxpLibComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
FirebaseTableKxpLibComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FirebaseTableKxpLibComponent, selector: "lib-firebase-table-kxp-lib", ngImport: i0, template: `
|
|
7
|
+
<p>
|
|
8
|
+
firebase-table-kxp-lib works!
|
|
9
|
+
</p>
|
|
10
|
+
`, isInline: true });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'lib-firebase-table-kxp-lib', template: `
|
|
14
|
+
<p>
|
|
15
|
+
firebase-table-kxp-lib works!
|
|
16
|
+
</p>
|
|
17
|
+
` }]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UtdGFibGUta3hwLWxpYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1maXJlYmFzZS10YWJsZS1reHAvc3JjL2xpYi9maXJlYmFzZS10YWJsZS1reHAtbGliLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVkxQyxNQUFNLE9BQU8sNEJBQTRCOzswSEFBNUIsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsa0VBUjdCOzs7O0dBSVQ7NEZBSVUsNEJBQTRCO2tCQVZ4QyxTQUFTOytCQUNFLDRCQUE0QixZQUM1Qjs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maXJlYmFzZS10YWJsZS1reHAtbGliJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cD5cbiAgICAgIGZpcmViYXNlLXRhYmxlLWt4cC1saWIgd29ya3MhXG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaXJlYmFzZVRhYmxlS3hwTGliQ29tcG9uZW50IHtcblxufVxuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
// Angular Material
|
|
6
|
+
import { MatTableModule } from '@angular/material/table';
|
|
7
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
8
|
+
import { MatSortModule } from '@angular/material/sort';
|
|
9
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
10
|
+
import { MatInputModule } from '@angular/material/input';
|
|
11
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
12
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
13
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
14
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
15
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
16
|
+
// Components
|
|
17
|
+
import { FirebaseTableKxpLibComponent } from './firebase-table-kxp-lib.component';
|
|
18
|
+
import { TableComponent } from './components/table/table.component';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
export class FirebaseTableKxpLibModule {
|
|
21
|
+
}
|
|
22
|
+
FirebaseTableKxpLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
FirebaseTableKxpLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibModule, declarations: [FirebaseTableKxpLibComponent, TableComponent], imports: [CommonModule,
|
|
24
|
+
ReactiveFormsModule,
|
|
25
|
+
FormsModule,
|
|
26
|
+
RouterModule,
|
|
27
|
+
MatTableModule,
|
|
28
|
+
MatPaginatorModule,
|
|
29
|
+
MatSortModule,
|
|
30
|
+
MatFormFieldModule,
|
|
31
|
+
MatInputModule,
|
|
32
|
+
MatSelectModule,
|
|
33
|
+
MatTooltipModule,
|
|
34
|
+
MatProgressSpinnerModule,
|
|
35
|
+
MatIconModule,
|
|
36
|
+
MatDialogModule], exports: [FirebaseTableKxpLibComponent, TableComponent] });
|
|
37
|
+
FirebaseTableKxpLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibModule, imports: [CommonModule,
|
|
38
|
+
ReactiveFormsModule,
|
|
39
|
+
FormsModule,
|
|
40
|
+
RouterModule,
|
|
41
|
+
MatTableModule,
|
|
42
|
+
MatPaginatorModule,
|
|
43
|
+
MatSortModule,
|
|
44
|
+
MatFormFieldModule,
|
|
45
|
+
MatInputModule,
|
|
46
|
+
MatSelectModule,
|
|
47
|
+
MatTooltipModule,
|
|
48
|
+
MatProgressSpinnerModule,
|
|
49
|
+
MatIconModule,
|
|
50
|
+
MatDialogModule] });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibModule, decorators: [{
|
|
52
|
+
type: NgModule,
|
|
53
|
+
args: [{
|
|
54
|
+
declarations: [FirebaseTableKxpLibComponent, TableComponent],
|
|
55
|
+
imports: [
|
|
56
|
+
CommonModule,
|
|
57
|
+
ReactiveFormsModule,
|
|
58
|
+
FormsModule,
|
|
59
|
+
RouterModule,
|
|
60
|
+
MatTableModule,
|
|
61
|
+
MatPaginatorModule,
|
|
62
|
+
MatSortModule,
|
|
63
|
+
MatFormFieldModule,
|
|
64
|
+
MatInputModule,
|
|
65
|
+
MatSelectModule,
|
|
66
|
+
MatTooltipModule,
|
|
67
|
+
MatProgressSpinnerModule,
|
|
68
|
+
MatIconModule,
|
|
69
|
+
MatDialogModule,
|
|
70
|
+
],
|
|
71
|
+
exports: [FirebaseTableKxpLibComponent, TableComponent],
|
|
72
|
+
}]
|
|
73
|
+
}] });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UtdGFibGUta3hwLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1maXJlYmFzZS10YWJsZS1reHAvc3JjL2xpYi9maXJlYmFzZS10YWJsZS1reHAtbGliLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLG1CQUFtQjtBQUNuQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxhQUFhO0FBQ2IsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQXlCcEUsTUFBTSxPQUFPLHlCQUF5Qjs7dUhBQXpCLHlCQUF5Qjt3SEFBekIseUJBQXlCLGlCQW5CckIsNEJBQTRCLEVBQUUsY0FBYyxhQUV6RCxZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxZQUFZO1FBQ1osY0FBYztRQUNkLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLHdCQUF3QjtRQUN4QixhQUFhO1FBQ2IsZUFBZSxhQUVQLDRCQUE0QixFQUFFLGNBQWM7d0hBRTNDLHlCQUF5QixZQWpCbEMsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsWUFBWTtRQUNaLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQix3QkFBd0I7UUFDeEIsYUFBYTtRQUNiLGVBQWU7NEZBSU4seUJBQXlCO2tCQXBCckMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxjQUFjLENBQUM7b0JBQzVELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRSxDQUFDLDRCQUE0QixFQUFFLGNBQWMsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLy8gQW5ndWxhciBNYXRlcmlhbFxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCB7IEZpcmViYXNlVGFibGVLeHBMaWJDb21wb25lbnQgfSBmcm9tICcuL2ZpcmViYXNlLXRhYmxlLWt4cC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XG5cbi8vIFNlcnZpY2VzXG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGaXJlYmFzZVRhYmxlS3hwTGliQ29tcG9uZW50LCBUYWJsZUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgIE1hdFNvcnRNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0ZpcmViYXNlVGFibGVLeHBMaWJDb21wb25lbnQsIFRhYmxlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmlyZWJhc2VUYWJsZUt4cExpYk1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FirebaseTableKxpLibService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
}
|
|
6
|
+
FirebaseTableKxpLibService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7
|
+
FirebaseTableKxpLibService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibService, providedIn: 'root' });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FirebaseTableKxpLibService, decorators: [{
|
|
9
|
+
type: Injectable,
|
|
10
|
+
args: [{
|
|
11
|
+
providedIn: 'root'
|
|
12
|
+
}]
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UtdGFibGUta3hwLWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZmlyZWJhc2UtdGFibGUta3hwL3NyYy9saWIvZmlyZWJhc2UtdGFibGUta3hwLWxpYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTywwQkFBMEI7SUFFckMsZ0JBQWdCLENBQUM7O3dIQUZOLDBCQUEwQjs0SEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlyZWJhc2VUYWJsZUt4cExpYlNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
|