@qelos/web-sdk 3.0.3 → 3.1.27

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/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { on } from './qelos';
2
+ import loadStyles from './shared-style';
2
3
  export const code = (new URL(location.href)).searchParams.get('code') || 'default';
3
4
  export async function unAuthorize() {
4
5
  await fetch('/api/un-authorize', {
@@ -25,4 +26,5 @@ export async function authorize() {
25
26
  on('shutdown', unAuthorize);
26
27
  return res.json();
27
28
  }
29
+ loadStyles();
28
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAC;AAE3B,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,KAAK,CAAC,mBAAmB,EAAE;QAC/B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,IAAI;SACL;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;QACxC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS;YACT,KAAK;SACN,CAAC;KACH,CAAC,CAAA;IAEF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACrD,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE5B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAC;AAC3B,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,KAAK,CAAC,mBAAmB,EAAE;QAC/B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,IAAI;SACL;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;QACxC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS;YACT,KAAK;SACN,CAAC;KACH,CAAC,CAAA;IAEF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACrD,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE5B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,UAAU,EAAE,CAAC"}
package/dist/qelos.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export declare function dispatch(eventName: string, payload?: any): void;
2
- export declare function on(eventName: string, callback: (payload: any) => unknown): void;
2
+ export declare function on(eventName: string, callback: (payload: any) => unknown, { once }?: {
3
+ once: boolean;
4
+ }): void;
package/dist/qelos.js CHANGED
@@ -6,7 +6,13 @@ window.addEventListener('message', (event) => {
6
6
  qelosHostname = event.data.qelosHostname;
7
7
  }
8
8
  if (callbacks.has(event.data.eventName)) {
9
- callbacks.get(event.data.eventName).forEach(cb => cb(event.data.payload));
9
+ const eventCallbacks = callbacks.get(event.data.eventName);
10
+ eventCallbacks.forEach((item) => {
11
+ item.callback(event.data.payload);
12
+ if (item.once) {
13
+ eventCallbacks.delete(item);
14
+ }
15
+ });
10
16
  }
11
17
  });
12
18
  export function dispatch(eventName, payload) {
@@ -16,10 +22,10 @@ export function dispatch(eventName, payload) {
16
22
  payload
17
23
  }, qelosHostname);
18
24
  }
19
- export function on(eventName, callback) {
25
+ export function on(eventName, callback, { once } = { once: false }) {
20
26
  if (!callbacks.has(eventName)) {
21
27
  callbacks.set(eventName, new Set());
22
28
  }
23
- callbacks.get(eventName).add(callback);
29
+ callbacks.get(eventName).add({ callback, once: once || false });
24
30
  }
25
31
  //# sourceMappingURL=qelos.js.map
package/dist/qelos.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"qelos.js","sourceRoot":"","sources":["../src/qelos.ts"],"names":[],"mappings":"AAAA,IAAI,aAAa,GAAG,GAAG,CAAC;AAExB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AAE5B,MAAM,IAAI,GAAG,WAAW,CAAC;AAEzB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;IAC3C,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;QAC5B,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;KAC1C;IACD,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACvC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;KAC1E;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,OAAa;IACvD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,IAAI;QACV,SAAS;QACT,OAAO;KACR,EAAE,aAAa,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,SAAiB,EAAE,QAAmC;IACvE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC7B,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;KACpC;IACD,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"qelos.js","sourceRoot":"","sources":["../src/qelos.ts"],"names":[],"mappings":"AAAA,IAAI,aAAa,GAAG,GAAG,CAAC;AAExB,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4C,CAAC;AAEtE,MAAM,IAAI,GAAG,WAAW,CAAC;AAEzB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;IAC3C,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE;QAC5B,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;KAC1C;IACD,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACvC,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B;QACH,CAAC,CAAC,CAAA;KACH;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,OAAa;IACvD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QACxB,IAAI,EAAE,IAAI;QACV,SAAS;QACT,OAAO;KACR,EAAE,aAAa,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,SAAiB,EAAE,QAAmC,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAE,KAAK,EAAC;IAC/F,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC7B,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;KACpC;IACD,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getCurrentRoute(): any;
2
+ export declare function onRouteChanged(callback: any): void;
package/dist/route.js ADDED
@@ -0,0 +1,20 @@
1
+ import { dispatch, on } from './qelos';
2
+ let currentRoute;
3
+ let subscribers;
4
+ export function getCurrentRoute() {
5
+ return currentRoute;
6
+ }
7
+ export function onRouteChanged(callback) {
8
+ if (!subscribers) {
9
+ subscribers = new Set();
10
+ }
11
+ subscribers.add(callback);
12
+ }
13
+ dispatch('routeChangedInterested');
14
+ on('routeChanged', route => {
15
+ currentRoute = route;
16
+ if (subscribers && subscribers.size) {
17
+ subscribers.forEach(cb => cb(currentRoute));
18
+ }
19
+ });
20
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,SAAS,CAAC;AAErC,IAAI,YAAY,CAAC;AACjB,IAAI,WAAW,CAAC;AAEhB,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAQ;IACrC,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;KACzB;IACD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAEnC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;IACzB,YAAY,GAAG,KAAK,CAAC;IACrB,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;QACnC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;KAC5C;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export default function loadStyles(): void;
@@ -0,0 +1,17 @@
1
+ import { dispatch, on } from './qelos';
2
+ export default function loadStyles() {
3
+ dispatch('styleInterested');
4
+ on('sharedStyle', css => {
5
+ if (!css) {
6
+ return;
7
+ }
8
+ let appStyle = document.querySelector('#app-style');
9
+ if (!appStyle) {
10
+ appStyle = document.createElement('style');
11
+ appStyle.setAttribute('id', 'app-style');
12
+ document.body.prepend(appStyle);
13
+ }
14
+ appStyle.innerHTML = css;
15
+ }, { once: true });
16
+ }
17
+ //# sourceMappingURL=shared-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-style.js","sourceRoot":"","sources":["../src/shared-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,UAAU;IAChC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC5B,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE;QACtB,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QACD,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACjC;QACD,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;IAC3B,CAAC,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAA;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qelos/web-sdk",
3
- "version": "3.0.3",
3
+ "version": "3.1.27",
4
4
  "description": "Frontend Web SDK for Qelos API",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import {on} from './qelos';
2
+ import loadStyles from './shared-style';
2
3
 
3
4
  export const code = (new URL(location.href)).searchParams.get('code') || 'default';
4
5
 
@@ -30,4 +31,6 @@ export async function authorize() {
30
31
  on('shutdown', unAuthorize);
31
32
 
32
33
  return res.json();
33
- }
34
+ }
35
+
36
+ loadStyles();
package/src/qelos.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  let qelosHostname = '*';
2
2
 
3
- const callbacks = new Map();
3
+ const callbacks = new Map<string, Set<{ callback, once: boolean }>>();
4
4
 
5
5
  const FROM = 'qelos-mfe';
6
6
 
@@ -9,7 +9,13 @@ window.addEventListener('message', (event) => {
9
9
  qelosHostname = event.data.qelosHostname;
10
10
  }
11
11
  if (callbacks.has(event.data.eventName)) {
12
- callbacks.get(event.data.eventName).forEach(cb => cb(event.data.payload))
12
+ const eventCallbacks = callbacks.get(event.data.eventName);
13
+ eventCallbacks.forEach((item) => {
14
+ item.callback(event.data.payload);
15
+ if (item.once) {
16
+ eventCallbacks.delete(item);
17
+ }
18
+ })
13
19
  }
14
20
  })
15
21
 
@@ -21,9 +27,9 @@ export function dispatch(eventName: string, payload?: any) {
21
27
  }, qelosHostname);
22
28
  }
23
29
 
24
- export function on(eventName: string, callback: (payload: any) => unknown) {
30
+ export function on(eventName: string, callback: (payload: any) => unknown, {once} = {once: false}) {
25
31
  if (!callbacks.has(eventName)) {
26
32
  callbacks.set(eventName, new Set())
27
33
  }
28
- callbacks.get(eventName).add(callback);
34
+ callbacks.get(eventName).add({callback, once: once || false});
29
35
  }
package/src/route.ts ADDED
@@ -0,0 +1,24 @@
1
+ import {dispatch, on} from './qelos';
2
+
3
+ let currentRoute;
4
+ let subscribers;
5
+
6
+ export function getCurrentRoute() {
7
+ return currentRoute;
8
+ }
9
+
10
+ export function onRouteChanged(callback) {
11
+ if (!subscribers) {
12
+ subscribers = new Set();
13
+ }
14
+ subscribers.add(callback);
15
+ }
16
+
17
+ dispatch('routeChangedInterested');
18
+
19
+ on('routeChanged', route => {
20
+ currentRoute = route;
21
+ if (subscribers && subscribers.size) {
22
+ subscribers.forEach(cb => cb(currentRoute))
23
+ }
24
+ });
@@ -0,0 +1,17 @@
1
+ import {dispatch, on} from './qelos';
2
+
3
+ export default function loadStyles() {
4
+ dispatch('styleInterested');
5
+ on('sharedStyle', css => {
6
+ if (!css) {
7
+ return;
8
+ }
9
+ let appStyle = document.querySelector('#app-style');
10
+ if (!appStyle) {
11
+ appStyle = document.createElement('style');
12
+ appStyle.setAttribute('id', 'app-style');
13
+ document.body.prepend(appStyle);
14
+ }
15
+ appStyle.innerHTML = css;
16
+ }, {once: true})
17
+ }