@taiga-ui/addon-table 3.57.0 → 3.59.0-canary.10da730

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 (194) hide show
  1. package/components/reorder/reorder.component.d.ts +1 -1
  2. package/components/table/directives/cell.directive.d.ts +1 -1
  3. package/components/table/directives/direction-order.directive.d.ts +1 -1
  4. package/components/table/directives/head.directive.d.ts +1 -1
  5. package/components/table/directives/resized.directive.d.ts +1 -1
  6. package/components/table/directives/row.directive.d.ts +1 -1
  7. package/components/table/directives/sort-by.directive.d.ts +1 -1
  8. package/components/table/directives/sortable.directive.d.ts +1 -1
  9. package/components/table/directives/table.directive.d.ts +1 -1
  10. package/components/table/directives/thead.directive.d.ts +1 -1
  11. package/components/table/pipes/table-sort.pipe.d.ts +1 -1
  12. package/components/table/tbody/tbody.component.d.ts +1 -1
  13. package/components/table/td/td.component.d.ts +1 -1
  14. package/components/table/th/th.component.d.ts +1 -1
  15. package/components/table/th-group/th-group.component.d.ts +1 -1
  16. package/components/table/tr/tr.component.d.ts +1 -1
  17. package/components/table-pagination/table-pagination.component.d.ts +1 -1
  18. package/directives/table-filters/generic-filter.directive.d.ts +1 -1
  19. package/directives/table-filters/table-filter.directive.d.ts +1 -1
  20. package/directives/table-filters/table-filters.directive.d.ts +1 -1
  21. package/directives/table-filters/table-filters.pipe.d.ts +1 -1
  22. package/esm2020/components/reorder/reorder.component.mjs +108 -0
  23. package/{esm2015/components/reorder/reorder.module.js → esm2020/components/reorder/reorder.module.mjs} +5 -5
  24. package/{esm2015/components/table/directives/cell.directive.js → esm2020/components/table/directives/cell.directive.mjs} +3 -3
  25. package/esm2020/components/table/directives/direction-order.directive.mjs +30 -0
  26. package/{esm2015/components/table/directives/head.directive.js → esm2020/components/table/directives/head.directive.mjs} +3 -3
  27. package/esm2020/components/table/directives/resized.directive.mjs +37 -0
  28. package/{esm2015/components/table/directives/row.directive.js → esm2020/components/table/directives/row.directive.mjs} +3 -3
  29. package/esm2020/components/table/directives/sort-by.directive.mjs +47 -0
  30. package/{esm2015/components/table/directives/sortable.directive.js → esm2020/components/table/directives/sortable.directive.mjs} +3 -3
  31. package/{esm2015/components/table/directives/table.directive.js → esm2020/components/table/directives/table.directive.mjs} +3 -3
  32. package/{esm2015/components/table/directives/thead.directive.js → esm2020/components/table/directives/thead.directive.mjs} +3 -3
  33. package/{esm2015/components/table/pipes/table-sort.pipe.js → esm2020/components/table/pipes/table-sort.pipe.mjs} +3 -3
  34. package/esm2020/components/table/providers/stuck.provider.mjs +17 -0
  35. package/{esm2015/components/table/providers/table.providers.js → esm2020/components/table/providers/table.providers.mjs} +5 -2
  36. package/{esm2015/components/table/table.module.js → esm2020/components/table/table.module.mjs} +5 -5
  37. package/esm2020/components/table/tbody/tbody.component.mjs +69 -0
  38. package/esm2020/components/table/td/td.component.mjs +22 -0
  39. package/{esm2015/components/table/th/th.component.js → esm2020/components/table/th/th.component.mjs} +12 -21
  40. package/esm2020/components/table/th-group/th-group.component.mjs +37 -0
  41. package/esm2020/components/table/tr/tr.component.mjs +46 -0
  42. package/esm2020/components/table-pagination/table-pagination.component.mjs +110 -0
  43. package/{esm2015/components/table-pagination/table-pagination.module.js → esm2020/components/table-pagination/table-pagination.module.mjs} +11 -13
  44. package/{esm2015/directives/table-filters/generic-filter.directive.js → esm2020/directives/table-filters/generic-filter.directive.mjs} +3 -3
  45. package/esm2020/directives/table-filters/table-filter.directive.mjs +58 -0
  46. package/esm2020/directives/table-filters/table-filters.directive.mjs +35 -0
  47. package/{esm2015/directives/table-filters/table-filters.module.js → esm2020/directives/table-filters/table-filters.module.mjs} +4 -4
  48. package/{esm2015/directives/table-filters/table-filters.pipe.js → esm2020/directives/table-filters/table-filters.pipe.mjs} +3 -3
  49. package/fesm2015/taiga-ui-addon-table-components-reorder.mjs +148 -0
  50. package/fesm2015/taiga-ui-addon-table-components-reorder.mjs.map +1 -0
  51. package/fesm2015/taiga-ui-addon-table-components-table-pagination.mjs +172 -0
  52. package/fesm2015/taiga-ui-addon-table-components-table-pagination.mjs.map +1 -0
  53. package/fesm2015/taiga-ui-addon-table-components-table.mjs +770 -0
  54. package/fesm2015/taiga-ui-addon-table-components-table.mjs.map +1 -0
  55. package/fesm2015/{taiga-ui-addon-table-components.js → taiga-ui-addon-table-components.mjs} +1 -1
  56. package/fesm2015/taiga-ui-addon-table-components.mjs.map +1 -0
  57. package/fesm2015/taiga-ui-addon-table-directives-table-filters.mjs +180 -0
  58. package/fesm2015/taiga-ui-addon-table-directives-table-filters.mjs.map +1 -0
  59. package/fesm2015/{taiga-ui-addon-table-directives.js → taiga-ui-addon-table-directives.mjs} +1 -1
  60. package/fesm2015/taiga-ui-addon-table-directives.mjs.map +1 -0
  61. package/fesm2015/taiga-ui-addon-table-interfaces.mjs +4 -0
  62. package/fesm2015/taiga-ui-addon-table-interfaces.mjs.map +1 -0
  63. package/fesm2015/{taiga-ui-addon-table-tokens.js → taiga-ui-addon-table-tokens.mjs} +1 -1
  64. package/fesm2015/taiga-ui-addon-table-tokens.mjs.map +1 -0
  65. package/fesm2015/taiga-ui-addon-table-types.mjs +4 -0
  66. package/fesm2015/taiga-ui-addon-table-types.mjs.map +1 -0
  67. package/fesm2015/{taiga-ui-addon-table-utils.js → taiga-ui-addon-table-utils.mjs} +1 -1
  68. package/fesm2015/taiga-ui-addon-table-utils.mjs.map +1 -0
  69. package/fesm2015/{taiga-ui-addon-table.js → taiga-ui-addon-table.mjs} +1 -1
  70. package/fesm2015/taiga-ui-addon-table.mjs.map +1 -0
  71. package/{fesm2015/taiga-ui-addon-table-components-reorder.js → fesm2020/taiga-ui-addon-table-components-reorder.mjs} +21 -28
  72. package/fesm2020/taiga-ui-addon-table-components-reorder.mjs.map +1 -0
  73. package/{fesm2015/taiga-ui-addon-table-components-table-pagination.js → fesm2020/taiga-ui-addon-table-components-table-pagination.mjs} +17 -24
  74. package/fesm2020/taiga-ui-addon-table-components-table-pagination.mjs.map +1 -0
  75. package/{fesm2015/taiga-ui-addon-table-components-table.js → fesm2020/taiga-ui-addon-table-components-table.mjs} +85 -116
  76. package/fesm2020/taiga-ui-addon-table-components-table.mjs.map +1 -0
  77. package/fesm2020/taiga-ui-addon-table-components.mjs +8 -0
  78. package/fesm2020/taiga-ui-addon-table-components.mjs.map +1 -0
  79. package/{fesm2015/taiga-ui-addon-table-directives-table-filters.js → fesm2020/taiga-ui-addon-table-directives-table-filters.mjs} +20 -25
  80. package/fesm2020/taiga-ui-addon-table-directives-table-filters.mjs.map +1 -0
  81. package/fesm2020/taiga-ui-addon-table-directives.mjs +6 -0
  82. package/fesm2020/taiga-ui-addon-table-directives.mjs.map +1 -0
  83. package/fesm2020/taiga-ui-addon-table-interfaces.mjs +4 -0
  84. package/fesm2020/taiga-ui-addon-table-interfaces.mjs.map +1 -0
  85. package/fesm2020/taiga-ui-addon-table-tokens.mjs +18 -0
  86. package/fesm2020/taiga-ui-addon-table-tokens.mjs.map +1 -0
  87. package/fesm2020/taiga-ui-addon-table-types.mjs +4 -0
  88. package/fesm2020/taiga-ui-addon-table-types.mjs.map +1 -0
  89. package/fesm2020/taiga-ui-addon-table-utils.mjs +14 -0
  90. package/fesm2020/taiga-ui-addon-table-utils.mjs.map +1 -0
  91. package/fesm2020/taiga-ui-addon-table.mjs +10 -0
  92. package/fesm2020/taiga-ui-addon-table.mjs.map +1 -0
  93. package/package.json +127 -34
  94. package/types/comparator.d.ts +1 -1
  95. package/bundles/taiga-ui-addon-table-components-reorder.umd.js +0 -190
  96. package/bundles/taiga-ui-addon-table-components-reorder.umd.js.map +0 -1
  97. package/bundles/taiga-ui-addon-table-components-table-pagination.umd.js +0 -234
  98. package/bundles/taiga-ui-addon-table-components-table-pagination.umd.js.map +0 -1
  99. package/bundles/taiga-ui-addon-table-components-table.umd.js +0 -1235
  100. package/bundles/taiga-ui-addon-table-components-table.umd.js.map +0 -1
  101. package/bundles/taiga-ui-addon-table-components.umd.js +0 -33
  102. package/bundles/taiga-ui-addon-table-components.umd.js.map +0 -1
  103. package/bundles/taiga-ui-addon-table-directives-table-filters.umd.js +0 -550
  104. package/bundles/taiga-ui-addon-table-directives-table-filters.umd.js.map +0 -1
  105. package/bundles/taiga-ui-addon-table-directives.umd.js +0 -21
  106. package/bundles/taiga-ui-addon-table-directives.umd.js.map +0 -1
  107. package/bundles/taiga-ui-addon-table-interfaces.umd.js +0 -11
  108. package/bundles/taiga-ui-addon-table-interfaces.umd.js.map +0 -1
  109. package/bundles/taiga-ui-addon-table-tokens.umd.js +0 -26
  110. package/bundles/taiga-ui-addon-table-tokens.umd.js.map +0 -1
  111. package/bundles/taiga-ui-addon-table-types.umd.js +0 -11
  112. package/bundles/taiga-ui-addon-table-types.umd.js.map +0 -1
  113. package/bundles/taiga-ui-addon-table-utils.umd.js +0 -22
  114. package/bundles/taiga-ui-addon-table-utils.umd.js.map +0 -1
  115. package/bundles/taiga-ui-addon-table.umd.js +0 -45
  116. package/bundles/taiga-ui-addon-table.umd.js.map +0 -1
  117. package/components/package.json +0 -10
  118. package/components/reorder/package.json +0 -10
  119. package/components/reorder/taiga-ui-addon-table-components-reorder.d.ts +0 -5
  120. package/components/table/package.json +0 -10
  121. package/components/table/taiga-ui-addon-table-components-table.d.ts +0 -5
  122. package/components/table-pagination/package.json +0 -10
  123. package/components/table-pagination/taiga-ui-addon-table-components-table-pagination.d.ts +0 -5
  124. package/components/taiga-ui-addon-table-components.d.ts +0 -5
  125. package/directives/package.json +0 -10
  126. package/directives/table-filters/package.json +0 -10
  127. package/directives/table-filters/taiga-ui-addon-table-directives-table-filters.d.ts +0 -5
  128. package/directives/taiga-ui-addon-table-directives.d.ts +0 -5
  129. package/esm2015/components/reorder/reorder.component.js +0 -115
  130. package/esm2015/components/table/directives/direction-order.directive.js +0 -30
  131. package/esm2015/components/table/directives/resized.directive.js +0 -37
  132. package/esm2015/components/table/directives/sort-by.directive.js +0 -48
  133. package/esm2015/components/table/providers/stuck.provider.js +0 -17
  134. package/esm2015/components/table/tbody/tbody.component.js +0 -75
  135. package/esm2015/components/table/td/td.component.js +0 -27
  136. package/esm2015/components/table/th-group/th-group.component.js +0 -42
  137. package/esm2015/components/table/tr/tr.component.js +0 -55
  138. package/esm2015/components/table-pagination/table-pagination.component.js +0 -115
  139. package/esm2015/directives/table-filters/table-filter.directive.js +0 -63
  140. package/esm2015/directives/table-filters/table-filters.directive.js +0 -36
  141. package/fesm2015/taiga-ui-addon-table-components-reorder.js.map +0 -1
  142. package/fesm2015/taiga-ui-addon-table-components-table-pagination.js.map +0 -1
  143. package/fesm2015/taiga-ui-addon-table-components-table.js.map +0 -1
  144. package/fesm2015/taiga-ui-addon-table-components.js.map +0 -1
  145. package/fesm2015/taiga-ui-addon-table-directives-table-filters.js.map +0 -1
  146. package/fesm2015/taiga-ui-addon-table-directives.js.map +0 -1
  147. package/fesm2015/taiga-ui-addon-table-interfaces.js +0 -4
  148. package/fesm2015/taiga-ui-addon-table-interfaces.js.map +0 -1
  149. package/fesm2015/taiga-ui-addon-table-tokens.js.map +0 -1
  150. package/fesm2015/taiga-ui-addon-table-types.js +0 -4
  151. package/fesm2015/taiga-ui-addon-table-types.js.map +0 -1
  152. package/fesm2015/taiga-ui-addon-table-utils.js.map +0 -1
  153. package/fesm2015/taiga-ui-addon-table.js.map +0 -1
  154. package/interfaces/package.json +0 -10
  155. package/interfaces/taiga-ui-addon-table-interfaces.d.ts +0 -5
  156. package/taiga-ui-addon-table.d.ts +0 -5
  157. package/tokens/package.json +0 -10
  158. package/tokens/taiga-ui-addon-table-tokens.d.ts +0 -5
  159. package/types/package.json +0 -10
  160. package/types/taiga-ui-addon-table-types.d.ts +0 -5
  161. package/utils/package.json +0 -10
  162. package/utils/taiga-ui-addon-table-utils.d.ts +0 -5
  163. /package/{esm2015/components/index.js → esm2020/components/index.mjs} +0 -0
  164. /package/{esm2015/components/reorder/index.js → esm2020/components/reorder/index.mjs} +0 -0
  165. /package/{esm2015/components/reorder/reorder.options.js → esm2020/components/reorder/reorder.options.mjs} +0 -0
  166. /package/{esm2015/components/reorder/taiga-ui-addon-table-components-reorder.js → esm2020/components/reorder/taiga-ui-addon-table-components-reorder.mjs} +0 -0
  167. /package/{esm2015/components/table/index.js → esm2020/components/table/index.mjs} +0 -0
  168. /package/{esm2015/components/table/providers/table.provider.js → esm2020/components/table/providers/table.provider.mjs} +0 -0
  169. /package/{esm2015/components/table/table.options.js → esm2020/components/table/table.options.mjs} +0 -0
  170. /package/{esm2015/components/table/taiga-ui-addon-table-components-table.js → esm2020/components/table/taiga-ui-addon-table-components-table.mjs} +0 -0
  171. /package/{esm2015/components/table-pagination/index.js → esm2020/components/table-pagination/index.mjs} +0 -0
  172. /package/{esm2015/components/table-pagination/table-pagination.options.js → esm2020/components/table-pagination/table-pagination.options.mjs} +0 -0
  173. /package/{esm2015/components/table-pagination/taiga-ui-addon-table-components-table-pagination.js → esm2020/components/table-pagination/taiga-ui-addon-table-components-table-pagination.mjs} +0 -0
  174. /package/{esm2015/components/taiga-ui-addon-table-components.js → esm2020/components/taiga-ui-addon-table-components.mjs} +0 -0
  175. /package/{esm2015/directives/index.js → esm2020/directives/index.mjs} +0 -0
  176. /package/{esm2015/directives/table-filters/abstract-table-filter.js → esm2020/directives/table-filters/abstract-table-filter.mjs} +0 -0
  177. /package/{esm2015/directives/table-filters/index.js → esm2020/directives/table-filters/index.mjs} +0 -0
  178. /package/{esm2015/directives/table-filters/table-filter.js → esm2020/directives/table-filters/table-filter.mjs} +0 -0
  179. /package/{esm2015/directives/table-filters/taiga-ui-addon-table-directives-table-filters.js → esm2020/directives/table-filters/taiga-ui-addon-table-directives-table-filters.mjs} +0 -0
  180. /package/{esm2015/directives/taiga-ui-addon-table-directives.js → esm2020/directives/taiga-ui-addon-table-directives.mjs} +0 -0
  181. /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  182. /package/{esm2015/interfaces/index.js → esm2020/interfaces/index.mjs} +0 -0
  183. /package/{esm2015/interfaces/row-context.js → esm2020/interfaces/row-context.mjs} +0 -0
  184. /package/{esm2015/interfaces/taiga-ui-addon-table-interfaces.js → esm2020/interfaces/taiga-ui-addon-table-interfaces.mjs} +0 -0
  185. /package/{esm2015/taiga-ui-addon-table.js → esm2020/taiga-ui-addon-table.mjs} +0 -0
  186. /package/{esm2015/tokens/i18n.js → esm2020/tokens/i18n.mjs} +0 -0
  187. /package/{esm2015/tokens/index.js → esm2020/tokens/index.mjs} +0 -0
  188. /package/{esm2015/tokens/taiga-ui-addon-table-tokens.js → esm2020/tokens/taiga-ui-addon-table-tokens.mjs} +0 -0
  189. /package/{esm2015/types/comparator.js → esm2020/types/comparator.mjs} +0 -0
  190. /package/{esm2015/types/index.js → esm2020/types/index.mjs} +0 -0
  191. /package/{esm2015/types/taiga-ui-addon-table-types.js → esm2020/types/taiga-ui-addon-table-types.mjs} +0 -0
  192. /package/{esm2015/utils/default-sort.js → esm2020/utils/default-sort.mjs} +0 -0
  193. /package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
  194. /package/{esm2015/utils/taiga-ui-addon-table-utils.js → esm2020/utils/taiga-ui-addon-table-utils.mjs} +0 -0
@@ -0,0 +1,110 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, } from '@angular/core';
2
+ import { TUI_TABLE_PAGINATION_TEXTS } from '@taiga-ui/addon-table/tokens';
3
+ import { TUI_COMMON_ICONS, TUI_SPIN_ICONS, TUI_SPIN_TEXTS, } from '@taiga-ui/core';
4
+ import { TUI_TABLE_PAGINATION_OPTIONS, } from './table-pagination.options';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@taiga-ui/core";
8
+ import * as i3 from "@tinkoff/ng-polymorpheus";
9
+ import * as i4 from "rxjs";
10
+ export class TuiTablePaginationComponent {
11
+ constructor(icons, spinTexts$, texts$, options, commonIcons) {
12
+ this.icons = icons;
13
+ this.spinTexts$ = spinTexts$;
14
+ this.texts$ = texts$;
15
+ this.options = options;
16
+ this.commonIcons = commonIcons;
17
+ this.items = this.options.items;
18
+ this.total = 0;
19
+ this.page = 0;
20
+ this.size = this.options.size;
21
+ /**
22
+ * TODO: Remove in 4.0
23
+ * @deprecated use paginationChange
24
+ */
25
+ this.pageChange = new EventEmitter();
26
+ /**
27
+ * TODO: Remove in 4.0
28
+ * @deprecated use paginationChange
29
+ */
30
+ this.sizeChange = new EventEmitter();
31
+ this.paginationChange = new EventEmitter();
32
+ this.open = false;
33
+ }
34
+ get pages() {
35
+ return Math.ceil(this.total / this.size);
36
+ }
37
+ get start() {
38
+ return this.page * this.size;
39
+ }
40
+ get end() {
41
+ return Math.min(this.start + this.size, this.total);
42
+ }
43
+ get leftDisabled() {
44
+ return !this.start;
45
+ }
46
+ get rightDisabled() {
47
+ return this.end === this.total;
48
+ }
49
+ get pagination() {
50
+ return {
51
+ page: this.page,
52
+ size: this.size,
53
+ };
54
+ }
55
+ onItem(size) {
56
+ const { start } = this;
57
+ this.size = size;
58
+ this.sizeChange.emit(size);
59
+ this.open = false;
60
+ this.page = Math.floor(start / this.size);
61
+ this.pageChange.emit(this.page);
62
+ this.paginationChange.emit(this.pagination);
63
+ }
64
+ back() {
65
+ this.page--;
66
+ this.pageChange.emit(this.page);
67
+ this.paginationChange.emit(this.pagination);
68
+ }
69
+ forth() {
70
+ this.page++;
71
+ this.pageChange.emit(this.page);
72
+ this.paginationChange.emit(this.pagination);
73
+ }
74
+ }
75
+ TuiTablePaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTablePaginationComponent, deps: [{ token: TUI_SPIN_ICONS }, { token: TUI_SPIN_TEXTS }, { token: TUI_TABLE_PAGINATION_TEXTS }, { token: TUI_TABLE_PAGINATION_OPTIONS }, { token: TUI_COMMON_ICONS }], target: i0.ɵɵFactoryTarget.Component });
76
+ TuiTablePaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TuiTablePaginationComponent, selector: "tui-table-pagination", inputs: { items: "items", total: "total", page: "page", size: "size" }, outputs: { pageChange: "pageChange", sizeChange: "sizeChange", paginationChange: "paginationChange" }, ngImport: i0, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n class=\"t-checkmark\"\n [src]=\"commonIcons.check\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-back\"\n [disabled]=\"leftDisabled\"\n [icon]=\"icons.decrement\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [disabled]=\"rightDisabled\"\n [icon]=\"icons.increment\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-03)}.t-strong{color:var(--tui-text-01)}.t-pages{margin-right:auto}.t-item{min-width:5.5rem;box-sizing:border-box}.t-checkmark{min-width:1.5rem;border-left:5px solid transparent}.t-back{margin:0 .25rem 0 1.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i2.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: i2.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { kind: "component", type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { kind: "component", type: i2.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { kind: "component", type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTablePaginationComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'tui-table-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"texts$ | async as texts\">\n <span class=\"t-pages\">\n <ng-container *ngIf=\"options.showPages\">\n {{ texts.pages }}\n <strong class=\"t-strong\">{{ pages }}</strong>\n </ng-container>\n </span>\n <span automation-id=\"tui-table-pagination__lines-per-page-wrapper\">\n {{ texts.linesPerPage }}\n <tui-hosted-dropdown\n [content]=\"content\"\n [(open)]=\"open\"\n >\n <button\n tuiLink\n type=\"button\"\n >\n <strong>{{ start + 1 }}\u2013{{ end }}</strong>\n </button>\n <ng-template #content>\n <tui-data-list size=\"s\">\n <ng-container *ngFor=\"let item of items\">\n <button\n tuiOption\n class=\"t-item\"\n (click)=\"onItem(item)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n options.sizeOptionContent as text;\n context: {$implicit: item, total: total}\n \"\n >\n {{ text }}\n </ng-container>\n <tui-svg\n *ngIf=\"item === size; else fakeIcon\"\n class=\"t-checkmark\"\n [src]=\"commonIcons.check\"\n ></tui-svg>\n\n <ng-template #fakeIcon>\n <span class=\"t-checkmark\"></span>\n </ng-template>\n </button>\n </ng-container>\n </tui-data-list>\n </ng-template>\n </tui-hosted-dropdown>\n {{ texts.of }}\n <strong class=\"t-strong\">{{ total }}</strong>\n </span>\n <ng-container *ngIf=\"spinTexts$ | async as spinTexts\">\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-back\"\n [disabled]=\"leftDisabled\"\n [icon]=\"icons.decrement\"\n [title]=\"spinTexts[0]\"\n (click)=\"back()\"\n ></button>\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [disabled]=\"rightDisabled\"\n [icon]=\"icons.increment\"\n [title]=\"spinTexts[1]\"\n (click)=\"forth()\"\n ></button>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;font:var(--tui-font-text-s);align-items:center;color:var(--tui-text-03)}.t-strong{color:var(--tui-text-01)}.t-pages{margin-right:auto}.t-item{min-width:5.5rem;box-sizing:border-box}.t-checkmark{min-width:1.5rem;border-left:5px solid transparent}.t-back{margin:0 .25rem 0 1.5rem}\n"] }]
80
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
81
+ type: Inject,
82
+ args: [TUI_SPIN_ICONS]
83
+ }] }, { type: i4.Observable, decorators: [{
84
+ type: Inject,
85
+ args: [TUI_SPIN_TEXTS]
86
+ }] }, { type: i4.Observable, decorators: [{
87
+ type: Inject,
88
+ args: [TUI_TABLE_PAGINATION_TEXTS]
89
+ }] }, { type: undefined, decorators: [{
90
+ type: Inject,
91
+ args: [TUI_TABLE_PAGINATION_OPTIONS]
92
+ }] }, { type: undefined, decorators: [{
93
+ type: Inject,
94
+ args: [TUI_COMMON_ICONS]
95
+ }] }]; }, propDecorators: { items: [{
96
+ type: Input
97
+ }], total: [{
98
+ type: Input
99
+ }], page: [{
100
+ type: Input
101
+ }], size: [{
102
+ type: Input
103
+ }], pageChange: [{
104
+ type: Output
105
+ }], sizeChange: [{
106
+ type: Output
107
+ }], paginationChange: [{
108
+ type: Output
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxjQUFjLEdBR2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUNILDRCQUE0QixHQUUvQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFhcEMsTUFBTSxPQUFPLDJCQUEyQjtJQWdDcEMsWUFDcUMsS0FBbUIsRUFDbkIsVUFBd0MsRUFFaEUsTUFBbUUsRUFDN0IsT0FBa0MsRUFDOUMsV0FBMkI7UUFMN0IsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUVoRSxXQUFNLEdBQU4sTUFBTSxDQUE2RDtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUM5QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFwQ2xFLFVBQUssR0FBc0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFHOUMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdWLFNBQUksR0FBRyxDQUFDLENBQUM7UUFHVCxTQUFJLEdBQUcsSUFBSSxDQUFD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Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBUUcsVUFBVTtzQkFEbEIsTUFBTTtnQkFRRSxVQUFVO3NCQURsQixNQUFNO2dCQUlFLGdCQUFnQjtzQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX1RBQkxFX1BBR0lOQVRJT05fVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi10YWJsZS90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ09NTU9OX0lDT05TLFxuICAgIFRVSV9TUElOX0lDT05TLFxuICAgIFRVSV9TUElOX1RFWFRTLFxuICAgIFR1aUNvbW1vbkljb25zLFxuICAgIFR1aVNwaW5JY29ucyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBUVUlfVEFCTEVfUEFHSU5BVElPTl9PUFRJT05TLFxuICAgIFR1aVRhYmxlUGFnaW5hdGlvbk9wdGlvbnMsXG59IGZyb20gJy4vdGFibGUtcGFnaW5hdGlvbi5vcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlUYWJsZVBhZ2luYXRpb24ge1xuICAgIHJlYWRvbmx5IHBhZ2U6IG51bWJlcjtcbiAgICByZWFkb25seSBzaXplOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXRhYmxlLXBhZ2luYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1wYWdpbmF0aW9uLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLXBhZ2luYXRpb24uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUYWJsZVBhZ2luYXRpb25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgaXRlbXM6IHJlYWRvbmx5IG51bWJlcltdID0gdGhpcy5vcHRpb25zLml0ZW1zO1xuXG4gICAgQElucHV0KClcbiAgICB0b3RhbCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHBhZ2UgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBzaXplID0gdGhpcy5vcHRpb25zLnNpemU7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiBSZW1vdmUgaW4gNC4wXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIHBhZ2luYXRpb25DaGFuZ2VcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUT0RPOiBSZW1vdmUgaW4gNC4wXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIHBhZ2luYXRpb25DaGFuZ2VcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwYWdpbmF0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlUYWJsZVBhZ2luYXRpb24+KCk7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfU1BJTl9JQ09OUykgcmVhZG9ubHkgaWNvbnM6IFR1aVNwaW5JY29ucyxcbiAgICAgICAgQEluamVjdChUVUlfU1BJTl9URVhUUykgcmVhZG9ubHkgc3BpblRleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQEluamVjdChUVUlfVEFCTEVfUEFHSU5BVElPTl9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgdGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDwnbGluZXNQZXJQYWdlJyB8ICdvZicgfCAncGFnZXMnLCBzdHJpbmc+PixcbiAgICAgICAgQEluamVjdChUVUlfVEFCTEVfUEFHSU5BVElPTl9PUFRJT05TKSByZWFkb25seSBvcHRpb25zOiBUdWlUYWJsZVBhZ2luYXRpb25PcHRpb25zLFxuICAgICAgICBASW5qZWN0KFRVSV9DT01NT05fSUNPTlMpIHJlYWRvbmx5IGNvbW1vbkljb25zOiBUdWlDb21tb25JY29ucyxcbiAgICApIHt9XG5cbiAgICBnZXQgcGFnZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy5zaXplKTtcbiAgICB9XG5cbiAgICBnZXQgc3RhcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZSAqIHRoaXMuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgZW5kKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbih0aGlzLnN0YXJ0ICsgdGhpcy5zaXplLCB0aGlzLnRvdGFsKTtcbiAgICB9XG5cbiAgICBnZXQgbGVmdERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuc3RhcnQ7XG4gICAgfVxuXG4gICAgZ2V0IHJpZ2h0RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVuZCA9PT0gdGhpcy50b3RhbDtcbiAgICB9XG5cbiAgICBnZXQgcGFnaW5hdGlvbigpOiBUdWlUYWJsZVBhZ2luYXRpb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgc2l6ZTogdGhpcy5zaXplLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG9uSXRlbShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3N0YXJ0fSA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5zaXplQ2hhbmdlLmVtaXQoc2l6ZSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBhZ2UgPSBNYXRoLmZsb29yKHN0YXJ0IC8gdGhpcy5zaXplKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdlKTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgICB9XG5cbiAgICBiYWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UtLTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdlKTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgICB9XG5cbiAgICBmb3J0aCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlKys7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZSk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0LXBhZ2VzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zLnNob3dQYWdlc1wiPlxuICAgICAgICAgICAge3sgdGV4dHMucGFnZXMgfX1cbiAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0LXN0cm9uZ1wiPnt7IHBhZ2VzIH19PC9zdHJvbmc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBhdXRvbWF0aW9uLWlkPVwidHVpLXRhYmxlLXBhZ2luYXRpb25fX2xpbmVzLXBlci1wYWdlLXdyYXBwZXJcIj5cbiAgICAgICAge3sgdGV4dHMubGluZXNQZXJQYWdlIH19XG4gICAgICAgIDx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgICAgICAgICBbY29udGVudF09XCJjb250ZW50XCJcbiAgICAgICAgICAgIFsob3BlbildPVwib3BlblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBzdGFydCArIDEgfX3igJN7eyBlbmQgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgICAgICAgICAgIDx0dWktZGF0YS1saXN0IHNpemU9XCJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnNpemVPcHRpb25Db250ZW50IGFzIHRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7JGltcGxpY2l0OiBpdGVtLCB0b3RhbDogdG90YWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtID09PSBzaXplOyBlbHNlIGZha2VJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNoZWNrbWFya1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY29tbW9uSWNvbnMuY2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3R1aS1zdmc+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Zha2VJY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY2hlY2ttYXJrXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC90dWktZGF0YS1saXN0PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90dWktaG9zdGVkLWRyb3Bkb3duPlxuICAgICAgICB7eyB0ZXh0cy5vZiB9fVxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidC1zdHJvbmdcIj57eyB0b3RhbCB9fTwvc3Ryb25nPlxuICAgIDwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3BpblRleHRzJCB8IGFzeW5jIGFzIHNwaW5UZXh0c1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQtYmFja1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibGVmdERpc2FibGVkXCJcbiAgICAgICAgICAgIFtpY29uXT1cImljb25zLmRlY3JlbWVudFwiXG4gICAgICAgICAgICBbdGl0bGVdPVwic3BpblRleHRzWzBdXCJcbiAgICAgICAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyaWdodERpc2FibGVkXCJcbiAgICAgICAgICAgIFtpY29uXT1cImljb25zLmluY3JlbWVudFwiXG4gICAgICAgICAgICBbdGl0bGVdPVwic3BpblRleHRzWzFdXCJcbiAgICAgICAgICAgIChjbGljayk9XCJmb3J0aCgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -6,24 +6,22 @@ import { TuiTablePaginationComponent } from './table-pagination.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class TuiTablePaginationModule {
8
8
  }
9
- TuiTablePaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- TuiTablePaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationModule, declarations: [TuiTablePaginationComponent], imports: [CommonModule,
9
+ TuiTablePaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTablePaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ TuiTablePaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TuiTablePaginationModule, declarations: [TuiTablePaginationComponent], imports: [CommonModule,
11
11
  TuiButtonModule,
12
12
  TuiLinkModule,
13
13
  TuiHostedDropdownModule,
14
14
  TuiDataListModule,
15
15
  TuiSvgModule,
16
16
  PolymorpheusModule], exports: [TuiTablePaginationComponent] });
17
- TuiTablePaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationModule, imports: [[
18
- CommonModule,
19
- TuiButtonModule,
20
- TuiLinkModule,
21
- TuiHostedDropdownModule,
22
- TuiDataListModule,
23
- TuiSvgModule,
24
- PolymorpheusModule,
25
- ]] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTablePaginationModule, decorators: [{
17
+ TuiTablePaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTablePaginationModule, imports: [CommonModule,
18
+ TuiButtonModule,
19
+ TuiLinkModule,
20
+ TuiHostedDropdownModule,
21
+ TuiDataListModule,
22
+ TuiSvgModule,
23
+ PolymorpheusModule] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTablePaginationModule, decorators: [{
27
25
  type: NgModule,
28
26
  args: [{
29
27
  imports: [
@@ -39,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
39
37
  exports: [TuiTablePaginationComponent],
40
38
  }]
41
39
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNILGVBQWUsRUFDZixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFDYixZQUFZLEdBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFlekUsTUFBTSxPQUFPLHdCQUF3Qjs7c0hBQXhCLHdCQUF3Qjt1SEFBeEIsd0JBQXdCLGlCQUhsQiwyQkFBMkIsYUFSdEMsWUFBWTtRQUNaLGVBQWU7UUFDZixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osa0JBQWtCLGFBR1osMkJBQTJCO3VIQUU1Qix3QkFBd0IsWUFaeEI7WUFDTCxZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYix1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixrQkFBa0I7U0FDckI7NEZBSVEsd0JBQXdCO2tCQWJwQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixrQkFBa0I7cUJBQ3JCO29CQUNELFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUMzQyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgVHVpRGF0YUxpc3RNb2R1bGUsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Nb2R1bGUsXG4gICAgVHVpTGlua01vZHVsZSxcbiAgICBUdWlTdmdNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aVRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudH0gZnJvbSAnLi90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVHVpTGlua01vZHVsZSxcbiAgICAgICAgVHVpSG9zdGVkRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIFR1aURhdGFMaXN0TW9kdWxlLFxuICAgICAgICBUdWlTdmdNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aVRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aVRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRhYmxlUGFnaW5hdGlvbk1vZHVsZSB7fVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9jb21wb25lbnRzL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNILGVBQWUsRUFDZixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFDYixZQUFZLEdBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFlekUsTUFBTSxPQUFPLHdCQUF3Qjs7c0hBQXhCLHdCQUF3Qjt1SEFBeEIsd0JBQXdCLGlCQUhsQiwyQkFBMkIsYUFSdEMsWUFBWTtRQUNaLGVBQWU7UUFDZixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osa0JBQWtCLGFBR1osMkJBQTJCO3VIQUU1Qix3QkFBd0IsWUFYN0IsWUFBWTtRQUNaLGVBQWU7UUFDZixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osa0JBQWtCOzRGQUtiLHdCQUF3QjtrQkFicEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osa0JBQWtCO3FCQUNyQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgIFR1aURhdGFMaXN0TW9kdWxlLFxuICAgIFR1aUhvc3RlZERyb3Bkb3duTW9kdWxlLFxuICAgIFR1aUxpbmtNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlUYWJsZVBhZ2luYXRpb25Db21wb25lbnR9IGZyb20gJy4vdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIFR1aUxpbmtNb2R1bGUsXG4gICAgICAgIFR1aUhvc3RlZERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBUdWlEYXRhTGlzdE1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlUYWJsZVBhZ2luYXRpb25Db21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtUdWlUYWJsZVBhZ2luYXRpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUYWJsZVBhZ2luYXRpb25Nb2R1bGUge31cbiJdfQ==
@@ -8,14 +8,14 @@ export class TuiGenericFilterDirective extends AbstractTuiTableFilter {
8
8
  this.filter = ALWAYS_TRUE_HANDLER;
9
9
  }
10
10
  }
11
- TuiGenericFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiGenericFilterDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
12
- TuiGenericFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiGenericFilterDirective, selector: "[tuiGenericFilter]", inputs: { filter: ["tuiGenericFilter", "filter"] }, providers: [
11
+ TuiGenericFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiGenericFilterDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
12
+ TuiGenericFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TuiGenericFilterDirective, selector: "[tuiGenericFilter]", inputs: { filter: ["tuiGenericFilter", "filter"] }, providers: [
13
13
  {
14
14
  provide: AbstractTuiTableFilter,
15
15
  useExisting: TuiGenericFilterDirective,
16
16
  },
17
17
  ], usesInheritance: true, ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiGenericFilterDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiGenericFilterDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[tuiGenericFilter]',
@@ -0,0 +1,58 @@
1
+ import { Directive, Inject, Input, Optional } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { TuiHeadDirective } from '@taiga-ui/addon-table/components';
4
+ import { defer, distinctUntilChanged, EMPTY, merge } from 'rxjs';
5
+ import { AbstractTuiTableFilter } from './abstract-table-filter';
6
+ import { TuiTableFiltersDirective } from './table-filters.directive';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@taiga-ui/addon-table/components";
9
+ import * as i2 from "./abstract-table-filter";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "./table-filters.directive";
12
+ export class TuiTableFilterDirective {
13
+ constructor(head, delegate, control, filters) {
14
+ this.head = head;
15
+ this.delegate = delegate;
16
+ this.control = control;
17
+ this.filters = filters;
18
+ this.refresh$ = defer(() => merge(this.control.valueChanges || EMPTY, this.control.statusChanges?.pipe(distinctUntilChanged()) || EMPTY));
19
+ }
20
+ ngOnInit() {
21
+ this.filters.register(this);
22
+ }
23
+ ngOnDestroy() {
24
+ this.filters.unregister(this);
25
+ }
26
+ filter(item) {
27
+ const { disabled, value } = this.control;
28
+ return !!disabled || !this.key || this.delegate.filter(item[this.key], value);
29
+ }
30
+ get key() {
31
+ return this.tuiTableFilter || this.head?.tuiHead;
32
+ }
33
+ }
34
+ TuiTableFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFilterDirective, deps: [{ token: TuiHeadDirective, optional: true }, { token: AbstractTuiTableFilter }, { token: NgControl }, { token: TuiTableFiltersDirective }], target: i0.ɵɵFactoryTarget.Directive });
35
+ TuiTableFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TuiTableFilterDirective, selector: "[tuiTableFilter]", inputs: { tuiTableFilter: "tuiTableFilter" }, ngImport: i0 });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFilterDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: '[tuiTableFilter]',
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i1.TuiHeadDirective, decorators: [{
42
+ type: Optional
43
+ }, {
44
+ type: Inject,
45
+ args: [TuiHeadDirective]
46
+ }] }, { type: i2.AbstractTuiTableFilter, decorators: [{
47
+ type: Inject,
48
+ args: [AbstractTuiTableFilter]
49
+ }] }, { type: i3.NgControl, decorators: [{
50
+ type: Inject,
51
+ args: [NgControl]
52
+ }] }, { type: i4.TuiTableFiltersDirective, decorators: [{
53
+ type: Inject,
54
+ args: [TuiTableFiltersDirective]
55
+ }] }]; }, propDecorators: { tuiTableFilter: [{
56
+ type: Input
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLXRhYmxlL2RpcmVjdGl2ZXMvdGFibGUtZmlsdGVycy90YWJsZS1maWx0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7OztBQUtuRSxNQUFNLE9BQU8sdUJBQXVCO0lBV2hDLFlBR3FCLElBQWdDLEVBRWhDLFFBQXFELEVBQ2xDLE9BQWtCLEVBQ1gsT0FBb0M7UUFKOUQsU0FBSSxHQUFKLElBQUksQ0FBNEI7UUFFaEMsYUFBUSxHQUFSLFFBQVEsQ0FBNkM7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNYLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBZDFFLGFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQzNCLEtBQUssQ0FDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLLEVBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksS0FBSyxDQUNwRSxDQUNKLENBQUM7SUFVQyxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFPO1FBQ1YsTUFBTSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRXZDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsSUFBWSxHQUFHO1FBQ1gsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO0lBQ3JELENBQUM7O3FIQXJDUSx1QkFBdUIsa0JBYXBCLGdCQUFnQiw2QkFFaEIsc0JBQXNCLGFBRXRCLFNBQVMsYUFDVCx3QkFBd0I7eUdBbEIzQix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO2lCQUMvQjs7MEJBYVEsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLHNCQUFzQjs7MEJBRTdCLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMsd0JBQXdCOzRDQWhCcEMsY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUdWlIZWFkRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tdGFibGUvY29tcG9uZW50cyc7XG5pbXBvcnQge1R1aVZhbHVlc09mfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7ZGVmZXIsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBFTVBUWSwgbWVyZ2V9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpVGFibGVGaWx0ZXJ9IGZyb20gJy4vYWJzdHJhY3QtdGFibGUtZmlsdGVyJztcbmltcG9ydCB7VHVpVGFibGVGaWx0ZXJ9IGZyb20gJy4vdGFibGUtZmlsdGVyJztcbmltcG9ydCB7VHVpVGFibGVGaWx0ZXJzRGlyZWN0aXZlfSBmcm9tICcuL3RhYmxlLWZpbHRlcnMuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpVGFibGVGaWx0ZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFibGVGaWx0ZXJEaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgVHVpVGFibGVGaWx0ZXI8VD4ge1xuICAgIEBJbnB1dCgpXG4gICAgdHVpVGFibGVGaWx0ZXI/OiBrZXlvZiBUO1xuXG4gICAgcmVhZG9ubHkgcmVmcmVzaCQgPSBkZWZlcigoKSA9PlxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMgfHwgRU1QVFksXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcz8ucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSB8fCBFTVBUWSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGVhZERpcmVjdGl2ZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBoZWFkOiBUdWlIZWFkRGlyZWN0aXZlPFQ+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChBYnN0cmFjdFR1aVRhYmxlRmlsdGVyKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlbGVnYXRlOiBBYnN0cmFjdFR1aVRhYmxlRmlsdGVyPFR1aVZhbHVlc09mPFQ+LCBhbnk+LFxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbCkgcHJpdmF0ZSByZWFkb25seSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBJbmplY3QoVHVpVGFibGVGaWx0ZXJzRGlyZWN0aXZlKSByZWFkb25seSBmaWx0ZXJzOiBUdWlUYWJsZUZpbHRlcnNEaXJlY3RpdmU8VD4sXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVycy5yZWdpc3Rlcih0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzLnVucmVnaXN0ZXIodGhpcyk7XG4gICAgfVxuXG4gICAgZmlsdGVyKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge2Rpc2FibGVkLCB2YWx1ZX0gPSB0aGlzLmNvbnRyb2w7XG5cbiAgICAgICAgcmV0dXJuICEhZGlzYWJsZWQgfHwgIXRoaXMua2V5IHx8IHRoaXMuZGVsZWdhdGUuZmlsdGVyKGl0ZW1bdGhpcy5rZXldLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQga2V5KCk6IGtleW9mIFQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy50dWlUYWJsZUZpbHRlciB8fCB0aGlzLmhlYWQ/LnR1aUhlYWQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,35 @@
1
+ import { Directive } from '@angular/core';
2
+ import { identity, map, merge, ReplaySubject, startWith, switchMap, } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class TuiTableFiltersDirective {
5
+ constructor() {
6
+ this.refresh$ = new ReplaySubject(1);
7
+ this.filters = [];
8
+ }
9
+ register(filter) {
10
+ this.filters = this.filters.concat(filter);
11
+ this.update();
12
+ }
13
+ unregister(filter) {
14
+ this.filters = this.filters.filter(item => item !== filter);
15
+ this.update();
16
+ }
17
+ filter(items) {
18
+ return this.refresh$.pipe(switchMap(identity), startWith(null), map(() => items.filter(item => this.check(item))));
19
+ }
20
+ check(item) {
21
+ return this.filters.every(filter => filter.filter(item));
22
+ }
23
+ update() {
24
+ this.refresh$.next(merge(...this.filters.map(({ refresh$ }) => refresh$)));
25
+ }
26
+ }
27
+ TuiTableFiltersDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
28
+ TuiTableFiltersDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TuiTableFiltersDirective, selector: "[tuiTableFilters]", ngImport: i0 });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersDirective, decorators: [{
30
+ type: Directive,
31
+ args: [{
32
+ selector: '[tuiTableFilters]',
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVycy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9kaXJlY3RpdmVzL3RhYmxlLWZpbHRlcnMvdGFibGUtZmlsdGVycy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQ0gsUUFBUSxFQUNSLEdBQUcsRUFDSCxLQUFLLEVBRUwsYUFBYSxFQUNiLFNBQVMsRUFDVCxTQUFTLEdBQ1osTUFBTSxNQUFNLENBQUM7O0FBT2QsTUFBTSxPQUFPLHdCQUF3QjtJQUhyQztRQUlxQixhQUFRLEdBQUcsSUFBSSxhQUFhLENBQXNCLENBQUMsQ0FBQyxDQUFDO1FBRTlELFlBQU8sR0FBcUMsRUFBRSxDQUFDO0tBMkIxRDtJQXpCRyxRQUFRLENBQUMsTUFBeUI7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUF5QjtRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW1CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3JCLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFDbkIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ3BELENBQUM7SUFDTixDQUFDO0lBRU8sS0FBSyxDQUFDLElBQU87UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sTUFBTTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7O3NIQTdCUSx3QkFBd0I7MEdBQXhCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBpZGVudGl0eSxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgT2JzZXJ2YWJsZSxcbiAgICBSZXBsYXlTdWJqZWN0LFxuICAgIHN0YXJ0V2l0aCxcbiAgICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVRhYmxlRmlsdGVyfSBmcm9tICcuL3RhYmxlLWZpbHRlcic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3R1aVRhYmxlRmlsdGVyc10nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUYWJsZUZpbHRlcnNEaXJlY3RpdmU8VD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaCQgPSBuZXcgUmVwbGF5U3ViamVjdDxPYnNlcnZhYmxlPHVua25vd24+PigxKTtcblxuICAgIHByaXZhdGUgZmlsdGVyczogUmVhZG9ubHlBcnJheTxUdWlUYWJsZUZpbHRlcjxUPj4gPSBbXTtcblxuICAgIHJlZ2lzdGVyKGZpbHRlcjogVHVpVGFibGVGaWx0ZXI8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzLmNvbmNhdChmaWx0ZXIpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXIoZmlsdGVyOiBUdWlUYWJsZUZpbHRlcjxUPik6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gZmlsdGVyKTtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBmaWx0ZXIoaXRlbXM6IHJlYWRvbmx5IFRbXSk6IE9ic2VydmFibGU8cmVhZG9ubHkgVFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2gkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoaWRlbnRpdHkpLFxuICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgbWFwKCgpID0+IGl0ZW1zLmZpbHRlcihpdGVtID0+IHRoaXMuY2hlY2soaXRlbSkpKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVycy5ldmVyeShmaWx0ZXIgPT4gZmlsdGVyLmZpbHRlcihpdGVtKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVmcmVzaCQubmV4dChtZXJnZSguLi50aGlzLmZpbHRlcnMubWFwKCh7cmVmcmVzaCR9KSA9PiByZWZyZXNoJCkpKTtcbiAgICB9XG59XG4iXX0=
@@ -6,16 +6,16 @@ import { TuiTableFiltersPipe } from './table-filters.pipe';
6
6
  import * as i0 from "@angular/core";
7
7
  export class TuiTableFiltersModule {
8
8
  }
9
- TuiTableFiltersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTableFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- TuiTableFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTableFiltersModule, declarations: [TuiTableFiltersDirective,
9
+ TuiTableFiltersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ TuiTableFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersModule, declarations: [TuiTableFiltersDirective,
11
11
  TuiTableFilterDirective,
12
12
  TuiTableFiltersPipe,
13
13
  TuiGenericFilterDirective], exports: [TuiTableFiltersDirective,
14
14
  TuiTableFilterDirective,
15
15
  TuiTableFiltersPipe,
16
16
  TuiGenericFilterDirective] });
17
- TuiTableFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTableFiltersModule });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTableFiltersModule, decorators: [{
17
+ TuiTableFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersModule });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  declarations: [
@@ -10,9 +10,9 @@ export class TuiTableFiltersPipe {
10
10
  return this.filters.filter(items);
11
11
  }
12
12
  }
13
- TuiTableFiltersPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTableFiltersPipe, deps: [{ token: TuiTableFiltersDirective }], target: i0.ɵɵFactoryTarget.Pipe });
14
- TuiTableFiltersPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTableFiltersPipe, name: "tuiTableFilters" });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiTableFiltersPipe, decorators: [{
13
+ TuiTableFiltersPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersPipe, deps: [{ token: TuiTableFiltersDirective }], target: i0.ɵɵFactoryTarget.Pipe });
14
+ TuiTableFiltersPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersPipe, name: "tuiTableFilters" });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiTableFiltersPipe, decorators: [{
16
16
  type: Pipe,
17
17
  args: [{
18
18
  name: `tuiTableFilters`,
@@ -0,0 +1,148 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, HostListener, NgModule } from '@angular/core';
3
+ import { TUI_TABLE_SHOW_HIDE_MESSAGE } from '@taiga-ui/addon-table/tokens';
4
+ import { tuiCreateToken, tuiProvideOptions } from '@taiga-ui/cdk';
5
+ import * as i1 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i2 from '@taiga-ui/core';
8
+ import { TuiSvgModule, TuiButtonModule } from '@taiga-ui/core';
9
+ import * as i3 from '@taiga-ui/kit';
10
+ import { TuiTilesModule } from '@taiga-ui/kit';
11
+ import * as i4 from 'rxjs';
12
+
13
+ const TUI_REORDER_DEFAULT_OPTIONS = {
14
+ icons: {
15
+ hide: `tuiIconEye`,
16
+ show: `tuiIconEyeOff`,
17
+ drag: `tuiIconDrag`,
18
+ },
19
+ };
20
+ const TUI_REORDER_OPTIONS = tuiCreateToken(TUI_REORDER_DEFAULT_OPTIONS);
21
+ function tuiReorderOptionsProvider(options) {
22
+ return tuiProvideOptions(TUI_REORDER_OPTIONS, options, TUI_REORDER_DEFAULT_OPTIONS);
23
+ }
24
+
25
+ class TuiReorderComponent {
26
+ set items(items) {
27
+ if (items.length !== this.unsortedItems.length ||
28
+ !items.every(item => this.unsortedItems.includes(item))) {
29
+ this.unsortedItems = items;
30
+ }
31
+ }
32
+ constructor(options, showHideText$) {
33
+ this.options = options;
34
+ this.showHideText$ = showHideText$;
35
+ this.dragging = false;
36
+ this.enabled = [];
37
+ this.itemsChange = new EventEmitter();
38
+ this.enabledChange = new EventEmitter();
39
+ this.order = new Map();
40
+ this.unsortedItems = [];
41
+ }
42
+ noop() { }
43
+ onDrag() {
44
+ this.dragging = true;
45
+ }
46
+ onDrop() {
47
+ if (!this.dragging) {
48
+ return;
49
+ }
50
+ this.dragging = false;
51
+ this.updateItems();
52
+ }
53
+ isEnabled(item) {
54
+ return this.enabled.includes(item);
55
+ }
56
+ getIcon(item) {
57
+ return this.isEnabled(item) ? this.options.icons.hide : this.options.icons.show;
58
+ }
59
+ toggle(toggled) {
60
+ this.enabled = this.isEnabled(toggled)
61
+ ? this.enabled.filter(item => item !== toggled)
62
+ : this.enabled.concat(toggled);
63
+ this.updateEnabled();
64
+ }
65
+ move(index, direction) {
66
+ var _a;
67
+ const oldIndex = (_a = this.order.get(index)) !== null && _a !== void 0 ? _a : index;
68
+ if ((!oldIndex && direction < 0) ||
69
+ (oldIndex === this.unsortedItems.length - 1 && direction > 0)) {
70
+ return;
71
+ }
72
+ const newIndex = oldIndex + direction;
73
+ const oldItem = Array.from(this.order.values()).findIndex(item => item === newIndex);
74
+ this.order.set(index, newIndex);
75
+ this.order.set(oldItem, oldIndex);
76
+ this.order = new Map(this.order);
77
+ this.updateItems();
78
+ }
79
+ getSortedItems() {
80
+ const items = new Array(this.unsortedItems.length);
81
+ this.unsortedItems.forEach((item, index) => {
82
+ var _a;
83
+ items[(_a = this.order.get(index)) !== null && _a !== void 0 ? _a : index] = item;
84
+ });
85
+ return items;
86
+ }
87
+ updateItems() {
88
+ this.itemsChange.emit(this.getSortedItems());
89
+ this.updateEnabled();
90
+ }
91
+ updateEnabled() {
92
+ const enabled = this.getSortedItems().filter(item => this.isEnabled(item));
93
+ this.enabled = enabled;
94
+ this.enabledChange.emit(enabled);
95
+ }
96
+ }
97
+ TuiReorderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiReorderComponent, deps: [{ token: TUI_REORDER_OPTIONS }, { token: TUI_TABLE_SHOW_HIDE_MESSAGE }], target: i0.ɵɵFactoryTarget.Component });
98
+ TuiReorderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TuiReorderComponent, selector: "tui-reorder", inputs: { items: "items", enabled: "enabled" }, outputs: { itemsChange: "itemsChange", enabledChange: "enabledChange" }, host: { listeners: { "focusout.stop": "noop()", "pointerdown.silent": "onDrag()", "document:pointerup.silent": "onDrop()" } }, ngImport: i0, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n <tui-tile\n *ngFor=\"let item of unsortedItems; let index = index\"\n tuiTileHandle\n [style.order]=\"order.get(index)\"\n >\n <div class=\"t-item\">\n <tui-svg\n class=\"t-icon\"\n [src]=\"options.icons.drag\"\n ></tui-svg>\n {{ item }}\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_hidden]=\"!isEnabled(item)\"\n [icon]=\"getIcon(item)\"\n [title]=\"showHideText$ | async\"\n (click)=\"toggle(item)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n ></button>\n </div>\n </tui-tile>\n</tui-tiles>\n", styles: [":host{display:block;font:var(--tui-font-text-s);padding:.5rem 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.t-wrapper{cursor:ns-resize;grid-auto-rows:2rem}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;height:2rem;align-items:center;padding:0 .75rem;background:var(--tui-base-01)}.t-item:hover{background:var(--tui-base-02)}.t-item:hover .t-button{opacity:1}.t-icon{margin-right:.5rem;color:var(--tui-base-05)}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-left:auto;opacity:0}.t-button_hidden,.t-button:focus{opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "component", type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i3.TuiTilesComponent, selector: "tui-tiles", inputs: ["debounce", "order"], outputs: ["orderChange"] }, { kind: "component", type: i3.TuiTileComponent, selector: "tui-tile", inputs: ["width", "height"] }, { kind: "directive", type: i3.TuiTileHandleDirective, selector: "[tuiTileHandle]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiReorderComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'tui-reorder', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n <tui-tile\n *ngFor=\"let item of unsortedItems; let index = index\"\n tuiTileHandle\n [style.order]=\"order.get(index)\"\n >\n <div class=\"t-item\">\n <tui-svg\n class=\"t-icon\"\n [src]=\"options.icons.drag\"\n ></tui-svg>\n {{ item }}\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_hidden]=\"!isEnabled(item)\"\n [icon]=\"getIcon(item)\"\n [title]=\"showHideText$ | async\"\n (click)=\"toggle(item)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n ></button>\n </div>\n </tui-tile>\n</tui-tiles>\n", styles: [":host{display:block;font:var(--tui-font-text-s);padding:.5rem 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.t-wrapper{cursor:ns-resize;grid-auto-rows:2rem}.t-item{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;height:2rem;align-items:center;padding:0 .75rem;background:var(--tui-base-01)}.t-item:hover{background:var(--tui-base-02)}.t-item:hover .t-button{opacity:1}.t-icon{margin-right:.5rem;color:var(--tui-base-05)}.t-button{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;margin-left:auto;opacity:0}.t-button_hidden,.t-button:focus{opacity:1}\n"] }]
102
+ }], ctorParameters: function () {
103
+ return [{ type: undefined, decorators: [{
104
+ type: Inject,
105
+ args: [TUI_REORDER_OPTIONS]
106
+ }] }, { type: i4.Observable, decorators: [{
107
+ type: Inject,
108
+ args: [TUI_TABLE_SHOW_HIDE_MESSAGE]
109
+ }] }];
110
+ }, propDecorators: { items: [{
111
+ type: Input
112
+ }], enabled: [{
113
+ type: Input
114
+ }], itemsChange: [{
115
+ type: Output
116
+ }], enabledChange: [{
117
+ type: Output
118
+ }], noop: [{
119
+ type: HostListener,
120
+ args: ['focusout.stop']
121
+ }], onDrag: [{
122
+ type: HostListener,
123
+ args: ['pointerdown.silent']
124
+ }], onDrop: [{
125
+ type: HostListener,
126
+ args: ['document:pointerup.silent']
127
+ }] } });
128
+
129
+ class TuiReorderModule {
130
+ }
131
+ TuiReorderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiReorderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
132
+ TuiReorderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TuiReorderModule, declarations: [TuiReorderComponent], imports: [CommonModule, TuiSvgModule, TuiButtonModule, TuiTilesModule], exports: [TuiReorderComponent] });
133
+ TuiReorderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiReorderModule, imports: [CommonModule, TuiSvgModule, TuiButtonModule, TuiTilesModule] });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TuiReorderModule, decorators: [{
135
+ type: NgModule,
136
+ args: [{
137
+ imports: [CommonModule, TuiSvgModule, TuiButtonModule, TuiTilesModule],
138
+ declarations: [TuiReorderComponent],
139
+ exports: [TuiReorderComponent],
140
+ }]
141
+ }] });
142
+
143
+ /**
144
+ * Generated bundle index. Do not edit.
145
+ */
146
+
147
+ export { TUI_REORDER_DEFAULT_OPTIONS, TUI_REORDER_OPTIONS, TuiReorderComponent, TuiReorderModule, tuiReorderOptionsProvider };
148
+ //# sourceMappingURL=taiga-ui-addon-table-components-reorder.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-addon-table-components-reorder.mjs","sources":["../../../projects/addon-table/components/reorder/reorder.options.ts","../../../projects/addon-table/components/reorder/reorder.component.ts","../../../projects/addon-table/components/reorder/reorder.template.html","../../../projects/addon-table/components/reorder/reorder.module.ts","../../../projects/addon-table/components/reorder/taiga-ui-addon-table-components-reorder.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\n\nexport interface TuiReorderOptions {\n readonly icons: {\n readonly drag: string;\n readonly hide: string;\n readonly show: string;\n };\n}\n\nexport const TUI_REORDER_DEFAULT_OPTIONS: TuiReorderOptions = {\n icons: {\n hide: `tuiIconEye`,\n show: `tuiIconEyeOff`,\n drag: `tuiIconDrag`,\n },\n};\n\nexport const TUI_REORDER_OPTIONS = tuiCreateToken(TUI_REORDER_DEFAULT_OPTIONS);\n\nexport function tuiReorderOptionsProvider(options: Partial<TuiReorderOptions>): Provider {\n return tuiProvideOptions(TUI_REORDER_OPTIONS, options, TUI_REORDER_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_TABLE_SHOW_HIDE_MESSAGE} from '@taiga-ui/addon-table/tokens';\nimport {Observable} from 'rxjs';\n\nimport {TUI_REORDER_OPTIONS, TuiReorderOptions} from './reorder.options';\n\n@Component({\n selector: 'tui-reorder',\n templateUrl: './reorder.template.html',\n styleUrls: ['./reorder.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiReorderComponent<T> {\n private dragging = false;\n\n @Input()\n set items(items: readonly T[]) {\n if (\n items.length !== this.unsortedItems.length ||\n !items.every(item => this.unsortedItems.includes(item))\n ) {\n this.unsortedItems = items;\n }\n }\n\n @Input()\n enabled: readonly T[] = [];\n\n @Output()\n readonly itemsChange = new EventEmitter<T[]>();\n\n @Output()\n readonly enabledChange = new EventEmitter<T[]>();\n\n order = new Map<number, number>();\n\n unsortedItems: readonly T[] = [];\n\n constructor(\n @Inject(TUI_REORDER_OPTIONS) readonly options: TuiReorderOptions,\n @Inject(TUI_TABLE_SHOW_HIDE_MESSAGE) readonly showHideText$: Observable<string>,\n ) {}\n\n @HostListener('focusout.stop')\n noop(): void {}\n\n @HostListener('pointerdown.silent')\n onDrag(): void {\n this.dragging = true;\n }\n\n @HostListener('document:pointerup.silent')\n onDrop(): void {\n if (!this.dragging) {\n return;\n }\n\n this.dragging = false;\n this.updateItems();\n }\n\n isEnabled(item: T): boolean {\n return this.enabled.includes(item);\n }\n\n getIcon(item: T): string {\n return this.isEnabled(item) ? this.options.icons.hide : this.options.icons.show;\n }\n\n toggle(toggled: T): void {\n this.enabled = this.isEnabled(toggled)\n ? this.enabled.filter(item => item !== toggled)\n : this.enabled.concat(toggled);\n\n this.updateEnabled();\n }\n\n move(index: number, direction: number): void {\n const oldIndex = this.order.get(index) ?? index;\n\n if (\n (!oldIndex && direction < 0) ||\n (oldIndex === this.unsortedItems.length - 1 && direction > 0)\n ) {\n return;\n }\n\n const newIndex = oldIndex + direction;\n const oldItem = Array.from(this.order.values()).findIndex(\n item => item === newIndex,\n );\n\n this.order.set(index, newIndex);\n this.order.set(oldItem, oldIndex);\n this.order = new Map(this.order);\n\n this.updateItems();\n }\n\n private getSortedItems(): T[] {\n const items = new Array(this.unsortedItems.length);\n\n this.unsortedItems.forEach((item, index) => {\n items[this.order.get(index) ?? index] = item;\n });\n\n return items;\n }\n\n private updateItems(): void {\n this.itemsChange.emit(this.getSortedItems());\n this.updateEnabled();\n }\n\n private updateEnabled(): void {\n const enabled = this.getSortedItems().filter(item => this.isEnabled(item));\n\n this.enabled = enabled;\n this.enabledChange.emit(enabled);\n }\n}\n","<tui-tiles\n class=\"t-wrapper\"\n [(order)]=\"order\"\n>\n <tui-tile\n *ngFor=\"let item of unsortedItems; let index = index\"\n tuiTileHandle\n [style.order]=\"order.get(index)\"\n >\n <div class=\"t-item\">\n <tui-svg\n class=\"t-icon\"\n [src]=\"options.icons.drag\"\n ></tui-svg>\n {{ item }}\n <button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_hidden]=\"!isEnabled(item)\"\n [icon]=\"getIcon(item)\"\n [title]=\"showHideText$ | async\"\n (click)=\"toggle(item)\"\n (keydown.arrowDown.prevent)=\"move(index, 1)\"\n (keydown.arrowUp.prevent)=\"move(index, -1)\"\n ></button>\n </div>\n </tui-tile>\n</tui-tiles>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule, TuiSvgModule} from '@taiga-ui/core';\nimport {TuiTilesModule} from '@taiga-ui/kit';\n\nimport {TuiReorderComponent} from './reorder.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiButtonModule, TuiTilesModule],\n declarations: [TuiReorderComponent],\n exports: [TuiReorderComponent],\n})\nexport class TuiReorderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}