ngwr 5.0.3 → 6.0.0

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 (122) hide show
  1. package/alert/public-api.d.ts +0 -1
  2. package/avatar/public-api.d.ts +0 -1
  3. package/button/public-api.d.ts +0 -1
  4. package/cdk/base.directive.d.ts +6 -1
  5. package/checkbox/public-api.d.ts +0 -1
  6. package/dialog/dialog.module.d.ts +1 -6
  7. package/divider/public-api.d.ts +0 -1
  8. package/dropdown/dropdown-menu-item.component.d.ts +12 -0
  9. package/dropdown/dropdown-menu.component.d.ts +14 -0
  10. package/dropdown/dropdown.directive.d.ts +29 -0
  11. package/dropdown/dropdown.types.d.ts +9 -0
  12. package/dropdown/index.d.ts +5 -0
  13. package/dropdown/public-api.d.ts +10 -0
  14. package/dropdown/styles/_index.scss +91 -0
  15. package/dropdown/styles/vars.scss +18 -0
  16. package/fesm2022/ngwr-alert.mjs +7 -27
  17. package/fesm2022/ngwr-alert.mjs.map +1 -1
  18. package/fesm2022/ngwr-avatar.mjs +7 -27
  19. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  20. package/fesm2022/ngwr-button.mjs +10 -31
  21. package/fesm2022/ngwr-button.mjs.map +1 -1
  22. package/fesm2022/ngwr-cdk.mjs +9 -4
  23. package/fesm2022/ngwr-cdk.mjs.map +1 -1
  24. package/fesm2022/ngwr-checkbox.mjs +5 -24
  25. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  26. package/fesm2022/ngwr-dialog.mjs +130 -148
  27. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  28. package/fesm2022/ngwr-divider.mjs +5 -19
  29. package/fesm2022/ngwr-divider.mjs.map +1 -1
  30. package/fesm2022/ngwr-dropdown.mjs +315 -0
  31. package/fesm2022/ngwr-dropdown.mjs.map +1 -0
  32. package/fesm2022/ngwr-form.mjs +8 -29
  33. package/fesm2022/ngwr-form.mjs.map +1 -1
  34. package/fesm2022/ngwr-icon.mjs +11 -31
  35. package/fesm2022/ngwr-icon.mjs.map +1 -1
  36. package/fesm2022/ngwr-input.mjs +8 -28
  37. package/fesm2022/ngwr-input.mjs.map +1 -1
  38. package/fesm2022/ngwr-pagination.mjs +125 -0
  39. package/fesm2022/ngwr-pagination.mjs.map +1 -0
  40. package/fesm2022/ngwr-pipes.mjs +5 -25
  41. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  42. package/fesm2022/ngwr-progress.mjs +6 -25
  43. package/fesm2022/ngwr-progress.mjs.map +1 -1
  44. package/fesm2022/ngwr-qr.mjs +6 -25
  45. package/fesm2022/ngwr-qr.mjs.map +1 -1
  46. package/fesm2022/ngwr-select.mjs +405 -0
  47. package/fesm2022/ngwr-select.mjs.map +1 -0
  48. package/fesm2022/ngwr-skeleton.mjs +5 -19
  49. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  50. package/fesm2022/ngwr-spinner.mjs +16 -28
  51. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  52. package/fesm2022/ngwr-table.mjs +258 -0
  53. package/fesm2022/ngwr-table.mjs.map +1 -0
  54. package/fesm2022/ngwr-tag.mjs +7 -21
  55. package/fesm2022/ngwr-tag.mjs.map +1 -1
  56. package/fesm2022/ngwr-textarea.mjs +6 -25
  57. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  58. package/form/public-api.d.ts +0 -1
  59. package/icon/public-api.d.ts +0 -1
  60. package/input/public-api.d.ts +0 -1
  61. package/package.json +33 -5
  62. package/pagination/index.d.ts +5 -0
  63. package/pagination/pagination.component.d.ts +23 -0
  64. package/pagination/pagination.types.d.ts +7 -0
  65. package/pagination/public-api.d.ts +8 -0
  66. package/pagination/styles/_index.scss +60 -0
  67. package/pagination/styles/vars.scss +14 -0
  68. package/pipes/public-api.d.ts +0 -1
  69. package/progress/public-api.d.ts +0 -1
  70. package/qr/public-api.d.ts +0 -1
  71. package/select/index.d.ts +5 -0
  72. package/select/public-api.d.ts +10 -0
  73. package/select/select-option-group.component.d.ts +19 -0
  74. package/select/select-option.component.d.ts +22 -0
  75. package/select/select.component.d.ts +63 -0
  76. package/select/select.types.d.ts +17 -0
  77. package/select/styles/_index.scss +237 -0
  78. package/select/styles/vars.scss +32 -0
  79. package/skeleton/index.d.ts +0 -1
  80. package/spinner/index.d.ts +0 -1
  81. package/spinner/spinner.component.d.ts +4 -2
  82. package/spinner/spinner.types.d.ts +7 -0
  83. package/spinner/styles/_index.scss +10 -3
  84. package/styles.scss +4 -0
  85. package/table/index.d.ts +5 -0
  86. package/table/public-api.d.ts +11 -0
  87. package/table/styles/_index.scss +4 -0
  88. package/table/styles/table-filter.scss +202 -0
  89. package/table/styles/table-sort.scss +47 -0
  90. package/table/styles/table.scss +232 -0
  91. package/table/styles/vars.scss +21 -0
  92. package/table/table-cell/index.d.ts +7 -0
  93. package/table/table-cell/table-cell.directive.d.ts +8 -0
  94. package/table/table-filter/index.d.ts +7 -0
  95. package/table/table-filter/table-filter.component.d.ts +18 -0
  96. package/table/table-sort/index.d.ts +7 -0
  97. package/table/table-sort/table-sort.component.d.ts +8 -0
  98. package/table/table.component.d.ts +33 -0
  99. package/table/types/index.d.ts +6 -0
  100. package/table/types/table-cell-context.d.ts +6 -0
  101. package/table/types/table-columns.d.ts +7 -0
  102. package/table/types/table-filter-emit.d.ts +5 -0
  103. package/table/types/table-filter-item.d.ts +6 -0
  104. package/table/types/table-order-item.d.ts +5 -0
  105. package/table/types/table-order.enum.d.ts +5 -0
  106. package/tag/public-api.d.ts +0 -1
  107. package/textarea/public-api.d.ts +0 -1
  108. package/alert/alert.module.d.ts +0 -7
  109. package/avatar/avatar.module.d.ts +0 -7
  110. package/button/button.module.d.ts +0 -8
  111. package/checkbox/checkbox.module.d.ts +0 -7
  112. package/divider/divider.module.d.ts +0 -7
  113. package/form/form.module.d.ts +0 -8
  114. package/icon/icon.module.d.ts +0 -7
  115. package/input/input.module.d.ts +0 -7
  116. package/pipes/pipes.module.d.ts +0 -7
  117. package/progress/progress.module.d.ts +0 -7
  118. package/qr/qr.module.d.ts +0 -7
  119. package/skeleton/skeleton.module.d.ts +0 -7
  120. package/spinner/spinner.module.d.ts +0 -7
  121. package/tag/tag.module.d.ts +0 -7
  122. package/textarea/textarea.module.d.ts +0 -7
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ *
4
+ * Use of this source code is governed by an MIT-style license that can be
5
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
+ */
7
+ export type WrSpinnerSize = 'small' | 'large';
@@ -12,9 +12,6 @@
12
12
 
13
13
  contain: strict;
14
14
 
15
- width: 1em;
16
- height: 1em;
17
-
18
15
  * {
19
16
  line-height: 1;
20
17
  }
@@ -31,4 +28,14 @@
31
28
  animation: dash 1.5s ease-in-out infinite;
32
29
  }
33
30
  }
31
+
32
+ &--small {
33
+ width: 1em;
34
+ height: 1em;
35
+ }
36
+
37
+ &--large {
38
+ width: 2em;
39
+ height: 2em;
40
+ }
34
41
  }
package/styles.scss CHANGED
@@ -21,4 +21,8 @@
21
21
  @forward './spinner/styles';
22
22
  @forward './tag/styles';
23
23
  @forward './textarea/styles';
24
+ @forward './select/styles';
25
+ @forward './dropdown/styles';
26
+ @forward './pagination/styles';
27
+ @forward './table/styles';
24
28
  //@forward './tooltip';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="ngwr/table" />
5
+ export * from './public-api';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ *
4
+ * Use of this source code is governed by an MIT-style license that can be
5
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
+ */
7
+ export * from './types';
8
+ export * from './table.component';
9
+ export * from './table-cell';
10
+ export * from './table-filter';
11
+ export * from './table-sort';
@@ -0,0 +1,4 @@
1
+ @forward "./vars";
2
+ @forward "./table";
3
+ @forward "./table-filter";
4
+ @forward "./table-sort";
@@ -0,0 +1,202 @@
1
+ @forward "./vars";
2
+
3
+ .wr-table-filter {
4
+ &--active {
5
+ --wr-table-filter-color: var(--wr-color-medium);
6
+ --wr-table-filter-bg: rgba(var(--wr-color-light-rgb), 0.5);
7
+ }
8
+
9
+ &-icon {
10
+ display: inline-flex;
11
+ flex-direction: column;
12
+ align-items: center;
13
+ justify-content: center;
14
+
15
+ width: calc(var(--wr-table-filter-size) + var(--wr-table-filter-padding));
16
+ height: calc(var(--wr-table-filter-size) + var(--wr-table-filter-padding));
17
+ padding: var(--wr-table-filter-padding);
18
+
19
+ background: var(--wr-table-filter-bg);
20
+ border-radius: 0.25rem;
21
+
22
+ transition: var(--wr-transition-base);
23
+
24
+ &:hover {
25
+ --wr-table-filter-color: var(--wr-color-primary);
26
+ --wr-table-filter-bg: rgba(var(--wr-color-primary-rgb), 0.125);
27
+
28
+ cursor: pointer;
29
+ }
30
+
31
+ &__icon {
32
+ --wr-icon-size: 70%;
33
+
34
+ color: var(--wr-table-filter-color);
35
+ transition: var(--wr-transition-base);
36
+ }
37
+ }
38
+
39
+ &-dropdown {
40
+ display: flex;
41
+ flex-direction: column;
42
+ align-items: stretch;
43
+
44
+ background-color: var(--wr-color-white);
45
+ border-radius: calc(var(--wr-border-radius-base) / 2);
46
+ box-shadow: var(--wr-shadow-md);
47
+
48
+ overflow: hidden;
49
+
50
+ &__input {
51
+ display: block;
52
+ width: 100%;
53
+
54
+ color: var(--wr-color-dark);
55
+ background: var(--wr-color-white);
56
+ border-bottom: 1px solid var(--wr-color-light-lighter);
57
+
58
+ font-size: 0.875rem;
59
+ line-height: 1.25rem;
60
+
61
+ padding: 0.375rem 0.5rem;
62
+
63
+ &::placeholder {
64
+ color: var(--wr-color-medium);
65
+ font-weight: 400;
66
+ font-style: italic;
67
+ }
68
+ }
69
+
70
+ &__reset {
71
+ display: flex;
72
+ flex-direction: column;
73
+ align-items: center;
74
+ justify-content: center;
75
+
76
+ color: var(--wr-color-medium);
77
+
78
+ font-size: 0.75rem;
79
+ font-weight: 500;
80
+ line-height: 0.875rem;
81
+
82
+ border-top: 1px solid var(--wr-color-light-lighter);
83
+ padding: calc(var(--wr-grid-gutter) / 3) var(--wr-table-filter-padding);
84
+
85
+ transition: var(--wr-transition-base);
86
+
87
+ &:hover {
88
+ color: var(--wr-color-primary);
89
+ cursor: pointer;
90
+ }
91
+ }
92
+
93
+ &__body {
94
+ display: grid;
95
+ grid-template-columns: 1fr;
96
+ align-content: flex-start;
97
+
98
+ padding-left: var(--wr-table-filter-dd-padding);
99
+ padding-right: var(--wr-table-filter-dd-padding);
100
+
101
+ max-height: calc(var(--wr-table-filter-dd-max-items) * var(--wr-table-filter-dd-item-height));
102
+ overflow: auto;
103
+ }
104
+
105
+ &-empty {
106
+ display: flex;
107
+ flex-direction: column;
108
+ align-items: center;
109
+ justify-content: center;
110
+
111
+ height: 10rem;
112
+ width: 100%;
113
+
114
+ &__title {
115
+ color: var(--wr-color-medium);
116
+ font-size: 0.75rem;
117
+ font-weight: 500;
118
+ line-height: 0.875rem;
119
+ }
120
+ }
121
+
122
+ &-item {
123
+ // Checkmark variables
124
+ --wr-table-filter-item-color: var(--wr-color-dark);
125
+ --wr-table-filter-item-checkmark-color: transparent;
126
+ --wr-table-filter-item-checkmark-bg: transparent;
127
+ --wr-table-filter-item-checkmark-border-color: var(--wr-color-light-lighter);
128
+
129
+ display: flex;
130
+ align-items: center;
131
+ justify-content: flex-start;
132
+
133
+ gap: calc(var(--wr-grid-gutter) / 4);
134
+
135
+ width: 100%;
136
+
137
+ border-radius: calc(var(--wr-border-radius-base) / 2);
138
+
139
+ padding-top: var(--wr-table-filter-dd-padding);
140
+ padding-bottom: var(--wr-table-filter-dd-padding);
141
+
142
+ cursor: pointer;
143
+ user-select: none;
144
+ transition: var(--wr-transition-base);
145
+
146
+ &:hover {
147
+ --wr-table-filter-item-color: var(--wr-color-primary);
148
+ --wr-table-filter-item-checkmark-bg: rgba(var(--wr-color-primary-rgb), 0.25);
149
+ --wr-table-filter-item-checkmark-border-color: rgba(var(--wr-color-primary-rgb), 0.125);
150
+ }
151
+
152
+ &--selected {
153
+ --wr-table-filter-item-checkmark-color: var(--wr-color-white);
154
+ --wr-table-filter-item-checkmark-bg: var(--wr-color-primary);
155
+ --wr-table-filter-item-checkmark-border-color: var(--wr-color-primary);
156
+
157
+ &:hover {
158
+ --wr-table-filter-item-checkmark-bg: rgba(var(--wr-color-primary-rgb), 0.75);
159
+ }
160
+ }
161
+
162
+ &-check {
163
+ display: flex;
164
+ flex-direction: column;
165
+ align-items: center;
166
+ justify-content: center;
167
+
168
+ width: 1rem;
169
+ height: 1rem;
170
+
171
+ background: var(--wr-table-filter-item-checkmark-bg);
172
+ border: 1px solid var(--wr-table-filter-item-checkmark-border-color);
173
+ border-radius: calc(var(--wr-border-radius-base) / 3);
174
+
175
+ transition: var(--wr-transition-base);
176
+
177
+ &__icon {
178
+ color: var(--wr-table-filter-item-checkmark-color);
179
+ height: 0.5rem;
180
+ width: 0.5rem;
181
+ transition: var(--wr-transition-base);
182
+ }
183
+ }
184
+
185
+ &__title {
186
+ display: block;
187
+ flex: 1;
188
+
189
+ color: var(--wr-table-filter-item-color);
190
+ font-size: 0.75rem;
191
+ font-weight: 400;
192
+ line-height: 0.875rem;
193
+
194
+ text-overflow: ellipsis;
195
+ overflow: hidden;
196
+ white-space: nowrap;
197
+
198
+ transition: var(--wr-transition-base);
199
+ }
200
+ }
201
+ }
202
+ }
@@ -0,0 +1,47 @@
1
+ @forward "./vars";
2
+
3
+ .wr-table-sort {
4
+ display: inline-flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ justify-content: center;
8
+
9
+ width: calc(var(--wr-table-sort-size) + var(--wr-table-sort-padding));
10
+ height: calc(var(--wr-table-sort-size) + var(--wr-table-sort-padding));
11
+ padding: var(--wr-table-sort-padding);
12
+
13
+ background: var(--wr-table-sort-bg);
14
+ border-radius: 0.25rem;
15
+
16
+ transition: var(--wr-transition-base);
17
+
18
+ &:hover {
19
+ --wr-table-sort-color: var(--wr-color-primary);
20
+ --wr-table-sort-bg: rgba(var(--wr-color-primary-rgb), 0.125);
21
+
22
+ cursor: pointer;
23
+ }
24
+
25
+ &--asc,
26
+ &--desc {
27
+ --wr-table-sort-color: var(--wr-color-medium);
28
+ --wr-table-sort-bg: rgba(var(--wr-color-light-rgb), 0.5);
29
+ }
30
+
31
+ &--asc {
32
+ --wr-table-sort-rotate: 0deg;
33
+ }
34
+
35
+ &--desc {
36
+ --wr-table-sort-rotate: 180deg;
37
+ }
38
+
39
+ &__icon {
40
+ --wr-icon-size: var(--wr-table-sort-size);
41
+
42
+ color: var(--wr-table-sort-color);
43
+
44
+ transition: var(--wr-transition-base);
45
+ transform: rotate(var(--wr-table-sort-rotate));
46
+ }
47
+ }
@@ -0,0 +1,232 @@
1
+ @forward "./vars";
2
+
3
+ .wr-table {
4
+ --ant-pagination-item-size: 1.5rem;
5
+ --ant-pagination-border-radius: calc(var(--wr-input-border-radius) * 0.75);
6
+
7
+ display: flex;
8
+ flex-direction: column;
9
+ width: 100%;
10
+
11
+ background: var(--wr-color-white);
12
+ border: 1px solid var(--wr-color-light-lighter);
13
+ border-radius: var(--wr-border-radius-base);
14
+
15
+ &__spinner {
16
+ color: var(--wr-color-primary);
17
+ width: 0.875rem;
18
+ height: 0.875rem;
19
+ margin-right: auto;
20
+ }
21
+
22
+ &-top,
23
+ &-bot {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: flex-end;
27
+ gap: calc(var(--wr-grid-gutter) / 2);
28
+ padding: var(--wr-table-padding);
29
+ }
30
+
31
+ &-top {
32
+ border-bottom: 1px solid var(--wr-color-light-lighter);
33
+ }
34
+
35
+ &-bot {
36
+ border-top: 1px solid var(--wr-color-light-lighter);
37
+ }
38
+
39
+ &-hint {
40
+ --wr-table-hint-padding: 0.125rem;
41
+ --wr-table-hint-color: var(--wr-color-medium);
42
+
43
+ display: flex;
44
+ flex-direction: column;
45
+ align-items: center;
46
+ justify-content: center;
47
+
48
+ width: var(--wr-pagination-item-size);
49
+ height: var(--wr-pagination-item-size);
50
+
51
+ padding: var(--wr-table-hint-padding);
52
+
53
+ border-radius: var(--wr-btn-border-radius);
54
+ border: 1px solid var(--wr-color-light-lighter);
55
+
56
+ &:hover {
57
+ --wr-table-help-color: var(--wr-color-secondary);
58
+ cursor: pointer;
59
+ }
60
+
61
+ &__icon {
62
+ --wr-icon-size: calc(var(--wr-pagination-font-size) *1.2);
63
+
64
+ color: var(--wr-table-hint-color);
65
+ transition: var(--wr-transition-base);
66
+ }
67
+
68
+ &-dropdown {
69
+ display: flex;
70
+ flex-direction: column;
71
+ align-items: stretch;
72
+
73
+ gap: calc(var(--wr-grid-gutter) / 2);
74
+ padding: var(--wr-table-padding);
75
+
76
+ &-item {
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: flex-start;
80
+ gap: 0.5rem;
81
+
82
+ &__title {
83
+ color: var(--wr-color-dark);
84
+ font-size: 0.875rem;
85
+ font-weight: 500;
86
+ line-height: 1rem;
87
+ }
88
+
89
+ &__key {
90
+ font-family: var(--wr-font-family-mono), monospace;
91
+ margin: 0 .2em;
92
+ padding: .15em .4em .1em;
93
+ font-size: 90%;
94
+ background: #9696960f;
95
+ border: 1px solid rgba(100, 100, 100, .2);
96
+ border-bottom-width: 2px;
97
+ border-radius: 3px;
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ &__pagination {
104
+ --ant-pagination-item-size: 1.5rem;
105
+ --ant-pagination-border-radius: calc(var(--wr-input-border-radius) * 0.75);
106
+ }
107
+
108
+ &-head,
109
+ &-body {
110
+ padding: var(--wr-table-padding);
111
+
112
+ &-cell {
113
+ width: calc(100% / var(--wr-table-columns));
114
+
115
+ &--actions {
116
+ width: 3rem;
117
+ }
118
+ }
119
+
120
+ &__loader {
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ position: absolute;
125
+ top: 0;
126
+ left: 0;
127
+ bottom: 0;
128
+ right: 0;
129
+ background: rgba(255,255,255,.6);
130
+ width: auto;
131
+ height: auto;
132
+ color: var(--wr-color-primary-light);
133
+ }
134
+ }
135
+
136
+ &-head {
137
+ display: flex;
138
+ flex-direction: column;
139
+ align-items: center;
140
+ justify-content: center;
141
+
142
+ position: sticky;
143
+ z-index: 2;
144
+ top: 0;
145
+ left: 0;
146
+
147
+ &__wrapper {
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: flex-start;
151
+
152
+ width: 100%;
153
+
154
+ background: #f3f5f8;
155
+ border-radius: calc(var(--wr-border-radius-base) / 2);
156
+ }
157
+
158
+ &-cell {
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: flex-end;
162
+ padding: 0.5rem 0.5rem;
163
+
164
+ &__title {
165
+ color: var(--wr-color-medium);
166
+ font-size: 0.75rem;
167
+ font-weight: 600;
168
+ line-height: 1rem;
169
+
170
+ margin: 0 auto 0 0;
171
+ }
172
+ }
173
+ }
174
+
175
+ &-body {
176
+ display: flex;
177
+ flex-direction: column;
178
+
179
+ padding-top: 0;
180
+
181
+ position: relative;
182
+
183
+ &__row {
184
+ display: flex;
185
+ align-items: center;
186
+ border-bottom: 1px solid var(--wr-color-light-lighter);
187
+
188
+ &:last-child {
189
+ border-bottom: none;
190
+ }
191
+ }
192
+
193
+ &-cell {
194
+ color: var(--wr-color-dark);
195
+ font-size: 0.75rem;
196
+ font-weight: 400;
197
+ line-height: 1rem;
198
+
199
+ margin: 0;
200
+ padding: 0.5rem 0.5rem;
201
+ }
202
+ }
203
+
204
+ &-actions {
205
+ --wr-table-dots-color: var(--wr-color-medium);
206
+
207
+ display: flex;
208
+ flex-direction: column;
209
+ align-items: center;
210
+ justify-content: center;
211
+
212
+ opacity: var(--wr-table-dots-opacity);
213
+
214
+ width: 1.375rem;
215
+ height: 1.375rem;
216
+
217
+ border-radius: calc(var(--wr-border-radius-base) / 2);
218
+ border: 1px solid var(--wr-color-light-lighter);
219
+
220
+ transition: var(--wr-transition-base);
221
+
222
+ &__icon {
223
+ --wr-icon-size: 1rem;
224
+ color: var(--wr-table-dots-color);
225
+ transition: var(--wr-transition-base);
226
+ }
227
+
228
+ &:hover {
229
+ --wr-table-dots-color: var(--wr-color-secondary);
230
+ }
231
+ }
232
+ }
@@ -0,0 +1,21 @@
1
+ :root {
2
+ --wr-table-columns: 1;
3
+ --wr-table-padding: calc(var(--wr-grid-gutter) / 3);
4
+
5
+ // Icon variables
6
+ --wr-table-filter-size: 1.25rem;
7
+ --wr-table-filter-padding: 0.125rem;
8
+ --wr-table-filter-color: var(--wr-color-light);
9
+ --wr-table-filter-bg: transparent;
10
+
11
+ // Dropdown variables
12
+ --wr-table-filter-dd-padding: 0.375rem;
13
+ --wr-table-filter-dd-max-items: 10;
14
+ --wr-table-filter-dd-item-height: 2rem;
15
+
16
+ --wr-table-sort-size: 1.25rem;
17
+ --wr-table-sort-padding: 0.125rem;
18
+ --wr-table-sort-rotate: -90deg;
19
+ --wr-table-sort-color: var(--wr-color-light);
20
+ --wr-table-sort-bg: transparent;
21
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ *
4
+ * Use of this source code is governed by an MIT-style license that can be
5
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
+ */
7
+ export * from './table-cell.directive';
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class WrTableCellDirective {
4
+ columnKey: import("@angular/core").InputSignal<string>;
5
+ template: TemplateRef<any>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrTableCellDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WrTableCellDirective, "[wrTableCell]", never, { "columnKey": { "alias": "wrTableCell"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ *
4
+ * Use of this source code is governed by an MIT-style license that can be
5
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
+ */
7
+ export * from './table-filter.component';
@@ -0,0 +1,18 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { WrAbstractBase } from 'ngwr/cdk';
4
+ import { WrTableFilterItem } from '../types';
5
+ import * as i0 from "@angular/core";
6
+ export declare class WrTableFilterComponent extends WrAbstractBase implements OnInit {
7
+ items: import("@angular/core").InputSignal<WrTableFilterItem<any>[]>;
8
+ readonly selectedItems: EventEmitter<WrTableFilterItem<any>[]>;
9
+ protected readonly search: FormControl<string | null>;
10
+ protected readonly filteredItems: import("@angular/core").WritableSignal<WrTableFilterItem<any>[]>;
11
+ protected get length(): number;
12
+ ngOnInit(): void;
13
+ onItemSelect(item: WrTableFilterItem): void;
14
+ onResetClick(): void;
15
+ getSelectedItems(): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrTableFilterComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<WrTableFilterComponent, "wr-table-filter", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; }, { "selectedItems": "selectedItems"; }, never, never, true, never>;
18
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ *
4
+ * Use of this source code is governed by an MIT-style license that can be
5
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
6
+ */
7
+ export * from './table-sort.component';
@@ -0,0 +1,8 @@
1
+ import { WrTableOrder } from '../types';
2
+ import * as i0 from "@angular/core";
3
+ export declare class WrTableSortComponent {
4
+ order: import("@angular/core").InputSignal<WrTableOrder | undefined>;
5
+ protected readonly TableOrder: typeof WrTableOrder;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrTableSortComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<WrTableSortComponent, "wr-table-sort", never, { "order": { "alias": "order"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
+ }
@@ -0,0 +1,33 @@
1
+ import { EventEmitter, TemplateRef, AfterContentInit } from '@angular/core';
2
+ import { SafeAny } from 'ngwr/cdk/types';
3
+ import { WrTableCellContext, WrTableColumns, WrTableFilterEmit, WrTableFilterItem, WrTableOrder, WrTableOrderItem } from './types';
4
+ import * as i0 from "@angular/core";
5
+ export declare class WrTableComponent implements AfterContentInit {
6
+ columns: import("@angular/core").InputSignal<WrTableColumns>;
7
+ items: import("@angular/core").InputSignal<any[] | undefined>;
8
+ loading: import("@angular/core").InputSignal<boolean | undefined>;
9
+ pagination: import("@angular/core").InputSignal<boolean>;
10
+ total: import("@angular/core").InputSignalWithTransform<number, number>;
11
+ currentPage: import("@angular/core").ModelSignal<number>;
12
+ pageSize: import("@angular/core").ModelSignal<number>;
13
+ pageSizeOptions: import("@angular/core").InputSignal<number[]>;
14
+ ordering: import("@angular/core").ModelSignal<WrTableOrderItem[] | undefined>;
15
+ readonly filterChange: EventEmitter<WrTableFilterEmit>;
16
+ get styles(): Record<string, string | number>;
17
+ onKeypress(evt: KeyboardEvent): void;
18
+ private customCells;
19
+ private cellTemplates;
20
+ ngAfterContentInit(): void;
21
+ protected getCellTemplate(columnKey: string): TemplateRef<WrTableCellContext> | null;
22
+ protected hasCellTemplate(columnKey: string): boolean;
23
+ /**
24
+ * We need to pass null to save original order for keyvalue pipe
25
+ * https://angular.dev/api/common/KeyValuePipe?tab=description
26
+ */
27
+ protected readonly keepOrder: () => SafeAny;
28
+ protected getOrder(key: string): WrTableOrder;
29
+ protected onOrderChange(key: string): void;
30
+ protected onFilterChange(key: string, items: WrTableFilterItem[]): void;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrTableComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<WrTableComponent, "wr-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "ordering": { "alias": "ordering"; "required": false; "isSignal": true; }; }, { "currentPage": "currentPageChange"; "pageSize": "pageSizeChange"; "ordering": "orderingChange"; "filterChange": "filterChange"; }, ["customCells"], never, true, never>;
33
+ }
@@ -0,0 +1,6 @@
1
+ export * from './table-columns';
2
+ export * from './table-filter-emit';
3
+ export * from './table-filter-item';
4
+ export * from './table-order.enum';
5
+ export * from './table-order-item';
6
+ export * from './table-cell-context';
@@ -0,0 +1,6 @@
1
+ import { WrTableColumn } from './table-columns';
2
+ export interface WrTableCellContext {
3
+ $implicit: unknown;
4
+ item: Record<string, unknown>;
5
+ column: WrTableColumn;
6
+ }