carbon-components-angular 5.22.1 → 5.23.1

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 (100) hide show
  1. package/docs/documentation/components/PopoverContent.html +215 -11
  2. package/docs/documentation/components/Toggletip.html +842 -459
  3. package/docs/documentation/components/Tooltip.html +1056 -606
  4. package/docs/documentation/components/TooltipDefinition.html +977 -538
  5. package/docs/documentation/coverage.html +20 -20
  6. package/docs/documentation/dependencies.html +3 -1
  7. package/docs/documentation/directives/PopoverContainer.html +1017 -636
  8. package/docs/documentation/images/coverage-badge-documentation.svg +1 -1
  9. package/docs/documentation/js/search/search_index.js +2 -2
  10. package/docs/documentation/miscellaneous/typealiases.html +21 -0
  11. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  12. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  13. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  14. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  15. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +7 -7
  16. package/docs/documentation/modules/DatePickerInputModule.html +7 -7
  17. package/docs/documentation/modules/DatePickerModule/dependencies.svg +57 -53
  18. package/docs/documentation/modules/DatePickerModule.html +57 -53
  19. package/docs/documentation/modules/DialogModule/dependencies.svg +34 -34
  20. package/docs/documentation/modules/DialogModule.html +34 -34
  21. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  22. package/docs/documentation/modules/GridModule.html +60 -60
  23. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  24. package/docs/documentation/modules/LoadingModule.html +4 -4
  25. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  26. package/docs/documentation/modules/NFormsModule.html +4 -4
  27. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  28. package/docs/documentation/modules/NumberModule.html +4 -4
  29. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  30. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  31. package/docs/documentation/modules/RadioModule/dependencies.svg +4 -4
  32. package/docs/documentation/modules/RadioModule.html +4 -4
  33. package/docs/documentation/modules/SearchModule/dependencies.svg +4 -4
  34. package/docs/documentation/modules/SearchModule.html +4 -4
  35. package/docs/documentation/modules/SelectModule/dependencies.svg +58 -58
  36. package/docs/documentation/modules/SelectModule.html +58 -58
  37. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  38. package/docs/documentation/modules/SliderModule.html +4 -4
  39. package/docs/documentation/modules/StructuredListModule/dependencies.svg +66 -66
  40. package/docs/documentation/modules/StructuredListModule.html +66 -66
  41. package/docs/documentation/modules/TabsModule/dependencies.svg +69 -69
  42. package/docs/documentation/modules/TabsModule.html +69 -69
  43. package/docs/documentation/modules/TagModule/dependencies.svg +4 -4
  44. package/docs/documentation/modules/TagModule.html +4 -4
  45. package/docs/documentation/modules/ThemeModule/dependencies.svg +13 -13
  46. package/docs/documentation/modules/ThemeModule.html +13 -13
  47. package/docs/documentation/modules/TimePickerModule/dependencies.svg +4 -4
  48. package/docs/documentation/modules/TimePickerModule.html +4 -4
  49. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +45 -49
  50. package/docs/documentation/modules/TimePickerSelectModule.html +45 -49
  51. package/docs/documentation/modules/ToggleModule/dependencies.svg +44 -40
  52. package/docs/documentation/modules/ToggleModule.html +44 -40
  53. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  54. package/docs/documentation/modules/ToggletipModule.html +4 -4
  55. package/docs/documentation/modules/TooltipModule/dependencies.svg +4 -4
  56. package/docs/documentation/modules/TooltipModule.html +4 -4
  57. package/docs/documentation.json +1583 -809
  58. package/docs/storybook/1562.1e6a79b6.iframe.bundle.js +1 -0
  59. package/docs/storybook/4578.0721a3f2.iframe.bundle.js +1 -0
  60. package/docs/storybook/iframe.html +2 -2
  61. package/docs/storybook/index.json +1 -1
  62. package/docs/storybook/main.058586e7.iframe.bundle.js +1 -0
  63. package/docs/storybook/main.css +1156 -571
  64. package/docs/storybook/popover-popover-stories.a91784a3.iframe.bundle.js +1 -0
  65. package/docs/storybook/project.json +1 -1
  66. package/docs/storybook/runtime~main.e62f61de.iframe.bundle.js +1 -0
  67. package/docs/storybook/stories.json +1 -1
  68. package/docs/storybook/toggletip-toggletip-stories.7265233d.iframe.bundle.js +1 -0
  69. package/docs/storybook/tooltip-definition-tooptip-stories.af07fda0.iframe.bundle.js +1 -0
  70. package/docs/storybook/tooltip-tooltip-stories.18664f1b.iframe.bundle.js +1 -0
  71. package/esm2020/popover/popover-content.component.mjs +33 -13
  72. package/esm2020/popover/popover.directive.mjs +215 -96
  73. package/esm2020/toggletip/toggletip.component.mjs +8 -6
  74. package/esm2020/tooltip/definition-tooptip.component.mjs +14 -15
  75. package/esm2020/tooltip/tooltip.component.mjs +13 -8
  76. package/fesm2015/carbon-components-angular-popover.mjs +247 -107
  77. package/fesm2015/carbon-components-angular-popover.mjs.map +1 -1
  78. package/fesm2015/carbon-components-angular-toggletip.mjs +7 -5
  79. package/fesm2015/carbon-components-angular-toggletip.mjs.map +1 -1
  80. package/fesm2015/carbon-components-angular-tooltip.mjs +25 -21
  81. package/fesm2015/carbon-components-angular-tooltip.mjs.map +1 -1
  82. package/fesm2020/carbon-components-angular-popover.mjs +246 -107
  83. package/fesm2020/carbon-components-angular-popover.mjs.map +1 -1
  84. package/fesm2020/carbon-components-angular-toggletip.mjs +7 -5
  85. package/fesm2020/carbon-components-angular-toggletip.mjs.map +1 -1
  86. package/fesm2020/carbon-components-angular-tooltip.mjs +25 -21
  87. package/fesm2020/carbon-components-angular-tooltip.mjs.map +1 -1
  88. package/package.json +3 -2
  89. package/popover/popover-content.component.d.ts +7 -1
  90. package/popover/popover.directive.d.ts +74 -29
  91. package/toggletip/toggletip.component.d.ts +6 -5
  92. package/tooltip/definition-tooptip.component.d.ts +7 -8
  93. package/tooltip/tooltip.component.d.ts +6 -3
  94. package/docs/storybook/4578.93dc52a7.iframe.bundle.js +0 -1
  95. package/docs/storybook/main.f61a9bb7.iframe.bundle.js +0 -1
  96. package/docs/storybook/popover-popover-stories.cc1684df.iframe.bundle.js +0 -1
  97. package/docs/storybook/runtime~main.6a22a4e9.iframe.bundle.js +0 -1
  98. package/docs/storybook/toggletip-toggletip-stories.22e37008.iframe.bundle.js +0 -1
  99. package/docs/storybook/tooltip-definition-tooptip-stories.2e1a211c.iframe.bundle.js +0 -1
  100. package/docs/storybook/tooltip-tooltip-stories.6a4a1383.iframe.bundle.js +0 -1
@@ -1,19 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Directive, HostBinding, Output, Input, Component, NgModule } from '@angular/core';
2
+ import { EventEmitter, Directive, Input, Output, HostBinding, Component, ViewChild, NgModule } from '@angular/core';
3
+ import { autoUpdate, computePosition, offset, flip, arrow } from '@floating-ui/dom';
4
+ import * as i1 from '@angular/common';
3
5
  import { CommonModule } from '@angular/common';
4
6
 
5
- /**
6
- * Applies popover container styling to the element it is applied to. Get started with importing the module:
7
- *
8
- * ```typescript
9
- * import { PopoverModule } from 'carbon-components-angular';
10
- * ```
11
- *
12
- * [See demo](../../?path=/story/components-popover--basic)
13
- */
14
7
  class PopoverContainer {
15
- constructor(changeDetectorRef) {
8
+ constructor(elementRef, ngZone, renderer, changeDetectorRef) {
9
+ this.elementRef = elementRef;
10
+ this.ngZone = ngZone;
11
+ this.renderer = renderer;
16
12
  this.changeDetectorRef = changeDetectorRef;
13
+ this._align = "bottom";
14
+ this.alignmentClassPrefix = "cds--popover--";
17
15
  /**
18
16
  * Emits an event when the dialog is closed
19
17
  */
@@ -26,110 +24,229 @@ class PopoverContainer {
26
24
  * Emits an event when the state of `isOpen` changes. Allows `isOpen` to be double bound
27
25
  */
28
26
  this.isOpenChange = new EventEmitter();
27
+ /**
28
+ * Show caret at the alignment position
29
+ */
29
30
  this.caret = true;
31
+ /**
32
+ * Enable drop shadow around the popover container
33
+ */
30
34
  this.dropShadow = true;
35
+ /**
36
+ * Enable high contrast for popover container
37
+ */
31
38
  this.highContrast = false;
32
- this.isOpen = false;
39
+ /**
40
+ * **Experimental**: Use floating-ui to position the tooltip
41
+ * This is not toggleable - should be assigned once
42
+ */
43
+ this.autoAlign = false;
33
44
  this.containerClass = true;
34
- this.align = "bottom";
35
- }
36
- // Top
37
- get alignmentTopClass() {
38
- return this.align === "top";
39
- }
40
- get alignmentTopLeftClass() {
41
- return this.align === "top-left";
42
- }
43
- get alignmentTopRightClass() {
44
- return this.align === "top-right";
45
- }
46
- // Bottom
47
- get alignmentBottomClass() {
48
- return this.align === "bottom";
49
- }
50
- get alignmentBottomLeftClass() {
51
- return this.align === "bottom-left";
52
- }
53
- get alignmentBottomRightClass() {
54
- return this.align === "bottom-right";
55
- }
56
- // Left
57
- get alignmentLeftClass() {
58
- return this.align === "left";
59
- }
60
- get alignmentLeftTopClass() {
61
- return this.align === "left-top";
62
- }
63
- get alignmentLeftBottomClass() {
64
- return this.align === "left-bottom";
65
- }
66
- // Right
67
- get alignmentRightClass() {
68
- return this.align === "right";
69
- }
70
- get alignmentRightTopClass() {
71
- return this.align === "right-top";
45
+ this.isOpen = false;
72
46
  }
73
- get alignmentRightBottomClass() {
74
- return this.align === "right-bottom";
47
+ /**
48
+ * Set alignment of popover
49
+ * As of v5, `oldPlacements` are now deprecated in favor of Placements
50
+ *
51
+ * When `autoAlign` is set to `true`, alignment may change for best placement
52
+ */
53
+ set align(alignment) {
54
+ // If alignment is not passed, the default value will be `undefined`.
55
+ if (!alignment) {
56
+ return;
57
+ }
58
+ const previousAlignment = this._align;
59
+ switch (alignment) {
60
+ case "top-left":
61
+ this._align = "top-start";
62
+ break;
63
+ case "top-right":
64
+ this._align = "top-end";
65
+ break;
66
+ case "bottom-left":
67
+ this._align = "bottom-start";
68
+ break;
69
+ case "bottom-right":
70
+ this._align = "bottom-end";
71
+ break;
72
+ case "left-top":
73
+ this._align = "left-start";
74
+ break;
75
+ case "left-bottom":
76
+ this._align = "left-end";
77
+ break;
78
+ case "right-top":
79
+ this._align = "right-start";
80
+ break;
81
+ case "right-bottom":
82
+ this._align = "right-end";
83
+ break;
84
+ default:
85
+ this._align = alignment;
86
+ break;
87
+ }
88
+ this.updateAlignmentClass(this._align, previousAlignment);
75
89
  }
90
+ /**
91
+ * Handles emitting open/close event
92
+ * @param open - Is the popover container open
93
+ * @param event - Event
94
+ */
76
95
  handleChange(open, event) {
77
- if (this.isOpen !== open) {
96
+ // We only emit the event when parameter has an event to keep existing behavior
97
+ if ((this.isOpen !== open) && event) {
78
98
  this.isOpenChange.emit(open);
79
99
  }
80
100
  if (open) {
81
- this.onOpen.emit(event);
101
+ if (event) {
102
+ this.onOpen.emit(event);
103
+ }
104
+ // when auto alignment is enabled, use auto update to set the placement for the element
105
+ if (this.autoAlign) {
106
+ if (this.caretRef) {
107
+ // Get caret offset/height property
108
+ // Getting computed styles once every open, otherwise expensive.
109
+ const computedStyle = getComputedStyle(this.caretRef);
110
+ const offset = computedStyle.getPropertyValue("--cds-popover-offset");
111
+ const height = computedStyle.getPropertyValue("--cds-popover-caret-height");
112
+ this.caretOffset = (offset?.includes("px") ? Number(offset.split("px", 1)[0]) : Number(offset.split("rem", 1)[0]) * 16) || 10;
113
+ this.caretHeight = (height?.includes("px") ? Number(height.split("px", 1)[0]) : Number(height.split("rem", 1)[0]) * 16) || 6;
114
+ }
115
+ if (this.elementRef.nativeElement && this.popoverContentRef) {
116
+ this.unmountFloatingElement = autoUpdate(this.elementRef.nativeElement, this.popoverContentRef, this.recomputePosition.bind(this));
117
+ }
118
+ }
82
119
  }
83
120
  else {
84
- this.onClose.emit(event);
121
+ this.cleanUp();
122
+ if (event) {
123
+ this.onClose.emit(event);
124
+ }
85
125
  }
86
126
  this.isOpen = open;
87
127
  this.changeDetectorRef.markForCheck();
88
128
  }
129
+ roundByDPR(value) {
130
+ const dpr = window.devicePixelRatio || 1;
131
+ return Math.round(value * dpr) / dpr;
132
+ }
133
+ /**
134
+ * Compute position of tooltip when autoAlign is enabled
135
+ */
136
+ recomputePosition() {
137
+ // Run outside of angular zone to avoid unnecessary change detection and rely on floating-ui
138
+ this.ngZone.runOutsideAngular(async () => {
139
+ const { x, y, placement, middlewareData } = await computePosition(this.elementRef.nativeElement, this.popoverContentRef, {
140
+ placement: this._align,
141
+ strategy: "fixed",
142
+ middleware: [
143
+ offset(this.caretOffset),
144
+ flip({ fallbackAxisSideDirection: "start" }),
145
+ arrow({ element: this.caretRef })
146
+ ]
147
+ });
148
+ const previousAlignment = this._align;
149
+ this._align = placement;
150
+ this.updateAlignmentClass(this._align, previousAlignment);
151
+ // Using CSSOM to manipulate CSS to avoid content security policy inline-src
152
+ // https://github.com/w3c/webappsec-csp/issues/212
153
+ Object.assign(this.popoverContentRef.style, {
154
+ position: "fixed",
155
+ top: "0",
156
+ left: "0",
157
+ // Using transform instead of top/left position to improve performance
158
+ transform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`
159
+ });
160
+ if (middlewareData.arrow) {
161
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
162
+ const staticSide = {
163
+ top: "bottom",
164
+ right: "left",
165
+ bottom: "top",
166
+ left: "right"
167
+ }[placement.split("-")[0]];
168
+ this.caretRef.style.left = arrowX != null ? `${arrowX}px` : "";
169
+ this.caretRef.style.top = arrowY != null ? `${arrowY}px` : "";
170
+ this.caretRef.style.right = "";
171
+ this.caretRef.style.bottom = "";
172
+ if (staticSide) {
173
+ this.caretRef.style[staticSide] = `${-this.caretHeight}px`;
174
+ }
175
+ }
176
+ });
177
+ }
178
+ /**
179
+ * Close the popover and reopen it with updated values without emitting an event
180
+ * @param changes
181
+ */
182
+ ngOnChanges(changes) {
183
+ // Close and reopen the popover, handle alignment/programmatic open/close
184
+ const originalState = this.isOpen;
185
+ this.handleChange(false);
186
+ // Ignore first change since content is not initialized
187
+ if (changes.autoAlign && !changes.autoAlign.firstChange) {
188
+ // Reset the inline styles
189
+ this.popoverContentRef = this.elementRef.nativeElement.querySelector(".cds--popover-content");
190
+ this.popoverContentRef.setAttribute("style", "");
191
+ this.caretRef = this.elementRef.nativeElement.querySelector("span.cds--popover-caret");
192
+ }
193
+ this.handleChange(originalState);
194
+ }
195
+ /**
196
+ * Handle initialization of element
197
+ */
198
+ ngAfterViewInit() {
199
+ this.initializeReferences();
200
+ }
201
+ initializeReferences() {
202
+ this.updateAlignmentClass(this._align);
203
+ // Initialize html references since they will not change and are required for popover components
204
+ this.popoverContentRef = this.elementRef.nativeElement.querySelector(".cds--popover-content");
205
+ this.caretRef = this.elementRef.nativeElement.querySelector("span.cds--popover-caret");
206
+ // Handle initial isOpen
207
+ this.handleChange(this.isOpen);
208
+ }
209
+ /**
210
+ * Clean up
211
+ */
212
+ ngOnDestroy() {
213
+ this.cleanUp();
214
+ }
215
+ /**
216
+ * Clean up `autoUpdate` if auto alignment is enabled
217
+ */
218
+ cleanUp() {
219
+ if (this.unmountFloatingElement) {
220
+ this.unmountFloatingElement();
221
+ }
222
+ this.unmountFloatingElement = undefined;
223
+ }
224
+ /**
225
+ * Replace existing previous alignment class with new
226
+ * @param previousAlignment
227
+ */
228
+ updateAlignmentClass(newAlignment, previousAlignment) {
229
+ if (this.elementRef.nativeElement && previousAlignment !== newAlignment) {
230
+ const regexp = new RegExp("right|top|left|bottom");
231
+ // Since we are constantly switching, it's safer to delete all matching class names
232
+ this.elementRef.nativeElement.classList.forEach(className => {
233
+ if (regexp.test(className)) {
234
+ this.renderer.removeClass(this.elementRef.nativeElement, `${className}`);
235
+ }
236
+ });
237
+ this.renderer.addClass(this.elementRef.nativeElement, `${this.alignmentClassPrefix}${newAlignment}`);
238
+ }
239
+ }
89
240
  }
90
- PopoverContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContainer, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
91
- PopoverContainer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: PopoverContainer, selector: "[cdsPopover], [ibmPopover]", inputs: { caret: "caret", dropShadow: "dropShadow", highContrast: "highContrast", isOpen: "isOpen", align: "align" }, outputs: { onClose: "onClose", onOpen: "onOpen", isOpenChange: "isOpenChange" }, host: { properties: { "class.cds--popover--top": "this.alignmentTopClass", "class.cds--popover--top-left": "this.alignmentTopLeftClass", "class.cds--popover--top-right": "this.alignmentTopRightClass", "class.cds--popover--bottom": "this.alignmentBottomClass", "class.cds--popover--bottom-left": "this.alignmentBottomLeftClass", "class.cds--popover--bottom-right": "this.alignmentBottomRightClass", "class.cds--popover--left": "this.alignmentLeftClass", "class.cds--popover--left-top": "this.alignmentLeftTopClass", "class.cds--popover--left-bottom": "this.alignmentLeftBottomClass", "class.cds--popover--right": "this.alignmentRightClass", "class.cds--popover--right-top": "this.alignmentRightTopClass", "class.cds--popover--right-bottom": "this.alignmentRightBottomClass", "class.cds--popover--caret": "this.caret", "class.cds--popover--drop-shadow": "this.dropShadow", "class.cds--popover--high-contrast": "this.highContrast", "class.cds--popover--open": "this.isOpen", "class.cds--popover-container": "this.containerClass" } }, ngImport: i0 });
241
+ PopoverContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContainer, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
242
+ PopoverContainer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: PopoverContainer, selector: "[cdsPopover], [ibmPopover]", inputs: { align: "align", caret: "caret", dropShadow: "dropShadow", highContrast: "highContrast", autoAlign: "autoAlign", isOpen: "isOpen" }, outputs: { onClose: "onClose", onOpen: "onOpen", isOpenChange: "isOpenChange" }, host: { properties: { "class.cds--popover--caret": "this.caret", "class.cds--popover--drop-shadow": "this.dropShadow", "class.cds--popover--high-contrast": "this.highContrast", "class.cds--popover--auto-align": "this.autoAlign", "class.cds--popover-container": "this.containerClass", "class.cds--popover--open": "this.isOpen" } }, usesOnChanges: true, ngImport: i0 });
92
243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContainer, decorators: [{
93
244
  type: Directive,
94
245
  args: [{
95
246
  selector: "[cdsPopover], [ibmPopover]"
96
247
  }]
97
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { alignmentTopClass: [{
98
- type: HostBinding,
99
- args: ["class.cds--popover--top"]
100
- }], alignmentTopLeftClass: [{
101
- type: HostBinding,
102
- args: ["class.cds--popover--top-left"]
103
- }], alignmentTopRightClass: [{
104
- type: HostBinding,
105
- args: ["class.cds--popover--top-right"]
106
- }], alignmentBottomClass: [{
107
- type: HostBinding,
108
- args: ["class.cds--popover--bottom"]
109
- }], alignmentBottomLeftClass: [{
110
- type: HostBinding,
111
- args: ["class.cds--popover--bottom-left"]
112
- }], alignmentBottomRightClass: [{
113
- type: HostBinding,
114
- args: ["class.cds--popover--bottom-right"]
115
- }], alignmentLeftClass: [{
116
- type: HostBinding,
117
- args: ["class.cds--popover--left"]
118
- }], alignmentLeftTopClass: [{
119
- type: HostBinding,
120
- args: ["class.cds--popover--left-top"]
121
- }], alignmentLeftBottomClass: [{
122
- type: HostBinding,
123
- args: ["class.cds--popover--left-bottom"]
124
- }], alignmentRightClass: [{
125
- type: HostBinding,
126
- args: ["class.cds--popover--right"]
127
- }], alignmentRightTopClass: [{
128
- type: HostBinding,
129
- args: ["class.cds--popover--right-top"]
130
- }], alignmentRightBottomClass: [{
131
- type: HostBinding,
132
- args: ["class.cds--popover--right-bottom"]
248
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { align: [{
249
+ type: Input
133
250
  }], onClose: [{
134
251
  type: Output
135
252
  }], onOpen: [{
@@ -151,47 +268,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
151
268
  args: ["class.cds--popover--high-contrast"]
152
269
  }, {
153
270
  type: Input
154
- }], isOpen: [{
271
+ }], autoAlign: [{
155
272
  type: HostBinding,
156
- args: ["class.cds--popover--open"]
273
+ args: ["class.cds--popover--auto-align"]
157
274
  }, {
158
275
  type: Input
159
276
  }], containerClass: [{
160
277
  type: HostBinding,
161
278
  args: ["class.cds--popover-container"]
162
- }], align: [{
279
+ }], isOpen: [{
163
280
  type: Input
281
+ }, {
282
+ type: HostBinding,
283
+ args: ["class.cds--popover--open"]
164
284
  }] } });
165
285
 
166
286
  /**
167
287
  * [See demo](../../?path=/story/components-popover--basic)
168
288
  */
169
289
  class PopoverContent {
170
- constructor() {
290
+ constructor(changeDetectorRef) {
291
+ this.changeDetectorRef = changeDetectorRef;
171
292
  this.popoverClass = true;
293
+ this.autoAlign = false;
294
+ }
295
+ ngAfterViewInit() {
296
+ if (this.popoverContent) {
297
+ // Check we are in a popover with autoAlign enabled
298
+ this.autoAlign = !!this.popoverContent.nativeElement.closest(".cds--popover--auto-align");
299
+ // Run change detection manually to resolve ExpressionHasChanged
300
+ this.changeDetectorRef.detectChanges();
301
+ }
172
302
  }
173
303
  }
174
- PopoverContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
175
- PopoverContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PopoverContent, selector: "cds-popover-content, ibm-popover-content", host: { properties: { "class.cds--popover": "this.popoverClass" } }, ngImport: i0, template: `
176
- <span class="cds--popover-content">
177
- <ng-content></ng-content>
304
+ PopoverContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
305
+ PopoverContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PopoverContent, selector: "cds-popover-content, ibm-popover-content", host: { properties: { "class.cds--popover": "this.popoverClass" } }, viewQueries: [{ propertyName: "popoverContent", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: `
306
+ <span class="cds--popover-content" #content>
307
+ <div>
308
+ <ng-content></ng-content>
309
+ </div>
310
+ <span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>
178
311
  </span>
179
- <span class="cds--popover-caret"></span>
180
- `, isInline: true });
312
+ <span *ngIf="!autoAlign" class="cds--popover-caret"></span>
313
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
181
314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContent, decorators: [{
182
315
  type: Component,
183
316
  args: [{
184
317
  selector: "cds-popover-content, ibm-popover-content",
185
318
  template: `
186
- <span class="cds--popover-content">
187
- <ng-content></ng-content>
319
+ <span class="cds--popover-content" #content>
320
+ <div>
321
+ <ng-content></ng-content>
322
+ </div>
323
+ <span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>
188
324
  </span>
189
- <span class="cds--popover-caret"></span>
325
+ <span *ngIf="!autoAlign" class="cds--popover-caret"></span>
190
326
  `
191
327
  }]
192
- }], propDecorators: { popoverClass: [{
328
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { popoverClass: [{
193
329
  type: HostBinding,
194
330
  args: ["class.cds--popover"]
331
+ }], popoverContent: [{
332
+ type: ViewChild,
333
+ args: ["content"]
195
334
  }] } });
196
335
 
197
336
  class PopoverModule {
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-popover.mjs","sources":["../../src/popover/popover.directive.ts","../../src/popover/popover-content.component.ts","../../src/popover/popover.module.ts","../../src/popover/carbon-components-angular-popover.ts"],"sourcesContent":["import {\n\tChangeDetectorRef,\n\tDirective,\n\tEventEmitter,\n\tHostBinding,\n\tInput,\n\tOutput\n} from \"@angular/core\";\n\n/**\n * Applies popover container styling to the element it is applied to. Get started with importing the module:\n *\n * ```typescript\n * import { PopoverModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-popover--basic)\n */\n@Directive({\n\tselector: \"[cdsPopover], [ibmPopover]\"\n})\nexport class PopoverContainer {\n\t// Top\n\t@HostBinding(\"class.cds--popover--top\") get alignmentTopClass() {\n\t\treturn this.align === \"top\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--top-left\") get alignmentTopLeftClass() {\n\t\treturn this.align === \"top-left\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--top-right\") get alignmentTopRightClass() {\n\t\treturn this.align === \"top-right\";\n\t}\n\n\t// Bottom\n\t@HostBinding(\"class.cds--popover--bottom\") get alignmentBottomClass() {\n\t\treturn this.align === \"bottom\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--bottom-left\") get alignmentBottomLeftClass() {\n\t\treturn this.align === \"bottom-left\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--bottom-right\") get alignmentBottomRightClass() {\n\t\treturn this.align === \"bottom-right\";\n\t}\n\n\t// Left\n\t@HostBinding(\"class.cds--popover--left\") get alignmentLeftClass() {\n\t\treturn this.align === \"left\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--left-top\") get alignmentLeftTopClass() {\n\t\treturn this.align === \"left-top\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--left-bottom\") get alignmentLeftBottomClass() {\n\t\treturn this.align === \"left-bottom\";\n\t}\n\n\t// Right\n\t@HostBinding(\"class.cds--popover--right\") get alignmentRightClass() {\n\t\treturn this.align === \"right\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--right-top\") get alignmentRightTopClass() {\n\t\treturn this.align === \"right-top\";\n\t}\n\n\t@HostBinding(\"class.cds--popover--right-bottom\") get alignmentRightBottomClass() {\n\t\treturn this.align === \"right-bottom\";\n\t}\n\n\t/**\n\t * Emits an event when the dialog is closed\n\t */\n\t@Output() onClose: EventEmitter<Event> = new EventEmitter();\n\t/**\n\t * Emits an event when the dialog is opened\n\t */\n\t@Output() onOpen: EventEmitter<Event> = new EventEmitter();\n\t/**\n\t * Emits an event when the state of `isOpen` changes. Allows `isOpen` to be double bound\n\t */\n\t@Output() isOpenChange = new EventEmitter<boolean>();\n\n\t@HostBinding(\"class.cds--popover--caret\") @Input() caret = true;\n\t@HostBinding(\"class.cds--popover--drop-shadow\") @Input() dropShadow = true;\n\t@HostBinding(\"class.cds--popover--high-contrast\") @Input() highContrast = false;\n\t@HostBinding(\"class.cds--popover--open\") @Input() isOpen = false;\n\n\t@HostBinding(\"class.cds--popover-container\") containerClass = true;\n\t@Input() align: \"top\" | \"top-left\" | \"top-right\" |\n\t\t\"bottom\" | \"bottom-left\" | \"bottom-right\" |\n\t\t\"left\" | \"left-bottom\" | \"left-top\" |\n\t\t\"right\" | \"right-bottom\" | \"right-top\" = \"bottom\";\n\n\tconstructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n\thandleChange(open: boolean, event: Event) {\n\t\tif (this.isOpen !== open) {\n\t\t\tthis.isOpenChange.emit(open);\n\t\t}\n\n\t\tif (open) {\n\t\t\tthis.onOpen.emit(event);\n\t\t} else {\n\t\t\tthis.onClose.emit(event);\n\t\t}\n\t\tthis.isOpen = open;\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n/**\n * [See demo](../../?path=/story/components-popover--basic)\n */\n@Component({\n\tselector: \"cds-popover-content, ibm-popover-content\",\n\ttemplate: `\n\t\t<span class=\"cds--popover-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</span>\n\t\t<span class=\"cds--popover-caret\"></span>\n\t`\n})\nexport class PopoverContent {\n\t@HostBinding(\"class.cds--popover\") popoverClass = true;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PopoverContainer } from \"./popover.directive\";\nimport { PopoverContent } from \"./popover-content.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tPopoverContainer,\n\t\tPopoverContent\n\t],\n\texports: [\n\t\tPopoverContainer,\n\t\tPopoverContent\n\t],\n\timports: [CommonModule]\n})\nexport class PopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-popover.mjs","sources":["../../src/popover/popover.directive.ts","../../src/popover/popover-content.component.ts","../../src/popover/popover.module.ts","../../src/popover/carbon-components-angular-popover.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tChangeDetectorRef,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tHostBinding,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOutput,\n\tRenderer2,\n\tSimpleChanges\n} from \"@angular/core\";\nimport {\n\tarrow,\n\tautoUpdate,\n\tcomputePosition,\n\tflip,\n\toffset,\n\tPlacement\n} from \"@floating-ui/dom\";\n\n// Deprecated popover alignments\ntype oldPlacement = \"top-left\"\n\t| \"top-right\"\n\t| \"bottom-left\"\n\t| \"bottom-right\"\n\t| \"left-bottom\"\n\t| \"left-top\"\n\t| \"right-bottom\"\n\t| \"right-top\";\n\n@Directive({\n\tselector: \"[cdsPopover], [ibmPopover]\"\n})\nexport class PopoverContainer implements AfterViewInit, OnChanges, OnDestroy {\n\t/**\n\t * Set alignment of popover\n\t * As of v5, `oldPlacements` are now deprecated in favor of Placements\n\t *\n\t * When `autoAlign` is set to `true`, alignment may change for best placement\n\t */\n\t@Input() set align(alignment: oldPlacement | Placement) {\n\t\t// If alignment is not passed, the default value will be `undefined`.\n\t\tif (!alignment) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousAlignment = this._align;\n\t\tswitch (alignment) {\n\t\t\tcase \"top-left\":\n\t\t\t\tthis._align = \"top-start\";\n\t\t\t\tbreak;\n\t\t\tcase \"top-right\":\n\t\t\t\tthis._align = \"top-end\";\n\t\t\t\tbreak;\n\t\t\tcase \"bottom-left\":\n\t\t\t\tthis._align = \"bottom-start\";\n\t\t\t\tbreak;\n\t\t\tcase \"bottom-right\":\n\t\t\t\tthis._align = \"bottom-end\";\n\t\t\t\tbreak;\n\t\t\tcase \"left-top\":\n\t\t\t\tthis._align = \"left-start\";\n\t\t\t\tbreak;\n\t\t\tcase \"left-bottom\":\n\t\t\t\tthis._align = \"left-end\";\n\t\t\t\tbreak;\n\t\t\tcase \"right-top\":\n\t\t\t\tthis._align = \"right-start\";\n\t\t\t\tbreak;\n\t\t\tcase \"right-bottom\":\n\t\t\t\tthis._align = \"right-end\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis._align = alignment as Placement;\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.updateAlignmentClass(this._align, previousAlignment);\n\t}\n\n\t_align: Placement = \"bottom\";\n\treadonly alignmentClassPrefix = \"cds--popover--\";\n\n\t/**\n\t * Emits an event when the dialog is closed\n\t */\n\t@Output() onClose: EventEmitter<Event> = new EventEmitter();\n\t/**\n\t * Emits an event when the dialog is opened\n\t */\n\t@Output() onOpen: EventEmitter<Event> = new EventEmitter();\n\t/**\n\t * Emits an event when the state of `isOpen` changes. Allows `isOpen` to be double bound\n\t */\n\t@Output() isOpenChange = new EventEmitter<boolean>();\n\t/**\n\t * Show caret at the alignment position\n\t */\n\t@HostBinding(\"class.cds--popover--caret\") @Input() caret = true;\n\t/**\n\t * Enable drop shadow around the popover container\n\t */\n\t@HostBinding(\"class.cds--popover--drop-shadow\") @Input() dropShadow = true;\n\t/**\n\t * Enable high contrast for popover container\n\t */\n\t@HostBinding(\"class.cds--popover--high-contrast\") @Input() highContrast = false;\n\t/**\n\t * **Experimental**: Use floating-ui to position the tooltip\n\t * This is not toggleable - should be assigned once\n\t */\n\t@HostBinding(\"class.cds--popover--auto-align\") @Input() autoAlign = false;\n\t@HostBinding(\"class.cds--popover-container\") containerClass = true;\n\t@Input() @HostBinding(\"class.cds--popover--open\") isOpen = false;\n\n\tprotected popoverContentRef: HTMLElement;\n\tprotected caretRef: HTMLElement;\n\tprotected caretOffset: number;\n\tprotected caretHeight: number;\n\tprotected unmountFloatingElement: Function;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected ngZone: NgZone,\n\t\tprotected renderer: Renderer2,\n\t\tprotected changeDetectorRef: ChangeDetectorRef\n\t) {}\n\n\t/**\n\t * Handles emitting open/close event\n\t * @param open - Is the popover container open\n\t * @param event - Event\n\t */\n\thandleChange(open: boolean, event?: Event) {\n\t\t// We only emit the event when parameter has an event to keep existing behavior\n\t\tif ((this.isOpen !== open) && event) {\n\t\t\tthis.isOpenChange.emit(open);\n\t\t}\n\n\t\tif (open) {\n\t\t\tif (event) {\n\t\t\t\tthis.onOpen.emit(event);\n\t\t\t}\n\n\t\t\t// when auto alignment is enabled, use auto update to set the placement for the element\n\t\t\tif (this.autoAlign) {\n\t\t\t\tif (this.caretRef) {\n\t\t\t\t\t// Get caret offset/height property\n\t\t\t\t\t// Getting computed styles once every open, otherwise expensive.\n\t\t\t\t\tconst computedStyle = getComputedStyle(this.caretRef);\n\t\t\t\t\tconst offset = computedStyle.getPropertyValue(\"--cds-popover-offset\");\n\t\t\t\t\tconst height = computedStyle.getPropertyValue(\"--cds-popover-caret-height\");\n\t\t\t\t\tthis.caretOffset = (offset?.includes(\"px\") ? Number(offset.split(\"px\", 1)[0]) : Number(offset.split(\"rem\", 1)[0]) * 16) || 10;\n\t\t\t\t\tthis.caretHeight = (height?.includes(\"px\") ? Number(height.split(\"px\", 1)[0]) : Number(height.split(\"rem\", 1)[0]) * 16) || 6;\n\t\t\t\t}\n\t\t\t\tif (this.elementRef.nativeElement && this.popoverContentRef) {\n\t\t\t\t\tthis.unmountFloatingElement = autoUpdate(\n\t\t\t\t\t\tthis.elementRef.nativeElement,\n\t\t\t\t\t\tthis.popoverContentRef,\n\t\t\t\t\t\tthis.recomputePosition.bind(this)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.cleanUp();\n\t\t\tif (event) {\n\t\t\t\tthis.onClose.emit(event);\n\t\t\t}\n\t\t}\n\t\tthis.isOpen = open;\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\troundByDPR(value) {\n\t\tconst dpr = window.devicePixelRatio || 1;\n\t\treturn Math.round(value * dpr) / dpr;\n\t}\n\n\t/**\n\t * Compute position of tooltip when autoAlign is enabled\n\t */\n\trecomputePosition() {\n\t\t// Run outside of angular zone to avoid unnecessary change detection and rely on floating-ui\n\t\tthis.ngZone.runOutsideAngular(async () => {\n\t\t\tconst { x, y, placement, middlewareData } = await computePosition(\n\t\t\t\tthis.elementRef.nativeElement,\n\t\t\t\tthis.popoverContentRef,\n\t\t\t\t{\n\t\t\t\t\tplacement: this._align,\n\t\t\t\t\tstrategy: \"fixed\",\n\t\t\t\t\tmiddleware: [\n\t\t\t\t\t\toffset(this.caretOffset),\n\t\t\t\t\t\tflip({ fallbackAxisSideDirection: \"start\" }),\n\t\t\t\t\t\tarrow({ element: this.caretRef })\n\t\t\t\t\t]\n\t\t\t\t});\n\n\t\t\tconst previousAlignment = this._align;\n\t\t\tthis._align = placement;\n\t\t\tthis.updateAlignmentClass(this._align, previousAlignment);\n\n\t\t\t// Using CSSOM to manipulate CSS to avoid content security policy inline-src\n\t\t\t// https://github.com/w3c/webappsec-csp/issues/212\n\t\t\tObject.assign(this.popoverContentRef.style, {\n\t\t\t\tposition: \"fixed\",\n\t\t\t\ttop: \"0\",\n\t\t\t\tleft: \"0\",\n\t\t\t\t// Using transform instead of top/left position to improve performance\n\t\t\t\ttransform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`\n\t\t\t});\n\n\t\t\tif (middlewareData.arrow) {\n\t\t\t\tconst { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n\t\t\t\tconst staticSide = {\n\t\t\t\t\ttop: \"bottom\",\n\t\t\t\t\tright: \"left\",\n\t\t\t\t\tbottom: \"top\",\n\t\t\t\t\tleft: \"right\"\n\t\t\t\t}[placement.split(\"-\")[0]];\n\n\t\t\t\tthis.caretRef.style.left = arrowX != null ? `${arrowX}px` : \"\";\n\t\t\t\tthis.caretRef.style.top = arrowY != null ? `${arrowY}px` : \"\";\n\t\t\t\tthis.caretRef.style.right = \"\";\n\t\t\t\tthis.caretRef.style.bottom = \"\";\n\n\t\t\t\tif (staticSide) {\n\t\t\t\t\tthis.caretRef.style[staticSide] = `${-this.caretHeight}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Close the popover and reopen it with updated values without emitting an event\n\t * @param changes\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\t// Close and reopen the popover, handle alignment/programmatic open/close\n\t\tconst originalState = this.isOpen;\n\t\tthis.handleChange(false);\n\n\t\t// Ignore first change since content is not initialized\n\t\tif (changes.autoAlign && !changes.autoAlign.firstChange) {\n\t\t\t// Reset the inline styles\n\t\t\tthis.popoverContentRef = this.elementRef.nativeElement.querySelector(\".cds--popover-content\");\n\t\t\tthis.popoverContentRef.setAttribute(\"style\", \"\");\n\t\t\tthis.caretRef = this.elementRef.nativeElement.querySelector(\"span.cds--popover-caret\");\n\t\t}\n\n\t\tthis.handleChange(originalState);\n\t}\n\n\t/**\n\t * Handle initialization of element\n\t */\n\tngAfterViewInit(): void {\n\t\tthis.initializeReferences();\n\t}\n\n\tinitializeReferences(): void {\n\t\tthis.updateAlignmentClass(this._align);\n\n\t\t// Initialize html references since they will not change and are required for popover components\n\t\tthis.popoverContentRef = this.elementRef.nativeElement.querySelector(\".cds--popover-content\");\n\t\tthis.caretRef = this.elementRef.nativeElement.querySelector(\"span.cds--popover-caret\");\n\n\t\t// Handle initial isOpen\n\t\tthis.handleChange(this.isOpen);\n\t}\n\n\t/**\n\t * Clean up\n\t */\n\tngOnDestroy(): void {\n\t\tthis.cleanUp();\n\t}\n\n\t/**\n\t * Clean up `autoUpdate` if auto alignment is enabled\n\t */\n\tcleanUp() {\n\t\tif (this.unmountFloatingElement) {\n\t\t\tthis.unmountFloatingElement();\n\t\t}\n\t\tthis.unmountFloatingElement = undefined;\n\t}\n\n\t/**\n\t * Replace existing previous alignment class with new\n\t * @param previousAlignment\n\t */\n\tupdateAlignmentClass(newAlignment: string, previousAlignment?: string) {\n\t\tif (this.elementRef.nativeElement && previousAlignment !== newAlignment) {\n\t\t\tconst regexp = new RegExp(\"right|top|left|bottom\");\n\t\t\t// Since we are constantly switching, it's safer to delete all matching class names\n\t\t\tthis.elementRef.nativeElement.classList.forEach(className => {\n\t\t\t\tif (regexp.test(className)) {\n\t\t\t\t\tthis.renderer.removeClass(this.elementRef.nativeElement, `${className}`);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.renderer.addClass(this.elementRef.nativeElement, `${this.alignmentClassPrefix}${newAlignment}`);\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tHostBinding,\n\tViewChild,\n\tElementRef,\n\tAfterViewInit,\n\tChangeDetectorRef\n} from \"@angular/core\";\n\n/**\n * [See demo](../../?path=/story/components-popover--basic)\n */\n@Component({\n\tselector: \"cds-popover-content, ibm-popover-content\",\n\ttemplate: `\n\t\t<span class=\"cds--popover-content\" #content>\n\t\t\t<div>\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</div>\n\t\t\t<span *ngIf=\"autoAlign\" class=\"cds--popover-caret cds--popover--auto-align\"></span>\n\t\t</span>\n\t\t<span *ngIf=\"!autoAlign\" class=\"cds--popover-caret\"></span>\n\t`\n})\nexport class PopoverContent implements AfterViewInit {\n\t@HostBinding(\"class.cds--popover\") popoverClass = true;\n\t@ViewChild(\"content\") popoverContent: ElementRef;\n\tautoAlign = false;\n\n\tconstructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n\tngAfterViewInit(): void {\n\t\tif (this.popoverContent) {\n\t\t\t// Check we are in a popover with autoAlign enabled\n\t\t\tthis.autoAlign = !!this.popoverContent.nativeElement.closest(\".cds--popover--auto-align\");\n\t\t\t// Run change detection manually to resolve ExpressionHasChanged\n\t\t\tthis.changeDetectorRef.detectChanges();\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PopoverContainer } from \"./popover.directive\";\nimport { PopoverContent } from \"./popover-content.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tPopoverContainer,\n\t\tPopoverContent\n\t],\n\texports: [\n\t\tPopoverContainer,\n\t\tPopoverContent\n\t],\n\timports: [CommonModule]\n})\nexport class PopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -93,11 +93,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
93
93
  * [See demo](../../?path=/story/components-toggletip--basic)
94
94
  */
95
95
  class Toggletip extends PopoverContainer {
96
- constructor(hostElement, renderer, ref) {
97
- super(ref);
96
+ constructor(hostElement, ngZone, renderer, changeDetectorRef) {
97
+ super(hostElement, ngZone, renderer, changeDetectorRef);
98
98
  this.hostElement = hostElement;
99
+ this.ngZone = ngZone;
99
100
  this.renderer = renderer;
100
- this.ref = ref;
101
+ this.changeDetectorRef = changeDetectorRef;
101
102
  this.id = `tooltip-${Toggletip.toggletipCounter++}`;
102
103
  this.toggletipClass = true;
103
104
  this.isOpen = false;
@@ -106,6 +107,7 @@ class Toggletip extends PopoverContainer {
106
107
  this.dropShadow = false;
107
108
  }
108
109
  ngAfterViewInit() {
110
+ this.initializeReferences();
109
111
  // Listen for click events on trigger
110
112
  fromEvent(this.btn.nativeElement, "click")
111
113
  .subscribe((event) => {
@@ -146,7 +148,7 @@ class Toggletip extends PopoverContainer {
146
148
  }
147
149
  }
148
150
  Toggletip.toggletipCounter = 0;
149
- Toggletip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Toggletip, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
151
+ Toggletip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Toggletip, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
150
152
  Toggletip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Toggletip, selector: "cds-toggletip, ibm-toggletip", inputs: { id: "id", isOpen: "isOpen" }, host: { listeners: { "keyup": "hostkeys($event)" }, properties: { "class.cds--toggletip": "this.toggletipClass", "class.cds--toggletip--open": "this.isOpen" } }, queries: [{ propertyName: "btn", first: true, predicate: ToggletipButton, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
151
153
  <ng-content select="[cdsToggletipButton]"></ng-content>
152
154
  <cds-popover-content>
@@ -165,7 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
165
167
  </cds-popover-content>
166
168
  `
167
169
  }]
168
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
170
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
169
171
  type: Input
170
172
  }], toggletipClass: [{
171
173
  type: HostBinding,
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-toggletip.mjs","sources":["../../src/toggletip/toggletip-action.directive.ts","../../src/toggletip/toggletip-button.directive.ts","../../src/toggletip/toggletip-content.directive.ts","../../src/toggletip/toggletip-label.directive.ts","../../src/toggletip/toggletip.component.ts","../../src/toggletip/toggletip.module.ts","../../src/toggletip/carbon-components-angular-toggletip.ts"],"sourcesContent":["import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipAction], [ibmToggletipAction]\"\n})\nexport class ToggletipAction {\n\t@HostBinding(\"class.cds--toggletip-actions\") toggleTipActions = true;\n}\n","import {\n\tDirective,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipButton], [ibmToggletipButton]\"\n})\nexport class ToggletipButton {\n\t@HostBinding(\"class.cds--toggletip-button\") toggletipButton = true;\n\t@HostBinding(\"attr.type\") toggletipButtonType = \"button\";\n\t@HostBinding(\"attr.aria-label\") @Input() ariaLabel = \"Show information\";\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipContent], [ibmToggletipContent]\"\n})\nexport class ToggletipContent {\n\t@HostBinding(\"class.cds--toggletip-content\") toggletipContent = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipLabel], [ibmToggletipLabel]\"\n})\nexport class ToggletipLabel {\n\t@HostBinding(\"class.cds--toggletip-label\") toggleTipLabel = true;\n}\n","import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tHostBinding,\n\tHostListener,\n\tInput,\n\tRenderer2\n} from \"@angular/core\";\nimport { fromEvent } from \"rxjs\";\nimport { PopoverContainer } from \"carbon-components-angular/popover\";\nimport { ToggletipButton } from \"./toggletip-button.directive\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ToggletipModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-toggletip--basic)\n */\n@Component({\n\tselector: \"cds-toggletip, ibm-toggletip\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-content select=\"[cdsToggletipButton]\"></ng-content>\n\t\t<cds-popover-content>\n\t\t\t<ng-content select=\"[cdsToggletipContent]\"></ng-content>\n\t\t</cds-popover-content>\n\t`\n})\nexport class Toggletip extends PopoverContainer implements AfterViewInit {\n\tstatic toggletipCounter = 0;\n\n\t@Input() id = `tooltip-${Toggletip.toggletipCounter++}`;\n\n\t@HostBinding(\"class.cds--toggletip\") toggletipClass = true;\n\t@HostBinding(\"class.cds--toggletip--open\") @Input() isOpen = false;\n\n\t@ContentChild(ToggletipButton, { read: ElementRef }) btn!: ElementRef;\n\n\tdocumentClick = this.handleFocusOut.bind(this);\n\n\tconstructor(private hostElement: ElementRef, private renderer: Renderer2, private ref: ChangeDetectorRef) {\n\t\tsuper(ref);\n\t\tthis.highContrast = true;\n\t\tthis.dropShadow = false;\n\t}\n\n\tngAfterViewInit(): void {\n\t\t// Listen for click events on trigger\n\t\tfromEvent(this.btn.nativeElement, \"click\")\n\t\t\t.subscribe((event: Event) => {\n\t\t\t\t// Add/Remove event listener based on isOpen to improve performance when there\n\t\t\t\t// are a lot of toggletips\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tdocument.removeEventListener(\"click\", this.documentClick);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t\t\t}\n\n\t\t\t\tthis.handleExpansion(!this.isOpen, event);\n\t\t\t});\n\n\t\t// Toggletip is open on initial render, add 'click' event listener to document so users can close\n\t\tif (this.isOpen) {\n\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t}\n\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-controls\", this.id);\n\t\t}\n\t}\n\n\t@HostListener(\"keyup\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tif (open && event.key === \"Escape\") {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\thandleFocusOut(event) {\n\t\tif (!this.hostElement.nativeElement.contains(event.target)) {\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\tprivate handleExpansion(state = false, event: Event) {\n\t\tthis.handleChange(state, event);\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-expanded\", this.isOpen.toString());\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PopoverModule } from \"carbon-components-angular/popover\";\n\nimport { ToggletipLabel } from \"./toggletip-label.directive\";\nimport { ToggletipAction } from \"./toggletip-action.directive\";\nimport { Toggletip } from \"./toggletip.component\";\nimport { ToggletipButton } from \"./toggletip-button.directive\";\nimport { ToggletipContent } from \"./toggletip-content.directive\";\n\n@NgModule({\n\tdeclarations: [\n\t\tToggletip,\n\t\tToggletipLabel,\n\t\tToggletipAction,\n\t\tToggletipButton,\n\t\tToggletipContent\n\t],\n\texports: [\n\t\tToggletip,\n\t\tToggletipLabel,\n\t\tToggletipAction,\n\t\tToggletipButton,\n\t\tToggletipContent\n\t],\n\timports: [CommonModule, PopoverModule]\n})\nexport class ToggletipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-toggletip.mjs","sources":["../../src/toggletip/toggletip-action.directive.ts","../../src/toggletip/toggletip-button.directive.ts","../../src/toggletip/toggletip-content.directive.ts","../../src/toggletip/toggletip-label.directive.ts","../../src/toggletip/toggletip.component.ts","../../src/toggletip/toggletip.module.ts","../../src/toggletip/carbon-components-angular-toggletip.ts"],"sourcesContent":["import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipAction], [ibmToggletipAction]\"\n})\nexport class ToggletipAction {\n\t@HostBinding(\"class.cds--toggletip-actions\") toggleTipActions = true;\n}\n","import {\n\tDirective,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipButton], [ibmToggletipButton]\"\n})\nexport class ToggletipButton {\n\t@HostBinding(\"class.cds--toggletip-button\") toggletipButton = true;\n\t@HostBinding(\"attr.type\") toggletipButtonType = \"button\";\n\t@HostBinding(\"attr.aria-label\") @Input() ariaLabel = \"Show information\";\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipContent], [ibmToggletipContent]\"\n})\nexport class ToggletipContent {\n\t@HostBinding(\"class.cds--toggletip-content\") toggletipContent = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToggletipLabel], [ibmToggletipLabel]\"\n})\nexport class ToggletipLabel {\n\t@HostBinding(\"class.cds--toggletip-label\") toggleTipLabel = true;\n}\n","import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tHostBinding,\n\tHostListener,\n\tInput,\n\tNgZone,\n\tRenderer2\n} from \"@angular/core\";\nimport { fromEvent } from \"rxjs\";\nimport { PopoverContainer } from \"carbon-components-angular/popover\";\nimport { ToggletipButton } from \"./toggletip-button.directive\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ToggletipModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-toggletip--basic)\n */\n@Component({\n\tselector: \"cds-toggletip, ibm-toggletip\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-content select=\"[cdsToggletipButton]\"></ng-content>\n\t\t<cds-popover-content>\n\t\t\t<ng-content select=\"[cdsToggletipContent]\"></ng-content>\n\t\t</cds-popover-content>\n\t`\n})\nexport class Toggletip extends PopoverContainer implements AfterViewInit {\n\tstatic toggletipCounter = 0;\n\n\t@Input() id = `tooltip-${Toggletip.toggletipCounter++}`;\n\n\t@HostBinding(\"class.cds--toggletip\") toggletipClass = true;\n\t@HostBinding(\"class.cds--toggletip--open\") @Input() isOpen = false;\n\n\t@ContentChild(ToggletipButton, { read: ElementRef }) btn!: ElementRef;\n\n\tdocumentClick = this.handleFocusOut.bind(this);\n\n\tconstructor(\n\t\tprotected hostElement: ElementRef,\n\t\tprotected ngZone: NgZone,\n\t\tprotected renderer: Renderer2,\n\t\tprotected changeDetectorRef: ChangeDetectorRef\n\t) {\n\t\tsuper(hostElement, ngZone, renderer, changeDetectorRef);\n\t\tthis.highContrast = true;\n\t\tthis.dropShadow = false;\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.initializeReferences();\n\n\t\t// Listen for click events on trigger\n\t\tfromEvent(this.btn.nativeElement, \"click\")\n\t\t\t.subscribe((event: Event) => {\n\t\t\t\t// Add/Remove event listener based on isOpen to improve performance when there\n\t\t\t\t// are a lot of toggletips\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tdocument.removeEventListener(\"click\", this.documentClick);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t\t\t}\n\n\t\t\t\tthis.handleExpansion(!this.isOpen, event);\n\t\t\t});\n\n\t\t// Toggletip is open on initial render, add 'click' event listener to document so users can close\n\t\tif (this.isOpen) {\n\t\t\tdocument.addEventListener(\"click\", this.documentClick);\n\t\t}\n\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-controls\", this.id);\n\t\t}\n\t}\n\n\t@HostListener(\"keyup\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tif (open && event.key === \"Escape\") {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\thandleFocusOut(event) {\n\t\tif (!this.hostElement.nativeElement.contains(event.target)) {\n\t\t\tthis.handleExpansion(false, event);\n\t\t}\n\t}\n\n\tprivate handleExpansion(state = false, event: Event) {\n\t\tthis.handleChange(state, event);\n\t\tif (this.btn) {\n\t\t\tthis.renderer.setAttribute(this.btn.nativeElement, \"aria-expanded\", this.isOpen.toString());\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PopoverModule } from \"carbon-components-angular/popover\";\n\nimport { ToggletipLabel } from \"./toggletip-label.directive\";\nimport { ToggletipAction } from \"./toggletip-action.directive\";\nimport { Toggletip } from \"./toggletip.component\";\nimport { ToggletipButton } from \"./toggletip-button.directive\";\nimport { ToggletipContent } from \"./toggletip-content.directive\";\n\n@NgModule({\n\tdeclarations: [\n\t\tToggletip,\n\t\tToggletipLabel,\n\t\tToggletipAction,\n\t\tToggletipButton,\n\t\tToggletipContent\n\t],\n\texports: [\n\t\tToggletip,\n\t\tToggletipLabel,\n\t\tToggletipAction,\n\t\tToggletipButton,\n\t\tToggletipContent\n\t],\n\timports: [CommonModule, PopoverModule]\n})\nexport class ToggletipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}