@energycap/components 0.45.2-multi-select-component.20260304-2004 → 0.45.2-multi-select-component.20260305-0828

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 (61) hide show
  1. package/README.md +188 -188
  2. package/fesm2022/energycap-components.mjs +150 -111
  3. package/fesm2022/energycap-components.mjs.map +1 -1
  4. package/package.json +1 -1
  5. package/schematics/collection.json +4 -4
  6. package/src/assets/images/favicon-ech.svg +14 -14
  7. package/src/assets/images/favicon-esa.svg +6 -6
  8. package/src/assets/images/favicon-eum.svg +13 -13
  9. package/src/assets/images/favicon-whitelabel.svg +4 -4
  10. package/src/assets/images/favicon.svg +12 -12
  11. package/src/assets/images/icon-carbonhub.svg +10 -10
  12. package/src/assets/images/icon-eum.svg +5 -5
  13. package/src/assets/images/icon-ucp.svg +12 -12
  14. package/src/assets/images/icon-wattics.svg +5 -5
  15. package/src/assets/images/icon.svg +11 -11
  16. package/src/assets/images/logo.svg +10 -10
  17. package/src/assets/images/splash-electric.svg +3 -3
  18. package/src/assets/images/splash-interval.svg +3 -3
  19. package/src/assets/images/splash-seedling.svg +11 -11
  20. package/src/assets/images/splash-water.svg +3 -3
  21. package/src/assets/locales/en_US.json +65 -62
  22. package/src/assets/scripts/unsupported-browser.js +17 -17
  23. package/src/styles/_base.scss +38 -38
  24. package/src/styles/_colors.scss +96 -96
  25. package/src/styles/_core.scss +3 -3
  26. package/src/styles/_functions.scss +114 -114
  27. package/src/styles/_global-variables.scss +230 -230
  28. package/src/styles/_icons.scss +23 -23
  29. package/src/styles/bootstrap/_grid.scss +33 -33
  30. package/src/styles/bootstrap/_reboot.scss +322 -322
  31. package/src/styles/components/_badge.scss +14 -14
  32. package/src/styles/components/_card.scss +21 -21
  33. package/src/styles/components/_link-icons.scss +37 -37
  34. package/src/styles/components/_splash.scss +188 -188
  35. package/src/styles/components/_tag.scss +22 -22
  36. package/src/styles/components/_unsupported-browsers.scss +23 -23
  37. package/src/styles/email/_email-base.scss +227 -227
  38. package/src/styles/email/email.scss +42 -42
  39. package/src/styles/index.scss +29 -29
  40. package/src/styles/mixins/_animations.scss +17 -17
  41. package/src/styles/mixins/_button-base.scss +206 -206
  42. package/src/styles/mixins/_card-base.scss +40 -40
  43. package/src/styles/mixins/_common.scss +51 -51
  44. package/src/styles/mixins/_dialog-base.scss +95 -95
  45. package/src/styles/mixins/_form-control-base.scss +674 -674
  46. package/src/styles/mixins/_login.scss +74 -74
  47. package/src/styles/mixins/_menu-base.scss +153 -153
  48. package/src/styles/mixins/_overlay-base.scss +32 -32
  49. package/src/styles/mixins/_resizable-base.scss +57 -57
  50. package/src/styles/mixins/_spinner-base.scss +34 -34
  51. package/src/styles/mixins/_table-base.scss +297 -297
  52. package/src/styles/mixins/_tabs-base.scss +146 -146
  53. package/src/styles/mixins/_tags-base.scss +125 -125
  54. package/src/styles/mixins/_text.scss +89 -89
  55. package/src/styles/mixins.scss +14 -14
  56. package/src/styles/utilities/_borders.scss +29 -29
  57. package/src/styles/utilities/_common.scss +49 -49
  58. package/src/styles/utilities/_layout.scss +115 -115
  59. package/src/styles/utilities/_spacing.scss +64 -64
  60. package/src/styles/utilities/_text.scss +139 -139
  61. package/types/energycap-components.d.ts +14 -3
@@ -1,65 +1,65 @@
1
- // TODO: implement after removing bootstrap.grid.min.css dependency
2
-
3
- // @mixin spacer-prop($selector, $prop, $i, $rem) {
4
- // .#{$selector}-#{$i} {
5
- // #{$prop}: $rem !important;
6
- // }
7
- // .#{$selector}x-#{$i} {
8
- // #{$prop}-left: $rem !important;
9
- // #{$prop}-right: $rem !important;
10
- // }
11
- // .#{$selector}y-#{$i} {
12
- // #{$prop}-top: $rem !important;
13
- // #{$prop}-bottom: $rem !important;
14
- // }
15
- // .#{$selector}l-#{$i} {
16
- // #{$prop}-left: $rem !important;
17
- // }
18
- // .#{$selector}t-#{$i} {
19
- // #{$prop}-top: $rem !important;
20
- // }
21
- // .#{$selector}r-#{$i} {
22
- // #{$prop}-right: $rem !important;
23
- // }
24
- // .#{$selector}b-#{$i} {
25
- // #{$prop}-bottom: $rem !important;
26
- // }
27
- // }
28
-
29
- // @mixin spacers() {
30
- // $i: 0;
31
- // $rem: 0;
32
- // @while $i < 6 {
33
- // @include spacer-prop(p, padding, $i, $rem);
34
- // @include spacer-prop(m, margin, $i, $rem);
35
-
36
- // @if $i == 0 {
37
- // $rem: .25rem;
38
- // } @else {
39
- // $rem: ($rem * 2);
40
- // }
41
- // $i: $i + 1;
42
- // }
43
- // }
44
-
45
- // .ml-auto {
46
- // margin-left: auto !important;
47
- // }
48
-
49
- // .mr-auto {
50
- // margin-right: auto !important;
51
- // }
52
-
53
- // .mt-auto {
54
- // margin-top: auto !important;
55
- // }
56
-
57
- // .mb-auto {
58
- // margin-bottom: auto !important;
59
- // }
60
-
61
- // .m-auto {
62
- // margin: auto !important;
63
- // }
64
-
1
+ // TODO: implement after removing bootstrap.grid.min.css dependency
2
+
3
+ // @mixin spacer-prop($selector, $prop, $i, $rem) {
4
+ // .#{$selector}-#{$i} {
5
+ // #{$prop}: $rem !important;
6
+ // }
7
+ // .#{$selector}x-#{$i} {
8
+ // #{$prop}-left: $rem !important;
9
+ // #{$prop}-right: $rem !important;
10
+ // }
11
+ // .#{$selector}y-#{$i} {
12
+ // #{$prop}-top: $rem !important;
13
+ // #{$prop}-bottom: $rem !important;
14
+ // }
15
+ // .#{$selector}l-#{$i} {
16
+ // #{$prop}-left: $rem !important;
17
+ // }
18
+ // .#{$selector}t-#{$i} {
19
+ // #{$prop}-top: $rem !important;
20
+ // }
21
+ // .#{$selector}r-#{$i} {
22
+ // #{$prop}-right: $rem !important;
23
+ // }
24
+ // .#{$selector}b-#{$i} {
25
+ // #{$prop}-bottom: $rem !important;
26
+ // }
27
+ // }
28
+
29
+ // @mixin spacers() {
30
+ // $i: 0;
31
+ // $rem: 0;
32
+ // @while $i < 6 {
33
+ // @include spacer-prop(p, padding, $i, $rem);
34
+ // @include spacer-prop(m, margin, $i, $rem);
35
+
36
+ // @if $i == 0 {
37
+ // $rem: .25rem;
38
+ // } @else {
39
+ // $rem: ($rem * 2);
40
+ // }
41
+ // $i: $i + 1;
42
+ // }
43
+ // }
44
+
45
+ // .ml-auto {
46
+ // margin-left: auto !important;
47
+ // }
48
+
49
+ // .mr-auto {
50
+ // margin-right: auto !important;
51
+ // }
52
+
53
+ // .mt-auto {
54
+ // margin-top: auto !important;
55
+ // }
56
+
57
+ // .mb-auto {
58
+ // margin-bottom: auto !important;
59
+ // }
60
+
61
+ // .m-auto {
62
+ // margin: auto !important;
63
+ // }
64
+
65
65
  // @include spacers();
@@ -1,139 +1,139 @@
1
- @import "../mixins/overlay-base";
2
- @import "../mixins/text";
3
-
4
- // Text styles
5
- .text-title-1 {
6
- @include text-title-1;
7
- }
8
-
9
- .text-title-2 {
10
- @include text-title-2;
11
- }
12
-
13
- .text-heading-1 {
14
- @include text-heading-1;
15
- }
16
-
17
- .text-heading-2 {
18
- @include text-heading-2;
19
- }
20
-
21
- .text-heading-3 {
22
- @include text-heading-3;
23
- }
24
-
25
- .text-body-1 {
26
- @include text-body-1;
27
- }
28
-
29
- .text-body-2 {
30
- @include text-body-2;
31
- }
32
-
33
- .text-caption-1 {
34
- @include text-caption-1;
35
- }
36
-
37
- .text-caption-2 {
38
- @include text-caption-2;
39
- }
40
-
41
- .text-display-1 {
42
- @include text-display-1;
43
- }
44
-
45
- .text-link {
46
- @include text-link;
47
- }
48
-
49
- @each $alignment in (left, right, center) {
50
- .text-#{$alignment} {
51
- text-align: $alignment !important;
52
- }
53
- }
54
-
55
- // Font property utilities
56
- .font-weight-bold {
57
- font-weight: var(--ec-font-weight-bold) !important;
58
- }
59
-
60
- .font-weight-normal {
61
- font-weight: var(--ec-font-weight-normal) !important;
62
- }
63
-
64
- .font-size-small {
65
- font-size: var(--ec-font-size-label) !important;
66
- }
67
-
68
- .font-size-medium {
69
- font-size: var(--ec-font-size-body) !important;
70
- }
71
-
72
- .font-size-base {
73
- font-size: var(--ec-font-size) !important;
74
- }
75
-
76
- .font-size-large {
77
- font-size: var(--ec-font-size-title) !important;
78
- }
79
-
80
- .font-color-primary {
81
- color: var(--ec-color-primary-dark) !important;
82
- }
83
-
84
- .font-color-primary-light {
85
- color: var(--ec-color-primary-light) !important;
86
- }
87
-
88
- .font-color-secondary {
89
- color: var(--ec-color-secondary-dark) !important;
90
- }
91
-
92
- .font-color-secondary-light {
93
- color: var(--ec-color-secondary-light) !important;
94
- }
95
-
96
- // font-color-muted is deprecated, use .font-color-hint instead
97
- .font-color-muted,
98
- .font-color-hint {
99
- color: var(--ec-color-hint-dark) !important;
100
- }
101
-
102
- // @deprecated, use .text-link instead.
103
- .font-color-link {
104
- color: var(--ec-color-link) !important;
105
- }
106
-
107
- .font-color-error {
108
- color: var(--ec-color-danger) !important;
109
- }
110
-
111
- .font-color-success {
112
- color: var(--ec-color-success) !important;
113
- }
114
-
115
- .font-color-interactive {
116
- color: var(--ec-color-interactive) !important;
117
- }
118
-
119
- // @deprecated use .text-display-1 instead
120
- .font-message {
121
- @include overlay-message;
122
- }
123
-
124
- // @deprecated use .text-display-1 instead
125
- .font-message-medium {
126
- @include overlay-message($font-size: var(--ec-font-size-body));
127
- }
128
-
129
- .text-truncate {
130
- @include truncate();
131
- }
132
-
133
- .text-break-all {
134
- word-break: break-all;
135
- }
136
-
137
- .text-wrap {
138
- white-space: normal;
139
- }
1
+ @import "../mixins/overlay-base";
2
+ @import "../mixins/text";
3
+
4
+ // Text styles
5
+ .text-title-1 {
6
+ @include text-title-1;
7
+ }
8
+
9
+ .text-title-2 {
10
+ @include text-title-2;
11
+ }
12
+
13
+ .text-heading-1 {
14
+ @include text-heading-1;
15
+ }
16
+
17
+ .text-heading-2 {
18
+ @include text-heading-2;
19
+ }
20
+
21
+ .text-heading-3 {
22
+ @include text-heading-3;
23
+ }
24
+
25
+ .text-body-1 {
26
+ @include text-body-1;
27
+ }
28
+
29
+ .text-body-2 {
30
+ @include text-body-2;
31
+ }
32
+
33
+ .text-caption-1 {
34
+ @include text-caption-1;
35
+ }
36
+
37
+ .text-caption-2 {
38
+ @include text-caption-2;
39
+ }
40
+
41
+ .text-display-1 {
42
+ @include text-display-1;
43
+ }
44
+
45
+ .text-link {
46
+ @include text-link;
47
+ }
48
+
49
+ @each $alignment in (left, right, center) {
50
+ .text-#{$alignment} {
51
+ text-align: $alignment !important;
52
+ }
53
+ }
54
+
55
+ // Font property utilities
56
+ .font-weight-bold {
57
+ font-weight: var(--ec-font-weight-bold) !important;
58
+ }
59
+
60
+ .font-weight-normal {
61
+ font-weight: var(--ec-font-weight-normal) !important;
62
+ }
63
+
64
+ .font-size-small {
65
+ font-size: var(--ec-font-size-label) !important;
66
+ }
67
+
68
+ .font-size-medium {
69
+ font-size: var(--ec-font-size-body) !important;
70
+ }
71
+
72
+ .font-size-base {
73
+ font-size: var(--ec-font-size) !important;
74
+ }
75
+
76
+ .font-size-large {
77
+ font-size: var(--ec-font-size-title) !important;
78
+ }
79
+
80
+ .font-color-primary {
81
+ color: var(--ec-color-primary-dark) !important;
82
+ }
83
+
84
+ .font-color-primary-light {
85
+ color: var(--ec-color-primary-light) !important;
86
+ }
87
+
88
+ .font-color-secondary {
89
+ color: var(--ec-color-secondary-dark) !important;
90
+ }
91
+
92
+ .font-color-secondary-light {
93
+ color: var(--ec-color-secondary-light) !important;
94
+ }
95
+
96
+ // font-color-muted is deprecated, use .font-color-hint instead
97
+ .font-color-muted,
98
+ .font-color-hint {
99
+ color: var(--ec-color-hint-dark) !important;
100
+ }
101
+
102
+ // @deprecated, use .text-link instead.
103
+ .font-color-link {
104
+ color: var(--ec-color-link) !important;
105
+ }
106
+
107
+ .font-color-error {
108
+ color: var(--ec-color-danger) !important;
109
+ }
110
+
111
+ .font-color-success {
112
+ color: var(--ec-color-success) !important;
113
+ }
114
+
115
+ .font-color-interactive {
116
+ color: var(--ec-color-interactive) !important;
117
+ }
118
+
119
+ // @deprecated use .text-display-1 instead
120
+ .font-message {
121
+ @include overlay-message;
122
+ }
123
+
124
+ // @deprecated use .text-display-1 instead
125
+ .font-message-medium {
126
+ @include overlay-message($font-size: var(--ec-font-size-body));
127
+ }
128
+
129
+ .text-truncate {
130
+ @include truncate();
131
+ }
132
+
133
+ .text-break-all {
134
+ word-break: break-all;
135
+ }
136
+
137
+ .text-wrap {
138
+ white-space: normal;
139
+ }
@@ -6113,6 +6113,10 @@ declare class MultiselectComponent extends FormControlBase implements OnInit, On
6113
6113
  * Map of MenuItem to its corresponding checkbox FormControl
6114
6114
  */
6115
6115
  checkboxFormControls: Map<MenuItem, UntypedFormControl>;
6116
+ /**
6117
+ * Whether the maximum number of selections has been reached
6118
+ */
6119
+ get maxSelectionsReached(): boolean;
6116
6120
  /**
6117
6121
  * Whether all currently visible selectable options are selected
6118
6122
  */
@@ -6148,7 +6152,7 @@ declare class MultiselectComponent extends FormControlBase implements OnInit, On
6148
6152
  * and the value has not already been added as a custom item.
6149
6153
  */
6150
6154
  get showAddCustomOption(): boolean;
6151
- /** Placeholder text for 'Choose' */
6155
+ /** Placeholder text for 'Search' */
6152
6156
  private searchPlaceholder;
6153
6157
  /** Items added by the user via the allowCustom feature */
6154
6158
  private customItems;
@@ -6257,8 +6261,8 @@ declare class MultiselectComponent extends FormControlBase implements OnInit, On
6257
6261
  private synchronizeDisabledAttributes;
6258
6262
  /**
6259
6263
  * Recompute the placeholder text.
6260
- * When items are selected, show 'Search_TC' so the user knows they can filter.
6261
- * When no items are selected, show the provided placeholder or the default 'Choose' text.
6264
+ * When items are selected, show 'Search' so the user knows they can filter.
6265
+ * When no items are selected, show the provided placeholder or the default 'Search' text.
6262
6266
  */
6263
6267
  private updatePlaceholderText;
6264
6268
  /**
@@ -6276,6 +6280,13 @@ declare class MultiselectComponent extends FormControlBase implements OnInit, On
6276
6280
  * valueChanges so that user interactions with checkboxes drive selection state.
6277
6281
  */
6278
6282
  private buildCheckboxFormControls;
6283
+ /**
6284
+ * Enable or disable individual checkbox FormControls based on whether the max selections
6285
+ * limit has been reached. When the limit is reached, unselected items are disabled to
6286
+ * indicate they cannot be selected. The select all checkbox is always left enabled since
6287
+ * it can be used to deselect items.
6288
+ */
6289
+ private updateMaxSelectionsDisabledState;
6279
6290
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiselectComponent, never>;
6280
6291
  static ɵcmp: i0.ɵɵComponentDeclaration<MultiselectComponent, "ec-multiselect", never, { "options": { "alias": "options"; "required": false; }; "menuPosition": { "alias": "menuPosition"; "required": false; }; "popupFixed": { "alias": "popupFixed"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "tagType": { "alias": "tagType"; "required": false; }; "hideNoMatches": { "alias": "hideNoMatches"; "required": false; }; "noMatchesText": { "alias": "noMatchesText"; "required": false; }; "truncateItems": { "alias": "truncateItems"; "required": false; }; "allowCustom": { "alias": "allowCustom"; "required": false; }; "maxSelections": { "alias": "maxSelections"; "required": false; }; }, { "search": "search"; "selectionChanged": "selectionChanged"; }, never, never, false, never>;
6281
6292
  }