@ifsworld/granite-components 11.7.1 → 11.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2022/index.mjs +12 -1
  2. package/esm2022/lib/chips/chip-list.component.mjs +4 -4
  3. package/esm2022/lib/contacts/contact-item/contact-item.component.mjs +30 -0
  4. package/esm2022/lib/contacts/contact-item-default-status/contact-item-default-status.component.mjs +20 -0
  5. package/esm2022/lib/contacts/contact-item-title/contact-item-title.component.mjs +15 -0
  6. package/esm2022/lib/contacts/contacts-profile/contacts-profile.component.mjs +27 -0
  7. package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-data.mjs +24 -0
  8. package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-for.directive.mjs +231 -0
  9. package/esm2022/lib/contacts/contacts-types/contacts.component.private-types.mjs +2 -0
  10. package/esm2022/lib/contacts/contacts-types/contacts.component.public-types.mjs +9 -0
  11. package/esm2022/lib/contacts/contacts.component.mjs +69 -0
  12. package/esm2022/lib/contacts/contacts.module.mjs +52 -0
  13. package/esm2022/lib/contacts/custom-profile.directive.mjs +16 -0
  14. package/esm2022/lib/contacts/custom-status.directive.mjs +18 -0
  15. package/esm2022/lib/menu/menu-trigger-for.directive.mjs +13 -12
  16. package/fesm2022/ifsworld-granite-components.mjs +474 -15
  17. package/fesm2022/ifsworld-granite-components.mjs.map +1 -1
  18. package/index.d.ts +11 -0
  19. package/lib/contacts/contact-item/contact-item.component.d.ts +11 -0
  20. package/lib/contacts/contact-item-default-status/contact-item-default-status.component.d.ts +15 -0
  21. package/lib/contacts/contact-item-title/contact-item-title.component.d.ts +7 -0
  22. package/lib/contacts/contacts-profile/contacts-profile.component.d.ts +12 -0
  23. package/lib/contacts/contacts-trigger/contacts-trigger-data.d.ts +23 -0
  24. package/lib/contacts/contacts-trigger/contacts-trigger-for.directive.d.ts +69 -0
  25. package/lib/contacts/contacts-types/contacts.component.private-types.d.ts +5 -0
  26. package/lib/contacts/contacts-types/contacts.component.public-types.d.ts +24 -0
  27. package/lib/contacts/contacts.component.d.ts +24 -0
  28. package/lib/contacts/contacts.module.d.ts +16 -0
  29. package/lib/contacts/custom-profile.directive.d.ts +8 -0
  30. package/lib/contacts/custom-status.directive.d.ts +9 -0
  31. package/lib/menu/menu-trigger-for.directive.d.ts +4 -4
  32. package/package.json +1 -1
@@ -0,0 +1,231 @@
1
+ import { Directive, ElementRef, Inject, Input, Optional, ViewContainerRef, } from '@angular/core';
2
+ import { FocusMonitor } from '@angular/cdk/a11y';
3
+ import { Directionality } from '@angular/cdk/bidi';
4
+ import { Overlay, OverlayConfig, OverlayOutsideClickDispatcher, } from '@angular/cdk/overlay';
5
+ import { TemplatePortal } from '@angular/cdk/portal';
6
+ import { Subscription } from 'rxjs';
7
+ import { GraniteContactsComponent } from '../contacts.component';
8
+ import { GRANITE_CLIENT_INPUT, GRANITE_CLIENT_OUTPUT, } from '../../core/client-environment';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/cdk/overlay";
11
+ import * as i2 from "@angular/cdk/bidi";
12
+ import * as i3 from "@angular/cdk/a11y";
13
+ export class GraniteContactsTriggerForDirective {
14
+ constructor(_overlay, _element, _viewContainerRef, _outsideClickDispatcher,
15
+ /** Client input device information */
16
+ _clientInput,
17
+ /** Client output device information */
18
+ _clientOutput, _dir, _focusMonitor) {
19
+ this._overlay = _overlay;
20
+ this._element = _element;
21
+ this._viewContainerRef = _viewContainerRef;
22
+ this._outsideClickDispatcher = _outsideClickDispatcher;
23
+ this._clientInput = _clientInput;
24
+ this._clientOutput = _clientOutput;
25
+ this._dir = _dir;
26
+ this._focusMonitor = _focusMonitor;
27
+ /** Whether the associated contacts is open */
28
+ this._isContactsOpen = false;
29
+ this._contactsCloseSubscription = Subscription.EMPTY;
30
+ this._portal = null;
31
+ this._overlayRef = null;
32
+ }
33
+ ngAfterContentInit() {
34
+ const selectedContact = this.contacts.selectedContact;
35
+ this._contactsCloseSubscription = selectedContact.subscribe(() => this.closeContacts());
36
+ }
37
+ ngOnDestroy() {
38
+ if (this._overlayRef) {
39
+ this._overlayRef.dispose();
40
+ this._overlayRef = null;
41
+ }
42
+ this._contactsCloseSubscription.unsubscribe();
43
+ }
44
+ isOpen() {
45
+ return this._isContactsOpen;
46
+ }
47
+ openContacts() {
48
+ if (this._isContactsOpen) {
49
+ return;
50
+ }
51
+ this.contacts.direction = this._dir.value === 'rtl' ? 'rtl' : 'ltr';
52
+ this.contacts.clientInput = this._clientInput;
53
+ this.contacts.clientOutput = this._clientOutput;
54
+ const panelClass = [];
55
+ if (this._clientOutput?.device === 'touch') {
56
+ panelClass.push('granite-overlay-pane-center');
57
+ }
58
+ const scrollStrategy = this._clientOutput?.device !== 'touch'
59
+ ? this._overlay.scrollStrategies.reposition()
60
+ : this._overlay.scrollStrategies.block();
61
+ const hasBackdrop = this._clientOutput?.device === 'touch';
62
+ if (!this._overlayRef) {
63
+ const config = new OverlayConfig({
64
+ positionStrategy: this._positionStrategy(),
65
+ backdropClass: 'granite-overlay-dark-glass-backdrop',
66
+ scrollStrategy,
67
+ direction: this._dir,
68
+ panelClass,
69
+ hasBackdrop,
70
+ });
71
+ this._overlayRef = this._overlay.create(config);
72
+ }
73
+ if (!this._portal ||
74
+ this._portal.templateRef !== this.contacts.templateRef) {
75
+ this._portal = new TemplatePortal(this.contacts.templateRef, this._viewContainerRef);
76
+ }
77
+ // Attach portal to overlay ref (which is a portal outlet)
78
+ this._overlayRef.attach(this._portal);
79
+ this._outsideClickDispatcher.add(this._overlayRef);
80
+ this._overlayRef.outsidePointerEvents().subscribe((event) => {
81
+ event.stopPropagation();
82
+ this.closeContacts();
83
+ });
84
+ this._isContactsOpen = true;
85
+ }
86
+ /** Toggles the contacts between the open and closed states. */
87
+ toggleContacts() {
88
+ if (this._isContactsOpen) {
89
+ this.closeContacts();
90
+ }
91
+ else {
92
+ this.openContacts();
93
+ }
94
+ }
95
+ /** Close the associated contacts */
96
+ closeContacts() {
97
+ if (!this._overlayRef || !this._isContactsOpen) {
98
+ return;
99
+ }
100
+ this._outsideClickDispatcher.remove(this._overlayRef);
101
+ this._overlayRef.detach();
102
+ this._restoreFocus();
103
+ this._isContactsOpen = false;
104
+ }
105
+ /** Handles key presses on the trigger. */
106
+ _handleKeydown(event) {
107
+ if (event.key === 'Enter') {
108
+ event.preventDefault();
109
+ this.toggleContacts();
110
+ }
111
+ }
112
+ /** Handles click events on the trigger. */
113
+ _handleClick() {
114
+ this.toggleContacts();
115
+ }
116
+ /**
117
+ * Restores focus to the element that was focused before the contacts was open.
118
+ */
119
+ _restoreFocus(origin = 'program', options) {
120
+ if (this._focusMonitor) {
121
+ this._focusMonitor.focusVia(this._element, origin, options);
122
+ }
123
+ else {
124
+ this._element.nativeElement.focus(options);
125
+ }
126
+ }
127
+ /**
128
+ * Returns strategy for positioning the overlay for desktop devices:
129
+ */
130
+ _desktopPositionStrategy() {
131
+ const positionStrategy = this._overlay
132
+ .position()
133
+ .flexibleConnectedTo(this._element)
134
+ .withLockedPosition()
135
+ .withTransformOriginOn('.granite-contacts')
136
+ .withPush(false);
137
+ this._setPosition(positionStrategy);
138
+ return positionStrategy;
139
+ }
140
+ /**
141
+ * Sets the appropriate positions on a position strategy
142
+ * so the overlay connects with the trigger correctly.
143
+ * @param positionStrategy Strategy whose position to update.
144
+ */
145
+ _setPosition(positionStrategy) {
146
+ const [originX, originFallbackX] = this.contacts.xPosition === 'before'
147
+ ? ['end', 'start']
148
+ : ['start', 'end'];
149
+ const [overlayY, overlayFallbackY] = this.contacts.yPosition === 'above'
150
+ ? ['bottom', 'top']
151
+ : ['top', 'bottom'];
152
+ let [originY, originFallbackY] = [overlayY, overlayFallbackY];
153
+ const [overlayX, overlayFallbackX] = [originX, originFallbackX];
154
+ const offsetY = 0;
155
+ originY = overlayY === 'top' ? 'bottom' : 'top';
156
+ originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';
157
+ positionStrategy.withPositions([
158
+ { originX, originY, overlayX, overlayY, offsetY },
159
+ {
160
+ originX: originFallbackX,
161
+ originY,
162
+ overlayX: overlayFallbackX,
163
+ overlayY,
164
+ offsetY,
165
+ },
166
+ {
167
+ originX,
168
+ originY: originFallbackY,
169
+ overlayX,
170
+ overlayY: overlayFallbackY,
171
+ offsetY: -offsetY,
172
+ },
173
+ {
174
+ originX: originFallbackX,
175
+ originY: originFallbackY,
176
+ overlayX: overlayFallbackX,
177
+ overlayY: overlayFallbackY,
178
+ offsetY: -offsetY,
179
+ },
180
+ ]);
181
+ }
182
+ /**
183
+ * Returns strategy for positioning the overlay depending on what type of
184
+ * device the contacts is being shown on
185
+ */
186
+ _positionStrategy() {
187
+ if (this._clientOutput?.device !== 'touch') {
188
+ return this._desktopPositionStrategy();
189
+ }
190
+ return this._touchPositionStrategy();
191
+ }
192
+ /**
193
+ * Returns strategy for positioning the overlay for touch devices:
194
+ * Place centered in the screen.
195
+ */
196
+ _touchPositionStrategy() {
197
+ return this._overlay.position().global();
198
+ }
199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsTriggerForDirective, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.OverlayOutsideClickDispatcher }, { token: GRANITE_CLIENT_INPUT, optional: true }, { token: GRANITE_CLIENT_OUTPUT, optional: true }, { token: i2.Directionality, optional: true }, { token: i3.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
200
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: GraniteContactsTriggerForDirective, selector: "[graniteContactsTriggerFor]", inputs: { contacts: ["graniteContactsTriggerFor", "contacts"] }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "keydown": "_handleKeydown($event)", "click": "_handleClick($event)" }, properties: { "attr.aria-expanded": "_isContactsOpen || null", "attr.aria-controls": "_isContactsOpen ? contacts.panelId : null" }, classAttribute: "granite-contacts-trigger" }, ngImport: i0 }); }
201
+ }
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsTriggerForDirective, decorators: [{
203
+ type: Directive,
204
+ args: [{
205
+ selector: `[graniteContactsTriggerFor]`,
206
+ host: {
207
+ class: 'granite-contacts-trigger',
208
+ 'aria-haspopup': 'true',
209
+ '[attr.aria-expanded]': '_isContactsOpen || null',
210
+ '[attr.aria-controls]': '_isContactsOpen ? contacts.panelId : null',
211
+ '(keydown)': '_handleKeydown($event)',
212
+ '(click)': '_handleClick($event)',
213
+ },
214
+ }]
215
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.OverlayOutsideClickDispatcher }, { type: undefined, decorators: [{
216
+ type: Inject,
217
+ args: [GRANITE_CLIENT_INPUT]
218
+ }, {
219
+ type: Optional
220
+ }] }, { type: undefined, decorators: [{
221
+ type: Inject,
222
+ args: [GRANITE_CLIENT_OUTPUT]
223
+ }, {
224
+ type: Optional
225
+ }] }, { type: i2.Directionality, decorators: [{
226
+ type: Optional
227
+ }] }, { type: i3.FocusMonitor }], propDecorators: { contacts: [{
228
+ type: Input,
229
+ args: ['graniteContactsTriggerFor']
230
+ }] } });
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMtdHJpZ2dlci1mb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb250YWN0cy9jb250YWN0cy10cmlnZ2VyL2NvbnRhY3RzLXRyaWdnZXItZm9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBR0wsT0FBTyxFQUNQLGFBQWEsRUFDYiw2QkFBNkIsR0FJOUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBR0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLCtCQUErQixDQUFDOzs7OztBQWF2QyxNQUFNLE9BQU8sa0NBQWtDO0lBZTdDLFlBQ1UsUUFBaUIsRUFDakIsUUFBaUMsRUFDakMsaUJBQW1DLEVBQ25DLHVCQUFzRDtJQUU5RCxzQ0FBc0M7SUFHL0IsWUFBa0M7SUFFekMsdUNBQXVDO0lBR2hDLGFBQW9DLEVBR25DLElBQW9CLEVBRXBCLGFBQTJCO1FBbEIzQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQXlCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFD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LGdCQUFnQjtnQkFDMUIsT0FBTyxFQUFFLENBQUMsT0FBTzthQUNsQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxzQkFBc0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNDLENBQUM7OEdBOU9VLGtDQUFrQyxnSkFzQm5DLG9CQUFvQiw2QkFLcEIscUJBQXFCO2tHQTNCcEIsa0NBQWtDOzsyRkFBbEMsa0NBQWtDO2tCQVg5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsMEJBQTBCO3dCQUNqQyxlQUFlLEVBQUUsTUFBTTt3QkFDdkIsc0JBQXNCLEVBQUUseUJBQXlCO3dCQUNqRCxzQkFBc0IsRUFBRSwyQ0FBMkM7d0JBQ25FLFdBQVcsRUFBRSx3QkFBd0I7d0JBQ3JDLFNBQVMsRUFBRSxzQkFBc0I7cUJBQ2xDO2lCQUNGOzswQkF1QkksTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixRQUFROzswQkFJUixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLFFBQVE7OzBCQUdSLFFBQVE7b0VBMUJYLFFBQVE7c0JBRFAsS0FBSzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQge1xuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gIEhvcml6b250YWxDb25uZWN0aW9uUG9zLFxuICBPdmVybGF5LFxuICBPdmVybGF5Q29uZmlnLFxuICBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcbiAgT3ZlcmxheVJlZixcbiAgUG9zaXRpb25TdHJhdGVneSxcbiAgVmVydGljYWxDb25uZWN0aW9uUG9zLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYW5pdGVDb250YWN0c0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRhY3RzLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDbGllbnRJbnB1dEludGVyZmFjZSxcbiAgQ2xpZW50T3V0cHV0SW50ZXJmYWNlLFxuICBHUkFOSVRFX0NMSUVOVF9JTlBVVCxcbiAgR1JBTklURV9DTElFTlRfT1VUUFVULFxufSBmcm9tICcuLi8uLi9jb3JlL2NsaWVudC1lbnZpcm9ubWVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFtncmFuaXRlQ29udGFjdHNUcmlnZ2VyRm9yXWAsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dyYW5pdGUtY29udGFjdHMtdHJpZ2dlcicsXG4gICAgJ2FyaWEtaGFzcG9wdXAnOiAndHJ1ZScsXG4gICAgJ1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ19pc0NvbnRhY3RzT3BlbiB8fCBudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnX2lzQ29udGFjdHNPcGVuID8gY29udGFjdHMucGFuZWxJZCA6IG51bGwnLFxuICAgICcoa2V5ZG93biknOiAnX2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgJyhjbGljayknOiAnX2hhbmRsZUNsaWNrKCRldmVudCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ29udGFjdHNUcmlnZ2VyRm9yRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKiBSZWZlcmVuY2VzIHRoZSBjb250YWN0cyBpbnN0YW5jZSB0aGF0IHRoZSB0cmlnZ2VyIGlzIGFzc29jaWF0ZWQgd2l0aC4gKi9cbiAgQElucHV0KCdncmFuaXRlQ29udGFjdHNUcmlnZ2VyRm9yJylcbiAgY29udGFjdHM6IEdyYW5pdGVDb250YWN0c0NvbXBvbmVudDtcblxuICAvKiogV2hldGhlciB0aGUgYXNzb2NpYXRlZCBjb250YWN0cyBpcyBvcGVuICovXG4gIF9pc0NvbnRhY3RzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2NvbnRhY3RzQ2xvc2VTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgcHJpdmF0ZSBfcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgX291dHNpZGVDbGlja0Rpc3BhdGNoZXI6IE92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLFxuXG4gICAgLyoqIENsaWVudCBpbnB1dCBkZXZpY2UgaW5mb3JtYXRpb24gKi9cbiAgICBASW5qZWN0KEdSQU5JVEVfQ0xJRU5UX0lOUFVUKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHVibGljIF9jbGllbnRJbnB1dDogQ2xpZW50SW5wdXRJbnRlcmZhY2UsXG5cbiAgICAvKiogQ2xpZW50IG91dHB1dCBkZXZpY2UgaW5mb3JtYXRpb24gKi9cbiAgICBASW5qZWN0KEdSQU5JVEVfQ0xJRU5UX09VVFBVVClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBfY2xpZW50T3V0cHV0OiBDbGllbnRPdXRwdXRJbnRlcmZhY2UsXG5cbiAgICBAT3B0aW9uYWwoKVxuICAgIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXG5cbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvclxuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkQ29udGFjdCA9IHRoaXMuY29udGFjdHMuc2VsZWN0ZWRDb250YWN0O1xuXG4gICAgdGhpcy5fY29udGFjdHNDbG9zZVN1YnNjcmlwdGlvbiA9IHNlbGVjdGVkQ29udGFjdC5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMuY2xvc2VDb250YWN0cygpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLl9jb250YWN0c0Nsb3NlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQ29udGFjdHNPcGVuO1xuICB9XG5cbiAgb3BlbkNvbnRhY3RzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc0NvbnRhY3RzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29udGFjdHMuZGlyZWN0aW9uID0gdGhpcy5fZGlyLnZhbHVlID09PSAncnRsJyA/ICdydGwnIDogJ2x0cic7XG4gICAgdGhpcy5jb250YWN0cy5jbGllbnRJbnB1dCA9IHRoaXMuX2NsaWVudElucHV0O1xuICAgIHRoaXMuY29udGFjdHMuY2xpZW50T3V0cHV0ID0gdGhpcy5fY2xpZW50T3V0cHV0O1xuXG4gICAgY29uc3QgcGFuZWxDbGFzczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5fY2xpZW50T3V0cHV0Py5kZXZpY2UgPT09ICd0b3VjaCcpIHtcbiAgICAgIHBhbmVsQ2xhc3MucHVzaCgnZ3Jhbml0ZS1vdmVybGF5LXBhbmUtY2VudGVyJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPVxuICAgICAgdGhpcy5fY2xpZW50T3V0cHV0Py5kZXZpY2UgIT09ICd0b3VjaCdcbiAgICAgICAgPyB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXG4gICAgICAgIDogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XG5cbiAgICBjb25zdCBoYXNCYWNrZHJvcCA9IHRoaXMuX2NsaWVudE91dHB1dD8uZGV2aWNlID09PSAndG91Y2gnO1xuXG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3koKSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2dyYW5pdGUtb3ZlcmxheS1kYXJrLWdsYXNzLWJhY2tkcm9wJyxcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLFxuICAgICAgICBwYW5lbENsYXNzLFxuICAgICAgICBoYXNCYWNrZHJvcCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5fcG9ydGFsIHx8XG4gICAgICB0aGlzLl9wb3J0YWwudGVtcGxhdGVSZWYgIT09IHRoaXMuY29udGFjdHMudGVtcGxhdGVSZWZcbiAgICApIHtcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgdGhpcy5jb250YWN0cy50ZW1wbGF0ZVJlZixcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZlxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gQXR0YWNoIHBvcnRhbCB0byBvdmVybGF5IHJlZiAod2hpY2ggaXMgYSBwb3J0YWwgb3V0bGV0KVxuICAgIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5hZGQodGhpcy5fb3ZlcmxheVJlZik7XG4gICAgdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5jbG9zZUNvbnRhY3RzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9pc0NvbnRhY3RzT3BlbiA9IHRydWU7XG4gIH1cblxuICAvKiogVG9nZ2xlcyB0aGUgY29udGFjdHMgYmV0d2VlbiB0aGUgb3BlbiBhbmQgY2xvc2VkIHN0YXRlcy4gKi9cbiAgdG9nZ2xlQ29udGFjdHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzQ29udGFjdHNPcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlQ29udGFjdHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuQ29udGFjdHMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2UgdGhlIGFzc29jaWF0ZWQgY29udGFjdHMgKi9cbiAgY2xvc2VDb250YWN0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYgfHwgIXRoaXMuX2lzQ29udGFjdHNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5yZW1vdmUodGhpcy5fb3ZlcmxheVJlZik7XG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcblxuICAgIHRoaXMuX3Jlc3RvcmVGb2N1cygpO1xuICAgIHRoaXMuX2lzQ29udGFjdHNPcGVuID0gZmFsc2U7XG4gIH1cblxuICAvKiogSGFuZGxlcyBrZXkgcHJlc3NlcyBvbiB0aGUgdHJpZ2dlci4gKi9cbiAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy50b2dnbGVDb250YWN0cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIYW5kbGVzIGNsaWNrIGV2ZW50cyBvbiB0aGUgdHJpZ2dlci4gKi9cbiAgX2hhbmRsZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQ29udGFjdHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyBmb2N1cyB0byB0aGUgZWxlbWVudCB0aGF0IHdhcyBmb2N1c2VkIGJlZm9yZSB0aGUgY29udGFjdHMgd2FzIG9wZW4uXG4gICAqL1xuICBfcmVzdG9yZUZvY3VzKG9yaWdpbjogRm9jdXNPcmlnaW4gPSAncHJvZ3JhbScsIG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZm9jdXNNb25pdG9yKSB7XG4gICAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZWxlbWVudCwgb3JpZ2luLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHN0cmF0ZWd5IGZvciBwb3NpdGlvbmluZyB0aGUgb3ZlcmxheSBmb3IgZGVza3RvcCBkZXZpY2VzOlxuICAgKi9cbiAgcHJpdmF0ZSBfZGVza3RvcFBvc2l0aW9uU3RyYXRlZ3koKTogUG9zaXRpb25TdHJhdGVneSB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2VsZW1lbnQpXG4gICAgICAud2l0aExvY2tlZFBvc2l0aW9uKClcbiAgICAgIC53aXRoVHJhbnNmb3JtT3JpZ2luT24oJy5ncmFuaXRlLWNvbnRhY3RzJylcbiAgICAgIC53aXRoUHVzaChmYWxzZSk7XG5cbiAgICB0aGlzLl9zZXRQb3NpdGlvbihwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbnMgb24gYSBwb3NpdGlvbiBzdHJhdGVneVxuICAgKiBzbyB0aGUgb3ZlcmxheSBjb25uZWN0cyB3aXRoIHRoZSB0cmlnZ2VyIGNvcnJlY3RseS5cbiAgICogQHBhcmFtIHBvc2l0aW9uU3RyYXRlZ3kgU3RyYXRlZ3kgd2hvc2UgcG9zaXRpb24gdG8gdXBkYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0UG9zaXRpb24ocG9zaXRpb25TdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgY29uc3QgW29yaWdpblgsIG9yaWdpbkZhbGxiYWNrWF06IEhvcml6b250YWxDb25uZWN0aW9uUG9zW10gPVxuICAgICAgdGhpcy5jb250YWN0cy54UG9zaXRpb24gPT09ICdiZWZvcmUnXG4gICAgICAgID8gWydlbmQnLCAnc3RhcnQnXVxuICAgICAgICA6IFsnc3RhcnQnLCAnZW5kJ107XG5cbiAgICBjb25zdCBbb3ZlcmxheVksIG92ZXJsYXlGYWxsYmFja1ldOiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3NbXSA9XG4gICAgICB0aGlzLmNvbnRhY3RzLnlQb3NpdGlvbiA9PT0gJ2Fib3ZlJ1xuICAgICAgICA/IFsnYm90dG9tJywgJ3RvcCddXG4gICAgICAgIDogWyd0b3AnLCAnYm90dG9tJ107XG5cbiAgICBsZXQgW29yaWdpblksIG9yaWdpbkZhbGxiYWNrWV0gPSBbb3ZlcmxheVksIG92ZXJsYXlGYWxsYmFja1ldO1xuICAgIGNvbnN0IFtvdmVybGF5WCwgb3ZlcmxheUZhbGxiYWNrWF0gPSBbb3JpZ2luWCwgb3JpZ2luRmFsbGJhY2tYXTtcbiAgICBjb25zdCBvZmZzZXRZID0gMDtcblxuICAgIG9yaWdpblkgPSBvdmVybGF5WSA9PT0gJ3RvcCcgPyAnYm90dG9tJyA6ICd0b3AnO1xuICAgIG9yaWdpbkZhbGxiYWNrWSA9IG92ZXJsYXlGYWxsYmFja1kgPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcblxuICAgIHBvc2l0aW9uU3RyYXRlZ3kud2l0aFBvc2l0aW9ucyhbXG4gICAgICB7IG9yaWdpblgsIG9yaWdpblksIG92ZXJsYXlYLCBvdmVybGF5WSwgb2Zmc2V0WSB9LFxuICAgICAge1xuICAgICAgICBvcmlnaW5YOiBvcmlnaW5GYWxsYmFja1gsXG4gICAgICAgIG9yaWdpblksXG4gICAgICAgIG92ZXJsYXlYOiBvdmVybGF5RmFsbGJhY2tYLFxuICAgICAgICBvdmVybGF5WSxcbiAgICAgICAgb2Zmc2V0WSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9yaWdpblgsXG4gICAgICAgIG9yaWdpblk6IG9yaWdpbkZhbGxiYWNrWSxcbiAgICAgICAgb3ZlcmxheVgsXG4gICAgICAgIG92ZXJsYXlZOiBvdmVybGF5RmFsbGJhY2tZLFxuICAgICAgICBvZmZzZXRZOiAtb2Zmc2V0WSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6IG9yaWdpbkZhbGxiYWNrWCxcbiAgICAgICAgb3JpZ2luWTogb3JpZ2luRmFsbGJhY2tZLFxuICAgICAgICBvdmVybGF5WDogb3ZlcmxheUZhbGxiYWNrWCxcbiAgICAgICAgb3ZlcmxheVk6IG92ZXJsYXlGYWxsYmFja1ksXG4gICAgICAgIG9mZnNldFk6IC1vZmZzZXRZLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHN0cmF0ZWd5IGZvciBwb3NpdGlvbmluZyB0aGUgb3ZlcmxheSBkZXBlbmRpbmcgb24gd2hhdCB0eXBlIG9mXG4gICAqIGRldmljZSB0aGUgY29udGFjdHMgaXMgYmVpbmcgc2hvd24gb25cbiAgICovXG4gIHByaXZhdGUgX3Bvc2l0aW9uU3RyYXRlZ3koKTogUG9zaXRpb25TdHJhdGVneSB7XG4gICAgaWYgKHRoaXMuX2NsaWVudE91dHB1dD8uZGV2aWNlICE9PSAndG91Y2gnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGVza3RvcFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3RvdWNoUG9zaXRpb25TdHJhdGVneSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgc3RyYXRlZ3kgZm9yIHBvc2l0aW9uaW5nIHRoZSBvdmVybGF5IGZvciB0b3VjaCBkZXZpY2VzOlxuICAgKiBQbGFjZSBjZW50ZXJlZCBpbiB0aGUgc2NyZWVuLlxuICAgKi9cbiAgcHJpdmF0ZSBfdG91Y2hQb3NpdGlvblN0cmF0ZWd5KCk6IFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMuY29tcG9uZW50LnByaXZhdGUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvbnRhY3RzL2NvbnRhY3RzLXR5cGVzL2NvbnRhY3RzLmNvbXBvbmVudC5wcml2YXRlLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGFjdCB9IGZyb20gJy4vY29udGFjdHMuY29tcG9uZW50LnB1YmxpYy10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdEV4dGVuZGVkIGV4dGVuZHMgQ29udGFjdCB7XG4gIHN0YXR1c1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export const CONTACT_DEFAULT_STATUS = {
2
+ AVAILABLE: 'Available',
3
+ AWAY: 'Away',
4
+ BE_RIGHT_BACK: 'BeRightBack',
5
+ BUSY: 'Busy',
6
+ DO_NOT_DISTURB: 'DoNotDisturb',
7
+ OFFLINE: 'Offline',
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMuY29tcG9uZW50LnB1YmxpYy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3NyYy9saWIvY29udGFjdHMvY29udGFjdHMtdHlwZXMvY29udGFjdHMuY29tcG9uZW50LnB1YmxpYy10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNwQyxTQUFTLEVBQUUsV0FBVztJQUN0QixJQUFJLEVBQUUsTUFBTTtJQUNaLGFBQWEsRUFBRSxhQUFhO0lBQzVCLElBQUksRUFBRSxNQUFNO0lBQ1osY0FBYyxFQUFFLGNBQWM7SUFDOUIsT0FBTyxFQUFFLFNBQVM7Q0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29udGFjdERlZmF1bHRTdGF0dXNlcyA9XG4gICh0eXBlb2YgQ09OVEFDVF9ERUZBVUxUX1NUQVRVUylba2V5b2YgdHlwZW9mIENPTlRBQ1RfREVGQVVMVF9TVEFUVVNdO1xuXG5leHBvcnQgY29uc3QgQ09OVEFDVF9ERUZBVUxUX1NUQVRVUyA9IHtcbiAgQVZBSUxBQkxFOiAnQXZhaWxhYmxlJyxcbiAgQVdBWTogJ0F3YXknLFxuICBCRV9SSUdIVF9CQUNLOiAnQmVSaWdodEJhY2snLFxuICBCVVNZOiAnQnVzeScsXG4gIERPX05PVF9ESVNUVVJCOiAnRG9Ob3REaXN0dXJiJyxcbiAgT0ZGTElORTogJ09mZmxpbmUnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBpY29uTmFtZT86IHN0cmluZztcbiAgc3RhdHVzPzogQ29udGFjdERlZmF1bHRTdGF0dXNlcyB8IHN0cmluZztcbiAgb3B0aW9ucz86IENvbnRhY3RPcHRpb25zW107XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ29udGFjdE9wdGlvbnMgPSBPbWl0PENvbnRhY3QsICdvcHRpb25zJz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHN1cm5hbWU/OiBzdHJpbmc7XG4gIGpvYlRpdGxlPzogc3RyaW5nO1xuICBhdmF0YXI/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,69 @@
1
+ import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ContentChildren, QueryList, ContentChild, } from '@angular/core';
2
+ import { ContactsTriggerDataComponent } from './contacts-trigger/contacts-trigger-data';
3
+ import { GraniteCustomStatusDirective } from './custom-status.directive';
4
+ import { GraniteCustomProfileDirective } from './custom-profile.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "./contacts-profile/contacts-profile.component";
8
+ import * as i3 from "./contact-item/contact-item.component";
9
+ export class GraniteContactsComponent extends ContactsTriggerDataComponent {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.contacts = [];
13
+ this.defaultShow = false;
14
+ this.selectedContact = new EventEmitter();
15
+ this._contactsExtended = [];
16
+ }
17
+ ngOnChanges(changes) {
18
+ if (changes.contacts && !changes.contacts.currentValue) {
19
+ this.contacts = [];
20
+ }
21
+ }
22
+ ngAfterContentChecked() {
23
+ this._contactsExtended = this.setProperCustomStatusTemplates(this._customStatuses.toArray(), this.contacts);
24
+ }
25
+ onSelectedContact(contact) {
26
+ this.selectedContact.emit(contact);
27
+ }
28
+ setProperCustomStatusTemplates(customStatusDirectives, contacts) {
29
+ return this.applyTemplates(contacts, customStatusDirectives);
30
+ }
31
+ applyTemplates(contacts, directives) {
32
+ return contacts.map((item) => {
33
+ const matchingDirective = directives.find((d) => d.graniteCustomStatus === item.status);
34
+ const result = { ...item };
35
+ if (matchingDirective) {
36
+ result.statusTemplate = matchingDirective.templateRef;
37
+ }
38
+ if (item.options) {
39
+ result.options = this.applyTemplates(item.options, directives);
40
+ }
41
+ return result;
42
+ });
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: GraniteContactsComponent, selector: "granite-contacts", inputs: { contacts: "contacts", profile: "profile", profileClass: "profileClass", defaultShow: "defaultShow" }, outputs: { selectedContact: "selectedContact" }, host: { classAttribute: "granite-contacts" }, queries: [{ propertyName: "customProfileDirective", first: true, predicate: GraniteCustomProfileDirective, descendants: true }, { propertyName: "_customStatuses", predicate: GraniteCustomStatusDirective }], exportAs: ["graniteContacts"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #contactsTemplate>\n <div data-fnd=\"contacts\" class=\"granite-contact\">\n <ng-container *ngIf=\"customProfileDirective; else defaultProfile\">\n <ng-container\n *ngTemplateOutlet=\"customProfileDirective.templateRef\"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultProfile>\n <granite-contacts-profile\n data-fnd=\"default-profile\"\n [profileClass]=\"profileClass\"\n [profile]=\"profile\"\n ></granite-contacts-profile>\n </ng-template>\n\n <ul class=\"contact-list\">\n <li *ngFor=\"let contact of _contactsExtended\">\n <granite-contact-item\n [contact]=\"contact\"\n (selectedContact)=\"onSelectedContact($event)\"\n ></granite-contact-item>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"defaultShow\">\n <ng-container *ngTemplateOutlet=\"contactsTemplate\"></ng-container>\n</ng-container>\n", styles: [".granite-contact{display:inline-block;font-size:var(--granite-font-size-body);font-family:var(--granite-font-family-default);color:var(--granite-color-text-weak);min-width:10rem;max-width:20rem;padding:var(--granite-spacing-16);box-shadow:var(--granite-shadow-popover);background:var(--granite-color-background-variant)}.granite-contact .contact-list{display:flex;flex-direction:column;align-items:flex-start;gap:var(--granite-spacing-8);list-style-type:none;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GraniteContactsProfileComponent, selector: "granite-contacts-profile", inputs: ["profile", "profileClass"] }, { kind: "component", type: i3.GraniteContactItemComponent, selector: "granite-contact-item", inputs: ["contact"], outputs: ["selectedContact"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'granite-contacts', exportAs: 'graniteContacts', host: {
50
+ class: 'granite-contacts',
51
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #contactsTemplate>\n <div data-fnd=\"contacts\" class=\"granite-contact\">\n <ng-container *ngIf=\"customProfileDirective; else defaultProfile\">\n <ng-container\n *ngTemplateOutlet=\"customProfileDirective.templateRef\"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultProfile>\n <granite-contacts-profile\n data-fnd=\"default-profile\"\n [profileClass]=\"profileClass\"\n [profile]=\"profile\"\n ></granite-contacts-profile>\n </ng-template>\n\n <ul class=\"contact-list\">\n <li *ngFor=\"let contact of _contactsExtended\">\n <granite-contact-item\n [contact]=\"contact\"\n (selectedContact)=\"onSelectedContact($event)\"\n ></granite-contact-item>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"defaultShow\">\n <ng-container *ngTemplateOutlet=\"contactsTemplate\"></ng-container>\n</ng-container>\n", styles: [".granite-contact{display:inline-block;font-size:var(--granite-font-size-body);font-family:var(--granite-font-family-default);color:var(--granite-color-text-weak);min-width:10rem;max-width:20rem;padding:var(--granite-spacing-16);box-shadow:var(--granite-shadow-popover);background:var(--granite-color-background-variant)}.granite-contact .contact-list{display:flex;flex-direction:column;align-items:flex-start;gap:var(--granite-spacing-8);list-style-type:none;padding:0;margin:0}\n"] }]
52
+ }], propDecorators: { contacts: [{
53
+ type: Input
54
+ }], profile: [{
55
+ type: Input
56
+ }], profileClass: [{
57
+ type: Input
58
+ }], defaultShow: [{
59
+ type: Input
60
+ }], selectedContact: [{
61
+ type: Output
62
+ }], _customStatuses: [{
63
+ type: ContentChildren,
64
+ args: [GraniteCustomStatusDirective]
65
+ }], customProfileDirective: [{
66
+ type: ContentChild,
67
+ args: [GraniteCustomProfileDirective]
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb250YWN0cy9jb250YWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvbnRhY3RzL2NvbnRhY3RzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQVczRSxNQUFNLE9BQU8sd0JBQ1gsU0FBUSw0QkFBNEI7SUFYdEM7O1FBY1csYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUd6QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVWLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBRWxELENBQUM7UUFRSixzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO0tBZ0QzQztJQTlDQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUMxRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxFQUM5QixJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBaUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLDhCQUE4QixDQUNwQyxzQkFBc0QsRUFDdEQsUUFBbUI7UUFFbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxjQUFjLENBQ3BCLFFBQXVDLEVBQ3ZDLFVBQTBDO1FBRTFDLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzNCLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FDdkMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUM3QyxDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1lBRTNCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7WUFDeEQsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqQixNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNqRSxDQUFDO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWxFVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyVEFnQnJCLDZCQUE2QixxRUFIMUIsNEJBQTRCLHdHQzdDL0MsaThCQThCQTs7MkZERWEsd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQixpQkFBaUIsUUFDckI7d0JBQ0osS0FBSyxFQUFFLGtCQUFrQjtxQkFDMUIsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07OEJBTXRDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFYSxlQUFlO3NCQUFqQyxNQUFNO2dCQUtQLGVBQWU7c0JBRGQsZUFBZTt1QkFBQyw0QkFBNEI7Z0JBSTdDLHNCQUFzQjtzQkFEckIsWUFBWTt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgUXVlcnlMaXN0LFxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDb250ZW50Q2hpbGQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250YWN0LFxuICBDb250YWN0T3B0aW9ucyxcbiAgUHJvZmlsZSxcbn0gZnJvbSAnLi9jb250YWN0cy10eXBlcy9jb250YWN0cy5jb21wb25lbnQucHVibGljLXR5cGVzJztcbmltcG9ydCB7IENvbnRhY3RzVHJpZ2dlckRhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3RzLXRyaWdnZXIvY29udGFjdHMtdHJpZ2dlci1kYXRhJztcbmltcG9ydCB7IEdyYW5pdGVDdXN0b21TdGF0dXNEaXJlY3RpdmUgfSBmcm9tICcuL2N1c3RvbS1zdGF0dXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRhY3RFeHRlbmRlZCB9IGZyb20gJy4vY29udGFjdHMtdHlwZXMvY29udGFjdHMuY29tcG9uZW50LnByaXZhdGUtdHlwZXMnO1xuaW1wb3J0IHsgR3Jhbml0ZUN1c3RvbVByb2ZpbGVEaXJlY3RpdmUgfSBmcm9tICcuL2N1c3RvbS1wcm9maWxlLmRpcmVjdGl2ZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmFuaXRlLWNvbnRhY3RzJyxcbiAgZXhwb3J0QXM6ICdncmFuaXRlQ29udGFjdHMnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdncmFuaXRlLWNvbnRhY3RzJyxcbiAgfSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3RzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGFjdHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEdyYW5pdGVDb250YWN0c0NvbXBvbmVudFxuICBleHRlbmRzIENvbnRhY3RzVHJpZ2dlckRhdGFDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudENoZWNrZWRcbntcbiAgQElucHV0KCkgY29udGFjdHM6IENvbnRhY3RbXSA9IFtdO1xuICBASW5wdXQoKSBwcm9maWxlOiBQcm9maWxlIHwgdW5rbm93bjtcbiAgQElucHV0KCkgcHJvZmlsZUNsYXNzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlZmF1bHRTaG93ID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkQ29udGFjdCA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQ29udGFjdCB8IENvbnRhY3RPcHRpb25zXG4gID4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKEdyYW5pdGVDdXN0b21TdGF0dXNEaXJlY3RpdmUpXG4gIF9jdXN0b21TdGF0dXNlczogUXVlcnlMaXN0PEdyYW5pdGVDdXN0b21TdGF0dXNEaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGQoR3Jhbml0ZUN1c3RvbVByb2ZpbGVEaXJlY3RpdmUpXG4gIGN1c3RvbVByb2ZpbGVEaXJlY3RpdmU6IEdyYW5pdGVDdXN0b21Qcm9maWxlRGlyZWN0aXZlO1xuXG4gIF9jb250YWN0c0V4dGVuZGVkOiBDb250YWN0RXh0ZW5kZWRbXSA9IFtdO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jb250YWN0cyAmJiAhY2hhbmdlcy5jb250YWN0cy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY29udGFjdHMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udGFjdHNFeHRlbmRlZCA9IHRoaXMuc2V0UHJvcGVyQ3VzdG9tU3RhdHVzVGVtcGxhdGVzKFxuICAgICAgdGhpcy5fY3VzdG9tU3RhdHVzZXMudG9BcnJheSgpLFxuICAgICAgdGhpcy5jb250YWN0c1xuICAgICk7XG4gIH1cblxuICBvblNlbGVjdGVkQ29udGFjdChjb250YWN0OiBDb250YWN0IHwgQ29udGFjdE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ29udGFjdC5lbWl0KGNvbnRhY3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcm9wZXJDdXN0b21TdGF0dXNUZW1wbGF0ZXMoXG4gICAgY3VzdG9tU3RhdHVzRGlyZWN0aXZlczogR3Jhbml0ZUN1c3RvbVN0YXR1c0RpcmVjdGl2ZVtdLFxuICAgIGNvbnRhY3RzOiBDb250YWN0W11cbiAgKTogQ29udGFjdEV4dGVuZGVkW10ge1xuICAgIHJldHVybiB0aGlzLmFwcGx5VGVtcGxhdGVzKGNvbnRhY3RzLCBjdXN0b21TdGF0dXNEaXJlY3RpdmVzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUZW1wbGF0ZXMoXG4gICAgY29udGFjdHM6IENvbnRhY3RbXSB8IENvbnRhY3RFeHRlbmRlZFtdLFxuICAgIGRpcmVjdGl2ZXM6IEdyYW5pdGVDdXN0b21TdGF0dXNEaXJlY3RpdmVbXVxuICApOiBDb250YWN0RXh0ZW5kZWRbXSB7XG4gICAgcmV0dXJuIGNvbnRhY3RzLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hpbmdEaXJlY3RpdmUgPSBkaXJlY3RpdmVzLmZpbmQoXG4gICAgICAgIChkKSA9PiBkLmdyYW5pdGVDdXN0b21TdGF0dXMgPT09IGl0ZW0uc3RhdHVzXG4gICAgICApO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSB7IC4uLml0ZW0gfTtcblxuICAgICAgaWYgKG1hdGNoaW5nRGlyZWN0aXZlKSB7XG4gICAgICAgIHJlc3VsdC5zdGF0dXNUZW1wbGF0ZSA9IG1hdGNoaW5nRGlyZWN0aXZlLnRlbXBsYXRlUmVmO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbS5vcHRpb25zKSB7XG4gICAgICAgIHJlc3VsdC5vcHRpb25zID0gdGhpcy5hcHBseVRlbXBsYXRlcyhpdGVtLm9wdGlvbnMsIGRpcmVjdGl2ZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2NvbnRhY3RzVGVtcGxhdGU+XG4gIDxkaXYgZGF0YS1mbmQ9XCJjb250YWN0c1wiIGNsYXNzPVwiZ3Jhbml0ZS1jb250YWN0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbVByb2ZpbGVEaXJlY3RpdmU7IGVsc2UgZGVmYXVsdFByb2ZpbGVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Qcm9maWxlRGlyZWN0aXZlLnRlbXBsYXRlUmVmXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFByb2ZpbGU+XG4gICAgICA8Z3Jhbml0ZS1jb250YWN0cy1wcm9maWxlXG4gICAgICAgIGRhdGEtZm5kPVwiZGVmYXVsdC1wcm9maWxlXCJcbiAgICAgICAgW3Byb2ZpbGVDbGFzc109XCJwcm9maWxlQ2xhc3NcIlxuICAgICAgICBbcHJvZmlsZV09XCJwcm9maWxlXCJcbiAgICAgID48L2dyYW5pdGUtY29udGFjdHMtcHJvZmlsZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPHVsIGNsYXNzPVwiY29udGFjdC1saXN0XCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGNvbnRhY3Qgb2YgX2NvbnRhY3RzRXh0ZW5kZWRcIj5cbiAgICAgICAgPGdyYW5pdGUtY29udGFjdC1pdGVtXG4gICAgICAgICAgW2NvbnRhY3RdPVwiY29udGFjdFwiXG4gICAgICAgICAgKHNlbGVjdGVkQ29udGFjdCk9XCJvblNlbGVjdGVkQ29udGFjdCgkZXZlbnQpXCJcbiAgICAgICAgPjwvZ3Jhbml0ZS1jb250YWN0LWl0ZW0+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlZmF1bHRTaG93XCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250YWN0c1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { GraniteContactsComponent as GraniteContactsComponent } from './contacts.component';
4
+ import { GraniteIconModule } from '../icon/icon.module';
5
+ import { GraniteContactItemComponent } from './contact-item/contact-item.component';
6
+ import { ContactItemDefaultStatusComponent } from './contact-item-default-status/contact-item-default-status.component';
7
+ import { GraniteContactItemTitleComponent } from './contact-item-title/contact-item-title.component';
8
+ import { GraniteCustomStatusDirective } from './custom-status.directive';
9
+ import { GraniteContactsTriggerForDirective } from './contacts-trigger/contacts-trigger-for.directive';
10
+ import { GraniteContactsProfileComponent } from './contacts-profile/contacts-profile.component';
11
+ import { GraniteCustomProfileDirective } from './custom-profile.directive';
12
+ import * as i0 from "@angular/core";
13
+ export class GraniteContactsModule {
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsModule, declarations: [GraniteContactsComponent,
16
+ GraniteContactsProfileComponent,
17
+ GraniteContactItemComponent,
18
+ ContactItemDefaultStatusComponent,
19
+ GraniteContactItemTitleComponent,
20
+ GraniteContactsTriggerForDirective,
21
+ GraniteCustomStatusDirective,
22
+ GraniteCustomProfileDirective], imports: [GraniteIconModule, CommonModule], exports: [GraniteContactsComponent,
23
+ GraniteContactsTriggerForDirective,
24
+ GraniteContactItemComponent,
25
+ GraniteCustomStatusDirective,
26
+ GraniteCustomProfileDirective] }); }
27
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsModule, imports: [GraniteIconModule, CommonModule] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteContactsModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ imports: [GraniteIconModule, CommonModule],
33
+ declarations: [
34
+ GraniteContactsComponent,
35
+ GraniteContactsProfileComponent,
36
+ GraniteContactItemComponent,
37
+ ContactItemDefaultStatusComponent,
38
+ GraniteContactItemTitleComponent,
39
+ GraniteContactsTriggerForDirective,
40
+ GraniteCustomStatusDirective,
41
+ GraniteCustomProfileDirective,
42
+ ],
43
+ exports: [
44
+ GraniteContactsComponent,
45
+ GraniteContactsTriggerForDirective,
46
+ GraniteContactItemComponent,
47
+ GraniteCustomStatusDirective,
48
+ GraniteCustomProfileDirective,
49
+ ],
50
+ }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb250YWN0cy9jb250YWN0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixJQUFJLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBc0IzRSxNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixpQkFqQjlCLHdCQUF3QjtZQUN4QiwrQkFBK0I7WUFDL0IsMkJBQTJCO1lBQzNCLGlDQUFpQztZQUNqQyxnQ0FBZ0M7WUFDaEMsa0NBQWtDO1lBQ2xDLDRCQUE0QjtZQUM1Qiw2QkFBNkIsYUFUckIsaUJBQWlCLEVBQUUsWUFBWSxhQVl2Qyx3QkFBd0I7WUFDeEIsa0NBQWtDO1lBQ2xDLDJCQUEyQjtZQUMzQiw0QkFBNEI7WUFDNUIsNkJBQTZCOytHQUdwQixxQkFBcUIsWUFuQnRCLGlCQUFpQixFQUFFLFlBQVk7OzJGQW1COUIscUJBQXFCO2tCQXBCakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUM7b0JBQzFDLFlBQVksRUFBRTt3QkFDWix3QkFBd0I7d0JBQ3hCLCtCQUErQjt3QkFDL0IsMkJBQTJCO3dCQUMzQixpQ0FBaUM7d0JBQ2pDLGdDQUFnQzt3QkFDaEMsa0NBQWtDO3dCQUNsQyw0QkFBNEI7d0JBQzVCLDZCQUE2QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHdCQUF3Qjt3QkFDeEIsa0NBQWtDO3dCQUNsQywyQkFBMkI7d0JBQzNCLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgR3Jhbml0ZUNvbnRhY3RzQ29tcG9uZW50IGFzIEdyYW5pdGVDb250YWN0c0NvbXBvbmVudCB9IGZyb20gJy4vY29udGFjdHMuY29tcG9uZW50JztcbmltcG9ydCB7IEdyYW5pdGVJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBHcmFuaXRlQ29udGFjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3QtaXRlbS9jb250YWN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRhY3RJdGVtRGVmYXVsdFN0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vY29udGFjdC1pdGVtLWRlZmF1bHQtc3RhdHVzL2NvbnRhY3QtaXRlbS1kZWZhdWx0LXN0YXR1cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3Jhbml0ZUNvbnRhY3RJdGVtVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3QtaXRlbS10aXRsZS9jb250YWN0LWl0ZW0tdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdyYW5pdGVDdXN0b21TdGF0dXNEaXJlY3RpdmUgfSBmcm9tICcuL2N1c3RvbS1zdGF0dXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyYW5pdGVDb250YWN0c1RyaWdnZXJGb3JEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRhY3RzLXRyaWdnZXIvY29udGFjdHMtdHJpZ2dlci1mb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyYW5pdGVDb250YWN0c1Byb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3RzLXByb2ZpbGUvY29udGFjdHMtcHJvZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3Jhbml0ZUN1c3RvbVByb2ZpbGVEaXJlY3RpdmUgfSBmcm9tICcuL2N1c3RvbS1wcm9maWxlLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtHcmFuaXRlSWNvbk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgR3Jhbml0ZUNvbnRhY3RzQ29tcG9uZW50LFxuICAgIEdyYW5pdGVDb250YWN0c1Byb2ZpbGVDb21wb25lbnQsXG4gICAgR3Jhbml0ZUNvbnRhY3RJdGVtQ29tcG9uZW50LFxuICAgIENvbnRhY3RJdGVtRGVmYXVsdFN0YXR1c0NvbXBvbmVudCxcbiAgICBHcmFuaXRlQ29udGFjdEl0ZW1UaXRsZUNvbXBvbmVudCxcbiAgICBHcmFuaXRlQ29udGFjdHNUcmlnZ2VyRm9yRGlyZWN0aXZlLFxuICAgIEdyYW5pdGVDdXN0b21TdGF0dXNEaXJlY3RpdmUsXG4gICAgR3Jhbml0ZUN1c3RvbVByb2ZpbGVEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBHcmFuaXRlQ29udGFjdHNDb21wb25lbnQsXG4gICAgR3Jhbml0ZUNvbnRhY3RzVHJpZ2dlckZvckRpcmVjdGl2ZSxcbiAgICBHcmFuaXRlQ29udGFjdEl0ZW1Db21wb25lbnQsXG4gICAgR3Jhbml0ZUN1c3RvbVN0YXR1c0RpcmVjdGl2ZSxcbiAgICBHcmFuaXRlQ3VzdG9tUHJvZmlsZURpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZUNvbnRhY3RzTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Directive, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GraniteCustomProfileDirective {
4
+ constructor(templateRef) {
5
+ this.templateRef = templateRef;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteCustomProfileDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: GraniteCustomProfileDirective, selector: "[graniteCustomProfile]", ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteCustomProfileDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[graniteCustomProfile]',
14
+ }]
15
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXByb2ZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb250YWN0cy9jdXN0b20tcHJvZmlsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3ZELE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBbUIsV0FBaUM7UUFBakMsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO0lBQUcsQ0FBQzs4R0FEN0MsNkJBQTZCO2tHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tncmFuaXRlQ3VzdG9tUHJvZmlsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ3VzdG9tUHJvZmlsZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHt9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Directive, Input, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GraniteCustomStatusDirective {
4
+ constructor(templateRef) {
5
+ this.templateRef = templateRef;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteCustomStatusDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: GraniteCustomStatusDirective, selector: "[graniteCustomStatus]", inputs: { graniteCustomStatus: "graniteCustomStatus" }, ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: GraniteCustomStatusDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[graniteCustomStatus]',
14
+ }]
15
+ }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { graniteCustomStatus: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXN0YXR1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvbnRhY3RzL2N1c3RvbS1zdGF0dXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLDRCQUE0QjtJQUl2QyxZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBRyxDQUFDOzhHQUo3Qyw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFIeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2lCQUNsQztnRkFHQyxtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZ3Jhbml0ZUN1c3RvbVN0YXR1c10nLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ3VzdG9tU3RhdHVzRGlyZWN0aXZlIHtcbiAgQElucHV0KClcbiAgZ3Jhbml0ZUN1c3RvbVN0YXR1czogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHt9XG59XG4iXX0=