@fundamental-ngx/core 0.33.4-rc.6 → 0.33.4
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.
- package/README.md +1 -3
- package/action-bar/package.json +3 -3
- package/action-sheet/package.json +3 -3
- package/alert/package.json +3 -3
- package/avatar/avatar.component.d.ts +2 -0
- package/avatar/esm2020/avatar.component.mjs +8 -5
- package/avatar/fesm2015/fundamental-ngx-core-avatar.mjs +7 -4
- package/avatar/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/avatar/fesm2020/fundamental-ngx-core-avatar.mjs +7 -4
- package/avatar/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/avatar/package.json +3 -3
- package/avatar-group/package.json +3 -3
- package/bar/package.json +3 -3
- package/breadcrumb/package.json +3 -3
- package/busy-indicator/package.json +3 -3
- package/button/package.json +3 -3
- package/calendar/package.json +3 -3
- package/card/package.json +3 -3
- package/carousel/package.json +3 -3
- package/checkbox/checkbox/checkbox.component.d.ts +30 -35
- package/checkbox/esm2020/checkbox/checkbox.component.mjs +61 -80
- package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs +59 -77
- package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs +59 -77
- package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/checkbox/package.json +3 -3
- package/combobox/package.json +3 -3
- package/date-picker/package.json +3 -3
- package/datetime/package.json +3 -3
- package/datetime-picker/package.json +3 -3
- package/dialog/package.json +3 -3
- package/dynamic-page/package.json +3 -3
- package/dynamic-side-content/package.json +3 -3
- package/esm2020/avatar/avatar.component.mjs +8 -5
- package/esm2020/checkbox/checkbox/checkbox.component.mjs +61 -80
- package/esm2020/input-group/input-group.component.mjs +2 -2
- package/esm2020/list/list-item/list-item.component.mjs +6 -2
- package/esm2020/multi-input/multi-input.component.mjs +38 -11
- package/esm2020/utils/helpers/range-selector.mjs +113 -0
- package/esm2020/utils/public_api.mjs +2 -1
- package/facets/package.json +3 -3
- package/feed-input/package.json +3 -3
- package/feed-list-item/package.json +3 -3
- package/fesm2015/fundamental-ngx-core-avatar.mjs +7 -4
- package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-checkbox.mjs +59 -77
- package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-input-group.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-list.mjs +5 -1
- package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +40 -11
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs +114 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-avatar.mjs +7 -4
- package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-checkbox.mjs +59 -77
- package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-input-group.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-list.mjs +5 -1
- package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +38 -11
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs +114 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/file-uploader/package.json +3 -3
- package/fixed-card-layout/package.json +3 -3
- package/flexible-column-layout/package.json +3 -3
- package/form/package.json +3 -3
- package/formatted-text/package.json +3 -3
- package/grid-list/package.json +3 -3
- package/icon/package.json +3 -3
- package/illustrated-message/package.json +3 -3
- package/infinite-scroll/package.json +3 -3
- package/info-label/package.json +3 -3
- package/inline-help/package.json +3 -3
- package/input-group/esm2020/input-group.component.mjs +2 -2
- package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs +2 -2
- package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs +2 -2
- package/input-group/package.json +3 -3
- package/layout-grid/package.json +3 -3
- package/layout-panel/package.json +3 -3
- package/link/package.json +3 -3
- package/list/esm2020/list-item/list-item.component.mjs +6 -2
- package/list/fesm2015/fundamental-ngx-core-list.mjs +5 -1
- package/list/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/list/fesm2020/fundamental-ngx-core-list.mjs +5 -1
- package/list/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/list/package.json +3 -3
- package/menu/package.json +3 -3
- package/message-box/package.json +3 -3
- package/message-page/package.json +2 -2
- package/message-strip/package.json +3 -3
- package/message-toast/package.json +3 -3
- package/micro-process-flow/package.json +3 -3
- package/mobile-mode/package.json +3 -3
- package/multi-input/esm2020/multi-input.component.mjs +38 -11
- package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +40 -11
- package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +38 -11
- package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/multi-input/multi-input.component.d.ts +8 -1
- package/multi-input/package.json +3 -3
- package/nested-list/package.json +3 -3
- package/notification/package.json +3 -3
- package/object-identifier/package.json +3 -3
- package/object-marker/package.json +3 -3
- package/object-number/package.json +3 -3
- package/object-status/package.json +3 -3
- package/package.json +7 -7
- package/pagination/package.json +3 -3
- package/panel/package.json +3 -3
- package/popover/package.json +3 -3
- package/product-switch/package.json +3 -3
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +3 -3
- package/radio/package.json +3 -3
- package/rating-indicator/package.json +3 -3
- package/resizable-card-layout/package.json +3 -3
- package/scroll-spy/package.json +3 -3
- package/scrollbar/package.json +3 -3
- package/segmented-button/package.json +3 -3
- package/select/package.json +3 -3
- package/shared/package.json +3 -3
- package/shellbar/package.json +3 -3
- package/side-navigation/package.json +3 -3
- package/slider/package.json +3 -3
- package/split-button/package.json +3 -3
- package/splitter/package.json +3 -3
- package/status-indicator/package.json +3 -3
- package/step-input/package.json +3 -3
- package/switch/package.json +3 -3
- package/table/package.json +3 -3
- package/tabs/package.json +3 -3
- package/tests/package.json +2 -2
- package/text/package.json +3 -3
- package/tile/package.json +3 -3
- package/time/package.json +3 -3
- package/time-picker/package.json +3 -3
- package/timeline/package.json +3 -3
- package/title/package.json +3 -3
- package/token/package.json +3 -3
- package/toolbar/package.json +3 -3
- package/tree/package.json +3 -3
- package/upload-collection/package.json +3 -3
- package/utils/esm2020/helpers/range-selector.mjs +113 -0
- package/utils/esm2020/public_api.mjs +2 -1
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs +114 -1
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs +114 -1
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/helpers/range-selector.d.ts +84 -0
- package/utils/package.json +6 -6
- package/utils/public_api.d.ts +1 -0
- package/vertical-navigation/package.json +3 -3
- package/wizard/package.json +3 -3
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility type, that allows to track and select ranges of elements while using multi-selection.
|
|
3
|
+
*
|
|
4
|
+
* @usage
|
|
5
|
+
* Imagine we have a simple list of checkboxes:
|
|
6
|
+
* ```html
|
|
7
|
+
* <input
|
|
8
|
+
* #checkboxInput
|
|
9
|
+
* *ngFor="let o of options; let idx = index"
|
|
10
|
+
* type="checkbox"
|
|
11
|
+
* [checked]="selectionModel.checked(o)"
|
|
12
|
+
* (click)="toggle(idx, $event)"
|
|
13
|
+
* >
|
|
14
|
+
* ```
|
|
15
|
+
* With the given layout the logic should be as follows:
|
|
16
|
+
* ```typescript
|
|
17
|
+
* export class YourComponent {
|
|
18
|
+
* options = ['a', 'b', 'c'];
|
|
19
|
+
* readonly selectionModel = new SelectionModel(true);
|
|
20
|
+
*
|
|
21
|
+
* private readonly _rangeSelector = new RangeSelector();
|
|
22
|
+
*
|
|
23
|
+
*
|
|
24
|
+
* toggle(idx: number, event: PointerEvent): void {
|
|
25
|
+
* // getting the toggled value of the checkbox
|
|
26
|
+
* const toggledSelection = event.target.value;
|
|
27
|
+
*
|
|
28
|
+
* // registering the selection of current checkbox
|
|
29
|
+
* this._rangeSelector.onRangeElementToggled(idx, event);
|
|
30
|
+
*
|
|
31
|
+
* // Apply value to each element in range.
|
|
32
|
+
* // If checkbox was toggled without shift pressed or without previously selected one,
|
|
33
|
+
* // this method will select only it.
|
|
34
|
+
* this._rangeSelector.applyValueToEachInRange(idx => {
|
|
35
|
+
* if (toggledSelection) {
|
|
36
|
+
* this.selectionModel.select(options[idx]);
|
|
37
|
+
* } else {
|
|
38
|
+
* this.selectionModel.deselect(options[idx]);
|
|
39
|
+
* }
|
|
40
|
+
* });
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class RangeSelector {
|
|
46
|
+
constructor() {
|
|
47
|
+
/** @hidden */
|
|
48
|
+
this._previousSelectedIndex = null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Last registered selection state (either multiple or single).
|
|
52
|
+
* Is updated on each `onRangeElementClicked` invokation. Will be `null` initially or once `reset()` is called.
|
|
53
|
+
*/
|
|
54
|
+
get lastRangeSelectionState() {
|
|
55
|
+
return this._state ? { ...this._state } : null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The method that should be used to register each checkbox toggle.
|
|
59
|
+
* Accepts two arguments: `index` and `event`. If none provided, will reset existing state.
|
|
60
|
+
* Otherwise will register current index as last checked.
|
|
61
|
+
*
|
|
62
|
+
* If toggling was done with "shift" pressed and there's a previously registered index, will register a range selection.
|
|
63
|
+
* At the same time if checkbox was toggled without shift pressed or without previously selected one, this method will select only it.
|
|
64
|
+
*
|
|
65
|
+
* After calling this method it's recommended to use `applyValueToEachInRange` to actually toggle each checkbox in range.
|
|
66
|
+
*
|
|
67
|
+
* See usage example on this class itself.
|
|
68
|
+
*/
|
|
69
|
+
onRangeElementToggled(index, event) {
|
|
70
|
+
if (this._isNonNegativeInteger(this._previousSelectedIndex) &&
|
|
71
|
+
this._isNonNegativeInteger(index) &&
|
|
72
|
+
event?.shiftKey) {
|
|
73
|
+
this._state = {
|
|
74
|
+
isRangeSelection: true,
|
|
75
|
+
from: Math.min(this._previousSelectedIndex, index),
|
|
76
|
+
to: Math.max(this._previousSelectedIndex, index)
|
|
77
|
+
};
|
|
78
|
+
this._previousSelectedIndex = index;
|
|
79
|
+
}
|
|
80
|
+
else if (this._isNonNegativeInteger(index)) {
|
|
81
|
+
this._state = { isRangeSelection: false, from: index, to: index };
|
|
82
|
+
this._previousSelectedIndex = index;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.reset();
|
|
86
|
+
}
|
|
87
|
+
return this.lastRangeSelectionState;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Allows to apply selection to each item in selection range.
|
|
91
|
+
* Accepts a function to apply selection to each item by registered index.
|
|
92
|
+
*
|
|
93
|
+
* See usage example on this class itself.
|
|
94
|
+
*/
|
|
95
|
+
applyValueToEachInRange(selectionMethod) {
|
|
96
|
+
const state = this.lastRangeSelectionState;
|
|
97
|
+
if (this._isNonNegativeInteger(state?.from) && this._isNonNegativeInteger(state.to)) {
|
|
98
|
+
for (let index = state.from; index <= state.to; index++) {
|
|
99
|
+
selectionMethod(index);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Resets selection state. Useful when the list of selectable items is changed (e.g. by filtering, sorting, page change) */
|
|
104
|
+
reset() {
|
|
105
|
+
this._state = null;
|
|
106
|
+
this._previousSelectedIndex = null;
|
|
107
|
+
}
|
|
108
|
+
/** @hidden */
|
|
109
|
+
_isNonNegativeInteger(num) {
|
|
110
|
+
return Number.isInteger(num) && num >= 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9oZWxwZXJzL3JhbmdlLXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFDSSxjQUFjO1FBQ04sMkJBQXNCLEdBQWtCLElBQUksQ0FBQztJQXdFekQsQ0FBQztJQXBFRzs7O09BR0c7SUFDSCxJQUFJLHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxxQkFBcUIsQ0FBQyxLQUFjLEVBQUUsS0FBK0M7UUFDakYsSUFDSSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQ3ZELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDakMsS0FBSyxFQUFFLFFBQVEsRUFDakI7WUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHO2dCQUNWLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUM7Z0JBQ2xELEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUM7YUFDbkQsQ0FBQztZQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7U0FDdkM7YUFBTSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7U0FDdkM7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoQjtRQUVELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHVCQUF1QixDQUFDLGVBQXdDO1FBQzVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNqRixLQUFLLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JELGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtTQUNKO0lBQ0wsQ0FBQztJQUVELDRIQUE0SDtJQUM1SCxLQUFLO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYztJQUNOLHFCQUFxQixDQUFDLEdBQVc7UUFDckMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVdGlsaXR5IHR5cGUsIHRoYXQgYWxsb3dzIHRvIHRyYWNrIGFuZCBzZWxlY3QgcmFuZ2VzIG9mIGVsZW1lbnRzIHdoaWxlIHVzaW5nIG11bHRpLXNlbGVjdGlvbi5cbiAqXG4gKiBAdXNhZ2VcbiAqIEltYWdpbmUgd2UgaGF2ZSBhIHNpbXBsZSBsaXN0IG9mIGNoZWNrYm94ZXM6XG4gKiBgYGBodG1sXG4gKiA8aW5wdXRcbiAqICAjY2hlY2tib3hJbnB1dFxuICogICpuZ0Zvcj1cImxldCBvIG9mIG9wdGlvbnM7IGxldCBpZHggPSBpbmRleFwiXG4gKiAgdHlwZT1cImNoZWNrYm94XCJcbiAqICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Nb2RlbC5jaGVja2VkKG8pXCJcbiAqICAoY2xpY2spPVwidG9nZ2xlKGlkeCwgJGV2ZW50KVwiXG4gKiAgPlxuICogYGBgXG4gKiBXaXRoIHRoZSBnaXZlbiBsYXlvdXQgdGhlIGxvZ2ljIHNob3VsZCBiZSBhcyBmb2xsb3dzOlxuICogYGBgdHlwZXNjcmlwdFxuICogZXhwb3J0IGNsYXNzIFlvdXJDb21wb25lbnQge1xuICogIG9wdGlvbnMgPSBbJ2EnLCAnYicsICdjJ107XG4gKiAgcmVhZG9ubHkgc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWwodHJ1ZSk7XG4gKlxuICogIHByaXZhdGUgcmVhZG9ubHkgX3JhbmdlU2VsZWN0b3IgPSBuZXcgUmFuZ2VTZWxlY3RvcigpO1xuICpcbiAqXG4gKiAgdG9nZ2xlKGlkeDogbnVtYmVyLCBldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gKiAgICAgIC8vIGdldHRpbmcgdGhlIHRvZ2dsZWQgdmFsdWUgb2YgdGhlIGNoZWNrYm94XG4gKiAgICAgIGNvbnN0IHRvZ2dsZWRTZWxlY3Rpb24gPSBldmVudC50YXJnZXQudmFsdWU7XG4gKlxuICogICAgICAvLyByZWdpc3RlcmluZyB0aGUgc2VsZWN0aW9uIG9mIGN1cnJlbnQgY2hlY2tib3hcbiAqICAgICAgdGhpcy5fcmFuZ2VTZWxlY3Rvci5vblJhbmdlRWxlbWVudFRvZ2dsZWQoaWR4LCBldmVudCk7XG4gKlxuICogICAgICAvLyBBcHBseSB2YWx1ZSB0byBlYWNoIGVsZW1lbnQgaW4gcmFuZ2UuXG4gKiAgICAgIC8vIElmIGNoZWNrYm94IHdhcyB0b2dnbGVkIHdpdGhvdXQgc2hpZnQgcHJlc3NlZCBvciB3aXRob3V0IHByZXZpb3VzbHkgc2VsZWN0ZWQgb25lLFxuICogICAgICAvLyB0aGlzIG1ldGhvZCB3aWxsIHNlbGVjdCBvbmx5IGl0LlxuICogICAgICB0aGlzLl9yYW5nZVNlbGVjdG9yLmFwcGx5VmFsdWVUb0VhY2hJblJhbmdlKGlkeCA9PiB7XG4gKiAgICAgICAgICBpZiAodG9nZ2xlZFNlbGVjdGlvbikge1xuICogICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KG9wdGlvbnNbaWR4XSk7XG4gKiAgICAgICAgICB9IGVsc2Uge1xuICogICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3Qob3B0aW9uc1tpZHhdKTtcbiAqICAgICAgICAgIH1cbiAqICAgICAgfSk7XG4gKiAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSYW5nZVNlbGVjdG9yIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ByZXZpb3VzU2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdGF0ZTogUmFuZ2VTZWxlY3Rpb25TdGF0ZSB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYXN0IHJlZ2lzdGVyZWQgc2VsZWN0aW9uIHN0YXRlIChlaXRoZXIgbXVsdGlwbGUgb3Igc2luZ2xlKS5cbiAgICAgKiBJcyB1cGRhdGVkIG9uIGVhY2ggYG9uUmFuZ2VFbGVtZW50Q2xpY2tlZGAgaW52b2thdGlvbi4gV2lsbCBiZSBgbnVsbGAgaW5pdGlhbGx5IG9yIG9uY2UgYHJlc2V0KClgIGlzIGNhbGxlZC5cbiAgICAgKi9cbiAgICBnZXQgbGFzdFJhbmdlU2VsZWN0aW9uU3RhdGUoKTogUmFuZ2VTZWxlY3Rpb25TdGF0ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGUgPyB7IC4uLnRoaXMuX3N0YXRlIH0gOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRob2QgdGhhdCBzaG91bGQgYmUgdXNlZCB0byByZWdpc3RlciBlYWNoIGNoZWNrYm94IHRvZ2dsZS5cbiAgICAgKiBBY2NlcHRzIHR3byBhcmd1bWVudHM6IGBpbmRleGAgYW5kIGBldmVudGAuIElmIG5vbmUgcHJvdmlkZWQsIHdpbGwgcmVzZXQgZXhpc3Rpbmcgc3RhdGUuXG4gICAgICogT3RoZXJ3aXNlIHdpbGwgcmVnaXN0ZXIgY3VycmVudCBpbmRleCBhcyBsYXN0IGNoZWNrZWQuXG4gICAgICpcbiAgICAgKiBJZiB0b2dnbGluZyB3YXMgZG9uZSB3aXRoIFwic2hpZnRcIiBwcmVzc2VkIGFuZCB0aGVyZSdzIGEgcHJldmlvdXNseSByZWdpc3RlcmVkIGluZGV4LCB3aWxsIHJlZ2lzdGVyIGEgcmFuZ2Ugc2VsZWN0aW9uLlxuICAgICAqIEF0IHRoZSBzYW1lIHRpbWUgaWYgY2hlY2tib3ggd2FzIHRvZ2dsZWQgd2l0aG91dCBzaGlmdCBwcmVzc2VkIG9yIHdpdGhvdXQgcHJldmlvdXNseSBzZWxlY3RlZCBvbmUsIHRoaXMgbWV0aG9kIHdpbGwgc2VsZWN0IG9ubHkgaXQuXG4gICAgICpcbiAgICAgKiBBZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIGl0J3MgcmVjb21tZW5kZWQgdG8gdXNlIGBhcHBseVZhbHVlVG9FYWNoSW5SYW5nZWAgdG8gYWN0dWFsbHkgdG9nZ2xlIGVhY2ggY2hlY2tib3ggaW4gcmFuZ2UuXG4gICAgICpcbiAgICAgKiBTZWUgdXNhZ2UgZXhhbXBsZSBvbiB0aGlzIGNsYXNzIGl0c2VsZi5cbiAgICAgKi9cbiAgICBvblJhbmdlRWxlbWVudFRvZ2dsZWQoaW5kZXg/OiBudW1iZXIsIGV2ZW50PzogS2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogUmFuZ2VTZWxlY3Rpb25TdGF0ZSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2lzTm9uTmVnYXRpdmVJbnRlZ2VyKHRoaXMuX3ByZXZpb3VzU2VsZWN0ZWRJbmRleCkgJiZcbiAgICAgICAgICAgIHRoaXMuX2lzTm9uTmVnYXRpdmVJbnRlZ2VyKGluZGV4KSAmJlxuICAgICAgICAgICAgZXZlbnQ/LnNoaWZ0S2V5XG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgaXNSYW5nZVNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmcm9tOiBNYXRoLm1pbih0aGlzLl9wcmV2aW91c1NlbGVjdGVkSW5kZXgsIGluZGV4KSxcbiAgICAgICAgICAgICAgICB0bzogTWF0aC5tYXgodGhpcy5fcHJldmlvdXNTZWxlY3RlZEluZGV4LCBpbmRleClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c1NlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pc05vbk5lZ2F0aXZlSW50ZWdlcihpbmRleCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlID0geyBpc1JhbmdlU2VsZWN0aW9uOiBmYWxzZSwgZnJvbTogaW5kZXgsIHRvOiBpbmRleCB9O1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNTZWxlY3RlZEluZGV4ID0gaW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5sYXN0UmFuZ2VTZWxlY3Rpb25TdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgdG8gYXBwbHkgc2VsZWN0aW9uIHRvIGVhY2ggaXRlbSBpbiBzZWxlY3Rpb24gcmFuZ2UuXG4gICAgICogQWNjZXB0cyBhIGZ1bmN0aW9uIHRvIGFwcGx5IHNlbGVjdGlvbiB0byBlYWNoIGl0ZW0gYnkgcmVnaXN0ZXJlZCBpbmRleC5cbiAgICAgKlxuICAgICAqIFNlZSB1c2FnZSBleGFtcGxlIG9uIHRoaXMgY2xhc3MgaXRzZWxmLlxuICAgICAqL1xuICAgIGFwcGx5VmFsdWVUb0VhY2hJblJhbmdlKHNlbGVjdGlvbk1ldGhvZDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmxhc3RSYW5nZVNlbGVjdGlvblN0YXRlO1xuXG4gICAgICAgIGlmICh0aGlzLl9pc05vbk5lZ2F0aXZlSW50ZWdlcihzdGF0ZT8uZnJvbSkgJiYgdGhpcy5faXNOb25OZWdhdGl2ZUludGVnZXIoc3RhdGUudG8pKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IHN0YXRlLmZyb207IGluZGV4IDw9IHN0YXRlLnRvOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uTWV0aG9kKGluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBSZXNldHMgc2VsZWN0aW9uIHN0YXRlLiBVc2VmdWwgd2hlbiB0aGUgbGlzdCBvZiBzZWxlY3RhYmxlIGl0ZW1zIGlzIGNoYW5nZWQgKGUuZy4gYnkgZmlsdGVyaW5nLCBzb3J0aW5nLCBwYWdlIGNoYW5nZSkgKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9wcmV2aW91c1NlbGVjdGVkSW5kZXggPSBudWxsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNOb25OZWdhdGl2ZUludGVnZXIobnVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIobnVtKSAmJiBudW0gPj0gMDtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VTZWxlY3Rpb25TdGF0ZSB7XG4gICAgaXNSYW5nZVNlbGVjdGlvbjogYm9vbGVhbjtcbiAgICBmcm9tOiBudW1iZXI7XG4gICAgdG86IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -42,6 +42,7 @@ export * from './dynamic-component/dynamic-component-config';
|
|
|
42
42
|
export * from './dynamic-component/dynamic-component-injector';
|
|
43
43
|
export * from './dynamic-component/dynamic-component.service';
|
|
44
44
|
export * from './dynamic-component/dynamic-component-container';
|
|
45
|
+
export * from './helpers/range-selector';
|
|
45
46
|
export * from './utils.module';
|
|
46
47
|
export * from './datatypes/hash.datatype';
|
|
47
48
|
export * from './datatypes/size.datatype';
|
|
@@ -56,4 +57,4 @@ export * from './abstract-fd-ngx-class';
|
|
|
56
57
|
export * from './list-item/list-item-utils';
|
|
57
58
|
export * from './mixins/apply-mixin';
|
|
58
59
|
export * from './services/focus-trap.service';
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaUVBQWlFLENBQUM7QUFFaEYsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYywrREFBK0QsQ0FBQztBQUU5RSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNEQUFzRCxDQUFDO0FBRXJFLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdGVtcGxhdGUvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL29ubHktZGlnaXRzL29ubHktZGlnaXRzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvb25seS1kaWdpdHMvb25seS1kaWdpdHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUvcmVzaXplLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUvcmVzaXplLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbGluZS1jbGFtcC9saW5lLWNsYW1wLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbGluZS1jbGFtcC9saW5lLWNsYW1wLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0LWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9vdmVyZmxvdy1saXN0L292ZXJmbG93LWxpc3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9vdmVyZmxvdy1saXN0L292ZXJmbG93LWxpc3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90cnVuY2F0ZS90cnVuY2F0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3RydW5jYXRlL3RydW5jYXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZm9jdXMta2V5LW1hbmFnZXIvZm9jdXMta2V5LW1hbmFnZXItaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2ZvY3VzLWtleS1tYW5hZ2VyL2ZvY3VzLWtleS1tYW5hZ2VyLWxpc3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9mb2N1cy1rZXktbWFuYWdlci9mb2N1cy1rZXktbWFuYWdlci1oZWxwZXJzLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvcGlwZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9saXN0LWdyb3VwLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9kaXNwbGF5Rm4ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3R3by1kaWdpdHMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NlYXJjaC1oaWdobGlnaHQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NhZmUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2lzLWNvbXBhY3QucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3ZhbHVlLWJ5LXBhdGgucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWctYW5kLWRyb3AvZG5kLWxpc3QvZG5kLWxpc3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC9kbmQtaXRlbS9kbmQtaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWFuZC1kcm9wL2RuZC1rZXlib2FyZC1ncm91cC9kbmQta2V5Ym9hcmQtZ3JvdXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC9kbmQta2V5Ym9hcmQtaXRlbS9kbmQta2V5Ym9hcmQtaXRlbS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY3NzLWNsYXNzLWJ1aWxkZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9jc3Mtc3R5bGUtYnVpbGRlci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2tleWJvYXJkLXN1cHBvcnQtaXRlbS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYXBwbHktY3NzLWNsYXNzLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYXBwbHktY3NzLXN0eWxlLmRlY29yYXRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtaW5qZWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtY29udGFpbmVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL3JhbmdlLXNlbGVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0eXBlcy9oYXNoLmRhdGF0eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXR5cGVzL3NpemUuZGF0YXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdHlwZXMvY29sb3ItYWNjZW50LmRhdGF0eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29udGVudC1kZW5zaXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ydGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RoZW1lcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMva2V5Ym9hcmQtc3VwcG9ydC9rZXlib2FyZC1zdXBwb3J0LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1mZC1uZ3gtY2xhc3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpc3QtaXRlbS9saXN0LWl0ZW0tdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL21peGlucy9hcHBseS1taXhpbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZm9jdXMtdHJhcC5zZXJ2aWNlJztcbiJdfQ==
|
package/facets/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/core/facets",
|
|
3
|
-
"version": "0.33.4
|
|
3
|
+
"version": "0.33.4",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^13
|
|
6
|
-
"@angular/core": "^13
|
|
5
|
+
"@angular/common": "^13.0.0",
|
|
6
|
+
"@angular/core": "^13.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.0.0"
|
package/feed-input/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/core/feed-input",
|
|
3
|
-
"version": "0.33.4
|
|
3
|
+
"version": "0.33.4",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^13
|
|
6
|
-
"@angular/core": "^13
|
|
5
|
+
"@angular/common": "^13.0.0",
|
|
6
|
+
"@angular/core": "^13.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.0.0"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/core/feed-list-item",
|
|
3
|
-
"version": "0.33.4
|
|
3
|
+
"version": "0.33.4",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^13
|
|
6
|
-
"@angular/core": "^13
|
|
5
|
+
"@angular/common": "^13.0.0",
|
|
6
|
+
"@angular/core": "^13.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.0.0"
|
|
@@ -142,6 +142,10 @@ class AvatarComponent {
|
|
|
142
142
|
if (!label || this._image) {
|
|
143
143
|
return null;
|
|
144
144
|
}
|
|
145
|
+
return this._generateAbbreviation(label);
|
|
146
|
+
}
|
|
147
|
+
/** @hidden Get the abbrevation string */
|
|
148
|
+
_generateAbbreviation(label) {
|
|
145
149
|
const maxLettersCount = 3;
|
|
146
150
|
const firstLetters = label.split(' ').map((word) => word.charAt(0));
|
|
147
151
|
const abbreviate = firstLetters.join('');
|
|
@@ -182,10 +186,9 @@ class AvatarComponent {
|
|
|
182
186
|
for (let i = 0; i < options.length; i++) {
|
|
183
187
|
const option = options[i];
|
|
184
188
|
if (option === ALTER_ICON_OPTIONS.CONTENT) {
|
|
185
|
-
const
|
|
186
|
-
const contentValue = contentEl.innerText.trim()[0];
|
|
189
|
+
const contentValue = this._content.nativeElement.innerText;
|
|
187
190
|
if (contentValue && contentValue !== '') {
|
|
188
|
-
this.abbreviate =
|
|
191
|
+
this.abbreviate = this._generateAbbreviation(contentValue);
|
|
189
192
|
break;
|
|
190
193
|
}
|
|
191
194
|
continue;
|
|
@@ -193,7 +196,7 @@ class AvatarComponent {
|
|
|
193
196
|
if (option === ALTER_ICON_OPTIONS.ALT) {
|
|
194
197
|
const altValue = this.elementRef().nativeElement.getAttribute('alt');
|
|
195
198
|
if (altValue && altValue !== '') {
|
|
196
|
-
this.abbreviate =
|
|
199
|
+
this.abbreviate = this._generateAbbreviation(altValue);
|
|
197
200
|
break;
|
|
198
201
|
}
|
|
199
202
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-avatar.mjs","sources":["../../../../libs/core/src/lib/avatar/avatar.component.ts","../../../../libs/core/src/lib/avatar/avatar.component.html","../../../../libs/core/src/lib/avatar/avatar.module.ts","../../../../libs/core/src/lib/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n Size,\n applyCssClass,\n getRandomColorAccent,\n CssClassBuilder\n} from '@fundamental-ngx/core/utils';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\n@Component({\n // TODO to be discussed\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AvatarComponent implements OnChanges, OnInit, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /** Id of the Avatar. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-avatar-${avatarUniqueId++}`;\n\n /** Aria-label for Avatar. */\n @Input()\n @HostBinding('attr.aria-label')\n ariaLabel: string = null;\n\n /** Aria-Labelledby for element describing Avatar. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: string = null;\n\n /** Localized text for label */\n @Input()\n set label(value: string) {\n this.ariaLabel = value || null;\n this.abbreviate = this._getAbbreviate(value);\n }\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n @Input() size: Size = 'l';\n\n /** The glyph name. */\n @Input() glyph: string = null;\n\n /** The glyph name for zoom icon. */\n @Input() zoomGlyph: string = null;\n\n /** Whether or not to apply a circle style to the Avatar. */\n @Input() circle = false;\n\n /** Whether or not to apply a transparent style to the Avatar. */\n @Input() transparent = false;\n\n /** Whether or not to apply background size contain style to the Avatar */\n @Input() contain = false;\n\n /** Whether or not to apply a placeholder background style to the Avatar. */\n @Input() placeholder = false;\n\n /** Whether or not to apply a tile background style to the Avatar. */\n @Input() tile = false;\n\n /** Whether or not to apply a border to the Avatar. */\n @Input() border = false;\n\n /** A number from 1 to 10 representing the background color of the Avatar. */\n @Input() colorAccent: ColorAccent = null;\n\n /** Whether or not to apply random background color to the Avatar. */\n @Input() random = false;\n\n /**\n * @deprecated\n * Deprecated according to Rename `backgroundImage` to `image`\n * */\n /** Background image url. */\n @Input()\n set backgroundImage(value: string) {\n this._setImage(value);\n }\n\n /** Background image resource: url or base64. */\n @Input()\n set image(value: string) {\n this._setImage(value);\n }\n get image(): string {\n return this._image;\n }\n\n @Input()\n set alterIcon(value: string) {\n this._alterIcon = value;\n }\n get alterIcon(): string {\n return this._alterIcon;\n }\n\n @Input()\n set backupImage(value: string) {\n this._backupImage = value;\n }\n get backupImage(): string {\n return this._backupImage;\n }\n\n /** @hidden */\n @HostBinding('style.background-image')\n get bgImage(): string {\n return this._bgImage;\n }\n\n /** @hidden */\n @HostBinding('attr.role')\n get role(): string {\n return this.zoomGlyph ? 'button' : 'img';\n }\n\n /** @hidden */\n @ViewChild('content')\n set content(value: ElementRef) {\n this._content = value;\n }\n\n /** @hidden */\n abbreviate: string = null;\n\n /** @hidden */\n private _image: string = null;\n\n /** @hidden */\n private _alterIcon: string = null;\n\n /** @hidden */\n private _content: ElementRef = null;\n\n /** @hidden */\n private _backupImage: string = null;\n\n /** @hidden */\n private _bgImage: string = null;\n\n /** If a default placeholder should be displayed */\n get showDefault(): boolean {\n return !this.abbreviate && !this._image && !this.glyph;\n }\n\n /** @hidden */\n constructor(private _elementRef: ElementRef, private _cdr: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-avatar',\n this.size ? `fd-avatar--${this.size}` : '',\n this.colorAccent && !this.random ? `fd-avatar--accent-color-${this.colorAccent}` : '',\n this.random ? `fd-avatar--accent-color-${getRandomColorAccent()}` : '',\n this.circle ? 'fd-avatar--circle' : '',\n this.border ? 'fd-avatar--border' : '',\n this.transparent ? 'fd-avatar--transparent' : '',\n this.contain ? 'fd-avatar--background-contain' : '',\n this.placeholder ? 'fd-avatar--placeholder' : '',\n this.tile ? 'fd-avatar--tile' : '',\n this.class\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden Get an abbreviate from the label or return null if not fit requirements */\n private _getAbbreviate(label: string): string | null {\n if (!label || this._image) {\n return null;\n }\n\n const maxLettersCount = 3;\n const firstLetters = label.split(' ').map((word) => word.charAt(0));\n const abbreviate = firstLetters.join('');\n\n if (firstLetters.length > maxLettersCount || !abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX)) {\n return null;\n }\n\n return abbreviate;\n }\n\n /** @hidden */\n private _setImage(value: string): void {\n this._image = value;\n\n if (value) {\n this._verifyImageUrl(value, (): void => {}, this._onErrorCallback);\n } else {\n this._bgImage = null;\n }\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onLoadCallback: () => void, onErrorCallback: () => void): void {\n const img = new Image();\n img.onload = onLoadCallback.bind(this);\n img.onerror = onErrorCallback.bind(this);\n img.src = srcValue;\n this._assignBgImage(srcValue);\n }\n\n /** @hidden */\n private _assignBgImage(srcValue: string): void {\n this._bgImage = `url(${srcValue})`;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n if (!this._alterIcon) {\n this._showDefaultIcon();\n } else {\n const options = this._alterIcon.split('|');\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentEl = this._content.nativeElement;\n const contentValue = contentEl.innerText.trim()[0];\n if (contentValue && contentValue !== '') {\n this.abbreviate = contentEl.innerText.trim()[0];\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this.elementRef().nativeElement.getAttribute('alt');\n if (altValue && altValue !== '') {\n this.abbreviate = altValue.trim()[0];\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.BACKUP) {\n if (this._backupImage && this._backupImage !== '') {\n // Check if backupImage can be loaded successfully\n // If not, set default user icon\n this._verifyImageUrl(\n this._backupImage,\n () => {\n this._assignBgImage(this._backupImage);\n this._cdr.detectChanges();\n },\n () => {\n this._showDefaultIcon();\n this._cdr.detectChanges();\n }\n );\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n break;\n }\n\n this._showDefaultIcon();\n }\n }\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate = null;\n this._image = null;\n this.glyph = null;\n }\n}\n","{{ abbreviate }}\n\n<i\n *ngIf=\"zoomGlyph\"\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"zoomGlyph ? 'sap-icon--' + zoomGlyph : ''\"\n>\n</i>\n<i *ngIf=\"glyph\" class=\"fd-avatar__icon\" [class]=\"glyph ? ' sap-icon--' + glyph : ''\" role=\"presentation\"> </i>\n<i *ngIf=\"showDefault\" class=\"fd-avatar__icon sap-icon--person-placeholder\" role=\"presentation\"> </i>\n<div #content style=\"display: none\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AvatarComponent],\n declarations: [AvatarComponent]\n})\nexport class AvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-avatar.mjs","sources":["../../../../libs/core/src/lib/avatar/avatar.component.ts","../../../../libs/core/src/lib/avatar/avatar.component.html","../../../../libs/core/src/lib/avatar/avatar.module.ts","../../../../libs/core/src/lib/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n Size,\n applyCssClass,\n getRandomColorAccent,\n CssClassBuilder\n} from '@fundamental-ngx/core/utils';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\n@Component({\n // TODO to be discussed\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AvatarComponent implements OnChanges, OnInit, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /** Id of the Avatar. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-avatar-${avatarUniqueId++}`;\n\n /** Aria-label for Avatar. */\n @Input()\n @HostBinding('attr.aria-label')\n ariaLabel: string = null;\n\n /** Aria-Labelledby for element describing Avatar. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: string = null;\n\n /** Localized text for label */\n @Input()\n set label(value: string) {\n this.ariaLabel = value || null;\n this.abbreviate = this._getAbbreviate(value);\n }\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n @Input() size: Size = 'l';\n\n /** The glyph name. */\n @Input() glyph: string = null;\n\n /** The glyph name for zoom icon. */\n @Input() zoomGlyph: string = null;\n\n /** Whether or not to apply a circle style to the Avatar. */\n @Input() circle = false;\n\n /** Whether or not to apply a transparent style to the Avatar. */\n @Input() transparent = false;\n\n /** Whether or not to apply background size contain style to the Avatar */\n @Input() contain = false;\n\n /** Whether or not to apply a placeholder background style to the Avatar. */\n @Input() placeholder = false;\n\n /** Whether or not to apply a tile background style to the Avatar. */\n @Input() tile = false;\n\n /** Whether or not to apply a border to the Avatar. */\n @Input() border = false;\n\n /** A number from 1 to 10 representing the background color of the Avatar. */\n @Input() colorAccent: ColorAccent = null;\n\n /** Whether or not to apply random background color to the Avatar. */\n @Input() random = false;\n\n /**\n * @deprecated\n * Deprecated according to Rename `backgroundImage` to `image`\n * */\n /** Background image url. */\n @Input()\n set backgroundImage(value: string) {\n this._setImage(value);\n }\n\n /** Background image resource: url or base64. */\n @Input()\n set image(value: string) {\n this._setImage(value);\n }\n get image(): string {\n return this._image;\n }\n\n @Input()\n set alterIcon(value: string) {\n this._alterIcon = value;\n }\n get alterIcon(): string {\n return this._alterIcon;\n }\n\n @Input()\n set backupImage(value: string) {\n this._backupImage = value;\n }\n get backupImage(): string {\n return this._backupImage;\n }\n\n /** @hidden */\n @HostBinding('style.background-image')\n get bgImage(): string {\n return this._bgImage;\n }\n\n /** @hidden */\n @HostBinding('attr.role')\n get role(): string {\n return this.zoomGlyph ? 'button' : 'img';\n }\n\n /** @hidden */\n @ViewChild('content')\n set content(value: ElementRef) {\n this._content = value;\n }\n\n /** @hidden */\n abbreviate: string = null;\n\n /** @hidden */\n private _image: string = null;\n\n /** @hidden */\n private _alterIcon: string = null;\n\n /** @hidden */\n private _content: ElementRef = null;\n\n /** @hidden */\n private _backupImage: string = null;\n\n /** @hidden */\n private _bgImage: string = null;\n\n /** If a default placeholder should be displayed */\n get showDefault(): boolean {\n return !this.abbreviate && !this._image && !this.glyph;\n }\n\n /** @hidden */\n constructor(private _elementRef: ElementRef, private _cdr: ChangeDetectorRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-avatar',\n this.size ? `fd-avatar--${this.size}` : '',\n this.colorAccent && !this.random ? `fd-avatar--accent-color-${this.colorAccent}` : '',\n this.random ? `fd-avatar--accent-color-${getRandomColorAccent()}` : '',\n this.circle ? 'fd-avatar--circle' : '',\n this.border ? 'fd-avatar--border' : '',\n this.transparent ? 'fd-avatar--transparent' : '',\n this.contain ? 'fd-avatar--background-contain' : '',\n this.placeholder ? 'fd-avatar--placeholder' : '',\n this.tile ? 'fd-avatar--tile' : '',\n this.class\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden Get an abbreviate from the label or return null if not fit requirements */\n private _getAbbreviate(label: string): string | null {\n if (!label || this._image) {\n return null;\n }\n\n return this._generateAbbreviation(label);\n }\n\n /** @hidden Get the abbrevation string */\n private _generateAbbreviation(label: string): string | null {\n const maxLettersCount = 3;\n const firstLetters = label.split(' ').map((word) => word.charAt(0));\n const abbreviate = firstLetters.join('');\n\n if (firstLetters.length > maxLettersCount || !abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX)) {\n return null;\n }\n\n return abbreviate;\n }\n\n /** @hidden */\n private _setImage(value: string): void {\n this._image = value;\n\n if (value) {\n this._verifyImageUrl(value, (): void => {}, this._onErrorCallback);\n } else {\n this._bgImage = null;\n }\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onLoadCallback: () => void, onErrorCallback: () => void): void {\n const img = new Image();\n img.onload = onLoadCallback.bind(this);\n img.onerror = onErrorCallback.bind(this);\n img.src = srcValue;\n this._assignBgImage(srcValue);\n }\n\n /** @hidden */\n private _assignBgImage(srcValue: string): void {\n this._bgImage = `url(${srcValue})`;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n if (!this._alterIcon) {\n this._showDefaultIcon();\n } else {\n const options = this._alterIcon.split('|');\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentValue = this._content.nativeElement.innerText;\n if (contentValue && contentValue !== '') {\n this.abbreviate = this._generateAbbreviation(contentValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this.elementRef().nativeElement.getAttribute('alt');\n if (altValue && altValue !== '') {\n this.abbreviate = this._generateAbbreviation(altValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.BACKUP) {\n if (this._backupImage && this._backupImage !== '') {\n // Check if backupImage can be loaded successfully\n // If not, set default user icon\n this._verifyImageUrl(\n this._backupImage,\n () => {\n this._assignBgImage(this._backupImage);\n this._cdr.detectChanges();\n },\n () => {\n this._showDefaultIcon();\n this._cdr.detectChanges();\n }\n );\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n break;\n }\n\n this._showDefaultIcon();\n }\n }\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate = null;\n this._image = null;\n this.glyph = null;\n }\n}\n","{{ abbreviate }}\n\n<i\n *ngIf=\"zoomGlyph\"\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"zoomGlyph ? 'sap-icon--' + zoomGlyph : ''\"\n>\n</i>\n<i *ngIf=\"glyph\" class=\"fd-avatar__icon\" [class]=\"glyph ? ' sap-icon--' + glyph : ''\" role=\"presentation\"> </i>\n<i *ngIf=\"showDefault\" class=\"fd-avatar__icon sap-icon--person-placeholder\" role=\"presentation\"> </i>\n<div #content style=\"display: none\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [AvatarComponent],\n declarations: [AvatarComponent]\n})\nexport class AvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|