@slickgrid-universal/event-pub-sub 0.16.2 → 0.19.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
@@ -3,7 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [0.16.2](https://github.com/ghiscoding/slickgrid-universal/compare/v0.16.1...v0.16.2) (2021-07-23)
6
+ ## [0.19.1](https://github.com/ghiscoding/slickgrid-universal/compare/v0.19.0...v0.19.1) (2021-11-15)
7
7
 
8
8
  **Note:** Version bump only for package @slickgrid-universal/event-pub-sub
9
9
 
@@ -11,34 +11,72 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- ## [0.16.1](https://github.com/ghiscoding/slickgrid-universal/compare/v0.16.0...v0.16.1) (2021-07-16)
15
-
16
- **Note:** Version bump only for package @slickgrid-universal/event-pub-sub
17
-
18
-
19
-
20
-
21
-
22
- # [0.16.0](https://github.com/ghiscoding/slickgrid-universal/compare/v0.15.0...v0.16.0) (2021-07-16)
23
-
24
-
25
- ### Features
26
-
27
- * **services:** make everything extendable by using `protected` ([ecbb93a](https://github.com/ghiscoding/slickgrid-universal/commit/ecbb93a56abba39dd050bbd6019b86694495edd1))
28
-
29
-
30
-
31
-
32
-
33
- # [0.15.0](https://github.com/ghiscoding/slickgrid-universal/compare/v0.14.1...v0.15.0) (2021-07-06)
34
-
35
-
36
- ### Bug Fixes
37
-
38
- * **build:** the "files" property should be included in pkg.json ([3d8f12e](https://github.com/ghiscoding/slickgrid-universal/commit/3d8f12e5f55079445c6fb5cde767f8e0b4511ebb))
39
-
40
-
41
- ### Features
42
-
43
- * **services:** decouple the EventPubSubService to separate package ([9f51665](https://github.com/ghiscoding/slickgrid-universal/commit/9f516655e9ce5f06e0cfeabc43536834dc38c70b))
14
+
15
+ # [0.19.0](https://github.com/ghiscoding/slickgrid-universal/compare/v0.18.0...v0.19.0) (2021-10-28)
16
+
17
+ **Note:** Version bump only for package @slickgrid-universal/event-pub-sub
18
+
19
+
20
+
21
+
22
+
23
+
24
+ # [0.18.0](https://github.com/ghiscoding/slickgrid-universal/compare/v0.17.0...v0.18.0) (2021-09-29)
25
+
26
+ **Note:** Version bump only for package @slickgrid-universal/event-pub-sub
27
+
28
+
29
+
30
+
31
+
32
+
33
+ # [0.17.0](https://github.com/ghiscoding/slickgrid-universal/compare/v0.16.2...v0.17.0) (2021-09-09)
34
+
35
+
36
+ ### Features
37
+
38
+ * **backend:** add cancellable onBeforeSearchChange & revert on error ([b26a53d](https://github.com/ghiscoding/slickgrid-universal/commit/b26a53d2e1fc7172c8c054b9c27ab1b3a2d3dff6))
39
+
40
+
41
+
42
+
43
+
44
+ ## [0.16.2](https://github.com/ghiscoding/slickgrid-universal/compare/v0.16.1...v0.16.2) (2021-07-23)
45
+
46
+ **Note:** Version bump only for package @slickgrid-universal/event-pub-sub
47
+
48
+
49
+
50
+
51
+
52
+ ## [0.16.1](https://github.com/ghiscoding/slickgrid-universal/compare/v0.16.0...v0.16.1) (2021-07-16)
53
+
54
+ **Note:** Version bump only for package @slickgrid-universal/event-pub-sub
55
+
56
+
57
+
58
+
59
+
60
+ # [0.16.0](https://github.com/ghiscoding/slickgrid-universal/compare/v0.15.0...v0.16.0) (2021-07-16)
61
+
62
+
63
+ ### Features
64
+
65
+ * **services:** make everything extendable by using `protected` ([ecbb93a](https://github.com/ghiscoding/slickgrid-universal/commit/ecbb93a56abba39dd050bbd6019b86694495edd1))
66
+
67
+
68
+
69
+
70
+
71
+ # [0.15.0](https://github.com/ghiscoding/slickgrid-universal/compare/v0.14.1...v0.15.0) (2021-07-06)
72
+
73
+
74
+ ### Bug Fixes
75
+
76
+ * **build:** the "files" property should be included in pkg.json ([3d8f12e](https://github.com/ghiscoding/slickgrid-universal/commit/3d8f12e5f55079445c6fb5cde767f8e0b4511ebb))
77
+
78
+
79
+ ### Features
80
+
81
+ * **services:** decouple the EventPubSubService to separate package ([9f51665](https://github.com/ghiscoding/slickgrid-universal/commit/9f516655e9ce5f06e0cfeabc43536834dc38c70b))
44
82
  * **services:** move Resizer Service w/common services folder for reuse ([d127ac7](https://github.com/ghiscoding/slickgrid-universal/commit/d127ac797ee787ea7785e8ae9f4c0bcaed786afd))
@@ -12,13 +12,16 @@ export declare class EventPubSubService implements PubSubService {
12
12
  constructor(elementSource?: Element);
13
13
  /**
14
14
  * Method to publish a message via a dispatchEvent.
15
- * We return the dispatched event in a Promise with a delayed cycle and we do this because
16
- * most framework require a cycle before the binding is processed and binding a spinner end up showing too late
17
- * for example this is used for these events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
18
- * @param event The event or channel to publish to.
19
- * @param data The data to publish on the channel.
15
+ * Return is a Boolean (from the event dispatch) unless a delay is provided if so we'll return the dispatched event in a Promise with a delayed cycle
16
+ * The delay is rarely use and is only used when we want to make sure that certain events have the time to execute
17
+ * and we do this because most framework require a cycle before the binding is processed and binding a spinner end up showing too late
18
+ * for example this is used for the following events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
19
+ * @param {String} event - The event or channel to publish to.
20
+ * @param {*} data - The data to publish on the channel.
21
+ * @param {Number} delay - optional argument to delay the publish event
22
+ * @returns {Boolean | Promise} - return type will be a Boolean unless a `delay` is provided then a `Promise<Boolean>` will be returned
20
23
  */
21
- publish<T = any>(eventName: string, data?: T): Promise<boolean>;
24
+ publish<T = any>(eventName: string, data?: T, delay?: number): boolean | Promise<boolean>;
22
25
  /**
23
26
  * Subscribes to a message channel or message type.
24
27
  * @param event The event channel or event data type.
@@ -18,18 +18,26 @@ class EventPubSubService {
18
18
  }
19
19
  /**
20
20
  * Method to publish a message via a dispatchEvent.
21
- * We return the dispatched event in a Promise with a delayed cycle and we do this because
22
- * most framework require a cycle before the binding is processed and binding a spinner end up showing too late
23
- * for example this is used for these events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
24
- * @param event The event or channel to publish to.
25
- * @param data The data to publish on the channel.
21
+ * Return is a Boolean (from the event dispatch) unless a delay is provided if so we'll return the dispatched event in a Promise with a delayed cycle
22
+ * The delay is rarely use and is only used when we want to make sure that certain events have the time to execute
23
+ * and we do this because most framework require a cycle before the binding is processed and binding a spinner end up showing too late
24
+ * for example this is used for the following events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
25
+ * @param {String} event - The event or channel to publish to.
26
+ * @param {*} data - The data to publish on the channel.
27
+ * @param {Number} delay - optional argument to delay the publish event
28
+ * @returns {Boolean | Promise} - return type will be a Boolean unless a `delay` is provided then a `Promise<Boolean>` will be returned
26
29
  */
27
- publish(eventName, data) {
30
+ publish(eventName, data, delay) {
28
31
  const eventNameByConvention = this.getEventNameByNamingConvention(eventName, '');
29
- return new Promise(resolve => {
30
- const isDispatched = this.dispatchCustomEvent(eventNameByConvention, data, true, false);
31
- setTimeout(() => resolve(isDispatched), 0);
32
- });
32
+ if (delay) {
33
+ return new Promise(resolve => {
34
+ const isDispatched = this.dispatchCustomEvent(eventNameByConvention, data, true, true);
35
+ setTimeout(() => resolve(isDispatched), delay);
36
+ });
37
+ }
38
+ else {
39
+ return this.dispatchCustomEvent(eventNameByConvention, data, true, true);
40
+ }
33
41
  }
34
42
  /**
35
43
  * Subscribes to a message channel or message type.
@@ -96,10 +104,10 @@ class EventPubSubService {
96
104
  let outputEventName = '';
97
105
  switch (this.eventNamingStyle) {
98
106
  case common_1.EventNamingStyle.camelCase:
99
- outputEventName = (eventNamePrefix !== '') ? `${eventNamePrefix}${common_1.titleCase(inputEventName)}` : inputEventName;
107
+ outputEventName = (eventNamePrefix !== '') ? `${eventNamePrefix}${(0, common_1.titleCase)(inputEventName)}` : inputEventName;
100
108
  break;
101
109
  case common_1.EventNamingStyle.kebabCase:
102
- outputEventName = (eventNamePrefix !== '') ? `${eventNamePrefix}-${common_1.toKebabCase(inputEventName)}` : common_1.toKebabCase(inputEventName);
110
+ outputEventName = (eventNamePrefix !== '') ? `${eventNamePrefix}-${(0, common_1.toKebabCase)(inputEventName)}` : (0, common_1.toKebabCase)(inputEventName);
103
111
  break;
104
112
  case common_1.EventNamingStyle.lowerCase:
105
113
  outputEventName = `${eventNamePrefix}${inputEventName}`.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"eventPubSub.service.js","sourceRoot":"","sources":["../../src/eventPubSub.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventPubSub.service.js","sourceRoot":"","sources":["../../src/eventPubSub.service.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,16 @@ export declare class EventPubSubService implements PubSubService {
12
12
  constructor(elementSource?: Element);
13
13
  /**
14
14
  * Method to publish a message via a dispatchEvent.
15
- * We return the dispatched event in a Promise with a delayed cycle and we do this because
16
- * most framework require a cycle before the binding is processed and binding a spinner end up showing too late
17
- * for example this is used for these events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
18
- * @param event The event or channel to publish to.
19
- * @param data The data to publish on the channel.
15
+ * Return is a Boolean (from the event dispatch) unless a delay is provided if so we'll return the dispatched event in a Promise with a delayed cycle
16
+ * The delay is rarely use and is only used when we want to make sure that certain events have the time to execute
17
+ * and we do this because most framework require a cycle before the binding is processed and binding a spinner end up showing too late
18
+ * for example this is used for the following events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
19
+ * @param {String} event - The event or channel to publish to.
20
+ * @param {*} data - The data to publish on the channel.
21
+ * @param {Number} delay - optional argument to delay the publish event
22
+ * @returns {Boolean | Promise} - return type will be a Boolean unless a `delay` is provided then a `Promise<Boolean>` will be returned
20
23
  */
21
- publish<T = any>(eventName: string, data?: T): Promise<boolean>;
24
+ publish<T = any>(eventName: string, data?: T, delay?: number): boolean | Promise<boolean>;
22
25
  /**
23
26
  * Subscribes to a message channel or message type.
24
27
  * @param event The event channel or event data type.
@@ -15,18 +15,26 @@ export class EventPubSubService {
15
15
  }
16
16
  /**
17
17
  * Method to publish a message via a dispatchEvent.
18
- * We return the dispatched event in a Promise with a delayed cycle and we do this because
19
- * most framework require a cycle before the binding is processed and binding a spinner end up showing too late
20
- * for example this is used for these events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
21
- * @param event The event or channel to publish to.
22
- * @param data The data to publish on the channel.
18
+ * Return is a Boolean (from the event dispatch) unless a delay is provided if so we'll return the dispatched event in a Promise with a delayed cycle
19
+ * The delay is rarely use and is only used when we want to make sure that certain events have the time to execute
20
+ * and we do this because most framework require a cycle before the binding is processed and binding a spinner end up showing too late
21
+ * for example this is used for the following events: onBeforeFilterClear, onBeforeFilterChange, onBeforeToggleTreeCollapse, onBeforeSortChange
22
+ * @param {String} event - The event or channel to publish to.
23
+ * @param {*} data - The data to publish on the channel.
24
+ * @param {Number} delay - optional argument to delay the publish event
25
+ * @returns {Boolean | Promise} - return type will be a Boolean unless a `delay` is provided then a `Promise<Boolean>` will be returned
23
26
  */
24
- publish(eventName, data) {
27
+ publish(eventName, data, delay) {
25
28
  const eventNameByConvention = this.getEventNameByNamingConvention(eventName, '');
26
- return new Promise(resolve => {
27
- const isDispatched = this.dispatchCustomEvent(eventNameByConvention, data, true, false);
28
- setTimeout(() => resolve(isDispatched), 0);
29
- });
29
+ if (delay) {
30
+ return new Promise(resolve => {
31
+ const isDispatched = this.dispatchCustomEvent(eventNameByConvention, data, true, true);
32
+ setTimeout(() => resolve(isDispatched), delay);
33
+ });
34
+ }
35
+ else {
36
+ return this.dispatchCustomEvent(eventNameByConvention, data, true, true);
37
+ }
30
38
  }
31
39
  /**
32
40
  * Subscribes to a message channel or message type.
@@ -1 +1 @@
1
- {"version":3,"file":"eventPubSub.service.js","sourceRoot":"","sources":["../../src/eventPubSub.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventPubSub.service.js","sourceRoot":"","sources":["../../src/eventPubSub.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAoC,SAAS,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAOzH,MAAM,OAAO,kBAAkB;IAc7B,YAAY,aAAuB;QAZzB,sBAAiB,GAAkB,EAAE,CAAC;QAEhD,qBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAW5C,2BAA2B;QAC3B,6GAA6G;QAC7G,IAAI,CAAC,cAAc,GAAG,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAZD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAQD;;;;;;;;;;OAUG;IACH,OAAO,CAAU,SAAiB,EAAE,IAAQ,EAAE,KAAc;QAC1D,MAAM,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEjF,IAAI,KAAK,EAAE;YACT,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAI,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC1F,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,IAAI,CAAC,mBAAmB,CAAI,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7E;IACH,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAU,SAAiB,EAAE,QAA6B;QACjE,MAAM,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEjF,wHAAwH;QACxH,8GAA8G;QAC9G,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,KAAyB,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAW,CAAC,CAAC,CAAC;QACnI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAU,SAAiB,EAAE,QAA6C;QACtF,MAAM,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,SAAiB,EAAE,QAA0C;QACvE,MAAM,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,2DAA2D;IAC3D,cAAc,CAAC,aAAmC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAChC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;gBACxC,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,EAAE;oBACzB,YAAY,CAAC,OAAO,EAAE,CAAC;iBACxB;qBAAM,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,EAAE;oBACpC,YAAY,CAAC,WAAW,EAAE,CAAC;iBAC5B;aACF;SACF;aAAM;YACL,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAChD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;aAC1D;SACF;IACH,CAAC;IAED,gFAAgF;IAChF,mBAAmB,CAAU,SAAiB,EAAE,IAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI;QAC9F,MAAM,SAAS,GAAuB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACxF,IAAI,IAAI,EAAE;YACR,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,WAAW,CAAI,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,qHAAqH;IACrH,8BAA8B,CAAC,cAAsB,EAAE,eAAuB;QAC5E,IAAI,eAAe,GAAG,EAAE,CAAC;QAEzB,QAAQ,IAAI,CAAC,gBAAgB,EAAE;YAC7B,KAAK,gBAAgB,CAAC,SAAS;gBAC7B,eAAe,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC/G,MAAM;YACR,KAAK,gBAAgB,CAAC,SAAS;gBAC7B,eAAe,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC/H,MAAM;YACR,KAAK,gBAAgB,CAAC,SAAS;gBAC7B,eAAe,GAAG,GAAG,eAAe,GAAG,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;gBACtE,MAAM;YACR,KAAK,gBAAgB,CAAC,wBAAwB;gBAC5C,eAAe,GAAG,GAAG,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBACzF,MAAM;SACT;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slickgrid-universal/event-pub-sub",
3
- "version": "0.16.2",
3
+ "version": "0.19.1",
4
4
  "description": "Simple Vanilla Implementation of an Event PubSub Service to do simply publish/subscribe inter-communication while optionally providing data in the event",
5
5
  "main": "dist/commonjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -26,10 +26,19 @@
26
26
  "package:add-browser-prop": "cross-env node ../change-package-browser.js --add-browser=true --folder-name=event-pub-sub",
27
27
  "package:remove-browser-prop": "cross-env node ../change-package-browser.js --remove-browser=true --folder-name=event-pub-sub"
28
28
  },
29
- "author": "Ghislain B.",
30
29
  "license": "MIT",
30
+ "author": "Ghislain B.",
31
+ "homepage": "https://github.com/ghiscoding/slickgrid-universal",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/ghiscoding/slickgrid-universal.git",
35
+ "directory": "packages/event-pub-sub"
36
+ },
37
+ "bugs": {
38
+ "url": "https://github.com/ghiscoding/slickgrid-universal/issues"
39
+ },
31
40
  "engines": {
32
- "node": ">=14.15.0",
41
+ "node": ">=14.17.0",
33
42
  "npm": ">=6.14.8"
34
43
  },
35
44
  "browserslist": [
@@ -38,12 +47,12 @@
38
47
  "not dead"
39
48
  ],
40
49
  "dependencies": {
41
- "@slickgrid-universal/common": "^0.16.2"
50
+ "@slickgrid-universal/common": "^0.19.1"
42
51
  },
43
52
  "devDependencies": {
44
53
  "cross-env": "^7.0.3",
45
54
  "npm-run-all": "^4.1.5",
46
55
  "rimraf": "^3.0.2"
47
56
  },
48
- "gitHead": "3ca88953c78f66ead14a1e4f26d9c7b7a2625b79"
57
+ "gitHead": "073f79eabe7762c02c15fd79b603bf7bcc4e2f71"
49
58
  }