@microsoft/fast-element 2.0.0-beta.5 → 2.0.0-beta.7

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 (80) hide show
  1. package/CHANGELOG.json +72 -0
  2. package/CHANGELOG.md +24 -1
  3. package/dist/dts/components/attributes.d.ts +10 -0
  4. package/dist/dts/components/{controller.d.ts → element-controller.d.ts} +24 -25
  5. package/dist/dts/components/fast-definitions.d.ts +28 -3
  6. package/dist/dts/components/fast-element.d.ts +2 -2
  7. package/dist/dts/di/di.d.ts +41 -0
  8. package/dist/dts/index.d.ts +2 -2
  9. package/dist/dts/interfaces.d.ts +4 -0
  10. package/dist/dts/observation/observable.d.ts +86 -47
  11. package/dist/dts/pending-task.d.ts +20 -0
  12. package/dist/dts/platform.d.ts +6 -0
  13. package/dist/dts/state/exports.d.ts +3 -0
  14. package/dist/dts/state/reactive.d.ts +8 -0
  15. package/dist/dts/state/state.d.ts +141 -0
  16. package/dist/dts/state/visitor.d.ts +6 -0
  17. package/dist/dts/state/watch.d.ts +10 -0
  18. package/dist/dts/styles/css-directive.d.ts +2 -2
  19. package/dist/dts/styles/element-styles.d.ts +3 -3
  20. package/dist/dts/styles/host.d.ts +68 -0
  21. package/dist/dts/templating/binding-signal.d.ts +2 -2
  22. package/dist/dts/templating/binding-two-way.d.ts +11 -3
  23. package/dist/dts/templating/binding.d.ts +21 -119
  24. package/dist/dts/templating/children.d.ts +1 -1
  25. package/dist/dts/templating/html-directive.d.ts +69 -39
  26. package/dist/dts/templating/node-observation.d.ts +4 -5
  27. package/dist/dts/templating/ref.d.ts +5 -13
  28. package/dist/dts/templating/render.d.ts +15 -20
  29. package/dist/dts/templating/repeat.d.ts +11 -16
  30. package/dist/dts/templating/slotted.d.ts +1 -1
  31. package/dist/dts/templating/template.d.ts +4 -4
  32. package/dist/dts/templating/view.d.ts +68 -9
  33. package/dist/dts/templating/when.d.ts +1 -1
  34. package/dist/dts/testing/exports.d.ts +1 -0
  35. package/dist/dts/testing/fakes.d.ts +4 -0
  36. package/dist/dts/testing/fixture.d.ts +0 -6
  37. package/dist/dts/utilities.d.ts +0 -18
  38. package/dist/esm/components/attributes.js +13 -4
  39. package/dist/esm/components/{controller.js → element-controller.js} +95 -105
  40. package/dist/esm/components/fast-definitions.js +3 -1
  41. package/dist/esm/components/fast-element.js +4 -4
  42. package/dist/esm/di/di.js +87 -3
  43. package/dist/esm/index.js +2 -1
  44. package/dist/esm/interfaces.js +4 -0
  45. package/dist/esm/observation/observable.js +59 -126
  46. package/dist/esm/pending-task.js +16 -0
  47. package/dist/esm/platform.js +21 -0
  48. package/dist/esm/state/exports.js +3 -0
  49. package/dist/esm/state/reactive.js +34 -0
  50. package/dist/esm/state/state.js +148 -0
  51. package/dist/esm/state/visitor.js +28 -0
  52. package/dist/esm/state/watch.js +36 -0
  53. package/dist/esm/styles/css.js +4 -4
  54. package/dist/esm/{observation/behavior.js → styles/host.js} +0 -0
  55. package/dist/esm/templating/binding-signal.js +21 -17
  56. package/dist/esm/templating/binding-two-way.js +32 -27
  57. package/dist/esm/templating/binding.js +73 -177
  58. package/dist/esm/templating/html-directive.js +78 -7
  59. package/dist/esm/templating/node-observation.js +9 -8
  60. package/dist/esm/templating/ref.js +4 -12
  61. package/dist/esm/templating/render.js +30 -31
  62. package/dist/esm/templating/repeat.js +37 -38
  63. package/dist/esm/templating/template.js +3 -4
  64. package/dist/esm/templating/view.js +96 -24
  65. package/dist/esm/testing/exports.js +1 -0
  66. package/dist/esm/testing/fakes.js +76 -0
  67. package/dist/esm/testing/fixture.js +1 -3
  68. package/dist/esm/utilities.js +0 -95
  69. package/dist/fast-element.api.json +5720 -5385
  70. package/dist/fast-element.d.ts +510 -399
  71. package/dist/fast-element.debug.js +492 -509
  72. package/dist/fast-element.debug.min.js +1 -1
  73. package/dist/fast-element.js +492 -509
  74. package/dist/fast-element.min.js +1 -1
  75. package/dist/fast-element.untrimmed.d.ts +519 -405
  76. package/docs/api-report.md +197 -129
  77. package/package.json +8 -4
  78. package/dist/dts/hooks.d.ts +0 -20
  79. package/dist/dts/observation/behavior.d.ts +0 -19
  80. package/dist/esm/hooks.js +0 -32
@@ -1,98 +1,3 @@
1
- import { ArrayObserver } from "./index.debug.js";
2
- import { isFunction } from "./interfaces.js";
3
- import { Observable } from "./observation/observable.js";
4
- function shouldTraverse(value, traversed) {
5
- return (value !== null &&
6
- value !== void 0 &&
7
- typeof value === "object" &&
8
- !traversed.has(value));
9
- }
10
- function traverseObject(object, deep, visitor, data, traversed) {
11
- if (!shouldTraverse(object, traversed)) {
12
- return;
13
- }
14
- traversed.add(object);
15
- if (Array.isArray(object)) {
16
- visitor.visitArray(object, data);
17
- for (const item of object) {
18
- traverseObject(item, deep, visitor, data, traversed);
19
- }
20
- }
21
- else {
22
- visitor.visitObject(object, data);
23
- for (const key in object) {
24
- const value = object[key];
25
- visitor.visitProperty(object, key, value, data);
26
- if (deep) {
27
- traverseObject(value, deep, visitor, data, traversed);
28
- }
29
- }
30
- }
31
- }
32
- const noop = () => void 0;
33
- const observed = new WeakSet();
34
- const makeObserverVisitor = {
35
- visitObject: noop,
36
- visitArray: noop,
37
- visitProperty(object, propertyName, value) {
38
- Reflect.defineProperty(object, propertyName, {
39
- enumerable: true,
40
- get() {
41
- Observable.track(object, propertyName);
42
- return value;
43
- },
44
- set(newValue) {
45
- if (value !== newValue) {
46
- value = newValue;
47
- Observable.notify(object, propertyName);
48
- }
49
- },
50
- });
51
- },
52
- };
53
- function watchObject(object, data) {
54
- const notifier = Observable.getNotifier(object);
55
- notifier.subscribe(data.subscriber);
56
- data.notifiers.push(notifier);
57
- }
58
- const watchVisitor = {
59
- visitProperty: noop,
60
- visitObject: watchObject,
61
- visitArray: watchObject,
62
- };
63
- /**
64
- * Converts a plain object to an observable object.
65
- * @param object - The object to make observable.
66
- * @param deep - Indicates whether or not to deeply convert the oject.
67
- * @returns The converted object.
68
- * @beta
69
- */
70
- export function makeObservable(object, deep = false) {
71
- traverseObject(object, deep, makeObserverVisitor, void 0, observed);
72
- return object;
73
- }
74
- /**
75
- * Deeply subscribes to changes in existing observable objects.
76
- * @param object - The observable object to watch.
77
- * @param subscriber - The handler to call when changes are made to the object.
78
- * @returns A disposable that can be used to unsubscribe from change updates.
79
- * @beta
80
- */
81
- export function watch(object, subscriber) {
82
- const data = {
83
- notifiers: [],
84
- subscriber: isFunction(subscriber) ? { handleChange: subscriber } : subscriber,
85
- };
86
- ArrayObserver.enable();
87
- traverseObject(object, true, watchVisitor, data, new Set());
88
- return {
89
- dispose() {
90
- for (const n of data.notifiers) {
91
- n.unsubscribe(data.subscriber);
92
- }
93
- },
94
- };
95
- }
96
1
  /**
97
2
  * Retrieves the "composed parent" element of a node, ignoring DOM tree boundaries.
98
3
  * When the parent of a node is a shadow-root, it will return the host