@omnimedia/omnitool 1.1.0-22 → 1.1.0-24

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.
package/x/index.html CHANGED
@@ -65,7 +65,7 @@ canvas {
65
65
  }
66
66
 
67
67
  </style>
68
- <script type=module src="demo/demo.bundle.min.js?v=df769abe7e14"></script>
68
+ <script type=module src="demo/demo.bundle.min.js?v=f1be0dfab842"></script>
69
69
 
70
70
 
71
71
  <meta name="theme-color" content="#3cff9c">
@@ -85,7 +85,7 @@ canvas {
85
85
  <body>
86
86
 
87
87
  <section>
88
- <h1>Omnitool <small>v1.1.0-22</small></h1>
88
+ <h1>Omnitool <small>v1.1.0-24</small></h1>
89
89
  <button class=fetch>fetch</button>
90
90
  <input type="file" class="file-input">
91
91
  <div class=results></div>
@@ -12,6 +12,7 @@ export declare class O {
12
12
  project: TimelineFile;
13
13
  });
14
14
  require<T extends Item.Any>(id: Id | undefined): T | undefined;
15
+ register(item: Item.Any): void;
15
16
  textStyle: (style: TextStyleOptions) => Item.TextStyle;
16
17
  spatial: (transform: Transform) => Item.Spatial;
17
18
  sequence: (...items: Item.Any[]) => Item.Any;
@@ -31,5 +32,5 @@ export declare class O {
31
32
  };
32
33
  transform: (options?: TransformOptions) => Transform;
33
34
  addChildren(parent: Item.Stack | Item.Sequence, ...items: Item.Any[]): void;
34
- update: <K extends keyof Item.Any>(itemId: Id, key: K, value: Item.Any[K]) => void;
35
+ set: <K extends Item.Any>(id: Id, partial: Partial<K>) => void;
35
36
  }
@@ -17,17 +17,28 @@ export class O {
17
17
  #mutate(fn) {
18
18
  this.state.project = fn(this.state.project);
19
19
  }
20
- textStyle = (style) => ({
21
- id: this.#getId(),
22
- kind: Kind.TextStyle,
23
- style
24
- });
20
+ register(item) {
21
+ this.#mutate(state => {
22
+ state.items.push(item);
23
+ return state;
24
+ });
25
+ }
26
+ textStyle = (style) => {
27
+ const item = {
28
+ id: this.#getId(),
29
+ kind: Kind.TextStyle,
30
+ style
31
+ };
32
+ this.register(item);
33
+ return item;
34
+ };
25
35
  spatial = (transform) => {
26
36
  const item = {
27
37
  id: this.#getId(),
28
38
  kind: Kind.Spatial,
29
39
  transform
30
40
  };
41
+ this.register(item);
31
42
  return item;
32
43
  };
33
44
  sequence = (...items) => {
@@ -36,10 +47,7 @@ export class O {
36
47
  kind: Kind.Sequence,
37
48
  childrenIds: items.map(item => item.id)
38
49
  };
39
- this.#mutate(state => {
40
- state.items.push(item, ...items);
41
- return state;
42
- });
50
+ this.register(item);
43
51
  return item;
44
52
  };
45
53
  stack = (...items) => {
@@ -48,10 +56,7 @@ export class O {
48
56
  id: this.#getId(),
49
57
  childrenIds: items.map(item => item.id)
50
58
  };
51
- this.#mutate(state => {
52
- state.items.push(item, ...items);
53
- return state;
54
- });
59
+ this.register(item);
55
60
  return item;
56
61
  };
57
62
  video = (media, options) => {
@@ -64,6 +69,7 @@ export class O {
64
69
  start: options?.start ?? 0,
65
70
  duration: options?.duration ?? media.duration
66
71
  };
72
+ this.register(item);
67
73
  return item;
68
74
  };
69
75
  audio = (media, options) => {
@@ -76,26 +82,39 @@ export class O {
76
82
  start: options?.start ?? 0,
77
83
  duration: options?.duration ?? media.duration
78
84
  };
85
+ this.register(item);
79
86
  return item;
80
87
  };
81
- text = (content) => ({
82
- id: this.#getId(),
83
- content,
84
- kind: Kind.Text,
85
- duration: 2000
86
- });
87
- gap = (duration) => ({
88
- id: this.#getId(),
89
- kind: Kind.Gap,
90
- duration
91
- });
92
- transition = {
93
- crossfade: (duration) => ({
88
+ text = (content) => {
89
+ const item = {
94
90
  id: this.#getId(),
95
- kind: Kind.Transition,
96
- effect: Effect.Crossfade,
97
- duration,
98
- }),
91
+ content,
92
+ kind: Kind.Text,
93
+ duration: 2000
94
+ };
95
+ this.register(item);
96
+ return item;
97
+ };
98
+ gap = (duration) => {
99
+ const item = {
100
+ id: this.#getId(),
101
+ kind: Kind.Gap,
102
+ duration
103
+ };
104
+ this.register(item);
105
+ return item;
106
+ };
107
+ transition = {
108
+ crossfade: (duration) => {
109
+ const item = {
110
+ id: this.#getId(),
111
+ kind: Kind.Transition,
112
+ effect: Effect.Crossfade,
113
+ duration,
114
+ };
115
+ this.register(item);
116
+ return item;
117
+ },
99
118
  };
100
119
  transform = (options) => {
101
120
  const position = [
@@ -113,23 +132,16 @@ export class O {
113
132
  this.#mutate(state => {
114
133
  const parentItem = state.items.find(({ id }) => id === parent.id);
115
134
  parentItem.childrenIds.push(...items.map(item => item.id));
116
- state.items.push(...items);
117
135
  return state;
118
136
  });
119
137
  }
120
- update = (itemId, key, value) => {
121
- this.#mutate(project => {
122
- const newItems = project.items.map(item => {
123
- if (item.id === itemId) {
124
- return {
125
- ...item,
126
- [key]: value,
127
- };
128
- }
129
- return item;
130
- });
131
- return { ...project, items: newItems };
132
- });
138
+ set = (id, partial) => {
139
+ this.#mutate(project => ({
140
+ ...project,
141
+ items: project.items.map(item => item.id === id
142
+ ? { ...item, ...partial }
143
+ : item)
144
+ }));
133
145
  };
134
146
  }
135
147
  //# sourceMappingURL=o.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"o.js","sourceRoot":"","sources":["../../../s/timeline/sugar/o.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAQ,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAGnD,MAAM,OAAO,CAAC;IAGM;IAFnB,OAAO,GAAG,CAAC,CAAA;IAEX,YAAmB,KAA8B;QAA9B,UAAK,GAAL,KAAK,CAAyB;IAAG,CAAC;IAErD,OAAO,CAAqB,EAAkB;QAC3C,IAAI,EAAE,KAAK,SAAS;YACnB,OAAO,SAAS,CAAA;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAClE,OAAO,IAAqB,CAAA;IAC/B,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;IAEA,OAAO,CAAC,EAA2C;QACjD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,SAAS,GAAG,CAAC,KAAuB,EAAkB,EAAE,CAAC,CAAC;QAC1D,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC,SAAS;QACpB,KAAK;KACJ,CAAC,CAAA;IAEF,OAAO,GAAG,CAAC,SAAoB,EAAgB,EAAE;QAChD,MAAM,IAAI,GAAiB;YAC1B,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,SAAS;SACT,CAAA;QACD,OAAO,IAAI,CAAA;IACZ,CAAC,CAAA;IAEF,QAAQ,GAAG,CAAC,GAAG,KAAiB,EAAY,EAAE;QAC7C,MAAM,IAAI,GAAI;YACb,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;SACtB,CAAA;QAElB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACpB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;YAChC,OAAO,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACZ,CAAC,CAAA;IAED,KAAK,GAAG,CAAC,GAAG,KAAiB,EAAY,EAAE;QAC1C,MAAM,IAAI,GAAG;YACZ,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;SACzB,CAAA;QAEf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACpB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;YAChC,OAAO,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACZ,CAAC,CAAA;IAED,KAAK,GAAG,CACP,KAAY,EACZ,OAGC,EAAc,EAAE;QAEjB,IAAG,CAAC,KAAK,CAAC,QAAQ;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,QAAQ,CAAC,QAAQ,uBAAuB,CAAC,CAAA;QAE5F,MAAM,IAAI,GAAe;YACxB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACvC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ;SAC7C,CAAA;QAED,OAAO,IAAI,CAAA;IACZ,CAAC,CAAA;IAED,KAAK,GAAG,CACP,KAAY,EACZ,OAGC,EAAc,EAAE;QAEjB,IAAG,CAAC,KAAK,CAAC,QAAQ;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,QAAQ,CAAC,QAAQ,uBAAuB,CAAC,CAAA;QAE5F,MAAM,IAAI,GAAe;YACxB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACvC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ;SAC7C,CAAA;QAED,OAAO,IAAI,CAAA;IACZ,CAAC,CAAA;IAED,IAAI,GAAG,CAAC,OAAe,EAAa,EAAE,CAAC,CAAC;QACvC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI;KACd,CAAC,CAAA;IAEF,GAAG,GAAG,CAAC,QAAgB,EAAY,EAAE,CAAC,CAAC;QACtC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC,GAAG;QACd,QAAQ;KACR,CAAC,CAAA;IAEF,UAAU,GAAG;QACZ,SAAS,EAAE,CAAC,QAAgB,EAAmB,EAAE,CAAC,CAAC;YAClD,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,MAAM,CAAC,SAAS;YACxB,QAAQ;SACR,CAAC;KACF,CAAA;IAEA,SAAS,GAAG,CAAC,OAA0B,EAAa,EAAE;QACpD,MAAM,QAAQ,GAAS;YACtB,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAC3B,CAAA;QACD,MAAM,KAAK,GAAS;YACnB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACxB,CAAA;QACD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAA;QACvC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACpC,CAAC,CAAA;IAED,WAAW,CAAC,MAAkC,EAAE,GAAG,KAAiB;QACpE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACpB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAe,CAAA;YAC7E,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1D,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;YAC1B,OAAO,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;IACF,CAAC;IAEF,MAAM,GAAG,CAA2B,MAAU,EAAE,GAAM,EAAE,KAAkB,EAAE,EAAE;QAC3E,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oBACvB,OAAO;wBACL,GAAG,IAAI;wBACP,CAAC,GAAG,CAAC,EAAE,KAAK;qBACb,CAAA;gBACH,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;YACF,OAAO,EAAC,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACL,CAAC,CAAA;CACD"}
1
+ {"version":3,"file":"o.js","sourceRoot":"","sources":["../../../s/timeline/sugar/o.ts"],"names":[],"mappings":"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"}