@ethlete/core 4.5.1 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/CHANGELOG.md +856 -0
  2. package/esm2022/index.mjs +37 -2
  3. package/esm2022/lib/components/structured-data/index.mjs +2 -0
  4. package/esm2022/lib/components/structured-data/structured-data.component.mjs +3 -3
  5. package/esm2022/lib/constants/index.mjs +2 -2
  6. package/esm2022/lib/decorators/memo/index.mjs +2 -0
  7. package/esm2022/lib/directives/animatable/animatable.directive.mjs +3 -3
  8. package/esm2022/lib/directives/animatable/index.mjs +2 -2
  9. package/esm2022/lib/directives/animated-if/animated-if.directive.mjs +3 -3
  10. package/esm2022/lib/directives/animated-if/index.mjs +2 -0
  11. package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +3 -3
  12. package/esm2022/lib/directives/animated-lifecycle/index.mjs +2 -2
  13. package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +3 -3
  14. package/esm2022/lib/directives/animated-overlay/index.mjs +2 -0
  15. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +3 -3
  16. package/esm2022/lib/directives/click-outside/index.mjs +2 -0
  17. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +3 -3
  18. package/esm2022/lib/directives/cursor-drag-scroll/index.mjs +3 -0
  19. package/esm2022/lib/directives/debug/debug.directive.mjs +3 -3
  20. package/esm2022/lib/directives/debug/index.mjs +2 -0
  21. package/esm2022/lib/directives/delayable/delayable.directive.mjs +3 -3
  22. package/esm2022/lib/directives/delayable/index.mjs +2 -0
  23. package/esm2022/lib/directives/is-active-element/index.mjs +2 -0
  24. package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +3 -3
  25. package/esm2022/lib/directives/is-element/index.mjs +2 -0
  26. package/esm2022/lib/directives/is-element/is-element.directive.mjs +3 -3
  27. package/esm2022/lib/directives/let/index.mjs +3 -0
  28. package/esm2022/lib/directives/let/let.directive.mjs +3 -3
  29. package/esm2022/lib/directives/observe-content/index.mjs +2 -0
  30. package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +3 -3
  31. package/esm2022/lib/directives/observe-resize/index.mjs +2 -2
  32. package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
  33. package/esm2022/lib/directives/observe-scroll-state/index.mjs +4 -0
  34. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +3 -3
  35. package/esm2022/lib/directives/observe-visibility/index.mjs +2 -0
  36. package/esm2022/lib/directives/observe-visibility/observe-visibility.directive.mjs +3 -3
  37. package/esm2022/lib/directives/repeat/index.mjs +2 -0
  38. package/esm2022/lib/directives/repeat/repeat.directive.mjs +3 -3
  39. package/esm2022/lib/directives/root-boundary/index.mjs +2 -2
  40. package/esm2022/lib/directives/root-boundary/root-boundary.directive.mjs +3 -3
  41. package/esm2022/lib/directives/scroll-observer-first-element/index.mjs +2 -2
  42. package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +3 -3
  43. package/esm2022/lib/directives/scroll-observer-ignore-target/index.mjs +2 -2
  44. package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +3 -3
  45. package/esm2022/lib/directives/scroll-observer-last-element/index.mjs +2 -2
  46. package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +3 -3
  47. package/esm2022/lib/directives/seo/index.mjs +5 -0
  48. package/esm2022/lib/directives/seo/seo.directive.mjs +3 -3
  49. package/esm2022/lib/pipes/infer-mime-type/index.mjs +3 -0
  50. package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.pipe.mjs +3 -3
  51. package/esm2022/lib/pipes/normalize-game-result-type/index.mjs +4 -0
  52. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +3 -3
  53. package/esm2022/lib/pipes/normalize-match-participants/index.mjs +4 -0
  54. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +3 -3
  55. package/esm2022/lib/pipes/normalize-match-score/index.mjs +4 -0
  56. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +3 -3
  57. package/esm2022/lib/pipes/normalize-match-state/index.mjs +4 -2
  58. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +3 -3
  59. package/esm2022/lib/pipes/normalize-match-type/index.mjs +3 -0
  60. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +3 -3
  61. package/esm2022/lib/pipes/to-array/index.mjs +3 -0
  62. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  63. package/esm2022/lib/props/props.directive.mjs +3 -3
  64. package/esm2022/lib/services/click-observer.service.mjs +6 -6
  65. package/esm2022/lib/services/content-observer.service.mjs +6 -6
  66. package/esm2022/lib/services/focus-visible.service.mjs +3 -3
  67. package/esm2022/lib/services/index.mjs +9 -2
  68. package/esm2022/lib/services/intersection-observer.service.mjs +6 -6
  69. package/esm2022/lib/services/resize-observer.service.mjs +6 -6
  70. package/esm2022/lib/services/router-state.service.mjs +3 -3
  71. package/esm2022/lib/services/viewport.service.mjs +5 -5
  72. package/esm2022/lib/types/index.mjs +5 -2
  73. package/esm2022/lib/utils/index.mjs +25 -2
  74. package/esm2022/lib/utils/signal.utils.mjs +18 -2
  75. package/esm2022/lib/validators/index.mjs +15 -0
  76. package/fesm2022/ethlete-core.mjs +146 -130
  77. package/fesm2022/ethlete-core.mjs.map +1 -1
  78. package/index.d.ts +36 -1
  79. package/lib/constants/index.d.ts +1 -1
  80. package/lib/directives/animatable/index.d.ts +1 -1
  81. package/lib/directives/animated-lifecycle/index.d.ts +1 -1
  82. package/lib/directives/cursor-drag-scroll/{public-api.d.ts → index.d.ts} +1 -0
  83. package/lib/directives/observe-resize/index.d.ts +1 -1
  84. package/lib/directives/observe-scroll-state/{public-api.d.ts → index.d.ts} +2 -2
  85. package/lib/directives/root-boundary/index.d.ts +1 -1
  86. package/lib/directives/scroll-observer-first-element/index.d.ts +1 -1
  87. package/lib/directives/scroll-observer-ignore-target/index.d.ts +1 -1
  88. package/lib/directives/scroll-observer-last-element/index.d.ts +1 -1
  89. package/lib/pipes/normalize-match-state/index.d.ts +3 -1
  90. package/lib/props/props.directive.d.ts +1 -1
  91. package/lib/services/index.d.ts +8 -1
  92. package/lib/types/index.d.ts +4 -1
  93. package/lib/utils/index.d.ts +24 -1
  94. package/lib/utils/signal.utils.d.ts +13 -3
  95. package/package.json +7 -7
  96. package/esm2022/lib/components/public-api.mjs +0 -2
  97. package/esm2022/lib/components/structured-data/public-api.mjs +0 -2
  98. package/esm2022/lib/constants/public-api.mjs +0 -2
  99. package/esm2022/lib/decorators/index.mjs +0 -2
  100. package/esm2022/lib/decorators/memo/public-api.mjs +0 -2
  101. package/esm2022/lib/decorators/public-api.mjs +0 -2
  102. package/esm2022/lib/directives/animatable/public-api.mjs +0 -2
  103. package/esm2022/lib/directives/animated-if/public-api.mjs +0 -2
  104. package/esm2022/lib/directives/animated-lifecycle/public-api.mjs +0 -2
  105. package/esm2022/lib/directives/animated-overlay/public-api.mjs +0 -2
  106. package/esm2022/lib/directives/click-outside/public-api.mjs +0 -2
  107. package/esm2022/lib/directives/cursor-drag-scroll/public-api.mjs +0 -2
  108. package/esm2022/lib/directives/debug/public-api.mjs +0 -2
  109. package/esm2022/lib/directives/delayable/public-api.mjs +0 -2
  110. package/esm2022/lib/directives/is-active-element/public-api.mjs +0 -2
  111. package/esm2022/lib/directives/is-element/public-api.mjs +0 -2
  112. package/esm2022/lib/directives/let/public-api.mjs +0 -3
  113. package/esm2022/lib/directives/observe-content/public-api.mjs +0 -2
  114. package/esm2022/lib/directives/observe-resize/public-api.mjs +0 -2
  115. package/esm2022/lib/directives/observe-scroll-state/public-api.mjs +0 -3
  116. package/esm2022/lib/directives/observe-visibility/public-api.mjs +0 -2
  117. package/esm2022/lib/directives/public-api.mjs +0 -22
  118. package/esm2022/lib/directives/repeat/public-api.mjs +0 -2
  119. package/esm2022/lib/directives/root-boundary/public-api.mjs +0 -2
  120. package/esm2022/lib/directives/scroll-observer-first-element/public-api.mjs +0 -2
  121. package/esm2022/lib/directives/scroll-observer-ignore-target/public-api.mjs +0 -2
  122. package/esm2022/lib/directives/scroll-observer-last-element/public-api.mjs +0 -2
  123. package/esm2022/lib/directives/seo/public-api.mjs +0 -5
  124. package/esm2022/lib/pipes/infer-mime-type/public-api.mjs +0 -3
  125. package/esm2022/lib/pipes/normalize-game-result-type/public-api.mjs +0 -4
  126. package/esm2022/lib/pipes/normalize-match-participants/public-api.mjs +0 -4
  127. package/esm2022/lib/pipes/normalize-match-score/public-api.mjs +0 -4
  128. package/esm2022/lib/pipes/normalize-match-state/public-api.mjs +0 -4
  129. package/esm2022/lib/pipes/normalize-match-type/public-api.mjs +0 -3
  130. package/esm2022/lib/pipes/public-api.mjs +0 -8
  131. package/esm2022/lib/pipes/to-array/public-api.mjs +0 -3
  132. package/esm2022/lib/public-api.mjs +0 -11
  133. package/esm2022/lib/services/public-api.mjs +0 -9
  134. package/esm2022/lib/types/public-api.mjs +0 -5
  135. package/esm2022/lib/utils/public-api.mjs +0 -25
  136. package/esm2022/lib/validators/public-api.mjs +0 -15
  137. package/lib/components/public-api.d.ts +0 -1
  138. package/lib/constants/public-api.d.ts +0 -1
  139. package/lib/decorators/index.d.ts +0 -1
  140. package/lib/decorators/public-api.d.ts +0 -1
  141. package/lib/directives/animatable/public-api.d.ts +0 -1
  142. package/lib/directives/animated-lifecycle/public-api.d.ts +0 -1
  143. package/lib/directives/observe-resize/public-api.d.ts +0 -1
  144. package/lib/directives/public-api.d.ts +0 -21
  145. package/lib/directives/root-boundary/public-api.d.ts +0 -1
  146. package/lib/directives/scroll-observer-first-element/public-api.d.ts +0 -1
  147. package/lib/directives/scroll-observer-ignore-target/public-api.d.ts +0 -1
  148. package/lib/directives/scroll-observer-last-element/public-api.d.ts +0 -1
  149. package/lib/pipes/normalize-match-state/public-api.d.ts +0 -3
  150. package/lib/pipes/public-api.d.ts +0 -7
  151. package/lib/public-api.d.ts +0 -10
  152. package/lib/services/public-api.d.ts +0 -8
  153. package/lib/types/public-api.d.ts +0 -4
  154. package/lib/utils/public-api.d.ts +0 -24
  155. /package/lib/components/structured-data/{public-api.d.ts → index.d.ts} +0 -0
  156. /package/lib/decorators/memo/{public-api.d.ts → index.d.ts} +0 -0
  157. /package/lib/directives/animated-if/{public-api.d.ts → index.d.ts} +0 -0
  158. /package/lib/directives/animated-overlay/{public-api.d.ts → index.d.ts} +0 -0
  159. /package/lib/directives/click-outside/{public-api.d.ts → index.d.ts} +0 -0
  160. /package/lib/directives/debug/{public-api.d.ts → index.d.ts} +0 -0
  161. /package/lib/directives/delayable/{public-api.d.ts → index.d.ts} +0 -0
  162. /package/lib/directives/is-active-element/{public-api.d.ts → index.d.ts} +0 -0
  163. /package/lib/directives/is-element/{public-api.d.ts → index.d.ts} +0 -0
  164. /package/lib/directives/let/{public-api.d.ts → index.d.ts} +0 -0
  165. /package/lib/directives/observe-content/{public-api.d.ts → index.d.ts} +0 -0
  166. /package/lib/directives/observe-visibility/{public-api.d.ts → index.d.ts} +0 -0
  167. /package/lib/directives/repeat/{public-api.d.ts → index.d.ts} +0 -0
  168. /package/lib/directives/seo/{public-api.d.ts → index.d.ts} +0 -0
  169. /package/lib/pipes/infer-mime-type/{public-api.d.ts → index.d.ts} +0 -0
  170. /package/lib/pipes/normalize-game-result-type/{public-api.d.ts → index.d.ts} +0 -0
  171. /package/lib/pipes/normalize-match-participants/{public-api.d.ts → index.d.ts} +0 -0
  172. /package/lib/pipes/normalize-match-score/{public-api.d.ts → index.d.ts} +0 -0
  173. /package/lib/pipes/normalize-match-type/{public-api.d.ts → index.d.ts} +0 -0
  174. /package/lib/pipes/to-array/{public-api.d.ts → index.d.ts} +0 -0
  175. /package/lib/validators/{public-api.d.ts → index.d.ts} +0 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,856 @@
1
+ # @ethlete/core
2
+
3
+ ## 4.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1640](https://github.com/ethlete-io/ethdk/pull/1640) [`7c1214a`](https://github.com/ethlete-io/ethdk/commit/7c1214a8c8107591986e811e8a63629fcc251077) Thanks [@Gw3i](https://github.com/Gw3i)! - Add `debouncedControlValueSignal` util
8
+
9
+ ## 4.5.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [#1614](https://github.com/ethlete-io/ethdk/pull/1614) [`5f414b9`](https://github.com/ethlete-io/ethdk/commit/5f414b96362366f650945835b87d3cf8ce292bc1) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix various circular dependencies
14
+
15
+ ## 4.5.1
16
+
17
+ ### Patch Changes
18
+
19
+ - [`4ef84f5`](https://github.com/ethlete-io/ethdk/commit/4ef84f5e63a82e80f5125457a0b8f35a23b05010) Thanks [@TomTomB](https://github.com/TomTomB)! - Add missing export
20
+
21
+ ## 4.5.0
22
+
23
+ ### Minor Changes
24
+
25
+ - [`526f8db`](https://github.com/ethlete-io/ethdk/commit/526f8dbf3e511302bc765ffc8401b7c91c22c814) Thanks [@TomTomB](https://github.com/TomTomB)! - Add option to set same site option in cookie util
26
+
27
+ - [`9bc5fd0`](https://github.com/ethlete-io/ethdk/commit/9bc5fd0741444afebe34bf9a926f1e744cba7e84) Thanks [@TomTomB](https://github.com/TomTomB)! - Add createComponentId util
28
+
29
+ ## 4.4.1
30
+
31
+ ### Patch Changes
32
+
33
+ - [`55f4e8c`](https://github.com/ethlete-io/ethdk/commit/55f4e8c67591acb955cf5844e2ce3b08eb04f059) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix `etAnimatedIf` directive missing `ngIf` as host directive
34
+
35
+ ## 4.4.0
36
+
37
+ ### Minor Changes
38
+
39
+ - [`00b4ebf5`](https://github.com/ethlete-io/ethdk/commit/00b4ebf5ab2ff363b01c5ef24e777e96d77223a5) Thanks [@TomTomB](https://github.com/TomTomB)! - Add option to disable `shift` inside `AnimatedOverlayDirective`
40
+
41
+ ### Patch Changes
42
+
43
+ - [`57cecd4c`](https://github.com/ethlete-io/ethdk/commit/57cecd4c6e529c97af730c9280aee1bdaebd7e59) Thanks [@TomTomB](https://github.com/TomTomB)! - Don't check for children in `signalElementChildren` util if the component is not yet rendered
44
+
45
+ ## 4.3.0
46
+
47
+ ### Minor Changes
48
+
49
+ - [`7806a21d`](https://github.com/ethlete-io/ethdk/commit/7806a21db827e68002c512ffe6ad86bae072755b) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `signalElementChildren` util
50
+
51
+ - [`89fea95d`](https://github.com/ethlete-io/ethdk/commit/89fea95d371e43a52eb5bfa9c049d6f3b6068554) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `getFirstAndLastPartialIntersection` util
52
+
53
+ ## 4.2.3
54
+
55
+ ### Patch Changes
56
+
57
+ - [`db305a50`](https://github.com/ethlete-io/ethdk/commit/db305a50f6cb17e35036288443f9f9b12f8b511c) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix nearest scrolling in `scrollToElement` util
58
+
59
+ ## 4.2.2
60
+
61
+ ### Patch Changes
62
+
63
+ - [`7c9ac832`](https://github.com/ethlete-io/ethdk/commit/7c9ac8320faf63447c69928160c9eda0354e39d0) Thanks [@TomTomB](https://github.com/TomTomB)! - Allow setting a `SignalElementBinding` as root for the `signalElementIntersection` method instead of only allowing the `HTMLElement` type
64
+
65
+ ## 4.2.1
66
+
67
+ ### Patch Changes
68
+
69
+ - [`da7616e2`](https://github.com/ethlete-io/ethdk/commit/da7616e2181607ebef184be314102806abebdd27) Thanks [@TomTomB](https://github.com/TomTomB)! - Cleanup signal utils and types
70
+
71
+ ## 4.2.0
72
+
73
+ ### Minor Changes
74
+
75
+ - [`8a714a01`](https://github.com/ethlete-io/ethdk/commit/8a714a0147a58fa84c9258fd4b14ffdc835b3442) Thanks [@TomTomB](https://github.com/TomTomB)! - Update to Angular 17
76
+
77
+ - [`e7b4e79b`](https://github.com/ethlete-io/ethdk/commit/e7b4e79b282b8b650b8a0596e07b32ffaefeedd5) Thanks [@TomTomB](https://github.com/TomTomB)! - Add signal utils for `signalElementMutations`, `signalElementScrollState` and `signalElementIntersection`
78
+
79
+ ## 4.1.0
80
+
81
+ ### Minor Changes
82
+
83
+ - [`873b108b`](https://github.com/ethlete-io/ethdk/commit/873b108b2df3c2aa242ad9a38ae621d40e169119) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `signalElementDimensions()` and `signalHostElementDimensions()` utils
84
+
85
+ ## 4.0.3
86
+
87
+ ### Patch Changes
88
+
89
+ - Updated dependencies [[`ce7e1055`](https://github.com/ethlete-io/ethdk/commit/ce7e1055cc24018d8e0ac3550a7ceb8ad96253f0)]:
90
+ - @ethlete/types@1.6.2
91
+
92
+ ## 4.0.2
93
+
94
+ ### Patch Changes
95
+
96
+ - Updated dependencies [[`3216a9aa`](https://github.com/ethlete-io/ethdk/commit/3216a9aaa6baa0c846d1702562b3959bec5fbac7)]:
97
+ - @ethlete/types@1.6.1
98
+
99
+ ## 4.0.1
100
+
101
+ ### Patch Changes
102
+
103
+ - [`3f77e8d5`](https://github.com/ethlete-io/ethdk/commit/3f77e8d52a5ba45c4f3da4e34dcc08e0561ae04d) Thanks [@TomTomB](https://github.com/TomTomB)! - Init router state with data from window.location
104
+
105
+ ## 4.0.0
106
+
107
+ ### Patch Changes
108
+
109
+ - Updated dependencies [[`82f62921`](https://github.com/ethlete-io/ethdk/commit/82f629215c085a4f6d78f36a8981e34f4e626bbd)]:
110
+ - @ethlete/types@1.6.0
111
+
112
+ ## 3.13.2
113
+
114
+ ### Patch Changes
115
+
116
+ - [`0328fb76`](https://github.com/ethlete-io/ethdk/commit/0328fb769ca53042835826c1967b8d2f25072d63) Thanks [@TomTomB](https://github.com/TomTomB)! - Dependency sync only
117
+
118
+ - Updated dependencies [[`0328fb76`](https://github.com/ethlete-io/ethdk/commit/0328fb769ca53042835826c1967b8d2f25072d63)]:
119
+ - @ethlete/theming@2.3.1
120
+ - @ethlete/types@1.5.1
121
+
122
+ ## 3.13.1
123
+
124
+ ### Patch Changes
125
+
126
+ - [`acfb8522`](https://github.com/ethlete-io/ethdk/commit/acfb852234a177ba9d4b4fab78905a586656a9fa) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix selection model options always being disabled
127
+
128
+ ## 3.13.0
129
+
130
+ ### Minor Changes
131
+
132
+ - [`3a827a8e`](https://github.com/ethlete-io/ethdk/commit/3a827a8e2fd23186e2c83ffacff45d0c791f2f47) Thanks [@TomTomB](https://github.com/TomTomB)! - Add RootBoundaryDirective
133
+
134
+ ### Patch Changes
135
+
136
+ - [`2b56c1d8`](https://github.com/ethlete-io/ethdk/commit/2b56c1d86b6d1c23aa8b924a959d75328a401ee2) Thanks [@TomTomB](https://github.com/TomTomB)! - Minor selection model enhancements
137
+
138
+ - [`3a827a8e`](https://github.com/ethlete-io/ethdk/commit/3a827a8e2fd23186e2c83ffacff45d0c791f2f47) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix overlays not being positioned correctly inside an other overlay
139
+
140
+ ## 3.12.0
141
+
142
+ ### Minor Changes
143
+
144
+ - [#1034](https://github.com/ethlete-io/ethdk/pull/1034) [`1d69f6c1`](https://github.com/ethlete-io/ethdk/commit/1d69f6c129eb4457a5089083813fc3ff6e65bd41) Thanks [@Marc-BrauneDigital](https://github.com/Marc-BrauneDigital)! - Add inferMimeTypePipe and util
145
+
146
+ ## 3.11.2
147
+
148
+ ### Patch Changes
149
+
150
+ - [`1a92753f`](https://github.com/ethlete-io/ethdk/commit/1a92753faaf16977fe59af0080c03ba3244b642c) Thanks [@TomTomB](https://github.com/TomTomB)! - Add function to set the active option inside active selection model
151
+
152
+ ## 3.11.1
153
+
154
+ ### Patch Changes
155
+
156
+ - [`df887bf2`](https://github.com/ethlete-io/ethdk/commit/df887bf295417edf634d0a2b7be3d94739548fa1) Thanks [@TomTomB](https://github.com/TomTomB)! - Add missing support for theming inside overlays
157
+
158
+ ## 3.11.0
159
+
160
+ ### Minor Changes
161
+
162
+ - [`e5cc3133`](https://github.com/ethlete-io/ethdk/commit/e5cc3133a7fe81d008644da1be2fcdfb3e4cb3d8) Thanks [@TomTomB](https://github.com/TomTomB)! - Add angular utils
163
+
164
+ ### Patch Changes
165
+
166
+ - [`f1b8cd9f`](https://github.com/ethlete-io/ethdk/commit/f1b8cd9f401b0c75a4d4621fe585baaa82b2f111) Thanks [@TomTomB](https://github.com/TomTomB)! - Switch from createReactiveBindings to signal versions
167
+
168
+ ## 3.10.0
169
+
170
+ ### Minor Changes
171
+
172
+ - [`12f0305c`](https://github.com/ethlete-io/ethdk/commit/12f0305cb96e22b845634b2b10ca40a38316048d) Thanks [@TomTomB](https://github.com/TomTomB)! - Expose current visibility in observe visibility directive
173
+
174
+ ## 3.9.0
175
+
176
+ ### Minor Changes
177
+
178
+ - [`9370f45e`](https://github.com/ethlete-io/ethdk/commit/9370f45eb349441f8907ea4f404a5ab66ecca2e9) Thanks [@TomTomB](https://github.com/TomTomB)! - Add getFormGroupValue util that includes undefined values
179
+
180
+ ## 3.8.1
181
+
182
+ ### Patch Changes
183
+
184
+ - [`986f3fcd`](https://github.com/ethlete-io/ethdk/commit/986f3fcdf694415ece4182b00261b9f9911c71b0) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix animated lifecycle getting stuck if leave is triggered while entering is active
185
+
186
+ ## 3.8.0
187
+
188
+ ### Minor Changes
189
+
190
+ - [`fe654949`](https://github.com/ethlete-io/ethdk/commit/fe654949e47909e82a00de34aed1894c5d4afeb7) Thanks [@TomTomB](https://github.com/TomTomB)! - Add signal utils for manipulating classes and attributes of elements
191
+
192
+ ## 3.7.0
193
+
194
+ ### Minor Changes
195
+
196
+ - [`0397e8c7`](https://github.com/ethlete-io/ethdk/commit/0397e8c73c8e239fe4df92718127cd397519d549) Thanks [@TomTomB](https://github.com/TomTomB)! - Add additional properties to visibility observer events
197
+
198
+ ## 3.6.1
199
+
200
+ ### Patch Changes
201
+
202
+ - [`63067a60`](https://github.com/ethlete-io/ethdk/commit/63067a609227694a897c8cfcd425250f1eaff7d2) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix initial visibility change event value
203
+
204
+ ## 3.6.0
205
+
206
+ ### Minor Changes
207
+
208
+ - [`ef7716c9`](https://github.com/ethlete-io/ethdk/commit/ef7716c9eca17fbf62c8ce1647e6865ad8189d47) Thanks [@TomTomB](https://github.com/TomTomB)! - Add observe visibility directive and intersection observer service
209
+
210
+ ## 3.5.0
211
+
212
+ ### Minor Changes
213
+
214
+ - [`116b3802`](https://github.com/ethlete-io/ethdk/commit/116b380246675ad2c9ad105b76a3a0fcd6260e99) Thanks [@TomTomB](https://github.com/TomTomB)! - Add createResizeObservable util
215
+
216
+ - [`4a705a0b`](https://github.com/ethlete-io/ethdk/commit/4a705a0bfb048c586682482f62379d15cdaecbf2) Thanks [@TomTomB](https://github.com/TomTomB)! - Add form clone util and animated if directive
217
+
218
+ ### Patch Changes
219
+
220
+ - [`116b3802`](https://github.com/ethlete-io/ethdk/commit/116b380246675ad2c9ad105b76a3a0fcd6260e99) Thanks [@TomTomB](https://github.com/TomTomB)! - Monitor page size in smart scroll block and only block once its scrollable
221
+
222
+ ## 3.4.0
223
+
224
+ ### Minor Changes
225
+
226
+ - [`4c6bd7fc`](https://github.com/ethlete-io/ethdk/commit/4c6bd7fc34f6d283ddd7b329e39337e0126ed5e2) Thanks [@TomTomB](https://github.com/TomTomB)! - Add additional cookie util config options
227
+
228
+ ## 3.3.1
229
+
230
+ ### Patch Changes
231
+
232
+ - [`27080405`](https://github.com/ethlete-io/ethdk/commit/27080405555d9153044945a32a21238b93748ae5) Thanks [@TomTomB](https://github.com/TomTomB)! - Remove undefined from typed query list
233
+
234
+ ## 3.3.0
235
+
236
+ ### Minor Changes
237
+
238
+ - [`80cf4767`](https://github.com/ethlete-io/ethdk/commit/80cf476749f5ca457ac2d7e9ac033e2c724f87c1) Thanks [@TomTomB](https://github.com/TomTomB)! - Add key press manager util
239
+
240
+ ## 3.2.0
241
+
242
+ ### Minor Changes
243
+
244
+ - [`249e72a9`](https://github.com/ethlete-io/ethdk/commit/249e72a9ce447863ab3552fcb0d550c2e8bc6bd4) Thanks [@TomTomB](https://github.com/TomTomB)! - Allow using functions instead of property paths for selection model bindings
245
+
246
+ ### Patch Changes
247
+
248
+ - [`a5f3f7b6`](https://github.com/ethlete-io/ethdk/commit/a5f3f7b64ab5d2689c4673f443ddcfd362937148) Thanks [@TomTomB](https://github.com/TomTomB)! - Move some combobox logic into core
249
+
250
+ ## 3.1.0
251
+
252
+ ### Minor Changes
253
+
254
+ - [#861](https://github.com/ethlete-io/ethdk/pull/861) [`0ba88b49`](https://github.com/ethlete-io/ethdk/commit/0ba88b49f2ffff30d4c70d95a3bd2f766ee7ef25) Thanks [@Gw3i](https://github.com/Gw3i)! - Add validateAtLeastOneRequired validator to validate keys of form controls in a supplied form group where at least one need to be selected
255
+
256
+ ## 3.0.1
257
+
258
+ ### Patch Changes
259
+
260
+ - [`f382cecd`](https://github.com/ethlete-io/ethdk/commit/f382cecd6eaf4dab1730c45bbf52ee385fd72880) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix typings in must match validator
261
+
262
+ ## 3.0.0
263
+
264
+ ### Major Changes
265
+
266
+ - [`93405c62`](https://github.com/ethlete-io/ethdk/commit/93405c623ca06bd395776624d5e9f9c03fcbba4b) Thanks [@TomTomB](https://github.com/TomTomB)! - Switch from popperjs to floating ui
267
+
268
+ ```
269
+ npm uninstall @popperjs/core
270
+ npm install @floating-ui/dom
271
+ ```
272
+
273
+ Update attribute names in css styles
274
+
275
+ ```css
276
+ /* before */
277
+ [data-popper-placement^="top"] {
278
+ }
279
+
280
+ /* after */
281
+ [et-floating-placement^="top"] {
282
+ }
283
+ ```
284
+
285
+ ## 2.9.0
286
+
287
+ ### Minor Changes
288
+
289
+ - [`27b08e8d`](https://github.com/ethlete-io/ethdk/commit/27b08e8d9a399c255194463b60ec228bd09084b4) Thanks [@TomTomB](https://github.com/TomTomB)! - Remove subject utils
290
+
291
+ ## 2.8.1
292
+
293
+ ### Patch Changes
294
+
295
+ - [`2075620`](https://github.com/ethlete-io/ethdk/commit/207562029beaaa6486f1704f87a595ff2843bdb2) Thanks [@TomTomB](https://github.com/TomTomB)! - Dont emit wrong viewport values
296
+
297
+ ## 2.8.0
298
+
299
+ ### Minor Changes
300
+
301
+ - [`83f669a`](https://github.com/ethlete-io/ethdk/commit/83f669aca4fff6a05491a3cefb4031eafa34b65e) Thanks [@TomTomB](https://github.com/TomTomB)! - Add createMutationObservable util
302
+
303
+ ### Patch Changes
304
+
305
+ - [`729054e`](https://github.com/ethlete-io/ethdk/commit/729054e40a9ad8b6a8623e3cf90c9c07e8be59d8) Thanks [@TomTomB](https://github.com/TomTomB)! - Minor scrollable fixes
306
+
307
+ - [`761c829`](https://github.com/ethlete-io/ethdk/commit/761c829811223998e8ac48338bd47241e7466e14) Thanks [@TomTomB](https://github.com/TomTomB)! - Allow for ip as hostname for cookies
308
+
309
+ ## 2.7.4
310
+
311
+ ### Patch Changes
312
+
313
+ - [`55af23e`](https://github.com/ethlete-io/ethdk/commit/55af23e37f477f5321b606a94cecf91d9073aa01) Thanks [@TomTomB](https://github.com/TomTomB)! - Improve perf of viewport monitor
314
+
315
+ ## 2.7.3
316
+
317
+ ### Patch Changes
318
+
319
+ - [`cbd9385`](https://github.com/ethlete-io/ethdk/commit/cbd93850ada03effdfb7e2954fbb0338856b3267) Thanks [@TomTomB](https://github.com/TomTomB)! - Prevent events after cursor dragging completed
320
+
321
+ ## 2.7.2
322
+
323
+ ### Patch Changes
324
+
325
+ - [`f972a3d`](https://github.com/ethlete-io/ethdk/commit/f972a3dcd3dc202ca572c655fa9536ea8ed6f77c) Thanks [@TomTomB](https://github.com/TomTomB)! - Minor scrolling and scrollable fixups
326
+
327
+ ## 2.7.1
328
+
329
+ ### Patch Changes
330
+
331
+ - [`f8df5b6`](https://github.com/ethlete-io/ethdk/commit/f8df5b66eea7c2cbf9e0143ecac0972f13c0befb) Thanks [@TomTomB](https://github.com/TomTomB)! - Dont wait for the next frame inside reactive bindings if eager option is set to true to avoid flickering
332
+
333
+ ## 2.7.0
334
+
335
+ ### Minor Changes
336
+
337
+ - [`cbfaaec`](https://github.com/ethlete-io/ethdk/commit/cbfaaece5879ce19578446c8462ad28c4814605d) Thanks [@TomTomB](https://github.com/TomTomB)! - Add getElementVisibleStates scroll util
338
+
339
+ ## 2.6.1
340
+
341
+ ### Patch Changes
342
+
343
+ - [`495e422`](https://github.com/ethlete-io/ethdk/commit/495e422baed0ed5fcfdfa3662545c75b67bbff8a) Thanks [@TomTomB](https://github.com/TomTomB)! - Add option for cursor drag scroll to only allow for specific directions
344
+
345
+ ## 2.6.0
346
+
347
+ ### Minor Changes
348
+
349
+ - [`ae600ae`](https://github.com/ethlete-io/ethdk/commit/ae600aeb3726d11c433e7f48677471db34b0e3ca) Thanks [@TomTomB](https://github.com/TomTomB)! - Add isElement helper directive
350
+
351
+ ## 2.5.1
352
+
353
+ ### Patch Changes
354
+
355
+ - [`e353a84`](https://github.com/ethlete-io/ethdk/commit/e353a841abac16b8eb75a94d287f91ea41041412) Thanks [@TomTomB](https://github.com/TomTomB)! - Wait for next frame inside reactive bindings before changing them on the html element
356
+
357
+ ## 2.5.0
358
+
359
+ ### Minor Changes
360
+
361
+ - [`84eabbe`](https://github.com/ethlete-io/ethdk/commit/84eabbe126fd418f75f4577c13ff3200f787b31a) Thanks [@TomTomB](https://github.com/TomTomB)! - Add active selection model util
362
+
363
+ ## 2.4.3
364
+
365
+ ### Patch Changes
366
+
367
+ - [`8d826df`](https://github.com/ethlete-io/ethdk/commit/8d826df4882bbfdf32aa6ee7ba985289bfb66c5f) Thanks [@TomTomB](https://github.com/TomTomB)! - Add aditional checks to prevent overlays from getting stuck during animation
368
+
369
+ ## 2.4.2
370
+
371
+ ### Patch Changes
372
+
373
+ - [`9ac46dc`](https://github.com/ethlete-io/ethdk/commit/9ac46dcc5e0f48e862ce5289c054c4f99eb4a3e6) Thanks [@TomTomB](https://github.com/TomTomB)! - Add option for allowed auto placements inside animated overlay
374
+
375
+ ## 2.4.1
376
+
377
+ ### Patch Changes
378
+
379
+ - [`cb4c725`](https://github.com/ethlete-io/ethdk/commit/cb4c725802dde5301006aa68662d1b934109dd4c) Thanks [@TomTomB](https://github.com/TomTomB)! - Add docs for router state service methods
380
+
381
+ ## 2.4.0
382
+
383
+ ### Minor Changes
384
+
385
+ - [`dc03f1a`](https://github.com/ethlete-io/ethdk/commit/dc03f1ae29f411c40d5194be83c907864aa2b01a) Thanks [@TomTomB](https://github.com/TomTomB)! - Add missing sync getter for route inside RouterStateService
386
+
387
+ - [`6f32c36`](https://github.com/ethlete-io/ethdk/commit/6f32c36a273bbfd7b87fe16937947b806746c61a) Thanks [@TomTomB](https://github.com/TomTomB)! - Add monitorViewport method to ViewportService for monitoring viewport and scrollbar sizes
388
+
389
+ ### Patch Changes
390
+
391
+ - [`7376a9c`](https://github.com/ethlete-io/ethdk/commit/7376a9ca8db516ba4fb532990b264858a74797be) Thanks [@TomTomB](https://github.com/TomTomB)! - Use elementRef if etAnimateable input is an empty string
392
+
393
+ ## 2.3.0
394
+
395
+ ### Minor Changes
396
+
397
+ - [`4ed2d76`](https://github.com/ethlete-io/ethdk/commit/4ed2d765881843143af8fde26d97fca095cb3ed5) Thanks [@TomTomB](https://github.com/TomTomB)! - Add selection model and runtime error utils
398
+
399
+ ## 2.2.1
400
+
401
+ ### Patch Changes
402
+
403
+ - [`e917beb`](https://github.com/ethlete-io/ethdk/commit/e917beb55fde0585906e1c32755b969f6427030f) Thanks [@TomTomB](https://github.com/TomTomB)! - Keep track of mounted status inside animated overlay directive
404
+
405
+ ## 2.2.0
406
+
407
+ ### Minor Changes
408
+
409
+ - [`901b4e4`](https://github.com/ethlete-io/ethdk/commit/901b4e49afd87eec5574686fc7e5606cae5c7f87) Thanks [@TomTomB](https://github.com/TomTomB)! - Add additional observables to RouterStateService
410
+
411
+ ## 2.1.0
412
+
413
+ ### Minor Changes
414
+
415
+ - [`6f2f3e5`](https://github.com/ethlete-io/ethdk/commit/6f2f3e5962f225b1d3b2aed6170222c5431cec93) Thanks [@TomTomB](https://github.com/TomTomB)! - Add IsActiveElementDirective
416
+
417
+ ## 2.0.0
418
+
419
+ ### Major Changes
420
+
421
+ - [`6f30804`](https://github.com/ethlete-io/ethdk/commit/6f308042b9912d0a4b9ebd71e79afb5ab5269194) Thanks [@TomTomB](https://github.com/TomTomB)! - Remove `DestroyService` in favor of `createDestroy()` method. `createDestroy()` can only be used from within an injection context and will assert otherwise.
422
+
423
+ Before:
424
+
425
+ ```ts
426
+ import { DestroyService } from "@ethlete/core";
427
+
428
+ @Component({
429
+ selector: "my-component",
430
+ template: `...`,
431
+ providers: [DestroyService],
432
+ })
433
+ export class MyComponent {
434
+ private readonly _destroy$ = inject(DestroyService).destroy$;
435
+ }
436
+ ```
437
+
438
+ After:
439
+
440
+ ```ts
441
+ import { createDestroy } from "@ethlete/core";
442
+
443
+ @Component({
444
+ selector: "my-component",
445
+ template: `...`,
446
+ })
447
+ export class MyComponent {
448
+ private readonly _destroy$ = createDestroy();
449
+ }
450
+ ```
451
+
452
+ ### Minor Changes
453
+
454
+ - [`8897054`](https://github.com/ethlete-io/ethdk/commit/88970546ffd9b98071767892833a7509532627db) Thanks [@TomTomB](https://github.com/TomTomB)! - Add AnimatedOverlay directive
455
+
456
+ ## 1.10.1
457
+
458
+ ### Patch Changes
459
+
460
+ - [`04e0db6`](https://github.com/ethlete-io/ethdk/commit/04e0db6c0007d58705f88605f3f8ed2d0ad05ce3) Thanks [@TomTomB](https://github.com/TomTomB)! - Update to Angular 16
461
+
462
+ ## 1.10.0
463
+
464
+ ### Minor Changes
465
+
466
+ - [`a69bb1d`](https://github.com/ethlete-io/ethdk/commit/a69bb1d9a40891968c12b45031b4a73dc77ab205) Thanks [@TomTomB](https://github.com/TomTomB)! - Add host directive type def
467
+
468
+ ## 1.9.1
469
+
470
+ ### Patch Changes
471
+
472
+ - [`258b391`](https://github.com/ethlete-io/ethdk/commit/258b391370d69e2e496ec0ddd8b13d4eb5ede36a) Thanks [@TomTomB](https://github.com/TomTomB)! - Ignore delayable updates if the values doesnt change
473
+
474
+ ## 1.9.0
475
+
476
+ ### Minor Changes
477
+
478
+ - [`902ce1a`](https://github.com/ethlete-io/ethdk/commit/902ce1a60322e011e7b5e1c01d5875f68266f334) Thanks [@TomTomB](https://github.com/TomTomB)! - Add DelayableDirective
479
+
480
+ ## 1.8.2
481
+
482
+ ### Patch Changes
483
+
484
+ - [`dad4625`](https://github.com/ethlete-io/ethdk/commit/dad4625e17756ecf3321c016d9f9d0501303e1e0) Thanks [@TomTomB](https://github.com/TomTomB)! - Use distinctUntilChanged() inside router state observables
485
+
486
+ ## 1.8.1
487
+
488
+ ### Patch Changes
489
+
490
+ - [`717949c`](https://github.com/ethlete-io/ethdk/commit/717949cc020e248561213502aaea001b187b8c68) Thanks [@TomTomB](https://github.com/TomTomB)! - Allow for more than 4 chars after the last dot in an email adress
491
+
492
+ ## 1.8.0
493
+
494
+ ### Minor Changes
495
+
496
+ - [`400405d`](https://github.com/ethlete-io/ethdk/commit/400405dfded6a2b64ff69ce6a4b745c306ea5da2) Thanks [@TomTomB](https://github.com/TomTomB)! - Add option to supply a origin element to createFlipAnimation
497
+
498
+ ## 1.7.0
499
+
500
+ ### Minor Changes
501
+
502
+ - [#534](https://github.com/ethlete-io/ethdk/pull/534) [`03211cb`](https://github.com/ethlete-io/ethdk/commit/03211cb9915e6ab796649d19309fb1bbc631e09b) Thanks [@Marc-BrauneDigital](https://github.com/Marc-BrauneDigital)! - Add option to add inline/block-scroll-margin to scrollToElement
503
+
504
+ ## 1.6.0
505
+
506
+ ### Minor Changes
507
+
508
+ - [`686f3cb`](https://github.com/ethlete-io/ethdk/commit/686f3cb7d9cd7a924da499dea1054beba9dbd10f) Thanks [@TomTomB](https://github.com/TomTomB)! - Expose scrolling utils `scrollToElement` and `isElementVisible`
509
+
510
+ ## 1.5.1
511
+
512
+ ### Patch Changes
513
+
514
+ - [`4cf410b`](https://github.com/ethlete-io/ethdk/commit/4cf410bcd336a74fbd79e36b17d870f1a1a9e56e) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix viewport service share replay having a buffer size of infinity
515
+
516
+ ## 1.5.0
517
+
518
+ ### Minor Changes
519
+
520
+ - [`dce8411`](https://github.com/ethlete-io/ethdk/commit/dce8411e198e4e8b4dec37781b5f7cfbea9c4be6) Thanks [@TomTomB](https://github.com/TomTomB)! - Add smart block scroll stategy
521
+
522
+ ## 1.4.3
523
+
524
+ ### Patch Changes
525
+
526
+ - [`a37d5b8`](https://github.com/ethlete-io/ethdk/commit/a37d5b8f713d57c23ba857d31b2c59601efeebb6) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix endless loop when scrollable content changes a lot
527
+
528
+ ## 1.4.2
529
+
530
+ ### Patch Changes
531
+
532
+ - [`d460577`](https://github.com/ethlete-io/ethdk/commit/d4605771f787d0505c83c2ad945b1d12ce7f3502) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix scroll observer having issues with decimals
533
+
534
+ ## 1.4.1
535
+
536
+ ### Patch Changes
537
+
538
+ - [`f092450`](https://github.com/ethlete-io/ethdk/commit/f092450e661121dde9c3a7a56d53edd982a20136) Thanks [@TomTomB](https://github.com/TomTomB)! - Mark DestroyService as deprecated
539
+
540
+ ## 1.4.0
541
+
542
+ ### Minor Changes
543
+
544
+ - [`033c740`](https://github.com/ethlete-io/ethdk/commit/033c740e78a561fdf9652dc0b0e6fc84abe36dc8) Thanks [@TomTomB](https://github.com/TomTomB)! - Add util to create a behavior subject that exposes a subscriber count
545
+
546
+ ## 1.3.0
547
+
548
+ ### Minor Changes
549
+
550
+ - [`6006f19`](https://github.com/ethlete-io/ethdk/commit/6006f199078516109749437611a9356d7897ef7f) Thanks [@TomTomB](https://github.com/TomTomB)! - Add create flip animation group util
551
+
552
+ ## 1.2.0
553
+
554
+ ### Minor Changes
555
+
556
+ - [#487](https://github.com/ethlete-io/ethdk/pull/487) [`b5180bd`](https://github.com/ethlete-io/ethdk/commit/b5180bd849f458b3efc640616db6bbd0b408fbd2) Thanks [@TomTomB](https://github.com/TomTomB)! - Add flip animation builder
557
+
558
+ ## 1.1.1
559
+
560
+ ### Patch Changes
561
+
562
+ - [`b2f75c2`](https://github.com/ethlete-io/ethdk/commit/b2f75c27422b6eec2956a1780a34b21253bb4561) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix dialog and bottom sheet getting stuck in an open position
563
+
564
+ ## 1.1.0
565
+
566
+ ### Minor Changes
567
+
568
+ - [#480](https://github.com/ethlete-io/ethdk/pull/480) [`920e5f2`](https://github.com/ethlete-io/ethdk/commit/920e5f2f77cd46cb9af42abccd3b66f08cf40896) Thanks [@TomTomB](https://github.com/TomTomB)! - Allow passing element or selector to animatable directive
569
+
570
+ ## 1.0.0
571
+
572
+ ### Major Changes
573
+
574
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`44ac6e6`](https://github.com/ethlete-io/ethdk/commit/44ac6e621c9b2c2e02b45f7abc2c1b3111604d56) Thanks [@TomTomB](https://github.com/TomTomB)! - Initial stable release
575
+
576
+ ### Minor Changes
577
+
578
+ - [#460](https://github.com/ethlete-io/ethdk/pull/460) [`220baf3`](https://github.com/ethlete-io/ethdk/commit/220baf35ae75fe46e7e5b9b9fa089ee6da824070) Thanks [@nziermann](https://github.com/nziermann)! - Add createMediaQueryObservable util
579
+
580
+ - [#455](https://github.com/ethlete-io/ethdk/pull/455) [`820a761`](https://github.com/ethlete-io/ethdk/commit/820a761d923982d3bb25fe9d5b0f89e8bfdb9e96) Thanks [@nziermann](https://github.com/nziermann)! - Add more options to router state enableScrollEnhancements fn
581
+
582
+ - [#446](https://github.com/ethlete-io/ethdk/pull/446) [`f8a8d5c`](https://github.com/ethlete-io/ethdk/commit/f8a8d5c9c4750b979f73fb866aa15d65d3c5971a) Thanks [@nziermann](https://github.com/nziermann)! - Add router state service
583
+
584
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`e1e2f74`](https://github.com/ethlete-io/ethdk/commit/e1e2f7405641a47cd608f375f1174d367538da89) Thanks [@TomTomB](https://github.com/TomTomB)! - Add normalize game result type pipe
585
+
586
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`834dab4`](https://github.com/ethlete-io/ethdk/commit/834dab4317f6bafd7919263c56bd6638a0a9ad09) Thanks [@TomTomB](https://github.com/TomTomB)! - Remove destroy directive in favor of destroy service
587
+
588
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`210e892`](https://github.com/ethlete-io/ethdk/commit/210e892bcb20003f7d3d3535a65aaa2ac9d41602) Thanks [@TomTomB](https://github.com/TomTomB)! - - Feat: Add `currentViewport# @ethlete/core and `currentViewport` to get the current viewport string to the viewport service
589
+
590
+ - Feat: Add resize & content observer directives & services
591
+ - Fix: Append less decimals to breakpoints created by the viewport service
592
+ - Fix: Use all available args to create a cache id by the @Memo default resolver
593
+
594
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`24ded48`](https://github.com/ethlete-io/ethdk/commit/24ded48c0bf6ce2239f2a831dda2d3c3b9a74a37) Thanks [@TomTomB](https://github.com/TomTomB)! - Add animated lifecycle directive
595
+
596
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`e55f055`](https://github.com/ethlete-io/ethdk/commit/e55f055306dbeac226cb9d3e989d3bca2804bd3f) Thanks [@nziermann](https://github.com/nziermann)! - Add some missing methods to typed query list
597
+
598
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`c8c5ac8`](https://github.com/ethlete-io/ethdk/commit/c8c5ac80b4dd71c628776aa6aaaef67d9eda8b51) Thanks [@TomTomB](https://github.com/TomTomB)! - Add animateable directive
599
+
600
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`b3577c6`](https://github.com/ethlete-io/ethdk/commit/b3577c65bacf9a9b27a967fa9fe44d29d6531cf8) Thanks [@TomTomB](https://github.com/TomTomB)! - Add seo directive
601
+
602
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`9ea8477`](https://github.com/ethlete-io/ethdk/commit/9ea847781fb53dc6cb2c00c7f4be15a0244534fb) Thanks [@nziermann](https://github.com/nziermann)! - Add structured data component
603
+
604
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`429709e`](https://github.com/ethlete-io/ethdk/commit/429709ef74d4728e2b7019a0bb7dd0dd94ff2c79) Thanks [@nziermann](https://github.com/nziermann)! - Allow customizing the element ref for reactive bindings
605
+
606
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`2ffd101`](https://github.com/ethlete-io/ethdk/commit/2ffd1014a15812d31c07f0e55c12b34727f03d9a) Thanks [@TomTomB](https://github.com/TomTomB)! - Add click observer service
607
+
608
+ - [#49](https://github.com/ethlete-io/ethdk/pull/49) [`5c95058`](https://github.com/ethlete-io/ethdk/commit/5c9505837ee3e5f2457169591acd01c79eade565) Thanks [@TomTomB](https://github.com/TomTomB)! - - Add memo decorator
609
+
610
+ - Add let & repeat directives
611
+ - Add toArray pipe
612
+ - Add focus visible service
613
+ - Add clamp utils
614
+
615
+ - [#469](https://github.com/ethlete-io/ethdk/pull/469) [`33bec45`](https://github.com/ethlete-io/ethdk/commit/33bec45637946013c6a647701a58e678734fd6fd) Thanks [@nziermann](https://github.com/nziermann)! - Add common form validators
616
+
617
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`0c07f13`](https://github.com/ethlete-io/ethdk/commit/0c07f13d36fe4d79f63d0cbb72c77b94379ed2d6) Thanks [@nziermann](https://github.com/nziermann)! - Support classes in reactive bindings
618
+
619
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`756141c`](https://github.com/ethlete-io/ethdk/commit/756141c6b1eb78f1adc170d90cdcf9f2910e9ba3) Thanks [@nziermann](https://github.com/nziermann)! - Add cookie utils
620
+
621
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`42da540`](https://github.com/ethlete-io/ethdk/commit/42da54003a3b1c7a313b888a97938692e8e43370) Thanks [@TomTomB](https://github.com/TomTomB)! - Add normalize match participants pipe
622
+
623
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`72e0911`](https://github.com/ethlete-io/ethdk/commit/72e0911cac1784f112270e78bc1f2b6a4ffff6cc) Thanks [@nziermann](https://github.com/nziermann)! - Add reactive binding util
624
+
625
+ ### Patch Changes
626
+
627
+ - [#455](https://github.com/ethlete-io/ethdk/pull/455) [`ab20501`](https://github.com/ethlete-io/ethdk/commit/ab2050107a217647cc03c0ba96cf7151896d7f7f) Thanks [@nziermann](https://github.com/nziermann)! - Rename observe directive change events
628
+
629
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`38042f4`](https://github.com/ethlete-io/ethdk/commit/38042f40b4db21ac617aaa841a5869b285baf4a4) Thanks [@TomTomB](https://github.com/TomTomB)! - Replace destroy service with destroy directive since providedIn any is deprecated
630
+
631
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`b7e087c`](https://github.com/ethlete-io/ethdk/commit/b7e087c096aea289fdc81806839ea7dede72e5db) Thanks [@TomTomB](https://github.com/TomTomB)! - Add NgClassType type def
632
+
633
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`90612d8`](https://github.com/ethlete-io/ethdk/commit/90612d8083a41e2fb64db893791ab1f576d564c6) Thanks [@TomTomB](https://github.com/TomTomB)! - Bring back DestoryService to pevent error NG0309
634
+
635
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`222d87b`](https://github.com/ethlete-io/ethdk/commit/222d87b67186d7d97e4d2a8a4d5a611d79a05e43) Thanks [@TomTomB](https://github.com/TomTomB)! - Add option to enable and disable cursor drag scroll directive
636
+
637
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`1816e3e`](https://github.com/ethlete-io/ethdk/commit/1816e3e9bd7d2a3c8505a8b5050026d7f23ff75a) Thanks [@TomTomB](https://github.com/TomTomB)! - Move directives and utils into core from components
638
+
639
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`dcca3cb`](https://github.com/ethlete-io/ethdk/commit/dcca3cb38bd00bab40ec3f3880500ef3bd449f72) Thanks [@TomTomB](https://github.com/TomTomB)! - Fixup minior issues in animated lifecycle directive
640
+
641
+ - [#433](https://github.com/ethlete-io/ethdk/pull/433) [`e385e30`](https://github.com/ethlete-io/ethdk/commit/e385e304974cf562804ae358092fc47475509f21) Thanks [@nziermann](https://github.com/nziermann)! - Fix clone returning undefined if value to clone is not an object
642
+
643
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`b5086c0`](https://github.com/ethlete-io/ethdk/commit/b5086c05df81588791ac5bc5a6497691e51dab5d) Thanks [@nziermann](https://github.com/nziermann)! - Add missing type def for TypedQueryList.find
644
+
645
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`4dad6d6`](https://github.com/ethlete-io/ethdk/commit/4dad6d643f3d5bf5bb7b322781dc4871cef5d956) Thanks [@TomTomB](https://github.com/TomTomB)! - Add scrollable directives to set a custom first and last element
646
+
647
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`4dad6d6`](https://github.com/ethlete-io/ethdk/commit/4dad6d643f3d5bf5bb7b322781dc4871cef5d956) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix scrollable scroll state not getting checked correctly on screen resize
648
+
649
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`50dc199`](https://github.com/ethlete-io/ethdk/commit/50dc199faad225c49350c6595f4664cedb51bc6f) Thanks [@TomTomB](https://github.com/TomTomB)! - Update view if repeat directive input changes
650
+
651
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`83e3c88`](https://github.com/ethlete-io/ethdk/commit/83e3c88011f1808e9f019c2aa6bc5a4b7449e73c) Thanks [@TomTomB](https://github.com/TomTomB)! - Missing release for scroll observer fixes
652
+
653
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`1327af1`](https://github.com/ethlete-io/ethdk/commit/1327af13c721f8fe26d53bd12abd17e93d62bee5) Thanks [@TomTomB](https://github.com/TomTomB)! - Dependency updates
654
+
655
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`0ce1f51`](https://github.com/ethlete-io/ethdk/commit/0ce1f51b0ffe8b69f2774d283bab8fa3b3d10c91) Thanks [@nziermann](https://github.com/nziermann)! - Use faster versions of cloning and comparing objects
656
+
657
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`b5c4ec9`](https://github.com/ethlete-io/ethdk/commit/b5c4ec9bff52f255b8bf14f17c589c9fa696f265) Thanks [@TomTomB](https://github.com/TomTomB)! - Add classes to current scroll observed elements
658
+
659
+ - [#475](https://github.com/ethlete-io/ethdk/pull/475) [`9ab3ac6`](https://github.com/ethlete-io/ethdk/commit/9ab3ac6e84dbd8ac08abb8ab23c612c93bfc8f72) Thanks [@TomTomB](https://github.com/TomTomB)! - Make ObserveContentDirective standalone
660
+
661
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`bb74015`](https://github.com/ethlete-io/ethdk/commit/bb740155333084777c57ca4082b0a7d504c1b4ae) Thanks [@nziermann](https://github.com/nziermann)! - Fix typedefs for TypedQueryList
662
+
663
+ - [#418](https://github.com/ethlete-io/ethdk/pull/418) [`2be3d4b`](https://github.com/ethlete-io/ethdk/commit/2be3d4b3307995385cde6326057d14eb08b67072) Thanks [@nziermann](https://github.com/nziermann)! - Skip reactive bildings where values are invalid
664
+
665
+ ## 0.2.0-next.25
666
+
667
+ ### Minor Changes
668
+
669
+ - [`24ded48`](https://github.com/ethlete-io/ethdk/commit/24ded48c0bf6ce2239f2a831dda2d3c3b9a74a37) Thanks [@TomTomB](https://github.com/TomTomB)! - Add animated lifecycle directive
670
+
671
+ - [`c8c5ac8`](https://github.com/ethlete-io/ethdk/commit/c8c5ac80b4dd71c628776aa6aaaef67d9eda8b51) Thanks [@TomTomB](https://github.com/TomTomB)! - Add animateable directive
672
+
673
+ ## 0.2.0-next.24
674
+
675
+ ### Minor Changes
676
+
677
+ - [`33bec45`](https://github.com/ethlete-io/ethdk/commit/33bec45637946013c6a647701a58e678734fd6fd) Thanks [@TomTomB](https://github.com/TomTomB)! - Add common form validators
678
+
679
+ ## 0.2.0-next.23
680
+
681
+ ### Minor Changes
682
+
683
+ - [`220baf3`](https://github.com/ethlete-io/ethdk/commit/220baf35ae75fe46e7e5b9b9fa089ee6da824070) Thanks [@TomTomB](https://github.com/TomTomB)! - Add createMediaQueryObservable util
684
+
685
+ ## 0.2.0-next.22
686
+
687
+ ### Patch Changes
688
+
689
+ - [#455](https://github.com/ethlete-io/ethdk/pull/455) [`ab20501`](https://github.com/ethlete-io/ethdk/commit/ab2050107a217647cc03c0ba96cf7151896d7f7f) Thanks [@nziermann](https://github.com/nziermann)! - Rename observe directive change events
690
+
691
+ ## 0.2.0-next.21
692
+
693
+ ### Minor Changes
694
+
695
+ - [`820a761`](https://github.com/ethlete-io/ethdk/commit/820a761d923982d3bb25fe9d5b0f89e8bfdb9e96) Thanks [@TomTomB](https://github.com/TomTomB)! - Add more options to router state enableScrollEnhancements fn
696
+
697
+ ## 0.2.0-next.20
698
+
699
+ ### Minor Changes
700
+
701
+ - [`f8a8d5c`](https://github.com/ethlete-io/ethdk/commit/f8a8d5c9c4750b979f73fb866aa15d65d3c5971a) Thanks [@TomTomB](https://github.com/TomTomB)! - Add router state service
702
+
703
+ ## 0.2.0-next.19
704
+
705
+ ### Patch Changes
706
+
707
+ - [`e385e30`](https://github.com/ethlete-io/ethdk/commit/e385e304974cf562804ae358092fc47475509f21) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix clone returning undefined if value to clone is not an object
708
+
709
+ ## 0.2.0-next.18
710
+
711
+ ### Patch Changes
712
+
713
+ - [`0ce1f51`](https://github.com/ethlete-io/ethdk/commit/0ce1f51b0ffe8b69f2774d283bab8fa3b3d10c91) Thanks [@TomTomB](https://github.com/TomTomB)! - Use faster versions of cloning and comparing objects
714
+
715
+ ## 0.2.0-next.17
716
+
717
+ ### Patch Changes
718
+
719
+ - [`b5086c0`](https://github.com/ethlete-io/ethdk/commit/b5086c05df81588791ac5bc5a6497691e51dab5d) Thanks [@TomTomB](https://github.com/TomTomB)! - Add missing type def for TypedQueryList.find
720
+
721
+ ## 0.2.0-next.16
722
+
723
+ ### Minor Changes
724
+
725
+ - [`756141c`](https://github.com/ethlete-io/ethdk/commit/756141c6b1eb78f1adc170d90cdcf9f2910e9ba3) Thanks [@TomTomB](https://github.com/TomTomB)! - Add cookie utils
726
+
727
+ ## 0.2.0-next.15
728
+
729
+ ### Minor Changes
730
+
731
+ - [#309](https://github.com/ethlete-io/ethdk/pull/309) [`e55f055`](https://github.com/ethlete-io/ethdk/commit/e55f055306dbeac226cb9d3e989d3bca2804bd3f) Thanks [@renovate](https://github.com/apps/renovate)! - Add some missing methods to typed query list
732
+
733
+ ## 0.2.0-next.14
734
+
735
+ ### Patch Changes
736
+
737
+ - [`2be3d4b`](https://github.com/ethlete-io/ethdk/commit/2be3d4b3307995385cde6326057d14eb08b67072) Thanks [@TomTomB](https://github.com/TomTomB)! - Skip reactive bildings where values are invalid
738
+
739
+ ## 0.2.0-next.13
740
+
741
+ ### Patch Changes
742
+
743
+ - [`bb74015`](https://github.com/ethlete-io/ethdk/commit/bb740155333084777c57ca4082b0a7d504c1b4ae) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix typedefs for TypedQueryList
744
+
745
+ ## 0.2.0-next.12
746
+
747
+ ### Minor Changes
748
+
749
+ - [#303](https://github.com/ethlete-io/ethdk/pull/303) [`429709e`](https://github.com/ethlete-io/ethdk/commit/429709ef74d4728e2b7019a0bb7dd0dd94ff2c79) Thanks [@renovate](https://github.com/apps/renovate)! - Allow customizing the element ref for reactive bindings
750
+
751
+ - [#303](https://github.com/ethlete-io/ethdk/pull/303) [`0c07f13`](https://github.com/ethlete-io/ethdk/commit/0c07f13d36fe4d79f63d0cbb72c77b94379ed2d6) Thanks [@renovate](https://github.com/apps/renovate)! - Support classes in reactive bindings
752
+
753
+ ## 0.2.0-next.11
754
+
755
+ ### Minor Changes
756
+
757
+ - [#303](https://github.com/ethlete-io/ethdk/pull/303) [`9ea8477`](https://github.com/ethlete-io/ethdk/commit/9ea847781fb53dc6cb2c00c7f4be15a0244534fb) Thanks [@renovate](https://github.com/apps/renovate)! - Add structured data component
758
+
759
+ - [#303](https://github.com/ethlete-io/ethdk/pull/303) [`72e0911`](https://github.com/ethlete-io/ethdk/commit/72e0911cac1784f112270e78bc1f2b6a4ffff6cc) Thanks [@renovate](https://github.com/apps/renovate)! - Add reactive binding util
760
+
761
+ ## 0.2.0-next.10
762
+
763
+ ### Minor Changes
764
+
765
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`834dab4`](https://github.com/ethlete-io/ethdk/commit/834dab4317f6bafd7919263c56bd6638a0a9ad09) Thanks [@renovate](https://github.com/apps/renovate)! - Remove destroy directive in favor of destroy service
766
+
767
+ ### Patch Changes
768
+
769
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`50dc199`](https://github.com/ethlete-io/ethdk/commit/50dc199faad225c49350c6595f4664cedb51bc6f) Thanks [@renovate](https://github.com/apps/renovate)! - Update view if repeat directive input changes
770
+
771
+ - [`1327af1`](https://github.com/ethlete-io/ethdk/commit/1327af13c721f8fe26d53bd12abd17e93d62bee5) Thanks [@TomTomB](https://github.com/TomTomB)! - Dependency updates
772
+
773
+ ## 0.2.0-next.9
774
+
775
+ ### Minor Changes
776
+
777
+ - [#167](https://github.com/ethlete-io/ethdk/pull/167) [`e1e2f74`](https://github.com/ethlete-io/ethdk/commit/e1e2f7405641a47cd608f375f1174d367538da89) Thanks [@renovate](https://github.com/apps/renovate)! - Add normalize game result type pipe
778
+
779
+ - [#167](https://github.com/ethlete-io/ethdk/pull/167) [`42da540`](https://github.com/ethlete-io/ethdk/commit/42da54003a3b1c7a313b888a97938692e8e43370) Thanks [@renovate](https://github.com/apps/renovate)! - Add normalize match participants pipe
780
+
781
+ ## 0.2.0-next.8
782
+
783
+ ### Minor Changes
784
+
785
+ - [`b3577c6`](https://github.com/ethlete-io/ethdk/commit/b3577c65bacf9a9b27a967fa9fe44d29d6531cf8) Thanks [@TomTomB](https://github.com/TomTomB)! - Add seo directive
786
+
787
+ ## 0.2.0-next.7
788
+
789
+ ### Patch Changes
790
+
791
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`38042f4`](https://github.com/ethlete-io/ethdk/commit/38042f40b4db21ac617aaa841a5869b285baf4a4) Thanks [@renovate](https://github.com/apps/renovate)! - Replace destroy service with destroy directive since providedIn any is deprecated
792
+
793
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`90612d8`](https://github.com/ethlete-io/ethdk/commit/90612d8083a41e2fb64db893791ab1f576d564c6) Thanks [@renovate](https://github.com/apps/renovate)! - Bring back DestoryService to pevent error NG0309
794
+
795
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`222d87b`](https://github.com/ethlete-io/ethdk/commit/222d87b67186d7d97e4d2a8a4d5a611d79a05e43) Thanks [@renovate](https://github.com/apps/renovate)! - Add option to enable and disable cursor drag scroll directive
796
+
797
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`4dad6d6`](https://github.com/ethlete-io/ethdk/commit/4dad6d643f3d5bf5bb7b322781dc4871cef5d956) Thanks [@renovate](https://github.com/apps/renovate)! - Add scrollable directives to set a custom first and last element
798
+
799
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`4dad6d6`](https://github.com/ethlete-io/ethdk/commit/4dad6d643f3d5bf5bb7b322781dc4871cef5d956) Thanks [@renovate](https://github.com/apps/renovate)! - Fix scrollable scroll state not getting checked correctly on screen resize
800
+
801
+ - [#193](https://github.com/ethlete-io/ethdk/pull/193) [`b5c4ec9`](https://github.com/ethlete-io/ethdk/commit/b5c4ec9bff52f255b8bf14f17c589c9fa696f265) Thanks [@renovate](https://github.com/apps/renovate)! - Add classes to current scroll observed elements
802
+
803
+ ## 0.2.0-next.6
804
+
805
+ ### Patch Changes
806
+
807
+ - [`83e3c88`](https://github.com/ethlete-io/ethdk/commit/83e3c88011f1808e9f019c2aa6bc5a4b7449e73c) Thanks [@TomTomB](https://github.com/TomTomB)! - Missing release for scroll observer fixes
808
+
809
+ ## 0.2.0-next.5
810
+
811
+ ### Patch Changes
812
+
813
+ - [`1816e3e`](https://github.com/ethlete-io/ethdk/commit/1816e3e9bd7d2a3c8505a8b5050026d7f23ff75a) Thanks [@TomTomB](https://github.com/TomTomB)! - Move directives and utils into core from components
814
+
815
+ ## 0.2.0-next.4
816
+
817
+ ### Minor Changes
818
+
819
+ - [`2ffd101`](https://github.com/ethlete-io/ethdk/commit/2ffd1014a15812d31c07f0e55c12b34727f03d9a) Thanks [@TomTomB](https://github.com/TomTomB)! - Add click observer service
820
+
821
+ ## 0.2.0-next.3
822
+
823
+ ### Patch Changes
824
+
825
+ - [`9ab3ac6`](https://github.com/ethlete-io/ethdk/commit/9ab3ac6e84dbd8ac08abb8ab23c612c93bfc8f72) Thanks [@TomTomB](https://github.com/TomTomB)! - Make ObserveContentDirective standalone
826
+
827
+ ## 0.2.0-next.2
828
+
829
+ ### Minor Changes
830
+
831
+ - [`210e892`](https://github.com/ethlete-io/ethdk/commit/210e892bcb20003f7d3d3535a65aaa2ac9d41602) Thanks [@TomTomB](https://github.com/TomTomB)! - - Feat: Add `currentViewport# @ethlete/core and `currentViewport` to get the current viewport string to the viewport service
832
+ - Feat: Add resize & content observer directives & services
833
+ - Fix: Append less decimals to breakpoints created by the viewport service
834
+ - Fix: Use all available args to create a cache id by the @Memo default resolver
835
+
836
+ ## 0.2.0-next.1
837
+
838
+ ### Patch Changes
839
+
840
+ - [`b7e087c`](https://github.com/ethlete-io/ethdk/commit/b7e087c096aea289fdc81806839ea7dede72e5db) Thanks [@TomTomB](https://github.com/TomTomB)! - Add NgClassType type def
841
+
842
+ ## 0.2.0-next.0
843
+
844
+ ### Minor Changes
845
+
846
+ - [#49](https://github.com/ethlete-io/ethdk/pull/49) [`5c95058`](https://github.com/ethlete-io/ethdk/commit/5c9505837ee3e5f2457169591acd01c79eade565) Thanks [@TomTomB](https://github.com/TomTomB)! - - Add memo decorator
847
+ - Add let & repeat directives
848
+ - Add toArray pipe
849
+ - Add focus visible service
850
+ - Add clamp utils
851
+
852
+ ## 0.1.0
853
+
854
+ ### Minor Changes
855
+
856
+ - [#23](https://github.com/ethlete-io/ethdk/pull/23) [`cb4f96f`](https://github.com/ethlete-io/ethdk/commit/cb4f96f732c31ea6511ee5398d094474d8023244) Thanks [@TomTomB](https://github.com/TomTomB)! - Add viewport service