@zcomponent/core 1.6.1-beta → 1.8.0-beta

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.
@@ -56,6 +56,7 @@
56
56
  border-radius: 100%;
57
57
  background-color: #ffffff;
58
58
  opacity: 0;
59
+ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
59
60
  }
60
61
 
61
62
  .zee-social-share-ring {
@@ -67,6 +68,7 @@
67
68
  border-radius: 100%;
68
69
  border: 0.5em solid #ffffff;
69
70
  opacity: 0.8;
71
+ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
70
72
  }
71
73
 
72
74
  .zee-photo-button .zee-social-share-circle .zee-photo-button .zee-social-share-ring {
@@ -19,6 +19,7 @@ export declare class ActivateState extends ActionBehavior {
19
19
  * @zprop
20
20
  * @zgroup Override Fade
21
21
  * @zgrouppriority 10
22
+ * @ztype time-milliseconds
22
23
  */
23
24
  fadeTime?: number;
24
25
  /**
@@ -49,6 +49,7 @@ export declare class PlayLayerClip extends ActionBehavior {
49
49
  * @zprop
50
50
  * @zgroup Override Fade
51
51
  * @zgrouppriority 10
52
+ * @ztype time-milliseconds
52
53
  */
53
54
  fadeTime?: number;
54
55
  /**
@@ -22,6 +22,7 @@ export declare class ShowTextAlert extends ActionBehavior {
22
22
  * @zgroup Appearance
23
23
  * @zgrouppriority 10
24
24
  * @zdefault 3000
25
+ * @ztype time-milliseconds
25
26
  */
26
27
  timeout: Observable<number, never>;
27
28
  /**
@@ -26,6 +26,7 @@ export class ShowTextAlert extends ActionBehavior {
26
26
  * @zgroup Appearance
27
27
  * @zgrouppriority 10
28
28
  * @zdefault 3000
29
+ * @ztype time-milliseconds
29
30
  */
30
31
  this.timeout = new Observable(3000);
31
32
  /**
@@ -70,6 +70,7 @@ export declare class ToggleLayerClips extends ActionBehavior {
70
70
  * @zprop
71
71
  * @zgroup Override Fade
72
72
  * @zgrouppriority 10
73
+ * @ztype time-milliseconds
73
74
  */
74
75
  fadeTime?: number;
75
76
  /**
@@ -20,6 +20,7 @@ export declare class SeekStream extends ActionBehavior {
20
20
  * @zgroup Stop Settings
21
21
  * @zgrouppriority 20
22
22
  * @zdefault 0
23
+ * @ztype time-milliseconds
23
24
  */
24
25
  time: number;
25
26
  constructor(contextManager: ContextManager, instance: Component, props: ActionBehaviorConstructorProps);
@@ -14,6 +14,7 @@ export class SeekStream extends ActionBehavior {
14
14
  * @zgroup Stop Settings
15
15
  * @zgrouppriority 20
16
16
  * @zdefault 0
17
+ * @ztype time-milliseconds
17
18
  */
18
19
  this.time = 0;
19
20
  }
@@ -13,6 +13,7 @@ export interface LongLoadConstructorProps {
13
13
  * @zprop
14
14
  * @zgroup LongLoad
15
15
  * @zgrouppriority 10
16
+ * @ztype time-milliseconds
16
17
  * @zdefault 500
17
18
  */
18
19
  minimumLoadTime: number;
@@ -21,6 +22,7 @@ export interface LongLoadConstructorProps {
21
22
  * @zprop
22
23
  * @zgroup LongLoad
23
24
  * @zgrouppriority 10
25
+ * @ztype time-milliseconds
24
26
  * @zdefault 5000
25
27
  */
26
28
  maximumLoadTime: number;
@@ -17,6 +17,10 @@ export declare class SnapshotUI extends Component {
17
17
  onSave: Event<[]>;
18
18
  /** @zui */
19
19
  onShare: Event<[]>;
20
+ /** @zprop
21
+ * @zdefault true
22
+ */
23
+ visible: Observable<boolean, never>;
20
24
  /**
21
25
  * The format of the image to capture.
22
26
  * @zprop
@@ -22,6 +22,17 @@ export class SnapshotUI extends Component {
22
22
  this.onSave = new Event();
23
23
  /** @zui */
24
24
  this.onShare = new Event();
25
+ /** @zprop
26
+ * @zdefault true
27
+ */
28
+ this.visible = new Observable(true, visible => {
29
+ if (visible) {
30
+ this.captureButton.show();
31
+ }
32
+ else {
33
+ this.captureButton.hide();
34
+ }
35
+ });
25
36
  /**
26
37
  * The format of the image to capture.
27
38
  * @zprop
@@ -223,7 +234,7 @@ class ShareDivElement {
223
234
  <button id="zee-save-button" class="zee-social-share-button">
224
235
  <img src="${download_src}">
225
236
  </button>
226
- ${withShareButton ? `<zee-social-share-button id="zee-share-button" class="button"><img src="${share_src}"></zee-social-share-button>` : ''}
237
+ ${withShareButton ? `<button id="zee-share-button" class="zee-social-share-button"><img src="${share_src}"></button>` : ''}
227
238
  </div>
228
239
  <div id="zee-social-share-close-wrapper">
229
240
  <button id="zee-close-button" class="zee-social-share-button">
package/lib/types.d.ts CHANGED
@@ -79,7 +79,10 @@ export declare enum TypeHint {
79
79
  'color-css' = "color-css",
80
80
  'text-multiline' = "text-multiline",
81
81
  'angle-degrees' = "angle-degrees",
82
- 'angle-radians' = "angle-radians"
82
+ 'angle-radians' = "angle-radians",
83
+ 'time-seconds' = "time-seconds",
84
+ 'time-milliseconds' = "time-milliseconds",
85
+ 'time-hertz' = "time-hertz"
83
86
  }
84
87
  export declare enum ValuesType {
85
88
  'files' = "files",
package/lib/types.js CHANGED
@@ -28,6 +28,9 @@ export var TypeHint;
28
28
  TypeHint["text-multiline"] = "text-multiline";
29
29
  TypeHint["angle-degrees"] = "angle-degrees";
30
30
  TypeHint["angle-radians"] = "angle-radians";
31
+ TypeHint["time-seconds"] = "time-seconds";
32
+ TypeHint["time-milliseconds"] = "time-milliseconds";
33
+ TypeHint["time-hertz"] = "time-hertz";
31
34
  })(TypeHint || (TypeHint = {}));
32
35
  export var ValuesType;
33
36
  (function (ValuesType) {
@@ -70,5 +70,26 @@ export declare class ZComponent<RootType = any> extends Component<RootType> {
70
70
  private _setEntityPropPath;
71
71
  _getNodeById(id: string): Component | undefined;
72
72
  resolveStreamID(id: string): Stream | undefined;
73
+ /**
74
+ * Traverses the component tree starting from the current component,
75
+ * moving down the tree using either Breadth-First Search (BFS) or Depth-First Search (DFS),
76
+ * and invokes the given callback function on each component.
77
+ *
78
+ * Breadth-first chosen for traversal can be specifying `true` for the second parameter
79
+ *
80
+ * Example usage:
81
+ * ```
82
+ * component.traverse((comp) => {
83
+ * // Your logic here, e.g.
84
+ * console.log(comp.name);
85
+ * }, true);
86
+ * ```
87
+ *
88
+ * @param callback A function that will be called for each component in the traversal. The current component is passed as a parameter to the callback.
89
+ * @param breadthFirst If traversal should be breadth-first. Defaults to `false` (depth-first).
90
+ */
91
+ traverse(callback: (comp: Component<any>) => void, breadthFirst?: boolean): void;
92
+ private _traverseBFS;
93
+ private _traverseDFS;
73
94
  dispose(): never;
74
95
  }
package/lib/zcomponent.js CHANGED
@@ -28,7 +28,7 @@ export class ZComponent extends Component {
28
28
  this.entityByID = new Map();
29
29
  this.entityByLabel = new Map();
30
30
  this.nodeByLabel = new Map();
31
- this.constructed = new Promise(resolve => this._constructedResolve = resolve);
31
+ this.constructed = new Promise(resolve => (this._constructedResolve = resolve));
32
32
  this.isConstructed = false;
33
33
  this.animation = new Animation(false);
34
34
  /**
@@ -54,9 +54,7 @@ export class ZComponent extends Component {
54
54
  populateAnimationStructureFromData(this, this.animation, this._opts.data.animation);
55
55
  const rootConstructor = this._constructorForNode(this._opts.data.root);
56
56
  if (rootConstructor) {
57
- this.constructChildren([
58
- [rootConstructor, {}]
59
- ], contextManagerForChildren);
57
+ this.constructChildren([[rootConstructor, {}]], contextManagerForChildren);
60
58
  }
61
59
  this._inflateBehaviors();
62
60
  this._initializeComponentProps();
@@ -104,7 +102,7 @@ export class ZComponent extends Component {
104
102
  ...(that._opts.data.entityConstructorProps?.[nodeId] ?? {}),
105
103
  ...(that._opts.constructorPropReplacement?.[nodeId] ?? {}),
106
104
  ...(that._constructorPropOverridesByEntityID.get(nodeId) ?? {}),
107
- children
105
+ children,
108
106
  };
109
107
  setCurrentZComponentConstruction(that);
110
108
  super(contextManager, constructorProps);
@@ -244,7 +242,7 @@ export class ZComponent extends Component {
244
242
  new constructor(ctx, impl);
245
243
  }
246
244
  catch (err) {
247
- const nodeName = this._opts.data.nodes[nodeID]?.label ?? "Unknown node";
245
+ const nodeName = this._opts.data.nodes[nodeID]?.label ?? 'Unknown node';
248
246
  const behaviorType = this._opts.data.behaviors[behaviorID]?.type;
249
247
  console.log('An error occurred when constructing behavior of type:', behaviorType, 'for node:', nodeName, err);
250
248
  }
@@ -392,6 +390,51 @@ export class ZComponent extends Component {
392
390
  }
393
391
  return obj;
394
392
  }
393
+ /**
394
+ * Traverses the component tree starting from the current component,
395
+ * moving down the tree using either Breadth-First Search (BFS) or Depth-First Search (DFS),
396
+ * and invokes the given callback function on each component.
397
+ *
398
+ * Breadth-first chosen for traversal can be specifying `true` for the second parameter
399
+ *
400
+ * Example usage:
401
+ * ```
402
+ * component.traverse((comp) => {
403
+ * // Your logic here, e.g.
404
+ * console.log(comp.name);
405
+ * }, true);
406
+ * ```
407
+ *
408
+ * @param callback A function that will be called for each component in the traversal. The current component is passed as a parameter to the callback.
409
+ * @param breadthFirst If traversal should be breadth-first. Defaults to `false` (depth-first).
410
+ */
411
+ traverse(callback, breadthFirst = false) {
412
+ if (breadthFirst) {
413
+ this._traverseBFS(callback);
414
+ }
415
+ else {
416
+ this._traverseDFS(callback);
417
+ }
418
+ }
419
+ _traverseBFS(callback) {
420
+ const queue = [this];
421
+ while (queue.length > 0) {
422
+ const currentComponent = queue.shift();
423
+ if (currentComponent) {
424
+ callback(currentComponent);
425
+ queue.push(...currentComponent.children);
426
+ }
427
+ }
428
+ }
429
+ _traverseDFS(callback) {
430
+ const dfs = (comp) => {
431
+ if (comp) {
432
+ callback(comp);
433
+ comp.children.forEach(dfs);
434
+ }
435
+ };
436
+ dfs(this);
437
+ }
395
438
  dispose() {
396
439
  this.animation.dispose();
397
440
  for (const entity of this.entityByID.values()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zcomponent/core",
3
- "version": "1.6.1-beta",
3
+ "version": "1.8.0-beta",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",