@skyux/layout 8.7.2 → 9.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/documentation.json +228 -228
  2. package/esm2022/lib/modules/action-button/action-button-adapter-service.mjs +44 -0
  3. package/esm2022/lib/modules/action-button/action-button-container.component.mjs +138 -0
  4. package/{esm2020 → esm2022}/lib/modules/action-button/action-button-details.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/modules/action-button/action-button-header.component.mjs +4 -4
  6. package/esm2022/lib/modules/action-button/action-button-icon.component.mjs +40 -0
  7. package/esm2022/lib/modules/action-button/action-button.component.mjs +50 -0
  8. package/{esm2020 → esm2022}/lib/modules/action-button/action-button.module.mjs +23 -23
  9. package/{esm2020 → esm2022}/lib/modules/back-to-top/back-to-top-adapter.service.mjs +19 -22
  10. package/esm2022/lib/modules/back-to-top/back-to-top.component.mjs +25 -0
  11. package/esm2022/lib/modules/back-to-top/back-to-top.directive.mjs +119 -0
  12. package/{esm2020 → esm2022}/lib/modules/back-to-top/back-to-top.module.mjs +13 -13
  13. package/{esm2020 → esm2022}/lib/modules/box/box-content.component.mjs +4 -4
  14. package/{esm2020 → esm2022}/lib/modules/box/box-controls.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/modules/box/box-header.component.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/modules/box/box.component.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/modules/box/box.module.mjs +11 -11
  18. package/{esm2020 → esm2022}/lib/modules/card/card-actions.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/modules/card/card-content.component.mjs +4 -4
  20. package/{esm2020 → esm2022}/lib/modules/card/card-title.component.mjs +4 -4
  21. package/esm2022/lib/modules/card/card.component.mjs +107 -0
  22. package/{esm2020 → esm2022}/lib/modules/card/card.module.mjs +21 -21
  23. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-content.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-heading.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-label.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list-value.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list.module.mjs +13 -13
  29. package/{esm2020 → esm2022}/lib/modules/definition-list/definition-list.service.mjs +4 -4
  30. package/esm2022/lib/modules/description-list/description-list-adapter-service.mjs +44 -0
  31. package/{esm2020 → esm2022}/lib/modules/description-list/description-list-content.component.mjs +4 -4
  32. package/esm2022/lib/modules/description-list/description-list-description.component.mjs +52 -0
  33. package/{esm2020 → esm2022}/lib/modules/description-list/description-list-term.component.mjs +4 -4
  34. package/esm2022/lib/modules/description-list/description-list.component.mjs +95 -0
  35. package/{esm2020 → esm2022}/lib/modules/description-list/description-list.module.mjs +19 -19
  36. package/esm2022/lib/modules/description-list/description-list.service.mjs +24 -0
  37. package/esm2022/lib/modules/fluid-grid/column.component.mjs +66 -0
  38. package/esm2022/lib/modules/fluid-grid/fluid-grid.component.mjs +40 -0
  39. package/{esm2020 → esm2022}/lib/modules/fluid-grid/fluid-grid.module.mjs +5 -5
  40. package/{esm2020 → esm2022}/lib/modules/fluid-grid/row.component.mjs +4 -4
  41. package/esm2022/lib/modules/format/format.component.mjs +64 -0
  42. package/{esm2020 → esm2022}/lib/modules/format/format.module.mjs +5 -5
  43. package/esm2022/lib/modules/inline-delete/inline-delete-adapter.service.mjs +123 -0
  44. package/esm2022/lib/modules/inline-delete/inline-delete.component.mjs +164 -0
  45. package/{esm2020 → esm2022}/lib/modules/inline-delete/inline-delete.module.mjs +11 -11
  46. package/esm2022/lib/modules/page/page-theme-adapter.service.mjs +40 -0
  47. package/esm2022/lib/modules/page/page.component.mjs +49 -0
  48. package/{esm2020 → esm2022}/lib/modules/page/page.module.mjs +5 -5
  49. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-adapter.service.mjs +4 -4
  50. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-alert.component.mjs +4 -4
  51. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-content.component.mjs +4 -4
  52. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-image.component.mjs +4 -4
  53. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-key-info.component.mjs +4 -4
  54. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-status.component.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-subtitle.component.mjs +4 -4
  56. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary-title.component.mjs +4 -4
  57. package/esm2022/lib/modules/page-summary/page-summary.component.mjs +73 -0
  58. package/{esm2020 → esm2022}/lib/modules/page-summary/page-summary.module.mjs +19 -19
  59. package/esm2022/lib/modules/shared/sky-layout-resources.module.mjs +60 -0
  60. package/esm2022/lib/modules/text-expand/text-expand-adapter.service.mjs +26 -0
  61. package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand-modal.component.mjs +4 -4
  62. package/esm2022/lib/modules/text-expand/text-expand.component.mjs +315 -0
  63. package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand.module.mjs +11 -11
  64. package/esm2022/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +32 -0
  65. package/esm2022/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +216 -0
  66. package/{esm2020 → esm2022}/lib/modules/text-expand-repeater/text-expand-repeater.module.mjs +5 -5
  67. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar-item.component.mjs +4 -4
  68. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar-section.component.mjs +4 -4
  69. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar-view-actions.component.mjs +4 -4
  70. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar.component.mjs +4 -4
  71. package/{esm2020 → esm2022}/lib/modules/toolbar/toolbar.module.mjs +11 -11
  72. package/esm2022/testing/action-button-fixture.mjs +48 -0
  73. package/esm2022/testing/box/box-harness.mjs +34 -0
  74. package/esm2022/testing/card-fixture.mjs +65 -0
  75. package/esm2022/testing/page-summary-fixture.mjs +31 -0
  76. package/fesm2022/skyux-layout-testing.mjs +181 -0
  77. package/{fesm2015 → fesm2022}/skyux-layout-testing.mjs.map +1 -1
  78. package/fesm2022/skyux-layout.mjs +2957 -0
  79. package/{fesm2020 → fesm2022}/skyux-layout.mjs.map +1 -1
  80. package/lib/modules/action-button/action-button-container.component.d.ts +1 -1
  81. package/lib/modules/action-button/action-button-icon.component.d.ts +1 -1
  82. package/lib/modules/action-button/action-button.component.d.ts +1 -1
  83. package/lib/modules/back-to-top/back-to-top.directive.d.ts +1 -1
  84. package/lib/modules/box/box.component.d.ts +1 -1
  85. package/lib/modules/card/card.component.d.ts +1 -1
  86. package/lib/modules/definition-list/definition-list.component.d.ts +1 -1
  87. package/lib/modules/description-list/description-list.component.d.ts +1 -1
  88. package/lib/modules/fluid-grid/column.component.d.ts +1 -1
  89. package/lib/modules/fluid-grid/fluid-grid.component.d.ts +1 -1
  90. package/lib/modules/fluid-grid/row.component.d.ts +1 -1
  91. package/lib/modules/format/format.component.d.ts +1 -1
  92. package/lib/modules/inline-delete/inline-delete.component.d.ts +1 -1
  93. package/lib/modules/page/page.component.d.ts +1 -1
  94. package/lib/modules/text-expand/text-expand.component.d.ts +1 -1
  95. package/lib/modules/text-expand-repeater/text-expand-repeater.component.d.ts +1 -1
  96. package/package.json +23 -31
  97. package/esm2020/lib/modules/action-button/action-button-adapter-service.mjs +0 -47
  98. package/esm2020/lib/modules/action-button/action-button-container.component.mjs +0 -139
  99. package/esm2020/lib/modules/action-button/action-button-icon.component.mjs +0 -43
  100. package/esm2020/lib/modules/action-button/action-button.component.mjs +0 -53
  101. package/esm2020/lib/modules/back-to-top/back-to-top.component.mjs +0 -30
  102. package/esm2020/lib/modules/back-to-top/back-to-top.directive.mjs +0 -118
  103. package/esm2020/lib/modules/card/card.component.mjs +0 -109
  104. package/esm2020/lib/modules/description-list/description-list-adapter-service.mjs +0 -47
  105. package/esm2020/lib/modules/description-list/description-list-description.component.mjs +0 -55
  106. package/esm2020/lib/modules/description-list/description-list.component.mjs +0 -98
  107. package/esm2020/lib/modules/description-list/description-list.service.mjs +0 -29
  108. package/esm2020/lib/modules/fluid-grid/column.component.mjs +0 -71
  109. package/esm2020/lib/modules/fluid-grid/fluid-grid.component.mjs +0 -42
  110. package/esm2020/lib/modules/format/format.component.mjs +0 -67
  111. package/esm2020/lib/modules/inline-delete/inline-delete-adapter.service.mjs +0 -122
  112. package/esm2020/lib/modules/inline-delete/inline-delete.component.mjs +0 -167
  113. package/esm2020/lib/modules/page/page-theme-adapter.service.mjs +0 -43
  114. package/esm2020/lib/modules/page/page.component.mjs +0 -52
  115. package/esm2020/lib/modules/page-summary/page-summary.component.mjs +0 -75
  116. package/esm2020/lib/modules/shared/sky-layout-resources.module.mjs +0 -60
  117. package/esm2020/lib/modules/text-expand/text-expand-adapter.service.mjs +0 -29
  118. package/esm2020/lib/modules/text-expand/text-expand.component.mjs +0 -306
  119. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater-adapter.service.mjs +0 -35
  120. package/esm2020/lib/modules/text-expand-repeater/text-expand-repeater.component.mjs +0 -214
  121. package/esm2020/testing/action-button-fixture.mjs +0 -51
  122. package/esm2020/testing/box/box-harness.mjs +0 -40
  123. package/esm2020/testing/card-fixture.mjs +0 -67
  124. package/esm2020/testing/page-summary-fixture.mjs +0 -34
  125. package/fesm2015/skyux-layout-testing.mjs +0 -198
  126. package/fesm2015/skyux-layout.mjs +0 -2996
  127. package/fesm2015/skyux-layout.mjs.map +0 -1
  128. package/fesm2020/skyux-layout-testing.mjs +0 -192
  129. package/fesm2020/skyux-layout-testing.mjs.map +0 -1
  130. package/fesm2020/skyux-layout.mjs +0 -2982
  131. /package/{esm2020 → esm2022}/index.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/modules/action-button/action-button-permalink.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/modules/action-button/types/action-button-container-align-items-type.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/modules/action-button/types/action-button-container-align-items.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/modules/back-to-top/models/back-to-top-message-type.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/modules/back-to-top/models/back-to-top-message.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/modules/back-to-top/models/back-to-top-options.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/modules/description-list/types/description-list-mode-type.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/modules/description-list/types/description-list-mode.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/modules/fluid-grid/types/fluid-grid-gutter-size-type.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/modules/format/format-item.mjs +0 -0
  142. /package/{esm2020 → esm2022}/lib/modules/inline-delete/inline-delete-type.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/modules/page/page-layout-type.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand-modal-context-token.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/modules/text-expand/text-expand-modal-context.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/modules/text-expand-repeater/types/text-expand-repeater-list-style-type.mjs +0 -0
  147. /package/{esm2020 → esm2022}/skyux-layout.mjs +0 -0
  148. /package/{esm2020 → esm2022}/testing/box/box-harness.filters.mjs +0 -0
  149. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  150. /package/{esm2020 → esm2022}/testing/skyux-layout-testing.mjs +0 -0
@@ -0,0 +1,315 @@
1
+ import { animate, state, style, transition, trigger, } from '@angular/animations';
2
+ import { Component, ElementRef, Input, ViewChild, } from '@angular/core';
3
+ import { forkJoin as observableForkJoin } from 'rxjs';
4
+ import { take } from 'rxjs/operators';
5
+ import { SkyTextExpandAdapterService } from './text-expand-adapter.service';
6
+ import { SKY_TEXT_EXPAND_MODAL_CONTEXT } from './text-expand-modal-context-token';
7
+ import { SkyTextExpandModalComponent } from './text-expand-modal.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@skyux/i18n";
10
+ import * as i2 from "@skyux/modals";
11
+ import * as i3 from "./text-expand-adapter.service";
12
+ import * as i4 from "@angular/common";
13
+ /**
14
+ * Auto-incrementing integer used to generate unique ids for text expand components.
15
+ */
16
+ let nextId = 0;
17
+ export class SkyTextExpandComponent {
18
+ /**
19
+ * The maximum number of text characters to display inline when users select the link
20
+ * to expand the full text. If the text exceeds this limit, then the component expands
21
+ * the full text in a modal instead.
22
+ * @default 600
23
+ */
24
+ set maxExpandedLength(value) {
25
+ if (value) {
26
+ this.#_maxExpandedLength = value;
27
+ }
28
+ else {
29
+ this.#_maxExpandedLength = 600;
30
+ }
31
+ this.#setup(this.text);
32
+ }
33
+ get maxExpandedLength() {
34
+ return this.#_maxExpandedLength;
35
+ }
36
+ /**
37
+ * The maximum number of newline characters to display inline when users select
38
+ * the link to expand the full text. If the text exceeds this limit, then
39
+ * the component expands the full text in a modal view instead.
40
+ * @default 2
41
+ */
42
+ set maxExpandedNewlines(value) {
43
+ if (value) {
44
+ this.#_maxExpandedNewlines = value;
45
+ }
46
+ else {
47
+ this.#_maxExpandedNewlines = 2;
48
+ }
49
+ this.#setup(this.text);
50
+ }
51
+ get maxExpandedNewlines() {
52
+ return this.#_maxExpandedNewlines;
53
+ }
54
+ /**
55
+ * The number of text characters to display before truncating the text.
56
+ * To avoid truncating text in the middle of a word, the component looks for a space
57
+ * in the 10 characters before the last character.
58
+ * @default 200
59
+ */
60
+ set maxLength(value) {
61
+ if (value) {
62
+ this.#_maxLength = value;
63
+ }
64
+ else {
65
+ this.#_maxLength = 200;
66
+ }
67
+ this.#setup(this.text);
68
+ }
69
+ get maxLength() {
70
+ return this.#_maxLength;
71
+ }
72
+ /**
73
+ * The text to truncate.
74
+ */
75
+ set text(value) {
76
+ this.#_text = value ?? '';
77
+ this.#setup(this.#_text);
78
+ }
79
+ get text() {
80
+ return this.#_text;
81
+ }
82
+ set textEl(value) {
83
+ this.#_textEl = value;
84
+ this.#setup(this.text);
85
+ }
86
+ get textEl() {
87
+ return this.#_textEl;
88
+ }
89
+ #collapsedText;
90
+ #newlineCount;
91
+ #seeMoreText;
92
+ #seeLessText;
93
+ #textToShow;
94
+ #_maxExpandedLength;
95
+ #_maxExpandedNewlines;
96
+ #_maxLength;
97
+ #_text;
98
+ #_textEl;
99
+ #resources;
100
+ #modalSvc;
101
+ #textExpandAdapter;
102
+ constructor(resources, modalSvc, textExpandAdapter) {
103
+ /**
104
+ * Whether to replace newline characters in truncated text with spaces.
105
+ */
106
+ this.truncateNewlines = true;
107
+ this.buttonText = '';
108
+ this.contentSectionId = `sky-text-expand-content-${++nextId}`;
109
+ this.expandable = false;
110
+ this.isModal = false;
111
+ this.transitionHeight = 1;
112
+ this.#collapsedText = '';
113
+ this.#newlineCount = 0;
114
+ this.#seeMoreText = '';
115
+ this.#seeLessText = '';
116
+ this.#textToShow = '';
117
+ this.#_maxExpandedLength = 600;
118
+ this.#_maxExpandedNewlines = 2;
119
+ this.#_maxLength = 200;
120
+ this.#_text = '';
121
+ this.#resources = resources;
122
+ this.#modalSvc = modalSvc;
123
+ this.#textExpandAdapter = textExpandAdapter;
124
+ }
125
+ textExpand() {
126
+ if (this.isModal) {
127
+ // Modal View
128
+ /* istanbul ignore else */
129
+ /* sanity check */
130
+ if (!this.isExpanded) {
131
+ this.#modalSvc.open(SkyTextExpandModalComponent, [
132
+ {
133
+ provide: SKY_TEXT_EXPAND_MODAL_CONTEXT,
134
+ useValue: {
135
+ header: this.expandModalTitle,
136
+ text: this.text,
137
+ },
138
+ },
139
+ ]);
140
+ }
141
+ }
142
+ else {
143
+ // Normal View
144
+ if (!this.isExpanded) {
145
+ this.#animateText(true);
146
+ }
147
+ else {
148
+ this.#animateText(false);
149
+ }
150
+ }
151
+ }
152
+ animationEnd() {
153
+ if (this.textEl && this.containerEl) {
154
+ // Ensure the correct text is displayed
155
+ this.#textExpandAdapter.setText(this.textEl, this.#textToShow);
156
+ setTimeout(() => {
157
+ if (this.containerEl) {
158
+ // Set height back to auto so the browser can change the height as needed with window changes
159
+ this.#textExpandAdapter.removeContainerMaxHeight(this.containerEl);
160
+ }
161
+ });
162
+ }
163
+ }
164
+ ngAfterContentInit() {
165
+ observableForkJoin([
166
+ this.#resources.getString('skyux_text_expand_see_more'),
167
+ this.#resources.getString('skyux_text_expand_see_less'),
168
+ ])
169
+ .pipe(take(1))
170
+ .subscribe((resources) => {
171
+ this.#seeMoreText = resources[0];
172
+ this.#seeLessText = resources[1];
173
+ this.#setup(this.text);
174
+ /* istanbul ignore else */
175
+ if (!this.expandModalTitle) {
176
+ this.#resources
177
+ .getString('skyux_text_expand_modal_title')
178
+ .pipe(take(1))
179
+ .subscribe((resource) => {
180
+ this.expandModalTitle = resource;
181
+ });
182
+ }
183
+ });
184
+ }
185
+ #setup(value) {
186
+ if (value) {
187
+ this.#newlineCount = this.#getNewlineCount(value);
188
+ this.#collapsedText = this.#getTruncatedText(value, this.maxLength);
189
+ if (this.#collapsedText !== value) {
190
+ this.buttonText = this.#seeMoreText;
191
+ this.isExpanded = false;
192
+ this.expandable = true;
193
+ this.isModal =
194
+ this.#newlineCount > this.maxExpandedNewlines ||
195
+ this.text.length > this.maxExpandedLength;
196
+ }
197
+ else {
198
+ this.expandable = false;
199
+ }
200
+ this.#textToShow = this.#collapsedText;
201
+ }
202
+ else {
203
+ this.#textToShow = '';
204
+ this.expandable = false;
205
+ }
206
+ if (this.textEl) {
207
+ this.#textExpandAdapter.setText(this.textEl, this.#textToShow);
208
+ }
209
+ }
210
+ #getNewlineCount(value) {
211
+ const matches = value.match(/\n/gi);
212
+ if (matches) {
213
+ return matches.length;
214
+ }
215
+ return 0;
216
+ }
217
+ #getTruncatedText(value, length) {
218
+ let i;
219
+ if (this.truncateNewlines) {
220
+ value = value.replace(/\n+/gi, ' ');
221
+ }
222
+ // Jump ahead one character and see if it's a space, and if it isn't,
223
+ // back up to the first space and break there so a word doesn't get cut
224
+ // in half.
225
+ if (length < value.length) {
226
+ for (i = length; i > length - 10; i--) {
227
+ if (/\s/.test(value.charAt(i))) {
228
+ length = i;
229
+ break;
230
+ }
231
+ }
232
+ }
233
+ return value.substring(0, length);
234
+ }
235
+ #animateText(expanding) {
236
+ if (this.containerEl && this.textEl) {
237
+ const adapter = this.#textExpandAdapter;
238
+ const container = this.containerEl;
239
+ if (expanding) {
240
+ adapter.setText(this.textEl, this.text);
241
+ this.#textToShow = this.text;
242
+ }
243
+ else {
244
+ adapter.setText(this.textEl, this.#collapsedText);
245
+ this.#textToShow = this.#collapsedText;
246
+ }
247
+ this.buttonText = expanding ? this.#seeLessText : this.#seeMoreText;
248
+ // Measure the new height so we can animate to it.
249
+ const newHeight = adapter.getContainerHeight(container);
250
+ this.transitionHeight = newHeight;
251
+ // Always show all text while animating so that the animation is smooth. The animation callback will set this back if needed.
252
+ if (!expanding) {
253
+ adapter.setText(this.textEl, this.text);
254
+ }
255
+ this.isExpanded = expanding;
256
+ }
257
+ }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandComponent, deps: [{ token: i1.SkyLibResourcesService }, { token: i2.SkyModalService }, { token: i3.SkyTextExpandAdapterService }], target: i0.ɵɵFactoryTarget.Component }); }
259
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyTextExpandComponent, selector: "sky-text-expand", inputs: { expandModalTitle: "expandModalTitle", maxExpandedLength: "maxExpandedLength", maxExpandedNewlines: "maxExpandedNewlines", maxLength: "maxLength", text: "text", truncateNewlines: "truncateNewlines" }, providers: [SkyTextExpandAdapterService], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "textEl", first: true, predicate: ["text"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n class=\"sky-text-expand-container\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : !!isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
260
+ trigger('expansionAnimation', [
261
+ transition(':enter', []),
262
+ state('true', style({
263
+ maxHeight: '{{transitionHeight}}px',
264
+ }), { params: { transitionHeight: 0 } }),
265
+ state('false', style({
266
+ maxHeight: '{{transitionHeight}}px',
267
+ }), { params: { transitionHeight: 0 } }),
268
+ transition('true => false', animate('250ms ease')),
269
+ transition('false => true', animate('250ms ease')),
270
+ transition('void => *', []),
271
+ ]),
272
+ ] }); }
273
+ }
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandComponent, decorators: [{
275
+ type: Component,
276
+ args: [{ animations: [
277
+ trigger('expansionAnimation', [
278
+ transition(':enter', []),
279
+ state('true', style({
280
+ maxHeight: '{{transitionHeight}}px',
281
+ }), { params: { transitionHeight: 0 } }),
282
+ state('false', style({
283
+ maxHeight: '{{transitionHeight}}px',
284
+ }), { params: { transitionHeight: 0 } }),
285
+ transition('true => false', animate('250ms ease')),
286
+ transition('false => true', animate('250ms ease')),
287
+ transition('void => *', []),
288
+ ]),
289
+ ], selector: 'sky-text-expand', providers: [SkyTextExpandAdapterService], template: "<div\n [@expansionAnimation]=\"{\n value: isExpanded,\n params: { transitionHeight: transitionHeight }\n }\"\n (@expansionAnimation.done)=\"animationEnd()\"\n class=\"sky-text-expand-container\"\n #container\n>\n <span class=\"sky-text-expand-text\" [id]=\"contentSectionId\" #text></span>\n <span class=\"sky-text-expand-ellipsis\" *ngIf=\"!isExpanded && expandable\"\n >...\n </span>\n <button\n *ngIf=\"expandable\"\n type=\"button\"\n class=\"sky-btn sky-btn-link-inline sky-text-expand-see-more\"\n [attr.aria-expanded]=\"isModal ? undefined : !!isExpanded\"\n [attr.aria-controls]=\"isModal ? undefined : contentSectionId\"\n [attr.aria-haspopup]=\"isModal ? 'dialog' : undefined\"\n (click)=\"textExpand()\"\n >\n {{ buttonText }}\n </button>\n</div>\n", styles: [".sky-text-expand-ellipsis{letter-spacing:2px;white-space:nowrap}.sky-text-expand-space{white-space:normal}.sky-text-expand-see-more{white-space:nowrap;margin-left:5px}.sky-text-expand-text{margin:0;white-space:pre-wrap}.sky-text-expand-container{word-break:break-word;word-wrap:break-word;overflow:hidden;height:auto}.sky-text-expand-modal-content{white-space:pre-line;word-wrap:break-word}\n"] }]
290
+ }], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }, { type: i2.SkyModalService }, { type: i3.SkyTextExpandAdapterService }]; }, propDecorators: { expandModalTitle: [{
291
+ type: Input
292
+ }], maxExpandedLength: [{
293
+ type: Input
294
+ }], maxExpandedNewlines: [{
295
+ type: Input
296
+ }], maxLength: [{
297
+ type: Input
298
+ }], text: [{
299
+ type: Input
300
+ }], truncateNewlines: [{
301
+ type: Input
302
+ }], containerEl: [{
303
+ type: ViewChild,
304
+ args: ['container', {
305
+ read: ElementRef,
306
+ static: true,
307
+ }]
308
+ }], textEl: [{
309
+ type: ViewChild,
310
+ args: ['text', {
311
+ read: ElementRef,
312
+ static: true,
313
+ }]
314
+ }] } });
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQvdGV4dC1leHBhbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQvdGV4dC1leHBhbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxRQUFRLElBQUksa0JBQWtCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7QUFFNUU7O0dBRUc7QUFDSCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUE4QmYsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQzs7Ozs7T0FLRztJQUNILElBQ1csaUJBQWlCLENBQUMsS0FBeUI7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsR0FB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QUFTLEVBQUUsd0JBQXdCOzZCQUNwQyxDQUFDLEVBQ0YsRUFBRSxNQUFNLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNwQzs0QkFDRCxLQUFLLENBQ0gsT0FBTyxFQUNQLEtBQUssQ0FBQztnQ0FDSixTQUFTLEVBQUUsd0JBQXdCOzZCQUNwQyxDQUFDLEVBQ0YsRUFBRSxNQUFNLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNwQzs0QkFDRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQzs0QkFDbEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7NEJBQ2xELFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO3lCQUM1QixDQUFDO3FCQUNILFlBQ1MsaUJBQWlCLGFBR2hCLENBQUMsMkJBQTJCLENBQUM7cUxBUWpDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFVSyxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBcUJLLG1CQUFtQjtzQkFEN0IsS0FBSztnQkFxQkssU0FBUztzQkFEbkIsS0FBSztnQkFrQkssSUFBSTtzQkFEZCxLQUFLO2dCQWNDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFtQkMsV0FBVztzQkFKakIsU0FBUzt1QkFBQyxXQUFXLEVBQUU7d0JBQ3RCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPVSxNQUFNO3NCQUpoQixTQUFTO3VCQUFDLE1BQU0sRUFBRTt3QkFDakIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5TW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IGZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi90ZXh0LWV4cGFuZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0tZX1RFWFRfRVhQQU5EX01PREFMX0NPTlRFWFQgfSBmcm9tICcuL3RleHQtZXhwYW5kLW1vZGFsLWNvbnRleHQtdG9rZW4nO1xuaW1wb3J0IHsgU2t5VGV4dEV4cGFuZE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWV4cGFuZC1tb2RhbC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEF1dG8taW5jcmVtZW50aW5nIGludGVnZXIgdXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgaWRzIGZvciB0ZXh0IGV4cGFuZCBjb21wb25lbnRzLlxuICovXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdleHBhbnNpb25BbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3RydWUnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgbWF4SGVpZ2h0OiAne3t0cmFuc2l0aW9uSGVpZ2h0fX1weCcsXG4gICAgICAgIH0pLFxuICAgICAgICB7IHBhcmFtczogeyB0cmFuc2l0aW9uSGVpZ2h0OiAwIH0gfVxuICAgICAgKSxcbiAgICAgIHN0YXRlKFxuICAgICAgICAnZmFsc2UnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgbWF4SGVpZ2h0OiAne3t0cmFuc2l0aW9uSGVpZ2h0fX1weCcsXG4gICAgICAgIH0pLFxuICAgICAgICB7IHBhcmFtczogeyB0cmFuc2l0aW9uSGVpZ2h0OiAwIH0gfVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBhbmltYXRlKCcyNTBtcyBlYXNlJykpLFxuICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoJzI1MG1zIGVhc2UnKSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBbXSksXG4gICAgXSksXG4gIF0sXG4gIHNlbGVjdG9yOiAnc2t5LXRleHQtZXhwYW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZXhwYW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1leHBhbmQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5VGV4dEV4cGFuZEFkYXB0ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEV4cGFuZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAvKipcbiAgICogVGhlIHRpdGxlIHRvIGRpc3BsYXkgd2hlbiB0aGUgY29tcG9uZW50IGV4cGFuZHMgdGhlIGZ1bGwgdGV4dCBpbiBhIG1vZGFsLlxuICAgKiBAZGVmYXVsdCBcIkV4cGFuZGVkIHZpZXdcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGV4cGFuZE1vZGFsVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRleHQgY2hhcmFjdGVycyB0byBkaXNwbGF5IGlubGluZSB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgbGlua1xuICAgKiB0byBleHBhbmQgdGhlIGZ1bGwgdGV4dC4gSWYgdGhlIHRleHQgZXhjZWVkcyB0aGlzIGxpbWl0LCB0aGVuIHRoZSBjb21wb25lbnQgZXhwYW5kc1xuICAgKiB0aGUgZnVsbCB0ZXh0IGluIGEgbW9kYWwgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgNjAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1heEV4cGFuZGVkTGVuZ3RoKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI19tYXhFeHBhbmRlZExlbmd0aCA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbWF4RXhwYW5kZWRMZW5ndGggPSA2MDA7XG4gICAgfVxuICAgIHRoaXMuI3NldHVwKHRoaXMudGV4dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1heEV4cGFuZGVkTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19tYXhFeHBhbmRlZExlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmV3bGluZSBjaGFyYWN0ZXJzIHRvIGRpc3BsYXkgaW5saW5lIHdoZW4gdXNlcnMgc2VsZWN0XG4gICAqIHRoZSBsaW5rIHRvIGV4cGFuZCB0aGUgZnVsbCB0ZXh0LiBJZiB0aGUgdGV4dCBleGNlZWRzIHRoaXMgbGltaXQsIHRoZW5cbiAgICogdGhlIGNvbXBvbmVudCBleHBhbmRzIHRoZSBmdWxsIHRleHQgaW4gYSBtb2RhbCB2aWV3IGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4RXhwYW5kZWROZXdsaW5lcyh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfbWF4RXhwYW5kZWROZXdsaW5lcyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbWF4RXhwYW5kZWROZXdsaW5lcyA9IDI7XG4gICAgfVxuICAgIHRoaXMuI3NldHVwKHRoaXMudGV4dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1heEV4cGFuZGVkTmV3bGluZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX21heEV4cGFuZGVkTmV3bGluZXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0ZXh0IGNoYXJhY3RlcnMgdG8gZGlzcGxheSBiZWZvcmUgdHJ1bmNhdGluZyB0aGUgdGV4dC5cbiAgICogVG8gYXZvaWQgdHJ1bmNhdGluZyB0ZXh0IGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkLCB0aGUgY29tcG9uZW50IGxvb2tzIGZvciBhIHNwYWNlXG4gICAqIGluIHRoZSAxMCBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgbGFzdCBjaGFyYWN0ZXIuXG4gICAqIEBkZWZhdWx0IDIwMFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtYXhMZW5ndGgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jX21heExlbmd0aCA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbWF4TGVuZ3RoID0gMjAwO1xuICAgIH1cbiAgICB0aGlzLiNzZXR1cCh0aGlzLnRleHQpO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX21heExlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byB0cnVuY2F0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGV4dCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3RleHQgPSB2YWx1ZSA/PyAnJztcbiAgICB0aGlzLiNzZXR1cCh0aGlzLiNfdGV4dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX3RleHQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byByZXBsYWNlIG5ld2xpbmUgY2hhcmFjdGVycyBpbiB0cnVuY2F0ZWQgdGV4dCB3aXRoIHNwYWNlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cnVuY2F0ZU5ld2xpbmVzID0gdHJ1ZTtcblxuICBwdWJsaWMgYnV0dG9uVGV4dCA9ICcnO1xuXG4gIHB1YmxpYyBjb250ZW50U2VjdGlvbklkID0gYHNreS10ZXh0LWV4cGFuZC1jb250ZW50LSR7KytuZXh0SWR9YDtcblxuICBwdWJsaWMgZXhwYW5kYWJsZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0V4cGFuZGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc01vZGFsID0gZmFsc2U7XG5cbiAgcHVibGljIHRyYW5zaXRpb25IZWlnaHQgPSAxO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGNvbnRhaW5lckVsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHQnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBzZXQgdGV4dEVsKHZhbHVlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3RleHRFbCA9IHZhbHVlO1xuICAgIHRoaXMuI3NldHVwKHRoaXMudGV4dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRleHRFbCgpOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3RleHRFbDtcbiAgfVxuXG4gICNjb2xsYXBzZWRUZXh0ID0gJyc7XG5cbiAgI25ld2xpbmVDb3VudCA9IDA7XG5cbiAgI3NlZU1vcmVUZXh0ID0gJyc7XG5cbiAgI3NlZUxlc3NUZXh0ID0gJyc7XG5cbiAgI3RleHRUb1Nob3cgPSAnJztcblxuICAjX21heEV4cGFuZGVkTGVuZ3RoID0gNjAwO1xuXG4gICNfbWF4RXhwYW5kZWROZXdsaW5lcyA9IDI7XG5cbiAgI19tYXhMZW5ndGggPSAyMDA7XG5cbiAgI190ZXh0ID0gJyc7XG5cbiAgI190ZXh0RWw6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI3Jlc291cmNlczogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcbiAgI21vZGFsU3ZjOiBTa3lNb2RhbFNlcnZpY2U7XG4gICN0ZXh0RXhwYW5kQWRhcHRlcjogU2t5VGV4dEV4cGFuZEFkYXB0ZXJTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlc291cmNlczogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgICBtb2RhbFN2YzogU2t5TW9kYWxTZXJ2aWNlLFxuICAgIHRleHRFeHBhbmRBZGFwdGVyOiBTa3lUZXh0RXhwYW5kQWRhcHRlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jcmVzb3VyY2VzID0gcmVzb3VyY2VzO1xuICAgIHRoaXMuI21vZGFsU3ZjID0gbW9kYWxTdmM7XG4gICAgdGhpcy4jdGV4dEV4cGFuZEFkYXB0ZXIgPSB0ZXh0RXhwYW5kQWRhcHRlcjtcbiAgfVxuXG4gIHB1YmxpYyB0ZXh0RXhwYW5kKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTW9kYWwpIHtcbiAgICAgIC8vIE1vZGFsIFZpZXdcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICAgIHRoaXMuI21vZGFsU3ZjLm9wZW4oU2t5VGV4dEV4cGFuZE1vZGFsQ29tcG9uZW50LCBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU0tZX1RFWFRfRVhQQU5EX01PREFMX0NPTlRFWFQsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMuZXhwYW5kTW9kYWxUaXRsZSxcbiAgICAgICAgICAgICAgdGV4dDogdGhpcy50ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm9ybWFsIFZpZXdcbiAgICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICAgIHRoaXMuI2FuaW1hdGVUZXh0KHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jYW5pbWF0ZVRleHQoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhbmltYXRpb25FbmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGV4dEVsICYmIHRoaXMuY29udGFpbmVyRWwpIHtcbiAgICAgIC8vIEVuc3VyZSB0aGUgY29ycmVjdCB0ZXh0IGlzIGRpc3BsYXllZFxuICAgICAgdGhpcy4jdGV4dEV4cGFuZEFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgdGhpcy4jdGV4dFRvU2hvdyk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJFbCkge1xuICAgICAgICAgIC8vIFNldCBoZWlnaHQgYmFjayB0byBhdXRvIHNvIHRoZSBicm93c2VyIGNhbiBjaGFuZ2UgdGhlIGhlaWdodCBhcyBuZWVkZWQgd2l0aCB3aW5kb3cgY2hhbmdlc1xuICAgICAgICAgIHRoaXMuI3RleHRFeHBhbmRBZGFwdGVyLnJlbW92ZUNvbnRhaW5lck1heEhlaWdodCh0aGlzLmNvbnRhaW5lckVsKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4oW1xuICAgICAgdGhpcy4jcmVzb3VyY2VzLmdldFN0cmluZygnc2t5dXhfdGV4dF9leHBhbmRfc2VlX21vcmUnKSxcbiAgICAgIHRoaXMuI3Jlc291cmNlcy5nZXRTdHJpbmcoJ3NreXV4X3RleHRfZXhwYW5kX3NlZV9sZXNzJyksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXNvdXJjZXMpID0+IHtcbiAgICAgICAgdGhpcy4jc2VlTW9yZVRleHQgPSByZXNvdXJjZXNbMF07XG4gICAgICAgIHRoaXMuI3NlZUxlc3NUZXh0ID0gcmVzb3VyY2VzWzFdO1xuICAgICAgICB0aGlzLiNzZXR1cCh0aGlzLnRleHQpO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICghdGhpcy5leHBhbmRNb2RhbFRpdGxlKSB7XG4gICAgICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgICAgICAuZ2V0U3RyaW5nKCdza3l1eF90ZXh0X2V4cGFuZF9tb2RhbF90aXRsZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5leHBhbmRNb2RhbFRpdGxlID0gcmVzb3VyY2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAjc2V0dXAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbmV3bGluZUNvdW50ID0gdGhpcy4jZ2V0TmV3bGluZUNvdW50KHZhbHVlKTtcbiAgICAgIHRoaXMuI2NvbGxhcHNlZFRleHQgPSB0aGlzLiNnZXRUcnVuY2F0ZWRUZXh0KHZhbHVlLCB0aGlzLm1heExlbmd0aCk7XG4gICAgICBpZiAodGhpcy4jY29sbGFwc2VkVGV4dCAhPT0gdmFsdWUpIHtcbiAgICAgICAgdGhpcy5idXR0b25UZXh0ID0gdGhpcy4jc2VlTW9yZVRleHQ7XG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmV4cGFuZGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzTW9kYWwgPVxuICAgICAgICAgIHRoaXMuI25ld2xpbmVDb3VudCA+IHRoaXMubWF4RXhwYW5kZWROZXdsaW5lcyB8fFxuICAgICAgICAgIHRoaXMudGV4dC5sZW5ndGggPiB0aGlzLm1heEV4cGFuZGVkTGVuZ3RoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5leHBhbmRhYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLiN0ZXh0VG9TaG93ID0gdGhpcy4jY29sbGFwc2VkVGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jdGV4dFRvU2hvdyA9ICcnO1xuICAgICAgdGhpcy5leHBhbmRhYmxlID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnRleHRFbCkge1xuICAgICAgdGhpcy4jdGV4dEV4cGFuZEFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgdGhpcy4jdGV4dFRvU2hvdyk7XG4gICAgfVxuICB9XG5cbiAgI2dldE5ld2xpbmVDb3VudCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBtYXRjaGVzID0gdmFsdWUubWF0Y2goL1xcbi9naSk7XG5cbiAgICBpZiAobWF0Y2hlcykge1xuICAgICAgcmV0dXJuIG1hdGNoZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgI2dldFRydW5jYXRlZFRleHQodmFsdWU6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgaWYgKHRoaXMudHJ1bmNhdGVOZXdsaW5lcykge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXG4rL2dpLCAnICcpO1xuICAgIH1cbiAgICAvLyBKdW1wIGFoZWFkIG9uZSBjaGFyYWN0ZXIgYW5kIHNlZSBpZiBpdCdzIGEgc3BhY2UsIGFuZCBpZiBpdCBpc24ndCxcbiAgICAvLyBiYWNrIHVwIHRvIHRoZSBmaXJzdCBzcGFjZSBhbmQgYnJlYWsgdGhlcmUgc28gYSB3b3JkIGRvZXNuJ3QgZ2V0IGN1dFxuICAgIC8vIGluIGhhbGYuXG4gICAgaWYgKGxlbmd0aCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgZm9yIChpID0gbGVuZ3RoOyBpID4gbGVuZ3RoIC0gMTA7IGktLSkge1xuICAgICAgICBpZiAoL1xccy8udGVzdCh2YWx1ZS5jaGFyQXQoaSkpKSB7XG4gICAgICAgICAgbGVuZ3RoID0gaTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWUuc3Vic3RyaW5nKDAsIGxlbmd0aCk7XG4gIH1cblxuICAjYW5pbWF0ZVRleHQoZXhwYW5kaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyRWwgJiYgdGhpcy50ZXh0RWwpIHtcbiAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLiN0ZXh0RXhwYW5kQWRhcHRlcjtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyRWw7XG4gICAgICBpZiAoZXhwYW5kaW5nKSB7XG4gICAgICAgIGFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgdGhpcy50ZXh0KTtcbiAgICAgICAgdGhpcy4jdGV4dFRvU2hvdyA9IHRoaXMudGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgdGhpcy4jY29sbGFwc2VkVGV4dCk7XG4gICAgICAgIHRoaXMuI3RleHRUb1Nob3cgPSB0aGlzLiNjb2xsYXBzZWRUZXh0O1xuICAgICAgfVxuICAgICAgdGhpcy5idXR0b25UZXh0ID0gZXhwYW5kaW5nID8gdGhpcy4jc2VlTGVzc1RleHQgOiB0aGlzLiNzZWVNb3JlVGV4dDtcbiAgICAgIC8vIE1lYXN1cmUgdGhlIG5ldyBoZWlnaHQgc28gd2UgY2FuIGFuaW1hdGUgdG8gaXQuXG4gICAgICBjb25zdCBuZXdIZWlnaHQgPSBhZGFwdGVyLmdldENvbnRhaW5lckhlaWdodChjb250YWluZXIpO1xuICAgICAgdGhpcy50cmFuc2l0aW9uSGVpZ2h0ID0gbmV3SGVpZ2h0O1xuICAgICAgLy8gQWx3YXlzIHNob3cgYWxsIHRleHQgd2hpbGUgYW5pbWF0aW5nIHNvIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBzbW9vdGguIFRoZSBhbmltYXRpb24gY2FsbGJhY2sgd2lsbCBzZXQgdGhpcyBiYWNrIGlmIG5lZWRlZC5cbiAgICAgIGlmICghZXhwYW5kaW5nKSB7XG4gICAgICAgIGFkYXB0ZXIuc2V0VGV4dCh0aGlzLnRleHRFbCwgdGhpcy50ZXh0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IGV4cGFuZGluZztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW0BleHBhbnNpb25BbmltYXRpb25dPVwie1xuICAgIHZhbHVlOiBpc0V4cGFuZGVkLFxuICAgIHBhcmFtczogeyB0cmFuc2l0aW9uSGVpZ2h0OiB0cmFuc2l0aW9uSGVpZ2h0IH1cbiAgfVwiXG4gIChAZXhwYW5zaW9uQW5pbWF0aW9uLmRvbmUpPVwiYW5pbWF0aW9uRW5kKClcIlxuICBjbGFzcz1cInNreS10ZXh0LWV4cGFuZC1jb250YWluZXJcIlxuICAjY29udGFpbmVyXG4+XG4gIDxzcGFuIGNsYXNzPVwic2t5LXRleHQtZXhwYW5kLXRleHRcIiBbaWRdPVwiY29udGVudFNlY3Rpb25JZFwiICN0ZXh0Pjwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktdGV4dC1leHBhbmQtZWxsaXBzaXNcIiAqbmdJZj1cIiFpc0V4cGFuZGVkICYmIGV4cGFuZGFibGVcIlxuICAgID4uLi5cbiAgPC9zcGFuPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJleHBhbmRhYmxlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rLWlubGluZSBza3ktdGV4dC1leHBhbmQtc2VlLW1vcmVcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNNb2RhbCA/IHVuZGVmaW5lZCA6ICEhaXNFeHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc01vZGFsID8gdW5kZWZpbmVkIDogY29udGVudFNlY3Rpb25JZFwiXG4gICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpc01vZGFsID8gJ2RpYWxvZycgOiB1bmRlZmluZWRcIlxuICAgIChjbGljayk9XCJ0ZXh0RXhwYW5kKClcIlxuICA+XG4gICAge3sgYnV0dG9uVGV4dCB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -7,17 +7,17 @@ import { SkyTextExpandModalComponent } from './text-expand-modal.component';
7
7
  import { SkyTextExpandComponent } from './text-expand.component';
8
8
  import * as i0 from "@angular/core";
9
9
  export class SkyTextExpandModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandModule, declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent], imports: [SkyI18nModule,
12
+ SkyLayoutResourcesModule,
13
+ SkyModalModule,
14
+ CommonModule], exports: [SkyTextExpandComponent] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandModule, imports: [SkyI18nModule,
16
+ SkyLayoutResourcesModule,
17
+ SkyModalModule,
18
+ CommonModule] }); }
10
19
  }
11
- SkyTextExpandModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTextExpandModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- SkyTextExpandModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyTextExpandModule, declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent], imports: [SkyI18nModule,
13
- SkyLayoutResourcesModule,
14
- SkyModalModule,
15
- CommonModule], exports: [SkyTextExpandComponent] });
16
- SkyTextExpandModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTextExpandModule, imports: [SkyI18nModule,
17
- SkyLayoutResourcesModule,
18
- SkyModalModule,
19
- CommonModule] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTextExpandModule, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandModule, decorators: [{
21
21
  type: NgModule,
22
22
  args: [{
23
23
  declarations: [SkyTextExpandComponent, SkyTextExpandModalComponent],
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
30
30
  exports: [SkyTextExpandComponent],
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQvdGV4dC1leHBhbmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFZakUsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVRmLHNCQUFzQixFQUFFLDJCQUEyQixhQUVoRSxhQUFhO1FBQ2Isd0JBQXdCO1FBQ3hCLGNBQWM7UUFDZCxZQUFZLGFBRUosc0JBQXNCO2lIQUVyQixtQkFBbUIsWUFQNUIsYUFBYTtRQUNiLHdCQUF3QjtRQUN4QixjQUFjO1FBQ2QsWUFBWTsyRkFJSCxtQkFBbUI7a0JBVi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLENBQUM7b0JBQ25FLE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreU1vZGFsTW9kdWxlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFNreUxheW91dFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktbGF5b3V0LXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZXhwYW5kLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWV4cGFuZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTa3lUZXh0RXhwYW5kQ29tcG9uZW50LCBTa3lUZXh0RXhwYW5kTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgICBTa3lMYXlvdXRSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5VGV4dEV4cGFuZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFeHBhbmRNb2R1bGUge31cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQvdGV4dC1leHBhbmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFZakUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBVGYsc0JBQXNCLEVBQUUsMkJBQTJCLGFBRWhFLGFBQWE7WUFDYix3QkFBd0I7WUFDeEIsY0FBYztZQUNkLFlBQVksYUFFSixzQkFBc0I7K0dBRXJCLG1CQUFtQixZQVA1QixhQUFhO1lBQ2Isd0JBQXdCO1lBQ3hCLGNBQWM7WUFDZCxZQUFZOzsyRkFJSCxtQkFBbUI7a0JBVi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMkJBQTJCLENBQUM7b0JBQ25FLE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreU1vZGFsTW9kdWxlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFNreUxheW91dFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktbGF5b3V0LXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZXhwYW5kLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUZXh0RXhwYW5kQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWV4cGFuZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTa3lUZXh0RXhwYW5kQ29tcG9uZW50LCBTa3lUZXh0RXhwYW5kTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgICBTa3lMYXlvdXRSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5VGV4dEV4cGFuZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFeHBhbmRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ import { Injectable, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @internal
5
+ */
6
+ export class SkyTextExpandRepeaterAdapterService {
7
+ #renderer;
8
+ constructor(rendererFactory) {
9
+ this.#renderer = rendererFactory.createRenderer(undefined, null);
10
+ }
11
+ getItems(elRef) {
12
+ return elRef.nativeElement.querySelectorAll('.sky-text-expand-repeater-item');
13
+ }
14
+ hideItem(item) {
15
+ this.#renderer.setStyle(item, 'display', 'none');
16
+ }
17
+ showItem(item) {
18
+ this.#renderer.removeStyle(item, 'display');
19
+ }
20
+ getContainerHeight(containerEl) {
21
+ return containerEl.nativeElement.offsetHeight;
22
+ }
23
+ removeContainerMaxHeight(containerEl) {
24
+ this.#renderer.removeStyle(containerEl.nativeElement, 'max-height');
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTextExpandRepeaterAdapterService, decorators: [{
30
+ type: Injectable
31
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1leHBhbmQtcmVwZWF0ZXItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvbGliL21vZHVsZXMvdGV4dC1leHBhbmQtcmVwZWF0ZXIvdGV4dC1leHBhbmQtcmVwZWF0ZXItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7O0FBRXZCOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxTQUFTLENBQVk7SUFFckIsWUFBWSxlQUFpQztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBaUI7UUFDL0IsT0FBUSxLQUFLLENBQUMsYUFBNkIsQ0FBQyxnQkFBZ0IsQ0FDMUQsZ0NBQWdDLENBQ04sQ0FBQztJQUMvQixDQUFDO0lBRU0sUUFBUSxDQUFDLElBQWlCO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFpQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFdBQXVCO1FBQy9DLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDaEQsQ0FBQztJQUVNLHdCQUF3QixDQUFDLFdBQXVCO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQzs4R0EzQlUsbUNBQW1DO2tIQUFuQyxtQ0FBbUM7OzJGQUFuQyxtQ0FBbUM7a0JBRC9DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGV4dEV4cGFuZFJlcGVhdGVyQWRhcHRlclNlcnZpY2Uge1xuICAjcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihyZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIpIHtcbiAgICB0aGlzLiNyZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW1zKGVsUmVmOiBFbGVtZW50UmVmKTogTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4ge1xuICAgIHJldHVybiAoZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICcuc2t5LXRleHQtZXhwYW5kLXJlcGVhdGVyLWl0ZW0nXG4gICAgKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PjtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlSXRlbShpdGVtOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKGl0ZW0sICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93SXRlbShpdGVtOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZVN0eWxlKGl0ZW0sICdkaXNwbGF5Jyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGFpbmVySGVpZ2h0KGNvbnRhaW5lckVsOiBFbGVtZW50UmVmKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY29udGFpbmVyRWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ29udGFpbmVyTWF4SGVpZ2h0KGNvbnRhaW5lckVsOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlU3R5bGUoY29udGFpbmVyRWwubmF0aXZlRWxlbWVudCwgJ21heC1oZWlnaHQnKTtcbiAgfVxufVxuIl19