@ifsworld/granite-components 14.2.2 → 15.0.0-beta.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 (164) hide show
  1. package/date-picker/lib/date-picker-base.d.ts +3 -3
  2. package/date-picker/lib/date-picker.module.d.ts +2 -2
  3. package/fesm2022/ifsworld-granite-components-carousel.mjs +15 -13
  4. package/fesm2022/ifsworld-granite-components-carousel.mjs.map +1 -1
  5. package/fesm2022/ifsworld-granite-components-date-picker.mjs +34 -30
  6. package/fesm2022/ifsworld-granite-components-date-picker.mjs.map +1 -1
  7. package/fesm2022/ifsworld-granite-components-file-upload.mjs +13 -12
  8. package/fesm2022/ifsworld-granite-components-file-upload.mjs.map +1 -1
  9. package/fesm2022/ifsworld-granite-components-table.mjs +32 -29
  10. package/fesm2022/ifsworld-granite-components-table.mjs.map +1 -1
  11. package/fesm2022/ifsworld-granite-components-tooltip.mjs +16 -15
  12. package/fesm2022/ifsworld-granite-components-tooltip.mjs.map +1 -1
  13. package/fesm2022/ifsworld-granite-components.mjs +340 -322
  14. package/fesm2022/ifsworld-granite-components.mjs.map +1 -1
  15. package/lib/contacts/contacts-trigger/contacts-trigger-data.d.ts +1 -1
  16. package/lib/core/overlay-base.d.ts +1 -1
  17. package/lib/core/radio-checkbox-base.d.ts +1 -1
  18. package/lib/menu/menu-base.d.ts +1 -1
  19. package/lib/progress-bar/progress-bar-legend-base.d.ts +1 -1
  20. package/package.json +9 -21
  21. package/src/lib/core/style/_mixins.scss +16 -11
  22. package/src/lib/core/style/_range-functions.scss +6 -4
  23. package/src/lib/core/style/_z-index.scss +6 -4
  24. package/table/lib/cell/cell.d.ts +1 -1
  25. package/esm2022/carousel/ifsworld-granite-components-carousel.mjs +0 -5
  26. package/esm2022/carousel/index.mjs +0 -3
  27. package/esm2022/carousel/lib/carousel.component.mjs +0 -154
  28. package/esm2022/carousel/lib/carousel.module.mjs +0 -31
  29. package/esm2022/date-picker/ifsworld-granite-components-date-picker.mjs +0 -5
  30. package/esm2022/date-picker/index.mjs +0 -5
  31. package/esm2022/date-picker/lib/date-picker-base.mjs +0 -53
  32. package/esm2022/date-picker/lib/date-picker-trigger-for.directive.mjs +0 -228
  33. package/esm2022/date-picker/lib/date-picker.component.mjs +0 -30
  34. package/esm2022/date-picker/lib/date-picker.module.mjs +0 -58
  35. package/esm2022/date-picker/lib/date-range-picker.component.mjs +0 -46
  36. package/esm2022/file-upload/ifsworld-granite-components-file-upload.mjs +0 -5
  37. package/esm2022/file-upload/index.mjs +0 -3
  38. package/esm2022/file-upload/lib/directives/file-drag-and-drop.directive.mjs +0 -102
  39. package/esm2022/file-upload/lib/file-upload.component.mjs +0 -182
  40. package/esm2022/file-upload/lib/file-upload.constants.mjs +0 -45
  41. package/esm2022/file-upload/lib/file-upload.module.mjs +0 -32
  42. package/esm2022/file-upload/lib/file-upload.utils.mjs +0 -13
  43. package/esm2022/ifsworld-granite-components.mjs +0 -5
  44. package/esm2022/index.mjs +0 -90
  45. package/esm2022/lib/arrange-grid/arrange-grid-item.component.mjs +0 -44
  46. package/esm2022/lib/arrange-grid/arrange-grid.component.mjs +0 -125
  47. package/esm2022/lib/arrange-grid/arrange-grid.module.mjs +0 -19
  48. package/esm2022/lib/avatar/avatar-default-status/avatar-default-status.component.mjs +0 -36
  49. package/esm2022/lib/avatar/avatar.component.mjs +0 -68
  50. package/esm2022/lib/avatar/avatar.component.public-types.mjs +0 -7
  51. package/esm2022/lib/avatar/avatar.module.mjs +0 -37
  52. package/esm2022/lib/avatar/custom-avatar-status.directive.mjs +0 -18
  53. package/esm2022/lib/avatar/empty-avatar/empty-avatar.component.mjs +0 -37
  54. package/esm2022/lib/badge/badge.component.mjs +0 -39
  55. package/esm2022/lib/badge/badge.module.mjs +0 -18
  56. package/esm2022/lib/badge/testing/badge.harness.mjs +0 -25
  57. package/esm2022/lib/button/button.component.mjs +0 -87
  58. package/esm2022/lib/button/button.module.mjs +0 -16
  59. package/esm2022/lib/card-list/card/card-avatar.component.mjs +0 -11
  60. package/esm2022/lib/card-list/card/card-content/card-actions.component.mjs +0 -11
  61. package/esm2022/lib/card-list/card/card-content/card-body.component.mjs +0 -11
  62. package/esm2022/lib/card-list/card/card-content/card-content.component.mjs +0 -11
  63. package/esm2022/lib/card-list/card/card-content/card-footer.component.mjs +0 -11
  64. package/esm2022/lib/card-list/card/card-content/card-header-subtitle.component.mjs +0 -11
  65. package/esm2022/lib/card-list/card/card-content/card-header-title.component.mjs +0 -11
  66. package/esm2022/lib/card-list/card/card-content/card-header.component.mjs +0 -11
  67. package/esm2022/lib/card-list/card/card.component.mjs +0 -11
  68. package/esm2022/lib/card-list/card-list.component.mjs +0 -24
  69. package/esm2022/lib/card-list/card-list.module.mjs +0 -68
  70. package/esm2022/lib/checkbox/checkbox-group.component.mjs +0 -17
  71. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -99
  72. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -17
  73. package/esm2022/lib/chips/chip-input.mjs +0 -195
  74. package/esm2022/lib/chips/chip-list.component.mjs +0 -567
  75. package/esm2022/lib/chips/chip.component.mjs +0 -287
  76. package/esm2022/lib/chips/chips.module.mjs +0 -31
  77. package/esm2022/lib/collapsible-group/collapsible-group-body.directive.mjs +0 -17
  78. package/esm2022/lib/collapsible-group/collapsible-group-header.directive.mjs +0 -17
  79. package/esm2022/lib/collapsible-group/collapsible-group.component.mjs +0 -46
  80. package/esm2022/lib/collapsible-group/collapsible-group.module.mjs +0 -33
  81. package/esm2022/lib/contacts/contact-item/contact-item.component.mjs +0 -27
  82. package/esm2022/lib/contacts/contact-item-default-status/contact-item-default-status.component.mjs +0 -20
  83. package/esm2022/lib/contacts/contact-item-title/contact-item-title.component.mjs +0 -15
  84. package/esm2022/lib/contacts/contacts-profile/contacts-profile.component.mjs +0 -18
  85. package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-data.mjs +0 -24
  86. package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-for.directive.mjs +0 -231
  87. package/esm2022/lib/contacts/contacts-types/contacts.component.private-types.mjs +0 -2
  88. package/esm2022/lib/contacts/contacts-types/contacts.component.public-types.mjs +0 -9
  89. package/esm2022/lib/contacts/contacts.component.mjs +0 -92
  90. package/esm2022/lib/contacts/contacts.module.mjs +0 -53
  91. package/esm2022/lib/contacts/custom-profile.directive.mjs +0 -16
  92. package/esm2022/lib/contacts/custom-status.directive.mjs +0 -18
  93. package/esm2022/lib/core/animation.mjs +0 -34
  94. package/esm2022/lib/core/client-environment.mjs +0 -20
  95. package/esm2022/lib/core/common-behaviors/disabled.mjs +0 -27
  96. package/esm2022/lib/core/core.module.mjs +0 -44
  97. package/esm2022/lib/core/devices/client-input-desktop.directive.mjs +0 -29
  98. package/esm2022/lib/core/devices/client-input-touch.directive.mjs +0 -29
  99. package/esm2022/lib/core/devices/client-output-desktop.directive.mjs +0 -29
  100. package/esm2022/lib/core/devices/client-output-touch.directive.mjs +0 -29
  101. package/esm2022/lib/core/hide-on-overflow.directive.mjs +0 -83
  102. package/esm2022/lib/core/overlay-base.mjs +0 -18
  103. package/esm2022/lib/core/overlay-position-config.mjs +0 -2
  104. package/esm2022/lib/core/overlay-trigger-for-base.directive.mjs +0 -121
  105. package/esm2022/lib/core/overlay.service.mjs +0 -90
  106. package/esm2022/lib/core/pipes/pure-pipes.module.mjs +0 -16
  107. package/esm2022/lib/core/pipes/title.pipe.mjs +0 -21
  108. package/esm2022/lib/core/radio-checkbox-base.mjs +0 -19
  109. package/esm2022/lib/core/services/names-utils-service.mjs +0 -51
  110. package/esm2022/lib/core/theme.library.mjs +0 -59
  111. package/esm2022/lib/core/types.mjs +0 -2
  112. package/esm2022/lib/grid/grid.component.mjs +0 -128
  113. package/esm2022/lib/grid/grid.module.mjs +0 -18
  114. package/esm2022/lib/icon/icon.component.mjs +0 -43
  115. package/esm2022/lib/icon/icon.module.mjs +0 -16
  116. package/esm2022/lib/input-field/input-field.component.mjs +0 -167
  117. package/esm2022/lib/input-field/input-field.module.mjs +0 -20
  118. package/esm2022/lib/label/label.component.mjs +0 -31
  119. package/esm2022/lib/label/label.module.mjs +0 -18
  120. package/esm2022/lib/menu/divider.directive.mjs +0 -23
  121. package/esm2022/lib/menu/menu-base.mjs +0 -354
  122. package/esm2022/lib/menu/menu-desktop-animations.mjs +0 -23
  123. package/esm2022/lib/menu/menu-errors.mjs +0 -37
  124. package/esm2022/lib/menu/menu-item.component.mjs +0 -89
  125. package/esm2022/lib/menu/menu-panel.mjs +0 -7
  126. package/esm2022/lib/menu/menu-positions.mjs +0 -9
  127. package/esm2022/lib/menu/menu-touch-animations.mjs +0 -137
  128. package/esm2022/lib/menu/menu-touch-close.component.mjs +0 -13
  129. package/esm2022/lib/menu/menu-touch-title.component.mjs +0 -59
  130. package/esm2022/lib/menu/menu-trigger-for.directive.mjs +0 -738
  131. package/esm2022/lib/menu/menu.component.mjs +0 -30
  132. package/esm2022/lib/menu/menu.module.mjs +0 -55
  133. package/esm2022/lib/menu/testing/menu.harness.mjs +0 -109
  134. package/esm2022/lib/menu/title.directive.mjs +0 -17
  135. package/esm2022/lib/progress-bar/progress-bar-legend/progress-bar-legend.component.mjs +0 -19
  136. package/esm2022/lib/progress-bar/progress-bar-legend-base.mjs +0 -17
  137. package/esm2022/lib/progress-bar/progress-bar-legend-trigger-for.directive.mjs +0 -54
  138. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -92
  139. package/esm2022/lib/progress-bar/progress-bar.model.mjs +0 -2
  140. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -44
  141. package/esm2022/lib/radio-button/radio-button.component.mjs +0 -119
  142. package/esm2022/lib/radio-button/radio-button.module.mjs +0 -17
  143. package/esm2022/lib/radio-button/radio-group.component.mjs +0 -17
  144. package/esm2022/lib/toggle-switch/toggle-switch.component.mjs +0 -100
  145. package/esm2022/lib/toggle-switch/toggle-switch.module.mjs +0 -16
  146. package/esm2022/table/ifsworld-granite-components-table.mjs +0 -5
  147. package/esm2022/table/index.mjs +0 -5
  148. package/esm2022/table/lib/cell/cell-align/cell-align-classes.directive.mjs +0 -26
  149. package/esm2022/table/lib/cell/cell.mjs +0 -15
  150. package/esm2022/table/lib/cell/table-data-cell.component.mjs +0 -25
  151. package/esm2022/table/lib/cell/table-header-cell.component.mjs +0 -14
  152. package/esm2022/table/lib/column/table-column.directive.mjs +0 -33
  153. package/esm2022/table/lib/column-size/column-size.directive.mjs +0 -34
  154. package/esm2022/table/lib/table-constants.library.mjs +0 -7
  155. package/esm2022/table/lib/table.component.mjs +0 -62
  156. package/esm2022/table/lib/table.model.mjs +0 -2
  157. package/esm2022/table/lib/table.module.mjs +0 -38
  158. package/esm2022/tooltip/ifsworld-granite-components-tooltip.mjs +0 -5
  159. package/esm2022/tooltip/index.mjs +0 -4
  160. package/esm2022/tooltip/lib/Services/granite-tooltip.service.mjs +0 -28
  161. package/esm2022/tooltip/lib/tooltip-constants.library.mjs +0 -4
  162. package/esm2022/tooltip/lib/tooltip-trigger-for.directive.mjs +0 -147
  163. package/esm2022/tooltip/lib/tooltip.component.mjs +0 -14
  164. package/esm2022/tooltip/lib/tooltip.module.mjs +0 -19
@@ -1,287 +0,0 @@
1
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
- import { BACKSPACE, DELETE, SPACE } from '@angular/cdk/keycodes';
3
- import { Attribute, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, NgZone, Optional, Output, } from '@angular/core';
4
- import { take } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../icon/icon.component";
8
- /** Event object emitted by GraniteChip when selected or deselected. */
9
- export class GraniteChipSelectionChangeEvent {
10
- constructor() {
11
- /** Whether the selection change was a result of a user interaction. */
12
- this.isUserInput = false;
13
- }
14
- }
15
- export class GraniteChipComponent {
16
- /** Whether the chip is selected. */
17
- get selected() {
18
- return this._selected;
19
- }
20
- set selected(value) {
21
- const coercedValue = coerceBooleanProperty(value);
22
- if (coercedValue !== this._selected) {
23
- this._selected = coercedValue;
24
- }
25
- }
26
- /** The value of the chip. Defaults to the text content inside `<granite-chip>` tags. */
27
- get value() {
28
- return this._value != null
29
- ? this._value
30
- : this._elementRef.nativeElement.textContent;
31
- }
32
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
33
- set value(val) {
34
- this._value = val;
35
- }
36
- /**
37
- * Whether or not the chip is selectable. When a chip is not selectable,
38
- * changes to its selected state are always ignored. By default a chip is
39
- * selectable, and it becomes non-selectable if its parent chip list is
40
- * not selectable.
41
- */
42
- get selectable() {
43
- return this._selectable && this._chipListSelectable;
44
- }
45
- set selectable(value) {
46
- this._selectable = coerceBooleanProperty(value);
47
- }
48
- /** Whether the chip is disabled. Also the individual chips are disabled when chip list is disabled */
49
- get disabled() {
50
- return this._chipListDisabled || this._disabled;
51
- }
52
- set disabled(value) {
53
- this._disabled = coerceBooleanProperty(value);
54
- }
55
- /**
56
- * Whether the chip can be removed from the list
57
- */
58
- get removable() {
59
- return this._removable;
60
- }
61
- set removable(value) {
62
- this._removable = coerceBooleanProperty(value);
63
- }
64
- /** Whether the chip is in an invalid state. */
65
- get invalid() {
66
- return this._invalid;
67
- }
68
- set invalid(value) {
69
- this._invalid = coerceBooleanProperty(value);
70
- }
71
- constructor(_elementRef, _ngZone, _changeDetectorRef, tabIndex) {
72
- this._elementRef = _elementRef;
73
- this._ngZone = _ngZone;
74
- this._changeDetectorRef = _changeDetectorRef;
75
- /** ARIA role that should be applied to the chip. */
76
- this.role = 'option';
77
- this.ariaLabel = null;
78
- this.ariaLabelledby = null;
79
- /** Emitted when the chip is selected or deselected. */
80
- this.selectionChange = new EventEmitter();
81
- /** Emitted when a chip is to be removed. */
82
- this.removed = new EventEmitter();
83
- /** Emitted when the chip is destroyed. */
84
- this.destroyed = new EventEmitter();
85
- /** Emits when the chip is focused. */
86
- this.chipFocus = new EventEmitter();
87
- /** Emits when the chip is blurred. */
88
- this.chipBlur = new EventEmitter();
89
- /** Whether the chip has focus. */
90
- this._hasFocus = false;
91
- /** Whether the chip list is selectable */
92
- this._chipListSelectable = true;
93
- /** Whether the chip list is in multi-selection mode. */
94
- this._chipListMultiple = false;
95
- /** Whether the chip list as a whole is disabled. */
96
- this._chipListDisabled = false;
97
- this.tabIndex = -1;
98
- this.inputChip = false;
99
- this._selected = false;
100
- this._selectable = true;
101
- this._disabled = false;
102
- this._removable = false;
103
- this._invalid = false;
104
- const inputChipAttrName = 'granite-input-chip';
105
- const element = this._elementRef.nativeElement;
106
- if (element.hasAttribute(inputChipAttrName) ||
107
- element.tagName.toLowerCase() === inputChipAttrName) {
108
- this.inputChip = true;
109
- }
110
- this.tabIndex = tabIndex != null ? parseInt(tabIndex) || -1 : -1;
111
- }
112
- ngOnDestroy() {
113
- this.destroyed.emit({ chip: this });
114
- }
115
- /** Selects the chip. */
116
- select(isUserInput = false) {
117
- if (!this._selected) {
118
- this._selected = true;
119
- this._dispatchSelectionChange(isUserInput);
120
- this._changeDetectorRef.markForCheck();
121
- }
122
- }
123
- /** Deselects the chip. */
124
- deselect() {
125
- if (this._selected) {
126
- this._selected = false;
127
- this._dispatchSelectionChange();
128
- this._changeDetectorRef.markForCheck();
129
- }
130
- }
131
- /** Toggles the current selected state of this chip. */
132
- toggleSelected(isUserInput = false) {
133
- this._selected = !this.selected;
134
- this._dispatchSelectionChange(isUserInput);
135
- this._changeDetectorRef.markForCheck();
136
- return this.selected;
137
- }
138
- /** Allows for programmatic focusing of the chip unless it's disabled. */
139
- focus() {
140
- if (!this.disabled) {
141
- if (!this._hasFocus) {
142
- this._elementRef.nativeElement.focus();
143
- this.chipFocus.next({ chip: this });
144
- }
145
- this._hasFocus = true;
146
- }
147
- }
148
- /**
149
- * Allows for programmatic removal of the chip.
150
- * Called by the GraniteChipList when the DELETE or BACKSPACE keys are pressed.
151
- * Informs any listeners of the removal request. Does not remove the chip from the DOM.
152
- */
153
- remove() {
154
- if (this.removable || this.inputChip) {
155
- this.removed.emit({ chip: this });
156
- }
157
- }
158
- /** Handles click events on the chip. */
159
- _handleClick(event) {
160
- if (this.disabled) {
161
- event.preventDefault();
162
- return;
163
- }
164
- if (this.selectable) {
165
- this.toggleSelected(true);
166
- }
167
- }
168
- /** Handle custom key presses. */
169
- _handleKeydown(event) {
170
- if (this.disabled) {
171
- return;
172
- }
173
- switch (event.keyCode) {
174
- case DELETE:
175
- case BACKSPACE:
176
- // If the chip is removable, remove the focused chip
177
- this.remove();
178
- // Always prevent so page navigation does not occur
179
- event.preventDefault();
180
- break;
181
- case SPACE:
182
- // If we are selectable, toggle the focused chip
183
- if (this.selectable) {
184
- this.toggleSelected(true);
185
- }
186
- // Always prevent space from scrolling the page since the list has focus
187
- event.preventDefault();
188
- break;
189
- }
190
- }
191
- _handleRemoveClick(event) {
192
- this.remove();
193
- // We need to stop event propagation because otherwise the event will bubble up to the
194
- // form field and cause the `onContainerClick` method to be invoked. This method would then
195
- // reset the focused chip that has been focused after chip removal.
196
- event.stopPropagation();
197
- event.preventDefault();
198
- }
199
- _blur() {
200
- // When animations are enabled, Angular may end up removing the chip from the DOM a little
201
- // earlier than usual, causing it to be blurred and throwing off the logic in the chip list
202
- // that moves focus not the next item. To work around the issue, we defer marking the chip
203
- // as not focused until the next time the zone stabilizes.
204
- this._ngZone.onStable.pipe(take(1)).subscribe(() => {
205
- this._ngZone.run(() => {
206
- this._hasFocus = false;
207
- this.chipBlur.next({ chip: this });
208
- });
209
- });
210
- }
211
- _dispatchSelectionChange(isUserInput = false) {
212
- this.selectionChange.emit({
213
- source: this,
214
- isUserInput,
215
- selected: this._selected,
216
- });
217
- }
218
- /** The ARIA selected applied to the chip. */
219
- get ariaSelected() {
220
- // Remove the `aria-selected` when the chip is deselected in single-selection mode, because
221
- // it adds noise to NVDA users where "not selected" will be read out for each chip.
222
- return this.selectable && (this._chipListMultiple || this.selected)
223
- ? this.selected.toString()
224
- : null;
225
- }
226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef, optional: true }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }
227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GraniteChipComponent, selector: "granite-chip, granite-input-chip", inputs: { tabIndex: "tabIndex", role: "role", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], selected: "selected", value: "value", selectable: "selectable", disabled: "disabled", removable: "removable", invalid: "invalid" }, outputs: { selectionChange: "selectionChange", removed: "removed", destroyed: "destroyed", chipFocus: "chipFocus", chipBlur: "chipBlur" }, host: { listeners: { "click": "_handleClick($event)", "keydown": "_handleKeydown($event)", "blur": "_blur()", "focus": "focus()" }, properties: { "class.granite-chip-input": "inputChip", "class.granite-chip-selectable": "selectable", "class.granite-chip-selected": "selected", "class.granite-chip-disabled": "disabled", "class.granite-chip-invalid": "invalid", "class.granite-chip-removable": "!disabled && (removable || inputChip)", "attr.tabindex": "disabled ? null : tabIndex", "attr.role": "role", "attr.disabled": "disabled || null", "attr.aria-label": "ariaLabel", "attr.aria-labelledby": "ariaLabelledby", "attr.aria-disabled": "disabled.toString()", "attr.aria-selected": "ariaSelected" }, classAttribute: "granite-chip" }, exportAs: ["graniteChip"], ngImport: i0, template: "<ng-content></ng-content>\n<button\n *ngIf=\"!disabled && (removable || inputChip)\"\n class=\"granite-chip-remove\"\n (click)=\"_handleRemoveClick($event)\"\n>\n <granite-icon\n fontIcon=\"icon-close\"\n class=\"granite-chip-remove-icon\"\n [class.granite-chip-remove-icon-invalid]=\"invalid\"\n ></granite-icon>\n</button>\n", styles: [":host.granite-chip{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;border:none;-webkit-appearance:none;-moz-appearance:none;justify-content:center;align-items:center;padding-inline:var(--granite-spacing-16);margin-inline:var(--granite-spacing-2);padding-top:var(--granite-spacing-8);padding-bottom:var(--granite-spacing-8);height:inherit;color:var(--granite-color-text-weak);background-color:var(--granite-color-background);border-radius:var(--granite-radius-l);border-style:solid;border-width:var(--granite-border-width-regular);border-color:var(--granite-color-border-hard)}:host.granite-chip:hover{background-color:var(--granite-color-background-hover);cursor:pointer}:host.granite-chip:focus{outline:var(--granite-border-width-focus) solid var(--granite-color-focus);outline-offset:calc(var(--granite-border-width-focus) * -1)}:host.granite-chip.granite-chip-disabled{background-color:var(--granite-color-background);color:var(--granite-color-text-hint)}:host.granite-chip.granite-chip-disabled:hover{background-color:var(--granite-color-background);cursor:auto}:host.granite-chip:not(.granite-chip-selectable):hover{background-color:var(--granite-color-background);cursor:auto}:host.granite-chip.granite-chip-removable{padding-inline-end:var(--granite-spacing-8)}:host.granite-chip.granite-chip-invalid{background-color:var(--granite-color-background-failure);border-color:var(--granite-color-background-failure)}:host.granite-chip.granite-chip-invalid:hover{border-color:var(--granite-color-signal-failure)}:host.granite-chip.granite-chip-selected:not(.granite-chip-disabled):not(.granite-chip-input){border-color:var(--granite-color-background-active);background-color:var(--granite-color-background-info)}:host.granite-chip.granite-chip-selected:not(.granite-chip-disabled):not(.granite-chip-input):hover{background-color:var(--granite-color-background-hover)}:host.granite-chip.granite-chip-input{padding-top:var(--granite-spacing-4);padding-bottom:var(--granite-spacing-4);padding-inline:var(--granite-spacing-8)}:host.granite-chip.granite-chip-input:hover{background-color:var(--granite-color-background-hover)}:host.granite-chip.granite-chip-input:hover.granite-chip-invalid{background-color:var(--granite-color-background-failure)}:host.granite-chip.granite-chip-input:hover.granite-chip-invalid:hover{border-color:var(--granite-color-signal-failure)}.granite-chip-remove{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;justify-content:center;align-items:center;background-color:transparent;outline:none;border:none;cursor:pointer;margin-inline-start:var(--granite-spacing-4);margin-inline-end:0;padding:0}[dir=rtl] .granite-chip-remove{margin-inline-end:var(--granite-spacing-4);margin-inline-start:0}.granite-chip-remove .granite-chip-remove-icon{position:relative;overflow:hidden;background-repeat:no-repeat;color:var(--granite-color-text-hint);line-height:inherit}.granite-chip-remove .granite-chip-remove-icon:hover{color:var(--granite-color-text)}.granite-chip-remove .granite-chip-remove-icon.granite-chip-remove-icon-invalid{color:var(--granite-color-signal-failure)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.GraniteIconComponent, selector: "granite-icon", inputs: ["fontIcon"] }] }); }
228
- }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipComponent, decorators: [{
230
- type: Component,
231
- args: [{ selector: `granite-chip, granite-input-chip`, inputs: ['tabIndex'], exportAs: 'graniteChip', host: {
232
- class: 'granite-chip',
233
- '[class.granite-chip-input]': 'inputChip',
234
- '[class.granite-chip-selectable]': 'selectable',
235
- '[class.granite-chip-selected]': 'selected',
236
- '[class.granite-chip-disabled]': 'disabled',
237
- '[class.granite-chip-invalid]': 'invalid',
238
- '[class.granite-chip-removable]': '!disabled && (removable || inputChip)',
239
- '[attr.tabindex]': 'disabled ? null : tabIndex',
240
- '[attr.role]': 'role',
241
- '[attr.disabled]': 'disabled || null',
242
- '[attr.aria-label]': 'ariaLabel',
243
- '[attr.aria-labelledby]': 'ariaLabelledby',
244
- '[attr.aria-disabled]': 'disabled.toString()',
245
- '[attr.aria-selected]': 'ariaSelected',
246
- '(click)': '_handleClick($event)',
247
- '(keydown)': '_handleKeydown($event)',
248
- '(blur)': '_blur()',
249
- '(focus)': 'focus()',
250
- }, template: "<ng-content></ng-content>\n<button\n *ngIf=\"!disabled && (removable || inputChip)\"\n class=\"granite-chip-remove\"\n (click)=\"_handleRemoveClick($event)\"\n>\n <granite-icon\n fontIcon=\"icon-close\"\n class=\"granite-chip-remove-icon\"\n [class.granite-chip-remove-icon-invalid]=\"invalid\"\n ></granite-icon>\n</button>\n", styles: [":host.granite-chip{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;border:none;-webkit-appearance:none;-moz-appearance:none;justify-content:center;align-items:center;padding-inline:var(--granite-spacing-16);margin-inline:var(--granite-spacing-2);padding-top:var(--granite-spacing-8);padding-bottom:var(--granite-spacing-8);height:inherit;color:var(--granite-color-text-weak);background-color:var(--granite-color-background);border-radius:var(--granite-radius-l);border-style:solid;border-width:var(--granite-border-width-regular);border-color:var(--granite-color-border-hard)}:host.granite-chip:hover{background-color:var(--granite-color-background-hover);cursor:pointer}:host.granite-chip:focus{outline:var(--granite-border-width-focus) solid var(--granite-color-focus);outline-offset:calc(var(--granite-border-width-focus) * -1)}:host.granite-chip.granite-chip-disabled{background-color:var(--granite-color-background);color:var(--granite-color-text-hint)}:host.granite-chip.granite-chip-disabled:hover{background-color:var(--granite-color-background);cursor:auto}:host.granite-chip:not(.granite-chip-selectable):hover{background-color:var(--granite-color-background);cursor:auto}:host.granite-chip.granite-chip-removable{padding-inline-end:var(--granite-spacing-8)}:host.granite-chip.granite-chip-invalid{background-color:var(--granite-color-background-failure);border-color:var(--granite-color-background-failure)}:host.granite-chip.granite-chip-invalid:hover{border-color:var(--granite-color-signal-failure)}:host.granite-chip.granite-chip-selected:not(.granite-chip-disabled):not(.granite-chip-input){border-color:var(--granite-color-background-active);background-color:var(--granite-color-background-info)}:host.granite-chip.granite-chip-selected:not(.granite-chip-disabled):not(.granite-chip-input):hover{background-color:var(--granite-color-background-hover)}:host.granite-chip.granite-chip-input{padding-top:var(--granite-spacing-4);padding-bottom:var(--granite-spacing-4);padding-inline:var(--granite-spacing-8)}:host.granite-chip.granite-chip-input:hover{background-color:var(--granite-color-background-hover)}:host.granite-chip.granite-chip-input:hover.granite-chip-invalid{background-color:var(--granite-color-background-failure)}:host.granite-chip.granite-chip-input:hover.granite-chip-invalid:hover{border-color:var(--granite-color-signal-failure)}.granite-chip-remove{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;justify-content:center;align-items:center;background-color:transparent;outline:none;border:none;cursor:pointer;margin-inline-start:var(--granite-spacing-4);margin-inline-end:0;padding:0}[dir=rtl] .granite-chip-remove{margin-inline-end:var(--granite-spacing-4);margin-inline-start:0}.granite-chip-remove .granite-chip-remove-icon{position:relative;overflow:hidden;background-repeat:no-repeat;color:var(--granite-color-text-hint);line-height:inherit}.granite-chip-remove .granite-chip-remove-icon:hover{color:var(--granite-color-text)}.granite-chip-remove .granite-chip-remove-icon.granite-chip-remove-icon-invalid{color:var(--granite-color-signal-failure)}\n"] }]
251
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef, decorators: [{
252
- type: Optional
253
- }] }, { type: undefined, decorators: [{
254
- type: Attribute,
255
- args: ['tabindex']
256
- }] }], propDecorators: { role: [{
257
- type: Input
258
- }], ariaLabel: [{
259
- type: Input,
260
- args: ['aria-label']
261
- }], ariaLabelledby: [{
262
- type: Input,
263
- args: ['aria-labelledby']
264
- }], selectionChange: [{
265
- type: Output
266
- }], removed: [{
267
- type: Output
268
- }], destroyed: [{
269
- type: Output
270
- }], chipFocus: [{
271
- type: Output
272
- }], chipBlur: [{
273
- type: Output
274
- }], selected: [{
275
- type: Input
276
- }], value: [{
277
- type: Input
278
- }], selectable: [{
279
- type: Input
280
- }], disabled: [{
281
- type: Input
282
- }], removable: [{
283
- type: Input
284
- }], invalid: [{
285
- type: Input
286
- }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NoaXBzL2NoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jaGlwcy9jaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFRdEMsdUVBQXVFO0FBQ3ZFLE1BQU0sT0FBTywrQkFBK0I7SUFBNUM7UUFLRSx1RUFBdUU7UUFDdkUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUFBO0FBNkJELE1BQU0sT0FBTyxvQkFBb0I7SUFvRC9CLG9DQUFvQztJQUNwQyxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEQsSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRUQsd0ZBQXdG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ckMsUUFBUSxFQUFFLFNBQVM7d0JBQ25CLFNBQVMsRUFBRSxTQUFTO3FCQUNyQjs7MEJBOEhFLFFBQVE7OzBCQUNSLFNBQVM7MkJBQUMsVUFBVTt5Q0EzSGQsSUFBSTtzQkFBWixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSzt1QkFBQyxZQUFZO2dCQUluQixjQUFjO3NCQURiLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUtmLGVBQWU7c0JBRHZCLE1BQU07Z0JBS1ksT0FBTztzQkFBekIsTUFBTTtnQkFJWSxTQUFTO3NCQUEzQixNQUFNO2dCQUlZLFNBQVM7c0JBQTNCLE1BQU07Z0JBSVksUUFBUTtzQkFBMUIsTUFBTTtnQkEwQkgsUUFBUTtzQkFEWCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFtQkYsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFZRixTQUFTO3NCQURaLEtBQUs7Z0JBVUYsT0FBTztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEJBQ0tTUEFDRSwgREVMRVRFLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKiBFdmVudCBmaXJlZCBvbiBhbiBpbmRpdmlkdWFsIGBncmFuaXRlLWNoaXBgIGVsZW1lbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYW5pdGVDaGlwRXZlbnQge1xuICAvKiogVGhlIGNoaXAgdGhlIGV2ZW50IHdhcyBmaXJlZCBvbi4gKi9cbiAgY2hpcDogR3Jhbml0ZUNoaXBDb21wb25lbnQ7XG59XG5cbi8qKiBFdmVudCBvYmplY3QgZW1pdHRlZCBieSBHcmFuaXRlQ2hpcCB3aGVuIHNlbGVjdGVkIG9yIGRlc2VsZWN0ZWQuICovXG5leHBvcnQgY2xhc3MgR3Jhbml0ZUNoaXBTZWxlY3Rpb25DaGFuZ2VFdmVudCB7XG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGNoaXAgdGhhdCBlbWl0dGVkIHRoZSBldmVudC4gKi9cbiAgc291cmNlOiBHcmFuaXRlQ2hpcENvbXBvbmVudDtcbiAgLyoqIFdoZXRoZXIgdGhlIGNoaXAgdGhhdCBlbWl0dGVkIHRoZSBldmVudCBpcyBzZWxlY3RlZC4gKi9cbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlIHdhcyBhIHJlc3VsdCBvZiBhIHVzZXIgaW50ZXJhY3Rpb24uICovXG4gIGlzVXNlcklucHV0OiBib29sZWFuID0gZmFsc2U7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogYGdyYW5pdGUtY2hpcCwgZ3Jhbml0ZS1pbnB1dC1jaGlwYCxcbiAgaW5wdXRzOiBbJ3RhYkluZGV4J10sXG4gIGV4cG9ydEFzOiAnZ3Jhbml0ZUNoaXAnLFxuICBzdHlsZVVybHM6IFsnLi9jaGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3Jhbml0ZS1jaGlwJyxcbiAgICAnW2NsYXNzLmdyYW5pdGUtY2hpcC1pbnB1dF0nOiAnaW5wdXRDaGlwJyxcbiAgICAnW2NsYXNzLmdyYW5pdGUtY2hpcC1zZWxlY3RhYmxlXSc6ICdzZWxlY3RhYmxlJyxcbiAgICAnW2NsYXNzLmdyYW5pdGUtY2hpcC1zZWxlY3RlZF0nOiAnc2VsZWN0ZWQnLFxuICAgICdbY2xhc3MuZ3Jhbml0ZS1jaGlwLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5ncmFuaXRlLWNoaXAtaW52YWxpZF0nOiAnaW52YWxpZCcsXG4gICAgJ1tjbGFzcy5ncmFuaXRlLWNoaXAtcmVtb3ZhYmxlXSc6ICchZGlzYWJsZWQgJiYgKHJlbW92YWJsZSB8fCBpbnB1dENoaXApJyxcbiAgICAnW2F0dHIudGFiaW5kZXhdJzogJ2Rpc2FibGVkID8gbnVsbCA6IHRhYkluZGV4JyxcbiAgICAnW2F0dHIucm9sZV0nOiAncm9sZScsXG4gICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnYXJpYUxhYmVsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdhcmlhTGFiZWxsZWRieScsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLXNlbGVjdGVkXSc6ICdhcmlhU2VsZWN0ZWQnLFxuICAgICcoY2xpY2spJzogJ19oYW5kbGVDbGljaygkZXZlbnQpJyxcbiAgICAnKGtleWRvd24pJzogJ19oYW5kbGVLZXlkb3duKCRldmVudCknLFxuICAgICcoYmx1ciknOiAnX2JsdXIoKScsXG4gICAgJyhmb2N1cyknOiAnZm9jdXMoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdyYW5pdGVDaGlwQ29tcG9uZW50IGltcGxlbWVudHMgRm9jdXNhYmxlT3B0aW9uLCBPbkRlc3Ryb3kge1xuICAvKiogQVJJQSByb2xlIHRoYXQgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIGNoaXAuICovXG4gIEBJbnB1dCgpIHJvbGU6IHN0cmluZyA9ICdvcHRpb24nO1xuXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpXG4gIGFyaWFMYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCdhcmlhLWxhYmVsbGVkYnknKVxuICBhcmlhTGFiZWxsZWRieTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY2hpcCBpcyBzZWxlY3RlZCBvciBkZXNlbGVjdGVkLiAqL1xuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8R3Jhbml0ZUNoaXBTZWxlY3Rpb25DaGFuZ2VFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8R3Jhbml0ZUNoaXBTZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICAvKiogRW1pdHRlZCB3aGVuIGEgY2hpcCBpcyB0byBiZSByZW1vdmVkLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVtb3ZlZDogRXZlbnRFbWl0dGVyPEdyYW5pdGVDaGlwRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEdyYW5pdGVDaGlwRXZlbnQ+KCk7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY2hpcCBpcyBkZXN0cm95ZWQuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBkZXN0cm95ZWQ6IEV2ZW50RW1pdHRlcjxHcmFuaXRlQ2hpcEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxHcmFuaXRlQ2hpcEV2ZW50PigpO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBjaGlwIGlzIGZvY3VzZWQuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGlwRm9jdXM6IEV2ZW50RW1pdHRlcjxHcmFuaXRlQ2hpcEV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxHcmFuaXRlQ2hpcEV2ZW50PigpO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBjaGlwIGlzIGJsdXJyZWQuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGlwQmx1cjogRXZlbnRFbWl0dGVyPEdyYW5pdGVDaGlwRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEdyYW5pdGVDaGlwRXZlbnQ+KCk7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNoaXAgaGFzIGZvY3VzLiAqL1xuICBfaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgY2hpcCBsaXN0IGlzIHNlbGVjdGFibGUgKi9cbiAgX2NoaXBMaXN0U2VsZWN0YWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNoaXAgbGlzdCBpcyBpbiBtdWx0aS1zZWxlY3Rpb24gbW9kZS4gKi9cbiAgX2NoaXBMaXN0TXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgY2hpcCBsaXN0IGFzIGEgd2hvbGUgaXMgZGlzYWJsZWQuICovXG4gIF9jaGlwTGlzdERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdGFiSW5kZXg6IG51bWJlciA9IC0xO1xuICBpbnB1dENoaXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgX3NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfc2VsZWN0YWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIHByb3RlY3RlZCBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9yZW1vdmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9pbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNoaXAgaXMgc2VsZWN0ZWQuICovXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gIH1cbiAgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgY29lcmNlZFZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcblxuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIHZhbHVlIG9mIHRoZSBjaGlwLiBEZWZhdWx0cyB0byB0aGUgdGV4dCBjb250ZW50IGluc2lkZSBgPGdyYW5pdGUtY2hpcD5gIHRhZ3MuICovXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZSAhPSBudWxsXG4gICAgICA/IHRoaXMuX3ZhbHVlXG4gICAgICA6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDtcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xuICBzZXQgdmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogYW55O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY2hpcCBpcyBzZWxlY3RhYmxlLiBXaGVuIGEgY2hpcCBpcyBub3Qgc2VsZWN0YWJsZSxcbiAgICogY2hhbmdlcyB0byBpdHMgc2VsZWN0ZWQgc3RhdGUgYXJlIGFsd2F5cyBpZ25vcmVkLiBCeSBkZWZhdWx0IGEgY2hpcCBpc1xuICAgKiBzZWxlY3RhYmxlLCBhbmQgaXQgYmVjb21lcyBub24tc2VsZWN0YWJsZSBpZiBpdHMgcGFyZW50IGNoaXAgbGlzdCBpc1xuICAgKiBub3Qgc2VsZWN0YWJsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlICYmIHRoaXMuX2NoaXBMaXN0U2VsZWN0YWJsZTtcbiAgfVxuICBzZXQgc2VsZWN0YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NlbGVjdGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNoaXAgaXMgZGlzYWJsZWQuIEFsc28gdGhlIGluZGl2aWR1YWwgY2hpcHMgYXJlIGRpc2FibGVkIHdoZW4gY2hpcCBsaXN0IGlzIGRpc2FibGVkICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcExpc3REaXNhYmxlZCB8fCB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hpcCBjYW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0XG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgcmVtb3ZhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZW1vdmFibGU7XG4gIH1cbiAgc2V0IHJlbW92YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlbW92YWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgY2hpcCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiAqL1xuICBASW5wdXQoKVxuICBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW52YWxpZDtcbiAgfVxuICBzZXQgaW52YWxpZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2ludmFsaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4Pzogc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IGlucHV0Q2hpcEF0dHJOYW1lID0gJ2dyYW5pdGUtaW5wdXQtY2hpcCc7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoXG4gICAgICBlbGVtZW50Lmhhc0F0dHJpYnV0ZShpbnB1dENoaXBBdHRyTmFtZSkgfHxcbiAgICAgIGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSBpbnB1dENoaXBBdHRyTmFtZVxuICAgICkge1xuICAgICAgdGhpcy5pbnB1dENoaXAgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMudGFiSW5kZXggPSB0YWJJbmRleCAhPSBudWxsID8gcGFyc2VJbnQodGFiSW5kZXgpIHx8IC0xIDogLTE7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5lbWl0KHsgY2hpcDogdGhpcyB9KTtcbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBjaGlwLiAqL1xuICBzZWxlY3QoaXNVc2VySW5wdXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKGlzVXNlcklucHV0KTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBEZXNlbGVjdHMgdGhlIGNoaXAuICovXG4gIGRlc2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAvKiogVG9nZ2xlcyB0aGUgY3VycmVudCBzZWxlY3RlZCBzdGF0ZSBvZiB0aGlzIGNoaXAuICovXG4gIHRvZ2dsZVNlbGVjdGVkKGlzVXNlcklucHV0OiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgIHRoaXMuX2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKGlzVXNlcklucHV0KTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZDtcbiAgfVxuXG4gIC8qKiBBbGxvd3MgZm9yIHByb2dyYW1tYXRpYyBmb2N1c2luZyBvZiB0aGUgY2hpcCB1bmxlc3MgaXQncyBkaXNhYmxlZC4gKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBpZiAoIXRoaXMuX2hhc0ZvY3VzKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLmNoaXBGb2N1cy5uZXh0KHsgY2hpcDogdGhpcyB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2hhc0ZvY3VzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIGZvciBwcm9ncmFtbWF0aWMgcmVtb3ZhbCBvZiB0aGUgY2hpcC5cbiAgICogQ2FsbGVkIGJ5IHRoZSBHcmFuaXRlQ2hpcExpc3Qgd2hlbiB0aGUgREVMRVRFIG9yIEJBQ0tTUEFDRSBrZXlzIGFyZSBwcmVzc2VkLlxuICAgKiBJbmZvcm1zIGFueSBsaXN0ZW5lcnMgb2YgdGhlIHJlbW92YWwgcmVxdWVzdC4gRG9lcyBub3QgcmVtb3ZlIHRoZSBjaGlwIGZyb20gdGhlIERPTS5cbiAgICovXG4gIHJlbW92ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZW1vdmFibGUgfHwgdGhpcy5pbnB1dENoaXApIHtcbiAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KHsgY2hpcDogdGhpcyB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlcyBjbGljayBldmVudHMgb24gdGhlIGNoaXAuICovXG4gIF9oYW5kbGVDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy50b2dnbGVTZWxlY3RlZCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlIGN1c3RvbSBrZXkgcHJlc3Nlcy4gKi9cbiAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgY2FzZSBERUxFVEU6XG4gICAgICBjYXNlIEJBQ0tTUEFDRTpcbiAgICAgICAgLy8gSWYgdGhlIGNoaXAgaXMgcmVtb3ZhYmxlLCByZW1vdmUgdGhlIGZvY3VzZWQgY2hpcFxuICAgICAgICB0aGlzLnJlbW92ZSgpO1xuICAgICAgICAvLyBBbHdheXMgcHJldmVudCBzbyBwYWdlIG5hdmlnYXRpb24gZG9lcyBub3Qgb2NjdXJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNQQUNFOlxuICAgICAgICAvLyBJZiB3ZSBhcmUgc2VsZWN0YWJsZSwgdG9nZ2xlIHRoZSBmb2N1c2VkIGNoaXBcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgICAgIHRoaXMudG9nZ2xlU2VsZWN0ZWQodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbHdheXMgcHJldmVudCBzcGFjZSBmcm9tIHNjcm9sbGluZyB0aGUgcGFnZSBzaW5jZSB0aGUgbGlzdCBoYXMgZm9jdXNcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZVJlbW92ZUNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgLy8gV2UgbmVlZCB0byBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBldmVudCB3aWxsIGJ1YmJsZSB1cCB0byB0aGVcbiAgICAvLyBmb3JtIGZpZWxkIGFuZCBjYXVzZSB0aGUgYG9uQ29udGFpbmVyQ2xpY2tgIG1ldGhvZCB0byBiZSBpbnZva2VkLiBUaGlzIG1ldGhvZCB3b3VsZCB0aGVuXG4gICAgLy8gcmVzZXQgdGhlIGZvY3VzZWQgY2hpcCB0aGF0IGhhcyBiZWVuIGZvY3VzZWQgYWZ0ZXIgY2hpcCByZW1vdmFsLlxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBfYmx1cigpOiB2b2lkIHtcbiAgICAvLyBXaGVuIGFuaW1hdGlvbnMgYXJlIGVuYWJsZWQsIEFuZ3VsYXIgbWF5IGVuZCB1cCByZW1vdmluZyB0aGUgY2hpcCBmcm9tIHRoZSBET00gYSBsaXR0bGVcbiAgICAvLyBlYXJsaWVyIHRoYW4gdXN1YWwsIGNhdXNpbmcgaXQgdG8gYmUgYmx1cnJlZCBhbmQgdGhyb3dpbmcgb2ZmIHRoZSBsb2dpYyBpbiB0aGUgY2hpcCBsaXN0XG4gICAgLy8gdGhhdCBtb3ZlcyBmb2N1cyBub3QgdGhlIG5leHQgaXRlbS4gVG8gd29yayBhcm91bmQgdGhlIGlzc3VlLCB3ZSBkZWZlciBtYXJraW5nIHRoZSBjaGlwXG4gICAgLy8gYXMgbm90IGZvY3VzZWQgdW50aWwgdGhlIG5leHQgdGltZSB0aGUgem9uZSBzdGFiaWxpemVzLlxuICAgIHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5faGFzRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGlwQmx1ci5uZXh0KHsgY2hpcDogdGhpcyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hTZWxlY3Rpb25DaGFuZ2UoaXNVc2VySW5wdXQgPSBmYWxzZSkge1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xuICAgICAgc291cmNlOiB0aGlzLFxuICAgICAgaXNVc2VySW5wdXQsXG4gICAgICBzZWxlY3RlZDogdGhpcy5fc2VsZWN0ZWQsXG4gICAgfSk7XG4gIH1cblxuICAvKiogVGhlIEFSSUEgc2VsZWN0ZWQgYXBwbGllZCB0byB0aGUgY2hpcC4gKi9cbiAgZ2V0IGFyaWFTZWxlY3RlZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAvLyBSZW1vdmUgdGhlIGBhcmlhLXNlbGVjdGVkYCB3aGVuIHRoZSBjaGlwIGlzIGRlc2VsZWN0ZWQgaW4gc2luZ2xlLXNlbGVjdGlvbiBtb2RlLCBiZWNhdXNlXG4gICAgLy8gaXQgYWRkcyBub2lzZSB0byBOVkRBIHVzZXJzIHdoZXJlIFwibm90IHNlbGVjdGVkXCIgd2lsbCBiZSByZWFkIG91dCBmb3IgZWFjaCBjaGlwLlxuICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGUgJiYgKHRoaXMuX2NoaXBMaXN0TXVsdGlwbGUgfHwgdGhpcy5zZWxlY3RlZClcbiAgICAgID8gdGhpcy5zZWxlY3RlZC50b1N0cmluZygpXG4gICAgICA6IG51bGw7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxidXR0b25cbiAgKm5nSWY9XCIhZGlzYWJsZWQgJiYgKHJlbW92YWJsZSB8fCBpbnB1dENoaXApXCJcbiAgY2xhc3M9XCJncmFuaXRlLWNoaXAtcmVtb3ZlXCJcbiAgKGNsaWNrKT1cIl9oYW5kbGVSZW1vdmVDbGljaygkZXZlbnQpXCJcbj5cbiAgPGdyYW5pdGUtaWNvblxuICAgIGZvbnRJY29uPVwiaWNvbi1jbG9zZVwiXG4gICAgY2xhc3M9XCJncmFuaXRlLWNoaXAtcmVtb3ZlLWljb25cIlxuICAgIFtjbGFzcy5ncmFuaXRlLWNoaXAtcmVtb3ZlLWljb24taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgPjwvZ3Jhbml0ZS1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -1,31 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { GraniteIconModule } from '../icon/icon.module';
5
- import { GraniteChipListComponent } from './chip-list.component';
6
- import { GraniteChipComponent } from './chip.component';
7
- import { GraniteChipInputDirective } from './chip-input';
8
- import * as i0 from "@angular/core";
9
- const CHIP_DECLARATIONS = [
10
- GraniteChipListComponent,
11
- GraniteChipComponent,
12
- GraniteChipInputDirective,
13
- ];
14
- export class GraniteChipsModule {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipsModule, declarations: [GraniteChipListComponent,
17
- GraniteChipComponent,
18
- GraniteChipInputDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, GraniteIconModule], exports: [GraniteChipListComponent,
19
- GraniteChipComponent,
20
- GraniteChipInputDirective] }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, GraniteIconModule] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipsModule, decorators: [{
24
- type: NgModule,
25
- args: [{
26
- imports: [CommonModule, FormsModule, ReactiveFormsModule, GraniteIconModule],
27
- declarations: CHIP_DECLARATIONS,
28
- exports: CHIP_DECLARATIONS,
29
- }]
30
- }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jaGlwcy9jaGlwcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekQsTUFBTSxpQkFBaUIsR0FBRztJQUN4Qix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtDQUMxQixDQUFDO0FBT0YsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBVjdCLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIseUJBQXlCLGFBSWYsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsYUFOM0Usd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQix5QkFBeUI7Z0hBUWQsa0JBQWtCLFlBSm5CLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCOzs0RkFJaEUsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7b0JBQzVFLFlBQVksRUFBRSxpQkFBaUI7b0JBQy9CLE9BQU8sRUFBRSxpQkFBaUI7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEdyYW5pdGVJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBHcmFuaXRlQ2hpcExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NoaXAtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3Jhbml0ZUNoaXBDb21wb25lbnQgfSBmcm9tICcuL2NoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IEdyYW5pdGVDaGlwSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL2NoaXAtaW5wdXQnO1xuXG5jb25zdCBDSElQX0RFQ0xBUkFUSU9OUyA9IFtcbiAgR3Jhbml0ZUNoaXBMaXN0Q29tcG9uZW50LFxuICBHcmFuaXRlQ2hpcENvbXBvbmVudCxcbiAgR3Jhbml0ZUNoaXBJbnB1dERpcmVjdGl2ZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBHcmFuaXRlSWNvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogQ0hJUF9ERUNMQVJBVElPTlMsXG4gIGV4cG9ydHM6IENISVBfREVDTEFSQVRJT05TLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ2hpcHNNb2R1bGUge31cbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { Directive, TemplateRef, inject } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class GraniteCollapsibleConditionalBodyDirective {
4
- constructor() {
5
- this.template = inject(TemplateRef);
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleConditionalBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteCollapsibleConditionalBodyDirective, selector: "[graniteCollapsibleGroupBody]", exportAs: ["graniteCollapsibleGroupBody"], ngImport: i0 }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleConditionalBodyDirective, decorators: [{
11
- type: Directive,
12
- args: [{
13
- selector: '[graniteCollapsibleGroupBody]',
14
- exportAs: 'graniteCollapsibleGroupBody',
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtZ3JvdXAtYm9keS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvbGxhcHNpYmxlLWdyb3VwL2NvbGxhcHNpYmxlLWdyb3VwLWJvZHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLDBDQUEwQztJQUp2RDtRQUtFLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDaEM7K0dBRlksMENBQTBDO21HQUExQywwQ0FBMEM7OzRGQUExQywwQ0FBMEM7a0JBSnRELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsUUFBUSxFQUFFLDZCQUE2QjtpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2dyYW5pdGVDb2xsYXBzaWJsZUdyb3VwQm9keV0nLFxuICBleHBvcnRBczogJ2dyYW5pdGVDb2xsYXBzaWJsZUdyb3VwQm9keScsXG59KVxuZXhwb3J0IGNsYXNzIEdyYW5pdGVDb2xsYXBzaWJsZUNvbmRpdGlvbmFsQm9keURpcmVjdGl2ZSB7XG4gIHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbn1cbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { Directive, TemplateRef, inject } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class GraniteCollapsibleConditionalHeaderDirective {
4
- constructor() {
5
- this.template = inject(TemplateRef);
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleConditionalHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteCollapsibleConditionalHeaderDirective, selector: "[graniteCollapsibleGroupHeader]", exportAs: ["graniteCollapsibleGroupHeader"], ngImport: i0 }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleConditionalHeaderDirective, decorators: [{
11
- type: Directive,
12
- args: [{
13
- selector: '[graniteCollapsibleGroupHeader]',
14
- exportAs: 'graniteCollapsibleGroupHeader',
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtZ3JvdXAtaGVhZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3NyYy9saWIvY29sbGFwc2libGUtZ3JvdXAvY29sbGFwc2libGUtZ3JvdXAtaGVhZGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTS9ELE1BQU0sT0FBTyw0Q0FBNEM7SUFKekQ7UUFLRSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2hDOytHQUZZLDRDQUE0QzttR0FBNUMsNENBQTRDOzs0RkFBNUMsNENBQTRDO2tCQUp4RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFFBQVEsRUFBRSwrQkFBK0I7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tncmFuaXRlQ29sbGFwc2libGVHcm91cEhlYWRlcl0nLFxuICBleHBvcnRBczogJ2dyYW5pdGVDb2xsYXBzaWJsZUdyb3VwSGVhZGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZUNvbGxhcHNpYmxlQ29uZGl0aW9uYWxIZWFkZXJEaXJlY3RpdmUge1xuICB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { Component, ContentChild, EventEmitter, Input, Output, } from '@angular/core';
2
- import { GraniteCollapsibleConditionalBodyDirective } from './collapsible-group-body.directive';
3
- import { GraniteCollapsibleConditionalHeaderDirective } from './collapsible-group-header.directive';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "../icon/icon.component";
7
- export class GraniteCollapsibleGroupComponent {
8
- constructor() {
9
- this.collapsed = false;
10
- this.id = '';
11
- this.arialabel = null;
12
- this.collapsedChanged = new EventEmitter();
13
- }
14
- toggleCollapsibleGroup() {
15
- this.collapsed = !this.collapsed;
16
- this.collapsedChanged.emit(this.collapsed);
17
- }
18
- _toogleCollapsing(event) {
19
- if (event.code === 'Enter' || event.code === 'Space') {
20
- event.preventDefault();
21
- event.stopPropagation();
22
- this.toggleCollapsibleGroup();
23
- }
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GraniteCollapsibleGroupComponent, selector: "granite-collapsible-group", inputs: { collapsed: "collapsed", id: "id", arialabel: "arialabel" }, outputs: { collapsedChanged: "collapsedChanged" }, queries: [{ propertyName: "conditionalBodyContentRef", first: true, predicate: GraniteCollapsibleConditionalBodyDirective, descendants: true }, { propertyName: "conditionalHeaderContentRef", first: true, predicate: GraniteCollapsibleConditionalHeaderDirective, descendants: true }], ngImport: i0, template: "<div class=\"collapsible-wrapper\">\n <div\n data-fnd=\"collapsible-group-header\"\n class=\"collapsible-group-header\"\n [class]=\"collapsed ? 'collapsed-header' : 'expanded-header'\"\n role=\"button\"\n (click)=\"toggleCollapsibleGroup()\"\n (keydown)=\"_toogleCollapsing($event)\"\n [attr.id]=\"id ? 'collapsible-group-header-' + id : null\"\n [attr.aria-label]=\"arialabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id ? 'collapsible-group-body-' + id : null\"\n tabindex=\"0\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n conditionalHeaderContentRef\n ? conditionalHeaderContentRef.template\n : null\n \"\n ></ng-container>\n\n <div class=\"collapse-icon\">\n <granite-icon\n [fontIcon]=\"collapsed ? 'icon-caret-down' : 'icon-caret-up'\"\n ></granite-icon>\n </div>\n </div>\n <div\n data-fnd=\"collapsible-group-body\"\n class=\"collapsible-group-body\"\n [class]=\"collapsed ? 'collapse' : 'expand'\"\n role=\"region\"\n [attr.id]=\"id ? 'collapsible-group-body-' + id : null\"\n [attr.aria-labelledby]=\"id ? 'collapsible-group-header-' + id : null\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n !collapsed && conditionalBodyContentRef\n ? conditionalBodyContentRef.template\n : null\n \"\n >\n </ng-container>\n </div>\n</div>\n", styles: [".collapsible-wrapper{background-color:var(--granite-color-background);box-shadow:var(--granite-shadow-base);border-radius:var(--granite-radius-s);width:100%;font-family:var(--granite-font-family-default)}.collapsible-wrapper .collapse-icon{align-self:center;width:var(--granite-size-base-rem);height:var(--granite-size-base-rem);font-size:var(--granite-font-size-body);color:var(--granite-color-background-inverse);display:none}.collapsible-wrapper .collapsible-group-header{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-base-rem);font-weight:var(--granite-font-weight-bold);padding:var(--granite-spacing-8) var(--granite-spacing-16);transition:background-color .2s ease-out;color:var(--granite-color-text);background-color:var(--granite-color-background);align-items:center}.collapsible-wrapper .collapsible-group-header:focus{outline:var(--granite-border-width-focus) solid var(--granite-color-focus)}.collapsible-wrapper .collapsible-group-header:hover{background-color:var(--granite-color-background-hover)}.collapsible-wrapper .collapsible-group-header:hover .collapse-icon{display:block}.collapsible-wrapper .collapsible-group-header.expanded-header{border-start-start-radius:var(--granite-radius-s);border-start-end-radius:var(--granite-radius-s);border-end-start-radius:0;border-end-end-radius:0}.collapsible-wrapper .collapsible-group-header.collapsed-header{border-radius:var(--granite-radius-s)}.collapsible-wrapper .collapsible-group-body{padding:var(--granite-spacing-16);transition:all .3s ease-in-out}.collapsible-wrapper .collapsible-group-body.expand{display:block;background-color:var(--granite-color-background);border-end-start-radius:var(--granite-radius-s);border-end-end-radius:var(--granite-radius-s)}.collapsible-wrapper .collapsible-group-body.collapse{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GraniteIconComponent, selector: "granite-icon", inputs: ["fontIcon"] }] }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleGroupComponent, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'granite-collapsible-group', template: "<div class=\"collapsible-wrapper\">\n <div\n data-fnd=\"collapsible-group-header\"\n class=\"collapsible-group-header\"\n [class]=\"collapsed ? 'collapsed-header' : 'expanded-header'\"\n role=\"button\"\n (click)=\"toggleCollapsibleGroup()\"\n (keydown)=\"_toogleCollapsing($event)\"\n [attr.id]=\"id ? 'collapsible-group-header-' + id : null\"\n [attr.aria-label]=\"arialabel\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"id ? 'collapsible-group-body-' + id : null\"\n tabindex=\"0\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n conditionalHeaderContentRef\n ? conditionalHeaderContentRef.template\n : null\n \"\n ></ng-container>\n\n <div class=\"collapse-icon\">\n <granite-icon\n [fontIcon]=\"collapsed ? 'icon-caret-down' : 'icon-caret-up'\"\n ></granite-icon>\n </div>\n </div>\n <div\n data-fnd=\"collapsible-group-body\"\n class=\"collapsible-group-body\"\n [class]=\"collapsed ? 'collapse' : 'expand'\"\n role=\"region\"\n [attr.id]=\"id ? 'collapsible-group-body-' + id : null\"\n [attr.aria-labelledby]=\"id ? 'collapsible-group-header-' + id : null\"\n >\n <ng-container\n [ngTemplateOutlet]=\"\n !collapsed && conditionalBodyContentRef\n ? conditionalBodyContentRef.template\n : null\n \"\n >\n </ng-container>\n </div>\n</div>\n", styles: [".collapsible-wrapper{background-color:var(--granite-color-background);box-shadow:var(--granite-shadow-base);border-radius:var(--granite-radius-s);width:100%;font-family:var(--granite-font-family-default)}.collapsible-wrapper .collapse-icon{align-self:center;width:var(--granite-size-base-rem);height:var(--granite-size-base-rem);font-size:var(--granite-font-size-body);color:var(--granite-color-background-inverse);display:none}.collapsible-wrapper .collapsible-group-header{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-base-rem);font-weight:var(--granite-font-weight-bold);padding:var(--granite-spacing-8) var(--granite-spacing-16);transition:background-color .2s ease-out;color:var(--granite-color-text);background-color:var(--granite-color-background);align-items:center}.collapsible-wrapper .collapsible-group-header:focus{outline:var(--granite-border-width-focus) solid var(--granite-color-focus)}.collapsible-wrapper .collapsible-group-header:hover{background-color:var(--granite-color-background-hover)}.collapsible-wrapper .collapsible-group-header:hover .collapse-icon{display:block}.collapsible-wrapper .collapsible-group-header.expanded-header{border-start-start-radius:var(--granite-radius-s);border-start-end-radius:var(--granite-radius-s);border-end-start-radius:0;border-end-end-radius:0}.collapsible-wrapper .collapsible-group-header.collapsed-header{border-radius:var(--granite-radius-s)}.collapsible-wrapper .collapsible-group-body{padding:var(--granite-spacing-16);transition:all .3s ease-in-out}.collapsible-wrapper .collapsible-group-body.expand{display:block;background-color:var(--granite-color-background);border-end-start-radius:var(--granite-radius-s);border-end-end-radius:var(--granite-radius-s)}.collapsible-wrapper .collapsible-group-body.collapse{display:none}\n"] }]
31
- }], propDecorators: { collapsed: [{
32
- type: Input
33
- }], id: [{
34
- type: Input
35
- }], arialabel: [{
36
- type: Input
37
- }], collapsedChanged: [{
38
- type: Output
39
- }], conditionalBodyContentRef: [{
40
- type: ContentChild,
41
- args: [GraniteCollapsibleConditionalBodyDirective]
42
- }], conditionalHeaderContentRef: [{
43
- type: ContentChild,
44
- args: [GraniteCollapsibleConditionalHeaderDirective]
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb2xsYXBzaWJsZS1ncm91cC9jb2xsYXBzaWJsZS1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvbGxhcHNpYmxlLWdyb3VwL2NvbGxhcHNpYmxlLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7O0FBTXBHLE1BQU0sT0FBTyxnQ0FBZ0M7SUFMN0M7UUFPRSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRzNCLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFHaEIsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFHdkIscUJBQWdCLEdBQ3ZCLElBQUksWUFBWSxFQUFXLENBQUM7S0FvQi9CO0lBWkMsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFvQjtRQUNwQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDckQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzsrR0EvQlUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsaVBBYzdCLDBDQUEwQyw4RkFHMUMsNENBQTRDLGdEQy9CNUQscTVDQThDQTs7NEZEaENhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSwyQkFBMkI7OEJBTXJDLFNBQVM7c0JBRFIsS0FBSztnQkFJTixFQUFFO3NCQURELEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlHLGdCQUFnQjtzQkFEeEIsTUFBTTtnQkFLUCx5QkFBeUI7c0JBRHhCLFlBQVk7dUJBQUMsMENBQTBDO2dCQUl4RCwyQkFBMkI7c0JBRDFCLFlBQVk7dUJBQUMsNENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcmFuaXRlQ29sbGFwc2libGVDb25kaXRpb25hbEJvZHlEaXJlY3RpdmUgfSBmcm9tICcuL2NvbGxhcHNpYmxlLWdyb3VwLWJvZHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyYW5pdGVDb2xsYXBzaWJsZUNvbmRpdGlvbmFsSGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2xsYXBzaWJsZS1ncm91cC1oZWFkZXIuZGlyZWN0aXZlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYW5pdGUtY29sbGFwc2libGUtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJ2NvbGxhcHNpYmxlLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NvbGxhcHNpYmxlLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyYW5pdGVDb2xsYXBzaWJsZUdyb3VwQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgaWQ6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGFyaWFsYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGNvbGxhcHNlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoR3Jhbml0ZUNvbGxhcHNpYmxlQ29uZGl0aW9uYWxCb2R5RGlyZWN0aXZlKVxuICBjb25kaXRpb25hbEJvZHlDb250ZW50UmVmOiBHcmFuaXRlQ29sbGFwc2libGVDb25kaXRpb25hbEJvZHlEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChHcmFuaXRlQ29sbGFwc2libGVDb25kaXRpb25hbEhlYWRlckRpcmVjdGl2ZSlcbiAgY29uZGl0aW9uYWxIZWFkZXJDb250ZW50UmVmOiBHcmFuaXRlQ29sbGFwc2libGVDb25kaXRpb25hbEhlYWRlckRpcmVjdGl2ZTtcblxuICB0b2dnbGVDb2xsYXBzaWJsZUdyb3VwKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgIHRoaXMuY29sbGFwc2VkQ2hhbmdlZC5lbWl0KHRoaXMuY29sbGFwc2VkKTtcbiAgfVxuXG4gIF90b29nbGVDb2xsYXBzaW5nKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicgfHwgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50b2dnbGVDb2xsYXBzaWJsZUdyb3VwKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29sbGFwc2libGUtd3JhcHBlclwiPlxuICA8ZGl2XG4gICAgZGF0YS1mbmQ9XCJjb2xsYXBzaWJsZS1ncm91cC1oZWFkZXJcIlxuICAgIGNsYXNzPVwiY29sbGFwc2libGUtZ3JvdXAtaGVhZGVyXCJcbiAgICBbY2xhc3NdPVwiY29sbGFwc2VkID8gJ2NvbGxhcHNlZC1oZWFkZXInIDogJ2V4cGFuZGVkLWhlYWRlcidcIlxuICAgIHJvbGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzaWJsZUdyb3VwKClcIlxuICAgIChrZXlkb3duKT1cIl90b29nbGVDb2xsYXBzaW5nKCRldmVudClcIlxuICAgIFthdHRyLmlkXT1cImlkID8gJ2NvbGxhcHNpYmxlLWdyb3VwLWhlYWRlci0nICsgaWQgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFsYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhY29sbGFwc2VkXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkID8gJ2NvbGxhcHNpYmxlLWdyb3VwLWJvZHktJyArIGlkIDogbnVsbFwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgICAgICBjb25kaXRpb25hbEhlYWRlckNvbnRlbnRSZWZcbiAgICAgICAgICA/IGNvbmRpdGlvbmFsSGVhZGVyQ29udGVudFJlZi50ZW1wbGF0ZVxuICAgICAgICAgIDogbnVsbFxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UtaWNvblwiPlxuICAgICAgPGdyYW5pdGUtaWNvblxuICAgICAgICBbZm9udEljb25dPVwiY29sbGFwc2VkID8gJ2ljb24tY2FyZXQtZG93bicgOiAnaWNvbi1jYXJldC11cCdcIlxuICAgICAgPjwvZ3Jhbml0ZS1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGRhdGEtZm5kPVwiY29sbGFwc2libGUtZ3JvdXAtYm9keVwiXG4gICAgY2xhc3M9XCJjb2xsYXBzaWJsZS1ncm91cC1ib2R5XCJcbiAgICBbY2xhc3NdPVwiY29sbGFwc2VkID8gJ2NvbGxhcHNlJyA6ICdleHBhbmQnXCJcbiAgICByb2xlPVwicmVnaW9uXCJcbiAgICBbYXR0ci5pZF09XCJpZCA/ICdjb2xsYXBzaWJsZS1ncm91cC1ib2R5LScgKyBpZCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCA/ICdjb2xsYXBzaWJsZS1ncm91cC1oZWFkZXItJyArIGlkIDogbnVsbFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICAgICAgIWNvbGxhcHNlZCAmJiBjb25kaXRpb25hbEJvZHlDb250ZW50UmVmXG4gICAgICAgICAgPyBjb25kaXRpb25hbEJvZHlDb250ZW50UmVmLnRlbXBsYXRlXG4gICAgICAgICAgOiBudWxsXG4gICAgICBcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,33 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { GraniteIconModule } from '../icon/icon.module';
4
- import { GraniteCollapsibleGroupComponent } from './collapsible-group.component';
5
- import { GraniteCollapsibleConditionalBodyDirective } from './collapsible-group-body.directive';
6
- import { GraniteCollapsibleConditionalHeaderDirective } from './collapsible-group-header.directive';
7
- import * as i0 from "@angular/core";
8
- export class GraniteCollapsibleGroupModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleGroupModule, declarations: [GraniteCollapsibleGroupComponent,
11
- GraniteCollapsibleConditionalHeaderDirective,
12
- GraniteCollapsibleConditionalBodyDirective], imports: [CommonModule, GraniteIconModule], exports: [GraniteCollapsibleGroupComponent,
13
- GraniteCollapsibleConditionalHeaderDirective,
14
- GraniteCollapsibleConditionalBodyDirective] }); }
15
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleGroupModule, imports: [CommonModule, GraniteIconModule] }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCollapsibleGroupModule, decorators: [{
18
- type: NgModule,
19
- args: [{
20
- imports: [CommonModule, GraniteIconModule],
21
- declarations: [
22
- GraniteCollapsibleGroupComponent,
23
- GraniteCollapsibleConditionalHeaderDirective,
24
- GraniteCollapsibleConditionalBodyDirective,
25
- ],
26
- exports: [
27
- GraniteCollapsibleGroupComponent,
28
- GraniteCollapsibleConditionalHeaderDirective,
29
- GraniteCollapsibleConditionalBodyDirective,
30
- ],
31
- }]
32
- }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtZ3JvdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb2xsYXBzaWJsZS1ncm91cC9jb2xsYXBzaWJsZS1ncm91cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEcsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBZXBHLE1BQU0sT0FBTyw2QkFBNkI7K0dBQTdCLDZCQUE2QjtnSEFBN0IsNkJBQTZCLGlCQVZ0QyxnQ0FBZ0M7WUFDaEMsNENBQTRDO1lBQzVDLDBDQUEwQyxhQUpsQyxZQUFZLEVBQUUsaUJBQWlCLGFBT3ZDLGdDQUFnQztZQUNoQyw0Q0FBNEM7WUFDNUMsMENBQTBDO2dIQUdqQyw2QkFBNkIsWUFaOUIsWUFBWSxFQUFFLGlCQUFpQjs7NEZBWTlCLDZCQUE2QjtrQkFiekMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUM7b0JBQzFDLFlBQVksRUFBRTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLDRDQUE0Qzt3QkFDNUMsMENBQTBDO3FCQUMzQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0NBQWdDO3dCQUNoQyw0Q0FBNEM7d0JBQzVDLDBDQUEwQztxQkFDM0M7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEdyYW5pdGVJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBHcmFuaXRlQ29sbGFwc2libGVHcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29sbGFwc2libGUtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEdyYW5pdGVDb2xsYXBzaWJsZUNvbmRpdGlvbmFsQm9keURpcmVjdGl2ZSB9IGZyb20gJy4vY29sbGFwc2libGUtZ3JvdXAtYm9keS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgR3Jhbml0ZUNvbGxhcHNpYmxlQ29uZGl0aW9uYWxIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvbGxhcHNpYmxlLWdyb3VwLWhlYWRlci5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBHcmFuaXRlSWNvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEdyYW5pdGVDb2xsYXBzaWJsZUdyb3VwQ29tcG9uZW50LFxuICAgIEdyYW5pdGVDb2xsYXBzaWJsZUNvbmRpdGlvbmFsSGVhZGVyRGlyZWN0aXZlLFxuICAgIEdyYW5pdGVDb2xsYXBzaWJsZUNvbmRpdGlvbmFsQm9keURpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEdyYW5pdGVDb2xsYXBzaWJsZUdyb3VwQ29tcG9uZW50LFxuICAgIEdyYW5pdGVDb2xsYXBzaWJsZUNvbmRpdGlvbmFsSGVhZGVyRGlyZWN0aXZlLFxuICAgIEdyYW5pdGVDb2xsYXBzaWJsZUNvbmRpdGlvbmFsQm9keURpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZUNvbGxhcHNpYmxlR3JvdXBNb2R1bGUge31cbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../icon/icon.component";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../contact-item-default-status/contact-item-default-status.component";
6
- import * as i4 from "../contact-item-title/contact-item-title.component";
7
- export class GraniteContactItemComponent {
8
- constructor() {
9
- this.selectedContact = new EventEmitter();
10
- }
11
- emitSelectedContact(selectedContact) {
12
- this.selectedContact.emit(selectedContact);
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteContactItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GraniteContactItemComponent, selector: "granite-contact-item", inputs: { contact: "contact" }, outputs: { selectedContact: "selectedContact" }, host: { classAttribute: "granite-contact-item" }, ngImport: i0, template: "<div class=\"contact-item\" [attr.data-fnd]=\"contact.name\">\n <div class=\"contact-item-main\">\n <ng-container\n *ngTemplateOutlet=\"\n contactItem;\n context: {\n contact: contact,\n testName: 'contact',\n selectedContactOutput: { contact }\n }\n \"\n ></ng-container>\n </div>\n\n <ul *ngIf=\"contact.options\" class=\"contact-item-options\">\n <li\n tabindex=\"0\"\n *ngFor=\"let option of contact.options; let i = index\"\n class=\"option-item\"\n [attr.data-fnd]=\"'contact-option-' + i\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n contactItem;\n context: {\n contact: option,\n testName: 'contact-option-' + i,\n selectedContactOutput: { contact: option, parent: contact }\n }\n \"\n ></ng-container>\n </li>\n </ul>\n</div>\n\n<ng-template\n let-testName=\"testName\"\n let-contact=\"contact\"\n let-selectedContactOutput=\"selectedContactOutput\"\n #contactItem\n>\n <granite-icon\n [attr.data-fnd]=\"testName + '-icon'\"\n fontIcon=\"{{ contact.iconName }}\"\n ></granite-icon>\n\n <granite-contact-item-title\n [attr.data-fnd]=\"testName + '-title'\"\n tabindex=\"0\"\n [contact]=\"contact\"\n [class.contact-item-disabled]=\"contact.options || contact.disabled\"\n (click)=\"emitSelectedContact(selectedContactOutput)\"\n ></granite-contact-item-title>\n\n <ng-container *ngIf=\"contact.statusTemplate; else defaultStatus\">\n <ng-container *ngTemplateOutlet=\"contact.statusTemplate\"></ng-container>\n </ng-container>\n\n <ng-template #defaultStatus>\n <granite-contact-item-default-status\n [attr.data-fnd]=\"testName + '-status'\"\n [status]=\"contact.status\"\n ></granite-contact-item-default-status>\n </ng-template>\n</ng-template>\n", styles: [".contact-item{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--granite-spacing-8)}.contact-item-main{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;gap:var(--granite-spacing-8);align-self:stretch;align-items:center}.contact-item-disabled{pointer-events:none}.contact-item-options{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-inline-start:var(--granite-spacing-24);gap:var(--granite-spacing-8);list-style:none}.contact-item-options .option-item{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;gap:var(--granite-spacing-8);align-self:stretch;align-items:center}.contact-item granite-contact-item-title,.contact-item granite-contact-item-default-status{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}granite-icon{padding:0;color:var(--granite-color-text-hint);width:var(--granite-size-base-rem);height:var(--granite-size-base-rem)}\n"], dependencies: [{ kind: "component", type: i1.GraniteIconComponent, selector: "granite-icon", inputs: ["fontIcon"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ContactItemDefaultStatusComponent, selector: "granite-contact-item-default-status", inputs: ["status"] }, { kind: "component", type: i4.GraniteContactItemTitleComponent, selector: "granite-contact-item-title", inputs: ["contact"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteContactItemComponent, decorators: [{
18
- type: Component,
19
- args: [{ selector: 'granite-contact-item', host: {
20
- class: 'granite-contact-item',
21
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"contact-item\" [attr.data-fnd]=\"contact.name\">\n <div class=\"contact-item-main\">\n <ng-container\n *ngTemplateOutlet=\"\n contactItem;\n context: {\n contact: contact,\n testName: 'contact',\n selectedContactOutput: { contact }\n }\n \"\n ></ng-container>\n </div>\n\n <ul *ngIf=\"contact.options\" class=\"contact-item-options\">\n <li\n tabindex=\"0\"\n *ngFor=\"let option of contact.options; let i = index\"\n class=\"option-item\"\n [attr.data-fnd]=\"'contact-option-' + i\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n contactItem;\n context: {\n contact: option,\n testName: 'contact-option-' + i,\n selectedContactOutput: { contact: option, parent: contact }\n }\n \"\n ></ng-container>\n </li>\n </ul>\n</div>\n\n<ng-template\n let-testName=\"testName\"\n let-contact=\"contact\"\n let-selectedContactOutput=\"selectedContactOutput\"\n #contactItem\n>\n <granite-icon\n [attr.data-fnd]=\"testName + '-icon'\"\n fontIcon=\"{{ contact.iconName }}\"\n ></granite-icon>\n\n <granite-contact-item-title\n [attr.data-fnd]=\"testName + '-title'\"\n tabindex=\"0\"\n [contact]=\"contact\"\n [class.contact-item-disabled]=\"contact.options || contact.disabled\"\n (click)=\"emitSelectedContact(selectedContactOutput)\"\n ></granite-contact-item-title>\n\n <ng-container *ngIf=\"contact.statusTemplate; else defaultStatus\">\n <ng-container *ngTemplateOutlet=\"contact.statusTemplate\"></ng-container>\n </ng-container>\n\n <ng-template #defaultStatus>\n <granite-contact-item-default-status\n [attr.data-fnd]=\"testName + '-status'\"\n [status]=\"contact.status\"\n ></granite-contact-item-default-status>\n </ng-template>\n</ng-template>\n", styles: [".contact-item{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--granite-spacing-8)}.contact-item-main{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;gap:var(--granite-spacing-8);align-self:stretch;align-items:center}.contact-item-disabled{pointer-events:none}.contact-item-options{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-inline-start:var(--granite-spacing-24);gap:var(--granite-spacing-8);list-style:none}.contact-item-options .option-item{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;gap:var(--granite-spacing-8);align-self:stretch;align-items:center}.contact-item granite-contact-item-title,.contact-item granite-contact-item-default-status{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}granite-icon{padding:0;color:var(--granite-color-text-hint);width:var(--granite-size-base-rem);height:var(--granite-size-base-rem)}\n"] }]
22
- }], propDecorators: { contact: [{
23
- type: Input
24
- }], selectedContact: [{
25
- type: Output
26
- }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3NyYy9saWIvY29udGFjdHMvY29udGFjdC1pdGVtL2NvbnRhY3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvbnRhY3RzL2NvbnRhY3QtaXRlbS9jb250YWN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWF2QixNQUFNLE9BQU8sMkJBQTJCO0lBVHhDO1FBWXFCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7S0FLMUU7SUFIQyxtQkFBbUIsQ0FBQyxlQUFnQztRQUNsRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQVBVLDJCQUEyQjttR0FBM0IsMkJBQTJCLCtMQ25CeEMsbzJEQWlFQTs7NEZEOUNhLDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDRSxzQkFBc0IsUUFDMUI7d0JBQ0osS0FBSyxFQUFFLHNCQUFzQjtxQkFDOUIsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFFYSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdGVkQ29udGFjdCB9IGZyb20gJy4uL2NvbnRhY3RzLXR5cGVzL2NvbnRhY3RzLmNvbXBvbmVudC5wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgQ29udGFjdEV4dGVuZGVkIH0gZnJvbSAnLi4vY29udGFjdHMtdHlwZXMvY29udGFjdHMuY29tcG9uZW50LnByaXZhdGUtdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmFuaXRlLWNvbnRhY3QtaXRlbScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dyYW5pdGUtY29udGFjdC1pdGVtJyxcbiAgfSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRhY3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZUNvbnRhY3RJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29udGFjdDogQ29udGFjdEV4dGVuZGVkO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZENvbnRhY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGVkQ29udGFjdD4oKTtcblxuICBlbWl0U2VsZWN0ZWRDb250YWN0KHNlbGVjdGVkQ29udGFjdDogU2VsZWN0ZWRDb250YWN0KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENvbnRhY3QuZW1pdChzZWxlY3RlZENvbnRhY3QpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFjdC1pdGVtXCIgW2F0dHIuZGF0YS1mbmRdPVwiY29udGFjdC5uYW1lXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWN0LWl0ZW0tbWFpblwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGNvbnRhY3RJdGVtO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgY29udGFjdDogY29udGFjdCxcbiAgICAgICAgICB0ZXN0TmFtZTogJ2NvbnRhY3QnLFxuICAgICAgICAgIHNlbGVjdGVkQ29udGFjdE91dHB1dDogeyBjb250YWN0IH1cbiAgICAgICAgfVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDx1bCAqbmdJZj1cImNvbnRhY3Qub3B0aW9uc1wiIGNsYXNzPVwiY29udGFjdC1pdGVtLW9wdGlvbnNcIj5cbiAgICA8bGlcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGNvbnRhY3Qub3B0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBjbGFzcz1cIm9wdGlvbi1pdGVtXCJcbiAgICAgIFthdHRyLmRhdGEtZm5kXT1cIidjb250YWN0LW9wdGlvbi0nICsgaVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGNvbnRhY3RJdGVtO1xuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgIGNvbnRhY3Q6IG9wdGlvbixcbiAgICAgICAgICAgIHRlc3ROYW1lOiAnY29udGFjdC1vcHRpb24tJyArIGksXG4gICAgICAgICAgICBzZWxlY3RlZENvbnRhY3RPdXRwdXQ6IHsgY29udGFjdDogb3B0aW9uLCBwYXJlbnQ6IGNvbnRhY3QgfVxuICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICBsZXQtdGVzdE5hbWU9XCJ0ZXN0TmFtZVwiXG4gIGxldC1jb250YWN0PVwiY29udGFjdFwiXG4gIGxldC1zZWxlY3RlZENvbnRhY3RPdXRwdXQ9XCJzZWxlY3RlZENvbnRhY3RPdXRwdXRcIlxuICAjY29udGFjdEl0ZW1cbj5cbiAgPGdyYW5pdGUtaWNvblxuICAgIFthdHRyLmRhdGEtZm5kXT1cInRlc3ROYW1lICsgJy1pY29uJ1wiXG4gICAgZm9udEljb249XCJ7eyBjb250YWN0Lmljb25OYW1lIH19XCJcbiAgPjwvZ3Jhbml0ZS1pY29uPlxuXG4gIDxncmFuaXRlLWNvbnRhY3QtaXRlbS10aXRsZVxuICAgIFthdHRyLmRhdGEtZm5kXT1cInRlc3ROYW1lICsgJy10aXRsZSdcIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW2NvbnRhY3RdPVwiY29udGFjdFwiXG4gICAgW2NsYXNzLmNvbnRhY3QtaXRlbS1kaXNhYmxlZF09XCJjb250YWN0Lm9wdGlvbnMgfHwgY29udGFjdC5kaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cImVtaXRTZWxlY3RlZENvbnRhY3Qoc2VsZWN0ZWRDb250YWN0T3V0cHV0KVwiXG4gID48L2dyYW5pdGUtY29udGFjdC1pdGVtLXRpdGxlPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250YWN0LnN0YXR1c1RlbXBsYXRlOyBlbHNlIGRlZmF1bHRTdGF0dXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGFjdC5zdGF0dXNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTdGF0dXM+XG4gICAgPGdyYW5pdGUtY29udGFjdC1pdGVtLWRlZmF1bHQtc3RhdHVzXG4gICAgICBbYXR0ci5kYXRhLWZuZF09XCJ0ZXN0TmFtZSArICctc3RhdHVzJ1wiXG4gICAgICBbc3RhdHVzXT1cImNvbnRhY3Quc3RhdHVzXCJcbiAgICA+PC9ncmFuaXRlLWNvbnRhY3QtaXRlbS1kZWZhdWx0LXN0YXR1cz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=