@agnos-ui/angular-headless 0.0.1-alpha.6 → 0.0.1-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/components/accordion/index.d.ts +1 -0
  2. package/components/alert/index.d.ts +1 -0
  3. package/components/modal/index.d.ts +1 -0
  4. package/components/pagination/index.d.ts +1 -0
  5. package/components/progressbar/index.d.ts +1 -0
  6. package/components/rating/index.d.ts +1 -0
  7. package/components/select/index.d.ts +1 -0
  8. package/components/slider/index.d.ts +1 -0
  9. package/config.d.ts +8 -0
  10. package/esm2022/components/accordion/index.mjs +2 -0
  11. package/esm2022/components/alert/index.mjs +2 -0
  12. package/esm2022/components/modal/index.mjs +2 -0
  13. package/esm2022/components/pagination/index.mjs +2 -0
  14. package/esm2022/components/progressbar/index.mjs +2 -0
  15. package/esm2022/components/rating/index.mjs +2 -0
  16. package/esm2022/components/select/index.mjs +2 -0
  17. package/esm2022/components/slider/index.mjs +2 -0
  18. package/esm2022/config.mjs +40 -32
  19. package/esm2022/index.mjs +9 -9
  20. package/esm2022/slot.directive.mjs +4 -2
  21. package/esm2022/slotDefault.directive.mjs +2 -1
  22. package/esm2022/utils/coercion.mjs +9 -11
  23. package/esm2022/utils/directive.mjs +36 -27
  24. package/esm2022/utils/stores.mjs +10 -1
  25. package/esm2022/utils/widget.mjs +18 -1
  26. package/esm2022/utils/zone.mjs +7 -1
  27. package/fesm2022/agnos-ui-angular-headless.mjs +118 -68
  28. package/fesm2022/agnos-ui-angular-headless.mjs.map +1 -1
  29. package/index.d.ts +8 -8
  30. package/package.json +3 -8
  31. package/slot.directive.d.ts +2 -0
  32. package/slotDefault.directive.d.ts +1 -0
  33. package/utils/coercion.d.ts +8 -10
  34. package/utils/directive.d.ts +10 -2
  35. package/utils/stores.d.ts +9 -0
  36. package/utils/widget.d.ts +17 -0
  37. package/utils/zone.d.ts +6 -0
@@ -25,6 +25,17 @@ const createPatchSlots = (set) => {
25
25
  }
26
26
  };
27
27
  };
28
+ /**
29
+ * Call a widget factory using provided configs.
30
+ *
31
+ * @param parameter - the parameter
32
+ * @param parameter.factory - the widget factory to call
33
+ * @param parameter.defaultConfig - the default config of the widget
34
+ * @param parameter.widgetConfig - the config of the widget, overriding the defaultConfig
35
+ * @param parameter.events - the events of the widget
36
+ * @param parameter.afterInit - a callback to call after successful setup of the widget
37
+ * @returns the widget
38
+ */
28
39
  export const callWidgetFactoryWithConfig = ({ factory, defaultConfig, widgetConfig, events, afterInit, }) => {
29
40
  const injector = inject(Injector);
30
41
  const slots$ = writable({});
@@ -80,6 +91,10 @@ function patchSimpleChanges(patchFn, changes) {
80
91
  * Stores the result of the first call to the getter and returns that result directly for subsequent calls
81
92
  *
82
93
  * Applies to: class getters
94
+ *
95
+ * @param target - the target
96
+ * @param property - the property
97
+ * @param descriptor - the property descriptor
83
98
  */
84
99
  export const CachedProperty = (target, property, descriptor) => {
85
100
  const originalGet = descriptor.get;
@@ -99,9 +114,11 @@ export class BaseWidgetDirective {
99
114
  get widget() {
100
115
  return this._widget.widget;
101
116
  }
117
+ /** @inheritdoc */
102
118
  ngOnChanges(changes) {
103
119
  patchSimpleChanges(this._widget.patch, changes);
104
120
  }
121
+ /** @inheritdoc */
105
122
  ngOnInit() {
106
123
  this._widget.ngInit();
107
124
  }
@@ -111,4 +128,4 @@ export class BaseWidgetDirective {
111
128
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseWidgetDirective, [{
112
129
  type: Directive
113
130
  }], null, null); })();
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3dpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUNOLG1CQUFtQixHQU9uQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUMsZUFBZSxFQUFFLGVBQWUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLENBQW1CLEdBQWlDLEVBQUUsRUFBRTtJQUNoRixJQUFJLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFDL0IsT0FBTyxDQUFDLE1BQVMsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sUUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUIsRUFBRTtZQUM5RCxNQUFNLFNBQVMsR0FBSSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO2dCQUN0Qix5QkFBeUI7Z0JBQ3pCLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7YUFDMUI7WUFDRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDakI7U0FDRDtRQUNELElBQUksU0FBUyxFQUFFO1lBQ2QsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUNyQixHQUFHLENBQUMsUUFBUSxDQUFD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RCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQVcsRUFBRSxRQUFxQixFQUFFLFVBQThCLEVBQUUsRUFBRTtJQUNwRyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ25DLFVBQVUsQ0FBQyxHQUFHLEdBQUc7UUFDaEIsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFHRixNQUFNLE9BQWdCLG1CQUFtQjtJQUd4QyxJQUFJLEdBQUc7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7b0ZBckJvQixtQkFBbUI7b0VBQW5CLG1CQUFtQjs7aUZBQW5CLG1CQUFtQjtjQUR4QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21wdXRlZCwgd3JpdGFibGUsIHR5cGUgUmVhZGFibGVTaWduYWx9IGZyb20gJ0BhbWFkZXVzLWl0LWdyb3VwL3RhbnN1JztcbmltcG9ydCB0eXBlIHtPbkNoYW5nZXMsIE9uSW5pdCwgU2lnbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aXZlLCBJbmplY3RvciwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0dG9TbG90Q29udGV4dFdpZGdldCxcblx0dHlwZSBBbmd1bGFyV2lkZ2V0LFxuXHR0eXBlIENvbnRleHRXaWRnZXQsXG5cdHR5cGUgV2lkZ2V0LFxuXHR0eXBlIFdpZGdldEZhY3RvcnksXG5cdHR5cGUgV2lkZ2V0UHJvcHMsXG5cdHR5cGUgV2lkZ2V0U3RhdGUsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7dG9Bbmd1bGFyU2lnbmFsLCB0b1JlYWRhYmxlU3RvcmV9IGZyb20gJy4vc3RvcmVzJztcbmltcG9ydCB7Wm9uZVdyYXBwZXJ9IGZyb20gJy4vem9uZSc7XG5cbmNvbnN0IGNyZWF0ZVBhdGNoU2xvdHMgPSA8VCBleHRlbmRzIG9iamVjdD4oc2V0OiAob2JqZWN0OiBQYXJ0aWFsPFQ+KSA9PiB2b2lkKSA9PiB7XG5cdGxldCBsYXN0VmFsdWU6IFBhcnRpYWw8VD4gPSB7fTtcblx0cmV0dXJuIChvYmplY3Q6IFQpID0+IHtcblx0XHRjb25zdCBuZXdWYWx1ZTogUGFydGlhbDxUPiA9IHt9O1xuXHRcdGxldCBoYXNDaGFuZ2UgPSBmYWxzZTtcblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmplY3QpIGFzIChzdHJpbmcgJiBrZXlvZiBUKVtdKSB7XG5cdFx0XHRjb25zdCBvYmplY3RLZXkgPSAob2JqZWN0IGFzIGFueSlba2V5XTtcblx0XHRcdGlmIChvYmplY3RLZXkgIT0gbnVsbCkge1xuXHRcdFx0XHQvLyBvbmx5IHVzZSBkZWZpbmVkIHNsb3RzXG5cdFx0XHRcdG5ld1ZhbHVlW2tleV0gPSBvYmplY3RLZXk7XG5cdFx0XHR9XG5cdFx0XHRpZiAob2JqZWN0S2V5ICE9IGxhc3RWYWx1ZVtrZXldKSB7XG5cdFx0XHRcdGhhc0NoYW5nZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChoYXNDaGFuZ2UpIHtcblx0XHRcdGxhc3RWYWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdFx0c2V0KG5ld1ZhbHVlKTtcblx0XHR9XG5cdH07XG59O1xuXG5leHBvcnQgY29uc3QgY2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnID0gPFcgZXh0ZW5kcyBXaWRnZXQ+KHtcblx0ZmFjdG9yeSxcblx0ZGVmYXVsdENvbmZpZyxcblx0d2lkZ2V0Q29uZmlnLFxuXHRldmVudHMsXG5cdGFmdGVySW5pdCxcbn06IHtcblx0ZmFjdG9yeTogV2lkZ2V0RmFjdG9yeTxXPjtcblx0ZGVmYXVsdENvbmZpZz86IFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgUmVhZGFibGVTaWduYWw8UGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCB1bmRlZmluZWQ+O1xuXHR3aWRnZXRDb25maWc/OiBudWxsIHwgdW5kZWZpbmVkIHwgUmVhZGFibGVTaWduYWw8UGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCB1bmRlZmluZWQ+O1xuXHRldmVudHM6IFBpY2s8V2lkZ2V0UHJvcHM8Vz4sIGtleW9mIFdpZGdldFByb3BzPFc+ICYgYG9uJHtzdHJpbmd9YD47XG5cdGFmdGVySW5pdD86ICgpID0+IHZvaWQ7XG59KTogQW5ndWxhcldpZGdldDxXPiA9PiB7XG5cdGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0Y29uc3Qgc2xvdHMkID0gd3JpdGFibGUoe30pO1xuXHRjb25zdCBwcm9wcyA9IHt9O1xuXHRsZXQgaW5pdERvbmU6ICgpID0+IHZvaWQ7XG5cdGNvbnN0IHJlcyA9IHtcblx0XHRpbml0aWFsaXplZDogbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGluaXREb25lID0gcmVzb2x2ZTtcblx0XHR9KSxcblx0XHRwYXRjaFNsb3RzOiBjcmVhdGVQYXRjaFNsb3RzKHNsb3RzJC5zZXQpLFxuXHRcdHBhdGNoKG5ld1Byb3BzKSB7XG5cdFx0XHQvLyB0ZW1wb3JhcnkgZnVuY3Rpb24gcmVwbGFjZWQgaW4gbmdJbml0XG5cdFx0XHRPYmplY3QuYXNzaWduKHByb3BzLCBuZXdQcm9wcyk7XG5cdFx0fSxcblx0XHRuZ0luaXQoKSB7XG5cdFx0XHRydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRcdFx0Y29uc3Qgem9uZVdyYXBwZXIgPSBpbmplY3QoWm9uZVdyYXBwZXIpO1xuXHRcdFx0XHRmYWN0b3J5ID0gem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZShmYWN0b3J5KTtcblx0XHRcdFx0Y29uc3QgZGVmYXVsdENvbmZpZyQgPSB0b1JlYWRhYmxlU3RvcmUoZGVmYXVsdENvbmZpZyk7XG5cdFx0XHRcdGV2ZW50cyA9IHpvbmVXcmFwcGVyLmluc2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3QoZXZlbnRzKTtcblx0XHRcdFx0Y29uc3Qgd2lkZ2V0ID0gZmFjdG9yeSh7XG5cdFx0XHRcdFx0Y29uZmlnOiBjb21wdXRlZCgoKSA9PiAoey4uLmRlZmF1bHRDb25maWckKCksIC4uLndpZGdldENvbmZpZz8uKCksIC4uLnNsb3RzJCgpLCAuLi4oZXZlbnRzIGFzIFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+KX0pKSxcblx0XHRcdFx0XHRwcm9wcyxcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGNvbnN0IHdyYXBwZWRXaWRnZXQ6IFcgPSB7XG5cdFx0XHRcdFx0Li4ud2lkZ2V0LFxuXHRcdFx0XHRcdHBhdGNoOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lKHdpZGdldC5wYXRjaCksXG5cdFx0XHRcdFx0ZGlyZWN0aXZlczogem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmVzT2JqZWN0KHdpZGdldC5kaXJlY3RpdmVzKSxcblx0XHRcdFx0XHRhY3Rpb25zOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCh3aWRnZXQuYWN0aW9ucyksXG5cdFx0XHRcdFx0YXBpOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCh3aWRnZXQuYXBpKSxcblx0XHRcdFx0fTtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihyZXMsIHdyYXBwZWRXaWRnZXQsIHtcblx0XHRcdFx0XHR3aWRnZXQ6IHRvU2xvdENvbnRleHRXaWRnZXQod3JhcHBlZFdpZGdldCksXG5cdFx0XHRcdFx0bmdTdGF0ZTogdG9Bbmd1bGFyU2lnbmFsKHdyYXBwZWRXaWRnZXQuc3RhdGUkIGFzIFJlYWRhYmxlU2lnbmFsPFdpZGdldFN0YXRlPFc+PiksXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRhZnRlckluaXQ/LigpO1xuXHRcdFx0XHRpbml0RG9uZSgpO1xuXHRcdFx0fSk7XG5cdFx0fSxcblx0fSBhcyBBbmd1bGFyV2lkZ2V0PFc+O1xuXG5cdHJldHVybiByZXM7XG59O1xuXG5mdW5jdGlvbiBwYXRjaFNpbXBsZUNoYW5nZXMocGF0Y2hGbjogKG9iajogYW55KSA9PiB2b2lkLCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdGNvbnN0IG9iajogYW55ID0ge307XG5cdGZvciAoY29uc3QgW2tleSwgc2ltcGxlQ2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyhjaGFuZ2VzKSkge1xuXHRcdGlmIChzaW1wbGVDaGFuZ2UgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0b2JqW2tleV0gPSBzaW1wbGVDaGFuZ2UuY3VycmVudFZhbHVlO1xuXHRcdH1cblx0fVxuXHRwYXRjaEZuKG9iaik7XG59XG5cbi8qKlxuICogU3RvcmVzIHRoZSByZXN1bHQgb2YgdGhlIGZpcnN0IGNhbGwgdG8gdGhlIGdldHRlciBhbmQgcmV0dXJucyB0aGF0IHJlc3VsdCBkaXJlY3RseSBmb3Igc3Vic2VxdWVudCBjYWxsc1xuICpcbiAqIEFwcGxpZXMgdG86IGNsYXNzIGdldHRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IENhY2hlZFByb3BlcnR5ID0gKHRhcmdldDogYW55LCBwcm9wZXJ0eTogUHJvcGVydHlLZXksIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuXHRjb25zdCBvcmlnaW5hbEdldCA9IGRlc2NyaXB0b3IuZ2V0O1xuXHRkZXNjcmlwdG9yLmdldCA9IGZ1bmN0aW9uICh0aGlzOiBhbnkpIHtcblx0XHRjb25zdCB2YWx1ZSA9IG9yaWdpbmFsR2V0Py5jYWxsKHRoaXMpO1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBwcm9wZXJ0eSwge3ZhbHVlLCB3cml0YWJsZTogZmFsc2V9KTtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH07XG59O1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlV2lkZ2V0RGlyZWN0aXZlPFcgZXh0ZW5kcyBXaWRnZXQ+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgX3dpZGdldDogQW5ndWxhcldpZGdldDxXPjtcblxuXHRnZXQgYXBpKCk6IFdbJ2FwaSddIHtcblx0XHRyZXR1cm4gdGhpcy5fd2lkZ2V0LmFwaTtcblx0fVxuXG5cdGdldCBzdGF0ZSgpOiBTaWduYWw8V2lkZ2V0U3RhdGU8Vz4+IHtcblx0XHRyZXR1cm4gdGhpcy5fd2lkZ2V0Lm5nU3RhdGU7XG5cdH1cblxuXHRnZXQgd2lkZ2V0KCk6IENvbnRleHRXaWRnZXQ8Vz4ge1xuXHRcdHJldHVybiB0aGlzLl93aWRnZXQud2lkZ2V0O1xuXHR9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXHRcdHBhdGNoU2ltcGxlQ2hhbmdlcyh0aGlzLl93aWRnZXQucGF0Y2gsIGNoYW5nZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fd2lkZ2V0Lm5nSW5pdCgpO1xuXHR9XG59XG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3dpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUNOLG1CQUFtQixHQU9uQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUMsZUFBZSxFQUFFLGVBQWUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLENBQW1CLEdBQWlDLEVBQUUsRUFBRTtJQUNoRixJQUFJLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFDL0IsT0FBTyxDQUFDLE1BQVMsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sUUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUIsRUFBRSxDQUFDO1lBQy9ELE1BQU0sU0FBUyxHQUFJLE1BQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDdkIseUJBQXlCO2dCQUN6QixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZixTQUFTLEdBQUcs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bUI7O2lGQUFuQixtQkFBbUI7Y0FEeEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29tcHV0ZWQsIHdyaXRhYmxlLCB0eXBlIFJlYWRhYmxlU2lnbmFsfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7T25DaGFuZ2VzLCBPbkluaXQsIFNpZ25hbCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0b3IsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdHRvU2xvdENvbnRleHRXaWRnZXQsXG5cdHR5cGUgQW5ndWxhcldpZGdldCxcblx0dHlwZSBDb250ZXh0V2lkZ2V0LFxuXHR0eXBlIFdpZGdldCxcblx0dHlwZSBXaWRnZXRGYWN0b3J5LFxuXHR0eXBlIFdpZGdldFByb3BzLFxuXHR0eXBlIFdpZGdldFN0YXRlLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge3RvQW5ndWxhclNpZ25hbCwgdG9SZWFkYWJsZVN0b3JlfSBmcm9tICcuL3N0b3Jlcyc7XG5pbXBvcnQge1pvbmVXcmFwcGVyfSBmcm9tICcuL3pvbmUnO1xuXG5jb25zdCBjcmVhdGVQYXRjaFNsb3RzID0gPFQgZXh0ZW5kcyBvYmplY3Q+KHNldDogKG9iamVjdDogUGFydGlhbDxUPikgPT4gdm9pZCkgPT4ge1xuXHRsZXQgbGFzdFZhbHVlOiBQYXJ0aWFsPFQ+ID0ge307XG5cdHJldHVybiAob2JqZWN0OiBUKSA9PiB7XG5cdFx0Y29uc3QgbmV3VmFsdWU6IFBhcnRpYWw8VD4gPSB7fTtcblx0XHRsZXQgaGFzQ2hhbmdlID0gZmFsc2U7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSBhcyAoc3RyaW5nICYga2V5b2YgVClbXSkge1xuXHRcdFx0Y29uc3Qgb2JqZWN0S2V5ID0gKG9iamVjdCBhcyBhbnkpW2tleV07XG5cdFx0XHRpZiAob2JqZWN0S2V5ICE9IG51bGwpIHtcblx0XHRcdFx0Ly8gb25seSB1c2UgZGVmaW5lZCBzbG90c1xuXHRcdFx0XHRuZXdWYWx1ZVtrZXldID0gb2JqZWN0S2V5O1xuXHRcdFx0fVxuXHRcdFx0aWYgKG9iamVjdEtleSAhPSBsYXN0VmFsdWVba2V5XSkge1xuXHRcdFx0XHRoYXNDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaGFzQ2hhbmdlKSB7XG5cdFx0XHRsYXN0VmFsdWUgPSBuZXdWYWx1ZTtcblx0XHRcdHNldChuZXdWYWx1ZSk7XG5cdFx0fVxuXHR9O1xufTtcblxuLyoqXG4gKiBDYWxsIGEgd2lkZ2V0IGZhY3RvcnkgdXNpbmcgcHJvdmlkZWQgY29uZmlncy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1ldGVyIC0gdGhlIHBhcmFtZXRlclxuICogQHBhcmFtIHBhcmFtZXRlci5mYWN0b3J5IC0gdGhlIHdpZGdldCBmYWN0b3J5IHRvIGNhbGxcbiAqIEBwYXJhbSBwYXJhbWV0ZXIuZGVmYXVsdENvbmZpZyAtIHRoZSBkZWZhdWx0IGNvbmZpZyBvZiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gcGFyYW1ldGVyLndpZGdldENvbmZpZyAtIHRoZSBjb25maWcgb2YgdGhlIHdpZGdldCwgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdENvbmZpZ1xuICogQHBhcmFtIHBhcmFtZXRlci5ldmVudHMgLSB0aGUgZXZlbnRzIG9mIHRoZSB3aWRnZXRcbiAqIEBwYXJhbSBwYXJhbWV0ZXIuYWZ0ZXJJbml0IC0gYSBjYWxsYmFjayB0byBjYWxsIGFmdGVyIHN1Y2Nlc3NmdWwgc2V0dXAgb2YgdGhlIHdpZGdldFxuICogQHJldHVybnMgdGhlIHdpZGdldFxuICovXG5leHBvcnQgY29uc3QgY2FsbFdpZGdldEZhY3RvcnlXaXRoQ29uZmlnID0gPFcgZXh0ZW5kcyBXaWRnZXQ+KHtcblx0ZmFjdG9yeSxcblx0ZGVmYXVsdENvbmZpZyxcblx0d2lkZ2V0Q29uZmlnLFxuXHRldmVudHMsXG5cdGFmdGVySW5pdCxcbn06IHtcblx0ZmFjdG9yeTogV2lkZ2V0RmFjdG9yeTxXPjtcblx0ZGVmYXVsdENvbmZpZz86IFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+IHwgUmVhZGFibGVTaWduYWw8UGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCB1bmRlZmluZWQ+O1xuXHR3aWRnZXRDb25maWc/OiBudWxsIHwgdW5kZWZpbmVkIHwgUmVhZGFibGVTaWduYWw8UGFydGlhbDxXaWRnZXRQcm9wczxXPj4gfCB1bmRlZmluZWQ+O1xuXHRldmVudHM6IFBpY2s8V2lkZ2V0UHJvcHM8Vz4sIGtleW9mIFdpZGdldFByb3BzPFc+ICYgYG9uJHtzdHJpbmd9YD47XG5cdGFmdGVySW5pdD86ICgpID0+IHZvaWQ7XG59KTogQW5ndWxhcldpZGdldDxXPiA9PiB7XG5cdGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0Y29uc3Qgc2xvdHMkID0gd3JpdGFibGUoe30pO1xuXHRjb25zdCBwcm9wcyA9IHt9O1xuXHRsZXQgaW5pdERvbmU6ICgpID0+IHZvaWQ7XG5cdGNvbnN0IHJlcyA9IHtcblx0XHRpbml0aWFsaXplZDogbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGluaXREb25lID0gcmVzb2x2ZTtcblx0XHR9KSxcblx0XHRwYXRjaFNsb3RzOiBjcmVhdGVQYXRjaFNsb3RzKHNsb3RzJC5zZXQpLFxuXHRcdHBhdGNoKG5ld1Byb3BzKSB7XG5cdFx0XHQvLyB0ZW1wb3JhcnkgZnVuY3Rpb24gcmVwbGFjZWQgaW4gbmdJbml0XG5cdFx0XHRPYmplY3QuYXNzaWduKHByb3BzLCBuZXdQcm9wcyk7XG5cdFx0fSxcblx0XHRuZ0luaXQoKSB7XG5cdFx0XHRydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRcdFx0Y29uc3Qgem9uZVdyYXBwZXIgPSBpbmplY3QoWm9uZVdyYXBwZXIpO1xuXHRcdFx0XHRmYWN0b3J5ID0gem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZShmYWN0b3J5KTtcblx0XHRcdFx0Y29uc3QgZGVmYXVsdENvbmZpZyQgPSB0b1JlYWRhYmxlU3RvcmUoZGVmYXVsdENvbmZpZyk7XG5cdFx0XHRcdGV2ZW50cyA9IHpvbmVXcmFwcGVyLmluc2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3QoZXZlbnRzKTtcblx0XHRcdFx0Y29uc3Qgd2lkZ2V0ID0gZmFjdG9yeSh7XG5cdFx0XHRcdFx0Y29uZmlnOiBjb21wdXRlZCgoKSA9PiAoey4uLmRlZmF1bHRDb25maWckKCksIC4uLndpZGdldENvbmZpZz8uKCksIC4uLnNsb3RzJCgpLCAuLi4oZXZlbnRzIGFzIFBhcnRpYWw8V2lkZ2V0UHJvcHM8Vz4+KX0pKSxcblx0XHRcdFx0XHRwcm9wcyxcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGNvbnN0IHdyYXBwZWRXaWRnZXQ6IFcgPSB7XG5cdFx0XHRcdFx0Li4ud2lkZ2V0LFxuXHRcdFx0XHRcdHBhdGNoOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lKHdpZGdldC5wYXRjaCksXG5cdFx0XHRcdFx0ZGlyZWN0aXZlczogem9uZVdyYXBwZXIub3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmVzT2JqZWN0KHdpZGdldC5kaXJlY3RpdmVzKSxcblx0XHRcdFx0XHRhY3Rpb25zOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCh3aWRnZXQuYWN0aW9ucyksXG5cdFx0XHRcdFx0YXBpOiB6b25lV3JhcHBlci5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCh3aWRnZXQuYXBpKSxcblx0XHRcdFx0fTtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihyZXMsIHdyYXBwZWRXaWRnZXQsIHtcblx0XHRcdFx0XHR3aWRnZXQ6IHRvU2xvdENvbnRleHRXaWRnZXQod3JhcHBlZFdpZGdldCksXG5cdFx0XHRcdFx0bmdTdGF0ZTogdG9Bbmd1bGFyU2lnbmFsKHdyYXBwZWRXaWRnZXQuc3RhdGUkIGFzIFJlYWRhYmxlU2lnbmFsPFdpZGdldFN0YXRlPFc+PiksXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRhZnRlckluaXQ/LigpO1xuXHRcdFx0XHRpbml0RG9uZSgpO1xuXHRcdFx0fSk7XG5cdFx0fSxcblx0fSBhcyBBbmd1bGFyV2lkZ2V0PFc+O1xuXG5cdHJldHVybiByZXM7XG59O1xuXG5mdW5jdGlvbiBwYXRjaFNpbXBsZUNoYW5nZXMocGF0Y2hGbjogKG9iajogYW55KSA9PiB2b2lkLCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdGNvbnN0IG9iajogYW55ID0ge307XG5cdGZvciAoY29uc3QgW2tleSwgc2ltcGxlQ2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyhjaGFuZ2VzKSkge1xuXHRcdGlmIChzaW1wbGVDaGFuZ2UgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0b2JqW2tleV0gPSBzaW1wbGVDaGFuZ2UuY3VycmVudFZhbHVlO1xuXHRcdH1cblx0fVxuXHRwYXRjaEZuKG9iaik7XG59XG5cbi8qKlxuICogU3RvcmVzIHRoZSByZXN1bHQgb2YgdGhlIGZpcnN0IGNhbGwgdG8gdGhlIGdldHRlciBhbmQgcmV0dXJucyB0aGF0IHJlc3VsdCBkaXJlY3RseSBmb3Igc3Vic2VxdWVudCBjYWxsc1xuICpcbiAqIEFwcGxpZXMgdG86IGNsYXNzIGdldHRlcnNcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IC0gdGhlIHRhcmdldFxuICogQHBhcmFtIHByb3BlcnR5IC0gdGhlIHByb3BlcnR5XG4gKiBAcGFyYW0gZGVzY3JpcHRvciAtIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yXG4gKi9cbmV4cG9ydCBjb25zdCBDYWNoZWRQcm9wZXJ0eSA9ICh0YXJnZXQ6IGFueSwgcHJvcGVydHk6IFByb3BlcnR5S2V5LCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcblx0Y29uc3Qgb3JpZ2luYWxHZXQgPSBkZXNjcmlwdG9yLmdldDtcblx0ZGVzY3JpcHRvci5nZXQgPSBmdW5jdGlvbiAodGhpczogYW55KSB7XG5cdFx0Y29uc3QgdmFsdWUgPSBvcmlnaW5hbEdldD8uY2FsbCh0aGlzKTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgcHJvcGVydHksIHt2YWx1ZSwgd3JpdGFibGU6IGZhbHNlfSk7XG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9O1xufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVdpZGdldERpcmVjdGl2ZTxXIGV4dGVuZHMgV2lkZ2V0PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblx0cHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IF93aWRnZXQ6IEFuZ3VsYXJXaWRnZXQ8Vz47XG5cblx0Z2V0IGFwaSgpOiBXWydhcGknXSB7XG5cdFx0cmV0dXJuIHRoaXMuX3dpZGdldC5hcGk7XG5cdH1cblxuXHRnZXQgc3RhdGUoKTogU2lnbmFsPFdpZGdldFN0YXRlPFc+PiB7XG5cdFx0cmV0dXJuIHRoaXMuX3dpZGdldC5uZ1N0YXRlO1xuXHR9XG5cblx0Z2V0IHdpZGdldCgpOiBDb250ZXh0V2lkZ2V0PFc+IHtcblx0XHRyZXR1cm4gdGhpcy5fd2lkZ2V0LndpZGdldDtcblx0fVxuXG5cdC8qKiBAaW5oZXJpdGRvYyAqL1xuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0cGF0Y2hTaW1wbGVDaGFuZ2VzKHRoaXMuX3dpZGdldC5wYXRjaCwgY2hhbmdlcyk7XG5cdH1cblxuXHQvKiogQGluaGVyaXRkb2MgKi9cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fd2lkZ2V0Lm5nSW5pdCgpO1xuXHR9XG59XG4iXX0=
@@ -51,6 +51,12 @@ export class ZoneWrapper {
51
51
  #hasZone; // check if zone is enabled (can be NoopZone, cf https://angular.io/guide/zone#noopzone)
52
52
  #runNeeded;
53
53
  #runPlanned;
54
+ /**
55
+ * Run the input function synchronously within the Angular zone
56
+ *
57
+ * @param fn - a function to run
58
+ * @returns the value returned by the function
59
+ */
54
60
  ngZoneRun(fn) {
55
61
  this.#runNeeded = false;
56
62
  return this.#zone.run(fn);
@@ -64,4 +70,4 @@ export class ZoneWrapper {
64
70
  providedIn: 'root',
65
71
  }]
66
72
  }], null, null); })();
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy96b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFekQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUksQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFJaEMsTUFBTSxtQkFBbUIsR0FDeEIsQ0FBQyxJQUFhLEVBQVcsRUFBRSxDQUMzQixDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQ1YsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDMUMsT0FBTyxNQUFNLENBQUM7S0FDZDtJQUNELE1BQU0sR0FBRyxHQUFHLEVBQVMsQ0FBQztJQUN0QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBRSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUN0QztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ1osQ0FBQyxDQUFDO0FBRUgsTUFBTSx3QkFBd0IsR0FDN0IsQ0FBQyxlQUF3QixFQUFFLFVBQW1CLEVBQVcsRUFBRSxDQUMzRCxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ04sVUFBVSxDQUFDLE9BQU8sRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUsxRyxNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUlVLFVBQUss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J0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5jb25zdCBpZGVudGl0eSA9IDxUPihhOiBUKSA9PiBhO1xuXG50eXBlIFdyYXBwZXIgPSA8VD4oZm46IFQpID0+IFQ7XG5cbmNvbnN0IGNyZWF0ZU9iamVjdFdyYXBwZXIgPVxuXHQod3JhcDogV3JhcHBlcik6IFdyYXBwZXIgPT5cblx0KG9iamVjdCkgPT4ge1xuXHRcdGlmICghb2JqZWN0IHx8IHR5cGVvZiBvYmplY3QgIT09ICdvYmplY3QnKSB7XG5cdFx0XHRyZXR1cm4gb2JqZWN0O1xuXHRcdH1cblx0XHRjb25zdCByZXMgPSB7fSBhcyBhbnk7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xuXHRcdFx0cmVzW2tleV0gPSB3cmFwKChvYmplY3QgYXMgYW55KVtrZXldKTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlcztcblx0fTtcblxuY29uc3QgY3JlYXRlUmV0dXJuVmFsdWVXcmFwcGVyID1cblx0KHdyYXBSZXR1cm5WYWx1ZTogV3JhcHBlciwgd3JhcFJlc3VsdDogV3JhcHBlcik6IFdyYXBwZXIgPT5cblx0KGZuKSA9PlxuXHRcdHdyYXBSZXN1bHQodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHdyYXBSZXR1cm5WYWx1ZShmbiguLi5hcmdzKSkpIGFzIGFueSkgOiBmbik7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBab25lV3JhcHBlciB7XG5cdHJlYWRvbmx5ICN6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHJlYWRvbmx5ICNoYXNab25lID0gdGhpcy4jem9uZS5ydW4oKCkgPT4gTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKTsgLy8gY2hlY2sgaWYgem9uZSBpcyBlbmFibGVkIChjYW4gYmUgTm9vcFpvbmUsIGNmIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS96b25lI25vb3B6b25lKVxuXHQjcnVuTmVlZGVkID0gZmFsc2U7XG5cdCNydW5QbGFubmVkID0gZmFsc2U7XG5cblx0cGxhbk5nWm9uZVJ1biA9IHRoaXMuI2hhc1pvbmVcblx0XHQ/ICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuI3pvbmUuaXNTdGFibGUpIHtcblx0XHRcdFx0XHR0aGlzLiNydW5OZWVkZWQgPSB0cnVlO1xuXHRcdFx0XHRcdGlmICghdGhpcy4jcnVuUGxhbm5lZCkge1xuXHRcdFx0XHRcdFx0dGhpcy4jcnVuUGxhbm5lZCA9IHRydWU7XG5cdFx0XHRcdFx0XHR2b2lkIChhc3luYyAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IDA7XG5cdFx0XHRcdFx0XHRcdHRoaXMuI3J1blBsYW5uZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuI3J1bk5lZWRlZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubmdab25lUnVuKG5vb3ApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdDogbm9vcDtcblxuXHRuZ1pvbmVSdW48VD4oZm46ICgpID0+IFQpOiBUIHtcblx0XHR0aGlzLiNydW5OZWVkZWQgPSBmYWxzZTtcblx0XHRyZXR1cm4gdGhpcy4jem9uZS5ydW4oZm4pO1xuXHR9XG5cblx0aW5zaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMubmdab25lUnVuKCgpID0+IGZuKC4uLmFyZ3MpKSkgYXMgYW55KSA6IGZuKVxuXHRcdDogaWRlbnRpdHk7XG5cdGluc2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3QgPSBjcmVhdGVPYmplY3RXcmFwcGVyKHRoaXMuaW5zaWRlTmdab25lKTtcblxuXHRvdXRzaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oLi4uYXJncykpKSBhcyBhbnkpIDogZm4pXG5cdFx0OiBpZGVudGl0eTtcblxuXHRvdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCA9IGNyZWF0ZU9iamVjdFdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmUgPSBjcmVhdGVSZXR1cm5WYWx1ZVdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCwgdGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmVzT2JqZWN0ID0gY3JlYXRlT2JqZWN0V3JhcHBlcih0aGlzLm91dHNpZGVOZ1pvbmVXcmFwRGlyZWN0aXZlKTtcbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy96b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFekQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUksQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFJaEMsTUFBTSxtQkFBbUIsR0FDeEIsQ0FBQyxJQUFhLEVBQVcsRUFBRSxDQUMzQixDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQ1YsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBRSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDLENBQUM7QUFFSCxNQUFNLHdCQUF3QixHQUM3QixDQUFDLGVBQXdCLEVBQUUsVUFBbUIsRUFBVyxFQUFFLENBQzNELENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDTixVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBSzFHLE1BQU0sT0FBTyxX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bEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE5nWm9uZSwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuY29uc3QgaWRlbnRpdHkgPSA8VD4oYTogVCkgPT4gYTtcblxudHlwZSBXcmFwcGVyID0gPFQ+KGZuOiBUKSA9PiBUO1xuXG5jb25zdCBjcmVhdGVPYmplY3RXcmFwcGVyID1cblx0KHdyYXA6IFdyYXBwZXIpOiBXcmFwcGVyID0+XG5cdChvYmplY3QpID0+IHtcblx0XHRpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0cmV0dXJuIG9iamVjdDtcblx0XHR9XG5cdFx0Y29uc3QgcmVzID0ge30gYXMgYW55O1xuXHRcdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iamVjdCkpIHtcblx0XHRcdHJlc1trZXldID0gd3JhcCgob2JqZWN0IGFzIGFueSlba2V5XSk7XG5cdFx0fVxuXHRcdHJldHVybiByZXM7XG5cdH07XG5cbmNvbnN0IGNyZWF0ZVJldHVyblZhbHVlV3JhcHBlciA9XG5cdCh3cmFwUmV0dXJuVmFsdWU6IFdyYXBwZXIsIHdyYXBSZXN1bHQ6IFdyYXBwZXIpOiBXcmFwcGVyID0+XG5cdChmbikgPT5cblx0XHR3cmFwUmVzdWx0KHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJyA/ICgoKC4uLmFyZ3M6IGFueVtdKSA9PiB3cmFwUmV0dXJuVmFsdWUoZm4oLi4uYXJncykpKSBhcyBhbnkpIDogZm4pO1xuXG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgWm9uZVdyYXBwZXIge1xuXHRyZWFkb25seSAjem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXHRyZWFkb25seSAjaGFzWm9uZSA9IHRoaXMuI3pvbmUucnVuKCgpID0+IE5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSk7IC8vIGNoZWNrIGlmIHpvbmUgaXMgZW5hYmxlZCAoY2FuIGJlIE5vb3Bab25lLCBjZiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvem9uZSNub29wem9uZSlcblx0I3J1bk5lZWRlZCA9IGZhbHNlO1xuXHQjcnVuUGxhbm5lZCA9IGZhbHNlO1xuXG5cdHBsYW5OZ1pvbmVSdW4gPSB0aGlzLiNoYXNab25lXG5cdFx0PyAoKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLiN6b25lLmlzU3RhYmxlKSB7XG5cdFx0XHRcdFx0dGhpcy4jcnVuTmVlZGVkID0gdHJ1ZTtcblx0XHRcdFx0XHRpZiAoIXRoaXMuI3J1blBsYW5uZWQpIHtcblx0XHRcdFx0XHRcdHRoaXMuI3J1blBsYW5uZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0dm9pZCAoYXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRhd2FpdCAwO1xuXHRcdFx0XHRcdFx0XHR0aGlzLiNydW5QbGFubmVkID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLiNydW5OZWVkZWQpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLm5nWm9uZVJ1bihub29wKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSkoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQ6IG5vb3A7XG5cblx0LyoqXG5cdCAqIFJ1biB0aGUgaW5wdXQgZnVuY3Rpb24gc3luY2hyb25vdXNseSB3aXRoaW4gdGhlIEFuZ3VsYXIgem9uZVxuXHQgKlxuXHQgKiBAcGFyYW0gZm4gLSBhIGZ1bmN0aW9uIHRvIHJ1blxuXHQgKiBAcmV0dXJucyB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uXG5cdCAqL1xuXHRuZ1pvbmVSdW48VD4oZm46ICgpID0+IFQpOiBUIHtcblx0XHR0aGlzLiNydW5OZWVkZWQgPSBmYWxzZTtcblx0XHRyZXR1cm4gdGhpcy4jem9uZS5ydW4oZm4pO1xuXHR9XG5cblx0aW5zaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMubmdab25lUnVuKCgpID0+IGZuKC4uLmFyZ3MpKSkgYXMgYW55KSA6IGZuKVxuXHRcdDogaWRlbnRpdHk7XG5cdGluc2lkZU5nWm9uZVdyYXBGdW5jdGlvbnNPYmplY3QgPSBjcmVhdGVPYmplY3RXcmFwcGVyKHRoaXMuaW5zaWRlTmdab25lKTtcblxuXHRvdXRzaWRlTmdab25lOiBXcmFwcGVyID0gdGhpcy4jaGFzWm9uZVxuXHRcdD8gKGZuKSA9PiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gKCgoLi4uYXJnczogYW55W10pID0+IHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oLi4uYXJncykpKSBhcyBhbnkpIDogZm4pXG5cdFx0OiBpZGVudGl0eTtcblxuXHRvdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCA9IGNyZWF0ZU9iamVjdFdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmUgPSBjcmVhdGVSZXR1cm5WYWx1ZVdyYXBwZXIodGhpcy5vdXRzaWRlTmdab25lV3JhcEZ1bmN0aW9uc09iamVjdCwgdGhpcy5vdXRzaWRlTmdab25lKTtcblx0b3V0c2lkZU5nWm9uZVdyYXBEaXJlY3RpdmVzT2JqZWN0ID0gY3JlYXRlT2JqZWN0V3JhcHBlcih0aGlzLm91dHNpZGVOZ1pvbmVXcmFwRGlyZWN0aXZlKTtcbn1cbiJdfQ==
@@ -27,7 +27,7 @@ export * from '@agnos-ui/core/services/transitions/bootstrap';
27
27
  export * from '@agnos-ui/core/services/transitions/baseTransitions';
28
28
  export * from '@agnos-ui/core/utils/writables';
29
29
  import * as i0 from '@angular/core';
30
- import { NgZone, inject, Injectable, signal, DestroyRef, ElementRef, Directive, Input, Injector, runInInjectionContext, SkipSelf, Optional, InjectionToken, booleanAttribute, numberAttribute, TemplateRef, EnvironmentInjector, createComponent, reflectComponentType, ViewContainerRef } from '@angular/core';
30
+ import { inject, NgZone, Injectable, signal, DestroyRef, Injector, ElementRef, runInInjectionContext, afterNextRender, Directive, Input, SkipSelf, Optional, InjectionToken, booleanAttribute, numberAttribute, TemplateRef, createComponent, EnvironmentInjector, reflectComponentType, ViewContainerRef } from '@angular/core';
31
31
  import { toReadableStore } from '@agnos-ui/core/utils/stores';
32
32
  export * from '@agnos-ui/core/utils/stores';
33
33
  export * from '@agnos-ui/core/utils/directive';
@@ -103,6 +103,12 @@ class ZoneWrapper {
103
103
  #hasZone; // check if zone is enabled (can be NoopZone, cf https://angular.io/guide/zone#noopzone)
104
104
  #runNeeded;
105
105
  #runPlanned;
106
+ /**
107
+ * Run the input function synchronously within the Angular zone
108
+ *
109
+ * @param fn - a function to run
110
+ * @returns the value returned by the function
111
+ */
106
112
  ngZoneRun(fn) {
107
113
  this.#runNeeded = false;
108
114
  return this.#zone.run(fn);
@@ -117,6 +123,15 @@ class ZoneWrapper {
117
123
  }]
118
124
  }], null, null); })();
119
125
 
126
+ /**
127
+ * Convert a tansu readable signal into an Angular signal.
128
+ *
129
+ * @param tansuSignal - a tansu readable signal
130
+ * @returns an angular signal
131
+ *
132
+ * @remarks
133
+ * Note that as it uses Angular's `inject`, this can only be called at component construction time.
134
+ */
120
135
  const toAngularSignal = (tansuSignal) => {
121
136
  const zoneWrapper = inject(ZoneWrapper);
122
137
  const res = signal(undefined);
@@ -128,51 +143,60 @@ const toAngularSignal = (tansuSignal) => {
128
143
  return res;
129
144
  };
130
145
 
131
- // All calls of the directive in this class are done asynchronously (with await 0)
132
- // in order to avoid ExpressionChangedAfterItHasBeenCheckedError
133
- // or the corresponding issue with signals (https://github.com/angular/angular/issues/50320)
134
- // This is relevant especially if calling the directive changes variables used in a template.
135
- const useDirectiveForHost = (use, params) => {
146
+ /**
147
+ * Set up an agnos-ui directive as an angular host directive.
148
+ *
149
+ * @param directive - the directive
150
+ * @param params - the params to pass to the directive
151
+ * @returns the update function to change the directive or params
152
+ */
153
+ const useDirectiveForHost = (directive, params) => {
154
+ const injector = inject(Injector);
136
155
  const ref = inject(ElementRef);
137
- let instance = use?.(ref.nativeElement, params);
138
- async function destroyDirectiveInstance() {
156
+ let instance;
157
+ let plannedCallDirective = false;
158
+ const callDirective = () => {
159
+ if (plannedCallDirective || !directive) {
160
+ return;
161
+ }
162
+ plannedCallDirective = true;
163
+ runInInjectionContext(injector, () => {
164
+ afterNextRender(() => {
165
+ plannedCallDirective = false;
166
+ instance = directive?.(ref.nativeElement, params);
167
+ });
168
+ });
169
+ };
170
+ function destroyDirectiveInstance() {
139
171
  const oldInstance = instance;
140
172
  instance = undefined;
141
- use = undefined;
142
- if (oldInstance?.destroy) {
143
- await 0;
144
- oldInstance.destroy?.();
145
- }
173
+ directive = undefined;
174
+ oldInstance?.destroy?.();
146
175
  }
147
176
  inject(DestroyRef).onDestroy(destroyDirectiveInstance);
148
- async function update(newUse, newParams) {
149
- if (newUse !== use) {
177
+ function update(newDirective, newParams) {
178
+ if (newDirective !== directive) {
150
179
  void destroyDirectiveInstance();
151
- use = newUse;
180
+ directive = newDirective;
152
181
  params = newParams;
153
- if (newUse) {
154
- await 0;
155
- // checks that the directive did not change while waiting:
156
- if (use === newUse && !instance) {
157
- instance = use(ref.nativeElement, params);
158
- }
159
- }
182
+ callDirective();
160
183
  }
161
184
  else if (newParams != params) {
162
185
  params = newParams;
163
- await 0;
164
186
  instance?.update?.(params);
165
187
  }
166
188
  }
189
+ callDirective();
167
190
  return { update };
168
191
  };
169
192
  class UseDirective {
170
193
  #useDirective = useDirectiveForHost();
194
+ /** @inheritdoc */
171
195
  ngOnChanges() {
172
- void this.#useDirective.update(this.use, this.params);
196
+ this.#useDirective.update(this.use, this.params);
173
197
  }
174
198
  static { this.ɵfac = function UseDirective_Factory(t) { return new (t || UseDirective)(); }; }
175
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: UseDirective, selectors: [["", "auUse", ""]], inputs: { use: ["auUse", "use"], params: ["auUseParams", "params"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
199
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: UseDirective, selectors: [["", "auUse", ""]], inputs: { use: [i0.ɵɵInputFlags.None, "auUse", "use"], params: [i0.ɵɵInputFlags.None, "auUseParams", "params"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
176
200
  }
177
201
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UseDirective, [{
178
202
  type: Directive,
@@ -227,6 +251,17 @@ const createPatchSlots = (set) => {
227
251
  }
228
252
  };
229
253
  };
254
+ /**
255
+ * Call a widget factory using provided configs.
256
+ *
257
+ * @param parameter - the parameter
258
+ * @param parameter.factory - the widget factory to call
259
+ * @param parameter.defaultConfig - the default config of the widget
260
+ * @param parameter.widgetConfig - the config of the widget, overriding the defaultConfig
261
+ * @param parameter.events - the events of the widget
262
+ * @param parameter.afterInit - a callback to call after successful setup of the widget
263
+ * @returns the widget
264
+ */
230
265
  const callWidgetFactoryWithConfig = ({ factory, defaultConfig, widgetConfig, events, afterInit, }) => {
231
266
  const injector = inject(Injector);
232
267
  const slots$ = writable({});
@@ -282,6 +317,10 @@ function patchSimpleChanges(patchFn, changes) {
282
317
  * Stores the result of the first call to the getter and returns that result directly for subsequent calls
283
318
  *
284
319
  * Applies to: class getters
320
+ *
321
+ * @param target - the target
322
+ * @param property - the property
323
+ * @param descriptor - the property descriptor
285
324
  */
286
325
  const CachedProperty = (target, property, descriptor) => {
287
326
  const originalGet = descriptor.get;
@@ -301,9 +340,11 @@ class BaseWidgetDirective {
301
340
  get widget() {
302
341
  return this._widget.widget;
303
342
  }
343
+ /** @inheritdoc */
304
344
  ngOnChanges(changes) {
305
345
  patchSimpleChanges(this._widget.patch, changes);
306
346
  }
347
+ /** @inheritdoc */
307
348
  ngOnInit() {
308
349
  this._widget.ngInit();
309
350
  }
@@ -314,6 +355,14 @@ class BaseWidgetDirective {
314
355
  type: Directive
315
356
  }], null, null); })();
316
357
 
358
+ /**
359
+ * A factory to create the utilities to allow widgets to be context-aware.
360
+ *
361
+ * It can be used when extending the core and creating new widgets.
362
+ *
363
+ * @param widgetsConfigInjectionToken - the widgets config injection token
364
+ * @returns the utilities to create / manage widgets and contexts
365
+ */
317
366
  const widgetsConfigFactory = (widgetsConfigInjectionToken = new InjectionToken('widgetsConfig')) => {
318
367
  /**
319
368
  * Creates a provider of widgets default configuration that inherits from any widgets default configuration already defined at an upper level
@@ -335,37 +384,37 @@ const widgetsConfigFactory = (widgetsConfigInjectionToken = new InjectionToken('
335
384
  * It is called in a tansu reactive context, so it can use any tansu store and will be called again if those stores change.
336
385
  * It is also called in an Angular injection context, so it can call the Angular inject function to get and use dependencies from the
337
386
  * Angular dependency injection system.
338
-
339
- * @returns DI provider to be included a list of `providers` (for example at a component level or
340
- * any other level of the Angular dependency injection system)
341
- *
342
- * @example
343
- * ```typescript
344
- * @Component({
345
- * // ...
346
- * providers: [
347
- * provideWidgetsConfig((parentConfig) => {
348
- * // first step configuration: transforms the parent configuration
349
- * parentConfig.rating = parentConfig.rating ?? {};
350
- * parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`
351
- * return parentConfig;
352
- * })
353
- * ]
354
- * })
355
- * class MyComponent {
356
- * widgetsConfig = injectWidgetsConfig();
357
- * constructor() {
358
- * this.widgetsConfig.set({
359
- * // second step configuration: overrides the parent configuration
360
- * rating: {
361
- * slotStar: MyCustomSlotStar
362
- * }
363
- * });
364
- * }
365
- * // ...
366
- * }
367
- * ```
368
- */
387
+ *
388
+ * @returns DI provider to be included a list of `providers` (for example at a component level or
389
+ * any other level of the Angular dependency injection system)
390
+ *
391
+ * @example
392
+ * ```typescript
393
+ * @Component({
394
+ * // ...
395
+ * providers: [
396
+ * provideWidgetsConfig((parentConfig) => {
397
+ * // first step configuration: transforms the parent configuration
398
+ * parentConfig.rating = parentConfig.rating ?? {};
399
+ * parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`
400
+ * return parentConfig;
401
+ * })
402
+ * ]
403
+ * })
404
+ * class MyComponent {
405
+ * widgetsConfig = injectWidgetsConfig();
406
+ * constructor() {
407
+ * this.widgetsConfig.set({
408
+ * // second step configuration: overrides the parent configuration
409
+ * rating: {
410
+ * slotStar: MyCustomSlotStar
411
+ * }
412
+ * });
413
+ * }
414
+ * // ...
415
+ * }
416
+ * ```
417
+ */
369
418
  const provideWidgetsConfig = (adaptParentConfig) => ({
370
419
  provide: widgetsConfigInjectionToken,
371
420
  useFactory: (parent) => {
@@ -417,11 +466,10 @@ const { widgetsConfigInjectionToken, provideWidgetsConfig, injectWidgetConfig, i
417
466
  * Transforms a value (typically a string) to a boolean.
418
467
  * Intended to be used as a transform function of an input.
419
468
  *
420
- * @usageNotes
421
- * ```typescript
422
- * @Input({ transform: auBooleanAttribute }) status: boolean | undefined;
423
- * ```
424
- * @param value Value to be transformed.
469
+ * @example
470
+ * ```@Input({ transform: auBooleanAttribute }) status: boolean | undefined;```
471
+ * @param value - Value to be transformed.
472
+ * @returns the value transformed
425
473
  */
426
474
  function auBooleanAttribute(value) {
427
475
  if (value === undefined) {
@@ -432,12 +480,11 @@ function auBooleanAttribute(value) {
432
480
  /**
433
481
  * Transforms a value (typically a string) to a number.
434
482
  * Intended to be used as a transform function of an input.
435
- * @param value Value to be transformed.
483
+ * @param value - Value to be transformed.
436
484
  *
437
- * @usageNotes
438
- * ```typescript
439
- * @Input({ transform: auNumberAttribute }) id: number | undefined;
440
- * ```
485
+ * @example
486
+ * ```@Input({ transform: auNumberAttribute }) id: number | undefined;```
487
+ * @returns the value transformed
441
488
  */
442
489
  function auNumberAttribute(value) {
443
490
  if (value === undefined) {
@@ -450,6 +497,7 @@ class SlotDefaultDirective {
450
497
  constructor() {
451
498
  this.templateRef = inject((TemplateRef));
452
499
  }
500
+ /** @inheritdoc */
453
501
  ngOnInit() {
454
502
  this.auSlotDefault.update((value) => ({ ...value, slotDefault: this.templateRef }));
455
503
  }
@@ -621,6 +669,7 @@ class SlotDirective {
621
669
  this._viewContainerRef = inject(ViewContainerRef);
622
670
  this._document = inject(DOCUMENT);
623
671
  }
672
+ /** @inheritdoc */
624
673
  ngOnChanges(changes) {
625
674
  const slotChange = changes['slot'];
626
675
  const propsChange = changes['props'];
@@ -638,12 +687,13 @@ class SlotDirective {
638
687
  this._slotHandler?.propsChange(slot, this.props);
639
688
  }
640
689
  }
690
+ /** @inheritdoc */
641
691
  ngOnDestroy() {
642
692
  this._slotHandler?.destroy();
643
693
  this._slotHandler = undefined;
644
694
  }
645
695
  static { this.ɵfac = function SlotDirective_Factory(t) { return new (t || SlotDirective)(); }; }
646
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SlotDirective, selectors: [["", "auSlot", ""]], inputs: { slot: ["auSlot", "slot"], props: ["auSlotProps", "props"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
696
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SlotDirective, selectors: [["", "auSlot", ""]], inputs: { slot: [i0.ɵɵInputFlags.None, "auSlot", "slot"], props: [i0.ɵɵInputFlags.None, "auSlotProps", "props"] }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
647
697
  }
648
698
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SlotDirective, [{
649
699
  type: Directive,