@aarsteinmedia/dotlottie-player 2.2.10 → 2.3.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.
package/dist/cjs/index.js CHANGED
@@ -61,41 +61,37 @@ const addExt = (ext, str)=>{
61
61
  default:
62
62
  return 'xMidYMid meet';
63
63
  }
64
- }, base64ToU8 = (str)=>{
65
- const parsedStr = str.substring(str.indexOf(',') + 1);
66
- return strToU8(isServer() ? Buffer.from(parsedStr, 'base64').toString('binary') : atob(parsedStr));
67
- }, createDotLottie = async (animations, manifest, filename, triggerDownload = true)=>{
64
+ }, base64ToU8 = (str)=>fflate.strToU8(isServer() ? Buffer.from(parseBase64(str), 'base64').toString('binary') : atob(parseBase64(str)), true), createDotLottie = async (animations, manifest, filename, triggerDownload = true)=>{
68
65
  try {
69
66
  if (!animations?.length || !manifest) {
70
67
  throw new Error(`Missing or malformed required parameter(s):\n ${!animations?.length ? '- animations\n' : ''} ${!manifest ? '- manifest \n' : ''}`);
71
68
  }
72
69
  const name = addExt('lottie', filename) || `${useId()}.lottie`, dotlottie = {
73
70
  'manifest.json': [
74
- strToU8(JSON.stringify(manifest)),
71
+ fflate.strToU8(JSON.stringify(manifest), true),
75
72
  {
76
73
  level: 0
77
74
  }
78
75
  ]
79
76
  };
80
77
  for (const [i, animation] of animations.entries()){
81
- if (animation.assets?.length) {
82
- for (const asset of animation.assets){
83
- const { id, p } = asset;
84
- if (id && p) {
85
- const ext = getExtFromB64(p);
86
- asset.p = `${id}.${ext}`;
87
- asset.e = 0;
88
- dotlottie[`images/${id}.${ext}`] = [
89
- base64ToU8(p),
90
- {
91
- level: 9
92
- }
93
- ];
94
- }
78
+ for (const asset of animation.assets ?? []){
79
+ if (!asset.p || !isImage(asset) && !isAudio(asset)) {
80
+ continue;
95
81
  }
82
+ const { p: file, u: path } = asset, assetId = asset.id || useId(), isEncoded = file.startsWith('data:'), ext = isEncoded ? getExtFromB64(file) : getExt(file), dataURL = isEncoded ? file : await fileToBase64(path ? path.endsWith('/') && `${path}${file}` || `${path}/${file}` : file);
83
+ asset.p = `${assetId}.${ext}`;
84
+ asset.u = '';
85
+ asset.e = 1;
86
+ dotlottie[`${isAudio(asset) ? 'audio' : 'images'}/${assetId}.${ext}`] = [
87
+ base64ToU8(dataURL),
88
+ {
89
+ level: 9
90
+ }
91
+ ];
96
92
  }
97
93
  dotlottie[`animations/${manifest.animations[i].id}.json`] = [
98
- strToU8(JSON.stringify(animation)),
94
+ fflate.strToU8(JSON.stringify(animation), true),
99
95
  {
100
96
  level: 9
101
97
  }
@@ -124,20 +120,23 @@ const addExt = (ext, str)=>{
124
120
  link.remove();
125
121
  URL.revokeObjectURL(dataURL);
126
122
  }, 1000);
127
- }, handleErrors = (err)=>{
128
- const res = {
129
- message: 'Unknown error',
130
- status: isServer() ? 500 : 400
131
- };
132
- if (err && typeof err === 'object') {
133
- if ('message' in err && typeof err.message === 'string') {
134
- res.message = err.message;
135
- }
136
- if ('status' in err) {
137
- res.status = Number(err.status);
123
+ }, fileToBase64 = async (url)=>{
124
+ const response = await fetch(url), blob = await response.blob();
125
+ return new Promise((resolve, reject)=>{
126
+ try {
127
+ const reader = new FileReader();
128
+ reader.onload = ()=>{
129
+ if (typeof reader.result === 'string') {
130
+ resolve(reader.result);
131
+ return;
132
+ }
133
+ reject();
134
+ };
135
+ reader.readAsDataURL(blob);
136
+ } catch (e) {
137
+ reject(e);
138
138
  }
139
- }
140
- return res;
139
+ });
141
140
  }, frameOutput = (frame)=>((frame ?? 0) + 1).toString().padStart(3, '0'), getAnimationData = async (input)=>{
142
141
  try {
143
142
  if (!input || typeof input !== 'string' && typeof input !== 'object') {
@@ -149,7 +148,8 @@ const addExt = (ext, str)=>{
149
148
  ];
150
149
  return {
151
150
  animations,
152
- manifest: null
151
+ manifest: null,
152
+ isDotLottie: false
153
153
  };
154
154
  }
155
155
  const result = await fetch(input);
@@ -166,7 +166,8 @@ const addExt = (ext, str)=>{
166
166
  animations: [
167
167
  lottie
168
168
  ],
169
- manifest: null
169
+ manifest: null,
170
+ isDotLottie: false
170
171
  };
171
172
  }
172
173
  const text = await result.clone().text();
@@ -176,9 +177,12 @@ const addExt = (ext, str)=>{
176
177
  animations: [
177
178
  lottie
178
179
  ],
179
- manifest: null
180
+ manifest: null,
181
+ isDotLottie: false
180
182
  };
181
- } catch {}
183
+ } catch (e) {
184
+ console.warn(e);
185
+ }
182
186
  }
183
187
  const { data, manifest } = await getLottieJSON(result);
184
188
  return {
@@ -190,7 +194,8 @@ const addExt = (ext, str)=>{
190
194
  console.error(`❌ ${handleErrors(err).message}`);
191
195
  return {
192
196
  animations: null,
193
- manifest: null
197
+ manifest: null,
198
+ isDotLottie: false
194
199
  };
195
200
  }
196
201
  }, getArrayBuffer = async (zippable)=>{
@@ -214,14 +219,15 @@ const addExt = (ext, str)=>{
214
219
  return mime.split('/')[1].split('+')[0];
215
220
  }, getFilename = (src, keepExt)=>{
216
221
  const ext = getExt(src);
217
- return `${src.replace(/\.[^.]*$/, '').replace(/\W+/g, '')}${keepExt && ext ? `.${ext}` : ''}`.toLowerCase();
222
+ return `${src.split('/').pop()?.replace(/\.[^.]*$/, '').replace(/\W+/g, '')}${keepExt && ext ? `.${ext}` : ''}`;
218
223
  }, getLottieJSON = async (resp)=>{
219
- const unzipped = await unzip(resp), manifest = getManifest(unzipped), data = [];
224
+ const unzipped = await unzip(resp), manifest = getManifest(unzipped), data = [], toResolve = [];
220
225
  for (const { id } of manifest.animations){
221
226
  const str = fflate.strFromU8(unzipped[`animations/${id}.json`]), lottie = JSON.parse(str);
222
- await resolveAssets(unzipped, lottie.assets);
227
+ toResolve.push(resolveAssets(unzipped, lottie.assets));
223
228
  data.push(lottie);
224
229
  }
230
+ await Promise.all(toResolve);
225
231
  return {
226
232
  data,
227
233
  manifest
@@ -250,18 +256,28 @@ const addExt = (ext, str)=>{
250
256
  default:
251
257
  return '';
252
258
  }
259
+ }, handleErrors = (err)=>{
260
+ const res = {
261
+ message: 'Unknown error',
262
+ status: isServer() ? 500 : 400
263
+ };
264
+ if (err && typeof err === 'object') {
265
+ if ('message' in err && typeof err.message === 'string') {
266
+ res.message = err.message;
267
+ }
268
+ if ('status' in err) {
269
+ res.status = Number(err.status);
270
+ }
271
+ }
272
+ return res;
253
273
  }, hasExt = (path)=>{
254
274
  const lastDotIndex = path?.split('/').pop()?.lastIndexOf('.');
255
275
  return (lastDotIndex ?? 0) > 1 && path && path.length - 1 > (lastDotIndex ?? 0);
256
- }, isAudio = (asset)=>!('h' in asset) && !('w' in asset) && 'p' in asset && 'e' in asset && 'u' in asset && 'id' in asset, isImage = (asset)=>'w' in asset && 'h' in asset && !('xt' in asset) && 'p' in asset, isServer = ()=>!(typeof window !== 'undefined' && window.document), strToU8 = (str)=>{
257
- const u8 = new Uint8Array(str.length);
258
- for (const [i] of [
259
- ...Array(str.length)
260
- ].entries()){
261
- u8[i] = str.charCodeAt(i);
262
- }
263
- return u8;
264
- }, resolveAssets = async (unzipped, assets)=>{
276
+ }, isAudio = (asset)=>!('h' in asset) && !('w' in asset) && 'p' in asset && 'e' in asset && 'u' in asset && 'id' in asset, isBase64 = (str)=>{
277
+ if (!str) return false;
278
+ const regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
279
+ return regex.test(parseBase64(str));
280
+ }, isImage = (asset)=>'w' in asset && 'h' in asset && !('xt' in asset) && 'p' in asset, isServer = ()=>!(typeof window !== 'undefined' && window.document), parseBase64 = (str)=>str.substring(str.indexOf(',') + 1), resolveAssets = async (unzipped, assets)=>{
265
281
  if (!Array.isArray(assets)) return;
266
282
  const toResolve = [];
267
283
  for (const asset of assets){
@@ -269,8 +285,8 @@ const addExt = (ext, str)=>{
269
285
  const type = isImage(asset) ? 'images' : 'audio', u8 = unzipped?.[`${type}/${asset.p}`];
270
286
  if (!u8) continue;
271
287
  toResolve.push(new Promise((resolveAsset)=>{
272
- const assetB64 = isServer() ? Buffer.from(u8).toString('base64') : btoa(u8.reduce((dat, byte)=>dat + String.fromCharCode(byte), ''));
273
- asset.p = `data:${getMimeFromExt(getExt(asset.p))};base64,${assetB64}`;
288
+ const assetB64 = isServer() ? Buffer.from(u8).toString('base64') : btoa(u8.reduce((dat, byte)=>`${dat}${String.fromCharCode(byte)}`, ''));
289
+ asset.p = asset.p?.startsWith('data:') || isBase64(asset.p) ? asset.p : `data:${getMimeFromExt(getExt(asset.p))};base64,${assetB64}`;
274
290
  asset.e = 1;
275
291
  asset.u = '';
276
292
  resolveAsset();
@@ -294,7 +310,7 @@ const addExt = (ext, str)=>{
294
310
  return `${prefix ?? `:${s4()}`}-${s4()}`;
295
311
  };
296
312
 
297
- var name="@aarsteinmedia/dotlottie-player";var version="2.2.10";var description="Web Component for playing Lottie animations in your web app. Previously @johanaarstein/dotlottie-player";var exports$1={".":{"import":"./dist/esm/index.js",node:"./dist/esm/index.js",require:"./dist/cjs/index.js",types:"./dist/index.d.ts"}};var main="./dist/esm/index.js";var unpkg="./dist/index.js";var module$1="./dist/esm/index.js";var types="./dist/index.d.ts";var type="module";var homepage="https://www.aarstein.media/en/dotlottie-player";var repository={url:"https://github.com/aarsteinmedia/dotlottie-player.git",type:"git"};var bugs="https://github.com/aarsteinmedia/dotlottie-player/issues";var author={name:"Johan Martin Aarstein",email:"johan@aarstein.media",url:"https://www.aarstein.media",organization:"Aarstein Media"};var license="GPL-2.0-or-later";var scripts={build:"rimraf ./dist && rollup -c","build:types":"rimraf ./types && tsc","build:cem":"npx cem analyze --config 'cem.config.mjs'",prod:"pnpm build:types && pnpm build && pnpm build:cem",dev:"rollup -c -w --environment NODE_ENV:development",lint:"tsc && eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix"};var dependencies={fflate:"^0.8.1",lit:"^2.8.0","lottie-web":"^5.12.2"};var peerDependencies={"@types/react":">= 16.0.0"};var devDependencies={"@custom-elements-manifest/analyzer":"^0.6.9","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-replace":"^5.0.5","@swc/core":"^1.3.101","@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0",autoprefixer:"^10.4.16","esbuild-sass-plugin":"^2.16.1",eslint:"^8.56.0","eslint-plugin-lit":"^1.11.0","postcss-flexbugs-fixes":"^5.0.2",rimraf:"^5.0.5",rollup:"^3.29.4","rollup-plugin-dts":"^6.1.0","rollup-plugin-html-literals":"^1.1.8","rollup-plugin-livereload":"^2.0.5","rollup-plugin-postcss":"^4.0.2","rollup-plugin-postcss-lit":"^2.1.0","rollup-plugin-serve":"^1.1.1","rollup-plugin-summary":"^2.0.0","rollup-plugin-swc3":"^0.9.1",sass:"^1.69.6","ts-lit-plugin":"^1.2.1",typescript:"^5.3.3"};var customElements="dist/custom-elements.json";var files=["dist","README.md"];var keywords=["lottie","dotlottie","animation","web component","component","lit-element","svg","vector","player"];var publishConfig={access:"public"};var engines={node:">= 8.17.0"};var funding={type:"paypal",url:"https://www.paypal.com/donate/?hosted_button_id=E7C7DMN8KSQ6A"};var pkg = {name:name,version:version,description:description,exports:exports$1,main:main,unpkg:unpkg,module:module$1,types:types,type:type,homepage:homepage,repository:repository,bugs:bugs,author:author,license:license,scripts:scripts,dependencies:dependencies,peerDependencies:peerDependencies,devDependencies:devDependencies,customElements:customElements,files:files,keywords:keywords,publishConfig:publishConfig,engines:engines,funding:funding};
313
+ var name="@aarsteinmedia/dotlottie-player";var version="2.3.0";var description="Web Component for playing Lottie animations in your web app. Previously @johanaarstein/dotlottie-player";var exports$1={".":{"import":"./dist/esm/index.js",node:"./dist/esm/index.js",require:"./dist/cjs/index.js",types:"./dist/index.d.ts"}};var main="./dist/esm/index.js";var unpkg="./dist/index.js";var module$1="./dist/esm/index.js";var types="./dist/index.d.ts";var type="module";var homepage="https://www.aarstein.media/en/dotlottie-player";var repository={url:"https://github.com/aarsteinmedia/dotlottie-player.git",type:"git"};var bugs="https://github.com/aarsteinmedia/dotlottie-player/issues";var author={name:"Johan Martin Aarstein",email:"johan@aarstein.media",url:"https://www.aarstein.media",organization:"Aarstein Media"};var license="GPL-2.0-or-later";var scripts={build:"rimraf ./dist && rollup -c","build:types":"rimraf ./types && tsc","build:cem":"npx cem analyze --config 'cem.config.mjs'",prod:"pnpm build:types && pnpm build && pnpm build:cem",dev:"rollup -c -w --environment NODE_ENV:development",lint:"tsc && eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix"};var dependencies={fflate:"^0.8.1",lit:"^2.8.0","lottie-web":"^5.12.2"};var peerDependencies={"@types/react":">= 16.0.0"};var devDependencies={"@custom-elements-manifest/analyzer":"^0.6.9","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-replace":"^5.0.5","@swc/core":"^1.3.102","@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0",autoprefixer:"^10.4.16","esbuild-sass-plugin":"^2.16.1",eslint:"^8.56.0","eslint-plugin-lit":"^1.11.0","postcss-flexbugs-fixes":"^5.0.2",rimraf:"^5.0.5",rollup:"^3.29.4","rollup-plugin-dts":"^6.1.0","rollup-plugin-html-literals":"^1.1.8","rollup-plugin-livereload":"^2.0.5","rollup-plugin-postcss":"^4.0.2","rollup-plugin-postcss-lit":"^2.1.0","rollup-plugin-serve":"^1.1.1","rollup-plugin-summary":"^2.0.0","rollup-plugin-swc3":"^0.9.1",sass:"^1.69.6","ts-lit-plugin":"^1.2.1",typescript:"^5.3.3"};var customElements="dist/custom-elements.json";var files=["dist","README.md"];var keywords=["lottie","dotlottie","animation","web component","component","lit-element","svg","vector","player"];var publishConfig={access:"public"};var engines={node:">= 8.17.0"};var funding={type:"paypal",url:"https://www.paypal.com/donate/?hosted_button_id=E7C7DMN8KSQ6A"};var pkg = {name:name,version:version,description:description,exports:exports$1,main:main,unpkg:unpkg,module:module$1,types:types,type:type,homepage:homepage,repository:repository,bugs:bugs,author:author,license:license,scripts:scripts,dependencies:dependencies,peerDependencies:peerDependencies,devDependencies:devDependencies,customElements:customElements,files:files,keywords:keywords,publishConfig:publishConfig,engines:engines,funding:funding};
298
314
 
299
315
  var css_248z = lit.css`*{box-sizing:border-box}:host{--lottie-player-toolbar-height:35px;--lottie-player-toolbar-background-color:#FFF;--lottie-player-toolbar-icon-color:#000;--lottie-player-toolbar-icon-hover-color:#000;--lottie-player-toolbar-icon-active-color:#4285f4;--lottie-player-seeker-track-color:rgba(0, 0, 0, 0.2);--lottie-player-seeker-thumb-color:#4285f4;--lottie-player-seeker-display:block;display:block;width:100%;height:100%}@media (prefers-color-scheme:dark){:host{--lottie-player-toolbar-background-color:#000;--lottie-player-toolbar-icon-color:#FFF;--lottie-player-toolbar-icon-hover-color:#FFF;--lottie-player-seeker-track-color:rgba(255, 255, 255, 0.6)}}.main{display:flex;flex-direction:column;height:100%;width:100%;margin:0;padding:0}.animation{width:100%;height:100%;display:flex}[data-controls=true] .animation{height:calc(100% - 35px)}.animation-container{position:relative}.popover{position:absolute;right:5px;bottom:40px;background-color:var(--lottie-player-toolbar-background-color);border-radius:5px;padding:10px 15px;border:solid 2px var(--lottie-player-toolbar-icon-color);animation:fadeIn .2s ease-in-out}.popover::before{content:"";right:10px;border:7px solid transparent;border-top-color:transparent;margin-right:-7px;height:0;width:0;position:absolute;pointer-events:none;top:100%;border-top-color:var(--lottie-player-toolbar-icon-color)}.toolbar{display:flex;align-items:center;justify-items:center;background:var(--lottie-player-toolbar-background-color);margin:0;height:35px;padding:5px;border-radius:5px;gap:5px}.toolbar.has-error{pointer-events:none;opacity:.5}.toolbar button{cursor:pointer;fill:var(--lottie-player-toolbar-icon-color);color:var(--lottie-player-toolbar-icon-color);display:flex;background:0 0;border:0;padding:0;outline:0;height:100%;margin:0;align-items:center;gap:5px;opacity:.9}.toolbar button:hover{opacity:1}.toolbar button[data-active=true]{opacity:1;fill:var(--lottie-player-toolbar-icon-active-color)}.toolbar button:disabled{opacity:.5}.toolbar button:focus{outline:0}.toolbar button svg{pointer-events:none}.toolbar button svg>*{fill:inherit}.toolbar button.disabled svg{display:none}.progress-container{position:relative;width:100%}.progress-container.simple{margin-right:12px}.seeker{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0}.seeker::-webkit-slider-runnable-track,.seeker::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;outline:0}progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0}.seeker{width:100%;height:20px;border-radius:3px;border:0;cursor:pointer;background-color:transparent;display:var(--lottie-player-seeker-display);color:var(--lottie-player-seeker-thumb-color);margin:0;padding:7.5px 0;position:relative;z-index:1}progress{position:absolute;width:100%;height:5px;border-radius:3px;border:0;top:0;left:0;margin:7.5px 0;background-color:var(--lottie-player-seeker-track-color);pointer-events:none}::-moz-progress-bar{background-color:var(--lottie-player-seeker-thumb-color)}::-webkit-progress-inner-element{border-radius:3px;overflow:hidden}::-webkit-slider-runnable-track{background-color:transparent}::-webkit-progress-value{background-color:var(--lottie-player-seeker-thumb-color)}.seeker::-webkit-slider-thumb{height:15px;width:15px;border-radius:50%;border:0;background-color:var(--lottie-player-seeker-thumb-color);cursor:pointer;-webkit-transition:transform .2s ease-in-out;transition:transform .2s ease-in-out;transform:scale(0)}.seeker:focus::-webkit-slider-thumb,.seeker:hover::-webkit-slider-thumb{transform:scale(1)}.seeker::-moz-range-progress{background-color:var(--lottie-player-seeker-thumb-color);height:5px;border-radius:3px}.seeker::-moz-range-thumb{height:15px;width:15px;border-radius:50%;background-color:var(--lottie-player-seeker-thumb-color);border:0;cursor:pointer;-moz-transition:transform .2s ease-in-out;transition:transform .2s ease-in-out;transform:scale(0)}.seeker:focus::-moz-range-thumb,.seeker:hover::-moz-range-thumb{transform:scale(1)}.seeker::-ms-track{width:100%;height:5px;cursor:pointer;background:0 0;border-color:transparent;color:transparent}.seeker::-ms-fill-upper{background:var(--lottie-player-seeker-track-color);border-radius:3px}.seeker::-ms-fill-lower{background-color:var(--lottie-player-seeker-thumb-color);border-radius:3px}.seeker::-ms-thumb{border:0;height:15px;width:15px;border-radius:50%;background:var(--lottie-player-seeker-thumb-color);cursor:pointer;-ms-transition:transform .2s ease-in-out;transition:transform .2s ease-in-out;transform:scale(0)}.seeker:hover::-ms-thumb{transform:scale(1)}.seeker:focus::-ms-thumb{transform:scale(1)}.seeker:focus::-ms-fill-lower,.seeker:focus::-ms-fill-upper{background:var(--lottie-player-seeker-track-color)}.error{display:flex;margin:auto;justify-content:center;height:100%;align-items:center}.error svg{width:100%;height:auto}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}`;
300
316
 
@@ -494,14 +510,15 @@ class DotLottiePlayer extends lit.LitElement {
494
510
  return mandatory.every((field)=>Object.prototype.hasOwnProperty.call(json, field));
495
511
  }
496
512
  async addAnimation(configs, fileName, triggerDownload = true) {
513
+ const { animations: _animations, manifest: _manifest } = await getAnimationData(this.src);
497
514
  try {
498
- const oldManifest = this._manifest || {
515
+ const oldManifest = _manifest || {
499
516
  animations: []
500
517
  };
501
518
  let manifest = {
502
519
  ...oldManifest,
503
520
  generator: pkg.name
504
- }, animations = this._animations || [];
521
+ }, animations = _animations || [];
505
522
  for (const config of configs){
506
523
  const { url } = config, { animations: animationsToAdd } = await getAnimationData(url);
507
524
  if (!animationsToAdd) {
@@ -725,13 +742,13 @@ class DotLottiePlayer extends lit.LitElement {
725
742
  this._currentAnimation--;
726
743
  this._switchInstance(true);
727
744
  }
728
- convert(typeCheck, manifest, animations, fileName, download = true) {
745
+ async convert({ typeCheck, manifest, animations, fileName, download = true }) {
729
746
  if (typeCheck || this._isDotLottie) return;
730
747
  const oldManifest = manifest || this._manifest, newManifest = {
731
748
  ...oldManifest,
732
749
  generator: pkg.name
733
750
  };
734
- return createDotLottie(animations || this._animations, newManifest, `${getFilename(fileName || this.src)}.lottie`, download);
751
+ return createDotLottie(animations || (await getAnimationData(this.src)).animations, newManifest, `${getFilename(fileName || this.src)}.lottie`, download);
735
752
  }
736
753
  static get styles() {
737
754
  return css_248z;
@@ -813,6 +830,7 @@ class DotLottiePlayer extends lit.LitElement {
813
830
  this._onVisibilityChange = this._onVisibilityChange.bind(this);
814
831
  this._mouseEnter = this._mouseEnter.bind(this);
815
832
  this._mouseLeave = this._mouseLeave.bind(this);
833
+ this.convert = this.convert.bind(this);
816
834
  }
817
835
  }
818
836
  _ts_decorate([
@@ -468,7 +468,7 @@
468
468
  {
469
469
  "name": "triggerDownload",
470
470
  "default": "true",
471
- "description": "Whether to trigger a download in the browser.\nIf set to false the function returns an ArrayBuffer. Defaults to true.",
471
+ "description": "Whether to trigger a download in the browser.\nIf set to false the function returns an ArrayBuffer. Defaults to true.\n\nTODO: Rewrite this function so we don't create so many redundant copies of complex objects",
472
472
  "type": {
473
473
  "text": "boolean"
474
474
  }
@@ -687,46 +687,12 @@
687
687
  "privacy": "public",
688
688
  "parameters": [
689
689
  {
690
- "name": "typeCheck",
691
- "optional": true,
690
+ "name": "{\n typeCheck,\n manifest,\n animations,\n fileName,\n download = true\n }",
692
691
  "type": {
693
- "text": "boolean | undefined"
694
- },
695
- "description": "External type safety"
696
- },
697
- {
698
- "name": "manifest",
699
- "optional": true,
700
- "type": {
701
- "text": "LottieManifest | undefined"
702
- },
703
- "description": "Externally added manifest"
704
- },
705
- {
706
- "name": "animations",
707
- "optional": true,
708
- "type": {
709
- "text": "LottieJSON[] | undefined"
710
- },
711
- "description": "Externally added animations"
712
- },
713
- {
714
- "name": "fileName",
715
- "optional": true,
716
- "type": {
717
- "text": "string"
718
- }
719
- },
720
- {
721
- "name": "download",
722
- "default": "true",
723
- "description": "Whether to trigger a download in the browser",
724
- "type": {
725
- "text": "boolean"
692
+ "text": "{\n /** External type safety */\n typeCheck?: boolean,\n\n /** Externally added manifest */\n manifest?: LottieManifest,\n\n /** Externally added animations */\n animations?: LottieJSON[],\n\n fileName?: string,\n\n /** Whether to trigger a download in the browser. Defaults to true */\n download?: boolean\n }"
726
693
  }
727
694
  }
728
- ],
729
- "description": "Convert JSON Lottie to dotLottie"
695
+ ]
730
696
  },
731
697
  {
732
698
  "kind": "method",
@@ -1006,7 +972,7 @@
1006
972
  },
1007
973
  {
1008
974
  "kind": "variable",
1009
- "name": "handleErrors"
975
+ "name": "fileToBase64"
1010
976
  },
1011
977
  {
1012
978
  "kind": "variable",
@@ -1044,6 +1010,10 @@
1044
1010
  "kind": "variable",
1045
1011
  "name": "getMimeFromExt"
1046
1012
  },
1013
+ {
1014
+ "kind": "variable",
1015
+ "name": "handleErrors"
1016
+ },
1047
1017
  {
1048
1018
  "kind": "variable",
1049
1019
  "name": "hasExt"
@@ -1052,6 +1022,10 @@
1052
1022
  "kind": "variable",
1053
1023
  "name": "isAudio"
1054
1024
  },
1025
+ {
1026
+ "kind": "variable",
1027
+ "name": "isBase64"
1028
+ },
1055
1029
  {
1056
1030
  "kind": "variable",
1057
1031
  "name": "isImage"
@@ -1062,7 +1036,7 @@
1062
1036
  },
1063
1037
  {
1064
1038
  "kind": "variable",
1065
- "name": "strToU8"
1039
+ "name": "parseBase64"
1066
1040
  },
1067
1041
  {
1068
1042
  "kind": "variable",
@@ -1128,9 +1102,9 @@
1128
1102
  },
1129
1103
  {
1130
1104
  "kind": "js",
1131
- "name": "handleErrors",
1105
+ "name": "fileToBase64",
1132
1106
  "declaration": {
1133
- "name": "handleErrors",
1107
+ "name": "fileToBase64",
1134
1108
  "module": "src/component/utils.ts"
1135
1109
  }
1136
1110
  },
@@ -1206,6 +1180,14 @@
1206
1180
  "module": "src/component/utils.ts"
1207
1181
  }
1208
1182
  },
1183
+ {
1184
+ "kind": "js",
1185
+ "name": "handleErrors",
1186
+ "declaration": {
1187
+ "name": "handleErrors",
1188
+ "module": "src/component/utils.ts"
1189
+ }
1190
+ },
1209
1191
  {
1210
1192
  "kind": "js",
1211
1193
  "name": "hasExt",
@@ -1222,6 +1204,14 @@
1222
1204
  "module": "src/component/utils.ts"
1223
1205
  }
1224
1206
  },
1207
+ {
1208
+ "kind": "js",
1209
+ "name": "isBase64",
1210
+ "declaration": {
1211
+ "name": "isBase64",
1212
+ "module": "src/component/utils.ts"
1213
+ }
1214
+ },
1225
1215
  {
1226
1216
  "kind": "js",
1227
1217
  "name": "isImage",
@@ -1240,9 +1230,9 @@
1240
1230
  },
1241
1231
  {
1242
1232
  "kind": "js",
1243
- "name": "strToU8",
1233
+ "name": "parseBase64",
1244
1234
  "declaration": {
1245
- "name": "strToU8",
1235
+ "name": "parseBase64",
1246
1236
  "module": "src/component/utils.ts"
1247
1237
  }
1248
1238
  },