@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.
Files changed (156) hide show
  1. package/README.md +1 -3
  2. package/action-bar/package.json +3 -3
  3. package/action-sheet/package.json +3 -3
  4. package/alert/package.json +3 -3
  5. package/avatar/avatar.component.d.ts +2 -0
  6. package/avatar/esm2020/avatar.component.mjs +8 -5
  7. package/avatar/fesm2015/fundamental-ngx-core-avatar.mjs +7 -4
  8. package/avatar/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
  9. package/avatar/fesm2020/fundamental-ngx-core-avatar.mjs +7 -4
  10. package/avatar/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
  11. package/avatar/package.json +3 -3
  12. package/avatar-group/package.json +3 -3
  13. package/bar/package.json +3 -3
  14. package/breadcrumb/package.json +3 -3
  15. package/busy-indicator/package.json +3 -3
  16. package/button/package.json +3 -3
  17. package/calendar/package.json +3 -3
  18. package/card/package.json +3 -3
  19. package/carousel/package.json +3 -3
  20. package/checkbox/checkbox/checkbox.component.d.ts +30 -35
  21. package/checkbox/esm2020/checkbox/checkbox.component.mjs +61 -80
  22. package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs +59 -77
  23. package/checkbox/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  24. package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs +59 -77
  25. package/checkbox/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  26. package/checkbox/package.json +3 -3
  27. package/combobox/package.json +3 -3
  28. package/date-picker/package.json +3 -3
  29. package/datetime/package.json +3 -3
  30. package/datetime-picker/package.json +3 -3
  31. package/dialog/package.json +3 -3
  32. package/dynamic-page/package.json +3 -3
  33. package/dynamic-side-content/package.json +3 -3
  34. package/esm2020/avatar/avatar.component.mjs +8 -5
  35. package/esm2020/checkbox/checkbox/checkbox.component.mjs +61 -80
  36. package/esm2020/input-group/input-group.component.mjs +2 -2
  37. package/esm2020/list/list-item/list-item.component.mjs +6 -2
  38. package/esm2020/multi-input/multi-input.component.mjs +38 -11
  39. package/esm2020/utils/helpers/range-selector.mjs +113 -0
  40. package/esm2020/utils/public_api.mjs +2 -1
  41. package/facets/package.json +3 -3
  42. package/feed-input/package.json +3 -3
  43. package/feed-list-item/package.json +3 -3
  44. package/fesm2015/fundamental-ngx-core-avatar.mjs +7 -4
  45. package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
  46. package/fesm2015/fundamental-ngx-core-checkbox.mjs +59 -77
  47. package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  48. package/fesm2015/fundamental-ngx-core-input-group.mjs +2 -2
  49. package/fesm2015/fundamental-ngx-core-list.mjs +5 -1
  50. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  51. package/fesm2015/fundamental-ngx-core-multi-input.mjs +40 -11
  52. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  53. package/fesm2015/fundamental-ngx-core-utils.mjs +114 -1
  54. package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  55. package/fesm2020/fundamental-ngx-core-avatar.mjs +7 -4
  56. package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
  57. package/fesm2020/fundamental-ngx-core-checkbox.mjs +59 -77
  58. package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  59. package/fesm2020/fundamental-ngx-core-input-group.mjs +2 -2
  60. package/fesm2020/fundamental-ngx-core-list.mjs +5 -1
  61. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  62. package/fesm2020/fundamental-ngx-core-multi-input.mjs +38 -11
  63. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  64. package/fesm2020/fundamental-ngx-core-utils.mjs +114 -1
  65. package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  66. package/file-uploader/package.json +3 -3
  67. package/fixed-card-layout/package.json +3 -3
  68. package/flexible-column-layout/package.json +3 -3
  69. package/form/package.json +3 -3
  70. package/formatted-text/package.json +3 -3
  71. package/grid-list/package.json +3 -3
  72. package/icon/package.json +3 -3
  73. package/illustrated-message/package.json +3 -3
  74. package/infinite-scroll/package.json +3 -3
  75. package/info-label/package.json +3 -3
  76. package/inline-help/package.json +3 -3
  77. package/input-group/esm2020/input-group.component.mjs +2 -2
  78. package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs +2 -2
  79. package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs +2 -2
  80. package/input-group/package.json +3 -3
  81. package/layout-grid/package.json +3 -3
  82. package/layout-panel/package.json +3 -3
  83. package/link/package.json +3 -3
  84. package/list/esm2020/list-item/list-item.component.mjs +6 -2
  85. package/list/fesm2015/fundamental-ngx-core-list.mjs +5 -1
  86. package/list/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  87. package/list/fesm2020/fundamental-ngx-core-list.mjs +5 -1
  88. package/list/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  89. package/list/package.json +3 -3
  90. package/menu/package.json +3 -3
  91. package/message-box/package.json +3 -3
  92. package/message-page/package.json +2 -2
  93. package/message-strip/package.json +3 -3
  94. package/message-toast/package.json +3 -3
  95. package/micro-process-flow/package.json +3 -3
  96. package/mobile-mode/package.json +3 -3
  97. package/multi-input/esm2020/multi-input.component.mjs +38 -11
  98. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +40 -11
  99. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  100. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +38 -11
  101. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  102. package/multi-input/multi-input.component.d.ts +8 -1
  103. package/multi-input/package.json +3 -3
  104. package/nested-list/package.json +3 -3
  105. package/notification/package.json +3 -3
  106. package/object-identifier/package.json +3 -3
  107. package/object-marker/package.json +3 -3
  108. package/object-number/package.json +3 -3
  109. package/object-status/package.json +3 -3
  110. package/package.json +7 -7
  111. package/pagination/package.json +3 -3
  112. package/panel/package.json +3 -3
  113. package/popover/package.json +3 -3
  114. package/product-switch/package.json +3 -3
  115. package/progress-indicator/package.json +1 -1
  116. package/quick-view/package.json +3 -3
  117. package/radio/package.json +3 -3
  118. package/rating-indicator/package.json +3 -3
  119. package/resizable-card-layout/package.json +3 -3
  120. package/scroll-spy/package.json +3 -3
  121. package/scrollbar/package.json +3 -3
  122. package/segmented-button/package.json +3 -3
  123. package/select/package.json +3 -3
  124. package/shared/package.json +3 -3
  125. package/shellbar/package.json +3 -3
  126. package/side-navigation/package.json +3 -3
  127. package/slider/package.json +3 -3
  128. package/split-button/package.json +3 -3
  129. package/splitter/package.json +3 -3
  130. package/status-indicator/package.json +3 -3
  131. package/step-input/package.json +3 -3
  132. package/switch/package.json +3 -3
  133. package/table/package.json +3 -3
  134. package/tabs/package.json +3 -3
  135. package/tests/package.json +2 -2
  136. package/text/package.json +3 -3
  137. package/tile/package.json +3 -3
  138. package/time/package.json +3 -3
  139. package/time-picker/package.json +3 -3
  140. package/timeline/package.json +3 -3
  141. package/title/package.json +3 -3
  142. package/token/package.json +3 -3
  143. package/toolbar/package.json +3 -3
  144. package/tree/package.json +3 -3
  145. package/upload-collection/package.json +3 -3
  146. package/utils/esm2020/helpers/range-selector.mjs +113 -0
  147. package/utils/esm2020/public_api.mjs +2 -1
  148. package/utils/fesm2015/fundamental-ngx-core-utils.mjs +114 -1
  149. package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  150. package/utils/fesm2020/fundamental-ngx-core-utils.mjs +114 -1
  151. package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  152. package/utils/helpers/range-selector.d.ts +84 -0
  153. package/utils/package.json +6 -6
  154. package/utils/public_api.d.ts +1 -0
  155. package/vertical-navigation/package.json +3 -3
  156. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaUVBQWlFLENBQUM7QUFFaEYsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYywrREFBK0QsQ0FBQztBQUU5RSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxzREFBc0QsQ0FBQztBQUVyRSxjQUFjLGFBQWEsQ0FBQztBQUU1QixjQUFjLFVBQVUsQ0FBQztBQUV6QixjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3RlbXBsYXRlL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdGVtcGxhdGUvdGVtcGxhdGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9vbmx5LWRpZ2l0cy9vbmx5LWRpZ2l0cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL29ubHktZGlnaXRzL29ubHktZGlnaXRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcmVzaXplL3Jlc2l6ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3Jlc2l6ZS9yZXNpemUtaGFuZGxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcmVzaXplL3Jlc2l6ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2luaXRpYWwtZm9jdXMvaW5pdGlhbC1mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2xpbmUtY2xhbXAvbGluZS1jbGFtcC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2xpbmUtY2xhbXAvbGluZS1jbGFtcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2luaXRpYWwtZm9jdXMvaW5pdGlhbC1mb2N1cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL292ZXJmbG93LWxpc3Qvb3ZlcmZsb3ctbGlzdC1pdGVtLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdHJ1bmNhdGUvdHJ1bmNhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90cnVuY2F0ZS90cnVuY2F0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2ZvY3VzLWtleS1tYW5hZ2VyL2ZvY3VzLWtleS1tYW5hZ2VyLWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9mb2N1cy1rZXktbWFuYWdlci9mb2N1cy1rZXktbWFuYWdlci1saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZm9jdXMta2V5LW1hbmFnZXIvZm9jdXMta2V5LW1hbmFnZXItaGVscGVycy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3BpcGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvbGlzdC1ncm91cC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZGlzcGxheUZuLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy90d28tZGlnaXRzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zZWFyY2gtaGlnaGxpZ2h0LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9pcy1jb21wYWN0LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy92YWx1ZS1ieS1wYXRoLnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWFuZC1kcm9wL2RuZC1saXN0L2RuZC1saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWctYW5kLWRyb3AvZG5kLWl0ZW0vZG5kLWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC9kbmQta2V5Ym9hcmQtZ3JvdXAvZG5kLWtleWJvYXJkLWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWctYW5kLWRyb3AvZG5kLWtleWJvYXJkLWl0ZW0vZG5kLWtleWJvYXJkLWl0ZW0uZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2Nzcy1jbGFzcy1idWlsZGVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY3NzLXN0eWxlLWJ1aWxkZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9oYXMtZWxlbWVudC1yZWYuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9rZXlib2FyZC1zdXBwb3J0LWl0ZW0uaW50ZXJmYWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2FwcGx5LWNzcy1jbGFzcy5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzL2FwcGx5LWNzcy1zdHlsZS5kZWNvcmF0b3InO1xuXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LWluamVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LWNvbnRhaW5lcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9kYXRhdHlwZXMvaGFzaC5kYXRhdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGF0eXBlcy9zaXplLmRhdGF0eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXR5cGVzL2NvbG9yLWFjY2VudC5kYXRhdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbnRlbnQtZGVuc2l0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcnRsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90aGVtZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2tleWJvYXJkLXN1cHBvcnQva2V5Ym9hcmQtc3VwcG9ydC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3QtZmQtbmd4LWNsYXNzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saXN0LWl0ZW0vbGlzdC1pdGVtLXV0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9taXhpbnMvYXBwbHktbWl4aW4nO1xuXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZvY3VzLXRyYXAuc2VydmljZSc7XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaUVBQWlFLENBQUM7QUFFaEYsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYywrREFBK0QsQ0FBQztBQUU5RSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNEQUFzRCxDQUFDO0FBRXJFLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdGVtcGxhdGUvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL29ubHktZGlnaXRzL29ubHktZGlnaXRzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvb25seS1kaWdpdHMvb25seS1kaWdpdHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUvcmVzaXplLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUvcmVzaXplLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbGluZS1jbGFtcC9saW5lLWNsYW1wLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbGluZS1jbGFtcC9saW5lLWNsYW1wLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0LWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9vdmVyZmxvdy1saXN0L292ZXJmbG93LWxpc3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9vdmVyZmxvdy1saXN0L292ZXJmbG93LWxpc3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90cnVuY2F0ZS90cnVuY2F0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3RydW5jYXRlL3RydW5jYXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZm9jdXMta2V5LW1hbmFnZXIvZm9jdXMta2V5LW1hbmFnZXItaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2ZvY3VzLWtleS1tYW5hZ2VyL2ZvY3VzLWtleS1tYW5hZ2VyLWxpc3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9mb2N1cy1rZXktbWFuYWdlci9mb2N1cy1rZXktbWFuYWdlci1oZWxwZXJzLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvcGlwZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9saXN0LWdyb3VwLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9kaXNwbGF5Rm4ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3R3by1kaWdpdHMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NlYXJjaC1oaWdobGlnaHQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NhZmUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2lzLWNvbXBhY3QucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3ZhbHVlLWJ5LXBhdGgucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWctYW5kLWRyb3AvZG5kLWxpc3QvZG5kLWxpc3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC9kbmQtaXRlbS9kbmQtaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLWFuZC1kcm9wL2RuZC1rZXlib2FyZC1ncm91cC9kbmQta2V5Ym9hcmQtZ3JvdXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1hbmQtZHJvcC9kbmQta2V5Ym9hcmQtaXRlbS9kbmQta2V5Ym9hcmQtaXRlbS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY3NzLWNsYXNzLWJ1aWxkZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9jc3Mtc3R5bGUtYnVpbGRlci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2tleWJvYXJkLXN1cHBvcnQtaXRlbS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYXBwbHktY3NzLWNsYXNzLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvYXBwbHktY3NzLXN0eWxlLmRlY29yYXRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtaW5qZWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtY29udGFpbmVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL3JhbmdlLXNlbGVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0eXBlcy9oYXNoLmRhdGF0eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXR5cGVzL3NpemUuZGF0YXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdHlwZXMvY29sb3ItYWNjZW50LmRhdGF0eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29udGVudC1kZW5zaXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ydGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RoZW1lcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMva2V5Ym9hcmQtc3VwcG9ydC9rZXlib2FyZC1zdXBwb3J0LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1mZC1uZ3gtY2xhc3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpc3QtaXRlbS9saXN0LWl0ZW0tdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL21peGlucy9hcHBseS1taXhpbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZm9jdXMtdHJhcC5zZXJ2aWNlJztcbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/facets",
3
- "version": "0.33.4-rc.6",
3
+ "version": "0.33.4",
4
4
  "peerDependencies": {
5
- "@angular/common": "^13,.0.0",
6
- "@angular/core": "^13,.0.0"
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-input",
3
- "version": "0.33.4-rc.6",
3
+ "version": "0.33.4",
4
4
  "peerDependencies": {
5
- "@angular/common": "^13,.0.0",
6
- "@angular/core": "^13,.0.0"
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-rc.6",
3
+ "version": "0.33.4",
4
4
  "peerDependencies": {
5
- "@angular/common": "^13,.0.0",
6
- "@angular/core": "^13,.0.0"
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 contentEl = this._content.nativeElement;
186
- const contentValue = contentEl.innerText.trim()[0];
189
+ const contentValue = this._content.nativeElement.innerText;
187
190
  if (contentValue && contentValue !== '') {
188
- this.abbreviate = contentEl.innerText.trim()[0];
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 = altValue.trim()[0];
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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"}