@cocreate/lazy-loader 1.11.4 → 1.12.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## [1.12.1](https://github.com/CoCreate-app/CoCreate-lazy-loader/compare/v1.12.0...v1.12.1) (2023-12-20)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * ensure observer only inits each component once ([9e1f051](https://github.com/CoCreate-app/CoCreate-lazy-loader/commit/9e1f0515b792cca169e32d20d18ccbd223dad7c1))
7
+
8
+ # [1.12.0](https://github.com/CoCreate-app/CoCreate-lazy-loader/compare/v1.11.4...v1.12.0) (2023-12-18)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * assigning modules to window.CoCreate ([15037d8](https://github.com/CoCreate-app/CoCreate-lazy-loader/commit/15037d8caf95463e629ab162f9f41008070a3f20))
14
+
15
+
16
+ ### Features
17
+
18
+ * dispatch event "<component>Loaded" ([5e489e6](https://github.com/CoCreate-app/CoCreate-lazy-loader/commit/5e489e6a9dbf876ee4d17492be713b8dda01811f))
19
+
1
20
  ## [1.11.4](https://github.com/CoCreate-app/CoCreate-lazy-loader/compare/v1.11.3...v1.11.4) (2023-12-10)
2
21
 
3
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/lazy-loader",
3
- "version": "1.11.4",
3
+ "version": "1.12.1",
4
4
  "description": "A simple lazy-loader component in vanilla javascript. Easily configured using HTML5 data-attributes and/or JavaScript API.",
5
5
  "keywords": [
6
6
  "lazy-loader",
package/src/client.js CHANGED
@@ -1,14 +1,21 @@
1
1
  import observer from '@cocreate/observer';
2
2
 
3
- function listen(callback, selector) {
3
+ function listen(name, callback, selector) {
4
4
 
5
- function observerCallback({ target }) {
6
- // let isInit = target.querySelector(selector)/testtt
7
- // if (isInit) {
8
- callback()
9
- // console.log('lazyloaded', selector)
5
+ async function observerCallback({ target }) {
6
+ if (window.CoCreate[name])
7
+ return
8
+ window.CoCreate[name] = {}
10
9
  observer.uninit(observerCallback)
11
- // }
10
+
11
+ const module = await callback()
12
+ observer.uninit(observerCallback)
13
+
14
+ Object.assign(window.CoCreate, {
15
+ [name]: module.default || module
16
+ });
17
+
18
+ dispatchComponentLoaded(name)
12
19
  }
13
20
 
14
21
  observer.init({
@@ -50,12 +57,20 @@ export async function lazyLoad(name, selector, callback) {
50
57
  if (document.querySelector(selector))
51
58
  await dependency(name, await callback())
52
59
  else
53
- listen(callback, selector)
60
+ listen(name, callback, selector)
54
61
  }
55
62
 
56
63
  export async function dependency(name, promise) {
57
64
  let component = await promise;
65
+
58
66
  Object.assign(window.CoCreate, {
59
- [name]: component.default
67
+ [name]: component.default || component
60
68
  });
61
- }
69
+ dispatchComponentLoaded(name)
70
+ }
71
+
72
+ function dispatchComponentLoaded(name) {
73
+ document.dispatchEvent(new CustomEvent(name + 'Loaded', {
74
+ detail: { name }
75
+ }));
76
+ }