@koobiq/components 19.3.0 → 19.4.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 (48) hide show
  1. package/autocomplete/autocomplete-trigger.directive.d.ts +5 -0
  2. package/core/animation/animation.d.ts +3 -1
  3. package/core/highlight/highlight.pipe.d.ts +2 -0
  4. package/core/option/action.d.ts +5 -6
  5. package/fesm2022/koobiq-components-autocomplete.mjs +8 -1
  6. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  7. package/fesm2022/koobiq-components-core.mjs +45 -26
  8. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  9. package/fesm2022/koobiq-components-file-upload.mjs +4 -4
  10. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  11. package/fesm2022/koobiq-components-form-field.mjs +8 -8
  12. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  13. package/fesm2022/koobiq-components-icon.mjs +2 -2
  14. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  15. package/fesm2022/koobiq-components-inline-edit.mjs +3 -12
  16. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  17. package/fesm2022/koobiq-components-list.mjs +11 -1
  18. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  19. package/fesm2022/koobiq-components-search-expandable.mjs +49 -22
  20. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  21. package/fesm2022/koobiq-components-select.mjs +1 -0
  22. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  23. package/fesm2022/koobiq-components-sidepanel.mjs +146 -41
  24. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  25. package/fesm2022/koobiq-components-tags.mjs +23 -9
  26. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  27. package/fesm2022/koobiq-components-tooltip.mjs +8 -0
  28. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  29. package/form-field/_form-field-theme.scss +2 -2
  30. package/form-field/form-field-control.d.ts +2 -0
  31. package/form-field/form-field.scss +0 -1
  32. package/icon/icon-button.scss +5 -4
  33. package/inline-edit/inline-edit-tokens.scss +1 -1
  34. package/list/list-selection.component.d.ts +1 -0
  35. package/package.json +4 -4
  36. package/schematics/ng-add/index.js +2 -2
  37. package/search-expandable/search-expandable.d.ts +19 -4
  38. package/sidepanel/_sidepanel-theme.scss +10 -0
  39. package/sidepanel/sidepanel-animations.d.ts +7 -1
  40. package/sidepanel/sidepanel-container.component.d.ts +12 -2
  41. package/sidepanel/sidepanel-directives.d.ts +8 -0
  42. package/sidepanel/sidepanel-ref.d.ts +12 -0
  43. package/sidepanel/sidepanel-tokens.scss +5 -3
  44. package/sidepanel/sidepanel.scss +78 -18
  45. package/sidepanel/sidepanel.service.d.ts +2 -0
  46. package/tags/tag-list.component.d.ts +7 -1
  47. package/tags/tag.component.d.ts +2 -0
  48. package/tooltip/tooltip.component.d.ts +8 -0
@@ -1,20 +1,32 @@
1
+ @use 'sass:map';
2
+
1
3
  @use '../core/styles/common';
2
4
 
3
5
  @use '../core/styles/common/tokens' as *;
4
6
 
5
7
  @use './sidepanel-theme' as *;
6
8
 
7
- .kbq-sidepanel-container_top,
8
- .kbq-sidepanel-container_bottom {
9
- flex-direction: column;
10
- height: 33%;
11
- min-height: 400px;
12
- width: 100%;
13
- left: 0;
9
+ $indent-offset: calc(-1 * var(--kbq-sidepanel-size-panel-lower-offset));
10
+
11
+ @mixin _sidepanel-container($selected-side) {
12
+ $sides: top, right, bottom, left;
13
+ $opposite-sides: (
14
+ 'top': 'bottom',
15
+ 'right': 'left',
16
+ 'left': 'right',
17
+ 'bottom': 'top'
18
+ );
19
+
20
+ .kbq-sidepanel-content {
21
+ @each $side in $sides {
22
+ @if (not (map.get($opposite-sides, $selected-side) == $side)) {
23
+ margin-#{$side}: var(--kbq-sidepanel-size-panel-viewport-margin);
24
+ }
25
+ }
26
+ }
14
27
 
15
- .kbq-sidepanel-indent {
16
- height: 16px;
17
- width: 100%;
28
+ & {
29
+ transform-origin: center #{map.get($opposite-sides, $selected-side)};
18
30
  }
19
31
  }
20
32
 
@@ -51,10 +63,24 @@
51
63
  }
52
64
 
53
65
  .kbq-sidepanel-indent {
54
- width: 16px;
66
+ width: var(--kbq-sidepanel-size-panel-lower-offset);
55
67
  height: 100%;
56
68
  }
57
69
  }
70
+
71
+ &.kbq-sidepanel-container_top,
72
+ &.kbq-sidepanel-container_bottom {
73
+ flex-direction: column;
74
+ height: 33%;
75
+ min-height: 400px;
76
+ width: calc(100% - 2 * var(--kbq-sidepanel-size-panel-viewport-margin));
77
+ left: 0;
78
+
79
+ .kbq-sidepanel-indent {
80
+ height: var(--kbq-sidepanel-size-panel-lower-offset);
81
+ width: 100%;
82
+ }
83
+ }
58
84
  }
59
85
 
60
86
  .kbq-sidepanel-container_right {
@@ -64,6 +90,8 @@
64
90
  .kbq-sidepanel-wrapper {
65
91
  flex-direction: row;
66
92
  }
93
+
94
+ @include _sidepanel-container(right);
67
95
  }
68
96
 
69
97
  .kbq-sidepanel-container_left {
@@ -73,6 +101,8 @@
73
101
  .kbq-sidepanel-wrapper {
74
102
  flex-direction: row-reverse;
75
103
  }
104
+
105
+ @include _sidepanel-container(left);
76
106
  }
77
107
 
78
108
  .kbq-sidepanel-container_top {
@@ -82,6 +112,8 @@
82
112
  .kbq-sidepanel-wrapper {
83
113
  flex-direction: column-reverse;
84
114
  }
115
+
116
+ @include _sidepanel-container(top);
85
117
  }
86
118
 
87
119
  .kbq-sidepanel-container_bottom {
@@ -91,6 +123,8 @@
91
123
  .kbq-sidepanel-wrapper {
92
124
  flex-direction: column;
93
125
  }
126
+
127
+ @include _sidepanel-container(bottom);
94
128
  }
95
129
 
96
130
  .kbq-sidepanel-wrapper {
@@ -98,11 +132,31 @@
98
132
  flex: 1;
99
133
  min-height: 0;
100
134
  width: 100%;
135
+ position: relative;
101
136
  }
102
137
 
103
138
  .kbq-sidepanel-indent {
104
139
  display: flex;
105
140
  flex: 0 0 auto;
141
+ cursor: pointer;
142
+
143
+ position: absolute;
144
+
145
+ .kbq-sidepanel-container_top & {
146
+ bottom: $indent-offset;
147
+ }
148
+
149
+ .kbq-sidepanel-container_right & {
150
+ left: $indent-offset;
151
+ }
152
+
153
+ .kbq-sidepanel-container_bottom & {
154
+ top: $indent-offset;
155
+ }
156
+
157
+ .kbq-sidepanel-container_left & {
158
+ right: $indent-offset;
159
+ }
106
160
  }
107
161
 
108
162
  .kbq-sidepanel-content {
@@ -112,6 +166,7 @@
112
166
  min-height: 0;
113
167
  min-width: 0;
114
168
  width: 100%;
169
+ border-radius: var(--kbq-size-border-radius);
115
170
  }
116
171
 
117
172
  .kbq-sidepanel-header {
@@ -121,6 +176,7 @@
121
176
 
122
177
  flex-flow: row nowrap;
123
178
  flex: 0 0 auto;
179
+ transition: box-shadow 100ms ease-in-out;
124
180
 
125
181
  padding: var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-right)
126
182
  var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-left);
@@ -136,6 +192,10 @@
136
192
  @include common.kbq-truncate-line();
137
193
  }
138
194
  }
195
+
196
+ &.kbq-sidepanel-header_bottom-overflown {
197
+ box-shadow: var(--kbq-shadow-overflow-normal-bottom);
198
+ }
139
199
  }
140
200
 
141
201
  .kbq-sidepanel-title {
@@ -149,13 +209,8 @@
149
209
  flex-direction: column;
150
210
  min-height: 0;
151
211
 
152
- padding-top: var(--kbq-sidepanel-size-content-padding-top);
153
-
154
- padding-right: var(--kbq-sidepanel-size-content-padding-horizontal);
155
-
156
- padding-left: var(--kbq-sidepanel-size-content-padding-horizontal);
157
-
158
- padding-bottom: var(--kbq-sidepanel-size-content-padding-bottom);
212
+ padding: var(--kbq-sidepanel-size-content-padding-top) var(--kbq-sidepanel-size-content-padding-horizontal)
213
+ var(--kbq-sidepanel-size-content-padding-bottom);
159
214
  }
160
215
 
161
216
  .kbq-sidepanel-footer {
@@ -165,6 +220,7 @@
165
220
 
166
221
  flex-flow: row nowrap;
167
222
  flex: 0 0 auto;
223
+ transition: box-shadow 100ms ease-in-out;
168
224
 
169
225
  padding: var(--kbq-sidepanel-size-footer-padding-top) var(--kbq-sidepanel-size-footer-padding-horizontal)
170
226
  var(--kbq-sidepanel-size-footer-padding-bottom);
@@ -185,6 +241,10 @@
185
241
 
186
242
  gap: var(--kbq-sidepanel-size-footer-content-gap-horizontal);
187
243
  }
244
+
245
+ &.kbq-sidepanel-footer_top-overflown {
246
+ box-shadow: var(--kbq-shadow-overflow-normal-top);
247
+ }
188
248
  }
189
249
 
190
250
  @include kbq-sidepanel-theme();
@@ -47,11 +47,13 @@ export declare class KbqSidepanelService implements OnDestroy {
47
47
  private closeSidepanels;
48
48
  private getBackdropClass;
49
49
  private getOpenedSidepanelsWithSamePosition;
50
+ private updateAnimationState;
50
51
  /**
51
52
  * Removes a sidepanel from the array of open sidepanels.
52
53
  * @param sidepanelRef Sidepanel to be removed.
53
54
  */
54
55
  private removeOpenSidepanel;
56
+ private getLowerSidepanelsWithSamePosition;
55
57
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidepanelService, [null, null, { optional: true; }, { optional: true; skipSelf: true; }]>;
56
58
  static ɵprov: i0.ɵɵInjectableDeclaration<KbqSidepanelService>;
57
59
  }
@@ -154,6 +154,11 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
154
154
  selectable: boolean;
155
155
  /** Whether the tags in the list are editable. */
156
156
  editable: boolean;
157
+ /**
158
+ * Whether to emit change events when tags are added/removed.
159
+ * Set to `false` to prevent the form control from being marked as dirty during programmatic updates.
160
+ */
161
+ emitOnTagChanges: boolean;
157
162
  /** Whether the tags in the list are removable. */
158
163
  get removable(): boolean;
159
164
  set removable(value: boolean);
@@ -352,11 +357,12 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
352
357
  private syncDropListDisabledState;
353
358
  private setupFocusMonitor;
354
359
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTagList, [null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; self: true; }]>;
355
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqTagList, "kbq-tag-list", ["kbqTagList"], { "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; }, { "dropped": "dropped"; "valueChange": "valueChange"; "change": "change"; }, ["cleaner", "tags"], ["*", "kbq-cleaner"], true, [{ directive: typeof i1.CdkDropList; inputs: {}; outputs: {}; }]>;
360
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqTagList, "kbq-tag-list", ["kbqTagList"], { "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "emitOnTagChanges": { "alias": "emitOnTagChanges"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; }, { "dropped": "dropped"; "valueChange": "valueChange"; "change": "change"; }, ["cleaner", "tags"], ["*", "kbq-cleaner"], true, [{ directive: typeof i1.CdkDropList; inputs: {}; outputs: {}; }]>;
356
361
  static ngAcceptInputType_multiple: unknown;
357
362
  static ngAcceptInputType_disabled: unknown;
358
363
  static ngAcceptInputType_draggable: unknown;
359
364
  static ngAcceptInputType_selectable: unknown;
360
365
  static ngAcceptInputType_editable: unknown;
366
+ static ngAcceptInputType_emitOnTagChanges: unknown;
361
367
  static ngAcceptInputType_removable: unknown;
362
368
  }
@@ -72,6 +72,8 @@ export declare class KbqTagEditSubmit {
72
72
  export declare class KbqTagEditInput {
73
73
  private readonly tag;
74
74
  /** @docs-private */
75
+ protected handleClick(event: MouseEvent): void;
76
+ /** @docs-private */
75
77
  protected handleKeydown(event: KeyboardEvent): void;
76
78
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTagEditInput, never>;
77
79
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTagEditInput, "[kbqTagEditInput]", ["kbqTagEditInput"], {}, {}, never, never, true, [{ directive: typeof i1.KbqFieldSizingContent; inputs: {}; outputs: {}; }]>;
@@ -108,6 +108,10 @@ export declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipCompone
108
108
  static ngAcceptInputType_arrow: unknown;
109
109
  static ngAcceptInputType_offset: unknown;
110
110
  }
111
+ /**
112
+ * @docs-private
113
+ * @deprecated Will be removed in next major release
114
+ */
111
115
  export declare class KbqWarningTooltipTrigger extends KbqTooltipTrigger {
112
116
  get content(): string | TemplateRef<any>;
113
117
  set content(content: string | TemplateRef<any>);
@@ -115,6 +119,10 @@ export declare class KbqWarningTooltipTrigger extends KbqTooltipTrigger {
115
119
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqWarningTooltipTrigger, never>;
116
120
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqWarningTooltipTrigger, "[kbqWarningTooltip]", ["kbqWarningTooltip"], { "content": { "alias": "kbqWarningTooltip"; "required": false; }; }, {}, never, never, true, never>;
117
121
  }
122
+ /**
123
+ * @docs-private
124
+ * @deprecated Will be removed in next major release
125
+ */
118
126
  export declare class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {
119
127
  get content(): string | TemplateRef<any>;
120
128
  set content(content: string | TemplateRef<any>);