@skyux/indicators 5.5.0 → 5.6.2

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 (49) hide show
  1. package/bundles/skyux-indicators.umd.js +205 -205
  2. package/documentation.json +121 -533
  3. package/esm2015/lib/modules/alert/alert.component.js.map +1 -1
  4. package/esm2015/lib/modules/alert/alert.module.js +3 -3
  5. package/esm2015/lib/modules/alert/alert.module.js.map +1 -1
  6. package/esm2015/lib/modules/chevron/chevron.module.js +2 -2
  7. package/esm2015/lib/modules/chevron/chevron.module.js.map +1 -1
  8. package/esm2015/lib/modules/expansion-indicator/expansion-indicator.module.js +2 -2
  9. package/esm2015/lib/modules/expansion-indicator/expansion-indicator.module.js.map +1 -1
  10. package/esm2015/lib/modules/help-inline/help-inline.module.js +1 -1
  11. package/esm2015/lib/modules/help-inline/help-inline.module.js.map +1 -1
  12. package/esm2015/lib/modules/icon/icon-class-list.pipe.js.map +1 -1
  13. package/esm2015/lib/modules/icon/icon-resolver.service.js.map +1 -1
  14. package/esm2015/lib/modules/icon/icon.component.js.map +1 -1
  15. package/esm2015/lib/modules/icon/icon.module.js +4 -4
  16. package/esm2015/lib/modules/icon/icon.module.js.map +1 -1
  17. package/esm2015/lib/modules/key-info/key-info.module.js +1 -1
  18. package/esm2015/lib/modules/key-info/key-info.module.js.map +1 -1
  19. package/esm2015/lib/modules/label/label.component.js.map +1 -1
  20. package/esm2015/lib/modules/label/label.module.js +1 -1
  21. package/esm2015/lib/modules/label/label.module.js.map +1 -1
  22. package/esm2015/lib/modules/shared/indicator-icon-utility.js.map +1 -1
  23. package/esm2015/lib/modules/shared/sky-indicators-resources.module.js +1 -1
  24. package/esm2015/lib/modules/shared/sky-indicators-resources.module.js.map +1 -1
  25. package/esm2015/lib/modules/status-indicator/status-indicator.component.js.map +1 -1
  26. package/esm2015/lib/modules/status-indicator/status-indicator.module.js +2 -2
  27. package/esm2015/lib/modules/status-indicator/status-indicator.module.js.map +1 -1
  28. package/esm2015/lib/modules/text-highlight/text-highlight.directive.js +53 -54
  29. package/esm2015/lib/modules/text-highlight/text-highlight.directive.js.map +1 -1
  30. package/esm2015/lib/modules/text-highlight/text-highlight.module.js.map +1 -1
  31. package/esm2015/lib/modules/tokens/token.component.js.map +1 -1
  32. package/esm2015/lib/modules/tokens/tokens.component.js +1 -1
  33. package/esm2015/lib/modules/tokens/tokens.component.js.map +1 -1
  34. package/esm2015/lib/modules/tokens/tokens.module.js +3 -3
  35. package/esm2015/lib/modules/tokens/tokens.module.js.map +1 -1
  36. package/esm2015/lib/modules/wait/wait.component.js.map +1 -1
  37. package/esm2015/lib/modules/wait/wait.module.js +2 -2
  38. package/esm2015/lib/modules/wait/wait.module.js.map +1 -1
  39. package/esm2015/lib/modules/wait/wait.service.js.map +1 -1
  40. package/esm2015/testing/alert-fixture.js.map +1 -1
  41. package/esm2015/testing/label-fixture.js.map +1 -1
  42. package/esm2015/testing/wait-fixture.js.map +1 -1
  43. package/fesm2015/skyux-indicators-testing.js.map +1 -1
  44. package/fesm2015/skyux-indicators.js +146 -147
  45. package/fesm2015/skyux-indicators.js.map +1 -1
  46. package/lib/modules/status-indicator/status-indicator.component.d.ts +1 -1
  47. package/lib/modules/text-highlight/text-highlight.directive.d.ts +4 -4
  48. package/lib/modules/tokens/tokens.component.d.ts +1 -1
  49. package/package.json +14 -11
@@ -1,7 +1,7 @@
1
- import * as i0 from '@angular/core';
2
- import { NgModule, Injectable, Pipe, Component, ChangeDetectionStrategy, Input, EventEmitter, Output, Directive, ViewChildren, Optional } from '@angular/core';
3
1
  import * as i1 from '@angular/common';
4
2
  import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, Pipe, Component, Input, ChangeDetectionStrategy, NgModule, EventEmitter, Output, Directive, ViewChildren, Optional } from '@angular/core';
5
5
  import * as i1$1 from '@skyux/i18n';
6
6
  import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
7
7
  import * as i3 from '@skyux/theme';
@@ -12,64 +12,6 @@ import { trigger, transition, style, animate } from '@angular/animations';
12
12
  import { Subject, BehaviorSubject, defer } from 'rxjs';
13
13
  import { takeUntil, finalize } from 'rxjs/operators';
14
14
 
15
- /**
16
- * NOTICE: DO NOT MODIFY THIS FILE!
17
- * The contents of this file were automatically generated by
18
- * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-indicators' schematic.
19
- * To update this file, simply rerun the command.
20
- */
21
- const RESOURCES = {
22
- 'EN-US': {
23
- skyux_alert_close: { message: 'Close the alert' },
24
- skyux_help_inline_button_title: { message: 'Show help content' },
25
- skyux_status_indicator_sr_completed: { message: 'Completed:' },
26
- skyux_status_indicator_sr_error: { message: 'Error:' },
27
- skyux_status_indicator_sr_important_info: {
28
- message: 'Important information:',
29
- },
30
- skyux_status_indicator_sr_warning: { message: 'Warning:' },
31
- skyux_tokens_dismiss_button_title: { message: 'Remove item' },
32
- skyux_wait_aria_alt_text: { message: 'Loading.' },
33
- skyux_wait_blocking_aria_alt_text: { message: 'Loading. Please wait.' },
34
- skyux_wait_page_aria_alt_text: { message: 'Page loading.' },
35
- skyux_wait_page_blocking_aria_alt_text: {
36
- message: 'Page loading. Please wait.',
37
- },
38
- },
39
- };
40
- class SkyIndicatorsResourcesProvider {
41
- getString(localeInfo, name) {
42
- return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
43
- }
44
- }
45
- /**
46
- * Import into any component library module that needs to use resource strings.
47
- */
48
- class SkyIndicatorsResourcesModule {
49
- }
50
- SkyIndicatorsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
51
- SkyIndicatorsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, exports: [SkyI18nModule] });
52
- SkyIndicatorsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, providers: [
53
- {
54
- provide: SKY_LIB_RESOURCES_PROVIDERS,
55
- useClass: SkyIndicatorsResourcesProvider,
56
- multi: true,
57
- },
58
- ], imports: [SkyI18nModule] });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, decorators: [{
60
- type: NgModule,
61
- args: [{
62
- exports: [SkyI18nModule],
63
- providers: [
64
- {
65
- provide: SKY_LIB_RESOURCES_PROVIDERS,
66
- useClass: SkyIndicatorsResourcesProvider,
67
- multi: true,
68
- },
69
- ],
70
- }]
71
- }] });
72
-
73
15
  /**
74
16
  * @internal
75
17
  */
@@ -142,6 +84,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
142
84
  }]
143
85
  }], ctorParameters: function () { return [{ type: SkyIconResolverService }]; } });
144
86
 
87
+ class SkyIconStackComponent {
88
+ }
89
+ SkyIconStackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIconStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
+ SkyIconStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyIconStackComponent, selector: "sky-icon-stack", inputs: { size: "size", baseIcon: "baseIcon", topIcon: "topIcon" }, ngImport: i0, template: "<span\n aria-hidden=\"true\"\n class=\"sky-icon-stack fa-stack\"\n [ngClass]=\"size ? 'fa-' + size + ' sky-icon-stack-size-' + size : ''\"\n>\n <i\n *ngIf=\"baseIcon\"\n class=\"sky-icon fa-stack-2x\"\n [ngClass]=\"baseIcon.icon | skyIconClassList: baseIcon.iconType\"\n ></i>\n <i\n *ngIf=\"topIcon\"\n class=\"sky-icon fa-stack-1x fa-inverse sky-icon-inverse\"\n [ngClass]=\"topIcon.icon | skyIconClassList: topIcon.iconType\"\n ></i>\n</span>\n", styles: [":host{display:inline-block;vertical-align:bottom}.sky-icon-stack-size-xs.fa-stack{width:1.25em;height:1.25em;line-height:1.25em}.sky-icon-stack-size-xs .fa-stack-2x{font-size:1.25em}.sky-icon-stack-size-xs .fa-stack-1x{font-size:.625em}.fa-stack-1x.sky-i-check:before{position:relative;top:1px}.fa-stack-1x.sky-i-exclamation:before{position:relative;top:2px;left:-.5px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-icon-inverse{color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-icon-inverse{color:#121212}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyIconClassList": SkyIconClassListPipe } });
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIconStackComponent, decorators: [{
92
+ type: Component,
93
+ args: [{
94
+ selector: 'sky-icon-stack',
95
+ templateUrl: './icon-stack.component.html',
96
+ styleUrls: ['./icon-stack.component.scss'],
97
+ }]
98
+ }], propDecorators: { size: [{
99
+ type: Input
100
+ }], baseIcon: [{
101
+ type: Input
102
+ }], topIcon: [{
103
+ type: Input
104
+ }] } });
105
+
145
106
  class SkyIconComponent {
146
107
  constructor() {
147
108
  /**
@@ -175,25 +136,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
175
136
  type: Input
176
137
  }] } });
177
138
 
178
- class SkyIconStackComponent {
179
- }
180
- SkyIconStackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIconStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
181
- SkyIconStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyIconStackComponent, selector: "sky-icon-stack", inputs: { size: "size", baseIcon: "baseIcon", topIcon: "topIcon" }, ngImport: i0, template: "<span\n aria-hidden=\"true\"\n class=\"sky-icon-stack fa-stack\"\n [ngClass]=\"size ? 'fa-' + size + ' sky-icon-stack-size-' + size : ''\"\n>\n <i\n *ngIf=\"baseIcon\"\n class=\"sky-icon fa-stack-2x\"\n [ngClass]=\"baseIcon.icon | skyIconClassList: baseIcon.iconType\"\n ></i>\n <i\n *ngIf=\"topIcon\"\n class=\"sky-icon fa-stack-1x fa-inverse sky-icon-inverse\"\n [ngClass]=\"topIcon.icon | skyIconClassList: topIcon.iconType\"\n ></i>\n</span>\n", styles: [":host{display:inline-block;vertical-align:bottom}.sky-icon-stack-size-xs.fa-stack{width:1.25em;height:1.25em;line-height:1.25em}.sky-icon-stack-size-xs .fa-stack-2x{font-size:1.25em}.sky-icon-stack-size-xs .fa-stack-1x{font-size:.625em}.fa-stack-1x.sky-i-check:before{position:relative;top:1px}.fa-stack-1x.sky-i-exclamation:before{position:relative;top:2px;left:-.5px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-icon-inverse{color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-icon-inverse{color:#121212}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "skyIconClassList": SkyIconClassListPipe } });
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIconStackComponent, decorators: [{
183
- type: Component,
184
- args: [{
185
- selector: 'sky-icon-stack',
186
- templateUrl: './icon-stack.component.html',
187
- styleUrls: ['./icon-stack.component.scss'],
188
- }]
189
- }], propDecorators: { size: [{
190
- type: Input
191
- }], baseIcon: [{
192
- type: Input
193
- }], topIcon: [{
194
- type: Input
195
- }] } });
196
-
197
139
  class SkyIconModule {
198
140
  }
199
141
  SkyIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -208,6 +150,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
208
150
  }]
209
151
  }] });
210
152
 
153
+ /**
154
+ * NOTICE: DO NOT MODIFY THIS FILE!
155
+ * The contents of this file were automatically generated by
156
+ * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-indicators' schematic.
157
+ * To update this file, simply rerun the command.
158
+ */
159
+ const RESOURCES = {
160
+ 'EN-US': {
161
+ skyux_alert_close: { message: 'Close the alert' },
162
+ skyux_help_inline_button_title: { message: 'Show help content' },
163
+ skyux_status_indicator_sr_completed: { message: 'Completed:' },
164
+ skyux_status_indicator_sr_error: { message: 'Error:' },
165
+ skyux_status_indicator_sr_important_info: {
166
+ message: 'Important information:',
167
+ },
168
+ skyux_status_indicator_sr_warning: { message: 'Warning:' },
169
+ skyux_tokens_dismiss_button_title: { message: 'Remove item' },
170
+ skyux_wait_aria_alt_text: { message: 'Loading.' },
171
+ skyux_wait_blocking_aria_alt_text: { message: 'Loading. Please wait.' },
172
+ skyux_wait_page_aria_alt_text: { message: 'Page loading.' },
173
+ skyux_wait_page_blocking_aria_alt_text: {
174
+ message: 'Page loading. Please wait.',
175
+ },
176
+ },
177
+ };
178
+ class SkyIndicatorsResourcesProvider {
179
+ getString(localeInfo, name) {
180
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
181
+ }
182
+ }
183
+ /**
184
+ * Import into any component library module that needs to use resource strings.
185
+ */
186
+ class SkyIndicatorsResourcesModule {
187
+ }
188
+ SkyIndicatorsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
189
+ SkyIndicatorsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, exports: [SkyI18nModule] });
190
+ SkyIndicatorsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, providers: [
191
+ {
192
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
193
+ useClass: SkyIndicatorsResourcesProvider,
194
+ multi: true,
195
+ },
196
+ ], imports: [SkyI18nModule] });
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyIndicatorsResourcesModule, decorators: [{
198
+ type: NgModule,
199
+ args: [{
200
+ exports: [SkyI18nModule],
201
+ providers: [
202
+ {
203
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
204
+ useClass: SkyIndicatorsResourcesProvider,
205
+ multi: true,
206
+ },
207
+ ],
208
+ }]
209
+ }] });
210
+
211
211
  /**
212
212
  * @internl
213
213
  */
@@ -362,6 +362,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
362
362
  type: Input
363
363
  }] } });
364
364
 
365
+ class SkyExpansionIndicatorModule {
366
+ }
367
+ SkyExpansionIndicatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
368
+ SkyExpansionIndicatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, declarations: [SkyExpansionIndicatorComponent], imports: [CommonModule, SkyThemeModule], exports: [SkyExpansionIndicatorComponent] });
369
+ SkyExpansionIndicatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, imports: [[CommonModule, SkyThemeModule]] });
370
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, decorators: [{
371
+ type: NgModule,
372
+ args: [{
373
+ declarations: [SkyExpansionIndicatorComponent],
374
+ imports: [CommonModule, SkyThemeModule],
375
+ exports: [SkyExpansionIndicatorComponent],
376
+ }]
377
+ }] });
378
+
365
379
  /**
366
380
  * Creates an accessible button that wraps the chevron icon.
367
381
  * @internal
@@ -423,20 +437,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
423
437
  type: Output
424
438
  }] } });
425
439
 
426
- class SkyExpansionIndicatorModule {
427
- }
428
- SkyExpansionIndicatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
429
- SkyExpansionIndicatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, declarations: [SkyExpansionIndicatorComponent], imports: [CommonModule, SkyThemeModule], exports: [SkyExpansionIndicatorComponent] });
430
- SkyExpansionIndicatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, imports: [[CommonModule, SkyThemeModule]] });
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyExpansionIndicatorModule, decorators: [{
432
- type: NgModule,
433
- args: [{
434
- declarations: [SkyExpansionIndicatorComponent],
435
- imports: [CommonModule, SkyThemeModule],
436
- exports: [SkyExpansionIndicatorComponent],
437
- }]
438
- }] });
439
-
440
440
  class SkyChevronModule {
441
441
  }
442
442
  SkyChevronModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyChevronModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -799,61 +799,8 @@ class SkyTextHighlightDirective {
799
799
  this._skyHighlight = [value];
800
800
  }
801
801
  }
802
- ngOnChanges(changes) {
803
- if (changes.skyHighlight && !changes.skyHighlight.firstChange) {
804
- this.highlight();
805
- }
806
- }
807
- ngAfterViewInit() {
808
- const self = this;
809
- this.observer = this.observerService.create((mutations) => {
810
- self.highlight();
811
- });
812
- this.observeDom();
813
- if (this._skyHighlight && this._skyHighlight.length > 0) {
814
- this.highlight();
815
- }
816
- }
817
- ngOnDestroy() {
818
- /* istanbul ignore else */
819
- if (this.observer) {
820
- this.observer.disconnect();
821
- }
822
- }
823
- readyForHighlight(searchText) {
824
- return searchText && searchText.length > 0 && this.el.nativeElement;
825
- }
826
- highlight() {
827
- /* istanbul ignore else */
828
- if (this.observer) {
829
- this.observer.disconnect();
830
- }
831
- const searchText = this._skyHighlight;
832
- if (this.existingHighlight) {
833
- SkyTextHighlightDirective.removeHighlight(this.el);
834
- }
835
- /* istanbul ignore else */
836
- if (this.readyForHighlight(searchText)) {
837
- const node = this.el.nativeElement;
838
- // mark all matched text in the DOM
839
- SkyTextHighlightDirective.markTextNodes(node, searchText);
840
- this.existingHighlight = true;
841
- }
842
- this.observeDom();
843
- }
844
- observeDom() {
845
- /* istanbul ignore else */
846
- if (this.observer) {
847
- const config = {
848
- attributes: false,
849
- childList: true,
850
- characterData: true,
851
- };
852
- this.observer.observe(this.el.nativeElement, config);
853
- }
854
- }
855
802
  static cleanRegex(regex) {
856
- return regex.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
803
+ return regex.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
857
804
  }
858
805
  static markNode(node, searchTerms) {
859
806
  /* istanbul ignore else */
@@ -904,6 +851,58 @@ class SkyTextHighlightDirective {
904
851
  }
905
852
  }
906
853
  }
854
+ ngOnChanges(changes) {
855
+ if (changes.skyHighlight && !changes.skyHighlight.firstChange) {
856
+ this.highlight();
857
+ }
858
+ }
859
+ ngAfterViewInit() {
860
+ this.observer = this.observerService.create(() => {
861
+ this.highlight();
862
+ });
863
+ this.observeDom();
864
+ if (this._skyHighlight && this._skyHighlight.length > 0) {
865
+ this.highlight();
866
+ }
867
+ }
868
+ ngOnDestroy() {
869
+ /* istanbul ignore else */
870
+ if (this.observer) {
871
+ this.observer.disconnect();
872
+ }
873
+ }
874
+ readyForHighlight(searchText) {
875
+ return searchText && searchText.length > 0 && this.el.nativeElement;
876
+ }
877
+ highlight() {
878
+ /* istanbul ignore else */
879
+ if (this.observer) {
880
+ this.observer.disconnect();
881
+ }
882
+ const searchText = this._skyHighlight;
883
+ if (this.existingHighlight) {
884
+ SkyTextHighlightDirective.removeHighlight(this.el);
885
+ }
886
+ /* istanbul ignore else */
887
+ if (this.readyForHighlight(searchText)) {
888
+ const node = this.el.nativeElement;
889
+ // mark all matched text in the DOM
890
+ SkyTextHighlightDirective.markTextNodes(node, searchText);
891
+ this.existingHighlight = true;
892
+ }
893
+ this.observeDom();
894
+ }
895
+ observeDom() {
896
+ /* istanbul ignore else */
897
+ if (this.observer) {
898
+ const config = {
899
+ attributes: false,
900
+ childList: true,
901
+ characterData: true,
902
+ };
903
+ this.observer.observe(this.el.nativeElement, config);
904
+ }
905
+ }
907
906
  }
908
907
  SkyTextHighlightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyTextHighlightDirective, deps: [{ token: i0.ElementRef }, { token: i1$2.MutationObserverService }], target: i0.ɵɵFactoryTarget.Directive });
909
908
  SkyTextHighlightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyTextHighlightDirective, selector: "[skyHighlight]", inputs: { skyHighlight: "skyHighlight" }, usesOnChanges: true, ngImport: i0 });