@qualcomm-ui/angular-core 1.6.0 → 2.0.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 (217) hide show
  1. package/fesm2022/qualcomm-ui-angular-core-accordion.mjs +44 -50
  2. package/fesm2022/qualcomm-ui-angular-core-accordion.mjs.map +1 -1
  3. package/fesm2022/qualcomm-ui-angular-core-avatar.mjs +24 -24
  4. package/fesm2022/qualcomm-ui-angular-core-avatar.mjs.map +1 -1
  5. package/fesm2022/qualcomm-ui-angular-core-checkbox.mjs +56 -66
  6. package/fesm2022/qualcomm-ui-angular-core-checkbox.mjs.map +1 -1
  7. package/fesm2022/qualcomm-ui-angular-core-collapsible.mjs +22 -24
  8. package/fesm2022/qualcomm-ui-angular-core-collapsible.mjs.map +1 -1
  9. package/fesm2022/qualcomm-ui-angular-core-collection.mjs +3 -3
  10. package/fesm2022/qualcomm-ui-angular-core-collection.mjs.map +1 -1
  11. package/fesm2022/qualcomm-ui-angular-core-combobox.mjs +116 -152
  12. package/fesm2022/qualcomm-ui-angular-core-combobox.mjs.map +1 -1
  13. package/fesm2022/qualcomm-ui-angular-core-dialog.mjs +64 -78
  14. package/fesm2022/qualcomm-ui-angular-core-dialog.mjs.map +1 -1
  15. package/fesm2022/qualcomm-ui-angular-core-dom.mjs +15 -15
  16. package/fesm2022/qualcomm-ui-angular-core-dom.mjs.map +1 -1
  17. package/fesm2022/qualcomm-ui-angular-core-events.mjs +4 -4
  18. package/fesm2022/qualcomm-ui-angular-core-events.mjs.map +1 -1
  19. package/fesm2022/qualcomm-ui-angular-core-highlight.mjs +9 -15
  20. package/fesm2022/qualcomm-ui-angular-core-highlight.mjs.map +1 -1
  21. package/fesm2022/qualcomm-ui-angular-core-inline-notification.mjs +32 -32
  22. package/fesm2022/qualcomm-ui-angular-core-inline-notification.mjs.map +1 -1
  23. package/fesm2022/qualcomm-ui-angular-core-input.mjs +35 -51
  24. package/fesm2022/qualcomm-ui-angular-core-input.mjs.map +1 -1
  25. package/fesm2022/qualcomm-ui-angular-core-locale.mjs +3 -3
  26. package/fesm2022/qualcomm-ui-angular-core-locale.mjs.map +1 -1
  27. package/fesm2022/qualcomm-ui-angular-core-lorem-ipsum.mjs +11 -23
  28. package/fesm2022/qualcomm-ui-angular-core-lorem-ipsum.mjs.map +1 -1
  29. package/fesm2022/qualcomm-ui-angular-core-machine.mjs +20 -20
  30. package/fesm2022/qualcomm-ui-angular-core-machine.mjs.map +1 -1
  31. package/fesm2022/qualcomm-ui-angular-core-menu.mjs +111 -127
  32. package/fesm2022/qualcomm-ui-angular-core-menu.mjs.map +1 -1
  33. package/fesm2022/qualcomm-ui-angular-core-number-input.mjs +80 -106
  34. package/fesm2022/qualcomm-ui-angular-core-number-input.mjs.map +1 -1
  35. package/fesm2022/qualcomm-ui-angular-core-observers.mjs +3 -3
  36. package/fesm2022/qualcomm-ui-angular-core-observers.mjs.map +1 -1
  37. package/fesm2022/qualcomm-ui-angular-core-pagination.mjs +46 -60
  38. package/fesm2022/qualcomm-ui-angular-core-pagination.mjs.map +1 -1
  39. package/fesm2022/qualcomm-ui-angular-core-password-input.mjs +46 -50
  40. package/fesm2022/qualcomm-ui-angular-core-password-input.mjs.map +1 -1
  41. package/fesm2022/qualcomm-ui-angular-core-popover.mjs +62 -66
  42. package/fesm2022/qualcomm-ui-angular-core-popover.mjs.map +1 -1
  43. package/fesm2022/qualcomm-ui-angular-core-portal.mjs +18 -22
  44. package/fesm2022/qualcomm-ui-angular-core-portal.mjs.map +1 -1
  45. package/fesm2022/qualcomm-ui-angular-core-presence.mjs +18 -24
  46. package/fesm2022/qualcomm-ui-angular-core-presence.mjs.map +1 -1
  47. package/fesm2022/qualcomm-ui-angular-core-progress-ring.mjs +30 -30
  48. package/fesm2022/qualcomm-ui-angular-core-progress-ring.mjs.map +1 -1
  49. package/fesm2022/qualcomm-ui-angular-core-progress.mjs +42 -54
  50. package/fesm2022/qualcomm-ui-angular-core-progress.mjs.map +1 -1
  51. package/fesm2022/qualcomm-ui-angular-core-radio.mjs +72 -80
  52. package/fesm2022/qualcomm-ui-angular-core-radio.mjs.map +1 -1
  53. package/fesm2022/qualcomm-ui-angular-core-segmented-control.mjs +32 -38
  54. package/fesm2022/qualcomm-ui-angular-core-segmented-control.mjs.map +1 -1
  55. package/fesm2022/qualcomm-ui-angular-core-select.mjs +88 -102
  56. package/fesm2022/qualcomm-ui-angular-core-select.mjs.map +1 -1
  57. package/fesm2022/qualcomm-ui-angular-core-side-nav.mjs +44 -58
  58. package/fesm2022/qualcomm-ui-angular-core-side-nav.mjs.map +1 -1
  59. package/fesm2022/qualcomm-ui-angular-core-signals.mjs +2 -2
  60. package/fesm2022/qualcomm-ui-angular-core-signals.mjs.map +1 -1
  61. package/fesm2022/qualcomm-ui-angular-core-slider.mjs +98 -102
  62. package/fesm2022/qualcomm-ui-angular-core-slider.mjs.map +1 -1
  63. package/fesm2022/qualcomm-ui-angular-core-state.mjs +5 -5
  64. package/fesm2022/qualcomm-ui-angular-core-state.mjs.map +1 -1
  65. package/fesm2022/qualcomm-ui-angular-core-switch.mjs +38 -40
  66. package/fesm2022/qualcomm-ui-angular-core-switch.mjs.map +1 -1
  67. package/fesm2022/qualcomm-ui-angular-core-tabs.mjs +51 -65
  68. package/fesm2022/qualcomm-ui-angular-core-tabs.mjs.map +1 -1
  69. package/fesm2022/qualcomm-ui-angular-core-text-area.mjs +34 -34
  70. package/fesm2022/qualcomm-ui-angular-core-text-area.mjs.map +1 -1
  71. package/fesm2022/qualcomm-ui-angular-core-text-input.mjs +37 -37
  72. package/fesm2022/qualcomm-ui-angular-core-text-input.mjs.map +1 -1
  73. package/fesm2022/qualcomm-ui-angular-core-toast.mjs +30 -30
  74. package/fesm2022/qualcomm-ui-angular-core-toast.mjs.map +1 -1
  75. package/fesm2022/qualcomm-ui-angular-core-tooltip.mjs +37 -45
  76. package/fesm2022/qualcomm-ui-angular-core-tooltip.mjs.map +1 -1
  77. package/fesm2022/qualcomm-ui-angular-core-tree.mjs +70 -78
  78. package/fesm2022/qualcomm-ui-angular-core-tree.mjs.map +1 -1
  79. package/fesm2022/qualcomm-ui-angular-core-virtual.mjs +5 -5
  80. package/fesm2022/qualcomm-ui-angular-core-virtual.mjs.map +1 -1
  81. package/package.json +57 -57
  82. package/{accordion/index.d.ts → types/qualcomm-ui-angular-core-accordion.d.ts} +1 -1
  83. package/types/qualcomm-ui-angular-core-accordion.d.ts.map +1 -0
  84. package/{attributes/index.d.ts → types/qualcomm-ui-angular-core-attributes.d.ts} +1 -1
  85. package/types/qualcomm-ui-angular-core-attributes.d.ts.map +1 -0
  86. package/{avatar/index.d.ts → types/qualcomm-ui-angular-core-avatar.d.ts} +1 -1
  87. package/types/qualcomm-ui-angular-core-avatar.d.ts.map +1 -0
  88. package/{checkbox/index.d.ts → types/qualcomm-ui-angular-core-checkbox.d.ts} +1 -1
  89. package/types/qualcomm-ui-angular-core-checkbox.d.ts.map +1 -0
  90. package/{collapsible/index.d.ts → types/qualcomm-ui-angular-core-collapsible.d.ts} +1 -1
  91. package/types/qualcomm-ui-angular-core-collapsible.d.ts.map +1 -0
  92. package/{collection/index.d.ts → types/qualcomm-ui-angular-core-collection.d.ts} +1 -1
  93. package/types/qualcomm-ui-angular-core-collection.d.ts.map +1 -0
  94. package/{combobox/index.d.ts → types/qualcomm-ui-angular-core-combobox.d.ts} +2 -2
  95. package/types/qualcomm-ui-angular-core-combobox.d.ts.map +1 -0
  96. package/{common/index.d.ts → types/qualcomm-ui-angular-core-common.d.ts} +1 -1
  97. package/types/qualcomm-ui-angular-core-common.d.ts.map +1 -0
  98. package/{dialog/index.d.ts → types/qualcomm-ui-angular-core-dialog.d.ts} +1 -1
  99. package/types/qualcomm-ui-angular-core-dialog.d.ts.map +1 -0
  100. package/{dom/index.d.ts → types/qualcomm-ui-angular-core-dom.d.ts} +1 -1
  101. package/types/qualcomm-ui-angular-core-dom.d.ts.map +1 -0
  102. package/{events/index.d.ts → types/qualcomm-ui-angular-core-events.d.ts} +1 -1
  103. package/types/qualcomm-ui-angular-core-events.d.ts.map +1 -0
  104. package/{forms/index.d.ts → types/qualcomm-ui-angular-core-forms.d.ts} +1 -1
  105. package/types/qualcomm-ui-angular-core-forms.d.ts.map +1 -0
  106. package/{highlight/index.d.ts → types/qualcomm-ui-angular-core-highlight.d.ts} +1 -1
  107. package/types/qualcomm-ui-angular-core-highlight.d.ts.map +1 -0
  108. package/{inline-notification/index.d.ts → types/qualcomm-ui-angular-core-inline-notification.d.ts} +1 -1
  109. package/types/qualcomm-ui-angular-core-inline-notification.d.ts.map +1 -0
  110. package/{input/index.d.ts → types/qualcomm-ui-angular-core-input.d.ts} +2 -2
  111. package/types/qualcomm-ui-angular-core-input.d.ts.map +1 -0
  112. package/{locale/index.d.ts → types/qualcomm-ui-angular-core-locale.d.ts} +1 -1
  113. package/types/qualcomm-ui-angular-core-locale.d.ts.map +1 -0
  114. package/{lorem-ipsum/index.d.ts → types/qualcomm-ui-angular-core-lorem-ipsum.d.ts} +1 -1
  115. package/types/qualcomm-ui-angular-core-lorem-ipsum.d.ts.map +1 -0
  116. package/{lucide/index.d.ts → types/qualcomm-ui-angular-core-lucide.d.ts} +1 -1
  117. package/types/qualcomm-ui-angular-core-lucide.d.ts.map +1 -0
  118. package/{machine/index.d.ts → types/qualcomm-ui-angular-core-machine.d.ts} +2 -2
  119. package/types/qualcomm-ui-angular-core-machine.d.ts.map +1 -0
  120. package/{menu/index.d.ts → types/qualcomm-ui-angular-core-menu.d.ts} +1 -1
  121. package/types/qualcomm-ui-angular-core-menu.d.ts.map +1 -0
  122. package/{number-input/index.d.ts → types/qualcomm-ui-angular-core-number-input.d.ts} +1 -1
  123. package/types/qualcomm-ui-angular-core-number-input.d.ts.map +1 -0
  124. package/{observers/index.d.ts → types/qualcomm-ui-angular-core-observers.d.ts} +1 -1
  125. package/types/qualcomm-ui-angular-core-observers.d.ts.map +1 -0
  126. package/{pagination/index.d.ts → types/qualcomm-ui-angular-core-pagination.d.ts} +1 -1
  127. package/types/qualcomm-ui-angular-core-pagination.d.ts.map +1 -0
  128. package/{password-input/index.d.ts → types/qualcomm-ui-angular-core-password-input.d.ts} +1 -1
  129. package/types/qualcomm-ui-angular-core-password-input.d.ts.map +1 -0
  130. package/{popover/index.d.ts → types/qualcomm-ui-angular-core-popover.d.ts} +1 -1
  131. package/types/qualcomm-ui-angular-core-popover.d.ts.map +1 -0
  132. package/{portal/index.d.ts → types/qualcomm-ui-angular-core-portal.d.ts} +1 -1
  133. package/types/qualcomm-ui-angular-core-portal.d.ts.map +1 -0
  134. package/{presence/index.d.ts → types/qualcomm-ui-angular-core-presence.d.ts} +1 -1
  135. package/types/qualcomm-ui-angular-core-presence.d.ts.map +1 -0
  136. package/{progress-ring/index.d.ts → types/qualcomm-ui-angular-core-progress-ring.d.ts} +1 -1
  137. package/types/qualcomm-ui-angular-core-progress-ring.d.ts.map +1 -0
  138. package/{progress/index.d.ts → types/qualcomm-ui-angular-core-progress.d.ts} +1 -1
  139. package/types/qualcomm-ui-angular-core-progress.d.ts.map +1 -0
  140. package/{radio/index.d.ts → types/qualcomm-ui-angular-core-radio.d.ts} +1 -1
  141. package/types/qualcomm-ui-angular-core-radio.d.ts.map +1 -0
  142. package/{segmented-control/index.d.ts → types/qualcomm-ui-angular-core-segmented-control.d.ts} +1 -1
  143. package/types/qualcomm-ui-angular-core-segmented-control.d.ts.map +1 -0
  144. package/{select/index.d.ts → types/qualcomm-ui-angular-core-select.d.ts} +1 -1
  145. package/types/qualcomm-ui-angular-core-select.d.ts.map +1 -0
  146. package/{side-nav/index.d.ts → types/qualcomm-ui-angular-core-side-nav.d.ts} +1 -1
  147. package/types/qualcomm-ui-angular-core-side-nav.d.ts.map +1 -0
  148. package/{signals/index.d.ts → types/qualcomm-ui-angular-core-signals.d.ts} +1 -1
  149. package/types/qualcomm-ui-angular-core-signals.d.ts.map +1 -0
  150. package/{slider/index.d.ts → types/qualcomm-ui-angular-core-slider.d.ts} +1 -1
  151. package/types/qualcomm-ui-angular-core-slider.d.ts.map +1 -0
  152. package/{state/index.d.ts → types/qualcomm-ui-angular-core-state.d.ts} +1 -1
  153. package/types/qualcomm-ui-angular-core-state.d.ts.map +1 -0
  154. package/{switch/index.d.ts → types/qualcomm-ui-angular-core-switch.d.ts} +1 -1
  155. package/types/qualcomm-ui-angular-core-switch.d.ts.map +1 -0
  156. package/{tabs/index.d.ts → types/qualcomm-ui-angular-core-tabs.d.ts} +1 -1
  157. package/types/qualcomm-ui-angular-core-tabs.d.ts.map +1 -0
  158. package/{text-area/index.d.ts → types/qualcomm-ui-angular-core-text-area.d.ts} +1 -1
  159. package/types/qualcomm-ui-angular-core-text-area.d.ts.map +1 -0
  160. package/{text-input/index.d.ts → types/qualcomm-ui-angular-core-text-input.d.ts} +1 -1
  161. package/types/qualcomm-ui-angular-core-text-input.d.ts.map +1 -0
  162. package/{toast/index.d.ts → types/qualcomm-ui-angular-core-toast.d.ts} +1 -1
  163. package/types/qualcomm-ui-angular-core-toast.d.ts.map +1 -0
  164. package/{tooltip/index.d.ts → types/qualcomm-ui-angular-core-tooltip.d.ts} +1 -1
  165. package/types/qualcomm-ui-angular-core-tooltip.d.ts.map +1 -0
  166. package/{tree/index.d.ts → types/qualcomm-ui-angular-core-tree.d.ts} +1 -1
  167. package/types/qualcomm-ui-angular-core-tree.d.ts.map +1 -0
  168. package/{virtual/index.d.ts → types/qualcomm-ui-angular-core-virtual.d.ts} +1 -1
  169. package/types/qualcomm-ui-angular-core-virtual.d.ts.map +1 -0
  170. package/types/qualcomm-ui-angular-core.d.ts +3 -0
  171. package/types/qualcomm-ui-angular-core.d.ts.map +1 -0
  172. package/accordion/index.d.ts.map +0 -1
  173. package/attributes/index.d.ts.map +0 -1
  174. package/avatar/index.d.ts.map +0 -1
  175. package/checkbox/index.d.ts.map +0 -1
  176. package/collapsible/index.d.ts.map +0 -1
  177. package/collection/index.d.ts.map +0 -1
  178. package/combobox/index.d.ts.map +0 -1
  179. package/common/index.d.ts.map +0 -1
  180. package/dialog/index.d.ts.map +0 -1
  181. package/dom/index.d.ts.map +0 -1
  182. package/events/index.d.ts.map +0 -1
  183. package/forms/index.d.ts.map +0 -1
  184. package/highlight/index.d.ts.map +0 -1
  185. package/index.d.ts +0 -3
  186. package/index.d.ts.map +0 -1
  187. package/inline-notification/index.d.ts.map +0 -1
  188. package/input/index.d.ts.map +0 -1
  189. package/locale/index.d.ts.map +0 -1
  190. package/lorem-ipsum/index.d.ts.map +0 -1
  191. package/lucide/index.d.ts.map +0 -1
  192. package/machine/index.d.ts.map +0 -1
  193. package/menu/index.d.ts.map +0 -1
  194. package/number-input/index.d.ts.map +0 -1
  195. package/observers/index.d.ts.map +0 -1
  196. package/pagination/index.d.ts.map +0 -1
  197. package/password-input/index.d.ts.map +0 -1
  198. package/popover/index.d.ts.map +0 -1
  199. package/portal/index.d.ts.map +0 -1
  200. package/presence/index.d.ts.map +0 -1
  201. package/progress/index.d.ts.map +0 -1
  202. package/progress-ring/index.d.ts.map +0 -1
  203. package/radio/index.d.ts.map +0 -1
  204. package/segmented-control/index.d.ts.map +0 -1
  205. package/select/index.d.ts.map +0 -1
  206. package/side-nav/index.d.ts.map +0 -1
  207. package/signals/index.d.ts.map +0 -1
  208. package/slider/index.d.ts.map +0 -1
  209. package/state/index.d.ts.map +0 -1
  210. package/switch/index.d.ts.map +0 -1
  211. package/tabs/index.d.ts.map +0 -1
  212. package/text-area/index.d.ts.map +0 -1
  213. package/text-input/index.d.ts.map +0 -1
  214. package/toast/index.d.ts.map +0 -1
  215. package/tooltip/index.d.ts.map +0 -1
  216. package/tree/index.d.ts.map +0 -1
  217. package/virtual/index.d.ts.map +0 -1
@@ -23,7 +23,7 @@ import { mergeProps as mergeProps$1 } from '@qualcomm-ui/utils/merge-props';
23
23
  * @template T - The type of the data returned by the API.
24
24
  */
25
25
  class BaseApiContextService {
26
- initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : []));
26
+ initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
27
27
  get context() {
28
28
  if (!this._context) {
29
29
  throw new Error("context not initialized");
@@ -38,10 +38,10 @@ class BaseApiContextService {
38
38
  this._context = computedApi;
39
39
  this.initialized.set(true);
40
40
  }
41
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BaseApiContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BaseApiContextService });
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: BaseApiContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: BaseApiContextService });
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BaseApiContextService, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: BaseApiContextService, decorators: [{
45
45
  type: Injectable
46
46
  }] });
47
47
  function createApiContext(name, service, initialValue) {
@@ -100,17 +100,17 @@ class ApiContextDirective {
100
100
  }
101
101
  }, { injector: this.injector });
102
102
  }
103
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApiContextDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
104
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: ApiContextDirective, isStandalone: true, ngImport: i0 });
103
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: ApiContextDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
104
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.2", type: ApiContextDirective, isStandalone: true, ngImport: i0 });
105
105
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApiContextDirective, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: ApiContextDirective, decorators: [{
107
107
  type: Directive
108
108
  }], ctorParameters: () => [{ type: BaseApiContextService }, { type: undefined }] });
109
109
 
110
110
  // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
111
111
  // SPDX-License-Identifier: BSD-3-Clause-Clear
112
112
  function bindableIdCollection() {
113
- const collection = signal({}, ...(ngDevMode ? [{ debugName: "collection" }] : []));
113
+ const collection = signal({}, ...(ngDevMode ? [{ debugName: "collection" }] : /* istanbul ignore next */ []));
114
114
  return {
115
115
  get(itemKey) {
116
116
  return collection()[itemKey];
@@ -162,7 +162,7 @@ function bindableIdCollection() {
162
162
  function bindableId(initialValue) {
163
163
  // this value won't trigger change detection, but signals do
164
164
  let cachedValue = initialValue;
165
- const value = signal(initialValue, ...(ngDevMode ? [{ debugName: "value" }] : []));
165
+ const value = signal(initialValue, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
166
166
  return {
167
167
  get() {
168
168
  return value();
@@ -182,9 +182,9 @@ function bindableId(initialValue) {
182
182
  function bindable(props) {
183
183
  const initial = props().value ?? props().defaultValue;
184
184
  const eq = props().isEqual ?? Object.is;
185
- const value = signal(initial, ...(ngDevMode ? [{ debugName: "value" }] : []));
186
- const controlled = computed(() => props().value !== undefined, ...(ngDevMode ? [{ debugName: "controlled" }] : []));
187
- const valueRef = computed(() => (controlled() ? props().value : value()), ...(ngDevMode ? [{ debugName: "valueRef" }] : []));
185
+ const value = signal(initial, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
186
+ const controlled = computed(() => props().value !== undefined, ...(ngDevMode ? [{ debugName: "controlled" }] : /* istanbul ignore next */ []));
187
+ const valueRef = computed(() => (controlled() ? props().value : value()), ...(ngDevMode ? [{ debugName: "valueRef" }] : /* istanbul ignore next */ []));
188
188
  return {
189
189
  get() {
190
190
  return valueRef();
@@ -307,8 +307,8 @@ function mergeProps(...sources) {
307
307
  * <div [q-bind]="buttonProps"></div>
308
308
  */
309
309
  class QBindDirective {
310
- bind = input.required(...(ngDevMode ? [{ debugName: "bind", alias: "q-bind" }] : [{ alias: "q-bind" }]));
311
- bindOptions = input({}, ...(ngDevMode ? [{ debugName: "bindOptions", alias: "q-bind-options" }] : [{ alias: "q-bind-options" }]));
310
+ bind = input.required({ ...(ngDevMode ? { debugName: "bind" } : /* istanbul ignore next */ {}), alias: "q-bind" });
311
+ bindOptions = input({}, { ...(ngDevMode ? { debugName: "bindOptions" } : /* istanbul ignore next */ {}), alias: "q-bind-options" });
312
312
  elementRef = inject((ElementRef));
313
313
  renderer = inject(Renderer2);
314
314
  injector = inject(Injector);
@@ -317,7 +317,7 @@ class QBindDirective {
317
317
  omittedProps = computed(() => {
318
318
  const opts = this.bindOptions();
319
319
  return new Set(Array.from(opts.omittedProps || []));
320
- }, ...(ngDevMode ? [{ debugName: "omittedProps" }] : []));
320
+ }, ...(ngDevMode ? [{ debugName: "omittedProps" }] : /* istanbul ignore next */ []));
321
321
  constructor() {
322
322
  runInInjectionContext(this.injector, () => {
323
323
  effect(() => {
@@ -440,10 +440,10 @@ class QBindDirective {
440
440
  }
441
441
  }
442
442
  }
443
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: QBindDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
444
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: QBindDirective, isStandalone: true, selector: "[q-bind]", inputs: { bind: { classPropertyName: "bind", publicName: "q-bind", isSignal: true, isRequired: true, transformFunction: null }, bindOptions: { classPropertyName: "bindOptions", publicName: "q-bind-options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
443
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: QBindDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
444
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.2", type: QBindDirective, isStandalone: true, selector: "[q-bind]", inputs: { bind: { classPropertyName: "bind", publicName: "q-bind", isSignal: true, isRequired: true, transformFunction: null }, bindOptions: { classPropertyName: "bindOptions", publicName: "q-bind-options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
445
445
  }
446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: QBindDirective, decorators: [{
446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: QBindDirective, decorators: [{
447
447
  type: Directive,
448
448
  args: [{
449
449
  selector: "[q-bind]",
@@ -557,7 +557,7 @@ function toAngularProp(prop) {
557
557
  // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
558
558
  // SPDX-License-Identifier: BSD-3-Clause-Clear
559
559
  function createRefs(refs) {
560
- const ref = signal(refs, ...(ngDevMode ? [{ debugName: "ref" }] : []));
560
+ const ref = signal(refs, ...(ngDevMode ? [{ debugName: "ref" }] : /* istanbul ignore next */ []));
561
561
  return {
562
562
  get(key) {
563
563
  return ref()[key];
@@ -1073,7 +1073,7 @@ function useTrackBindings(propGetter) {
1073
1073
  }
1074
1074
  }
1075
1075
  }
1076
- const initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : []));
1076
+ const initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
1077
1077
  function getNextBindings() {
1078
1078
  if (!additionalPropGetters.length) {
1079
1079
  return propGetter();
@@ -1 +1 @@
1
- {"version":3,"file":"qualcomm-ui-angular-core-machine.mjs","sources":["../../src/machine/api-context.service.ts","../../src/machine/api-context.directive.ts","../../src/machine/bindable-id-collection.ts","../../src/machine/bindable-id.ts","../../src/machine/bindable.ts","../../src/machine/merge-props.ts","../../src/machine/q-bind.directive.ts","../../src/machine/normalize-props.ts","../../src/machine/refs.ts","../../src/machine/track.ts","../../src/machine/use-machine.ts","../../src/machine/use-track-bindings.ts","../../src/machine/qualcomm-ui-angular-core-machine.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n inject,\n Injectable,\n InjectionToken,\n type InjectOptions,\n type Provider,\n signal,\n type Signal,\n} from \"@angular/core\"\n\n/**\n * Manages the API context for a service.\n *\n * Provides a way to initialize and access an API signal, ensuring that it is only\n * set once. Attempting to reinitialize or access an uninitialized API will result\n * in errors.\n *\n * @template T - The type of the data returned by the API.\n */\n@Injectable()\nexport abstract class BaseApiContextService<T> {\n readonly initialized = signal(false)\n\n get context() {\n if (!this._context) {\n throw new Error(\"context not initialized\")\n }\n return this._context\n }\n private _context: Signal<T> | undefined\n\n init(computedApi: Signal<T>): void {\n if (this._context) {\n throw new Error(\"context already initialized\")\n }\n this._context = computedApi\n this.initialized.set(true)\n }\n}\n\nexport type UseContextOpts<Optional extends boolean = false> = InjectOptions & {\n /**\n * Use optional injection, and return `null` if the requested token is not found.\n */\n optional?: Optional\n}\n\nexport type ApiContext<T> = [\n InjectionToken<() => T>,\n <Optional extends boolean = false>(\n opts?: UseContextOpts<Optional>,\n ) => Optional extends true ? (() => T) | null : () => T,\n () => Provider[],\n]\n\nexport function createApiContext<\n T,\n K extends typeof BaseApiContextService<T> = typeof BaseApiContextService<T>,\n>(name: string, service: K, initialValue?: T): ApiContext<T> {\n const token = new InjectionToken<() => T>(name)\n\n function useContext<Optional extends boolean = false>(\n opts: UseContextOpts<Optional> = {},\n ) {\n return inject(token, opts)\n }\n\n function getProviders(): Provider[] {\n return [\n service as any,\n {\n deps: [service],\n provide: token,\n useFactory: (context: BaseApiContextService<T>) => {\n if (!context.initialized() && initialValue !== undefined) {\n context.init(signal(initialValue))\n }\n return () => context.context()\n },\n },\n ]\n }\n\n return [token, useContext as ApiContext<T>[1], getProviders]\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n Directive,\n effect,\n inject,\n Injector,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\"\n\nimport {BaseApiContextService} from \"./api-context.service\"\n\n/**\n * Base directive for creating context-aware directives that render content\n * only when an API context is available.\n *\n * This abstract class provides the core functionality to:\n * 1. Check if a required API context service is available\n * 2. Render the associated template only when the API instance is accessible\n * 3. Provide the API instance to the template as a typed value\n */\n@Directive()\nexport abstract class ApiContextDirective<T extends object> {\n private readonly templateRef = inject<TemplateRef<any>>(TemplateRef)\n private readonly viewContainerRef = inject(ViewContainerRef)\n private readonly injector = inject(Injector)\n\n protected constructor(\n // eslint-disable-next-line @angular-eslint/prefer-inject\n contextService: BaseApiContextService<T>,\n contextName: string,\n ) {\n if (!contextService) {\n console.warn(\n `${contextName} used without a parent context. Template will not render.`,\n )\n return\n }\n\n effect(\n () => {\n this.viewContainerRef.clear()\n const apiInstance = contextService.context()\n\n if (apiInstance) {\n this.viewContainerRef.createEmbeddedView(this.templateRef, {\n $implicit: apiInstance,\n [contextName]: apiInstance,\n })\n }\n },\n {injector: this.injector},\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {signal} from \"@angular/core\"\n\nimport type {BindableIdCollection, Dict} from \"@qualcomm-ui/utils/machine\"\n\nexport function bindableIdCollection<T extends Dict>(): BindableIdCollection<\n any,\n any\n> {\n const collection = signal<Record<string, T>>({})\n\n return {\n get(itemKey: string): T | undefined {\n return collection()[itemKey]\n },\n getAll(): Record<string, T> {\n const result: Record<string, T> = {}\n const current = collection()\n for (const key in current) {\n result[key] = current[key]\n }\n return result\n },\n keys(): string[] {\n return Object.keys(collection())\n },\n register(\n itemKey: string,\n value: T,\n onDestroy?: (callback: () => void) => void,\n ) {\n const current = collection()\n if (current[itemKey] === value) {\n return\n }\n\n if (onDestroy) {\n onDestroy(() => {\n const currentState = collection()\n const {[itemKey]: _removed, ...rest} = currentState\n collection.set(rest)\n })\n }\n\n collection.update((prevState) => ({\n ...prevState,\n [itemKey]: value,\n }))\n },\n remove(itemKey: string) {\n const current = collection()\n const {[itemKey]: _removed, ...rest} = current\n collection.set(rest)\n },\n set(itemKey: string, value: T) {\n collection.update((prev) => ({\n ...prev,\n [itemKey]: value,\n }))\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {signal} from \"@angular/core\"\n\nimport type {BindableId} from \"@qualcomm-ui/utils/machine\"\n\nexport function bindableId(\n initialValue: string | undefined,\n): BindableId<string | undefined> {\n // this value won't trigger change detection, but signals do\n let cachedValue = initialValue\n const value = signal(initialValue)\n\n return {\n get(): string | undefined {\n return value()\n },\n set(v: string | undefined) {\n if (cachedValue === v) {\n return\n }\n cachedValue = v\n value.set(v)\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, effect, signal} from \"@angular/core\"\n\nimport {isFunction} from \"@qualcomm-ui/utils/guard\"\nimport type {\n Bindable,\n BindableParams,\n EventDetails,\n} from \"@qualcomm-ui/utils/machine\"\n\nexport function bindable<T, ChangeEvent extends EventDetails | void | null>(\n props: () => BindableParams<T, ChangeEvent>,\n): Bindable<T, ChangeEvent> {\n const initial = props().value ?? props().defaultValue\n\n const eq = props().isEqual ?? Object.is\n\n const value = signal(initial as T)\n const controlled = computed(() => props().value !== undefined)\n\n const valueRef = computed(() => (controlled() ? props().value! : value()))\n\n return {\n get(): T {\n return valueRef()\n },\n hash(value: T) {\n return props().hash?.(value) ?? String(value)\n },\n initial,\n invoke(nextValue: T, prevValue: T) {\n props().onChange?.(nextValue, null as ChangeEvent, prevValue)\n },\n ref: valueRef,\n set(v: T | ((prev: T) => T), event: ChangeEvent) {\n const prev = valueRef()\n const next = isFunction(v) ? v(prev) : v\n\n if (!controlled()) {\n value.set(next)\n }\n\n if (!eq(next, prev)) {\n props().onChange?.(next, event, prev)\n }\n },\n }\n}\n\nbindable.cleanup = (fn: VoidFunction) => {\n effect((onCleanup) => onCleanup(fn))\n}\n\nbindable.ref = <T>(defaultValue: T) => {\n let value = defaultValue\n\n return {\n get: () => value,\n set: (next: T) => {\n value = next\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\nimport {callAll} from \"@qualcomm-ui/utils/functions\"\n\ninterface Props {\n [key: string]: any\n}\n\nconst CSS_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g\n\n/**\n * Converts a CSS text fragment (`\"color:red; width:10px\"`)\n * into a `{color:'red', width:'10px'}` object.\n */\nfunction parseCssText(style: string): Record<string, string> {\n const out: Record<string, string> = {}\n let match: RegExpExecArray | null\n while ((match = CSS_REGEX.exec(style))) {\n out[match[1]] = match[2]\n }\n return out\n}\n\nfunction mergeStyle(\n a: Record<string, string> | string | undefined,\n b: Record<string, string> | string | undefined,\n): Record<string, string> | string {\n if (typeof a === \"string\") {\n if (typeof b === \"string\") {\n return `${a};${b}`\n }\n a = parseCssText(a)\n } else if (typeof b === \"string\") {\n b = parseCssText(b)\n }\n return {...(a ?? {}), ...(b ?? {})}\n}\n\n/**\n * Construct the real resulting type so callers keep strong typing.\n */\ntype MergePropsHelper<T extends readonly Props[]> = T extends readonly [\n infer First extends Props,\n ...infer Rest extends readonly Props[],\n]\n ? Omit<First, \"className\"> & MergePropsHelper<Rest>\n : {}\n\n/**\n * Construct the real resulting type so callers keep strong typing.\n */\nexport type MergeProps<T extends readonly Props[]> = MergePropsHelper<T> & {\n className?: string\n}\n\n/**\n * Angular-friendly version of `mergeProps`.\n *\n * - Handlers (`on*`) are composed with `callAll`.\n * - `class` / `className` values are merged via `clsx`.\n * - `style` strings or objects are merged and normalised.\n *\n * @deprecated import the equivalent from `@qualcomm-ui/utils/merge-props`\n */\nexport function mergeProps<T extends readonly Props[]>(\n ...sources: T\n): MergeProps<T> {\n const result: Props = {}\n\n for (const current of sources) {\n if (!current) {\n continue\n }\n\n for (const key in current) {\n const prev: any = result[key]\n const next: any = current[key]\n\n if (prev !== undefined) {\n if (\n key.startsWith(\"on\") &&\n typeof prev === \"function\" &&\n typeof next === \"function\"\n ) {\n result[key] = callAll(prev, next)\n continue\n }\n\n if (key === \"class\" || key === \"className\") {\n result[key] = clsx(prev, next)\n continue\n }\n\n if (key === \"style\") {\n result[key] = mergeStyle(prev, next)\n continue\n }\n }\n\n result[key] = next\n }\n }\n\n // Adapt the merged object to Angular-friendly prop names.\n return result as MergeProps<T>\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n type OnDestroy,\n Renderer2,\n RendererStyleFlags2,\n runInInjectionContext,\n} from \"@angular/core\"\n\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isNumber, isString} from \"@qualcomm-ui/utils/guard\"\n\nimport type {Dict, StyleObject} from \"./normalize-props\"\n\nexport interface NgBindOptions {\n /**\n * This list of properties will not be spread onto the target element.\n */\n omittedProps?: string[]\n}\n\n/**\n * A directive similar to Vue's `v-bind` that spreads an object's properties onto\n * the host element. For the best performance, use a stable reference to a signal\n * instead of an object literal in the template. Converts callbacks from `on*`\n * syntax to their corresponding Angular event callbacks. Does not account for\n * input/output properties due to Angular limitations.\n *\n * @example\n * <!-- bad: new object every time -->\n * <div [q-bind]=\"{class: 'a', onClick: click}\"></div>\n *\n * <!-- good: stable reference -->\n * <div [q-bind]=\"buttonProps\"></div>\n */\n@Directive({\n selector: \"[q-bind]\",\n})\nexport class QBindDirective implements OnDestroy {\n readonly bind = input.required<Dict | undefined>({alias: \"q-bind\"})\n\n readonly bindOptions = input<NgBindOptions>({}, {alias: \"q-bind-options\"})\n\n private readonly elementRef = inject(ElementRef<HTMLElement>)\n private readonly renderer = inject(Renderer2)\n private readonly injector = inject(Injector)\n private readonly listeners = new Map<string, VoidFunction>()\n private prev: Dict = {}\n\n readonly omittedProps = computed(() => {\n const opts = this.bindOptions()\n return new Set(Array.from(opts.omittedProps || []))\n })\n\n constructor() {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n const next = this.bind()\n if (!isEqual(next, this.prev)) {\n this.handleAttrs(this.prev, next || {})\n this.prev = {...next}\n }\n })\n })\n }\n\n ngOnDestroy(): void {\n this.listeners.forEach((unlisten) => unlisten())\n this.listeners.clear()\n }\n\n private removeClass(names?: string): void {\n if (!names) {\n return\n }\n\n const el = this.elementRef.nativeElement\n for (const name of names.split(\",\")) {\n this.renderer.removeClass(el, name)\n }\n }\n\n private addClass(names: string): void {\n const el = this.elementRef.nativeElement\n for (const className of names.split(\" \")) {\n for (const name of className.split(\",\")) {\n this.renderer.addClass(el, name)\n }\n }\n }\n\n private removeStyle(style?: StyleObject): void {\n if (!style) {\n return\n }\n\n const el = this.elementRef.nativeElement\n for (const name of Object.keys(style)) {\n this.renderer.removeStyle(el, name, RendererStyleFlags2.DashCase)\n }\n }\n\n private addStyle(style: StyleObject): void {\n const el = this.elementRef.nativeElement\n for (const [name, value] of Object.entries(style)) {\n this.renderer.setStyle(el, name, value, RendererStyleFlags2.DashCase)\n }\n }\n\n private addEventListener(name: string, callback: EventListener): void {\n const eventName = name.substring(2)\n\n this.listeners.get(name)?.()\n const unlisten = this.renderer.listen(\n this.elementRef.nativeElement,\n eventName,\n callback,\n )\n this.listeners.set(name, unlisten)\n }\n\n private handleAttrs(prevProps: Dict, nextProps: Dict): void {\n const el = this.elementRef.nativeElement\n\n for (const [name, value] of Object.entries(prevProps)) {\n if (name in nextProps || this.omittedProps().has(name)) {\n continue\n }\n\n if (name.startsWith(\"on\")) {\n this.listeners.get(name)?.()\n this.listeners.delete(name)\n continue\n }\n\n switch (name) {\n case \"class\":\n this.removeClass(value as string)\n continue\n case \"style\":\n this.removeStyle(value as StyleObject)\n continue\n case \"value\":\n this.renderer.setProperty(el, \"value\", undefined)\n continue\n case \"textContent\":\n this.renderer.setProperty(el, \"textContent\", \"\")\n continue\n case \"checked\":\n this.renderer.setProperty(el, \"checked\", false)\n continue\n }\n this.renderer.removeAttribute(el, name)\n }\n\n for (const [name, value] of Object.entries(nextProps)) {\n if (name in prevProps && isEqual(value, prevProps[name])) {\n continue\n }\n\n if (name.startsWith(\"on\")) {\n const prevHandler = prevProps[name]\n if (isEqual(prevHandler, value)) {\n continue\n }\n\n this.addEventListener(name, value as EventListener)\n continue\n }\n\n switch (name) {\n case \"class\":\n this.removeClass(prevProps[name] as string)\n this.addClass(value as string)\n continue\n case \"style\":\n this.removeStyle(prevProps[name] as StyleObject)\n this.addStyle(value as StyleObject)\n continue\n case \"value\":\n case \"checked\":\n case \"textContent\":\n this.renderer.setProperty(el, name, value)\n continue\n }\n\n if (isString(value) || isNumber(value)) {\n this.renderer.setAttribute(el, name, `${value}`)\n continue\n }\n\n if (value === true) {\n this.renderer.setAttribute(el, name, \"\")\n } else {\n this.renderer.removeAttribute(el, name)\n }\n }\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {normalizeAriaAttr} from \"@qualcomm-ui/utils/attributes\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\nimport {isObject, isString} from \"@qualcomm-ui/utils/guard\"\nimport {createPropNormalizer} from \"@qualcomm-ui/utils/machine\"\n\nconst propMap: Record<string, string> = {\n className: \"class\",\n defaultChecked: \"checked\",\n defaultValue: \"value\",\n htmlFor: \"for\",\n onBlur: \"onfocusout\",\n onChange: \"oninput\",\n onDoubleClick: \"ondblclick\",\n onFocus: \"onfocusin\",\n readOnly: \"readonly\",\n}\n\nconst preserveKeys: Set<string> = new Set<string>([\n \"viewBox\",\n \"className\",\n \"preserveAspectRatio\",\n \"fillRule\",\n \"clipPath\",\n \"clipRule\",\n])\n\nconst transformers: Record<string, (value: unknown) => any> = {\n \"aria-hidden\": normalizeAriaAttr,\n}\n\nexport type StyleObject = Record<string, string | number>\n\nexport type Dict = Record<string, any>\n\nexport const normalizeProps = createPropNormalizer((props) => {\n const normalized: Dict = {}\n\n for (const [key, value] of Object.entries(props)) {\n if (key === \"style\") {\n if (isString(value)) {\n normalized[\"style\"] = serializeStyle(value)\n } else if (isObject(value)) {\n normalized[\"style\"] = hyphenateStyle(value)\n }\n\n continue\n }\n\n if (key === \"className\") {\n if (isString(value)) {\n normalized[\"class\"] = value\n } else {\n normalized[\"class\"] = clsx(value)\n }\n continue\n }\n\n if (key === \"children\") {\n if (isString(value)) {\n normalized[\"textContent\"] = value\n }\n\n continue\n }\n\n if (key in transformers) {\n normalized[key] = transformers[key](value)\n continue\n }\n\n normalized[toAngularProp(key)] = value\n }\n\n return normalized\n})\n\nconst STYLE_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g\n\nfunction serializeStyle(style: string) {\n const res: StyleObject = {}\n\n let match: RegExpExecArray | null\n\n while ((match = STYLE_REGEX.exec(style))) {\n res[match[1]] = match[2]\n }\n\n return res\n}\n\nfunction hyphenateStyle(style: Record<string, string | number>): StyleObject {\n const res: StyleObject = {}\n\n for (const [property, value] of Object.entries(style)) {\n if (value === null || value === undefined) {\n continue\n }\n\n res[hyphenateStyleName(property)] = value\n }\n\n return res\n}\n\nconst cache = new Map<string, string>()\nconst uppercasePattern = /[A-Z]/g\nconst msPattern = /^ms-/\n\nfunction hyphenateStyleName(name: string) {\n if (name.startsWith(\"--\")) {\n return name\n }\n\n if (cache.has(name)) {\n return cache.get(name)!\n }\n\n const hName = name.replace(uppercasePattern, toHyphenLower)\n\n return cache.set(name, msPattern.test(hName) ? `-${hName}` : hName).get(name)!\n}\n\nfunction toHyphenLower(match: string) {\n return `-${match.toLowerCase()}`\n}\n\nfunction toAngularProp(prop: string) {\n if (prop in propMap) {\n return propMap[prop]\n }\n\n if (preserveKeys.has(prop)) {\n return prop\n }\n\n return prop.toLowerCase()\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {signal} from \"@angular/core\"\n\nexport function createRefs<T>(refs: T) {\n const ref = signal<T>(refs)\n\n return {\n get<K extends keyof T>(key: K): T[K] {\n return ref()[key]\n },\n set<K extends keyof T>(key: K, value: T[K]) {\n ref.update((prev) => ({\n ...prev,\n [key]: value,\n }))\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {effect, type Injector, runInInjectionContext} from \"@angular/core\"\n\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isFunction} from \"@qualcomm-ui/utils/guard\"\n\nfunction access<T>(value: T | (() => T)): T {\n return isFunction(value) ? value() : value\n}\n\nexport function useTrack(\n injector: Injector,\n): (deps: any[], _effect: VoidFunction) => void {\n return (deps, _effect) => {\n let prevDeps: any[] = []\n let isInitialized = false\n let isMounted = false\n\n runInInjectionContext(injector, () => {\n // Separate effect to track mount state\n effect(() => {\n queueMicrotask(() => {\n isMounted = true\n })\n })\n\n effect(() => {\n const currentDeps = deps.map((d) => access(d))\n\n if (!isInitialized) {\n prevDeps = currentDeps\n isInitialized = true\n return\n }\n\n if (!isMounted) {\n return\n }\n\n let changed = false\n for (let i = 0; i < deps.length; i++) {\n if (!isEqual(prevDeps[i], currentDeps[i])) {\n changed = true\n break\n }\n }\n\n if (changed) {\n prevDeps = currentDeps\n _effect()\n }\n })\n })\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n afterRenderEffect,\n computed as computedSignal,\n type Injector,\n isSignal,\n runInInjectionContext,\n type Signal,\n untracked,\n} from \"@angular/core\"\n\nimport {createScope} from \"@qualcomm-ui/dom/query\"\nimport {toArray} from \"@qualcomm-ui/utils/array\"\nimport {ensure, isFunction, isString} from \"@qualcomm-ui/utils/guard\"\nimport {\n type ActionsOrFn,\n type BindableContext,\n type BindableIds,\n type ChooseFn,\n type ComputedFn,\n type CtxDetails,\n type CtxValue,\n type DetailTuple,\n type EventType,\n type GuardFn,\n INIT_STATE,\n type Machine,\n type MachineConfig,\n type MachineSchema,\n MachineStatus,\n type Params,\n type SendFn,\n type Transition,\n type ValueOrFn,\n type WatchParams,\n} from \"@qualcomm-ui/utils/machine\"\nimport {compact} from \"@qualcomm-ui/utils/object\"\n\nimport {bindable} from \"./bindable\"\nimport {bindableId} from \"./bindable-id\"\nimport {bindableIdCollection} from \"./bindable-id-collection\"\nimport {createRefs} from \"./refs\"\nimport {useTrack} from \"./track\"\n\nexport interface MachineOpts {\n /**\n * If true, enable debug logging.\n *\n * @default false\n */\n debug?: boolean | undefined\n}\n\nexport function useMachine<T extends MachineSchema>(\n config: MachineConfig<T>,\n userProps: Partial<T[\"props\"]> | Signal<Partial<T[\"props\"]>> = {},\n injector: Injector,\n opts: MachineOpts = {},\n): Machine<T> {\n const debug = (...args: any[]) => {\n if (opts.debug) {\n console.debug(...args)\n }\n }\n\n const scope = computedSignal(() => {\n const {getRootNode, id} = access<any>(userProps)\n return createScope({getRootNode, id})\n })\n\n const configIds = config.ids?.({\n bindableId,\n bindableIdCollection: () => bindableIdCollection(),\n })\n\n const ids: BindableIds<T> = {\n collection(key) {\n return configIds?.[key]\n },\n get(key) {\n return configIds?.[key]?.get?.()\n },\n register(key, valueOrParams, onDestroy?: any) {\n if (\n typeof valueOrParams === \"object\" &&\n valueOrParams !== null &&\n \"id\" in valueOrParams\n ) {\n const params = valueOrParams\n configIds?.[key].set?.(params.id)\n params.onDestroy?.(() => configIds?.[key].set?.(undefined))\n } else {\n configIds?.[key].set?.(valueOrParams)\n onDestroy?.(() => configIds?.[key].set?.(undefined))\n }\n },\n set(key, value) {\n configIds?.[key].set?.(value)\n },\n }\n\n const props = computedSignal(\n () =>\n config.props?.({\n props: compact(access(userProps)),\n scope: {...scope(), ids},\n }) ?? access(userProps),\n )\n\n const prop = useProp<T[\"props\"]>(props)\n\n let previousEventRef: any = null\n let eventRef: any = {type: \"\"}\n\n const getEvent = () => ({\n ...eventRef,\n current() {\n return eventRef\n },\n previous() {\n return previousEventRef\n },\n })\n\n const context: BindableContext<T> = {\n get<K extends keyof T[\"context\"]>(key: K) {\n return configContext![key]?.get()\n },\n hash(key): string | undefined {\n const current = configContext?.[key].get()\n return configContext?.[key].hash(current)\n },\n initial<K extends keyof T[\"context\"]>(key: K) {\n return configContext?.[key].initial\n },\n set<K extends keyof T[\"context\"]>(\n key: K,\n value: ValueOrFn<CtxValue<T[\"context\"][K]>>,\n ...details: DetailTuple<CtxDetails<T[\"context\"][K]>>\n ): void {\n configContext?.[key].set(value, ...(details as any))\n },\n }\n\n const refs = createRefs(config.refs?.({context, prop}) ?? {})\n\n const configContext = config.context?.({\n bindable,\n flush,\n getComputed() {\n return computed\n },\n getContext() {\n return context\n },\n getEvent() {\n return getEvent()\n },\n getRefs() {\n return refs\n },\n prop,\n get scope() {\n return {...scope(), ids}\n },\n })\n\n const computed: ComputedFn<T> = (key) => {\n ensure(config.computed, () => `No computed object found on machine`)\n const fn = config.computed[key]\n return fn({\n computed,\n context,\n prop,\n refs,\n get scope() {\n return {...scope(), ids}\n },\n })\n }\n\n // Create the actions object with direct property access\n const actions = {} as {\n [K in keyof T[\"actions\"]]: () => void\n }\n\n if (config.actions) {\n for (const key of Object.keys(config.actions) as Array<\n keyof T[\"actions\"]\n >) {\n const actionFn = config.actions[key]\n\n actions[key] = () => {\n return actionFn(getParams())\n }\n }\n }\n\n let effectsRef = new Map<string, VoidFunction>()\n let transitionRef: Transition<T> | null = null\n\n const action = (keys: ActionsOrFn<T> | undefined) => {\n if (!keys) {\n return\n }\n const strs = isFunction(keys) ? keys(getParams()) : keys\n if (!strs) {\n return\n }\n for (const key of strs) {\n const fn = config.actions?.[key]\n if (fn) {\n fn(getParams())\n }\n }\n }\n\n const guard = <K extends keyof T[\"guards\"]>(guard: K | GuardFn<T>) => {\n if (isFunction(guard)) {\n return guard(getParams())\n }\n return config.guards?.[guard](getParams())\n }\n\n const choose: ChooseFn<T> = (transitions) => {\n return toArray(transitions).find((t) => {\n let result: boolean | undefined = !t.guard\n if (isString(t.guard)) {\n result = !!guard(t.guard)\n } else if (isFunction(t.guard)) {\n result = t.guard(getParams())\n }\n return result\n })\n }\n\n const effect = (keys: (keyof T[\"effects\"])[] | undefined) => {\n if (!keys) {\n return undefined\n }\n const fns = keys.map((s) => {\n return config.effects?.[s]\n })\n const cleanups: VoidFunction[] = []\n for (const fn of fns) {\n const cleanup = fn?.(getParams())\n if (cleanup) {\n cleanups.push(cleanup)\n }\n }\n return () => cleanups.forEach((fn) => fn?.())\n }\n\n const state = bindable(() => ({\n defaultValue: config.initialState({prop}),\n name: \"state\",\n onChange: (nextState, details: unknown, prevState) => {\n // compute effects: exit -> transition -> enter\n\n // exit effects\n if (prevState) {\n const exitEffects = effectsRef.get(prevState)\n exitEffects?.()\n effectsRef.delete(prevState)\n }\n\n // exit actions\n if (prevState) {\n action(config.states[prevState]?.exit)\n }\n\n // transition actions\n action(transitionRef?.actions)\n\n // enter effect\n const cleanup = effect(config.states[nextState]?.effects)\n if (cleanup) {\n effectsRef.set(nextState as string, cleanup)\n }\n\n // root entry actions\n if (prevState === \"__init__\") {\n action(config.onInit?.actions)\n const cleanup = effect(config.onInit?.effects ?? [])\n if (cleanup) {\n effectsRef.set(\"__init__\", cleanup)\n }\n }\n\n // enter actions\n action(config.states[nextState]?.entry)\n },\n }))\n\n const getState = () => ({\n ...state,\n hasTag(tag: T[\"tag\"]) {\n return !!config.states[state.get()]?.tags?.includes(tag)\n },\n matches(...values: T[\"state\"][]) {\n return values.includes(state.get())\n },\n })\n\n const send = (event: EventType<T>) => {\n queueMicrotask(() => {\n previousEventRef = {...eventRef}\n eventRef = {...event}\n const currentState = state.get()\n\n debug(\"send\", {currentState, event})\n\n const transitions =\n config.states[currentState]?.on?.[event.type] ?? config.on?.[event.type]\n\n const transition = choose(transitions)\n if (!transition) {\n return\n }\n\n // save current transition\n transitionRef = transition\n\n const target = transition.target ?? currentState\n const changed = target !== currentState\n\n debug(\"transition\", transition)\n\n if (changed) {\n state.set(target)\n } else if (transition.reenter && !changed) {\n // reenter will re-invoke the current state\n state.invoke(currentState, currentState)\n } else {\n // call transition actions\n action(transition.actions ?? [])\n }\n })\n }\n\n const getParams = (): Params<T> => ({\n action,\n actions,\n choose,\n computed,\n context,\n event: getEvent(),\n flush,\n guard,\n prop,\n refs,\n get scope() {\n return {...scope(), ids}\n },\n send: send as SendFn<T>,\n state: getState(),\n track: useTrack(injector),\n })\n\n config.watch?.(getParams() as WatchParams<T>)\n\n let status: MachineStatus = MachineStatus.NOT_STARTED\n\n runInInjectionContext(injector, () => {\n afterRenderEffect((onCleanup) => {\n const started = status === MachineStatus.STARTED\n\n status = MachineStatus.STARTED\n\n debug(started ? \"rehydrating...\" : \"initializing...\")\n\n untracked(() => state.invoke(state.initial, INIT_STATE))\n\n onCleanup(() => {\n debug(\"unmounting...\")\n\n status = MachineStatus.STOPPED\n\n effectsRef.forEach((fn) => fn())\n\n effectsRef = new Map()\n transitionRef = null\n\n action(config.onDestroy?.actions)\n })\n })\n })\n\n return {\n computed,\n context,\n event: getEvent(),\n prop,\n refs,\n get scope() {\n return {...scope(), ids}\n },\n send: send as SendFn<T>,\n state: getState(),\n }\n}\n\nfunction flush(fn: VoidFunction) {\n queueMicrotask(() => {\n fn()\n })\n}\n\nfunction access<T>(value: T | Signal<T>) {\n return isSignal(value) ? value() : value\n}\n\nfunction useProp<T>(value: Signal<T>) {\n return function get<K extends keyof T>(key: K): T[K] {\n return value()[key]\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n effect,\n ElementRef,\n inject,\n Injector,\n Renderer2,\n RendererStyleFlags2,\n runInInjectionContext,\n type Signal,\n signal,\n} from \"@angular/core\"\n\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isFunction, isNumber, isString} from \"@qualcomm-ui/utils/guard\"\nimport {mergeProps} from \"@qualcomm-ui/utils/merge-props\"\n\nimport type {Dict, StyleObject} from \"./normalize-props\"\n\nexport interface TrackBindingsConfig {\n debug?: boolean | undefined\n\n /**\n * If true, the default prop spreader for this part will not be initialized.\n */\n disabled?: boolean | undefined\n\n /**\n * Override the ElementRef target for the property spreader function.\n */\n elementRef?: ElementRef | (() => ElementRef)\n\n /**\n * Prop getter for additional props to spread onto the host element.\n */\n extraBindings?: (() => Dict) | Signal<Dict>\n}\n\ntype InitTrackerFn = ((opts?: TrackBindingsConfig) => void) & {\n /**\n * Add additional props to spread onto the host element.\n */\n extendWith: (computedProps: () => Dict) => void\n setDisabled: (disabled: boolean) => void\n}\n\n/**\n * Creates a reactive property binding system that dynamically applies computed\n * properties to a host element. This function sets up an effect that watches for\n * changes in the provided property getter and efficiently updates the DOM element\n * accordingly.\n *\n * @param propGetter - A function that returns a dictionary of properties to bind to the element.\n * Supports attributes, CSS classes, styles, event listeners, and DOM properties.\n *\n * @returns An initialization function that starts the reactive binding process\n *\n * @example\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: '<div>Content</div>'\n * })\n * export class MyComponent {\n * protected readonly isExpanded = signal(false)\n *\n * private readonly trackBindings = useTrackBindings(() => ({\n * class: 'active component',\n * 'aria-expanded': this.isExpanded(),\n * }))\n *\n * ngOnInit() {\n * // Start the reactive binding\n * this.trackBindings()\n * }\n * }\n * ```\n */\nexport function useTrackBindings(propGetter: () => Dict): InitTrackerFn {\n let shouldDebug: boolean | undefined\n let disabled = false\n const additionalPropGetters: (() => Dict)[] = []\n const debug = (...args: any[]) => {\n if (shouldDebug) {\n console.debug(...args)\n }\n }\n\n let elementRef = inject(ElementRef<HTMLElement>)\n const renderer = inject(Renderer2)\n const listeners = new Map<string, VoidFunction>()\n const injector = inject(Injector)\n\n let prev: Dict = {}\n\n function removeClass(names?: string) {\n if (!names) {\n return\n }\n const el = elementRef.nativeElement\n for (const name of names.split(\",\")) {\n renderer.removeClass(el, name)\n }\n }\n\n function addClass(names: string) {\n const el = elementRef.nativeElement\n for (const name of names.split(\",\")) {\n for (const className of name.split(\" \")) {\n renderer.addClass(el, className)\n }\n }\n }\n function removeStyle(style?: StyleObject) {\n if (!style) {\n return\n }\n const el = elementRef.nativeElement\n for (const name of Object.keys(style)) {\n renderer.removeStyle(el, name, RendererStyleFlags2.DashCase)\n }\n }\n\n function addStyle(style: StyleObject) {\n const el = elementRef.nativeElement\n for (const [name, value] of Object.entries(style)) {\n renderer.setStyle(el, name, value, RendererStyleFlags2.DashCase)\n }\n }\n\n function addEventListener(name: string, callback: EventListener) {\n const eventName = name.substring(2)\n debug(`Binding event: ${name} -> ${eventName}`)\n listeners.get(name)?.()\n const unlisten = renderer.listen(\n elementRef.nativeElement,\n name.substring(2),\n callback,\n )\n listeners.set(name, unlisten)\n }\n\n function handleAttrs(prevProps: Dict, nextProps: Dict): void {\n const el = elementRef.nativeElement\n\n for (const [name, value] of Object.entries(prevProps)) {\n if (name in nextProps) {\n continue\n }\n if (name.startsWith(\"on\")) {\n listeners.get(name)?.()\n listeners.delete(name) // Ensure cleanup\n continue\n }\n switch (name) {\n case \"class\":\n removeClass(value as string)\n continue\n case \"style\":\n removeStyle(value as StyleObject)\n continue\n case \"value\":\n renderer.setProperty(el, \"value\", undefined)\n continue\n case \"textContent\":\n renderer.setProperty(el, \"textContent\", \"\")\n continue\n case \"checked\":\n renderer.setProperty(el, \"checked\", false)\n continue\n }\n renderer.removeAttribute(el, name)\n }\n\n for (const [name, value] of Object.entries(nextProps)) {\n if (name in prevProps && isEqual(value, prevProps[name])) {\n continue\n }\n if (name.startsWith(\"on\")) {\n const prevHandler = prevProps[name]\n // Skip if it's the exact same function reference\n if (isEqual(prevHandler, value)) {\n continue\n }\n addEventListener(name, value as EventListener)\n continue\n }\n\n switch (name) {\n case \"class\":\n removeClass(prevProps[name] as string)\n addClass(value as string)\n continue\n case \"style\":\n removeStyle(prevProps[name] as StyleObject)\n addStyle(value as StyleObject)\n continue\n case \"value\":\n case \"checked\":\n case \"textContent\":\n renderer.setAttribute(el, name, `${value}`)\n renderer.setProperty(el, name, value)\n continue\n }\n if (isString(value) || isNumber(value)) {\n renderer.setAttribute(el, name, `${value}`)\n continue\n }\n if (value === true) {\n renderer.setAttribute(el, name, \"\")\n } else {\n renderer.removeAttribute(el, name)\n }\n }\n }\n\n const initialized = signal(false)\n\n function getNextBindings() {\n if (!additionalPropGetters.length) {\n return propGetter()\n }\n return additionalPropGetters.reduce((acc: Dict, current) => {\n return mergeProps(acc, current())\n }, propGetter())\n }\n\n runInInjectionContext(injector, () => {\n effect(() => {\n // only start running the effect after the implementing component initializes.\n // This is used to prevent the binding operation from starting before the\n // parent machine has fully initialized.\n if (initialized()) {\n const next = getNextBindings()\n if (!isEqual(next, prev)) {\n handleAttrs(prev, next)\n prev = {...next}\n }\n }\n })\n })\n\n const initFn: InitTrackerFn = function (opts: TrackBindingsConfig = {}) {\n if (opts.disabled || disabled) {\n return\n }\n shouldDebug = opts.debug\n if (opts.elementRef) {\n elementRef = isFunction(opts.elementRef)\n ? opts.elementRef()\n : opts.elementRef\n }\n if (opts.extraBindings) {\n additionalPropGetters.push(opts.extraBindings)\n }\n\n initialized.set(true)\n } as InitTrackerFn\n\n initFn.extendWith = (extraProps: () => Dict) => {\n additionalPropGetters.push(extraProps)\n }\n\n initFn.setDisabled = (isDisabled: boolean) => {\n disabled = isDisabled\n }\n\n return initFn\n}\n\nexport function applyBindings(\n el: HTMLElement,\n props: Dict,\n renderer: Renderer2,\n): void {\n function removeClass(names?: string) {\n if (!names) {\n return\n }\n for (const name of names.split(\",\")) {\n renderer.removeClass(el, name)\n }\n }\n\n function addClass(names: string) {\n for (const name of names.split(\",\")) {\n for (const className of name.split(\" \")) {\n renderer.addClass(el, className)\n }\n }\n }\n function removeStyle(style?: StyleObject) {\n if (!style) {\n return\n }\n for (const name of Object.keys(style)) {\n renderer.removeStyle(el, name, RendererStyleFlags2.DashCase)\n }\n }\n\n function addStyle(style: StyleObject) {\n for (const [name, value] of Object.entries(style)) {\n renderer.setStyle(el, name, value, RendererStyleFlags2.DashCase)\n }\n }\n\n for (const [name, value] of Object.entries(props)) {\n if (name.startsWith(\"on\")) {\n // skip event listeners\n }\n\n switch (name) {\n case \"class\":\n removeClass(value as string)\n addClass(value as string)\n continue\n case \"style\":\n removeStyle(value as StyleObject)\n addStyle(value as StyleObject)\n continue\n case \"value\":\n case \"checked\":\n case \"textContent\":\n renderer.setAttribute(el, name, `${value}`)\n renderer.setProperty(el, name, value)\n continue\n }\n if (isString(value) || isNumber(value)) {\n renderer.setAttribute(el, name, `${value}`)\n continue\n }\n if (value === true) {\n renderer.setAttribute(el, name, \"\")\n } else {\n renderer.removeAttribute(el, name)\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["access","computedSignal","computed","mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"qualcomm-ui-angular-core-machine.mjs","sources":["../../src/machine/api-context.service.ts","../../src/machine/api-context.directive.ts","../../src/machine/bindable-id-collection.ts","../../src/machine/bindable-id.ts","../../src/machine/bindable.ts","../../src/machine/merge-props.ts","../../src/machine/q-bind.directive.ts","../../src/machine/normalize-props.ts","../../src/machine/refs.ts","../../src/machine/track.ts","../../src/machine/use-machine.ts","../../src/machine/use-track-bindings.ts","../../src/machine/qualcomm-ui-angular-core-machine.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n inject,\n Injectable,\n InjectionToken,\n type InjectOptions,\n type Provider,\n signal,\n type Signal,\n} from \"@angular/core\"\n\n/**\n * Manages the API context for a service.\n *\n * Provides a way to initialize and access an API signal, ensuring that it is only\n * set once. Attempting to reinitialize or access an uninitialized API will result\n * in errors.\n *\n * @template T - The type of the data returned by the API.\n */\n@Injectable()\nexport abstract class BaseApiContextService<T> {\n readonly initialized = signal(false)\n\n get context() {\n if (!this._context) {\n throw new Error(\"context not initialized\")\n }\n return this._context\n }\n private _context: Signal<T> | undefined\n\n init(computedApi: Signal<T>): void {\n if (this._context) {\n throw new Error(\"context already initialized\")\n }\n this._context = computedApi\n this.initialized.set(true)\n }\n}\n\nexport type UseContextOpts<Optional extends boolean = false> = InjectOptions & {\n /**\n * Use optional injection, and return `null` if the requested token is not found.\n */\n optional?: Optional\n}\n\nexport type ApiContext<T> = [\n InjectionToken<() => T>,\n <Optional extends boolean = false>(\n opts?: UseContextOpts<Optional>,\n ) => Optional extends true ? (() => T) | null : () => T,\n () => Provider[],\n]\n\nexport function createApiContext<\n T,\n K extends typeof BaseApiContextService<T> = typeof BaseApiContextService<T>,\n>(name: string, service: K, initialValue?: T): ApiContext<T> {\n const token = new InjectionToken<() => T>(name)\n\n function useContext<Optional extends boolean = false>(\n opts: UseContextOpts<Optional> = {},\n ) {\n return inject(token, opts)\n }\n\n function getProviders(): Provider[] {\n return [\n service as any,\n {\n deps: [service],\n provide: token,\n useFactory: (context: BaseApiContextService<T>) => {\n if (!context.initialized() && initialValue !== undefined) {\n context.init(signal(initialValue))\n }\n return () => context.context()\n },\n },\n ]\n }\n\n return [token, useContext as ApiContext<T>[1], getProviders]\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n Directive,\n effect,\n inject,\n Injector,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\"\n\nimport {BaseApiContextService} from \"./api-context.service\"\n\n/**\n * Base directive for creating context-aware directives that render content\n * only when an API context is available.\n *\n * This abstract class provides the core functionality to:\n * 1. Check if a required API context service is available\n * 2. Render the associated template only when the API instance is accessible\n * 3. Provide the API instance to the template as a typed value\n */\n@Directive()\nexport abstract class ApiContextDirective<T extends object> {\n private readonly templateRef = inject<TemplateRef<any>>(TemplateRef)\n private readonly viewContainerRef = inject(ViewContainerRef)\n private readonly injector = inject(Injector)\n\n protected constructor(\n // eslint-disable-next-line @angular-eslint/prefer-inject\n contextService: BaseApiContextService<T>,\n contextName: string,\n ) {\n if (!contextService) {\n console.warn(\n `${contextName} used without a parent context. Template will not render.`,\n )\n return\n }\n\n effect(\n () => {\n this.viewContainerRef.clear()\n const apiInstance = contextService.context()\n\n if (apiInstance) {\n this.viewContainerRef.createEmbeddedView(this.templateRef, {\n $implicit: apiInstance,\n [contextName]: apiInstance,\n })\n }\n },\n {injector: this.injector},\n )\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {signal} from \"@angular/core\"\n\nimport type {BindableIdCollection, Dict} from \"@qualcomm-ui/utils/machine\"\n\nexport function bindableIdCollection<T extends Dict>(): BindableIdCollection<\n any,\n any\n> {\n const collection = signal<Record<string, T>>({})\n\n return {\n get(itemKey: string): T | undefined {\n return collection()[itemKey]\n },\n getAll(): Record<string, T> {\n const result: Record<string, T> = {}\n const current = collection()\n for (const key in current) {\n result[key] = current[key]\n }\n return result\n },\n keys(): string[] {\n return Object.keys(collection())\n },\n register(\n itemKey: string,\n value: T,\n onDestroy?: (callback: () => void) => void,\n ) {\n const current = collection()\n if (current[itemKey] === value) {\n return\n }\n\n if (onDestroy) {\n onDestroy(() => {\n const currentState = collection()\n const {[itemKey]: _removed, ...rest} = currentState\n collection.set(rest)\n })\n }\n\n collection.update((prevState) => ({\n ...prevState,\n [itemKey]: value,\n }))\n },\n remove(itemKey: string) {\n const current = collection()\n const {[itemKey]: _removed, ...rest} = current\n collection.set(rest)\n },\n set(itemKey: string, value: T) {\n collection.update((prev) => ({\n ...prev,\n [itemKey]: value,\n }))\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {signal} from \"@angular/core\"\n\nimport type {BindableId} from \"@qualcomm-ui/utils/machine\"\n\nexport function bindableId(\n initialValue: string | undefined,\n): BindableId<string | undefined> {\n // this value won't trigger change detection, but signals do\n let cachedValue = initialValue\n const value = signal(initialValue)\n\n return {\n get(): string | undefined {\n return value()\n },\n set(v: string | undefined) {\n if (cachedValue === v) {\n return\n }\n cachedValue = v\n value.set(v)\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, effect, signal} from \"@angular/core\"\n\nimport {isFunction} from \"@qualcomm-ui/utils/guard\"\nimport type {\n Bindable,\n BindableParams,\n EventDetails,\n} from \"@qualcomm-ui/utils/machine\"\n\nexport function bindable<T, ChangeEvent extends EventDetails | void | null>(\n props: () => BindableParams<T, ChangeEvent>,\n): Bindable<T, ChangeEvent> {\n const initial = props().value ?? props().defaultValue\n\n const eq = props().isEqual ?? Object.is\n\n const value = signal(initial as T)\n const controlled = computed(() => props().value !== undefined)\n\n const valueRef = computed(() => (controlled() ? props().value! : value()))\n\n return {\n get(): T {\n return valueRef()\n },\n hash(value: T) {\n return props().hash?.(value) ?? String(value)\n },\n initial,\n invoke(nextValue: T, prevValue: T) {\n props().onChange?.(nextValue, null as ChangeEvent, prevValue)\n },\n ref: valueRef,\n set(v: T | ((prev: T) => T), event: ChangeEvent) {\n const prev = valueRef()\n const next = isFunction(v) ? v(prev) : v\n\n if (!controlled()) {\n value.set(next)\n }\n\n if (!eq(next, prev)) {\n props().onChange?.(next, event, prev)\n }\n },\n }\n}\n\nbindable.cleanup = (fn: VoidFunction) => {\n effect((onCleanup) => onCleanup(fn))\n}\n\nbindable.ref = <T>(defaultValue: T) => {\n let value = defaultValue\n\n return {\n get: () => value,\n set: (next: T) => {\n value = next\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\nimport {callAll} from \"@qualcomm-ui/utils/functions\"\n\ninterface Props {\n [key: string]: any\n}\n\nconst CSS_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g\n\n/**\n * Converts a CSS text fragment (`\"color:red; width:10px\"`)\n * into a `{color:'red', width:'10px'}` object.\n */\nfunction parseCssText(style: string): Record<string, string> {\n const out: Record<string, string> = {}\n let match: RegExpExecArray | null\n while ((match = CSS_REGEX.exec(style))) {\n out[match[1]] = match[2]\n }\n return out\n}\n\nfunction mergeStyle(\n a: Record<string, string> | string | undefined,\n b: Record<string, string> | string | undefined,\n): Record<string, string> | string {\n if (typeof a === \"string\") {\n if (typeof b === \"string\") {\n return `${a};${b}`\n }\n a = parseCssText(a)\n } else if (typeof b === \"string\") {\n b = parseCssText(b)\n }\n return {...(a ?? {}), ...(b ?? {})}\n}\n\n/**\n * Construct the real resulting type so callers keep strong typing.\n */\ntype MergePropsHelper<T extends readonly Props[]> = T extends readonly [\n infer First extends Props,\n ...infer Rest extends readonly Props[],\n]\n ? Omit<First, \"className\"> & MergePropsHelper<Rest>\n : {}\n\n/**\n * Construct the real resulting type so callers keep strong typing.\n */\nexport type MergeProps<T extends readonly Props[]> = MergePropsHelper<T> & {\n className?: string\n}\n\n/**\n * Angular-friendly version of `mergeProps`.\n *\n * - Handlers (`on*`) are composed with `callAll`.\n * - `class` / `className` values are merged via `clsx`.\n * - `style` strings or objects are merged and normalised.\n *\n * @deprecated import the equivalent from `@qualcomm-ui/utils/merge-props`\n */\nexport function mergeProps<T extends readonly Props[]>(\n ...sources: T\n): MergeProps<T> {\n const result: Props = {}\n\n for (const current of sources) {\n if (!current) {\n continue\n }\n\n for (const key in current) {\n const prev: any = result[key]\n const next: any = current[key]\n\n if (prev !== undefined) {\n if (\n key.startsWith(\"on\") &&\n typeof prev === \"function\" &&\n typeof next === \"function\"\n ) {\n result[key] = callAll(prev, next)\n continue\n }\n\n if (key === \"class\" || key === \"className\") {\n result[key] = clsx(prev, next)\n continue\n }\n\n if (key === \"style\") {\n result[key] = mergeStyle(prev, next)\n continue\n }\n }\n\n result[key] = next\n }\n }\n\n // Adapt the merged object to Angular-friendly prop names.\n return result as MergeProps<T>\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n type OnDestroy,\n Renderer2,\n RendererStyleFlags2,\n runInInjectionContext,\n} from \"@angular/core\"\n\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isNumber, isString} from \"@qualcomm-ui/utils/guard\"\n\nimport type {Dict, StyleObject} from \"./normalize-props\"\n\nexport interface NgBindOptions {\n /**\n * This list of properties will not be spread onto the target element.\n */\n omittedProps?: string[]\n}\n\n/**\n * A directive similar to Vue's `v-bind` that spreads an object's properties onto\n * the host element. For the best performance, use a stable reference to a signal\n * instead of an object literal in the template. Converts callbacks from `on*`\n * syntax to their corresponding Angular event callbacks. Does not account for\n * input/output properties due to Angular limitations.\n *\n * @example\n * <!-- bad: new object every time -->\n * <div [q-bind]=\"{class: 'a', onClick: click}\"></div>\n *\n * <!-- good: stable reference -->\n * <div [q-bind]=\"buttonProps\"></div>\n */\n@Directive({\n selector: \"[q-bind]\",\n})\nexport class QBindDirective implements OnDestroy {\n readonly bind = input.required<Dict | undefined>({alias: \"q-bind\"})\n\n readonly bindOptions = input<NgBindOptions>({}, {alias: \"q-bind-options\"})\n\n private readonly elementRef = inject(ElementRef<HTMLElement>)\n private readonly renderer = inject(Renderer2)\n private readonly injector = inject(Injector)\n private readonly listeners = new Map<string, VoidFunction>()\n private prev: Dict = {}\n\n readonly omittedProps = computed(() => {\n const opts = this.bindOptions()\n return new Set(Array.from(opts.omittedProps || []))\n })\n\n constructor() {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n const next = this.bind()\n if (!isEqual(next, this.prev)) {\n this.handleAttrs(this.prev, next || {})\n this.prev = {...next}\n }\n })\n })\n }\n\n ngOnDestroy(): void {\n this.listeners.forEach((unlisten) => unlisten())\n this.listeners.clear()\n }\n\n private removeClass(names?: string): void {\n if (!names) {\n return\n }\n\n const el = this.elementRef.nativeElement\n for (const name of names.split(\",\")) {\n this.renderer.removeClass(el, name)\n }\n }\n\n private addClass(names: string): void {\n const el = this.elementRef.nativeElement\n for (const className of names.split(\" \")) {\n for (const name of className.split(\",\")) {\n this.renderer.addClass(el, name)\n }\n }\n }\n\n private removeStyle(style?: StyleObject): void {\n if (!style) {\n return\n }\n\n const el = this.elementRef.nativeElement\n for (const name of Object.keys(style)) {\n this.renderer.removeStyle(el, name, RendererStyleFlags2.DashCase)\n }\n }\n\n private addStyle(style: StyleObject): void {\n const el = this.elementRef.nativeElement\n for (const [name, value] of Object.entries(style)) {\n this.renderer.setStyle(el, name, value, RendererStyleFlags2.DashCase)\n }\n }\n\n private addEventListener(name: string, callback: EventListener): void {\n const eventName = name.substring(2)\n\n this.listeners.get(name)?.()\n const unlisten = this.renderer.listen(\n this.elementRef.nativeElement,\n eventName,\n callback,\n )\n this.listeners.set(name, unlisten)\n }\n\n private handleAttrs(prevProps: Dict, nextProps: Dict): void {\n const el = this.elementRef.nativeElement\n\n for (const [name, value] of Object.entries(prevProps)) {\n if (name in nextProps || this.omittedProps().has(name)) {\n continue\n }\n\n if (name.startsWith(\"on\")) {\n this.listeners.get(name)?.()\n this.listeners.delete(name)\n continue\n }\n\n switch (name) {\n case \"class\":\n this.removeClass(value as string)\n continue\n case \"style\":\n this.removeStyle(value as StyleObject)\n continue\n case \"value\":\n this.renderer.setProperty(el, \"value\", undefined)\n continue\n case \"textContent\":\n this.renderer.setProperty(el, \"textContent\", \"\")\n continue\n case \"checked\":\n this.renderer.setProperty(el, \"checked\", false)\n continue\n }\n this.renderer.removeAttribute(el, name)\n }\n\n for (const [name, value] of Object.entries(nextProps)) {\n if (name in prevProps && isEqual(value, prevProps[name])) {\n continue\n }\n\n if (name.startsWith(\"on\")) {\n const prevHandler = prevProps[name]\n if (isEqual(prevHandler, value)) {\n continue\n }\n\n this.addEventListener(name, value as EventListener)\n continue\n }\n\n switch (name) {\n case \"class\":\n this.removeClass(prevProps[name] as string)\n this.addClass(value as string)\n continue\n case \"style\":\n this.removeStyle(prevProps[name] as StyleObject)\n this.addStyle(value as StyleObject)\n continue\n case \"value\":\n case \"checked\":\n case \"textContent\":\n this.renderer.setProperty(el, name, value)\n continue\n }\n\n if (isString(value) || isNumber(value)) {\n this.renderer.setAttribute(el, name, `${value}`)\n continue\n }\n\n if (value === true) {\n this.renderer.setAttribute(el, name, \"\")\n } else {\n this.renderer.removeAttribute(el, name)\n }\n }\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {normalizeAriaAttr} from \"@qualcomm-ui/utils/attributes\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\nimport {isObject, isString} from \"@qualcomm-ui/utils/guard\"\nimport {createPropNormalizer} from \"@qualcomm-ui/utils/machine\"\n\nconst propMap: Record<string, string> = {\n className: \"class\",\n defaultChecked: \"checked\",\n defaultValue: \"value\",\n htmlFor: \"for\",\n onBlur: \"onfocusout\",\n onChange: \"oninput\",\n onDoubleClick: \"ondblclick\",\n onFocus: \"onfocusin\",\n readOnly: \"readonly\",\n}\n\nconst preserveKeys: Set<string> = new Set<string>([\n \"viewBox\",\n \"className\",\n \"preserveAspectRatio\",\n \"fillRule\",\n \"clipPath\",\n \"clipRule\",\n])\n\nconst transformers: Record<string, (value: unknown) => any> = {\n \"aria-hidden\": normalizeAriaAttr,\n}\n\nexport type StyleObject = Record<string, string | number>\n\nexport type Dict = Record<string, any>\n\nexport const normalizeProps = createPropNormalizer((props) => {\n const normalized: Dict = {}\n\n for (const [key, value] of Object.entries(props)) {\n if (key === \"style\") {\n if (isString(value)) {\n normalized[\"style\"] = serializeStyle(value)\n } else if (isObject(value)) {\n normalized[\"style\"] = hyphenateStyle(value)\n }\n\n continue\n }\n\n if (key === \"className\") {\n if (isString(value)) {\n normalized[\"class\"] = value\n } else {\n normalized[\"class\"] = clsx(value)\n }\n continue\n }\n\n if (key === \"children\") {\n if (isString(value)) {\n normalized[\"textContent\"] = value\n }\n\n continue\n }\n\n if (key in transformers) {\n normalized[key] = transformers[key](value)\n continue\n }\n\n normalized[toAngularProp(key)] = value\n }\n\n return normalized\n})\n\nconst STYLE_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g\n\nfunction serializeStyle(style: string) {\n const res: StyleObject = {}\n\n let match: RegExpExecArray | null\n\n while ((match = STYLE_REGEX.exec(style))) {\n res[match[1]] = match[2]\n }\n\n return res\n}\n\nfunction hyphenateStyle(style: Record<string, string | number>): StyleObject {\n const res: StyleObject = {}\n\n for (const [property, value] of Object.entries(style)) {\n if (value === null || value === undefined) {\n continue\n }\n\n res[hyphenateStyleName(property)] = value\n }\n\n return res\n}\n\nconst cache = new Map<string, string>()\nconst uppercasePattern = /[A-Z]/g\nconst msPattern = /^ms-/\n\nfunction hyphenateStyleName(name: string) {\n if (name.startsWith(\"--\")) {\n return name\n }\n\n if (cache.has(name)) {\n return cache.get(name)!\n }\n\n const hName = name.replace(uppercasePattern, toHyphenLower)\n\n return cache.set(name, msPattern.test(hName) ? `-${hName}` : hName).get(name)!\n}\n\nfunction toHyphenLower(match: string) {\n return `-${match.toLowerCase()}`\n}\n\nfunction toAngularProp(prop: string) {\n if (prop in propMap) {\n return propMap[prop]\n }\n\n if (preserveKeys.has(prop)) {\n return prop\n }\n\n return prop.toLowerCase()\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {signal} from \"@angular/core\"\n\nexport function createRefs<T>(refs: T) {\n const ref = signal<T>(refs)\n\n return {\n get<K extends keyof T>(key: K): T[K] {\n return ref()[key]\n },\n set<K extends keyof T>(key: K, value: T[K]) {\n ref.update((prev) => ({\n ...prev,\n [key]: value,\n }))\n },\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {effect, type Injector, runInInjectionContext} from \"@angular/core\"\n\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isFunction} from \"@qualcomm-ui/utils/guard\"\n\nfunction access<T>(value: T | (() => T)): T {\n return isFunction(value) ? value() : value\n}\n\nexport function useTrack(\n injector: Injector,\n): (deps: any[], _effect: VoidFunction) => void {\n return (deps, _effect) => {\n let prevDeps: any[] = []\n let isInitialized = false\n let isMounted = false\n\n runInInjectionContext(injector, () => {\n // Separate effect to track mount state\n effect(() => {\n queueMicrotask(() => {\n isMounted = true\n })\n })\n\n effect(() => {\n const currentDeps = deps.map((d) => access(d))\n\n if (!isInitialized) {\n prevDeps = currentDeps\n isInitialized = true\n return\n }\n\n if (!isMounted) {\n return\n }\n\n let changed = false\n for (let i = 0; i < deps.length; i++) {\n if (!isEqual(prevDeps[i], currentDeps[i])) {\n changed = true\n break\n }\n }\n\n if (changed) {\n prevDeps = currentDeps\n _effect()\n }\n })\n })\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n afterRenderEffect,\n computed as computedSignal,\n type Injector,\n isSignal,\n runInInjectionContext,\n type Signal,\n untracked,\n} from \"@angular/core\"\n\nimport {createScope} from \"@qualcomm-ui/dom/query\"\nimport {toArray} from \"@qualcomm-ui/utils/array\"\nimport {ensure, isFunction, isString} from \"@qualcomm-ui/utils/guard\"\nimport {\n type ActionsOrFn,\n type BindableContext,\n type BindableIds,\n type ChooseFn,\n type ComputedFn,\n type CtxDetails,\n type CtxValue,\n type DetailTuple,\n type EventType,\n type GuardFn,\n INIT_STATE,\n type Machine,\n type MachineConfig,\n type MachineSchema,\n MachineStatus,\n type Params,\n type SendFn,\n type Transition,\n type ValueOrFn,\n type WatchParams,\n} from \"@qualcomm-ui/utils/machine\"\nimport {compact} from \"@qualcomm-ui/utils/object\"\n\nimport {bindable} from \"./bindable\"\nimport {bindableId} from \"./bindable-id\"\nimport {bindableIdCollection} from \"./bindable-id-collection\"\nimport {createRefs} from \"./refs\"\nimport {useTrack} from \"./track\"\n\nexport interface MachineOpts {\n /**\n * If true, enable debug logging.\n *\n * @default false\n */\n debug?: boolean | undefined\n}\n\nexport function useMachine<T extends MachineSchema>(\n config: MachineConfig<T>,\n userProps: Partial<T[\"props\"]> | Signal<Partial<T[\"props\"]>> = {},\n injector: Injector,\n opts: MachineOpts = {},\n): Machine<T> {\n const debug = (...args: any[]) => {\n if (opts.debug) {\n console.debug(...args)\n }\n }\n\n const scope = computedSignal(() => {\n const {getRootNode, id} = access<any>(userProps)\n return createScope({getRootNode, id})\n })\n\n const configIds = config.ids?.({\n bindableId,\n bindableIdCollection: () => bindableIdCollection(),\n })\n\n const ids: BindableIds<T> = {\n collection(key) {\n return configIds?.[key]\n },\n get(key) {\n return configIds?.[key]?.get?.()\n },\n register(key, valueOrParams, onDestroy?: any) {\n if (\n typeof valueOrParams === \"object\" &&\n valueOrParams !== null &&\n \"id\" in valueOrParams\n ) {\n const params = valueOrParams\n configIds?.[key].set?.(params.id)\n params.onDestroy?.(() => configIds?.[key].set?.(undefined))\n } else {\n configIds?.[key].set?.(valueOrParams)\n onDestroy?.(() => configIds?.[key].set?.(undefined))\n }\n },\n set(key, value) {\n configIds?.[key].set?.(value)\n },\n }\n\n const props = computedSignal(\n () =>\n config.props?.({\n props: compact(access(userProps)),\n scope: {...scope(), ids},\n }) ?? access(userProps),\n )\n\n const prop = useProp<T[\"props\"]>(props)\n\n let previousEventRef: any = null\n let eventRef: any = {type: \"\"}\n\n const getEvent = () => ({\n ...eventRef,\n current() {\n return eventRef\n },\n previous() {\n return previousEventRef\n },\n })\n\n const context: BindableContext<T> = {\n get<K extends keyof T[\"context\"]>(key: K) {\n return configContext![key]?.get()\n },\n hash(key): string | undefined {\n const current = configContext?.[key].get()\n return configContext?.[key].hash(current)\n },\n initial<K extends keyof T[\"context\"]>(key: K) {\n return configContext?.[key].initial\n },\n set<K extends keyof T[\"context\"]>(\n key: K,\n value: ValueOrFn<CtxValue<T[\"context\"][K]>>,\n ...details: DetailTuple<CtxDetails<T[\"context\"][K]>>\n ): void {\n configContext?.[key].set(value, ...(details as any))\n },\n }\n\n const refs = createRefs(config.refs?.({context, prop}) ?? {})\n\n const configContext = config.context?.({\n bindable,\n flush,\n getComputed() {\n return computed\n },\n getContext() {\n return context\n },\n getEvent() {\n return getEvent()\n },\n getRefs() {\n return refs\n },\n prop,\n get scope() {\n return {...scope(), ids}\n },\n })\n\n const computed: ComputedFn<T> = (key) => {\n ensure(config.computed, () => `No computed object found on machine`)\n const fn = config.computed[key]\n return fn({\n computed,\n context,\n prop,\n refs,\n get scope() {\n return {...scope(), ids}\n },\n })\n }\n\n // Create the actions object with direct property access\n const actions = {} as {\n [K in keyof T[\"actions\"]]: () => void\n }\n\n if (config.actions) {\n for (const key of Object.keys(config.actions) as Array<\n keyof T[\"actions\"]\n >) {\n const actionFn = config.actions[key]\n\n actions[key] = () => {\n return actionFn(getParams())\n }\n }\n }\n\n let effectsRef = new Map<string, VoidFunction>()\n let transitionRef: Transition<T> | null = null\n\n const action = (keys: ActionsOrFn<T> | undefined) => {\n if (!keys) {\n return\n }\n const strs = isFunction(keys) ? keys(getParams()) : keys\n if (!strs) {\n return\n }\n for (const key of strs) {\n const fn = config.actions?.[key]\n if (fn) {\n fn(getParams())\n }\n }\n }\n\n const guard = <K extends keyof T[\"guards\"]>(guard: K | GuardFn<T>) => {\n if (isFunction(guard)) {\n return guard(getParams())\n }\n return config.guards?.[guard](getParams())\n }\n\n const choose: ChooseFn<T> = (transitions) => {\n return toArray(transitions).find((t) => {\n let result: boolean | undefined = !t.guard\n if (isString(t.guard)) {\n result = !!guard(t.guard)\n } else if (isFunction(t.guard)) {\n result = t.guard(getParams())\n }\n return result\n })\n }\n\n const effect = (keys: (keyof T[\"effects\"])[] | undefined) => {\n if (!keys) {\n return undefined\n }\n const fns = keys.map((s) => {\n return config.effects?.[s]\n })\n const cleanups: VoidFunction[] = []\n for (const fn of fns) {\n const cleanup = fn?.(getParams())\n if (cleanup) {\n cleanups.push(cleanup)\n }\n }\n return () => cleanups.forEach((fn) => fn?.())\n }\n\n const state = bindable(() => ({\n defaultValue: config.initialState({prop}),\n name: \"state\",\n onChange: (nextState, details: unknown, prevState) => {\n // compute effects: exit -> transition -> enter\n\n // exit effects\n if (prevState) {\n const exitEffects = effectsRef.get(prevState)\n exitEffects?.()\n effectsRef.delete(prevState)\n }\n\n // exit actions\n if (prevState) {\n action(config.states[prevState]?.exit)\n }\n\n // transition actions\n action(transitionRef?.actions)\n\n // enter effect\n const cleanup = effect(config.states[nextState]?.effects)\n if (cleanup) {\n effectsRef.set(nextState as string, cleanup)\n }\n\n // root entry actions\n if (prevState === \"__init__\") {\n action(config.onInit?.actions)\n const cleanup = effect(config.onInit?.effects ?? [])\n if (cleanup) {\n effectsRef.set(\"__init__\", cleanup)\n }\n }\n\n // enter actions\n action(config.states[nextState]?.entry)\n },\n }))\n\n const getState = () => ({\n ...state,\n hasTag(tag: T[\"tag\"]) {\n return !!config.states[state.get()]?.tags?.includes(tag)\n },\n matches(...values: T[\"state\"][]) {\n return values.includes(state.get())\n },\n })\n\n const send = (event: EventType<T>) => {\n queueMicrotask(() => {\n previousEventRef = {...eventRef}\n eventRef = {...event}\n const currentState = state.get()\n\n debug(\"send\", {currentState, event})\n\n const transitions =\n config.states[currentState]?.on?.[event.type] ?? config.on?.[event.type]\n\n const transition = choose(transitions)\n if (!transition) {\n return\n }\n\n // save current transition\n transitionRef = transition\n\n const target = transition.target ?? currentState\n const changed = target !== currentState\n\n debug(\"transition\", transition)\n\n if (changed) {\n state.set(target)\n } else if (transition.reenter && !changed) {\n // reenter will re-invoke the current state\n state.invoke(currentState, currentState)\n } else {\n // call transition actions\n action(transition.actions ?? [])\n }\n })\n }\n\n const getParams = (): Params<T> => ({\n action,\n actions,\n choose,\n computed,\n context,\n event: getEvent(),\n flush,\n guard,\n prop,\n refs,\n get scope() {\n return {...scope(), ids}\n },\n send: send as SendFn<T>,\n state: getState(),\n track: useTrack(injector),\n })\n\n config.watch?.(getParams() as WatchParams<T>)\n\n let status: MachineStatus = MachineStatus.NOT_STARTED\n\n runInInjectionContext(injector, () => {\n afterRenderEffect((onCleanup) => {\n const started = status === MachineStatus.STARTED\n\n status = MachineStatus.STARTED\n\n debug(started ? \"rehydrating...\" : \"initializing...\")\n\n untracked(() => state.invoke(state.initial, INIT_STATE))\n\n onCleanup(() => {\n debug(\"unmounting...\")\n\n status = MachineStatus.STOPPED\n\n effectsRef.forEach((fn) => fn())\n\n effectsRef = new Map()\n transitionRef = null\n\n action(config.onDestroy?.actions)\n })\n })\n })\n\n return {\n computed,\n context,\n event: getEvent(),\n prop,\n refs,\n get scope() {\n return {...scope(), ids}\n },\n send: send as SendFn<T>,\n state: getState(),\n }\n}\n\nfunction flush(fn: VoidFunction) {\n queueMicrotask(() => {\n fn()\n })\n}\n\nfunction access<T>(value: T | Signal<T>) {\n return isSignal(value) ? value() : value\n}\n\nfunction useProp<T>(value: Signal<T>) {\n return function get<K extends keyof T>(key: K): T[K] {\n return value()[key]\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n effect,\n ElementRef,\n inject,\n Injector,\n Renderer2,\n RendererStyleFlags2,\n runInInjectionContext,\n type Signal,\n signal,\n} from \"@angular/core\"\n\nimport {isEqual} from \"@qualcomm-ui/utils/equal\"\nimport {isFunction, isNumber, isString} from \"@qualcomm-ui/utils/guard\"\nimport {mergeProps} from \"@qualcomm-ui/utils/merge-props\"\n\nimport type {Dict, StyleObject} from \"./normalize-props\"\n\nexport interface TrackBindingsConfig {\n debug?: boolean | undefined\n\n /**\n * If true, the default prop spreader for this part will not be initialized.\n */\n disabled?: boolean | undefined\n\n /**\n * Override the ElementRef target for the property spreader function.\n */\n elementRef?: ElementRef | (() => ElementRef)\n\n /**\n * Prop getter for additional props to spread onto the host element.\n */\n extraBindings?: (() => Dict) | Signal<Dict>\n}\n\ntype InitTrackerFn = ((opts?: TrackBindingsConfig) => void) & {\n /**\n * Add additional props to spread onto the host element.\n */\n extendWith: (computedProps: () => Dict) => void\n setDisabled: (disabled: boolean) => void\n}\n\n/**\n * Creates a reactive property binding system that dynamically applies computed\n * properties to a host element. This function sets up an effect that watches for\n * changes in the provided property getter and efficiently updates the DOM element\n * accordingly.\n *\n * @param propGetter - A function that returns a dictionary of properties to bind to the element.\n * Supports attributes, CSS classes, styles, event listeners, and DOM properties.\n *\n * @returns An initialization function that starts the reactive binding process\n *\n * @example\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: '<div>Content</div>'\n * })\n * export class MyComponent {\n * protected readonly isExpanded = signal(false)\n *\n * private readonly trackBindings = useTrackBindings(() => ({\n * class: 'active component',\n * 'aria-expanded': this.isExpanded(),\n * }))\n *\n * ngOnInit() {\n * // Start the reactive binding\n * this.trackBindings()\n * }\n * }\n * ```\n */\nexport function useTrackBindings(propGetter: () => Dict): InitTrackerFn {\n let shouldDebug: boolean | undefined\n let disabled = false\n const additionalPropGetters: (() => Dict)[] = []\n const debug = (...args: any[]) => {\n if (shouldDebug) {\n console.debug(...args)\n }\n }\n\n let elementRef = inject(ElementRef<HTMLElement>)\n const renderer = inject(Renderer2)\n const listeners = new Map<string, VoidFunction>()\n const injector = inject(Injector)\n\n let prev: Dict = {}\n\n function removeClass(names?: string) {\n if (!names) {\n return\n }\n const el = elementRef.nativeElement\n for (const name of names.split(\",\")) {\n renderer.removeClass(el, name)\n }\n }\n\n function addClass(names: string) {\n const el = elementRef.nativeElement\n for (const name of names.split(\",\")) {\n for (const className of name.split(\" \")) {\n renderer.addClass(el, className)\n }\n }\n }\n function removeStyle(style?: StyleObject) {\n if (!style) {\n return\n }\n const el = elementRef.nativeElement\n for (const name of Object.keys(style)) {\n renderer.removeStyle(el, name, RendererStyleFlags2.DashCase)\n }\n }\n\n function addStyle(style: StyleObject) {\n const el = elementRef.nativeElement\n for (const [name, value] of Object.entries(style)) {\n renderer.setStyle(el, name, value, RendererStyleFlags2.DashCase)\n }\n }\n\n function addEventListener(name: string, callback: EventListener) {\n const eventName = name.substring(2)\n debug(`Binding event: ${name} -> ${eventName}`)\n listeners.get(name)?.()\n const unlisten = renderer.listen(\n elementRef.nativeElement,\n name.substring(2),\n callback,\n )\n listeners.set(name, unlisten)\n }\n\n function handleAttrs(prevProps: Dict, nextProps: Dict): void {\n const el = elementRef.nativeElement\n\n for (const [name, value] of Object.entries(prevProps)) {\n if (name in nextProps) {\n continue\n }\n if (name.startsWith(\"on\")) {\n listeners.get(name)?.()\n listeners.delete(name) // Ensure cleanup\n continue\n }\n switch (name) {\n case \"class\":\n removeClass(value as string)\n continue\n case \"style\":\n removeStyle(value as StyleObject)\n continue\n case \"value\":\n renderer.setProperty(el, \"value\", undefined)\n continue\n case \"textContent\":\n renderer.setProperty(el, \"textContent\", \"\")\n continue\n case \"checked\":\n renderer.setProperty(el, \"checked\", false)\n continue\n }\n renderer.removeAttribute(el, name)\n }\n\n for (const [name, value] of Object.entries(nextProps)) {\n if (name in prevProps && isEqual(value, prevProps[name])) {\n continue\n }\n if (name.startsWith(\"on\")) {\n const prevHandler = prevProps[name]\n // Skip if it's the exact same function reference\n if (isEqual(prevHandler, value)) {\n continue\n }\n addEventListener(name, value as EventListener)\n continue\n }\n\n switch (name) {\n case \"class\":\n removeClass(prevProps[name] as string)\n addClass(value as string)\n continue\n case \"style\":\n removeStyle(prevProps[name] as StyleObject)\n addStyle(value as StyleObject)\n continue\n case \"value\":\n case \"checked\":\n case \"textContent\":\n renderer.setAttribute(el, name, `${value}`)\n renderer.setProperty(el, name, value)\n continue\n }\n if (isString(value) || isNumber(value)) {\n renderer.setAttribute(el, name, `${value}`)\n continue\n }\n if (value === true) {\n renderer.setAttribute(el, name, \"\")\n } else {\n renderer.removeAttribute(el, name)\n }\n }\n }\n\n const initialized = signal(false)\n\n function getNextBindings() {\n if (!additionalPropGetters.length) {\n return propGetter()\n }\n return additionalPropGetters.reduce((acc: Dict, current) => {\n return mergeProps(acc, current())\n }, propGetter())\n }\n\n runInInjectionContext(injector, () => {\n effect(() => {\n // only start running the effect after the implementing component initializes.\n // This is used to prevent the binding operation from starting before the\n // parent machine has fully initialized.\n if (initialized()) {\n const next = getNextBindings()\n if (!isEqual(next, prev)) {\n handleAttrs(prev, next)\n prev = {...next}\n }\n }\n })\n })\n\n const initFn: InitTrackerFn = function (opts: TrackBindingsConfig = {}) {\n if (opts.disabled || disabled) {\n return\n }\n shouldDebug = opts.debug\n if (opts.elementRef) {\n elementRef = isFunction(opts.elementRef)\n ? opts.elementRef()\n : opts.elementRef\n }\n if (opts.extraBindings) {\n additionalPropGetters.push(opts.extraBindings)\n }\n\n initialized.set(true)\n } as InitTrackerFn\n\n initFn.extendWith = (extraProps: () => Dict) => {\n additionalPropGetters.push(extraProps)\n }\n\n initFn.setDisabled = (isDisabled: boolean) => {\n disabled = isDisabled\n }\n\n return initFn\n}\n\nexport function applyBindings(\n el: HTMLElement,\n props: Dict,\n renderer: Renderer2,\n): void {\n function removeClass(names?: string) {\n if (!names) {\n return\n }\n for (const name of names.split(\",\")) {\n renderer.removeClass(el, name)\n }\n }\n\n function addClass(names: string) {\n for (const name of names.split(\",\")) {\n for (const className of name.split(\" \")) {\n renderer.addClass(el, className)\n }\n }\n }\n function removeStyle(style?: StyleObject) {\n if (!style) {\n return\n }\n for (const name of Object.keys(style)) {\n renderer.removeStyle(el, name, RendererStyleFlags2.DashCase)\n }\n }\n\n function addStyle(style: StyleObject) {\n for (const [name, value] of Object.entries(style)) {\n renderer.setStyle(el, name, value, RendererStyleFlags2.DashCase)\n }\n }\n\n for (const [name, value] of Object.entries(props)) {\n if (name.startsWith(\"on\")) {\n // skip event listeners\n }\n\n switch (name) {\n case \"class\":\n removeClass(value as string)\n addClass(value as string)\n continue\n case \"style\":\n removeStyle(value as StyleObject)\n addStyle(value as StyleObject)\n continue\n case \"value\":\n case \"checked\":\n case \"textContent\":\n renderer.setAttribute(el, name, `${value}`)\n renderer.setProperty(el, name, value)\n continue\n }\n if (isString(value) || isNumber(value)) {\n renderer.setAttribute(el, name, `${value}`)\n continue\n }\n if (value === true) {\n renderer.setAttribute(el, name, \"\")\n } else {\n renderer.removeAttribute(el, name)\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["access","computedSignal","computed","mergeProps"],"mappings":"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"}