aril 0.0.6 → 0.0.7

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 (129) hide show
  1. package/aril-0.0.7.tgz +0 -0
  2. package/esm2022/http/lib/enums.mjs +2 -1
  3. package/esm2022/http/lib/interfaces.mjs +1 -1
  4. package/esm2022/http/src/httpClient.mjs +1 -1
  5. package/esm2022/http/src/serviceBase.mjs +5 -5
  6. package/esm2022/http/src/serviceStateMethods.mjs +5 -2
  7. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +41 -0
  8. package/esm2022/theme/layout/app/config/app.config.component.mjs +134 -0
  9. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +131 -0
  10. package/esm2022/theme/layout/app/menu/app.menu.component.mjs +399 -0
  11. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +25 -0
  12. package/esm2022/theme/layout/app/sidebar/app.sidebar.component.mjs +41 -0
  13. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +29 -0
  14. package/esm2022/theme/layout/aril-theme-layout.mjs +5 -0
  15. package/esm2022/theme/layout/index.mjs +2 -0
  16. package/esm2022/theme/layout/service/app.layout.service.mjs +132 -0
  17. package/esm2022/theme/layout/service/app.menu.service.mjs +27 -0
  18. package/esm2022/theme/layout/service/menuchangeevent.mjs +2 -0
  19. package/esm2022/ui/badge/src/badge.component.mjs +1 -1
  20. package/esm2022/ui/button/src/button.component.mjs +1 -1
  21. package/esm2022/ui/button/src/split-button.component.mjs +1 -1
  22. package/esm2022/ui/calendar/src/calendar.component.mjs +1 -1
  23. package/esm2022/ui/checkbox/src/check-box.component.mjs +3 -3
  24. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +3 -3
  25. package/esm2022/ui/field/src/field.component.mjs +1 -1
  26. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +1 -1
  27. package/esm2022/ui/form/index.mjs +20 -13
  28. package/esm2022/ui/form/src/form-submit-button.component.mjs +4 -3
  29. package/esm2022/ui/form/src/form.component.mjs +3 -3
  30. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +1 -1
  31. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +1 -1
  32. package/esm2022/ui/lib/src/input/baseInput.mjs +1 -1
  33. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +1 -1
  34. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +1 -1
  35. package/esm2022/ui/mask/src/mask.component.mjs +3 -3
  36. package/esm2022/ui/number/src/number.component.mjs +2 -2
  37. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +1 -1
  38. package/esm2022/ui/panel/src/panel.component.mjs +2 -2
  39. package/esm2022/ui/password/src/password.component.mjs +1 -1
  40. package/esm2022/ui/radioButton/src/radio-button.component.mjs +1 -1
  41. package/esm2022/ui/selectBox/src/select-box.component.mjs +1 -1
  42. package/esm2022/ui/switch/src/switch.component.mjs +1 -1
  43. package/esm2022/ui/table/index.mjs +26 -17
  44. package/esm2022/ui/table/src/table-column.component.mjs +6 -4
  45. package/esm2022/ui/table/src/table.component.mjs +24 -42
  46. package/esm2022/ui/tagBox/src/tag-box.component.mjs +1 -1
  47. package/esm2022/ui/text/src/text.component.mjs +1 -1
  48. package/esm2022/ui/textArea/src/text-area.component.mjs +1 -1
  49. package/esm2022/ui/tree/src/tree.component.mjs +29 -45
  50. package/esm2022/ui/treeTable/src/tree-table.component.mjs +39 -43
  51. package/esm2022/ui/value/src/value.component.mjs +3 -3
  52. package/fesm2022/aril-http.mjs +7 -4
  53. package/fesm2022/aril-http.mjs.map +1 -1
  54. package/fesm2022/aril-theme-layout.mjs +918 -0
  55. package/fesm2022/aril-theme-layout.mjs.map +1 -0
  56. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  57. package/fesm2022/aril-ui-button.mjs.map +1 -1
  58. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  59. package/fesm2022/aril-ui-checkbox.mjs +4 -4
  60. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  61. package/fesm2022/aril-ui-field.mjs.map +1 -1
  62. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  63. package/fesm2022/aril-ui-form.mjs +22 -19
  64. package/fesm2022/aril-ui-form.mjs.map +1 -1
  65. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  66. package/fesm2022/aril-ui-mask.mjs +3 -3
  67. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  68. package/fesm2022/aril-ui-number.mjs +2 -2
  69. package/fesm2022/aril-ui-number.mjs.map +1 -1
  70. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
  71. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  72. package/fesm2022/aril-ui-password.mjs.map +1 -1
  73. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  74. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  75. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  76. package/fesm2022/aril-ui-table.mjs +45 -57
  77. package/fesm2022/aril-ui-table.mjs.map +1 -1
  78. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  79. package/fesm2022/aril-ui-text.mjs.map +1 -1
  80. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  81. package/fesm2022/aril-ui-tree.mjs +28 -44
  82. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  83. package/fesm2022/aril-ui-treeTable.mjs +38 -42
  84. package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
  85. package/fesm2022/aril-ui-value.mjs +2 -2
  86. package/fesm2022/aril-ui-value.mjs.map +1 -1
  87. package/http/lib/enums.d.ts +1 -0
  88. package/http/lib/interfaces.d.ts +2 -0
  89. package/http/src/serviceStateMethods.d.ts +2 -1
  90. package/package.json +7 -1
  91. package/theme/layout/app/breadcrumb/app.breadcrumb.component.d.ts +16 -0
  92. package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +10 -0
  93. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +52 -0
  94. package/theme/layout/app/config/app.config.component.d.ts +36 -0
  95. package/theme/layout/app/config/app.config.component.html +191 -0
  96. package/theme/layout/app/config/app.config.component.ts +152 -0
  97. package/theme/layout/app/layout/app.layout.component.d.ts +51 -0
  98. package/theme/layout/app/layout/app.layout.component.html +13 -0
  99. package/theme/layout/app/layout/app.layout.component.ts +183 -0
  100. package/theme/layout/app/menu/app.menu.component.d.ts +44 -0
  101. package/theme/layout/app/menu/app.menu.component.html +9 -0
  102. package/theme/layout/app/menu/app.menu.component.ts +317 -0
  103. package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +10 -0
  104. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +165 -0
  105. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +25 -0
  106. package/theme/layout/app/sidebar/app.sidebar.component.d.ts +15 -0
  107. package/theme/layout/app/sidebar/app.sidebar.component.html +67 -0
  108. package/theme/layout/app/sidebar/app.sidebar.component.ts +40 -0
  109. package/theme/layout/app/topbar/app.topbar.component.d.ts +13 -0
  110. package/theme/layout/app/topbar/app.topbar.component.html +41 -0
  111. package/theme/layout/app/topbar/app.topbar.component.ts +29 -0
  112. package/theme/layout/index.d.ts +1 -0
  113. package/theme/layout/index.ts +1 -0
  114. package/theme/layout/ng-package.json +6 -0
  115. package/theme/layout/service/app.layout.service.d.ts +51 -0
  116. package/theme/layout/service/app.layout.service.ts +197 -0
  117. package/theme/layout/service/app.menu.service.d.ts +14 -0
  118. package/theme/layout/service/app.menu.service.ts +28 -0
  119. package/theme/layout/service/menuchangeevent.d.ts +4 -0
  120. package/theme/layout/service/menuchangeevent.ts +4 -0
  121. package/ui/calendar/src/calendar.component.d.ts +1 -1
  122. package/ui/form/index.d.ts +9 -0
  123. package/ui/form/src/form-submit-button.component.d.ts +1 -1
  124. package/ui/form/src/form.component.d.ts +1 -1
  125. package/ui/table/index.d.ts +14 -0
  126. package/ui/table/src/table-column.component.d.ts +5 -4
  127. package/ui/table/src/table.component.d.ts +7 -15
  128. package/ui/tree/src/tree.component.d.ts +13 -18
  129. package/ui/treeTable/src/tree-table.component.d.ts +14 -18
@@ -1,61 +1,57 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output } from '@angular/core';
2
+ import { input, EventEmitter, Component, ChangeDetectionStrategy, Output, ContentChildren } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NgFor, NgForOf, NgTemplateOutlet } from '@angular/common';
3
5
  import * as i1 from 'primeng/treetable';
4
6
  import { TreeTableModule } from 'primeng/treetable';
7
+ import * as FileSaver from 'file-saver';
8
+ import { ButtonComponent } from 'aril/ui/button';
9
+ import { TextComponent } from 'aril/ui/text';
10
+ import { TableColumnComponent } from 'aril/ui/table';
5
11
  import * as i2 from 'primeng/api';
6
12
 
7
13
  /* eslint-disable @typescript-eslint/no-explicit-any */
14
+ const pageOptions = [10, 20, 50, 100];
8
15
  class TreeTableComponent {
9
16
  constructor() {
10
- this.rows = 10;
11
- this.rowsPerPageOptions = [10, 20, 50, 100];
12
- this.scrollable = false;
13
- this.loading = false;
14
- this.sortMode = "single";
15
- this.filterMode = "lenient";
16
- this.selectionMode = "single";
17
- this.selectEvent = new EventEmitter();
17
+ this.data = input.required();
18
+ this.checkboxSelection = input();
19
+ this.pageSize = input(10);
20
+ this.scrollable = input(false);
21
+ this.scrollHeight = input();
22
+ this.expandEvent = new EventEmitter();
23
+ this.selectionEvent = new EventEmitter();
24
+ this.pageOptions = pageOptions;
18
25
  }
19
- getFilterTargetValue(event) {
20
- const inputElement = event.target;
21
- return inputElement.value;
26
+ excelExport() {
27
+ import('xlsx').then((xlsx) => {
28
+ const worksheet = xlsx.utils.json_to_sheet(this.data());
29
+ const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };
30
+ const excelBuffer = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });
31
+ this.saveAsExcelFile(excelBuffer, 'excel_worksheet');
32
+ });
22
33
  }
23
- emitSelectedRows() {
24
- if (!this.selectedNodes)
25
- return;
26
- this.selectEvent.emit(this.selectedNodes);
27
- this.selectedNodes = null;
34
+ saveAsExcelFile(buffer, fileName) {
35
+ const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
36
+ const EXCEL_EXTENSION = '.xlsx';
37
+ const data = new Blob([buffer], {
38
+ type: EXCEL_TYPE
39
+ });
40
+ FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
28
41
  }
29
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TreeTableComponent, isStandalone: true, selector: "aril-tree-table", inputs: { items: "items", columns: "columns", rows: "rows", rowsPerPageOptions: "rowsPerPageOptions", scrollable: "scrollable", scrollHeight: "scrollHeight", loading: "loading", sortMode: "sortMode", filterMode: "filterMode", selectionMode: "selectionMode" }, outputs: { selectEvent: "selectEvent" }, ngImport: i0, template: "@if (items && columns) {\r\n\t<p-treeTable\r\n\t\t#ref\r\n\t\t[value]=\"items\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[rows]=\"rows\"\r\n\t\t[paginator]=\"true\"\r\n\t\t[rowsPerPageOptions]=\"rowsPerPageOptions\"\r\n\t\t[scrollable]=\"scrollable\"\r\n\t\t[scrollHeight]=\"scrollHeight\"\r\n\t\t[sortMode]=\"sortMode\"\r\n\t\t[filterMode]=\"filterMode\"\r\n\t\t[loading]=\"loading\"\r\n\t\t[selectionMode]=\"selectionMode\"\r\n\t\t[(selection)]=\"selectedNodes\"\r\n\t\tstyleClass=\"p-treetable-sm\">\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t<p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n\t\t\t\t\t<span class=\"ml-2\">T\u00FCm\u00FCn\u00FC se\u00E7</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"p-input-icon-left\">\r\n\t\t\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t(input)=\"\r\n\t\t\t\t\t\t\tref.filterGlobal(getFilterTargetValue($event), 'contains')\r\n\t\t\t\t\t\t\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of columns; track col) {\r\n\t\t\t\t\t<th [ttSortableColumn]=\"col.field\">\r\n\t\t\t\t\t\t<span>{{ col.header }}</span>\r\n\t\t\t\t\t\t<p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template\r\n\t\t\tpTemplate=\"body\"\r\n\t\t\tlet-rowNode\r\n\t\t\tlet-rowData=\"rowData\"\r\n\t\t\tlet-columns=\"columns\">\r\n\t\t\t<tr [ttRow]=\"rowNode\">\r\n\t\t\t\t@for (col of columns; track col; let first = $first) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t@if (first) {\r\n\t\t\t\t\t\t\t<p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (first) {\r\n\t\t\t\t\t\t\t<p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{{ rowData[col.field] }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<div class=\"flex justify-content-end\">\r\n\t\t\t\t<div [attr.role]=\"'none'\" (click)=\"emitSelectedRows()\">\r\n\t\t\t\t\t<ng-content select=\"[exportBtn]\"></ng-content>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td [attr.colspan]=\"columns.length\">Veri bulunamad\u0131..</td>\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t</p-treeTable>\r\n}\r\n", styles: [":host ::ng-deep .p-icon-wrapper{display:inline-block!important}\n"], dependencies: [{ kind: "ngmodule", type: TreeTableModule }, { kind: "component", type: i1.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "virtualRowHeight"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i1.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i1.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "component", type: i1.TTSortIcon, selector: "p-treeTableSortIcon", inputs: ["field", "ariaLabelDesc", "ariaLabelAsc"] }, { kind: "directive", type: i1.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: i1.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i1.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TreeTableComponent, isStandalone: true, selector: "aril-tree-table", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandEvent: "expandEvent", selectionEvent: "selectionEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], ngImport: i0, template: "<p-treeTable\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"true\"\r\n\t[rowsPerPageOptions]=\"pageOptions\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[scrollable]=\"scrollable()\"\r\n\t[scrollHeight]=\"scrollHeight()\"\r\n\t[(selection)]=\"selectedNodes\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedNodes)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-treetable-gridlines p-treetable-striped p-treetable-sm\">\r\n\t<ng-template pTemplate=\"caption\">\r\n\t\t<div class=\"flex\">\r\n\t\t\t<aril-button\r\n\t\t\t\tsize=\"sm\"\r\n\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t(clickEvent)=\"excelExport()\">\r\n\t\t\t</aril-button>\r\n\t\t\t<!-- <span class=\"p-input-icon-left ml-auto\">\r\n\t\t\t\t<aril-text\r\n\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event, 'contains')\">\r\n\t\t\t\t</aril-text>\r\n\t\t\t</span> -->\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t<p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.isOperation) {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">Operations</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<th [ttSortableColumn]=\"column.field\">\r\n\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t\t\t\t{{ column.header }}\r\n\t\t\t\t\t\t\t<!-- <p-treeTableSortIcon [field]=\"column.field\"></p-treeTableSortIcon> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template\r\n\t\tpTemplate=\"body\"\r\n\t\tlet-rowNode\r\n\t\tlet-rowData=\"rowData\"\r\n\t\tlet-columns=\"columns\">\r\n\t\t<tr [ttRow]=\"rowNode\">\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<td>\r\n\t\t\t\t\t<p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n\t\t\t\t</td>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t<td>\r\n\t\t\t\t\t@if ($first) {\r\n\t\t\t\t\t\t<p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tngFor\r\n\t\t\t\t\t\t[ngForOf]=\"[rowNode.node]\"\r\n\t\t\t\t\t\t[ngForTemplate]=\"column.template\">\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</td>\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"summary\">\r\n\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">No Data Found</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-treeTable>\r\n", dependencies: [{ kind: "ngmodule", type: TreeTableModule }, { kind: "component", type: i1.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "virtualRowHeight"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i1.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i1.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "directive", type: i1.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: i1.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i1.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
44
  }
32
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeTableComponent, decorators: [{
33
46
  type: Component,
34
- args: [{ standalone: true, selector: 'aril-tree-table', imports: [TreeTableModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (items && columns) {\r\n\t<p-treeTable\r\n\t\t#ref\r\n\t\t[value]=\"items\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[rows]=\"rows\"\r\n\t\t[paginator]=\"true\"\r\n\t\t[rowsPerPageOptions]=\"rowsPerPageOptions\"\r\n\t\t[scrollable]=\"scrollable\"\r\n\t\t[scrollHeight]=\"scrollHeight\"\r\n\t\t[sortMode]=\"sortMode\"\r\n\t\t[filterMode]=\"filterMode\"\r\n\t\t[loading]=\"loading\"\r\n\t\t[selectionMode]=\"selectionMode\"\r\n\t\t[(selection)]=\"selectedNodes\"\r\n\t\tstyleClass=\"p-treetable-sm\">\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t<p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n\t\t\t\t\t<span class=\"ml-2\">T\u00FCm\u00FCn\u00FC se\u00E7</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"p-input-icon-left\">\r\n\t\t\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t(input)=\"\r\n\t\t\t\t\t\t\tref.filterGlobal(getFilterTargetValue($event), 'contains')\r\n\t\t\t\t\t\t\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of columns; track col) {\r\n\t\t\t\t\t<th [ttSortableColumn]=\"col.field\">\r\n\t\t\t\t\t\t<span>{{ col.header }}</span>\r\n\t\t\t\t\t\t<p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template\r\n\t\t\tpTemplate=\"body\"\r\n\t\t\tlet-rowNode\r\n\t\t\tlet-rowData=\"rowData\"\r\n\t\t\tlet-columns=\"columns\">\r\n\t\t\t<tr [ttRow]=\"rowNode\">\r\n\t\t\t\t@for (col of columns; track col; let first = $first) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t@if (first) {\r\n\t\t\t\t\t\t\t<p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (first) {\r\n\t\t\t\t\t\t\t<p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{{ rowData[col.field] }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<div class=\"flex justify-content-end\">\r\n\t\t\t\t<div [attr.role]=\"'none'\" (click)=\"emitSelectedRows()\">\r\n\t\t\t\t\t<ng-content select=\"[exportBtn]\"></ng-content>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td [attr.colspan]=\"columns.length\">Veri bulunamad\u0131..</td>\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t</p-treeTable>\r\n}\r\n", styles: [":host ::ng-deep .p-icon-wrapper{display:inline-block!important}\n"] }]
35
- }], propDecorators: { items: [{
36
- type: Input,
37
- args: [{ required: true }]
38
- }], columns: [{
39
- type: Input,
40
- args: [{ required: true }]
41
- }], rows: [{
42
- type: Input
43
- }], rowsPerPageOptions: [{
44
- type: Input
45
- }], scrollable: [{
46
- type: Input
47
- }], scrollHeight: [{
48
- type: Input
49
- }], loading: [{
50
- type: Input
51
- }], sortMode: [{
52
- type: Input
53
- }], filterMode: [{
54
- type: Input
55
- }], selectionMode: [{
56
- type: Input
57
- }], selectEvent: [{
47
+ args: [{ standalone: true, selector: 'aril-tree-table', imports: [TreeTableModule, ButtonComponent, TextComponent, FormsModule, NgFor, NgForOf, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-treeTable\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"true\"\r\n\t[rowsPerPageOptions]=\"pageOptions\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[scrollable]=\"scrollable()\"\r\n\t[scrollHeight]=\"scrollHeight()\"\r\n\t[(selection)]=\"selectedNodes\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedNodes)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-treetable-gridlines p-treetable-striped p-treetable-sm\">\r\n\t<ng-template pTemplate=\"caption\">\r\n\t\t<div class=\"flex\">\r\n\t\t\t<aril-button\r\n\t\t\t\tsize=\"sm\"\r\n\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t(clickEvent)=\"excelExport()\">\r\n\t\t\t</aril-button>\r\n\t\t\t<!-- <span class=\"p-input-icon-left ml-auto\">\r\n\t\t\t\t<aril-text\r\n\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event, 'contains')\">\r\n\t\t\t\t</aril-text>\r\n\t\t\t</span> -->\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t<p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.isOperation) {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">Operations</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<th [ttSortableColumn]=\"column.field\">\r\n\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t\t\t\t{{ column.header }}\r\n\t\t\t\t\t\t\t<!-- <p-treeTableSortIcon [field]=\"column.field\"></p-treeTableSortIcon> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template\r\n\t\tpTemplate=\"body\"\r\n\t\tlet-rowNode\r\n\t\tlet-rowData=\"rowData\"\r\n\t\tlet-columns=\"columns\">\r\n\t\t<tr [ttRow]=\"rowNode\">\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<td>\r\n\t\t\t\t\t<p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n\t\t\t\t</td>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t<td>\r\n\t\t\t\t\t@if ($first) {\r\n\t\t\t\t\t\t<p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tngFor\r\n\t\t\t\t\t\t[ngForOf]=\"[rowNode.node]\"\r\n\t\t\t\t\t\t[ngForTemplate]=\"column.template\">\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</td>\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"summary\">\r\n\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">No Data Found</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-treeTable>\r\n" }]
48
+ }], propDecorators: { expandEvent: [{
49
+ type: Output
50
+ }], selectionEvent: [{
58
51
  type: Output
52
+ }], columns: [{
53
+ type: ContentChildren,
54
+ args: [TableColumnComponent]
59
55
  }] } });
60
56
 
61
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-treeTable.mjs","sources":["../../projects/aril/ui/treeTable/src/tree-table.component.ts","../../projects/aril/ui/treeTable/src/tree-table.component.html","../../projects/aril/ui/treeTable/aril-ui-treeTable.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TreeNode, TreeTableNode } from 'primeng/api';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\n\r\n/* TODO : \r\n 1. InputSignal\r\n 2. ContentProjection\r\n 3. ContextMenu ?\r\n*/\r\n\r\ntype SortMode = 'single' | 'multiple';\r\ntype FilterMode = 'lenient' | 'strict';\r\ntype SelectionModes = 'single' | 'multiple' | 'checkbox';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'aril-tree-table',\r\n templateUrl: './tree-table.component.html',\r\n styles: [`\r\n :host ::ng-deep .p-icon-wrapper {\r\n display: inline-block !important;\r\n }`\r\n ],\r\n imports: [TreeTableModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TreeTableComponent {\r\n @Input({ required: true }) items!: TreeNode[];\r\n @Input({ required: true }) columns!: Array<object>;\r\n @Input() rows = 10;\r\n @Input() rowsPerPageOptions = [10, 20, 50, 100];\r\n @Input() scrollable = false;\r\n @Input() scrollHeight!: string;\r\n @Input() loading = false;\r\n @Input() sortMode: SortMode = \"single\";\r\n @Input() filterMode: FilterMode = \"lenient\";\r\n @Input() selectionMode: SelectionModes = \"single\";\r\n\r\n @Output() selectEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n selectedNodes!: TreeTableNode<any> | TreeTableNode<any>[] | null;\r\n\r\n getFilterTargetValue(event: Event) {\r\n const inputElement = event.target as HTMLInputElement;\r\n return inputElement.value;\r\n }\r\n\r\n emitSelectedRows() {\r\n if (!this.selectedNodes) return;\r\n\r\n this.selectEvent.emit(this.selectedNodes);\r\n this.selectedNodes = null;\r\n }\r\n}\r\n","@if (items && columns) {\r\n\t<p-treeTable\r\n\t\t#ref\r\n\t\t[value]=\"items\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[rows]=\"rows\"\r\n\t\t[paginator]=\"true\"\r\n\t\t[rowsPerPageOptions]=\"rowsPerPageOptions\"\r\n\t\t[scrollable]=\"scrollable\"\r\n\t\t[scrollHeight]=\"scrollHeight\"\r\n\t\t[sortMode]=\"sortMode\"\r\n\t\t[filterMode]=\"filterMode\"\r\n\t\t[loading]=\"loading\"\r\n\t\t[selectionMode]=\"selectionMode\"\r\n\t\t[(selection)]=\"selectedNodes\"\r\n\t\tstyleClass=\"p-treetable-sm\">\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t<p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n\t\t\t\t\t<span class=\"ml-2\">Tümünü seç</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"p-input-icon-left\">\r\n\t\t\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t(input)=\"\r\n\t\t\t\t\t\t\tref.filterGlobal(getFilterTargetValue($event), 'contains')\r\n\t\t\t\t\t\t\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of columns; track col) {\r\n\t\t\t\t\t<th [ttSortableColumn]=\"col.field\">\r\n\t\t\t\t\t\t<span>{{ col.header }}</span>\r\n\t\t\t\t\t\t<p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template\r\n\t\t\tpTemplate=\"body\"\r\n\t\t\tlet-rowNode\r\n\t\t\tlet-rowData=\"rowData\"\r\n\t\t\tlet-columns=\"columns\">\r\n\t\t\t<tr [ttRow]=\"rowNode\">\r\n\t\t\t\t@for (col of columns; track col; let first = $first) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t@if (first) {\r\n\t\t\t\t\t\t\t<p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (first) {\r\n\t\t\t\t\t\t\t<p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{{ rowData[col.field] }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<div class=\"flex justify-content-end\">\r\n\t\t\t\t<div [attr.role]=\"'none'\" (click)=\"emitSelectedRows()\">\r\n\t\t\t\t\t<ng-content select=\"[exportBtn]\"></ng-content>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td [attr.colspan]=\"columns.length\">Veri bulunamadı..</td>\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t</p-treeTable>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-treeTable.mjs","sources":["../../projects/aril/ui/treeTable/src/tree-table.component.ts","../../projects/aril/ui/treeTable/src/tree-table.component.html","../../projects/aril/ui/treeTable/aril-ui-treeTable.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, input, Output } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgFor, NgForOf, NgTemplateOutlet } from '@angular/common';\r\nimport { TreeNode, TreeTableNode } from 'primeng/api';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport * as FileSaver from 'file-saver';\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { TextComponent } from 'aril/ui/text';\r\nimport { TableColumnComponent, TableColumns } from 'aril/ui/table';\r\n\r\nconst pageOptions = [10, 20, 50, 100];\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'aril-tree-table',\r\n templateUrl: './tree-table.component.html',\r\n imports: [TreeTableModule, ButtonComponent, TextComponent, FormsModule, NgFor, NgForOf, NgTemplateOutlet],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TreeTableComponent {\r\n data = input.required<TreeNode[]>();\r\n checkboxSelection = input<boolean>();\r\n pageSize = input<typeof pageOptions[number]>(10);\r\n scrollable = input<boolean>(false);\r\n scrollHeight = input<string>();\r\n\r\n @Output() expandEvent: EventEmitter<unknown> = new EventEmitter();\r\n @Output() selectionEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ContentChildren(TableColumnComponent) columns!: TableColumns;\r\n\r\n filterText!: string;\r\n pageOptions = pageOptions;\r\n selectedNodes!: TreeTableNode<any> | TreeTableNode<any>[] | null;\r\n\r\n excelExport() {\r\n import('xlsx').then((xlsx) => {\r\n const worksheet = xlsx.utils.json_to_sheet(this.data());\r\n const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, 'excel_worksheet');\r\n });\r\n }\r\n\r\n saveAsExcelFile(buffer: any, fileName: string): void {\r\n const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n const EXCEL_EXTENSION = '.xlsx';\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n }\r\n}\r\n","<p-treeTable\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"true\"\r\n\t[rowsPerPageOptions]=\"pageOptions\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[scrollable]=\"scrollable()\"\r\n\t[scrollHeight]=\"scrollHeight()\"\r\n\t[(selection)]=\"selectedNodes\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedNodes)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kayıt | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-treetable-gridlines p-treetable-striped p-treetable-sm\">\r\n\t<ng-template pTemplate=\"caption\">\r\n\t\t<div class=\"flex\">\r\n\t\t\t<aril-button\r\n\t\t\t\tsize=\"sm\"\r\n\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t(clickEvent)=\"excelExport()\">\r\n\t\t\t</aril-button>\r\n\t\t\t<!-- <span class=\"p-input-icon-left ml-auto\">\r\n\t\t\t\t<aril-text\r\n\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event, 'contains')\">\r\n\t\t\t\t</aril-text>\r\n\t\t\t</span> -->\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t<p-treeTableHeaderCheckbox></p-treeTableHeaderCheckbox>\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.isOperation) {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">Operations</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t<th [ttSortableColumn]=\"column.field\">\r\n\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center\">\r\n\t\t\t\t\t\t\t{{ column.header }}\r\n\t\t\t\t\t\t\t<!-- <p-treeTableSortIcon [field]=\"column.field\"></p-treeTableSortIcon> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template\r\n\t\tpTemplate=\"body\"\r\n\t\tlet-rowNode\r\n\t\tlet-rowData=\"rowData\"\r\n\t\tlet-columns=\"columns\">\r\n\t\t<tr [ttRow]=\"rowNode\">\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<td>\r\n\t\t\t\t\t<p-treeTableCheckbox [value]=\"rowNode\"></p-treeTableCheckbox>\r\n\t\t\t\t</td>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t<td>\r\n\t\t\t\t\t@if ($first) {\r\n\t\t\t\t\t\t<p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tngFor\r\n\t\t\t\t\t\t[ngForOf]=\"[rowNode.node]\"\r\n\t\t\t\t\t\t[ngForTemplate]=\"column.template\">\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</td>\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"summary\">\r\n\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">No Data Found</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-treeTable>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -34,11 +34,11 @@ class ValueComponent {
34
34
  }
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: "model", type: "type", format: "format", color: "color" }, usesOnChanges: true, ngImport: i0, template: "@if (model == undefined || model == null) {\n\t<span>\n\t\t<i class=\"pi pi-minus\" style=\"color: red\" pTooltip=\"No item to show\"></i>\n\t</span>\n} @else {\n\t<div style=\"display: inline-block\">\n\t\t@if (type == 'bool') {\n\t\t\t<span>\n\t\t\t\t@if (!!model) {\n\t\t\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\n\t\t\t\t} @else {\n\t\t\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\n\t\t\t\t}\n\t\t\t</span>\n\t\t} @else {\n\t\t\t@if (display == undefined) {\n\t\t\t\t<span>\n\t\t\t\t\t<i\n\t\t\t\t\t\tclass=\"pi pi-exclamation-circle\"\n\t\t\t\t\t\tstyle=\"color: red\"\n\t\t\t\t\t\tpTooltip=\"Invalid Data\">\n\t\t\t\t\t</i>\n\t\t\t\t</span>\n\t\t\t} @else {\n\t\t\t\t<span [style.color]=\"color\">\n\t\t\t\t\t{{ display }}\n\t\t\t\t</span>\n\t\t\t}\n\t\t}\n\t</div>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: "model", type: "type", format: "format", color: "color" }, usesOnChanges: true, ngImport: i0, template: "@if (model == undefined || model == null) {\n\t<i class=\"pi pi-minus\" style=\"color: red\" pTooltip=\"No item to show\"></i>\n} @else {\n\t@if (type == 'bool') {\n\t\t@if (!!model) {\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\n\t\t} @else {\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\n\t\t}\n\t} @else {\n\t\t@if (display == undefined) {\n\t\t\t<i\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\n\t\t\t\tstyle=\"color: red\"\n\t\t\t\tpTooltip=\"Invalid Data\">\n\t\t\t</i>\n\t\t} @else {\n\t\t\t<span [style.color]=\"color\">\n\t\t\t\t{{ display }}\n\t\t\t</span>\n\t\t}\n\t}\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ standalone: true, selector: 'aril-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (model == undefined || model == null) {\n\t<span>\n\t\t<i class=\"pi pi-minus\" style=\"color: red\" pTooltip=\"No item to show\"></i>\n\t</span>\n} @else {\n\t<div style=\"display: inline-block\">\n\t\t@if (type == 'bool') {\n\t\t\t<span>\n\t\t\t\t@if (!!model) {\n\t\t\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\n\t\t\t\t} @else {\n\t\t\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\n\t\t\t\t}\n\t\t\t</span>\n\t\t} @else {\n\t\t\t@if (display == undefined) {\n\t\t\t\t<span>\n\t\t\t\t\t<i\n\t\t\t\t\t\tclass=\"pi pi-exclamation-circle\"\n\t\t\t\t\t\tstyle=\"color: red\"\n\t\t\t\t\t\tpTooltip=\"Invalid Data\">\n\t\t\t\t\t</i>\n\t\t\t\t</span>\n\t\t\t} @else {\n\t\t\t\t<span [style.color]=\"color\">\n\t\t\t\t\t{{ display }}\n\t\t\t\t</span>\n\t\t\t}\n\t\t}\n\t</div>\n}\n" }]
41
+ args: [{ standalone: true, selector: 'aril-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (model == undefined || model == null) {\n\t<i class=\"pi pi-minus\" style=\"color: red\" pTooltip=\"No item to show\"></i>\n} @else {\n\t@if (type == 'bool') {\n\t\t@if (!!model) {\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\n\t\t} @else {\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\n\t\t}\n\t} @else {\n\t\t@if (display == undefined) {\n\t\t\t<i\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\n\t\t\t\tstyle=\"color: red\"\n\t\t\t\tpTooltip=\"Invalid Data\">\n\t\t\t</i>\n\t\t} @else {\n\t\t\t<span [style.color]=\"color\">\n\t\t\t\t{{ display }}\n\t\t\t</span>\n\t\t}\n\t}\n}\n" }]
42
42
  }], propDecorators: { model: [{
43
43
  type: Input,
44
44
  args: [{ required: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-value.mjs","sources":["../../projects/aril/ui/value/src/value.component.ts","../../projects/aril/ui/value/src/value.component.html","../../projects/aril/ui/value/aril-ui-value.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';\r\nimport \"aril/util/primitive-extensions\";\r\n\r\n/* TODO : \r\n 1. InputSignal\r\n*/\r\n\r\n/* number-format.js */\r\ndeclare const format: Function;\r\n\r\ntype ValueTypes = 'text' | 'number' | 'bool' | 'decimal' | 'date' | 'password';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'aril-value',\r\n templateUrl: './value.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ValueComponent implements OnChanges {\r\n\r\n @Input({ required: true }) model!: string | number | boolean;\r\n @Input() type: ValueTypes = \"text\";\r\n @Input() format!: string;\r\n @Input() color: string = \"#333\";\r\n\r\n display = \"\";\r\n\r\n ngOnChanges(changes: any) {\r\n switch (this.type) {\r\n case \"text\":\r\n this.display = this.model as string;\r\n break;\r\n case \"number\":\r\n this.format = this.format || '0.###';\r\n this.display = format(this.format, this.model);\r\n break;\r\n case \"decimal\":\r\n this.format = this.format || '#.##0,###';\r\n this.display = format(this.format, this.model);\r\n break;\r\n case \"date\":\r\n this.format = this.format || 'time';\r\n this.display = (<number>this.model).longToString(this.format) as string;\r\n break;\r\n case \"password\":\r\n this.display = (<string>this.model).replace(/./g, \"*\");\r\n break;\r\n default:\r\n console.error(\"Invalid type: '\" + this.type + \"'\");\r\n break;\r\n }\r\n }\r\n}\r\n","@if (model == undefined || model == null) {\n\t<span>\n\t\t<i class=\"pi pi-minus\" style=\"color: red\" pTooltip=\"No item to show\"></i>\n\t</span>\n} @else {\n\t<div style=\"display: inline-block\">\n\t\t@if (type == 'bool') {\n\t\t\t<span>\n\t\t\t\t@if (!!model) {\n\t\t\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\n\t\t\t\t} @else {\n\t\t\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\n\t\t\t\t}\n\t\t\t</span>\n\t\t} @else {\n\t\t\t@if (display == undefined) {\n\t\t\t\t<span>\n\t\t\t\t\t<i\n\t\t\t\t\t\tclass=\"pi pi-exclamation-circle\"\n\t\t\t\t\t\tstyle=\"color: red\"\n\t\t\t\t\t\tpTooltip=\"Invalid Data\">\n\t\t\t\t\t</i>\n\t\t\t\t</span>\n\t\t\t} @else {\n\t\t\t\t<span [style.color]=\"color\">\n\t\t\t\t\t{{ display }}\n\t\t\t\t</span>\n\t\t\t}\n\t\t}\n\t</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAkBa,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;QASW,IAAI,CAAA,IAAA,GAAe,MAAM,CAAC;QAE1B,IAAK,CAAA,KAAA,GAAW,MAAM,CAAC;QAEhC,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AA2Bd,KAAA;AAzBC,IAAA,WAAW,CAAC,OAAY,EAAA;AACtB,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAe,CAAC;gBACpC,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;AACrC,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;AACzC,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;AACpC,gBAAA,IAAI,CAAC,OAAO,GAAY,IAAI,CAAC,KAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC;gBACxE,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,OAAO,GAAY,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACvD,MAAM;AACR,YAAA;gBACE,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBACnD,MAAM;SACT;KACF;8GAjCU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,uKClB3B,2yBA+BA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDba,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,YAAY,EAEL,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2yBAAA,EAAA,CAAA;8BAIpB,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AEvBR;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-ui-value.mjs","sources":["../../projects/aril/ui/value/src/value.component.ts","../../projects/aril/ui/value/src/value.component.html","../../projects/aril/ui/value/aril-ui-value.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';\r\n\r\nimport \"aril/util/primitive-extensions\";\r\n\r\n/* TODO : \r\n 1. InputSignal\r\n*/\r\n\r\n/* number-format.js */\r\ndeclare const format: Function;\r\n\r\ntype ValueTypes = 'text' | 'number' | 'bool' | 'decimal' | 'date' | 'password';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'aril-value',\r\n templateUrl: './value.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ValueComponent implements OnChanges {\r\n\r\n @Input({ required: true }) model!: string | number | boolean;\r\n @Input() type: ValueTypes = \"text\";\r\n @Input() format!: string;\r\n @Input() color: string = \"#333\";\r\n\r\n display = \"\";\r\n\r\n ngOnChanges(changes: any) {\r\n switch (this.type) {\r\n case \"text\":\r\n this.display = this.model as string;\r\n break;\r\n case \"number\":\r\n this.format = this.format || '0.###';\r\n this.display = format(this.format, this.model);\r\n break;\r\n case \"decimal\":\r\n this.format = this.format || '#.##0,###';\r\n this.display = format(this.format, this.model);\r\n break;\r\n case \"date\":\r\n this.format = this.format || 'time';\r\n this.display = (<number>this.model).longToString(this.format) as string;\r\n break;\r\n case \"password\":\r\n this.display = (<string>this.model).replace(/./g, \"*\");\r\n break;\r\n default:\r\n console.error(\"Invalid type: '\" + this.type + \"'\");\r\n break;\r\n }\r\n }\r\n}\r\n","@if (model == undefined || model == null) {\n\t<i class=\"pi pi-minus\" style=\"color: red\" pTooltip=\"No item to show\"></i>\n} @else {\n\t@if (type == 'bool') {\n\t\t@if (!!model) {\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\n\t\t} @else {\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\n\t\t}\n\t} @else {\n\t\t@if (display == undefined) {\n\t\t\t<i\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\n\t\t\t\tstyle=\"color: red\"\n\t\t\t\tpTooltip=\"Invalid Data\">\n\t\t\t</i>\n\t\t} @else {\n\t\t\t<span [style.color]=\"color\">\n\t\t\t\t{{ display }}\n\t\t\t</span>\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAmBa,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;QASW,IAAI,CAAA,IAAA,GAAe,MAAM,CAAC;QAE1B,IAAK,CAAA,KAAA,GAAW,MAAM,CAAC;QAEhC,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AA2Bd,KAAA;AAzBC,IAAA,WAAW,CAAC,OAAY,EAAA;AACtB,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAe,CAAC;gBACpC,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;AACrC,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;AACzC,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;AACpC,gBAAA,IAAI,CAAC,OAAO,GAAY,IAAI,CAAC,KAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC;gBACxE,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,OAAO,GAAY,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACvD,MAAM;AACR,YAAA;gBACE,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBACnD,MAAM;SACT;KACF;8GAjCU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,uKCnB3B,ymBAuBA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDJa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,YAAY,EAEL,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ymBAAA,EAAA,CAAA;8BAIpB,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AExBR;;AAEG;;;;"}
@@ -1,6 +1,7 @@
1
1
  export declare enum HTTPMethods {
2
2
  GET = "GET",
3
3
  POST = "POST",
4
+ PUT = "PUT",
4
5
  DELETE = "DELETE"
5
6
  }
6
7
  export declare enum APIs {
@@ -1,9 +1,11 @@
1
+ import { Subject } from "rxjs";
1
2
  import { ProxyTypes } from "./enums";
2
3
  export interface ServiceCallStates {
3
4
  serviceCalled: boolean;
4
5
  waitingForResponse: boolean;
5
6
  responseIsRecieved: boolean;
6
7
  serviceCallFailed: boolean;
8
+ errorEvent?: Subject<any>;
7
9
  }
8
10
  export type ServiceCallStateMap<T> = {
9
11
  [K in keyof T]?: T[K] extends Function ? ServiceCallStates : never;
@@ -1,4 +1,5 @@
1
+ import { HttpErrorResponse } from "@angular/common/http";
1
2
  import { ServiceCallStateMap } from "../lib/interfaces";
2
3
  export declare const callState: (states: ServiceCallStateMap<any>, serviceName: any) => void;
3
4
  export declare const successState: (states: ServiceCallStateMap<any>, serviceName: any) => void;
4
- export declare const errorState: (states: ServiceCallStateMap<any>, serviceName: any) => void;
5
+ export declare const errorState: (states: ServiceCallStateMap<any>, serviceName: any, error: HttpErrorResponse) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aril",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.1.0",
6
6
  "@angular/core": "^17.1.0",
@@ -48,6 +48,12 @@
48
48
  "esm": "./esm2022/util/aril-util.mjs",
49
49
  "default": "./fesm2022/aril-util.mjs"
50
50
  },
51
+ "./theme/layout": {
52
+ "types": "./theme/layout/index.d.ts",
53
+ "esm2022": "./esm2022/theme/layout/aril-theme-layout.mjs",
54
+ "esm": "./esm2022/theme/layout/aril-theme-layout.mjs",
55
+ "default": "./fesm2022/aril-theme-layout.mjs"
56
+ },
51
57
  "./ui/badge": {
52
58
  "types": "./ui/badge/index.d.ts",
53
59
  "esm2022": "./esm2022/ui/badge/aril-ui-badge.mjs",
@@ -0,0 +1,16 @@
1
+ import { Router } from '@angular/router';
2
+ import * as i0 from "@angular/core";
3
+ interface Breadcrumb {
4
+ label: string;
5
+ url?: string;
6
+ }
7
+ export declare class AppBreadcrumbComponent {
8
+ private router;
9
+ private readonly _breadcrumbs$;
10
+ readonly breadcrumbs$: import("rxjs").Observable<Breadcrumb[]>;
11
+ constructor(router: Router);
12
+ private addBreadcrumb;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppBreadcrumbComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppBreadcrumbComponent, "app-breadcrumb", never, {}, {}, never, never, true, never>;
15
+ }
16
+ export {};
@@ -0,0 +1,10 @@
1
+ <nav class="layout-breadcrumb">
2
+ <ol>
3
+ @for (item of breadcrumbs$ | async; track item; let last = $last) {
4
+ <li>{{ item.label }}</li>
5
+ @if (!last) {
6
+ <li class="layout-breadcrumb-chevron">/</li>
7
+ }
8
+ }
9
+ </ol>
10
+ </nav>
@@ -0,0 +1,52 @@
1
+ import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
2
+ import { Component } from '@angular/core';
3
+ import { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';
4
+
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { filter } from 'rxjs/operators';
7
+
8
+ interface Breadcrumb {
9
+ label: string;
10
+ url?: string;
11
+ }
12
+
13
+ @Component({
14
+ standalone: true,
15
+ selector: 'app-breadcrumb',
16
+ imports: [NgTemplateOutlet, AsyncPipe],
17
+ templateUrl: './app.breadcrumb.component.html'
18
+ })
19
+ export class AppBreadcrumbComponent {
20
+
21
+ private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);
22
+
23
+ readonly breadcrumbs$ = this._breadcrumbs$.asObservable();
24
+
25
+ constructor(private router: Router) {
26
+ this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(event => {
27
+ const root = this.router.routerState.snapshot.root;
28
+ const breadcrumbs: Breadcrumb[] = [];
29
+ this.addBreadcrumb(root, [], breadcrumbs);
30
+
31
+ this._breadcrumbs$.next(breadcrumbs);
32
+ });
33
+ }
34
+
35
+ private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {
36
+ const routeUrl = parentUrl.concat(route.url.map(url => url.path));
37
+ const breadcrumb = route.data['breadcrumb'];
38
+ const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;
39
+
40
+ if (breadcrumb && breadcrumb !== parentBreadcrumb) {
41
+ breadcrumbs.push({
42
+ label: route.data['breadcrumb'],
43
+ url: '/' + routeUrl.join('/')
44
+ });
45
+ }
46
+
47
+ if (route.firstChild) {
48
+ this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
49
+ }
50
+ }
51
+
52
+ }
@@ -0,0 +1,36 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { MenuService } from '../../service/app.menu.service';
3
+ import { ColorScheme, LayoutService, MenuColorScheme, MenuMode } from '../../service/app.layout.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AppConfigComponent implements OnInit {
6
+ layoutService: LayoutService;
7
+ menuService: MenuService;
8
+ minimal: boolean;
9
+ componentThemes: any[];
10
+ scales: number[];
11
+ constructor(layoutService: LayoutService, menuService: MenuService);
12
+ get visible(): boolean;
13
+ set visible(_val: boolean);
14
+ get scale(): number;
15
+ set scale(_val: number);
16
+ get menuMode(): MenuMode;
17
+ set menuMode(_val: MenuMode);
18
+ get colorScheme(): ColorScheme;
19
+ set colorScheme(_val: ColorScheme);
20
+ get inputStyle(): string;
21
+ set inputStyle(_val: string);
22
+ get ripple(): boolean;
23
+ set ripple(_val: boolean);
24
+ get menuTheme(): MenuColorScheme;
25
+ set menuTheme(_val: MenuColorScheme);
26
+ get theme(): string;
27
+ set theme(_val: string);
28
+ ngOnInit(): void;
29
+ onConfigButtonClick(): void;
30
+ changeColorScheme(colorScheme: ColorScheme): void;
31
+ changeTheme(theme: string): void;
32
+ decrementScale(): void;
33
+ incrementScale(): void;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppConfigComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppConfigComponent, "app-config", never, { "minimal": { "alias": "minimal"; "required": false; }; }, {}, never, never, true, never>;
36
+ }
@@ -0,0 +1,191 @@
1
+ <button
2
+ class="layout-config-button p-link"
3
+ type="button"
4
+ (click)="onConfigButtonClick()">
5
+ <i class="pi pi-cog"></i>
6
+ </button>
7
+
8
+ <p-sidebar
9
+ [(visible)]="visible"
10
+ position="right"
11
+ [transitionOptions]="'.3s cubic-bezier(0, 0, 0.2, 1)'"
12
+ styleClass="layout-config-sidebar w-18rem">
13
+ <h5>Themes</h5>
14
+ <div class="flex flex-wrap row-gap-3">
15
+ @for (theme of componentThemes; track theme) {
16
+ <div class="w-3">
17
+ <button
18
+ type="button"
19
+ class="cursor-pointer p-link w-2rem h-2rem border-circle flex-shrink-0 flex align-items-center justify-content-center"
20
+ (click)="changeTheme(theme.name)"
21
+ [ngStyle]="{ 'background-color': theme.color }">
22
+ @if (theme.name == this.layoutService.config().theme) {
23
+ <i class="pi pi-check text-white"></i>
24
+ }
25
+ </button>
26
+ </div>
27
+ }
28
+ </div>
29
+
30
+ <h5>Scale</h5>
31
+ <div class="flex align-items-center">
32
+ <button
33
+ icon="pi pi-minus"
34
+ type="button"
35
+ pButton
36
+ (click)="decrementScale()"
37
+ class="p-button-text p-button-rounded w-2rem h-2rem mr-2"
38
+ [disabled]="scale === scales[0]"></button>
39
+ <div class="flex gap-2 align-items-center">
40
+ @for (s of scales; track s) {
41
+ <i
42
+ class="pi pi-circle-fill text-300"
43
+ [ngClass]="{ 'text-primary-500': s === scale }"></i>
44
+ }
45
+ </div>
46
+ <button
47
+ icon="pi pi-plus"
48
+ type="button"
49
+ pButton
50
+ (click)="incrementScale()"
51
+ class="p-button-text p-button-rounded w-2rem h-2rem ml-2"
52
+ [disabled]="scale === scales[scales.length - 1]"></button>
53
+ </div>
54
+
55
+ @if (!minimal) {
56
+ <h5>Menu Type</h5>
57
+ <div class="flex flex-wrap row-gap-3">
58
+ <div class="flex align-items-center gap-2 w-6">
59
+ <p-radioButton
60
+ name="menuMode"
61
+ value="static"
62
+ [(ngModel)]="menuMode"
63
+ inputId="mode1"></p-radioButton>
64
+ <label for="mode1">Static</label>
65
+ </div>
66
+ <div class="flex align-items-center gap-2 w-6">
67
+ <p-radioButton
68
+ name="menuMode"
69
+ value="overlay"
70
+ [(ngModel)]="menuMode"
71
+ inputId="mode2"></p-radioButton>
72
+ <label for="mode2">Overlay</label>
73
+ </div>
74
+ <div class="flex align-items-center gap-2 w-6">
75
+ <p-radioButton
76
+ name="menuMode"
77
+ value="slim"
78
+ [(ngModel)]="menuMode"
79
+ inputId="mode3"></p-radioButton>
80
+ <label for="mode3">Slim</label>
81
+ </div>
82
+ <div class="flex align-items-center gap-2 w-6">
83
+ <p-radioButton
84
+ name="menuMode"
85
+ value="slim-plus"
86
+ [(ngModel)]="menuMode"
87
+ inputId="mode4"></p-radioButton>
88
+ <label for="mode3">Slim +</label>
89
+ </div>
90
+ <div class="flex align-items-center gap-2 w-6">
91
+ <p-radioButton
92
+ name="menuMode"
93
+ value="reveal"
94
+ [(ngModel)]="menuMode"
95
+ inputId="mode6"></p-radioButton>
96
+ <label for="mode5">Reveal</label>
97
+ </div>
98
+ <div class="flex align-items-center gap-2 w-6">
99
+ <p-radioButton
100
+ name="menuMode"
101
+ value="drawer"
102
+ [(ngModel)]="menuMode"
103
+ inputId="mode7"></p-radioButton>
104
+ <label for="mode6">Drawer</label>
105
+ </div>
106
+ <div class="flex align-items-center gap-2 w-6">
107
+ <p-radioButton
108
+ name="menuMode"
109
+ value="horizontal"
110
+ [(ngModel)]="menuMode"
111
+ inputId="mode5"></p-radioButton>
112
+ <label for="mode4">Horizontal</label>
113
+ </div>
114
+ </div>
115
+ <h5>Menu Theme</h5>
116
+ <div class="field-radiobutton">
117
+ <p-radioButton
118
+ name="menuTheme"
119
+ value="colorScheme"
120
+ [(ngModel)]="menuTheme"
121
+ inputId="menutheme-colorscheme"></p-radioButton>
122
+ <label for="menutheme-colorscheme">Color Scheme</label>
123
+ </div>
124
+ <div class="field-radiobutton">
125
+ <p-radioButton
126
+ name="menuTheme"
127
+ value="primaryColor"
128
+ [(ngModel)]="menuTheme"
129
+ inputId="menutheme-primarycolor"></p-radioButton>
130
+ <label for="menutheme-primarycolor">Primary Color</label>
131
+ </div>
132
+ <div class="field-radiobutton">
133
+ <p-radioButton
134
+ name="menuTheme"
135
+ value="transparent"
136
+ [(ngModel)]="menuTheme"
137
+ inputId="menutheme-transparent"></p-radioButton>
138
+ <label for="menutheme-transparent">Transparent</label>
139
+ </div>
140
+ }
141
+
142
+ <h5>Color Scheme</h5>
143
+ <div class="field-radiobutton">
144
+ <p-radioButton
145
+ name="colorScheme"
146
+ value="light"
147
+ [(ngModel)]="colorScheme"
148
+ inputId="mode-light"></p-radioButton>
149
+ <label for="mode-light">Light</label>
150
+ </div>
151
+ <div class="field-radiobutton">
152
+ <p-radioButton
153
+ name="colorScheme"
154
+ value="dim"
155
+ [(ngModel)]="colorScheme"
156
+ inputId="mode-dim"></p-radioButton>
157
+ <label for="mode-dim">Dim</label>
158
+ </div>
159
+ <div class="field-radiobutton">
160
+ <p-radioButton
161
+ name="colorScheme"
162
+ value="dark"
163
+ [(ngModel)]="colorScheme"
164
+ inputId="mode-dark"></p-radioButton>
165
+ <label for="mode-dark">Dark</label>
166
+ </div>
167
+
168
+ @if (!minimal) {
169
+ <h5>Input Style</h5>
170
+ <div class="flex">
171
+ <div class="field-radiobutton flex-1">
172
+ <p-radioButton
173
+ name="inputStyle"
174
+ value="outlined"
175
+ [(ngModel)]="inputStyle"
176
+ inputId="outlined_input"></p-radioButton>
177
+ <label for="outlined_input">Outlined</label>
178
+ </div>
179
+ <div class="field-radiobutton flex-1">
180
+ <p-radioButton
181
+ name="inputStyle"
182
+ value="filled"
183
+ [(ngModel)]="inputStyle"
184
+ inputId="filled_input"></p-radioButton>
185
+ <label for="filled_input">Filled</label>
186
+ </div>
187
+ </div>
188
+ <h5>Ripple Effect</h5>
189
+ <p-inputSwitch [(ngModel)]="ripple"></p-inputSwitch>
190
+ }
191
+ </p-sidebar>