@odx/angular 1.0.0-rc.6 → 1.0.0-rc.8

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 (241) hide show
  1. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +1 -0
  2. package/cdk/connected-overlay/README.md +3 -0
  3. package/cdk/connected-overlay/index.d.ts +3 -0
  4. package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +28 -0
  5. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +10 -0
  6. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +3 -0
  7. package/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.d.ts +2 -0
  8. package/cdk/connected-overlay/lib/helpers/get-overlay-side.d.ts +2 -0
  9. package/cdk/connected-overlay/lib/helpers/index.d.ts +3 -0
  10. package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +23 -0
  11. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +12 -0
  12. package/cdk/connected-overlay/lib/models/index.d.ts +2 -0
  13. package/cdk/dynamic-view/lib/models/dynamic-view-options.d.ts +1 -1
  14. package/components/circular-progress/lib/circular-progress.component.d.ts +1 -0
  15. package/components/dropdown/README.md +3 -0
  16. package/components/dropdown/index.d.ts +4 -0
  17. package/components/dropdown/lib/dropdown.component.d.ts +11 -0
  18. package/components/dropdown/lib/dropdown.directive.d.ts +36 -0
  19. package/components/dropdown/lib/dropdown.module.d.ts +8 -0
  20. package/components/dropdown/lib/models/dropdown-options.d.ts +3 -0
  21. package/components/dropdown/lib/models/index.d.ts +1 -0
  22. package/components/inline-message/README.md +3 -0
  23. package/components/inline-message/index.d.ts +2 -0
  24. package/components/inline-message/lib/inline-message.component.d.ts +9 -0
  25. package/components/inline-message/lib/models/inline-message-variant.d.ts +7 -0
  26. package/components/launch-tile/README.md +3 -0
  27. package/components/launch-tile/index.d.ts +5 -0
  28. package/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.d.ts +5 -0
  29. package/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.d.ts +5 -0
  30. package/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.d.ts +5 -0
  31. package/components/launch-tile/lib/launch-tile.component.d.ts +11 -0
  32. package/components/launch-tile/lib/launch-tile.module.d.ts +16 -0
  33. package/components/loading-spinner/lib/loading-spinner.component.d.ts +2 -2
  34. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +6 -7
  35. package/components/select/README.md +3 -0
  36. package/components/select/index.d.ts +7 -0
  37. package/components/select/lib/abstract/index.d.ts +2 -0
  38. package/components/select/lib/abstract/select-control-option.d.ts +7 -0
  39. package/components/select/lib/abstract/select-control.d.ts +11 -0
  40. package/components/select/lib/components/index.d.ts +1 -0
  41. package/components/select/lib/components/option/option.component.d.ts +22 -0
  42. package/components/select/lib/directives/index.d.ts +1 -0
  43. package/components/select/lib/directives/select-search-field.directive.d.ts +13 -0
  44. package/components/select/lib/pipes/index.d.ts +1 -0
  45. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +13 -0
  46. package/components/select/lib/select.component.d.ts +50 -0
  47. package/components/select/lib/select.module.d.ts +11 -0
  48. package/components/select/lib/select.tokens.d.ts +3 -0
  49. package/components/spinbox/README.md +3 -0
  50. package/components/spinbox/index.d.ts +1 -0
  51. package/components/spinbox/lib/spinbox.component.d.ts +25 -0
  52. package/components/tab-bar/README.md +3 -0
  53. package/components/tab-bar/index.d.ts +4 -0
  54. package/components/tab-bar/lib/components/index.d.ts +1 -0
  55. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +20 -0
  56. package/components/tab-bar/lib/models/index.d.ts +1 -0
  57. package/components/tab-bar/lib/models/tab-change-event.d.ts +5 -0
  58. package/components/tab-bar/lib/tab-bar.component.d.ts +31 -0
  59. package/components/tab-bar/lib/tab-bar.config.d.ts +3 -0
  60. package/components/tab-bar/lib/tab-bar.module.d.ts +9 -0
  61. package/components/tooltip/README.md +3 -0
  62. package/components/tooltip/index.d.ts +3 -0
  63. package/components/tooltip/lib/helpers/index.d.ts +1 -0
  64. package/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.d.ts +2 -0
  65. package/components/tooltip/lib/models/index.d.ts +3 -0
  66. package/components/tooltip/lib/models/tooltip-options.d.ts +10 -0
  67. package/components/tooltip/lib/models/tooltip-size.d.ts +7 -0
  68. package/components/tooltip/lib/models/tooltip-trigger.d.ts +1 -0
  69. package/components/tooltip/lib/tooltip.component.d.ts +12 -0
  70. package/components/tooltip/lib/tooltip.directive.d.ts +33 -0
  71. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +8 -7
  72. package/esm2020/cdk/connected-overlay/index.mjs +4 -0
  73. package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +112 -0
  74. package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +25 -0
  75. package/esm2020/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +57 -0
  76. package/esm2020/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.mjs +13 -0
  77. package/esm2020/cdk/connected-overlay/lib/helpers/get-overlay-side.mjs +4 -0
  78. package/esm2020/cdk/connected-overlay/lib/helpers/index.mjs +4 -0
  79. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +10 -0
  80. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +15 -0
  81. package/esm2020/cdk/connected-overlay/lib/models/index.mjs +3 -0
  82. package/esm2020/cdk/connected-overlay/odx-angular-cdk-connected-overlay.mjs +5 -0
  83. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +5 -3
  84. package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +4 -2
  85. package/esm2020/cdk/dynamic-view/lib/models/dynamic-view-options.mjs +1 -1
  86. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +3 -3
  87. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +11 -4
  88. package/esm2020/components/dropdown/index.mjs +5 -0
  89. package/esm2020/components/dropdown/lib/dropdown.component.mjs +31 -0
  90. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +137 -0
  91. package/esm2020/components/dropdown/lib/dropdown.module.mjs +18 -0
  92. package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +8 -0
  93. package/esm2020/components/dropdown/lib/models/index.mjs +2 -0
  94. package/esm2020/components/dropdown/odx-angular-components-dropdown.mjs +5 -0
  95. package/esm2020/components/inline-message/index.mjs +3 -0
  96. package/esm2020/components/inline-message/lib/inline-message.component.mjs +43 -0
  97. package/esm2020/components/inline-message/lib/models/inline-message-variant.mjs +7 -0
  98. package/esm2020/components/inline-message/odx-angular-components-inline-message.mjs +5 -0
  99. package/esm2020/components/launch-tile/index.mjs +6 -0
  100. package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +13 -0
  101. package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +13 -0
  102. package/esm2020/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.mjs +17 -0
  103. package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +40 -0
  104. package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +59 -0
  105. package/esm2020/components/launch-tile/odx-angular-components-launch-tile.mjs +5 -0
  106. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +7 -7
  107. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +28 -24
  108. package/esm2020/components/main-menu/lib/main-menu.component.mjs +3 -3
  109. package/esm2020/components/select/index.mjs +8 -0
  110. package/esm2020/components/select/lib/abstract/index.mjs +3 -0
  111. package/esm2020/components/select/lib/abstract/select-control-option.mjs +2 -0
  112. package/esm2020/components/select/lib/abstract/select-control.mjs +2 -0
  113. package/esm2020/components/select/lib/components/index.mjs +2 -0
  114. package/esm2020/components/select/lib/components/option/option.component.mjs +78 -0
  115. package/esm2020/components/select/lib/directives/index.mjs +2 -0
  116. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +47 -0
  117. package/esm2020/components/select/lib/pipes/index.mjs +2 -0
  118. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +51 -0
  119. package/esm2020/components/select/lib/select.component.mjs +190 -0
  120. package/esm2020/components/select/lib/select.module.mjs +21 -0
  121. package/esm2020/components/select/lib/select.tokens.mjs +3 -0
  122. package/esm2020/components/select/odx-angular-components-select.mjs +5 -0
  123. package/esm2020/components/spinbox/index.mjs +2 -0
  124. package/esm2020/components/spinbox/lib/spinbox.component.mjs +91 -0
  125. package/esm2020/components/spinbox/odx-angular-components-spinbox.mjs +5 -0
  126. package/esm2020/components/tab-bar/index.mjs +5 -0
  127. package/esm2020/components/tab-bar/lib/components/index.mjs +2 -0
  128. package/esm2020/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +70 -0
  129. package/esm2020/components/tab-bar/lib/models/index.mjs +2 -0
  130. package/esm2020/components/tab-bar/lib/models/tab-change-event.mjs +2 -0
  131. package/esm2020/components/tab-bar/lib/tab-bar.component.mjs +116 -0
  132. package/esm2020/components/tab-bar/lib/tab-bar.config.mjs +3 -0
  133. package/esm2020/components/tab-bar/lib/tab-bar.module.mjs +19 -0
  134. package/esm2020/components/tab-bar/odx-angular-components-tab-bar.mjs +5 -0
  135. package/esm2020/components/tooltip/index.mjs +4 -0
  136. package/esm2020/components/tooltip/lib/helpers/index.mjs +2 -0
  137. package/esm2020/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.mjs +9 -0
  138. package/esm2020/components/tooltip/lib/models/index.mjs +4 -0
  139. package/esm2020/components/tooltip/lib/models/tooltip-options.mjs +10 -0
  140. package/esm2020/components/tooltip/lib/models/tooltip-size.mjs +7 -0
  141. package/esm2020/components/tooltip/lib/models/tooltip-trigger.mjs +2 -0
  142. package/esm2020/components/tooltip/lib/tooltip.component.mjs +39 -0
  143. package/esm2020/components/tooltip/lib/tooltip.directive.mjs +132 -0
  144. package/esm2020/components/tooltip/odx-angular-components-tooltip.mjs +5 -0
  145. package/esm2020/index.mjs +2 -1
  146. package/esm2020/lib/tokens/identity-matcher.mjs +7 -0
  147. package/esm2020/lib/tokens/index.mjs +4 -0
  148. package/esm2020/lib/tokens/string-search-handler.mjs +9 -0
  149. package/esm2020/lib/tokens/stringify.mjs +8 -0
  150. package/esm2020/rxjs/index.mjs +3 -1
  151. package/esm2020/rxjs/lib/delay-until.mjs +5 -0
  152. package/esm2020/rxjs/lib/form-query-list.mjs +5 -0
  153. package/esm2020/utils/lib/decorators/index.mjs +2 -1
  154. package/esm2020/utils/lib/decorators/pure.mjs +37 -0
  155. package/esm2020/utils/lib/helpers/defer-fn.mjs +4 -0
  156. package/esm2020/utils/lib/helpers/event-manager.mjs +30 -0
  157. package/esm2020/utils/lib/helpers/index.mjs +3 -1
  158. package/fesm2015/odx-angular-cdk-active-indicator.mjs +9 -6
  159. package/fesm2015/odx-angular-cdk-active-indicator.mjs.map +1 -1
  160. package/fesm2015/odx-angular-cdk-connected-overlay.mjs +234 -0
  161. package/fesm2015/odx-angular-cdk-connected-overlay.mjs.map +1 -0
  162. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +6 -3
  163. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  164. package/fesm2015/odx-angular-components-accordion.mjs +2 -2
  165. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  166. package/fesm2015/odx-angular-components-circular-progress.mjs +10 -3
  167. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  168. package/fesm2015/odx-angular-components-dropdown.mjs +185 -0
  169. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -0
  170. package/fesm2015/odx-angular-components-inline-message.mjs +55 -0
  171. package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -0
  172. package/fesm2015/odx-angular-components-launch-tile.mjs +133 -0
  173. package/fesm2015/odx-angular-components-launch-tile.mjs.map +1 -0
  174. package/fesm2015/odx-angular-components-loading-spinner.mjs +75 -85
  175. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  176. package/fesm2015/odx-angular-components-main-menu.mjs +2 -2
  177. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  178. package/fesm2015/odx-angular-components-select.mjs +375 -0
  179. package/fesm2015/odx-angular-components-select.mjs.map +1 -0
  180. package/fesm2015/odx-angular-components-spinbox.mjs +100 -0
  181. package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -0
  182. package/fesm2015/odx-angular-components-tab-bar.mjs +201 -0
  183. package/fesm2015/odx-angular-components-tab-bar.mjs.map +1 -0
  184. package/fesm2015/odx-angular-components-tooltip.mjs +187 -0
  185. package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -0
  186. package/fesm2015/odx-angular-rxjs.mjs +10 -2
  187. package/fesm2015/odx-angular-rxjs.mjs.map +1 -1
  188. package/fesm2015/odx-angular-utils.mjs +72 -2
  189. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  190. package/fesm2015/odx-angular.mjs +21 -1
  191. package/fesm2015/odx-angular.mjs.map +1 -1
  192. package/fesm2020/odx-angular-cdk-active-indicator.mjs +7 -6
  193. package/fesm2020/odx-angular-cdk-active-indicator.mjs.map +1 -1
  194. package/fesm2020/odx-angular-cdk-connected-overlay.mjs +230 -0
  195. package/fesm2020/odx-angular-cdk-connected-overlay.mjs.map +1 -0
  196. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +6 -3
  197. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  198. package/fesm2020/odx-angular-components-accordion.mjs +2 -2
  199. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  200. package/fesm2020/odx-angular-components-circular-progress.mjs +10 -3
  201. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  202. package/fesm2020/odx-angular-components-dropdown.mjs +187 -0
  203. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -0
  204. package/fesm2020/odx-angular-components-inline-message.mjs +55 -0
  205. package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -0
  206. package/fesm2020/odx-angular-components-launch-tile.mjs +132 -0
  207. package/fesm2020/odx-angular-components-launch-tile.mjs.map +1 -0
  208. package/fesm2020/odx-angular-components-loading-spinner.mjs +74 -84
  209. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  210. package/fesm2020/odx-angular-components-main-menu.mjs +2 -2
  211. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  212. package/fesm2020/odx-angular-components-select.mjs +362 -0
  213. package/fesm2020/odx-angular-components-select.mjs.map +1 -0
  214. package/fesm2020/odx-angular-components-spinbox.mjs +97 -0
  215. package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -0
  216. package/fesm2020/odx-angular-components-tab-bar.mjs +196 -0
  217. package/fesm2020/odx-angular-components-tab-bar.mjs.map +1 -0
  218. package/fesm2020/odx-angular-components-tooltip.mjs +192 -0
  219. package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -0
  220. package/fesm2020/odx-angular-rxjs.mjs +10 -2
  221. package/fesm2020/odx-angular-rxjs.mjs.map +1 -1
  222. package/fesm2020/odx-angular-utils.mjs +71 -2
  223. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  224. package/fesm2020/odx-angular.mjs +21 -1
  225. package/fesm2020/odx-angular.mjs.map +1 -1
  226. package/index.d.ts +1 -0
  227. package/lib/tokens/identity-matcher.d.ts +3 -0
  228. package/lib/tokens/index.d.ts +3 -0
  229. package/lib/tokens/string-search-handler.d.ts +3 -0
  230. package/lib/tokens/stringify.d.ts +3 -0
  231. package/package.json +66 -2
  232. package/rxjs/index.d.ts +2 -0
  233. package/rxjs/lib/delay-until.d.ts +2 -0
  234. package/rxjs/lib/form-query-list.d.ts +3 -0
  235. package/utils/lib/decorators/index.d.ts +1 -0
  236. package/utils/lib/decorators/pure.d.ts +1 -0
  237. package/utils/lib/helpers/defer-fn.d.ts +1 -0
  238. package/utils/lib/helpers/event-manager.d.ts +12 -0
  239. package/utils/lib/helpers/index.d.ts +2 -0
  240. package/components/loading-spinner/lib/loading-spinner.service.d.ts +0 -9
  241. package/esm2020/components/loading-spinner/lib/loading-spinner.service.mjs +0 -17
@@ -0,0 +1,201 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i0 from '@angular/core';
6
+ import { InjectionToken, inject, ElementRef, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, HostListener, ChangeDetectorRef, ViewChild, ViewChildren, ContentChildren, NgModule } from '@angular/core';
7
+ import { DisabledController, CoreModule } from '@odx/angular';
8
+ import { IconComponent } from '@odx/angular/components/icon';
9
+ import { CSSComponent, CSSModifier } from '@odx/angular/internal';
10
+ import { Transform, untilDestroyed, injectElement, applyStyles, cssTranslate, px } from '@odx/angular/utils';
11
+ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
12
+ import { ActiveIndicatorDirective } from '@odx/angular/cdk/active-indicator';
13
+ import { fromQueryList, fromElementResize$ } from '@odx/angular/rxjs';
14
+ import { BehaviorSubject, merge, debounceTime, tap, fromEvent } from 'rxjs';
15
+
16
+ const TAB_BAR = new InjectionToken('tabBar');
17
+
18
+ let TabBarItemComponent = class TabBarItemComponent {
19
+ constructor() {
20
+ this.disabledController = DisabledController.inject();
21
+ this.tabBar = inject(TAB_BAR);
22
+ this.isActive = false;
23
+ this.element = inject(ElementRef);
24
+ this.closable = false;
25
+ this.tabClose = new EventEmitter();
26
+ }
27
+ get disabled() {
28
+ var _a, _b;
29
+ return (_b = (_a = this.disabledController) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : false;
30
+ }
31
+ setActiveStyles() {
32
+ setTimeout(() => (this.isActive = true));
33
+ }
34
+ setInactiveStyles() {
35
+ setTimeout(() => (this.isActive = false));
36
+ }
37
+ onClick() {
38
+ if (this.disabled)
39
+ return;
40
+ this.tabBar.activateItem(this);
41
+ }
42
+ handleClose(event) {
43
+ event.stopPropagation();
44
+ if (this.disabled || !this.closable)
45
+ return;
46
+ this.tabBar.removeItem(this);
47
+ this.tabClose.emit(this);
48
+ }
49
+ };
50
+ TabBarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ TabBarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TabBarItemComponent, isStandalone: true, selector: "odx-tab-bar-item", inputs: { closable: "closable" }, outputs: { tabClose: "tabClose" }, host: { attributes: { "role": "tab" }, listeners: { "click": "onClick()" }, properties: { "class.is-disabled": "disabled", "class.is-active": "isActive", "attr.aria-selected": "isActive", "class.is-closable": "closable" } }, providers: [DisabledController.connect()], ngImport: i0, template: "<ng-content select=\"odx-icon\"></ng-content>\n<ng-content></ng-content>\n<odx-icon name=\"close\" size=\"small\" *ngIf=\"closable\" (click)=\"handleClose($event)\"></odx-icon>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
52
+ __decorate([
53
+ Transform(coerceBooleanProperty),
54
+ __metadata("design:type", Object)
55
+ ], TabBarItemComponent.prototype, "closable", void 0);
56
+ TabBarItemComponent = __decorate([
57
+ CSSComponent('tab-bar-item')
58
+ ], TabBarItemComponent);
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarItemComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'odx-tab-bar-item', standalone: true, imports: [CommonModule, IconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DisabledController.connect()], host: {
62
+ '[class.is-disabled]': 'disabled',
63
+ '[class.is-active]': 'isActive',
64
+ '[attr.aria-selected]': 'isActive',
65
+ '[class.is-closable]': 'closable',
66
+ role: 'tab',
67
+ }, template: "<ng-content select=\"odx-icon\"></ng-content>\n<ng-content></ng-content>\n<odx-icon name=\"close\" size=\"small\" *ngIf=\"closable\" (click)=\"handleClose($event)\"></odx-icon>\n" }]
68
+ }], propDecorators: { closable: [{
69
+ type: Input
70
+ }], tabClose: [{
71
+ type: Output
72
+ }], onClick: [{
73
+ type: HostListener,
74
+ args: ['click']
75
+ }] } });
76
+
77
+ var TabBarComponent_1;
78
+ let TabBarComponent = TabBarComponent_1 = class TabBarComponent {
79
+ constructor() {
80
+ this.changeDetector = inject(ChangeDetectorRef);
81
+ this.takeUntilDestroyed = untilDestroyed();
82
+ this.selectedIndex$$ = new BehaviorSubject(0);
83
+ this.activeItem = null;
84
+ this.overflowLeft = false;
85
+ this.overflowRight = false;
86
+ this.element = injectElement();
87
+ this.selectedTabChanged = new EventEmitter();
88
+ }
89
+ set selectedIndex(value) {
90
+ this.selectedIndex$$.next(coerceNumberProperty(value));
91
+ }
92
+ ngAfterViewInit() {
93
+ this.keyManager = new ActiveDescendantKeyManager(this.tabs).withWrap().withHomeAndEnd().withHorizontalOrientation('ltr').withVerticalOrientation(false);
94
+ const updatePanelPosition$ = merge(this.selectedTabChanged, fromQueryList(this.tabs), fromElementResize$(this.element.nativeElement)).pipe(debounceTime(0), tap(() => this.updatePanelPosition()));
95
+ const updateActionVisibility$ = fromEvent(this.tabBarPanelElement.nativeElement, 'transitionend').pipe(tap(({ target }) => target === this.tabBarPanelElement.nativeElement && this.updateActionVisbility()));
96
+ const activeItemChange$ = merge(this.keyManager.change.pipe(tap(() => this.activeItemChange())), this.selectedIndex$$.pipe(tap((index) => { var _a; return (_a = this.keyManager) === null || _a === void 0 ? void 0 : _a.setActiveItem(index); })));
97
+ merge(activeItemChange$, updatePanelPosition$, updateActionVisibility$).pipe(this.takeUntilDestroyed()).subscribe();
98
+ }
99
+ activateItem(item) {
100
+ var _a;
101
+ if (item === this.activeItem)
102
+ return;
103
+ const selectedIndex = item ? this.tabs.toArray().indexOf(item) : -1;
104
+ (_a = this.keyManager) === null || _a === void 0 ? void 0 : _a.setActiveItem(selectedIndex);
105
+ }
106
+ removeItem(item) {
107
+ if (this.activeItem !== item)
108
+ return;
109
+ const selectedIndex = this.tabs.toArray().indexOf(item);
110
+ setTimeout(() => { var _a; return (_a = this.keyManager) === null || _a === void 0 ? void 0 : _a.setActiveItem(Math.max(0, selectedIndex - 1)); });
111
+ }
112
+ onKeydown(event) {
113
+ var _a;
114
+ (_a = this.keyManager) === null || _a === void 0 ? void 0 : _a.onKeydown(event);
115
+ }
116
+ updatePanelPosition() {
117
+ var _a;
118
+ const activeElement = (_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.element.nativeElement;
119
+ if (!activeElement)
120
+ return;
121
+ const panelRect = this.tabBarPanelElement.nativeElement.getBoundingClientRect();
122
+ const tabBarRect = this.element.nativeElement.getBoundingClientRect();
123
+ const maxPanelPositionX = Math.floor(tabBarRect.width - panelRect.width);
124
+ const panelPositionX = tabBarRect.width / 2 - activeElement.offsetLeft - activeElement.offsetWidth / 2;
125
+ const positionX = Math.min(0, Math.max(panelPositionX, maxPanelPositionX));
126
+ applyStyles(this.tabBarPanelElement.nativeElement, {
127
+ transform: cssTranslate(px(positionX), 0),
128
+ });
129
+ this.updateActionVisbility();
130
+ }
131
+ updateActionVisbility() {
132
+ const panelRect = this.tabBarPanelElement.nativeElement.getBoundingClientRect();
133
+ const tabBarRect = this.element.nativeElement.getBoundingClientRect();
134
+ this.overflowLeft = panelRect.left < tabBarRect.left;
135
+ this.overflowRight = panelRect.right > tabBarRect.right;
136
+ this.changeDetector.detectChanges();
137
+ }
138
+ activeItemChange() {
139
+ var _a, _b, _c;
140
+ const { activeItemIndex, activeItem } = (_a = this.keyManager) !== null && _a !== void 0 ? _a : {};
141
+ this.activeItem = activeItem !== null && activeItem !== void 0 ? activeItem : null;
142
+ this.selectedTabChanged.emit({ selectedIndex: activeItemIndex !== null && activeItemIndex !== void 0 ? activeItemIndex : -1, selectedTab: (_c = (_b = this.keyManager) === null || _b === void 0 ? void 0 : _b.activeItem) !== null && _c !== void 0 ? _c : null });
143
+ }
144
+ };
145
+ TabBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
146
+ TabBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TabBarComponent, isStandalone: true, selector: "odx-tab-bar", inputs: { selectedIndex: "selectedIndex" }, outputs: { selectedTabChanged: "selectedTabChanged" }, host: { attributes: { "role": "tabpanel", "tabindex": "0" }, listeners: { "keydown": "onKeydown($event)" } }, providers: [{ provide: TAB_BAR, useExisting: TabBarComponent_1 }], queries: [{ propertyName: "tabs", predicate: TabBarItemComponent }], viewQueries: [{ propertyName: "tabBarPanelElement", first: true, predicate: ["tabBarPanel"], descendants: true }, { propertyName: "tabActionElements", predicate: ["tabAction"], descendants: true }], ngImport: i0, template: "<button\n #tabAction\n class=\"odx-tab-bar__action odx-tab-bar__action--prev\"\n [class.is-active]=\"overflowLeft\"\n (click)=\"keyManager?.setPreviousItemActive()\"\n tabindex=\"-1\"\n>\n <odx-icon class=\"tab-bar-action-icon\" name=\"chevron-left\"></odx-icon>\n</button>\n<div class=\"odx-tab-bar__inner\">\n <div class=\"odx-tab-bar__panel\" role=\"tablist\" #tabBarPanel>\n <ng-content></ng-content>\n <div class=\"odx-tab-bar__indicator\" [odxActiveIndicator]=\"activeItem?.element?.nativeElement\" odxActiveIndicatorPosition=\"start\"></div>\n </div>\n</div>\n<button\n #tabAction\n class=\"odx-tab-bar__action odx-tab-bar__action--next\"\n [class.is-active]=\"overflowRight\"\n (click)=\"keyManager?.setNextItemActive()\"\n tabindex=\"-1\"\n>\n <odx-icon class=\"tab-bar-action-icon\" name=\"chevron-right\"></odx-icon>\n</button>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }, { kind: "directive", type: ActiveIndicatorDirective, selector: "[odxActiveIndicator]", inputs: ["odxActiveIndicator", "odxActiveIndicatorParent", "odxActiveIndicatorDirection", "odxActiveIndicatorPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
147
+ __decorate([
148
+ CSSModifier(),
149
+ __metadata("design:type", Object)
150
+ ], TabBarComponent.prototype, "overflowLeft", void 0);
151
+ __decorate([
152
+ CSSModifier(),
153
+ __metadata("design:type", Object)
154
+ ], TabBarComponent.prototype, "overflowRight", void 0);
155
+ TabBarComponent = TabBarComponent_1 = __decorate([
156
+ CSSComponent('tab-bar')
157
+ ], TabBarComponent);
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarComponent, decorators: [{
159
+ type: Component,
160
+ args: [{ selector: 'odx-tab-bar', standalone: true, imports: [CommonModule, IconComponent, ActiveIndicatorDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: TAB_BAR, useExisting: TabBarComponent }], host: {
161
+ role: 'tabpanel',
162
+ tabindex: '0',
163
+ }, template: "<button\n #tabAction\n class=\"odx-tab-bar__action odx-tab-bar__action--prev\"\n [class.is-active]=\"overflowLeft\"\n (click)=\"keyManager?.setPreviousItemActive()\"\n tabindex=\"-1\"\n>\n <odx-icon class=\"tab-bar-action-icon\" name=\"chevron-left\"></odx-icon>\n</button>\n<div class=\"odx-tab-bar__inner\">\n <div class=\"odx-tab-bar__panel\" role=\"tablist\" #tabBarPanel>\n <ng-content></ng-content>\n <div class=\"odx-tab-bar__indicator\" [odxActiveIndicator]=\"activeItem?.element?.nativeElement\" odxActiveIndicatorPosition=\"start\"></div>\n </div>\n</div>\n<button\n #tabAction\n class=\"odx-tab-bar__action odx-tab-bar__action--next\"\n [class.is-active]=\"overflowRight\"\n (click)=\"keyManager?.setNextItemActive()\"\n tabindex=\"-1\"\n>\n <odx-icon class=\"tab-bar-action-icon\" name=\"chevron-right\"></odx-icon>\n</button>\n" }]
164
+ }], propDecorators: { tabBarPanelElement: [{
165
+ type: ViewChild,
166
+ args: ['tabBarPanel']
167
+ }], tabActionElements: [{
168
+ type: ViewChildren,
169
+ args: ['tabAction']
170
+ }], tabs: [{
171
+ type: ContentChildren,
172
+ args: [TabBarItemComponent]
173
+ }], overflowLeft: [], overflowRight: [], selectedIndex: [{
174
+ type: Input
175
+ }], selectedTabChanged: [{
176
+ type: Output
177
+ }], onKeydown: [{
178
+ type: HostListener,
179
+ args: ['keydown', ['$event']]
180
+ }] } });
181
+
182
+ const modules = [TabBarComponent, TabBarItemComponent];
183
+ class TabBarModule {
184
+ }
185
+ TabBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
186
+ TabBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TabBarModule, imports: [TabBarComponent, TabBarItemComponent], exports: [CoreModule, TabBarComponent, TabBarItemComponent] });
187
+ TabBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarModule, imports: [modules, CoreModule] });
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarModule, decorators: [{
189
+ type: NgModule,
190
+ args: [{
191
+ imports: modules,
192
+ exports: [CoreModule, ...modules],
193
+ }]
194
+ }] });
195
+
196
+ /**
197
+ * Generated bundle index. Do not edit.
198
+ */
199
+
200
+ export { TabBarComponent, TabBarItemComponent, TabBarModule };
201
+ //# sourceMappingURL=odx-angular-components-tab-bar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odx-angular-components-tab-bar.mjs","sources":["../../../../libs/angular/components/tab-bar/src/lib/tab-bar.config.ts","../../../../libs/angular/components/tab-bar/src/lib/components/tab-bar-item/tab-bar-item.component.ts","../../../../libs/angular/components/tab-bar/src/lib/components/tab-bar-item/tab-bar-item.component.html","../../../../libs/angular/components/tab-bar/src/lib/tab-bar.component.ts","../../../../libs/angular/components/tab-bar/src/lib/tab-bar.component.html","../../../../libs/angular/components/tab-bar/src/lib/tab-bar.module.ts","../../../../libs/angular/components/tab-bar/src/odx-angular-components-tab-bar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TabBarComponent } from './tab-bar.component';\n\nexport const TAB_BAR = new InjectionToken<TabBarComponent>('tabBar');\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, inject, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { DisabledController } from '@odx/angular';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { Transform } from '@odx/angular/utils';\nimport { TAB_BAR } from '../../tab-bar.config';\n\n@CSSComponent('tab-bar-item')\n@Component({\n selector: 'odx-tab-bar-item',\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: './tab-bar-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DisabledController.connect()],\n host: {\n '[class.is-disabled]': 'disabled',\n '[class.is-active]': 'isActive',\n '[attr.aria-selected]': 'isActive',\n '[class.is-closable]': 'closable',\n role: 'tab',\n },\n})\nexport class TabBarItemComponent implements Highlightable {\n public static ngAcceptInputType_closable: BooleanInput;\n\n private readonly disabledController = DisabledController.inject();\n private readonly tabBar = inject(TAB_BAR);\n\n protected isActive = false;\n\n public readonly element: ElementRef<HTMLElement> = inject(ElementRef);\n\n public get disabled(): boolean {\n return this.disabledController?.disabled ?? false;\n }\n\n @Transform(coerceBooleanProperty)\n @Input()\n public closable = false;\n\n @Output()\n public tabClose = new EventEmitter<TabBarItemComponent>();\n\n public setActiveStyles(): void {\n setTimeout(() => (this.isActive = true));\n }\n\n public setInactiveStyles(): void {\n setTimeout(() => (this.isActive = false));\n }\n\n @HostListener('click')\n protected onClick(): void {\n if (this.disabled) return;\n this.tabBar.activateItem(this);\n }\n\n protected handleClose(event: Event): void {\n event.stopPropagation();\n if (this.disabled || !this.closable) return;\n this.tabBar.removeItem(this);\n this.tabClose.emit(this);\n }\n}\n","<ng-content select=\"odx-icon\"></ng-content>\n<ng-content></ng-content>\n<odx-icon name=\"close\" size=\"small\" *ngIf=\"closable\" (click)=\"handleClose($event)\"></odx-icon>\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ActiveIndicatorDirective } from '@odx/angular/cdk/active-indicator';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromElementResize$, fromQueryList } from '@odx/angular/rxjs';\nimport { applyStyles, cssTranslate, injectElement, px, untilDestroyed } from '@odx/angular/utils';\nimport { BehaviorSubject, debounceTime, fromEvent, merge, tap } from 'rxjs';\nimport { TabBarItemComponent } from './components';\nimport { TabChangeEvent } from './models';\nimport { TAB_BAR } from './tab-bar.config';\n\n@CSSComponent('tab-bar')\n@Component({\n selector: 'odx-tab-bar',\n standalone: true,\n imports: [CommonModule, IconComponent, ActiveIndicatorDirective],\n templateUrl: './tab-bar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: TAB_BAR, useExisting: TabBarComponent }],\n host: {\n role: 'tabpanel',\n tabindex: '0',\n },\n})\nexport class TabBarComponent implements AfterViewInit {\n public static ngAcceptInputType_selectedIndex: NumberInput;\n\n private readonly changeDetector = inject(ChangeDetectorRef);\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly selectedIndex$$ = new BehaviorSubject(0);\n\n protected activeItem: TabBarItemComponent | null = null;\n\n protected keyManager?: ActiveDescendantKeyManager<TabBarItemComponent>;\n\n @ViewChild('tabBarPanel')\n protected tabBarPanelElement!: ElementRef<HTMLElement>;\n\n @ViewChildren('tabAction')\n protected tabActionElements!: QueryList<ElementRef<HTMLElement>>;\n\n @ContentChildren(TabBarItemComponent)\n protected tabs!: QueryList<TabBarItemComponent>;\n\n @CSSModifier()\n protected overflowLeft = false;\n\n @CSSModifier()\n protected overflowRight = false;\n\n public readonly element = injectElement();\n\n @Input()\n public set selectedIndex(value: unknown) {\n this.selectedIndex$$.next(coerceNumberProperty(value));\n }\n\n @Output()\n public selectedTabChanged = new EventEmitter<TabChangeEvent>();\n\n public ngAfterViewInit(): void {\n this.keyManager = new ActiveDescendantKeyManager(this.tabs).withWrap().withHomeAndEnd().withHorizontalOrientation('ltr').withVerticalOrientation(false);\n const updatePanelPosition$ = merge(this.selectedTabChanged, fromQueryList(this.tabs), fromElementResize$(this.element.nativeElement)).pipe(\n debounceTime(0),\n tap(() => this.updatePanelPosition())\n );\n const updateActionVisibility$ = fromEvent(this.tabBarPanelElement.nativeElement, 'transitionend').pipe(\n tap(({ target }) => target === this.tabBarPanelElement.nativeElement && this.updateActionVisbility())\n );\n const activeItemChange$ = merge(\n this.keyManager.change.pipe(tap(() => this.activeItemChange())),\n this.selectedIndex$$.pipe(tap((index) => this.keyManager?.setActiveItem(index)))\n );\n merge(activeItemChange$, updatePanelPosition$, updateActionVisibility$).pipe(this.takeUntilDestroyed()).subscribe();\n }\n\n public activateItem(item?: TabBarItemComponent | null): void {\n if (item === this.activeItem) return;\n const selectedIndex = item ? this.tabs.toArray().indexOf(item) : -1;\n this.keyManager?.setActiveItem(selectedIndex);\n }\n\n public removeItem(item: TabBarItemComponent): void {\n if (this.activeItem !== item) return;\n const selectedIndex = this.tabs.toArray().indexOf(item);\n setTimeout(() => this.keyManager?.setActiveItem(Math.max(0, selectedIndex - 1)));\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.keyManager?.onKeydown(event);\n }\n\n private updatePanelPosition(): void {\n const activeElement = this.activeItem?.element.nativeElement;\n if (!activeElement) return;\n const panelRect = this.tabBarPanelElement.nativeElement.getBoundingClientRect();\n const tabBarRect = this.element.nativeElement.getBoundingClientRect();\n const maxPanelPositionX = Math.floor(tabBarRect.width - panelRect.width);\n const panelPositionX = tabBarRect.width / 2 - activeElement.offsetLeft - activeElement.offsetWidth / 2;\n const positionX = Math.min(0, Math.max(panelPositionX, maxPanelPositionX));\n applyStyles(this.tabBarPanelElement.nativeElement, {\n transform: cssTranslate(px(positionX), 0),\n });\n this.updateActionVisbility();\n }\n\n private updateActionVisbility(): void {\n const panelRect = this.tabBarPanelElement.nativeElement.getBoundingClientRect();\n const tabBarRect = this.element.nativeElement.getBoundingClientRect();\n this.overflowLeft = panelRect.left < tabBarRect.left;\n this.overflowRight = panelRect.right > tabBarRect.right;\n this.changeDetector.detectChanges();\n }\n\n private activeItemChange(): void {\n const { activeItemIndex, activeItem } = this.keyManager ?? {};\n this.activeItem = activeItem ?? null;\n this.selectedTabChanged.emit({ selectedIndex: activeItemIndex ?? -1, selectedTab: this.keyManager?.activeItem ?? null });\n }\n}\n","<button\n #tabAction\n class=\"odx-tab-bar__action odx-tab-bar__action--prev\"\n [class.is-active]=\"overflowLeft\"\n (click)=\"keyManager?.setPreviousItemActive()\"\n tabindex=\"-1\"\n>\n <odx-icon class=\"tab-bar-action-icon\" name=\"chevron-left\"></odx-icon>\n</button>\n<div class=\"odx-tab-bar__inner\">\n <div class=\"odx-tab-bar__panel\" role=\"tablist\" #tabBarPanel>\n <ng-content></ng-content>\n <div class=\"odx-tab-bar__indicator\" [odxActiveIndicator]=\"activeItem?.element?.nativeElement\" odxActiveIndicatorPosition=\"start\"></div>\n </div>\n</div>\n<button\n #tabAction\n class=\"odx-tab-bar__action odx-tab-bar__action--next\"\n [class.is-active]=\"overflowRight\"\n (click)=\"keyManager?.setNextItemActive()\"\n tabindex=\"-1\"\n>\n <odx-icon class=\"tab-bar-action-icon\" name=\"chevron-right\"></odx-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { TabBarItemComponent } from './components';\nimport { TabBarComponent } from './tab-bar.component';\n\nconst modules = [TabBarComponent, TabBarItemComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class TabBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import * as i0 from '@angular/core';
4
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, inject, Directive } from '@angular/core';
5
+ import { ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';
6
+ import { CSSModifier, CSSComponent } from '@odx/angular/internal';
7
+ import { delayUntil } from '@odx/angular/rxjs';
8
+ import { getInjector, injectElement, EventManager, untilDestroyed, hasChanged, Transform } from '@odx/angular/utils';
9
+ import { deepmerge } from 'deepmerge-ts';
10
+ import { Subject, filter, tap, merge } from 'rxjs';
11
+ import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
12
+
13
+ function resolveTooltipTriggerEvents(trigger) {
14
+ if (trigger === 'click') {
15
+ return ['click', null];
16
+ }
17
+ else {
18
+ return ['mouseenter', 'mouseleave'];
19
+ }
20
+ }
21
+
22
+ const TooltipSize = {
23
+ AUTO: 'auto',
24
+ SMALL: 'small',
25
+ MEDIUM: 'medium',
26
+ LARGE: 'large',
27
+ };
28
+
29
+ const DefaultTooltipOptions = {
30
+ matchReferenceWidth: false,
31
+ size: TooltipSize.AUTO,
32
+ trigger: 'hover',
33
+ position: 'top',
34
+ delayIn: 0,
35
+ delayOut: 0,
36
+ };
37
+
38
+ let TooltipComponent = class TooltipComponent {
39
+ constructor() {
40
+ this.injector = getInjector();
41
+ this.element = injectElement();
42
+ this.id = null;
43
+ this.size = TooltipSize.AUTO;
44
+ }
45
+ };
46
+ TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TooltipComponent, isStandalone: true, selector: "odx-tooltip", inputs: { id: "id", content: "content", size: "size" }, host: { attributes: { "role": "tooltip" }, properties: { "attr.id": "id" } }, ngImport: i0, template: "<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n", dependencies: [{ kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
+ __decorate([
49
+ CSSModifier(),
50
+ __metadata("design:type", String)
51
+ ], TooltipComponent.prototype, "size", void 0);
52
+ TooltipComponent = __decorate([
53
+ CSSComponent('tooltip')
54
+ ], TooltipComponent);
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TooltipComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ standalone: true, selector: 'odx-tooltip', imports: [DynamicViewDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
58
+ '[attr.id]': 'id',
59
+ role: 'tooltip',
60
+ }, template: "<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n" }]
61
+ }], propDecorators: { id: [{
62
+ type: Input
63
+ }], content: [{
64
+ type: Input
65
+ }], size: [{
66
+ type: Input
67
+ }] } });
68
+
69
+ var TooltipDirective_1;
70
+ let TooltipDirective = TooltipDirective_1 = class TooltipDirective {
71
+ constructor() {
72
+ this.eventManager = inject(EventManager);
73
+ this.connectedOverlayService = inject(ConnectedOverlayService);
74
+ this.showTrigger$$ = new Subject();
75
+ this.hideTrigger$$ = new Subject();
76
+ this.connectedOverlayRef = null;
77
+ this.tooltipOptions = DefaultTooltipOptions;
78
+ this.tooltipId = null;
79
+ this.element = injectElement();
80
+ this.content = null;
81
+ this.disabled = false;
82
+ this.size = null;
83
+ this.visible = false;
84
+ const takeUntilDestroyed = untilDestroyed();
85
+ const show$ = this.showTrigger$$.pipe(filter(() => !this.isOpen), delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$), tap(() => this.show()));
86
+ const hide$ = this.hideTrigger$$.pipe(filter(() => this.isOpen), delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$), tap(() => this.hide()));
87
+ merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();
88
+ }
89
+ set options(value) {
90
+ this.tooltipOptions = deepmerge(DefaultTooltipOptions, value);
91
+ }
92
+ get isOpen() {
93
+ return this.connectedOverlayRef !== null;
94
+ }
95
+ ngOnInit() {
96
+ this.registerEvents();
97
+ }
98
+ ngOnChanges(changes) {
99
+ var _a, _b;
100
+ if (hasChanged(changes, 'disabled') && this.disabled) {
101
+ this.hide();
102
+ }
103
+ if (hasChanged(changes, ['content', 'size'])) {
104
+ (_a = this.connectedOverlayRef) === null || _a === void 0 ? void 0 : _a.update({ context: { content: this.content, size: this.size } });
105
+ }
106
+ if (hasChanged(changes, 'options')) {
107
+ (_b = this.connectedOverlayRef) === null || _b === void 0 ? void 0 : _b.update(this.tooltipOptions);
108
+ this.registerEvents();
109
+ }
110
+ if (this.visible && !this.disabled) {
111
+ this.show();
112
+ }
113
+ else {
114
+ this.hide();
115
+ }
116
+ }
117
+ show() {
118
+ if (this.isOpen || this.disabled)
119
+ return;
120
+ this.tooltipId = `odx-tooltip-${TooltipDirective_1.ID++}`;
121
+ this.connectedOverlayRef = this.connectedOverlayService.createOverlay(this.element.nativeElement, Object.assign(Object.assign({}, this.tooltipOptions), { containerClass: 'odx-tooltip-overlay', content: TooltipComponent, context: { content: this.content, size: this.size, id: this.tooltipId }, showArrow: true, enableFallback: true }));
122
+ }
123
+ hide() {
124
+ var _a;
125
+ if (!this.isOpen || (this.visible && !this.disabled))
126
+ return;
127
+ (_a = this.connectedOverlayRef) === null || _a === void 0 ? void 0 : _a.close();
128
+ this.connectedOverlayRef = null;
129
+ this.tooltipId = null;
130
+ }
131
+ registerEvents() {
132
+ const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);
133
+ this.eventManager.destroyListeners();
134
+ this.eventManager.register([openEvent, 'focusin'], () => this.showTrigger$$.next());
135
+ this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());
136
+ this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');
137
+ }
138
+ };
139
+ TooltipDirective.ID = 0;
140
+ TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
141
+ TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: TooltipDirective, isStandalone: true, selector: "[odxTooltip]", inputs: { content: ["odxTooltip", "content"], disabled: ["odxTooltipDisabled", "disabled"], options: ["odxTooltipOptions", "options"], size: ["odxTooltipSize", "size"], visible: ["odxTooltipVisible", "visible"] }, host: { properties: { "attr.aria-describedby": "tooltipId" } }, providers: [EventManager], exportAs: ["odxTooltip"], usesOnChanges: true, ngImport: i0 });
142
+ __decorate([
143
+ Transform(coerceBooleanProperty),
144
+ __metadata("design:type", Object)
145
+ ], TooltipDirective.prototype, "disabled", void 0);
146
+ __decorate([
147
+ Transform(coerceBooleanProperty),
148
+ __metadata("design:type", Object)
149
+ ], TooltipDirective.prototype, "visible", void 0);
150
+ TooltipDirective = TooltipDirective_1 = __decorate([
151
+ CSSComponent('tooltip-host'),
152
+ __metadata("design:paramtypes", [])
153
+ ], TooltipDirective);
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TooltipDirective, decorators: [{
155
+ type: Directive,
156
+ args: [{
157
+ standalone: true,
158
+ selector: '[odxTooltip]',
159
+ exportAs: 'odxTooltip',
160
+ providers: [EventManager],
161
+ host: {
162
+ '[attr.aria-describedby]': 'tooltipId',
163
+ },
164
+ }]
165
+ }], ctorParameters: function () { return []; }, propDecorators: { content: [{
166
+ type: Input,
167
+ args: ['odxTooltip']
168
+ }], disabled: [{
169
+ type: Input,
170
+ args: ['odxTooltipDisabled']
171
+ }], options: [{
172
+ type: Input,
173
+ args: ['odxTooltipOptions']
174
+ }], size: [{
175
+ type: Input,
176
+ args: ['odxTooltipSize']
177
+ }], visible: [{
178
+ type: Input,
179
+ args: ['odxTooltipVisible']
180
+ }] } });
181
+
182
+ /**
183
+ * Generated bundle index. Do not edit.
184
+ */
185
+
186
+ export { DefaultTooltipOptions, TooltipDirective, TooltipSize, resolveTooltipTriggerEvents };
187
+ //# sourceMappingURL=odx-angular-components-tooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { DynamicTextContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { getInjector, injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\n\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n protected readonly injector = getInjector();\n public readonly element = injectElement();\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public content?: DynamicTextContent | null;\n\n @CSSModifier()\n @Input()\n public size: TooltipSize = TooltipSize.AUTO;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, OnChanges, OnInit } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicTextContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, hasChanged, injectElement, NgChanges, Transform, untilDestroyed } from '@odx/angular/utils';\nimport { deepmerge } from 'deepmerge-ts';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { DefaultTooltipOptions, TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\n\n@CSSComponent('tooltip-host')\n@Directive({\n standalone: true,\n selector: '[odxTooltip]',\n exportAs: 'odxTooltip',\n providers: [EventManager],\n host: {\n '[attr.aria-describedby]': 'tooltipId',\n },\n})\nexport class TooltipDirective implements OnInit, OnChanges {\n private static ID = 0;\n\n public static ngAcceptInputType_disabled: BooleanInput;\n public static ngAcceptInputType_visible: BooleanInput;\n\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = DefaultTooltipOptions;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n @Input('odxTooltip')\n public content?: DynamicTextContent | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input('odxTooltipDisabled')\n public disabled = false;\n\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(DefaultTooltipOptions, value) as TooltipOptions;\n }\n\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input('odxTooltipVisible')\n public visible = false;\n\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show())\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide())\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public show(): void {\n if (this.isOpen || this.disabled) return;\n this.tooltipId = `odx-tooltip-${TooltipDirective.ID++}`;\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(this.element.nativeElement, {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n });\n }\n\n public hide(): void {\n if (!this.isOpen || (this.visible && !this.disabled)) return;\n this.connectedOverlayRef?.close();\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.eventManager.register([openEvent, 'focusin'], () => this.showTrigger$$.next());\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
+ import { switchMap, timer, map, takeUntil, startWith, Observable, debounceTime, merge, fromEvent } from 'rxjs';
1
2
  import { createResizeObserver } from '@odx/angular/utils';
2
- import { Observable, debounceTime, merge, fromEvent } from 'rxjs';
3
+
4
+ function delayUntil(delay, notifier) {
5
+ return (source$) => source$.pipe(switchMap((value) => timer(delay()).pipe(map(() => value), takeUntil(notifier))));
6
+ }
7
+
8
+ function fromQueryList(queryList) {
9
+ return queryList.changes.pipe(startWith(queryList));
10
+ }
3
11
 
4
12
  function fromElementResize$(element, debounceDuration = 50) {
5
13
  return new Observable((observer) => {
@@ -21,5 +29,5 @@ function fromEvents(target, ...events) {
21
29
  * Generated bundle index. Do not edit.
22
30
  */
23
31
 
24
- export { fromElementResize$, fromEvents };
32
+ export { delayUntil, fromElementResize$, fromEvents, fromQueryList };
25
33
  //# sourceMappingURL=odx-angular-rxjs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-rxjs.mjs","sources":["../../../../libs/angular/rxjs/src/lib/from-element-resize.ts","../../../../libs/angular/rxjs/src/lib/from-events.ts","../../../../libs/angular/rxjs/src/odx-angular-rxjs.ts"],"sourcesContent":["import { createResizeObserver } from '@odx/angular/utils';\nimport { debounceTime, Observable } from 'rxjs';\n\nexport function fromElementResize$(element: Element, debounceDuration = 50): Observable<ResizeObserverEntry[]> {\n return new Observable<ResizeObserverEntry[]>((observer) => {\n const resizeObserver = createResizeObserver((events) => {\n if (events.length > 0) {\n observer.next();\n }\n });\n observer.add(() => resizeObserver.disconnect());\n resizeObserver.observe(element);\n }).pipe(debounceTime(debounceDuration));\n}\n","import { fromEvent, merge, Observable } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nexport function fromEvents<T>(target: HasEventTargetAddRemove<T> | HasEventTargetAddRemove<T>[], ...events: string[]): Observable<T> {\n return merge(...events.map((event) => fromEvent(target, event)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAGgB,kBAAkB,CAAC,OAAgB,EAAE,gBAAgB,GAAG,EAAE,EAAA;AACxE,IAAA,OAAO,IAAI,UAAU,CAAwB,CAAC,QAAQ,KAAI;AACxD,QAAA,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,MAAM,KAAI;AACrD,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;AAChD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC1C;;SCVgB,UAAU,CAAI,MAAiE,EAAE,GAAG,MAAgB,EAAA;IAClH,OAAO,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE;;ACLA;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-rxjs.mjs","sources":["../../../../libs/angular/rxjs/src/lib/delay-until.ts","../../../../libs/angular/rxjs/src/lib/form-query-list.ts","../../../../libs/angular/rxjs/src/lib/from-element-resize.ts","../../../../libs/angular/rxjs/src/lib/from-events.ts","../../../../libs/angular/rxjs/src/odx-angular-rxjs.ts"],"sourcesContent":["import { map, MonoTypeOperatorFunction, Observable, switchMap, takeUntil, timer } from 'rxjs';\n\nexport function delayUntil<T>(delay: () => number, notifier: Observable<unknown>): MonoTypeOperatorFunction<T> {\n return (source$: Observable<T>) =>\n source$.pipe(\n switchMap((value: T) =>\n timer(delay()).pipe(\n map(() => value),\n takeUntil(notifier)\n )\n )\n );\n}\n","import { QueryList } from '@angular/core';\nimport { Observable, startWith } from 'rxjs';\n\nexport function fromQueryList<T>(queryList: QueryList<T>): Observable<QueryList<T>> {\n return queryList.changes.pipe(startWith(queryList));\n}\n","import { createResizeObserver } from '@odx/angular/utils';\nimport { debounceTime, Observable } from 'rxjs';\n\nexport function fromElementResize$(element: Element, debounceDuration = 50): Observable<ResizeObserverEntry[]> {\n return new Observable<ResizeObserverEntry[]>((observer) => {\n const resizeObserver = createResizeObserver((events) => {\n if (events.length > 0) {\n observer.next();\n }\n });\n observer.add(() => resizeObserver.disconnect());\n resizeObserver.observe(element);\n }).pipe(debounceTime(debounceDuration));\n}\n","import { fromEvent, merge, Observable } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nexport function fromEvents<T>(target: HasEventTargetAddRemove<T> | HasEventTargetAddRemove<T>[], ...events: string[]): Observable<T> {\n return merge(...events.map((event) => fromEvent(target, event)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEgB,SAAA,UAAU,CAAI,KAAmB,EAAE,QAA6B,EAAA;AAC9E,IAAA,OAAO,CAAC,OAAsB,KAC5B,OAAO,CAAC,IAAI,CACV,SAAS,CAAC,CAAC,KAAQ,KACjB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CACjB,GAAG,CAAC,MAAM,KAAK,CAAC,EAChB,SAAS,CAAC,QAAQ,CAAC,CACpB,CACF,CACF,CAAC;AACN;;ACTM,SAAU,aAAa,CAAI,SAAuB,EAAA;IACtD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD;;SCFgB,kBAAkB,CAAC,OAAgB,EAAE,gBAAgB,GAAG,EAAE,EAAA;AACxE,IAAA,OAAO,IAAI,UAAU,CAAwB,CAAC,QAAQ,KAAI;AACxD,QAAA,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,MAAM,KAAI;AACrD,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;AAChD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC1C;;SCVgB,UAAU,CAAI,MAAiE,EAAE,GAAG,MAAgB,EAAA;IAClH,OAAO,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE;;ACLA;;AAEG;;;;"}
@@ -1,8 +1,46 @@
1
1
  import { ɵwithMultipleDescriptors } from '@odx/angular/internal';
2
- import { TemplateRef, inject, ChangeDetectorRef, Injector, ElementRef, InjectionToken } from '@angular/core';
2
+ import * as i0 from '@angular/core';
3
+ import { TemplateRef, inject, ChangeDetectorRef, Injector, ElementRef, Renderer2, Injectable, InjectionToken } from '@angular/core';
3
4
  import { Subject, takeUntil, tap } from 'rxjs';
4
5
  import { deepmerge } from 'deepmerge-ts';
5
6
 
7
+ function Pure(_target, propertyKey, { get, enumerable, value }) {
8
+ if (get) {
9
+ return {
10
+ enumerable,
11
+ get() {
12
+ const value = get.call(this);
13
+ Object.defineProperty(this, propertyKey, { enumerable, value });
14
+ return value;
15
+ },
16
+ };
17
+ }
18
+ if (typeof value !== 'function') {
19
+ throw new Error('@Pure decorator can only be applied to functions or getters!');
20
+ }
21
+ const originalValue = value;
22
+ return {
23
+ enumerable,
24
+ get() {
25
+ let previousArgs = [];
26
+ let wasCalled = false;
27
+ let pureValue;
28
+ const patched = (...args) => {
29
+ const isPure = wasCalled && previousArgs.length === args.length && args.every((arg, index) => arg === previousArgs[index]);
30
+ if (isPure) {
31
+ return pureValue;
32
+ }
33
+ previousArgs = args;
34
+ pureValue = originalValue.apply(this, args);
35
+ wasCalled = true;
36
+ return pureValue;
37
+ };
38
+ Object.defineProperty(this, propertyKey, { value: patched });
39
+ return patched;
40
+ },
41
+ };
42
+ }
43
+
6
44
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
45
  function Transform(transformer) {
8
46
  return (target, propertyKey) => {
@@ -133,6 +171,38 @@ function pluckFromArray(arr, key) {
133
171
  return arr.map((value) => value[key]);
134
172
  }
135
173
 
174
+ function deferFn(fn) {
175
+ setTimeout(fn, 0);
176
+ }
177
+
178
+ class EventManager {
179
+ constructor() {
180
+ this.element = injectElement();
181
+ this.renderer = inject(Renderer2);
182
+ this.listeners = [];
183
+ }
184
+ destroyListeners() {
185
+ var _a;
186
+ while (this.listeners.length)
187
+ (_a = this.listeners.pop()) === null || _a === void 0 ? void 0 : _a();
188
+ }
189
+ register(eventNames, callback, target) {
190
+ for (const eventName of eventNames) {
191
+ if (eventName) {
192
+ this.listeners.push(this.renderer.listen(target !== null && target !== void 0 ? target : this.element.nativeElement, eventName, (event) => callback(event)));
193
+ }
194
+ }
195
+ }
196
+ ngOnDestroy() {
197
+ this.destroyListeners();
198
+ }
199
+ }
200
+ EventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EventManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
201
+ EventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EventManager });
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EventManager, decorators: [{
203
+ type: Injectable
204
+ }] });
205
+
136
206
  function hasChanged(changes, keyOrKeys, ignoreFirstChange = true) {
137
207
  if (Array.isArray(keyOrKeys)) {
138
208
  for (const key of keyOrKeys) {
@@ -170,5 +240,5 @@ function createModuleConfigTokens(name, prefix, defaultValue) {
170
240
  * Generated bundle index. Do not edit.
171
241
  */
172
242
 
173
- export { Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, createModuleConfigTokens, createResizeObserver, cssTranslate, disableCSSTransitions, forceLayoutReflow, getInjector, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideModuleConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
243
+ export { EventManager, Pure, Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, createModuleConfigTokens, createResizeObserver, cssTranslate, deferFn, disableCSSTransitions, forceLayoutReflow, getInjector, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideModuleConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
174
244
  //# sourceMappingURL=odx-angular-utils.mjs.map