@fundamental-ngx/core 0.42.0-rc.13 → 0.42.0-rc.15

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.
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @angular-eslint/no-input-rename */
2
- import { Directive, ElementRef, Inject, Input, isDevMode, Optional, Self, TemplateRef, Type } from '@angular/core';
2
+ import { Directive, ElementRef, Inject, Input, isDevMode, Optional, Renderer2, Self, TemplateRef, Type, ViewContainerRef } from '@angular/core';
3
3
  import { PopoverService } from '@fundamental-ngx/core/popover';
4
4
  import { BasePopoverClass } from '@fundamental-ngx/core/popover';
5
5
  import { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';
@@ -20,16 +20,7 @@ export class InlineHelpDirective extends BasePopoverClass {
20
20
  template: content instanceof TemplateRef ? content : null
21
21
  };
22
22
  this._popoverService.updateContent(text, template);
23
- let srElement;
24
- if (typeof content === 'string') {
25
- srElement = document.createElement('span');
26
- srElement.innerText = content;
27
- }
28
- else {
29
- srElement = template;
30
- }
31
- srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;
32
- this._elementRef.nativeElement.append(srElement);
23
+ this._setupScreenreaderElement(content);
33
24
  }
34
25
  /**
35
26
  * Inline help template to display inside generated popover
@@ -40,12 +31,15 @@ export class InlineHelpDirective extends BasePopoverClass {
40
31
  console.warn('[fd-inline-help-template] is deprecated and will be removed in the future, use [fd-inline-help] instead.');
41
32
  }
42
33
  this._popoverService.updateContent(null, template);
34
+ this._setupScreenreaderElement(template);
43
35
  }
44
36
  /** @hidden */
45
- constructor(_popoverService, _elementRef, _icon) {
37
+ constructor(_popoverService, _elementRef, _renderer, _viewContainerRef, _icon) {
46
38
  super();
47
39
  this._popoverService = _popoverService;
48
40
  this._elementRef = _elementRef;
41
+ this._renderer = _renderer;
42
+ this._viewContainerRef = _viewContainerRef;
49
43
  this._icon = _icon;
50
44
  /** The trigger events that will open/close the inline help component.
51
45
  * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */
@@ -93,8 +87,25 @@ export class InlineHelpDirective extends BasePopoverClass {
93
87
  this.additionalBodyClass += ' ' + INLINE_HELP_ICON_CLASS;
94
88
  }
95
89
  }
90
+ /** @hidden */
91
+ _setupScreenreaderElement(content) {
92
+ this._viewContainerRef.clear();
93
+ let srElement = this._renderer.createElement('span');
94
+ if (typeof content === 'string') {
95
+ srElement.innerText = content;
96
+ }
97
+ else if (content) {
98
+ this._srViewRef = content.createEmbeddedView(null);
99
+ this._viewContainerRef.insert(this._srViewRef);
100
+ srElement = this._srViewRef.rootNodes[0];
101
+ }
102
+ if (srElement.style) {
103
+ srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;
104
+ }
105
+ this._renderer.appendChild(this._elementRef.nativeElement, srElement);
106
+ }
96
107
  }
97
- InlineHelpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, deps: [{ token: i1.PopoverService }, { token: i0.ElementRef }, { token: FD_ICON_COMPONENT, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
108
+ InlineHelpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, deps: [{ token: i1.PopoverService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: FD_ICON_COMPONENT, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
98
109
  InlineHelpDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: { triggers: "triggers", noArrow: "noArrow", closeOnEscapeKey: "closeOnEscapeKey", closeOnOutsideClick: "closeOnOutsideClick", inlineHelpContent: ["fd-inline-help", "inlineHelpContent"], inlineHelpTemplate: ["fd-inline-help-template", "inlineHelpTemplate"] }, host: { properties: { "class.fd-inline-help__trigger": "true" } }, providers: [PopoverService], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
99
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, decorators: [{
100
111
  type: Directive,
@@ -106,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
106
117
  '[class.fd-inline-help__trigger]': 'true'
107
118
  }
108
119
  }]
109
- }], ctorParameters: function () { return [{ type: i1.PopoverService }, { type: i0.ElementRef }, { type: i0.Type, decorators: [{
120
+ }], ctorParameters: function () { return [{ type: i1.PopoverService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Type, decorators: [{
110
121
  type: Optional
111
122
  }, {
112
123
  type: Self
@@ -128,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
128
139
  type: Input,
129
140
  args: ['fd-inline-help-template']
130
141
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWhlbHAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaW5saW5lLWhlbHAvaW5saW5lLWhlbHAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFJVCxRQUFRLEVBQ1IsSUFBSSxFQUVKLFdBQVcsRUFDWCxJQUFJLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRy9ELE1BQU0saUJBQWlCLEdBQUcsdURBQXVELENBQUM7QUFDbEYsTUFBTSxzQkFBc0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUVwRSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFFckI7OztHQUdHO0FBU0gsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQXVCckQsMkRBQTJEO0lBQzNELElBQ0ksaUJBQWlCLENBQUMsT0FBa0M7UUFDcEQsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRztZQUN2QixJQUFJLEVBQUUsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEQsUUFBUSxFQUFFLE9BQU8sWUFBWSxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUM1RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELElBQUks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bUIsQ0FBQztRQUU5RSx3RUFBd0U7UUFDeEUsOENBQThDO1FBQzlDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxHQUFHLEdBQUcsc0JBQXNCLENBQUM7U0FDNUQ7SUFDTCxDQUFDOztnSEF0R1EsbUJBQW1CLDBFQWlFSSxpQkFBaUI7b0dBakV4QyxtQkFBbUIseWNBTGpCLENBQUMsY0FBYyxDQUFDOzJGQUtsQixtQkFBbUI7a0JBUi9CLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsa0dBQWtHO29CQUM1RyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzNCLElBQUksRUFBRTt3QkFDRixpQ0FBaUMsRUFBRSxNQUFNO3FCQUM1QztpQkFDSjs7MEJBa0VRLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzRDQTdEakQsUUFBUTtzQkFEUCxLQUFLO2dCQVVOLE9BQU87c0JBRE4sS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS0YsaUJBQWlCO3NCQURwQixLQUFLO3VCQUFDLGdCQUFnQjtnQkE0Qm5CLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBpc0Rldk1vZGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3BvdmVyU2VydmljZSwgVHJpZ2dlckNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEJhc2VQb3BvdmVyQ2xhc3MgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBGRF9JQ09OX0NPTVBPTkVOVCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5jb25zdCBJTkxJTkVfSEVMUF9DTEFTUyA9ICdmZC1wb3BvdmVyX19ib2R5LS1pbmxpbmUtaGVscCBmZC1pbmxpbmUtaGVscF9fY29udGVudCc7XG5jb25zdCBJTkxJTkVfSEVMUF9JQ09OX0NMQVNTID0gJ2ZkLXBvcG92ZXJfX2JvZHktLWlubGluZS1oZWxwLWljb24nO1xuXG5sZXQgaW5saW5lSGVscElkID0gMDtcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhbiBpbmxpbmUtaGVscC5cbiAqIElubGluZSBoZWxwIGlzIHVzZWQgdG8gZGlzcGxheSBoZWxwIHRleHQgaW4gYSBwb3BvdmVyLCBvZnRlbiBpbmxpbmUgd2l0aCBoZWFkZXJzLCBib2R5IHRleHQgYW5kIGZvcm0gbGFiZWxzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLWlubGluZS1oZWxwXTpub3QoW2ZkLWlubGluZS1oZWxwLXRlbXBsYXRlXSksIFtmZC1pbmxpbmUtaGVscC10ZW1wbGF0ZV06bm90KFtmZC1pbmxpbmUtaGVscF0pJyxcbiAgICBwcm92aWRlcnM6IFtQb3BvdmVyU2VydmljZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmZkLWlubGluZS1oZWxwX190cmlnZ2VyXSc6ICd0cnVlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgSW5saW5lSGVscERpcmVjdGl2ZSBleHRlbmRzIEJhc2VQb3BvdmVyQ2xhc3MgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICAvKiogVGhlIHRyaWdnZXIgZXZlbnRzIHRoYXQgd2lsbCBvcGVuL2Nsb3NlIHRoZSBpbmxpbmUgaGVscCBjb21wb25lbnQuXG4gICAgICogIEFjY2VwdHMgYW55IFtIVE1MIERPTSBFdmVudHNdKGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvZG9tX29ial9ldmVudC5hc3ApLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHJpZ2dlcnM6IChzdHJpbmcgfCBUcmlnZ2VyQ29uZmlnKVtdID0gW1xuICAgICAgICB7IHRyaWdnZXI6ICdtb3VzZWVudGVyJywgb3BlbkFjdGlvbjogdHJ1ZSwgY2xvc2VBY3Rpb246IGZhbHNlIH0sXG4gICAgICAgIHsgdHJpZ2dlcjogJ21vdXNlbGVhdmUnLCBvcGVuQWN0aW9uOiBmYWxzZSwgY2xvc2VBY3Rpb246IHRydWUgfSxcbiAgICAgICAgeyB0cmlnZ2VyOiAnZm9jdXNpbicsIG9wZW5BY3Rpb246IHRydWUsIGNsb3NlQWN0aW9uOiBmYWxzZSB9LFxuICAgICAgICB7IHRyaWdnZXI6ICdmb2N1c291dCcsIG9wZW5BY3Rpb246IGZhbHNlLCBjbG9zZUFjdGlvbjogdHJ1ZSB9XG4gICAgXTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBoYXZlIGFuIGFycm93LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9BcnJvdyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIGNsb3NlIHdoZW4gdGhlIGVzY2FwZSBrZXkgaXMgcHJlc3NlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlT25Fc2NhcGVLZXkgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBjbG9zZSB3aGVuIGEgY2xpY2sgaXMgbWFkZSBvdXRzaWRlIGl0cyBib3VuZGFyaWVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbk91dHNpZGVDbGljayA9IGZhbHNlO1xuXG4gICAgLyoqIElubGluZSBoZWxwIHRleHQgdG8gZGlzcGxheSBpbnNpZGUgZ2VuZXJhdGVkIHBvcG92ZXIgKi9cbiAgICBASW5wdXQoJ2ZkLWlubGluZS1oZWxwJylcbiAgICBzZXQgaW5saW5lSGVscENvbnRlbnQoY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICBjb25zdCB7IHRleHQsIHRlbXBsYXRlIH0gPSB7XG4gICAgICAgICAgICB0ZXh0OiB0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycgPyBjb250ZW50IDogbnVsbCxcbiAgICAgICAgICAgIHRlbXBsYXRlOiBjb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYgPyBjb250ZW50IDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9wb3BvdmVyU2VydmljZS51cGRhdGVDb250ZW50KHRleHQsIHRlbXBsYXRlKTtcblxuICAgICAgICBsZXQgc3JFbGVtZW50O1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBzckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICBzckVsZW1lbnQuaW5uZXJUZXh0ID0gY29udGVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNyRWxlbWVudCA9IHRlbXBsYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3JFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IGhlaWdodDogMXB4OyB3aWR0aDogMXB4OyBvdmVyZmxvdzogaGlkZGVuOyBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7YDtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZChzckVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Rlc2NyaWJlZEJ5ID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgaGVscCB0ZW1wbGF0ZSB0byBkaXNwbGF5IGluc2lkZSBnZW5lcmF0ZWQgcG9wb3ZlclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBgZmQtaW5saW5lLWhlbHBgIGluc3RlYWRcbiAgICAgKiAqL1xuICAgIEBJbnB1dCgnZmQtaW5saW5lLWhlbHAtdGVtcGxhdGUnKVxuICAgIHNldCBpbmxpbmVIZWxwVGVtcGxhdGUodGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+KSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdbZmQtaW5saW5lLWhlbHAtdGVtcGxhdGVdIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLCB1c2UgW2ZkLWlubGluZS1oZWxwXSBpbnN0ZWFkLidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2UudXBkYXRlQ29udGVudChudWxsLCB0ZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIEBJbmplY3QoRkRfSUNPTl9DT01QT05FTlQpIHByaXZhdGUgX2ljb246IFR5cGU8YW55PlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2FkZGl0aW9uYWxCb2R5Q2xhc3MnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2FwcGx5QWRkaXRpb25hbElubGluZUhlbHBDbGFzcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BvcG92ZXJTZXJ2aWNlLnJlZnJlc2hDb25maWd1cmF0aW9uKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JvZHlSb2xlID0gJ3Rvb2x0aXAnO1xuICAgICAgICB0aGlzLl9kZXNjcmliZWRCeSA9IGBmZC1pbmxpbmUtaGVscC0ke2lubGluZUhlbHBJZCsrfWA7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCB0aGlzLl9kZXNjcmliZWRCeSk7XG4gICAgICAgIHRoaXMuX2JvZHlJZCA9IHRoaXMuX2Rlc2NyaWJlZEJ5O1xuICAgICAgICB0aGlzLl9hcHBseUFkZGl0aW9uYWxJbmxpbmVIZWxwQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2UuaW5pdGlhbGlzZSh0aGlzLl9lbGVtZW50UmVmLCB0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVyU2VydmljZS5vbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5QWRkaXRpb25hbElubGluZUhlbHBDbGFzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsQm9keUNsYXNzID0gSU5MSU5FX0hFTFBfQ0xBU1MgKyAnICcgKyB0aGlzLmFkZGl0aW9uYWxCb2R5Q2xhc3M7XG5cbiAgICAgICAgLy8gSWYgY29ubmVjdGVkIHRvIHRoZSBpY29uLCBidXQgbm90IGJ1dHRvbiwgdGhlbiBhcHBseSBhZGRpdGlvbmFsIGNsYXNzXG4gICAgICAgIC8vIFRoYXQgd2lsbCBjaGFuZ2UgdGhlIGFycm93J3MgcG9zaXRpb24gYSBiaXRcbiAgICAgICAgaWYgKHRoaXMuX2ljb24pIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbEJvZHlDbGFzcyArPSAnICcgKyBJTkxJTkVfSEVMUF9JQ09OX0NMQVNTO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWhlbHAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaW5saW5lLWhlbHAvaW5saW5lLWhlbHAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFFVixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFJVCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFFSixXQUFXLEVBQ1gsSUFBSSxFQUNKLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLCtCQUErQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFHL0QsTUFBTSxpQkFBaUIsR0FBRyx1REFBdUQsQ0FBQztBQUNsRixNQUFNLHNCQUFzQixHQUFHLG9DQUFvQyxDQUFDO0FBRXBFLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQjs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZ0JBQWdCO0lBdUJyRCwyREFBMkQ7SUFDM0QsSUFDSSxpQkFBaUIsQ0FBQyxPQUFrQztRQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHO1lBQ3ZCLElBQUksRUFBRSxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNsRCxRQUFRLEVBQUUsT0FBTyxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQzVELENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFB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Qjs0Q0EzRGpELFFBQVE7c0JBRFAsS0FBSztnQkFVTixPQUFPO3NCQUROLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtGLGlCQUFpQjtzQkFEcEIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBc0JuQixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZSAqL1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcG92ZXJTZXJ2aWNlLCBUcmlnZ2VyQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgQmFzZVBvcG92ZXJDbGFzcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEZEX0lDT05fQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmNvbnN0IElOTElORV9IRUxQX0NMQVNTID0gJ2ZkLXBvcG92ZXJfX2JvZHktLWlubGluZS1oZWxwIGZkLWlubGluZS1oZWxwX19jb250ZW50JztcbmNvbnN0IElOTElORV9IRUxQX0lDT05fQ0xBU1MgPSAnZmQtcG9wb3Zlcl9fYm9keS0taW5saW5lLWhlbHAtaWNvbic7XG5cbmxldCBpbmxpbmVIZWxwSWQgPSAwO1xuXG4vKipcbiAqIFRoZSBjb21wb25lbnQgdGhhdCByZXByZXNlbnRzIGFuIGlubGluZS1oZWxwLlxuICogSW5saW5lIGhlbHAgaXMgdXNlZCB0byBkaXNwbGF5IGhlbHAgdGV4dCBpbiBhIHBvcG92ZXIsIG9mdGVuIGlubGluZSB3aXRoIGhlYWRlcnMsIGJvZHkgdGV4dCBhbmQgZm9ybSBsYWJlbHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtaW5saW5lLWhlbHBdOm5vdChbZmQtaW5saW5lLWhlbHAtdGVtcGxhdGVdKSwgW2ZkLWlubGluZS1oZWxwLXRlbXBsYXRlXTpub3QoW2ZkLWlubGluZS1oZWxwXSknLFxuICAgIHByb3ZpZGVyczogW1BvcG92ZXJTZXJ2aWNlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuZmQtaW5saW5lLWhlbHBfX3RyaWdnZXJdJzogJ3RydWUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBJbmxpbmVIZWxwRGlyZWN0aXZlIGV4dGVuZHMgQmFzZVBvcG92ZXJDbGFzcyBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBUaGUgdHJpZ2dlciBldmVudHMgdGhhdCB3aWxsIG9wZW4vY2xvc2UgdGhlIGlubGluZSBoZWxwIGNvbXBvbmVudC5cbiAgICAgKiAgQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHsgdHJpZ2dlcjogJ21vdXNlZW50ZXInLCBvcGVuQWN0aW9uOiB0cnVlLCBjbG9zZUFjdGlvbjogZmFsc2UgfSxcbiAgICAgICAgeyB0cmlnZ2VyOiAnbW91c2VsZWF2ZScsIG9wZW5BY3Rpb246IGZhbHNlLCBjbG9zZUFjdGlvbjogdHJ1ZSB9LFxuICAgICAgICB7IHRyaWdnZXI6ICdmb2N1c2luJywgb3BlbkFjdGlvbjogdHJ1ZSwgY2xvc2VBY3Rpb246IGZhbHNlIH0sXG4gICAgICAgIHsgdHJpZ2dlcjogJ2ZvY3Vzb3V0Jywgb3BlbkFjdGlvbjogZmFsc2UsIGNsb3NlQWN0aW9uOiB0cnVlIH1cbiAgICBdO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIGhhdmUgYW4gYXJyb3cuICovXG4gICAgQElucHV0KClcbiAgICBub0Fycm93ID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgZXNjYXBlIGtleSBpcyBwcmVzc2VkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbkVzY2FwZUtleSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIGNsb3NlIHdoZW4gYSBjbGljayBpcyBtYWRlIG91dHNpZGUgaXRzIGJvdW5kYXJpZXMuICovXG4gICAgQElucHV0KClcbiAgICBjbG9zZU9uT3V0c2lkZUNsaWNrID0gZmFsc2U7XG5cbiAgICAvKiogSW5saW5lIGhlbHAgdGV4dCB0byBkaXNwbGF5IGluc2lkZSBnZW5lcmF0ZWQgcG9wb3ZlciAqL1xuICAgIEBJbnB1dCgnZmQtaW5saW5lLWhlbHAnKVxuICAgIHNldCBpbmxpbmVIZWxwQ29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGNvbnN0IHsgdGV4dCwgdGVtcGxhdGUgfSA9IHtcbiAgICAgICAgICAgIHRleHQ6IHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyA/IGNvbnRlbnQgOiBudWxsLFxuICAgICAgICAgICAgdGVtcGxhdGU6IGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiA/IGNvbnRlbnQgOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX3BvcG92ZXJTZXJ2aWNlLnVwZGF0ZUNvbnRlbnQodGV4dCwgdGVtcGxhdGUpO1xuXG4gICAgICAgIHRoaXMuX3NldHVwU2NyZWVucmVhZGVyRWxlbWVudChjb250ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kZXNjcmliZWRCeSA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zclZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIGhlbHAgdGVtcGxhdGUgdG8gZGlzcGxheSBpbnNpZGUgZ2VuZXJhdGVkIHBvcG92ZXJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYGZkLWlubGluZS1oZWxwYCBpbnN0ZWFkXG4gICAgICogKi9cbiAgICBASW5wdXQoJ2ZkLWlubGluZS1oZWxwLXRlbXBsYXRlJylcbiAgICBzZXQgaW5saW5lSGVscFRlbXBsYXRlKHRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+Pikge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAnW2ZkLWlubGluZS1oZWxwLXRlbXBsYXRlXSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSwgdXNlIFtmZC1pbmxpbmUtaGVscF0gaW5zdGVhZC4nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BvcG92ZXJTZXJ2aWNlLnVwZGF0ZUNvbnRlbnQobnVsbCwgdGVtcGxhdGUpO1xuXG4gICAgICAgIHRoaXMuX3NldHVwU2NyZWVucmVhZGVyRWxlbWVudCh0ZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIEBJbmplY3QoRkRfSUNPTl9DT01QT05FTlQpIHByaXZhdGUgX2ljb246IFR5cGU8YW55PlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2FkZGl0aW9uYWxCb2R5Q2xhc3MnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2FwcGx5QWRkaXRpb25hbElubGluZUhlbHBDbGFzcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BvcG92ZXJTZXJ2aWNlLnJlZnJlc2hDb25maWd1cmF0aW9uKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JvZHlSb2xlID0gJ3Rvb2x0aXAnO1xuICAgICAgICB0aGlzLl9kZXNjcmliZWRCeSA9IGBmZC1pbmxpbmUtaGVscC0ke2lubGluZUhlbHBJZCsrfWA7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCB0aGlzLl9kZXNjcmliZWRCeSk7XG4gICAgICAgIHRoaXMuX2JvZHlJZCA9IHRoaXMuX2Rlc2NyaWJlZEJ5O1xuICAgICAgICB0aGlzLl9hcHBseUFkZGl0aW9uYWxJbmxpbmVIZWxwQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2UuaW5pdGlhbGlzZSh0aGlzLl9lbGVtZW50UmVmLCB0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVyU2VydmljZS5vbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5QWRkaXRpb25hbElubGluZUhlbHBDbGFzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsQm9keUNsYXNzID0gSU5MSU5FX0hFTFBfQ0xBU1MgKyAnICcgKyB0aGlzLmFkZGl0aW9uYWxCb2R5Q2xhc3M7XG5cbiAgICAgICAgLy8gSWYgY29ubmVjdGVkIHRvIHRoZSBpY29uLCBidXQgbm90IGJ1dHRvbiwgdGhlbiBhcHBseSBhZGRpdGlvbmFsIGNsYXNzXG4gICAgICAgIC8vIFRoYXQgd2lsbCBjaGFuZ2UgdGhlIGFycm93J3MgcG9zaXRpb24gYSBiaXRcbiAgICAgICAgaWYgKHRoaXMuX2ljb24pIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbEJvZHlDbGFzcyArPSAnICcgKyBJTkxJTkVfSEVMUF9JQ09OX0NMQVNTO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXR1cFNjcmVlbnJlYWRlckVsZW1lbnQoY29udGVudDogc3RyaW5nIHwgTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICBsZXQgc3JFbGVtZW50ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBzckVsZW1lbnQuaW5uZXJUZXh0ID0gY29udGVudDtcbiAgICAgICAgfSBlbHNlIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zclZpZXdSZWYgPSBjb250ZW50LmNyZWF0ZUVtYmVkZGVkVmlldyhudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuaW5zZXJ0KHRoaXMuX3NyVmlld1JlZik7XG4gICAgICAgICAgICBzckVsZW1lbnQgPSB0aGlzLl9zclZpZXdSZWYucm9vdE5vZGVzWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNyRWxlbWVudC5zdHlsZSkge1xuICAgICAgICAgICAgc3JFbGVtZW50LnN0eWxlLmNzc1RleHQgPSBgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IGhlaWdodDogMXB4OyB3aWR0aDogMXB4OyBvdmVyZmxvdzogaGlkZGVuOyBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7YDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNyRWxlbWVudCk7XG4gICAgfVxufVxuIl19
@@ -21,16 +21,7 @@ class InlineHelpDirective extends BasePopoverClass {
21
21
  template: content instanceof TemplateRef ? content : null
22
22
  };
23
23
  this._popoverService.updateContent(text, template);
24
- let srElement;
25
- if (typeof content === 'string') {
26
- srElement = document.createElement('span');
27
- srElement.innerText = content;
28
- }
29
- else {
30
- srElement = template;
31
- }
32
- srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;
33
- this._elementRef.nativeElement.append(srElement);
24
+ this._setupScreenreaderElement(content);
34
25
  }
35
26
  /**
36
27
  * Inline help template to display inside generated popover
@@ -41,12 +32,15 @@ class InlineHelpDirective extends BasePopoverClass {
41
32
  console.warn('[fd-inline-help-template] is deprecated and will be removed in the future, use [fd-inline-help] instead.');
42
33
  }
43
34
  this._popoverService.updateContent(null, template);
35
+ this._setupScreenreaderElement(template);
44
36
  }
45
37
  /** @hidden */
46
- constructor(_popoverService, _elementRef, _icon) {
38
+ constructor(_popoverService, _elementRef, _renderer, _viewContainerRef, _icon) {
47
39
  super();
48
40
  this._popoverService = _popoverService;
49
41
  this._elementRef = _elementRef;
42
+ this._renderer = _renderer;
43
+ this._viewContainerRef = _viewContainerRef;
50
44
  this._icon = _icon;
51
45
  /** The trigger events that will open/close the inline help component.
52
46
  * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */
@@ -94,8 +88,25 @@ class InlineHelpDirective extends BasePopoverClass {
94
88
  this.additionalBodyClass += ' ' + INLINE_HELP_ICON_CLASS;
95
89
  }
96
90
  }
91
+ /** @hidden */
92
+ _setupScreenreaderElement(content) {
93
+ this._viewContainerRef.clear();
94
+ let srElement = this._renderer.createElement('span');
95
+ if (typeof content === 'string') {
96
+ srElement.innerText = content;
97
+ }
98
+ else if (content) {
99
+ this._srViewRef = content.createEmbeddedView(null);
100
+ this._viewContainerRef.insert(this._srViewRef);
101
+ srElement = this._srViewRef.rootNodes[0];
102
+ }
103
+ if (srElement.style) {
104
+ srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;
105
+ }
106
+ this._renderer.appendChild(this._elementRef.nativeElement, srElement);
107
+ }
97
108
  }
98
- InlineHelpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, deps: [{ token: i1.PopoverService }, { token: i0.ElementRef }, { token: FD_ICON_COMPONENT, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
109
+ InlineHelpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, deps: [{ token: i1.PopoverService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: FD_ICON_COMPONENT, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
99
110
  InlineHelpDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: { triggers: "triggers", noArrow: "noArrow", closeOnEscapeKey: "closeOnEscapeKey", closeOnOutsideClick: "closeOnOutsideClick", inlineHelpContent: ["fd-inline-help", "inlineHelpContent"], inlineHelpTemplate: ["fd-inline-help-template", "inlineHelpTemplate"] }, host: { properties: { "class.fd-inline-help__trigger": "true" } }, providers: [PopoverService], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
100
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, decorators: [{
101
112
  type: Directive,
@@ -108,7 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
108
119
  }
109
120
  }]
110
121
  }], ctorParameters: function () {
111
- return [{ type: i1.PopoverService }, { type: i0.ElementRef }, { type: i0.Type, decorators: [{
122
+ return [{ type: i1.PopoverService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Type, decorators: [{
112
123
  type: Optional
113
124
  }, {
114
125
  type: Self
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-inline-help.mjs","sources":["../../../../libs/core/src/lib/inline-help/inline-help.directive.ts","../../../../libs/core/src/lib/inline-help/inline-help.module.ts","../../../../libs/core/src/lib/inline-help/fundamental-ngx-core-inline-help.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n isDevMode,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { BasePopoverClass } from '@fundamental-ngx/core/popover';\nimport { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nconst INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';\nconst INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-icon';\n\nlet inlineHelpId = 0;\n\n/**\n * The component that represents an inline-help.\n * Inline help is used to display help text in a popover, often inline with headers, body text and form labels.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])',\n providers: [PopoverService],\n host: {\n '[class.fd-inline-help__trigger]': 'true'\n }\n})\nexport class InlineHelpDirective extends BasePopoverClass implements OnInit, OnChanges, OnDestroy {\n /** The trigger events that will open/close the inline help component.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n triggers: (string | TriggerConfig)[] = [\n { trigger: 'mouseenter', openAction: true, closeAction: false },\n { trigger: 'mouseleave', openAction: false, closeAction: true },\n { trigger: 'focusin', openAction: true, closeAction: false },\n { trigger: 'focusout', openAction: false, closeAction: true }\n ];\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = false;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = false;\n\n /** Inline help text to display inside generated popover */\n @Input('fd-inline-help')\n set inlineHelpContent(content: string | TemplateRef<any>) {\n const { text, template } = {\n text: typeof content === 'string' ? content : null,\n template: content instanceof TemplateRef ? content : null\n };\n this._popoverService.updateContent(text, template);\n\n let srElement;\n if (typeof content === 'string') {\n srElement = document.createElement('span');\n srElement.innerText = content;\n } else {\n srElement = template;\n }\n\n srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;\n this._elementRef.nativeElement.append(srElement);\n }\n\n /** @hidden */\n _describedBy = '';\n\n /**\n * Inline help template to display inside generated popover\n * @deprecated Use `fd-inline-help` instead\n * */\n @Input('fd-inline-help-template')\n set inlineHelpTemplate(template: Nullable<TemplateRef<any>>) {\n if (isDevMode()) {\n console.warn(\n '[fd-inline-help-template] is deprecated and will be removed in the future, use [fd-inline-help] instead.'\n );\n }\n this._popoverService.updateContent(null, template);\n }\n\n /** @hidden */\n constructor(\n private _popoverService: PopoverService,\n private _elementRef: ElementRef,\n @Optional() @Self() @Inject(FD_ICON_COMPONENT) private _icon: Type<any>\n ) {\n super();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('additionalBodyClass' in changes) {\n this._applyAdditionalInlineHelpClass();\n }\n this._popoverService.refreshConfiguration(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._bodyRole = 'tooltip';\n this._describedBy = `fd-inline-help-${inlineHelpId++}`;\n this._elementRef.nativeElement.setAttribute('aria-describedby', this._describedBy);\n this._bodyId = this._describedBy;\n this._applyAdditionalInlineHelpClass();\n this._popoverService.initialise(this._elementRef, this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n private _applyAdditionalInlineHelpClass(): void {\n this.additionalBodyClass = INLINE_HELP_CLASS + ' ' + this.additionalBodyClass;\n\n // If connected to the icon, but not button, then apply additional class\n // That will change the arrow's position a bit\n if (this._icon) {\n this.additionalBodyClass += ' ' + INLINE_HELP_ICON_CLASS;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { InlineHelpDirective } from './inline-help.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\n\n@NgModule({\n imports: [CommonModule, PopoverModule],\n exports: [InlineHelpDirective],\n declarations: [InlineHelpDirective]\n})\nexport class InlineHelpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-inline-help.mjs","sources":["../../../../libs/core/src/lib/inline-help/inline-help.directive.ts","../../../../libs/core/src/lib/inline-help/inline-help.module.ts","../../../../libs/core/src/lib/inline-help/fundamental-ngx-core-inline-help.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\nimport {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Input,\n isDevMode,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { BasePopoverClass } from '@fundamental-ngx/core/popover';\nimport { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nconst INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';\nconst INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-icon';\n\nlet inlineHelpId = 0;\n\n/**\n * The component that represents an inline-help.\n * Inline help is used to display help text in a popover, often inline with headers, body text and form labels.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])',\n providers: [PopoverService],\n host: {\n '[class.fd-inline-help__trigger]': 'true'\n }\n})\nexport class InlineHelpDirective extends BasePopoverClass implements OnInit, OnChanges, OnDestroy {\n /** The trigger events that will open/close the inline help component.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n triggers: (string | TriggerConfig)[] = [\n { trigger: 'mouseenter', openAction: true, closeAction: false },\n { trigger: 'mouseleave', openAction: false, closeAction: true },\n { trigger: 'focusin', openAction: true, closeAction: false },\n { trigger: 'focusout', openAction: false, closeAction: true }\n ];\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = false;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = false;\n\n /** Inline help text to display inside generated popover */\n @Input('fd-inline-help')\n set inlineHelpContent(content: string | TemplateRef<any>) {\n const { text, template } = {\n text: typeof content === 'string' ? content : null,\n template: content instanceof TemplateRef ? content : null\n };\n this._popoverService.updateContent(text, template);\n\n this._setupScreenreaderElement(content);\n }\n\n /** @hidden */\n _describedBy = '';\n\n /** @hidden */\n private _srViewRef: EmbeddedViewRef<any>;\n\n /**\n * Inline help template to display inside generated popover\n * @deprecated Use `fd-inline-help` instead\n * */\n @Input('fd-inline-help-template')\n set inlineHelpTemplate(template: Nullable<TemplateRef<any>>) {\n if (isDevMode()) {\n console.warn(\n '[fd-inline-help-template] is deprecated and will be removed in the future, use [fd-inline-help] instead.'\n );\n }\n this._popoverService.updateContent(null, template);\n\n this._setupScreenreaderElement(template);\n }\n\n /** @hidden */\n constructor(\n private _popoverService: PopoverService,\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n private readonly _viewContainerRef: ViewContainerRef,\n @Optional() @Self() @Inject(FD_ICON_COMPONENT) private _icon: Type<any>\n ) {\n super();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('additionalBodyClass' in changes) {\n this._applyAdditionalInlineHelpClass();\n }\n this._popoverService.refreshConfiguration(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._bodyRole = 'tooltip';\n this._describedBy = `fd-inline-help-${inlineHelpId++}`;\n this._elementRef.nativeElement.setAttribute('aria-describedby', this._describedBy);\n this._bodyId = this._describedBy;\n this._applyAdditionalInlineHelpClass();\n this._popoverService.initialise(this._elementRef, this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n private _applyAdditionalInlineHelpClass(): void {\n this.additionalBodyClass = INLINE_HELP_CLASS + ' ' + this.additionalBodyClass;\n\n // If connected to the icon, but not button, then apply additional class\n // That will change the arrow's position a bit\n if (this._icon) {\n this.additionalBodyClass += ' ' + INLINE_HELP_ICON_CLASS;\n }\n }\n\n /** @hidden */\n private _setupScreenreaderElement(content: string | Nullable<TemplateRef<any>>): void {\n this._viewContainerRef.clear();\n let srElement = this._renderer.createElement('span');\n if (typeof content === 'string') {\n srElement.innerText = content;\n } else if (content) {\n this._srViewRef = content.createEmbeddedView(null);\n this._viewContainerRef.insert(this._srViewRef);\n srElement = this._srViewRef.rootNodes[0];\n }\n\n if (srElement.style) {\n srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;\n }\n this._renderer.appendChild(this._elementRef.nativeElement, srElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { InlineHelpDirective } from './inline-help.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\n\n@NgModule({\n imports: [CommonModule, PopoverModule],\n exports: [InlineHelpDirective],\n declarations: [InlineHelpDirective]\n})\nexport class InlineHelpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -21,16 +21,7 @@ class InlineHelpDirective extends BasePopoverClass {
21
21
  template: content instanceof TemplateRef ? content : null
22
22
  };
23
23
  this._popoverService.updateContent(text, template);
24
- let srElement;
25
- if (typeof content === 'string') {
26
- srElement = document.createElement('span');
27
- srElement.innerText = content;
28
- }
29
- else {
30
- srElement = template;
31
- }
32
- srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;
33
- this._elementRef.nativeElement.append(srElement);
24
+ this._setupScreenreaderElement(content);
34
25
  }
35
26
  /**
36
27
  * Inline help template to display inside generated popover
@@ -41,12 +32,15 @@ class InlineHelpDirective extends BasePopoverClass {
41
32
  console.warn('[fd-inline-help-template] is deprecated and will be removed in the future, use [fd-inline-help] instead.');
42
33
  }
43
34
  this._popoverService.updateContent(null, template);
35
+ this._setupScreenreaderElement(template);
44
36
  }
45
37
  /** @hidden */
46
- constructor(_popoverService, _elementRef, _icon) {
38
+ constructor(_popoverService, _elementRef, _renderer, _viewContainerRef, _icon) {
47
39
  super();
48
40
  this._popoverService = _popoverService;
49
41
  this._elementRef = _elementRef;
42
+ this._renderer = _renderer;
43
+ this._viewContainerRef = _viewContainerRef;
50
44
  this._icon = _icon;
51
45
  /** The trigger events that will open/close the inline help component.
52
46
  * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */
@@ -94,8 +88,25 @@ class InlineHelpDirective extends BasePopoverClass {
94
88
  this.additionalBodyClass += ' ' + INLINE_HELP_ICON_CLASS;
95
89
  }
96
90
  }
91
+ /** @hidden */
92
+ _setupScreenreaderElement(content) {
93
+ this._viewContainerRef.clear();
94
+ let srElement = this._renderer.createElement('span');
95
+ if (typeof content === 'string') {
96
+ srElement.innerText = content;
97
+ }
98
+ else if (content) {
99
+ this._srViewRef = content.createEmbeddedView(null);
100
+ this._viewContainerRef.insert(this._srViewRef);
101
+ srElement = this._srViewRef.rootNodes[0];
102
+ }
103
+ if (srElement.style) {
104
+ srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;
105
+ }
106
+ this._renderer.appendChild(this._elementRef.nativeElement, srElement);
107
+ }
97
108
  }
98
- InlineHelpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, deps: [{ token: i1.PopoverService }, { token: i0.ElementRef }, { token: FD_ICON_COMPONENT, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
109
+ InlineHelpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, deps: [{ token: i1.PopoverService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: FD_ICON_COMPONENT, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
99
110
  InlineHelpDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: { triggers: "triggers", noArrow: "noArrow", closeOnEscapeKey: "closeOnEscapeKey", closeOnOutsideClick: "closeOnOutsideClick", inlineHelpContent: ["fd-inline-help", "inlineHelpContent"], inlineHelpTemplate: ["fd-inline-help-template", "inlineHelpTemplate"] }, host: { properties: { "class.fd-inline-help__trigger": "true" } }, providers: [PopoverService], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
100
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InlineHelpDirective, decorators: [{
101
112
  type: Directive,
@@ -107,7 +118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
107
118
  '[class.fd-inline-help__trigger]': 'true'
108
119
  }
109
120
  }]
110
- }], ctorParameters: function () { return [{ type: i1.PopoverService }, { type: i0.ElementRef }, { type: i0.Type, decorators: [{
121
+ }], ctorParameters: function () { return [{ type: i1.PopoverService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Type, decorators: [{
111
122
  type: Optional
112
123
  }, {
113
124
  type: Self
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-inline-help.mjs","sources":["../../../../libs/core/src/lib/inline-help/inline-help.directive.ts","../../../../libs/core/src/lib/inline-help/inline-help.module.ts","../../../../libs/core/src/lib/inline-help/fundamental-ngx-core-inline-help.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n isDevMode,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { BasePopoverClass } from '@fundamental-ngx/core/popover';\nimport { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nconst INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';\nconst INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-icon';\n\nlet inlineHelpId = 0;\n\n/**\n * The component that represents an inline-help.\n * Inline help is used to display help text in a popover, often inline with headers, body text and form labels.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])',\n providers: [PopoverService],\n host: {\n '[class.fd-inline-help__trigger]': 'true'\n }\n})\nexport class InlineHelpDirective extends BasePopoverClass implements OnInit, OnChanges, OnDestroy {\n /** The trigger events that will open/close the inline help component.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n triggers: (string | TriggerConfig)[] = [\n { trigger: 'mouseenter', openAction: true, closeAction: false },\n { trigger: 'mouseleave', openAction: false, closeAction: true },\n { trigger: 'focusin', openAction: true, closeAction: false },\n { trigger: 'focusout', openAction: false, closeAction: true }\n ];\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = false;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = false;\n\n /** Inline help text to display inside generated popover */\n @Input('fd-inline-help')\n set inlineHelpContent(content: string | TemplateRef<any>) {\n const { text, template } = {\n text: typeof content === 'string' ? content : null,\n template: content instanceof TemplateRef ? content : null\n };\n this._popoverService.updateContent(text, template);\n\n let srElement;\n if (typeof content === 'string') {\n srElement = document.createElement('span');\n srElement.innerText = content;\n } else {\n srElement = template;\n }\n\n srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;\n this._elementRef.nativeElement.append(srElement);\n }\n\n /** @hidden */\n _describedBy = '';\n\n /**\n * Inline help template to display inside generated popover\n * @deprecated Use `fd-inline-help` instead\n * */\n @Input('fd-inline-help-template')\n set inlineHelpTemplate(template: Nullable<TemplateRef<any>>) {\n if (isDevMode()) {\n console.warn(\n '[fd-inline-help-template] is deprecated and will be removed in the future, use [fd-inline-help] instead.'\n );\n }\n this._popoverService.updateContent(null, template);\n }\n\n /** @hidden */\n constructor(\n private _popoverService: PopoverService,\n private _elementRef: ElementRef,\n @Optional() @Self() @Inject(FD_ICON_COMPONENT) private _icon: Type<any>\n ) {\n super();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('additionalBodyClass' in changes) {\n this._applyAdditionalInlineHelpClass();\n }\n this._popoverService.refreshConfiguration(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._bodyRole = 'tooltip';\n this._describedBy = `fd-inline-help-${inlineHelpId++}`;\n this._elementRef.nativeElement.setAttribute('aria-describedby', this._describedBy);\n this._bodyId = this._describedBy;\n this._applyAdditionalInlineHelpClass();\n this._popoverService.initialise(this._elementRef, this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n private _applyAdditionalInlineHelpClass(): void {\n this.additionalBodyClass = INLINE_HELP_CLASS + ' ' + this.additionalBodyClass;\n\n // If connected to the icon, but not button, then apply additional class\n // That will change the arrow's position a bit\n if (this._icon) {\n this.additionalBodyClass += ' ' + INLINE_HELP_ICON_CLASS;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { InlineHelpDirective } from './inline-help.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\n\n@NgModule({\n imports: [CommonModule, PopoverModule],\n exports: [InlineHelpDirective],\n declarations: [InlineHelpDirective]\n})\nexport class InlineHelpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-inline-help.mjs","sources":["../../../../libs/core/src/lib/inline-help/inline-help.directive.ts","../../../../libs/core/src/lib/inline-help/inline-help.module.ts","../../../../libs/core/src/lib/inline-help/fundamental-ngx-core-inline-help.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\nimport {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Input,\n isDevMode,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { BasePopoverClass } from '@fundamental-ngx/core/popover';\nimport { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nconst INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';\nconst INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-icon';\n\nlet inlineHelpId = 0;\n\n/**\n * The component that represents an inline-help.\n * Inline help is used to display help text in a popover, often inline with headers, body text and form labels.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])',\n providers: [PopoverService],\n host: {\n '[class.fd-inline-help__trigger]': 'true'\n }\n})\nexport class InlineHelpDirective extends BasePopoverClass implements OnInit, OnChanges, OnDestroy {\n /** The trigger events that will open/close the inline help component.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n triggers: (string | TriggerConfig)[] = [\n { trigger: 'mouseenter', openAction: true, closeAction: false },\n { trigger: 'mouseleave', openAction: false, closeAction: true },\n { trigger: 'focusin', openAction: true, closeAction: false },\n { trigger: 'focusout', openAction: false, closeAction: true }\n ];\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = false;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = false;\n\n /** Inline help text to display inside generated popover */\n @Input('fd-inline-help')\n set inlineHelpContent(content: string | TemplateRef<any>) {\n const { text, template } = {\n text: typeof content === 'string' ? content : null,\n template: content instanceof TemplateRef ? content : null\n };\n this._popoverService.updateContent(text, template);\n\n this._setupScreenreaderElement(content);\n }\n\n /** @hidden */\n _describedBy = '';\n\n /** @hidden */\n private _srViewRef: EmbeddedViewRef<any>;\n\n /**\n * Inline help template to display inside generated popover\n * @deprecated Use `fd-inline-help` instead\n * */\n @Input('fd-inline-help-template')\n set inlineHelpTemplate(template: Nullable<TemplateRef<any>>) {\n if (isDevMode()) {\n console.warn(\n '[fd-inline-help-template] is deprecated and will be removed in the future, use [fd-inline-help] instead.'\n );\n }\n this._popoverService.updateContent(null, template);\n\n this._setupScreenreaderElement(template);\n }\n\n /** @hidden */\n constructor(\n private _popoverService: PopoverService,\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n private readonly _viewContainerRef: ViewContainerRef,\n @Optional() @Self() @Inject(FD_ICON_COMPONENT) private _icon: Type<any>\n ) {\n super();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('additionalBodyClass' in changes) {\n this._applyAdditionalInlineHelpClass();\n }\n this._popoverService.refreshConfiguration(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._bodyRole = 'tooltip';\n this._describedBy = `fd-inline-help-${inlineHelpId++}`;\n this._elementRef.nativeElement.setAttribute('aria-describedby', this._describedBy);\n this._bodyId = this._describedBy;\n this._applyAdditionalInlineHelpClass();\n this._popoverService.initialise(this._elementRef, this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n private _applyAdditionalInlineHelpClass(): void {\n this.additionalBodyClass = INLINE_HELP_CLASS + ' ' + this.additionalBodyClass;\n\n // If connected to the icon, but not button, then apply additional class\n // That will change the arrow's position a bit\n if (this._icon) {\n this.additionalBodyClass += ' ' + INLINE_HELP_ICON_CLASS;\n }\n }\n\n /** @hidden */\n private _setupScreenreaderElement(content: string | Nullable<TemplateRef<any>>): void {\n this._viewContainerRef.clear();\n let srElement = this._renderer.createElement('span');\n if (typeof content === 'string') {\n srElement.innerText = content;\n } else if (content) {\n this._srViewRef = content.createEmbeddedView(null);\n this._viewContainerRef.insert(this._srViewRef);\n srElement = this._srViewRef.rootNodes[0];\n }\n\n if (srElement.style) {\n srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;\n }\n this._renderer.appendChild(this._elementRef.nativeElement, srElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { InlineHelpDirective } from './inline-help.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\n\n@NgModule({\n imports: [CommonModule, PopoverModule],\n exports: [InlineHelpDirective],\n declarations: [InlineHelpDirective]\n})\nexport class InlineHelpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, Type } from '@angular/core';
1
+ import { ElementRef, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';
2
2
  import { PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';
3
3
  import { BasePopoverClass } from '@fundamental-ngx/core/popover';
4
4
  import { Nullable } from '@fundamental-ngx/cdk/utils';
@@ -10,6 +10,8 @@ import * as i0 from "@angular/core";
10
10
  export declare class InlineHelpDirective extends BasePopoverClass implements OnInit, OnChanges, OnDestroy {
11
11
  private _popoverService;
12
12
  private _elementRef;
13
+ private _renderer;
14
+ private readonly _viewContainerRef;
13
15
  private _icon;
14
16
  /** The trigger events that will open/close the inline help component.
15
17
  * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */
@@ -24,13 +26,15 @@ export declare class InlineHelpDirective extends BasePopoverClass implements OnI
24
26
  set inlineHelpContent(content: string | TemplateRef<any>);
25
27
  /** @hidden */
26
28
  _describedBy: string;
29
+ /** @hidden */
30
+ private _srViewRef;
27
31
  /**
28
32
  * Inline help template to display inside generated popover
29
33
  * @deprecated Use `fd-inline-help` instead
30
34
  * */
31
35
  set inlineHelpTemplate(template: Nullable<TemplateRef<any>>);
32
36
  /** @hidden */
33
- constructor(_popoverService: PopoverService, _elementRef: ElementRef, _icon: Type<any>);
37
+ constructor(_popoverService: PopoverService, _elementRef: ElementRef, _renderer: Renderer2, _viewContainerRef: ViewContainerRef, _icon: Type<any>);
34
38
  /** @hidden */
35
39
  ngOnChanges(changes: SimpleChanges): void;
36
40
  /** @hidden */
@@ -39,6 +43,8 @@ export declare class InlineHelpDirective extends BasePopoverClass implements OnI
39
43
  ngOnDestroy(): void;
40
44
  /** @hidden */
41
45
  private _applyAdditionalInlineHelpClass;
42
- static ɵfac: i0.ɵɵFactoryDeclaration<InlineHelpDirective, [null, null, { optional: true; self: true; }]>;
46
+ /** @hidden */
47
+ private _setupScreenreaderElement;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<InlineHelpDirective, [null, null, null, null, { optional: true; self: true; }]>;
43
49
  static ɵdir: i0.ɵɵDirectiveDeclaration<InlineHelpDirective, "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", never, { "triggers": "triggers"; "noArrow": "noArrow"; "closeOnEscapeKey": "closeOnEscapeKey"; "closeOnOutsideClick": "closeOnOutsideClick"; "inlineHelpContent": "fd-inline-help"; "inlineHelpTemplate": "fd-inline-help-template"; }, {}, never, never, false, never>;
44
50
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core",
3
- "version": "0.42.0-rc.13",
3
+ "version": "0.42.0-rc.15",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "ng-update": {
6
6
  "migrations": "./schematics/migrations.json"
@@ -29,8 +29,8 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "focus-trap": "^7.1.0",
32
- "@fundamental-ngx/i18n": "0.42.0-rc.13",
33
- "@fundamental-ngx/cdk": "0.42.0-rc.13",
32
+ "@fundamental-ngx/i18n": "0.42.0-rc.15",
33
+ "@fundamental-ngx/cdk": "0.42.0-rc.15",
34
34
  "fast-deep-equal": "3.1.3",
35
35
  "lodash-es": "^4.17.0",
36
36
  "tslib": "^2.0.0",
@@ -54,21 +54,21 @@ function addExternalLibraries(options) {
54
54
  });
55
55
  }
56
56
  if (!(0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/i18n') ||
57
- (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/i18n', '0.42.0-rc.13', '<')) {
57
+ (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/i18n', '0.42.0-rc.15', '<')) {
58
58
  dependencies.push({
59
59
  type: dependencies_1.NodeDependencyType.Default,
60
60
  // Will be replaced with the real version during sync-version script run
61
- version: `0.42.0-rc.13`,
61
+ version: `0.42.0-rc.15`,
62
62
  name: '@fundamental-ngx/i18n',
63
63
  overwrite: true
64
64
  });
65
65
  }
66
66
  if (!(0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/cdk') ||
67
- (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/cdk', '0.42.0-rc.13', '<')) {
67
+ (0, package_utils_1.checkPackageVersion)(tree, '@fundamental-ngx/cdk', '0.42.0-rc.15', '<')) {
68
68
  dependencies.push({
69
69
  type: dependencies_1.NodeDependencyType.Default,
70
70
  // Will be replaced with the real version during sync-version script run
71
- version: `0.42.0-rc.13`,
71
+ version: `0.42.0-rc.15`,
72
72
  name: '@fundamental-ngx/cdk',
73
73
  overwrite: true
74
74
  });