carbon-components-angular 5.22.0 → 5.23.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 (74) hide show
  1. package/docs/documentation/components/DatePicker.html +61 -75
  2. package/docs/documentation/components/PopoverContent.html +215 -11
  3. package/docs/documentation/components/Toggletip.html +843 -460
  4. package/docs/documentation/components/Tooltip.html +1057 -607
  5. package/docs/documentation/components/TooltipDefinition.html +977 -538
  6. package/docs/documentation/coverage.html +20 -20
  7. package/docs/documentation/dependencies.html +3 -1
  8. package/docs/documentation/directives/PopoverContainer.html +1019 -638
  9. package/docs/documentation/images/coverage-badge-documentation.svg +1 -1
  10. package/docs/documentation/js/search/search_index.js +2 -2
  11. package/docs/documentation/miscellaneous/typealiases.html +21 -0
  12. package/docs/documentation/modules/ThemeModule/dependencies.svg +15 -15
  13. package/docs/documentation/modules/ThemeModule.html +15 -15
  14. package/docs/documentation/modules/TilesModule/dependencies.svg +99 -99
  15. package/docs/documentation/modules/TilesModule.html +99 -99
  16. package/docs/documentation/modules/TimePickerModule/dependencies.svg +4 -4
  17. package/docs/documentation/modules/TimePickerModule.html +4 -4
  18. package/docs/documentation/modules/ToggletipModule/dependencies.svg +37 -37
  19. package/docs/documentation/modules/ToggletipModule.html +37 -37
  20. package/docs/documentation/modules/TooltipModule/dependencies.svg +4 -4
  21. package/docs/documentation/modules/TooltipModule.html +4 -4
  22. package/docs/documentation/modules/TreeviewModule/dependencies.svg +38 -38
  23. package/docs/documentation/modules/TreeviewModule.html +38 -38
  24. package/docs/documentation.json +1611 -837
  25. package/docs/storybook/1562.1e6a79b6.iframe.bundle.js +1 -0
  26. package/docs/storybook/4578.c90d4756.iframe.bundle.js +1 -0
  27. package/docs/storybook/datepicker-datepicker-stories.1d3d1000.iframe.bundle.js +1 -0
  28. package/docs/storybook/iframe.html +2 -2
  29. package/docs/storybook/index.json +1 -1
  30. package/docs/storybook/main.css +1156 -571
  31. package/docs/storybook/main.fbe9a501.iframe.bundle.js +1 -0
  32. package/docs/storybook/popover-popover-stories.db1735d2.iframe.bundle.js +1 -0
  33. package/docs/storybook/project.json +1 -1
  34. package/docs/storybook/runtime~main.e6146719.iframe.bundle.js +1 -0
  35. package/docs/storybook/stories.json +1 -1
  36. package/docs/storybook/toggletip-toggletip-stories.7265233d.iframe.bundle.js +1 -0
  37. package/docs/storybook/tooltip-definition-tooptip-stories.af38c73f.iframe.bundle.js +1 -0
  38. package/docs/storybook/tooltip-tooltip-stories.65d7c699.iframe.bundle.js +1 -0
  39. package/esm2020/datepicker/datepicker.component.mjs +2 -9
  40. package/esm2020/popover/popover-content.component.mjs +33 -13
  41. package/esm2020/popover/popover.directive.mjs +216 -97
  42. package/esm2020/toggletip/toggletip.component.mjs +8 -6
  43. package/esm2020/tooltip/definition-tooptip.component.mjs +14 -15
  44. package/esm2020/tooltip/tooltip.component.mjs +13 -8
  45. package/fesm2015/carbon-components-angular-datepicker.mjs +1 -8
  46. package/fesm2015/carbon-components-angular-datepicker.mjs.map +1 -1
  47. package/fesm2015/carbon-components-angular-popover.mjs +248 -108
  48. package/fesm2015/carbon-components-angular-popover.mjs.map +1 -1
  49. package/fesm2015/carbon-components-angular-toggletip.mjs +7 -5
  50. package/fesm2015/carbon-components-angular-toggletip.mjs.map +1 -1
  51. package/fesm2015/carbon-components-angular-tooltip.mjs +25 -21
  52. package/fesm2015/carbon-components-angular-tooltip.mjs.map +1 -1
  53. package/fesm2020/carbon-components-angular-datepicker.mjs +1 -8
  54. package/fesm2020/carbon-components-angular-datepicker.mjs.map +1 -1
  55. package/fesm2020/carbon-components-angular-popover.mjs +247 -108
  56. package/fesm2020/carbon-components-angular-popover.mjs.map +1 -1
  57. package/fesm2020/carbon-components-angular-toggletip.mjs +7 -5
  58. package/fesm2020/carbon-components-angular-toggletip.mjs.map +1 -1
  59. package/fesm2020/carbon-components-angular-tooltip.mjs +25 -21
  60. package/fesm2020/carbon-components-angular-tooltip.mjs.map +1 -1
  61. package/package.json +3 -2
  62. package/popover/popover-content.component.d.ts +7 -1
  63. package/popover/popover.directive.d.ts +74 -29
  64. package/toggletip/toggletip.component.d.ts +6 -5
  65. package/tooltip/definition-tooptip.component.d.ts +7 -8
  66. package/tooltip/tooltip.component.d.ts +6 -3
  67. package/docs/storybook/4578.93dc52a7.iframe.bundle.js +0 -1
  68. package/docs/storybook/datepicker-datepicker-stories.96effc6c.iframe.bundle.js +0 -1
  69. package/docs/storybook/main.d4ed0d37.iframe.bundle.js +0 -1
  70. package/docs/storybook/popover-popover-stories.cc1684df.iframe.bundle.js +0 -1
  71. package/docs/storybook/runtime~main.2883decf.iframe.bundle.js +0 -1
  72. package/docs/storybook/toggletip-toggletip-stories.22e37008.iframe.bundle.js +0 -1
  73. package/docs/storybook/tooltip-definition-tooptip-stories.2e1a211c.iframe.bundle.js +0 -1
  74. package/docs/storybook/tooltip-tooltip-stories.6a4a1383.iframe.bundle.js +0 -1
@@ -1,19 +1,18 @@
1
+ import { __awaiter } from 'tslib';
1
2
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Directive, HostBinding, Output, Input, Component, NgModule } from '@angular/core';
3
+ import { EventEmitter, Directive, Input, Output, HostBinding, Component, ViewChild, NgModule } from '@angular/core';
4
+ import { autoUpdate, computePosition, offset, flip, arrow } from '@floating-ui/dom';
5
+ import * as i1 from '@angular/common';
3
6
  import { CommonModule } from '@angular/common';
4
7
 
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
8
  class PopoverContainer {
15
- constructor(changeDetectorRef) {
9
+ constructor(elementRef, ngZone, renderer, changeDetectorRef) {
10
+ this.elementRef = elementRef;
11
+ this.ngZone = ngZone;
12
+ this.renderer = renderer;
16
13
  this.changeDetectorRef = changeDetectorRef;
14
+ this._align = "bottom";
15
+ this.alignmentClassPrefix = "cds--popover--";
17
16
  /**
18
17
  * Emits an event when the dialog is closed
19
18
  */
@@ -26,110 +25,229 @@ class PopoverContainer {
26
25
  * Emits an event when the state of `isOpen` changes. Allows `isOpen` to be double bound
27
26
  */
28
27
  this.isOpenChange = new EventEmitter();
28
+ /**
29
+ * Show caret at the alignment position
30
+ */
29
31
  this.caret = true;
32
+ /**
33
+ * Enable drop shadow around the popover container
34
+ */
30
35
  this.dropShadow = true;
31
- this.highContrast = false;
32
- this.isOpen = false;
36
+ /**
37
+ * Enable high contrast for popover container
38
+ */
39
+ this.highContrast = true;
40
+ /**
41
+ * **Experimental**: Use floating-ui to position the tooltip
42
+ * This is not toggleable - should be sent once
43
+ */
44
+ this.autoAlign = false;
33
45
  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";
46
+ this.isOpen = false;
72
47
  }
73
- get alignmentRightBottomClass() {
74
- return this.align === "right-bottom";
48
+ /**
49
+ * Set alignment of popover
50
+ * As of v5, `oldPlacements` are now deprecated in favor of Placements
51
+ *
52
+ * When `autoAlign` is set to `true`, alignment may change for best placement
53
+ */
54
+ set align(alignment) {
55
+ // If alignment is not passed, the default value will be `undefined`.
56
+ if (!alignment) {
57
+ return;
58
+ }
59
+ const previousAlignment = this._align;
60
+ switch (alignment) {
61
+ case "top-left":
62
+ this._align = "top-start";
63
+ break;
64
+ case "top-right":
65
+ this._align = "top-end";
66
+ break;
67
+ case "bottom-left":
68
+ this._align = "bottom-start";
69
+ break;
70
+ case "bottom-right":
71
+ this._align = "bottom-end";
72
+ break;
73
+ case "left-top":
74
+ this._align = "left-start";
75
+ break;
76
+ case "left-bottom":
77
+ this._align = "left-end";
78
+ break;
79
+ case "right-top":
80
+ this._align = "right-start";
81
+ break;
82
+ case "right-bottom":
83
+ this._align = "right-end";
84
+ break;
85
+ default:
86
+ this._align = alignment;
87
+ break;
88
+ }
89
+ this.updateAlignmentClass(this._align, previousAlignment);
75
90
  }
91
+ /**
92
+ * Handles emitting open/close event
93
+ * @param open - Is the popover container open
94
+ * @param event - Event
95
+ */
76
96
  handleChange(open, event) {
77
- if (this.isOpen !== open) {
97
+ // We only emit the event when parameter has an event to keep existing behavior
98
+ if ((this.isOpen !== open) && event) {
78
99
  this.isOpenChange.emit(open);
79
100
  }
80
101
  if (open) {
81
- this.onOpen.emit(event);
102
+ if (event) {
103
+ this.onOpen.emit(event);
104
+ }
105
+ // when auto alignment is enabled, use auto update to set the placement for the element
106
+ if (this.autoAlign) {
107
+ if (this.caretRef) {
108
+ // Get caret offset/height property
109
+ // Getting computed styles once every open, otherwise expensive.
110
+ const computedStyle = getComputedStyle(this.caretRef);
111
+ const offset = computedStyle.getPropertyValue("--cds-popover-offset");
112
+ const height = computedStyle.getPropertyValue("--cds-popover-caret-height");
113
+ this.caretOffset = ((offset === null || offset === void 0 ? void 0 : offset.includes("px")) ? Number(offset.split("px", 1)[0]) : Number(offset.split("rem", 1)[0]) * 16) || 10;
114
+ this.caretHeight = ((height === null || height === void 0 ? void 0 : height.includes("px")) ? Number(height.split("px", 1)[0]) : Number(height.split("rem", 1)[0]) * 16) || 6;
115
+ }
116
+ if (this.elementRef.nativeElement && this.popoverContentRef) {
117
+ this.unmountFloatingElement = autoUpdate(this.elementRef.nativeElement, this.popoverContentRef, this.recomputePosition.bind(this));
118
+ }
119
+ }
82
120
  }
83
121
  else {
84
- this.onClose.emit(event);
122
+ this.cleanUp();
123
+ if (event) {
124
+ this.onClose.emit(event);
125
+ }
85
126
  }
86
127
  this.isOpen = open;
87
128
  this.changeDetectorRef.markForCheck();
88
129
  }
130
+ roundByDPR(value) {
131
+ const dpr = window.devicePixelRatio || 1;
132
+ return Math.round(value * dpr) / dpr;
133
+ }
134
+ /**
135
+ * Compute position of tooltip when autoAlign is enabled
136
+ */
137
+ recomputePosition() {
138
+ // Run outside of angular zone to avoid unnecessary change detection and rely on floating-ui
139
+ this.ngZone.runOutsideAngular(() => __awaiter(this, void 0, void 0, function* () {
140
+ const { x, y, placement, middlewareData } = yield computePosition(this.elementRef.nativeElement, this.popoverContentRef, {
141
+ placement: this._align,
142
+ strategy: "fixed",
143
+ middleware: [
144
+ offset(this.caretOffset),
145
+ flip({ fallbackAxisSideDirection: "start" }),
146
+ arrow({ element: this.caretRef })
147
+ ]
148
+ });
149
+ const previousAlignment = this._align;
150
+ this._align = placement;
151
+ this.updateAlignmentClass(this._align, previousAlignment);
152
+ // Using CSSOM to manipulate CSS to avoid content security policy inline-src
153
+ // https://github.com/w3c/webappsec-csp/issues/212
154
+ Object.assign(this.popoverContentRef.style, {
155
+ position: "fixed",
156
+ top: "0",
157
+ left: "0",
158
+ // Using transform instead of top/left position to improve performance
159
+ transform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`
160
+ });
161
+ if (middlewareData.arrow) {
162
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
163
+ const staticSide = {
164
+ top: "bottom",
165
+ right: "left",
166
+ bottom: "top",
167
+ left: "right"
168
+ }[placement.split("-")[0]];
169
+ this.caretRef.style.left = arrowX != null ? `${arrowX}px` : "";
170
+ this.caretRef.style.top = arrowY != null ? `${arrowY}px` : "";
171
+ this.caretRef.style.right = "";
172
+ this.caretRef.style.bottom = "";
173
+ if (staticSide) {
174
+ this.caretRef.style[staticSide] = `${-this.caretHeight}px`;
175
+ }
176
+ }
177
+ }));
178
+ }
179
+ /**
180
+ * Close the popover and reopen it with updated values without emitting an event
181
+ * @param changes
182
+ */
183
+ ngOnChanges(changes) {
184
+ // Close and reopen the popover, handle alignment/programmatic open/close
185
+ const originalState = this.isOpen;
186
+ this.handleChange(false);
187
+ // Ignore first change since content is not initialized
188
+ if (changes.autoAlign && !changes.autoAlign.firstChange) {
189
+ // Reset the inline styles
190
+ this.popoverContentRef = this.elementRef.nativeElement.querySelector(".cds--popover-content");
191
+ this.popoverContentRef.setAttribute("style", "");
192
+ this.caretRef = this.elementRef.nativeElement.querySelector("span.cds--popover-caret");
193
+ }
194
+ this.handleChange(originalState);
195
+ }
196
+ /**
197
+ * Handle initialization of element
198
+ */
199
+ ngAfterViewInit() {
200
+ this.initializeReferences();
201
+ }
202
+ initializeReferences() {
203
+ this.updateAlignmentClass(this._align);
204
+ // Initialize html references since they will not change and are required for popover components
205
+ this.popoverContentRef = this.elementRef.nativeElement.querySelector(".cds--popover-content");
206
+ this.caretRef = this.elementRef.nativeElement.querySelector("span.cds--popover-caret");
207
+ // Handle initial isOpen
208
+ this.handleChange(this.isOpen);
209
+ }
210
+ /**
211
+ * Clean up
212
+ */
213
+ ngOnDestroy() {
214
+ this.cleanUp();
215
+ }
216
+ /**
217
+ * Clean up `autoUpdate` if auto alignment is enabled
218
+ */
219
+ cleanUp() {
220
+ if (this.unmountFloatingElement) {
221
+ this.unmountFloatingElement();
222
+ }
223
+ this.unmountFloatingElement = undefined;
224
+ }
225
+ /**
226
+ * Replace existing previous alignment class with new
227
+ * @param previousAlignment
228
+ */
229
+ updateAlignmentClass(newAlignment, previousAlignment) {
230
+ if (this.elementRef.nativeElement && previousAlignment !== newAlignment) {
231
+ const regexp = new RegExp("right|top|left|bottom");
232
+ // Since we are constantly switching, it's safer to delete all matching class names
233
+ this.elementRef.nativeElement.classList.forEach(className => {
234
+ if (regexp.test(className)) {
235
+ this.renderer.removeClass(this.elementRef.nativeElement, `${className}`);
236
+ }
237
+ });
238
+ this.renderer.addClass(this.elementRef.nativeElement, `${this.alignmentClassPrefix}${newAlignment}`);
239
+ }
240
+ }
89
241
  }
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 });
242
+ 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 });
243
+ 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
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContainer, decorators: [{
93
245
  type: Directive,
94
246
  args: [{
95
247
  selector: "[cdsPopover], [ibmPopover]"
96
248
  }]
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"]
249
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { align: [{
250
+ type: Input
133
251
  }], onClose: [{
134
252
  type: Output
135
253
  }], onOpen: [{
@@ -151,47 +269,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
151
269
  args: ["class.cds--popover--high-contrast"]
152
270
  }, {
153
271
  type: Input
154
- }], isOpen: [{
272
+ }], autoAlign: [{
155
273
  type: HostBinding,
156
- args: ["class.cds--popover--open"]
274
+ args: ["class.cds--popover--auto-align"]
157
275
  }, {
158
276
  type: Input
159
277
  }], containerClass: [{
160
278
  type: HostBinding,
161
279
  args: ["class.cds--popover-container"]
162
- }], align: [{
280
+ }], isOpen: [{
163
281
  type: Input
282
+ }, {
283
+ type: HostBinding,
284
+ args: ["class.cds--popover--open"]
164
285
  }] } });
165
286
 
166
287
  /**
167
288
  * [See demo](../../?path=/story/components-popover--basic)
168
289
  */
169
290
  class PopoverContent {
170
- constructor() {
291
+ constructor(changeDetectorRef) {
292
+ this.changeDetectorRef = changeDetectorRef;
171
293
  this.popoverClass = true;
294
+ this.autoAlign = false;
295
+ }
296
+ ngAfterViewInit() {
297
+ if (this.popoverContent) {
298
+ // Check we are in a popover with autoAlign enabled
299
+ this.autoAlign = !!this.popoverContent.nativeElement.closest(".cds--popover--auto-align");
300
+ // Run change detection manually to resolve ExpressionHasChanged
301
+ this.changeDetectorRef.detectChanges();
302
+ }
172
303
  }
173
304
  }
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>
305
+ PopoverContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
306
+ 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: `
307
+ <span class="cds--popover-content" #content>
308
+ <div>
309
+ <ng-content></ng-content>
310
+ </div>
311
+ <span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>
178
312
  </span>
179
- <span class="cds--popover-caret"></span>
180
- `, isInline: true });
313
+ <span *ngIf="!autoAlign" class="cds--popover-caret"></span>
314
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
181
315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopoverContent, decorators: [{
182
316
  type: Component,
183
317
  args: [{
184
318
  selector: "cds-popover-content, ibm-popover-content",
185
319
  template: `
186
- <span class="cds--popover-content">
187
- <ng-content></ng-content>
320
+ <span class="cds--popover-content" #content>
321
+ <div>
322
+ <ng-content></ng-content>
323
+ </div>
324
+ <span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>
188
325
  </span>
189
- <span class="cds--popover-caret"></span>
326
+ <span *ngIf="!autoAlign" class="cds--popover-caret"></span>
190
327
  `
191
328
  }]
192
- }], propDecorators: { popoverClass: [{
329
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { popoverClass: [{
193
330
  type: HostBinding,
194
331
  args: ["class.cds--popover"]
332
+ }], popoverContent: [{
333
+ type: ViewChild,
334
+ args: ["content"]
195
335
  }] } });
196
336
 
197
337
  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 = true;\n\t/**\n\t * **Experimental**: Use floating-ui to position the tooltip\n\t * This is not toggleable - should be sent 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":";;;;;;;MAKa,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAI8C,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;KACrE;;4GAFY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,4CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,4CAA4C;iBACtD,CAAA;8BAE6C,gBAAgB,EAAA,CAAA;sBAA5D,WAAW;uBAAC,8BAA8B,CAAA;;;MCG/B,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAI6C,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AACzC,QAAA,IAAmB,CAAA,mBAAA,GAAG,QAAQ,CAAC;AAChB,QAAA,IAAS,CAAA,SAAA,GAAG,kBAAkB,CAAC;KACxE;;4GAJY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,4CAA4C;iBACtD,CAAA;8BAE4C,eAAe,EAAA,CAAA;sBAA1D,WAAW;uBAAC,6BAA6B,CAAA;gBAChB,mBAAmB,EAAA,CAAA;sBAA5C,WAAW;uBAAC,WAAW,CAAA;gBACiB,SAAS,EAAA,CAAA;sBAAjD,WAAW;uBAAC,iBAAiB,CAAA;;sBAAG,KAAK;;;MCP1B,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAI8C,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;KACrE;;6GAFY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,8CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8CAA8C;iBACxD,CAAA;8BAE6C,gBAAgB,EAAA,CAAA;sBAA5D,WAAW;uBAAC,8BAA8B,CAAA;;;MCD/B,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAI4C,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;KACjE;;2GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;+FAAd,cAAc,EAAA,QAAA,EAAA,0CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,0CAA0C;iBACpD,CAAA;8BAE2C,cAAc,EAAA,CAAA;sBAAxD,WAAW;uBAAC,4BAA4B,CAAA;;;ACU1C;;;;;;;;AAQG;AAWG,MAAO,SAAU,SAAQ,gBAAgB,CAAA;AAY9C,IAAA,WAAA,CAAoB,WAAuB,EAAU,QAAmB,EAAU,GAAsB,EAAA;QACvG,KAAK,CAAC,GAAG,CAAC,CAAC;AADQ,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAAU,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAT/F,IAAA,CAAA,EAAE,GAAG,CAAA,QAAA,EAAW,SAAS,CAAC,gBAAgB,EAAE,CAAA,CAAE,CAAC;AAEnB,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AACP,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAInE,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAI9C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACxB;IAED,eAAe,GAAA;;QAEd,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,KAAY,KAAI;;;YAG3B,IAAI,IAAI,CAAC,MAAM,EAAE;gBAChB,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1D,aAAA;AAAM,iBAAA;gBACN,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACvD,aAAA;YAED,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;;QAGJ,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACvD,SAAA;QAED,IAAI,IAAI,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7E,SAAA;KACD;AAGD,IAAA,QAAQ,CAAC,KAAoB,EAAA;AAC5B,QAAA,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnC,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,SAAA;KACD;AAED,IAAA,cAAc,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC3D,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,SAAA;KACD;AAEO,IAAA,eAAe,CAAC,KAAK,GAAG,KAAK,EAAE,KAAY,EAAA;AAClD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5F,SAAA;KACD;;AA7DM,SAAgB,CAAA,gBAAA,GAAG,CAAC,CAAC;sGADhB,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAQP,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,eAAe,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,EAfvC,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;AAKT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAEW,SAAS,EAAA,UAAA,EAAA,CAAA;kBAVrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8BAA8B;oBACxC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE,CAAA;;;;;AAKT,CAAA,CAAA;iBACD,CAAA;yJAIS,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAE+B,cAAc,EAAA,CAAA;sBAAlD,WAAW;uBAAC,sBAAsB,CAAA;gBACiB,MAAM,EAAA,CAAA;sBAAzD,WAAW;uBAAC,4BAA4B,CAAA;;sBAAG,KAAK;gBAEI,GAAG,EAAA,CAAA;sBAAvD,YAAY;gBAAC,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAoCnD,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MClDrB,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAf1B,SAAS;QACT,cAAc;QACd,eAAe;QACf,eAAe;AACf,QAAA,gBAAgB,CASP,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,aANpC,SAAS;QACT,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB,CAAA,EAAA,CAAA,CAAA;6GAIL,eAAe,EAAA,OAAA,EAAA,CAFjB,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;2FAEzB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE;wBACb,SAAS;wBACT,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,gBAAgB;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,SAAS;wBACT,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,gBAAgB;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;iBACtC,CAAA;;;AC3BD;;AAEG;;;;"}
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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"}