chrv-components 1.2.0 → 1.2.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/chrv-components-1.2.2.tgz +0 -0
- package/esm2020/lib/chr-paginator/chr-paginator.component.mjs +3 -3
- package/esm2020/lib/chr-table/chr-table.component.mjs +3 -3
- package/fesm2015/chrv-components.mjs +4 -4
- package/fesm2015/chrv-components.mjs.map +1 -1
- package/fesm2020/chrv-components.mjs +4 -4
- package/fesm2020/chrv-components.mjs.map +1 -1
- package/package.json +1 -1
- package/chrv-components-1.2.0.tgz +0 -0
|
Binary file
|
|
@@ -61,13 +61,13 @@ export class ChrPaginatorComponent {
|
|
|
61
61
|
ngOnInit() { }
|
|
62
62
|
}
|
|
63
63
|
ChrPaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChrPaginatorComponent, deps: [{ token: i1.PaginationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
-
ChrPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChrPaginatorComponent, selector: "app-chr-paginator", outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row justify-start py-2 items-center content-center\">\n \
|
|
64
|
+
ChrPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChrPaginatorComponent, selector: "app-chr-paginator", outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row justify-start py-2 items-center content-center\">\n \u00C9l\u00E9ments par page:\n <app-chr-form class=\"ml-1\" (keyup.enter)=\"setPageSizeEventHandler($event)\" [sections]=\"[\n { controls: [\n {\n type: 'text',\n name: 'pageSize',\n value: pageSize(),\n width: 'row'\n }]\n }]\">\n </app-chr-form>\n </div>\n <div class=\"flex flex-row justify-end py-2 items-center content-center\">\n <button type=\"button\" *ngIf=\"!isFirstPage()\" (click)=\"previous()\"\n class=\"w-fit cursor-pointer\">Pr\u00E9c\u00E9dent</button>\n <div class=\"flex flex-row items-center content-center mx-2 w-fit\">\n <div class=\"w-10 mr-1\">\n <app-chr-form (keyup.enter)=\"setPageEventHandler($event)\" [sections]=\"[\n { controls: [\n {\n type: 'text',\n name: 'currentPage',\n value: currentPage,\n width: 'row'\n }]\n }]\">\n </app-chr-form>\n </div> / {{lastPage()}}\n </div>\n <button type=\"button\" [ngClass]=\"!isLastPage() ? 'cursor-pointer' : '' \" (click)=\"!isLastPage() && next()\"\n class=\"w-fit\">Suivant</button>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ChrFormComponent, selector: "app-chr-form", inputs: ["sections", "valid", "model", "disabled"], outputs: ["validChange", "modelChange", "valuesChange"] }] });
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChrPaginatorComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
|
-
args: [{ selector: 'app-chr-paginator', template: "<div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row justify-start py-2 items-center content-center\">\n \
|
|
67
|
+
args: [{ selector: 'app-chr-paginator', template: "<div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row justify-start py-2 items-center content-center\">\n \u00C9l\u00E9ments par page:\n <app-chr-form class=\"ml-1\" (keyup.enter)=\"setPageSizeEventHandler($event)\" [sections]=\"[\n { controls: [\n {\n type: 'text',\n name: 'pageSize',\n value: pageSize(),\n width: 'row'\n }]\n }]\">\n </app-chr-form>\n </div>\n <div class=\"flex flex-row justify-end py-2 items-center content-center\">\n <button type=\"button\" *ngIf=\"!isFirstPage()\" (click)=\"previous()\"\n class=\"w-fit cursor-pointer\">Pr\u00E9c\u00E9dent</button>\n <div class=\"flex flex-row items-center content-center mx-2 w-fit\">\n <div class=\"w-10 mr-1\">\n <app-chr-form (keyup.enter)=\"setPageEventHandler($event)\" [sections]=\"[\n { controls: [\n {\n type: 'text',\n name: 'currentPage',\n value: currentPage,\n width: 'row'\n }]\n }]\">\n </app-chr-form>\n </div> / {{lastPage()}}\n </div>\n <button type=\"button\" [ngClass]=\"!isLastPage() ? 'cursor-pointer' : '' \" (click)=\"!isLastPage() && next()\"\n class=\"w-fit\">Suivant</button>\n </div>\n</div>" }]
|
|
68
68
|
}], ctorParameters: function () { return [{ type: i1.PaginationService }]; }, propDecorators: { pageChange: [{
|
|
69
69
|
type: Output
|
|
70
70
|
}], pageSizeChange: [{
|
|
71
71
|
type: Output
|
|
72
72
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaHJ2LWNvbXBvbmVudHMvc3JjL2xpYi9jaHItcGFnaW5hdG9yL2Noci1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hydi1jb21wb25lbnRzL3NyYy9saWIvY2hyLXBhZ2luYXRvci9jaHItcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkIsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFtQixPQUEwQjtRQUExQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUx0QyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUNyQixlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsbUJBQWMsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWM3RCxhQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFSyxTQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFSyxZQUFPLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUNoQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQUUsT0FBTztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFSyx3QkFBbUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztRQUVLLGdCQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBRUssZ0JBQVcsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7UUFFSyw0QkFBdUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzlDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQztRQUVLLGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM1QyxPQUFPLENBQ0wsSUFBSSxDQUFDLFdBQVc7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FDakUsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVLLGFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUU1QyxhQUFRLEdBQUcsR0FBRyxFQUFFLENBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVTtZQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUEsU0FBSSxHQUFHLENBQUMsT0FBMkIsU0FBUyxFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLElBQUk7Z0JBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDOztnQkFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO0lBL0Q4QyxDQUFDO0lBRWpELHFCQUFxQjtRQUNuQix3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FDdEMsZ0JBQWdCLENBQ0ssQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7O21IQWZSLHFCQUFxQjt1R0FBckIscUJBQXFCLGtJQ2RsQyw4M0NBa0NNOzRGRHBCTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3dHQU1uQixVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkluc3RhbmNlLCBQYWdpbmF0aW9uU2VydmljZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNoci1wYWdpbmF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hyLXBhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Noci1wYWdpbmF0b3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hyUGFnaW5hdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgcHVibGljIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGluc3RhbmNlOiBQYWdpbmF0aW9uSW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvL2NvbnNvbGUubG9nKHRoaXMuc2VydmljZSwgdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKCdjaHJfZGF0YS10YWJsZScpKTtcbiAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKFxuICAgICAgJ2Nocl9kYXRhLXRhYmxlJ1xuICAgICkgYXMgUGFnaW5hdGlvbkluc3RhbmNlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIHB1YmxpYyBwcmV2aW91cyA9ICgpID0+IHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLS07XG4gICAgdGhpcy5lbWl0KCk7XG4gIH07XG5cbiAgcHVibGljIG5leHQgPSAoKSA9PiB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSsrO1xuICAgIHRoaXMuZW1pdCgpO1xuICB9O1xuXG4gIHB1YmxpYyBzZXRQYWdlID0gKHBhZ2U6IG51bWJlcikgPT4ge1xuICAgIGlmIChwYWdlIDwgMSB8fCBwYWdlID4gdGhpcy5sYXN0UGFnZSgpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgdGhpcy5lbWl0KCk7XG4gIH07XG5cbiAgcHVibGljIHNldFBhZ2VFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldFBhZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfTtcblxuICBwdWJsaWMgaXNGaXJzdFBhZ2UgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPT0gMTtcbiAgfTtcblxuICBwdWJsaWMgc2V0UGFnZVNpemUgPSAocGFnZVNpemU6IG51bWJlcikgPT4ge1xuICAgIHRoaXMuc2V0UGFnZSgxKTtcbiAgICB0aGlzLmluc3RhbmNlLml0ZW1zUGVyUGFnZSA9IHBhZ2VTaXplO1xuICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdChwYWdlU2l6ZSk7XG4gIH07XG5cbiAgcHVibGljIHNldFBhZ2VTaXplRXZlbnRIYW5kbGVyID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXRQYWdlU2l6ZShldmVudC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIHB1YmxpYyBpc0xhc3RQYWdlID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5pbnN0YW5jZS50b3RhbEl0ZW1zKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPT1cbiAgICAgIE1hdGguY2VpbCh0aGlzLmluc3RhbmNlLnRvdGFsSXRlbXMgLyB0aGlzLmluc3RhbmNlLml0ZW1zUGVyUGFnZSlcbiAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBwYWdlU2l6ZSA9ICgpID0+IHRoaXMuaW5zdGFuY2UuaXRlbXNQZXJQYWdlO1xuXG4gIHB1YmxpYyBsYXN0UGFnZSA9ICgpID0+XG4gICAgdGhpcy5pbnN0YW5jZS50b3RhbEl0ZW1zXG4gICAgICA/IE1hdGguY2VpbCh0aGlzLmluc3RhbmNlLnRvdGFsSXRlbXMgLyB0aGlzLmluc3RhbmNlLml0ZW1zUGVyUGFnZSlcbiAgICAgIDogMTtcblxuICBwcml2YXRlIGVtaXQgPSAocGFnZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKCFwYWdlKSB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICBlbHNlIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1zdGFydCBweS0yIGl0ZW1zLWNlbnRlciBjb250ZW50LWNlbnRlclwiPlxuICAgICAgICDDiWzDqW1lbnRzIHBhciBwYWdlOlxuICAgICAgICA8YXBwLWNoci1mb3JtIGNsYXNzPVwibWwtMVwiIChrZXl1cC5lbnRlcik9XCJzZXRQYWdlU2l6ZUV2ZW50SGFuZGxlcigkZXZlbnQpXCIgW3NlY3Rpb25zXT1cIltcbiAgICAgICAgeyBjb250cm9sczogW1xuICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICBuYW1lOiAncGFnZVNpemUnLFxuICAgICAgICAgICAgdmFsdWU6IHBhZ2VTaXplKCksXG4gICAgICAgICAgICB3aWR0aDogJ3JvdydcbiAgICAgICAgfV1cbiAgICAgICAgfV1cIj5cbiAgICAgICAgPC9hcHAtY2hyLWZvcm0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1lbmQgcHktMiBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhaXNGaXJzdFBhZ2UoKVwiIChjbGljayk9XCJwcmV2aW91cygpXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1maXQgY3Vyc29yLXBvaW50ZXJcIj5QcsOpY8OpZGVudDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXIgbXgtMiB3LWZpdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAgbXItMVwiPlxuICAgICAgICAgICAgICAgIDxhcHAtY2hyLWZvcm0gKGtleXVwLmVudGVyKT1cInNldFBhZ2VFdmVudEhhbmRsZXIoJGV2ZW50KVwiIFtzZWN0aW9uc109XCJbXG4gICAgICAgICAgICB7IGNvbnRyb2xzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgbmFtZTogJ2N1cnJlbnRQYWdlJyxcbiAgICAgICAgICAgICAgdmFsdWU6IGN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgICB3aWR0aDogJ3JvdydcbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9XVwiPlxuICAgICAgICAgICAgICAgIDwvYXBwLWNoci1mb3JtPlxuICAgICAgICAgICAgPC9kaXY+IC8ge3tsYXN0UGFnZSgpfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIiFpc0xhc3RQYWdlKCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJycgXCIgKGNsaWNrKT1cIiFpc0xhc3RQYWdlKCkgJiYgbmV4dCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1maXRcIj5TdWl2YW50PC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|