ember-velcro 2.1.2 → 2.2.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/README.md CHANGED
@@ -80,6 +80,46 @@ The `Velcro` component yields a single hash - 2 modifiers and 'velcro data':
80
80
 
81
81
  See [MiddlewareArguments](https://floating-ui.com/docs/middleware#middlewarearguments) for a description of each.
82
82
 
83
+ <details>
84
+ <summary>You can also use `velcro.setHook` yielded function for more complex composibility scenarios. Expand to read more.</summary>
85
+
86
+ ## `setHook`
87
+
88
+ Imagine you're writing a dropdown component with ember-velcro. You want to yield a `trigger` modifier that does two things:
89
+ 1. sets an element as the "hook" for ember-velcro
90
+ 2. attaches a click handler to toggle between the open/closed states
91
+
92
+ Without the yielded `setHook` function, this would not be possible. With `setHook` however, we can pass that function to the modifier, and the modifier can call that function with the element.
93
+
94
+ Such a dropdown component might look something like this:
95
+
96
+ ```gjs
97
+ let myModifier = modifier((element, [setHook, handler]) => {
98
+ // call ember-velcro's setHook
99
+ setHook(element);
100
+
101
+ // other custom logic
102
+ element.addEventListener('click', handler);
103
+
104
+ return () => {
105
+ element.removeEventListener('click', handler);
106
+ };
107
+ });
108
+
109
+ <template>
110
+ <Velcro as |velcro|>
111
+ {{yield (hash
112
+ trigger=(modifier myModifier velcro.setHook onClick)
113
+ )}}
114
+ </Velcro>
115
+ </template>
116
+ ```
117
+
118
+ This is needed because, at the time of writing, there's no way in ember to combine two existing modifiers into a single one. You can check the relevant [pull request](https://github.com/CrowdStrike/ember-velcro/pull/186) for more information.
119
+
120
+
121
+ </details>
122
+
83
123
  Compatibility
84
124
  ------------------------------------------------------------------------------
85
125
 
@@ -18,6 +18,7 @@ interface Signature {
18
18
  default: [
19
19
  velcro: {
20
20
  hook: ModifierLike<HookSignature>;
21
+ setHook: (element: HTMLElement | SVGElement) => void;
21
22
  loop: ModifierLike<{
22
23
  Element: HTMLElement;
23
24
  }>;
@@ -33,12 +34,13 @@ declare class Velcro extends Component<Signature> {
33
34
  hook?: HTMLElement | SVGElement;
34
35
  velcroData?: MiddlewareArguments;
35
36
  setVelcroData: any;
36
- velcroHook: import("ember-modifier").FunctionBasedModifier<{
37
- Element: HTMLElement | SVGElement;
37
+ setHook: (element: HTMLElement | SVGElement) => void;
38
+ velcroHook: import("ember-modifier/.").FunctionBasedModifier<{
38
39
  Args: {
40
+ Positional: unknown[];
39
41
  Named: import("ember-modifier/-private/signature").EmptyObject;
40
- Positional: [];
41
42
  };
43
+ Element: HookSignature;
42
44
  }>;
43
45
  velcroLoop: typeof VelcroModifier;
44
46
  }
@@ -1,9 +1,9 @@
1
- import { setComponentTemplate } from '@ember/component';
2
- import { hbs } from 'ember-cli-htmlbars';
3
1
  import Component from '@glimmer/component';
4
2
  import { tracked } from '@glimmer/tracking';
5
3
  import { modifier } from 'ember-modifier';
6
4
  import VelcroModifier from '../../modifiers/velcro.js';
5
+ import { precompileTemplate } from '@ember/template-compilation';
6
+ import { setComponentTemplate } from '@ember/component';
7
7
 
8
8
  function _initializerDefineProperty(target, property, descriptor, context) {
9
9
  if (!descriptor) return;
@@ -15,7 +15,34 @@ function _initializerDefineProperty(target, property, descriptor, context) {
15
15
  });
16
16
  }
17
17
 
18
+ function _typeof(o) {
19
+ "@babel/helpers - typeof";
20
+
21
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
22
+ return typeof o;
23
+ } : function (o) {
24
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
25
+ }, _typeof(o);
26
+ }
27
+
28
+ function toPrimitive(t, r) {
29
+ if ("object" != _typeof(t) || !t) return t;
30
+ var e = t[Symbol.toPrimitive];
31
+ if (void 0 !== e) {
32
+ var i = e.call(t, r || "default");
33
+ if ("object" != _typeof(i)) return i;
34
+ throw new TypeError("@@toPrimitive must return a primitive value.");
35
+ }
36
+ return ("string" === r ? String : Number)(t);
37
+ }
38
+
39
+ function toPropertyKey(t) {
40
+ var i = toPrimitive(t, "string");
41
+ return "symbol" == _typeof(i) ? i : i + "";
42
+ }
43
+
18
44
  function _defineProperty(obj, key, value) {
45
+ key = toPropertyKey(key);
19
46
  if (key in obj) {
20
47
  Object.defineProperty(obj, key, {
21
48
  value: value,
@@ -53,7 +80,7 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con
53
80
  return desc;
54
81
  }
55
82
 
56
- var TEMPLATE = hbs("{{yield (hash\n hook=this.velcroHook\n loop=(if this.hook (modifier this.velcroLoop\n this.hook\n flipOptions=@flipOptions\n hideOptions=@hideOptions\n middleware=@middleware\n offsetOptions=@offsetOptions\n placement=@placement\n shiftOptions=@shiftOptions\n strategy=@strategy\n setVelcroData=this.setVelcroData\n ))\n data=this.velcroData\n)}}\n\n");
83
+ var TEMPLATE = precompileTemplate("{{yield (hash\n hook=this.velcroHook\n setHook=this.setHook\n loop=(if this.hook (modifier this.velcroLoop\n this.hook\n flipOptions=@flipOptions\n hideOptions=@hideOptions\n middleware=@middleware\n offsetOptions=@offsetOptions\n placement=@placement\n shiftOptions=@shiftOptions\n strategy=@strategy\n setVelcroData=this.setVelcroData\n ))\n data=this.velcroData\n)}}\n\n");
57
84
 
58
85
  var _class, _descriptor, _descriptor2;
59
86
  let Velcro = (_class = class Velcro extends Component {
@@ -62,8 +89,11 @@ let Velcro = (_class = class Velcro extends Component {
62
89
  _initializerDefineProperty(this, "hook", _descriptor, this);
63
90
  _initializerDefineProperty(this, "velcroData", _descriptor2, this);
64
91
  _defineProperty(this, "setVelcroData", data => this.velcroData = data);
65
- _defineProperty(this, "velcroHook", modifier(element => {
92
+ _defineProperty(this, "setHook", element => {
66
93
  this.hook = element;
94
+ });
95
+ _defineProperty(this, "velcroHook", modifier(element => {
96
+ this.setHook(element);
67
97
  }, {
68
98
  eager: false
69
99
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/@babel+runtime@7.19.4/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js","../../../../node_modules/.pnpm/@babel+runtime@7.19.4/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/.pnpm/@babel+runtime@7.19.4/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js","../../../src/components/velcro/index.hbs.js","../../../src/components/velcro/index.ts"],"sourcesContent":["export default function _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object.keys(descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n if (desc.initializer === void 0) {\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n return desc;\n}","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs(\"{{yield (hash\\n hook=this.velcroHook\\n loop=(if this.hook (modifier this.velcroLoop\\n this.hook\\n flipOptions=@flipOptions\\n hideOptions=@hideOptions\\n middleware=@middleware\\n offsetOptions=@offsetOptions\\n placement=@placement\\n shiftOptions=@shiftOptions\\n strategy=@strategy\\n setVelcroData=this.setVelcroData\\n ))\\n data=this.velcroData\\n)}}\\n\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport { modifier } from 'ember-modifier';\n\nimport VelcroModifier from '../../modifiers/velcro';\n\nimport type { Signature as ModifierSignature } from '../../modifiers/velcro';\nimport type { MiddlewareArguments } from '@floating-ui/dom';\nimport type { ModifierLike } from '@glint/template';\n\ntype ModifierArgs = ModifierSignature['Args']['Named'];\n\ninterface Signature {\n Args: {\n middleware?: ModifierArgs['middleware'];\n placement?: ModifierArgs['placement'];\n strategy?: ModifierArgs['strategy'];\n flipOptions?: ModifierArgs['flipOptions'];\n hideOptions?: ModifierArgs['hideOptions'];\n shiftOptions?: ModifierArgs['shiftOptions'];\n offsetOptions?: ModifierArgs['offsetOptions'];\n };\n Blocks: {\n default: [\n velcro: {\n hook: ModifierLike<HookSignature>;\n loop: ModifierLike<{\n Element: HTMLElement;\n }>;\n data: MiddlewareArguments;\n }\n ];\n };\n}\n\ninterface HookSignature {\n Element: HTMLElement | SVGElement;\n}\n\nexport default class Velcro extends Component<Signature> {\n @tracked hook?: HTMLElement | SVGElement = undefined;\n\n // set by VelcroModifier\n @tracked velcroData?: MiddlewareArguments = undefined;\n\n setVelcroData = (data: MiddlewareArguments) => (this.velcroData = data);\n\n velcroHook = modifier<HookSignature>(\n (element) => {\n this.hook = element;\n },\n { eager: false }\n );\n\n velcroLoop = VelcroModifier;\n}\n"],"names":["_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_defineProperty","obj","key","_applyDecoratedDescriptor","decorators","desc","keys","forEach","slice","reverse","reduce","decorator","undefined","hbs","Velcro","_class","Component","constructor","args","_descriptor","_descriptor2","data","velcroData","modifier","element","hook","eager","VelcroModifier","prototype","tracked","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js","../../../../node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js","../../../src/components/velcro/index.hbs","../../../src/components/velcro/index.ts"],"sourcesContent":["export default function _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object.keys(descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n if (desc.initializer === void 0) {\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n return desc;\n}","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{yield (hash\\n hook=this.velcroHook\\n setHook=this.setHook\\n loop=(if this.hook (modifier this.velcroLoop\\n this.hook\\n flipOptions=@flipOptions\\n hideOptions=@hideOptions\\n middleware=@middleware\\n offsetOptions=@offsetOptions\\n placement=@placement\\n shiftOptions=@shiftOptions\\n strategy=@strategy\\n setVelcroData=this.setVelcroData\\n ))\\n data=this.velcroData\\n)}}\\n\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nimport { modifier } from 'ember-modifier';\n\nimport VelcroModifier from '../../modifiers/velcro';\n\nimport type { Signature as ModifierSignature } from '../../modifiers/velcro';\nimport type { MiddlewareArguments } from '@floating-ui/dom';\nimport type { ModifierLike } from '@glint/template';\n\ntype ModifierArgs = ModifierSignature['Args']['Named'];\n\ninterface Signature {\n Args: {\n middleware?: ModifierArgs['middleware'];\n placement?: ModifierArgs['placement'];\n strategy?: ModifierArgs['strategy'];\n flipOptions?: ModifierArgs['flipOptions'];\n hideOptions?: ModifierArgs['hideOptions'];\n shiftOptions?: ModifierArgs['shiftOptions'];\n offsetOptions?: ModifierArgs['offsetOptions'];\n };\n Blocks: {\n default: [\n velcro: {\n hook: ModifierLike<HookSignature>;\n setHook: (element: HTMLElement | SVGElement) => void;\n loop: ModifierLike<{\n Element: HTMLElement;\n }>;\n data: MiddlewareArguments;\n }\n ];\n };\n}\n\ninterface HookSignature {\n Element: HTMLElement | SVGElement;\n}\n\nexport default class Velcro extends Component<Signature> {\n @tracked hook?: HTMLElement | SVGElement = undefined;\n\n // set by VelcroModifier\n @tracked velcroData?: MiddlewareArguments = undefined;\n\n setVelcroData = (data: MiddlewareArguments) => (this.velcroData = data);\n\n setHook = (element: HTMLElement | SVGElement) => {\n this.hook = element;\n };\n\n velcroHook = modifier<HookSignature>(\n (element: HTMLElement | SVGElement) => {\n this.setHook(element);\n },\n { eager: false }\n );\n\n velcroLoop = VelcroModifier;\n}\n"],"names":["_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_typeof","o","Symbol","iterator","constructor","prototype","toPrimitive","t","r","e","i","TypeError","String","Number","toPropertyKey","_defineProperty","obj","key","_applyDecoratedDescriptor","decorators","desc","keys","forEach","slice","reverse","reduce","decorator","undefined","precompileTemplate","Velcro","_class","Component","args","_descriptor","_descriptor2","data","velcroData","element","hook","modifier","setHook","eager","VelcroModifier","tracked","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AAAe,SAASA,0BAA0BA,CAACC,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAAE;EACxF,IAAI,CAACD,UAAU,EAAE,OAAA;AACjBE,EAAAA,MAAM,CAACC,cAAc,CAACL,MAAM,EAAEC,QAAQ,EAAE;IACtCK,UAAU,EAAEJ,UAAU,CAACI,UAAU;IACjCC,YAAY,EAAEL,UAAU,CAACK,YAAY;IACrCC,QAAQ,EAAEN,UAAU,CAACM,QAAQ;AAC7BC,IAAAA,KAAK,EAAEP,UAAU,CAACQ,WAAW,GAAGR,UAAU,CAACQ,WAAW,CAACC,IAAI,CAACR,OAAO,CAAC,GAAG,KAAK,CAAA;AAC9E,GAAC,CAAC,CAAA;AACJ;;ACRe,SAASS,OAAOA,CAACC,CAAC,EAAE;EACjC,yBAAyB,CAAA;;AAEzB,EAAA,OAAOD,OAAO,GAAG,UAAU,IAAI,OAAOE,MAAM,IAAI,QAAQ,IAAI,OAAOA,MAAM,CAACC,QAAQ,GAAG,UAAUF,CAAC,EAAE;AAChG,IAAA,OAAO,OAAOA,CAAC,CAAA;GAChB,GAAG,UAAUA,CAAC,EAAE;IACf,OAAOA,CAAC,IAAI,UAAU,IAAI,OAAOC,MAAM,IAAID,CAAC,CAACG,WAAW,KAAKF,MAAM,IAAID,CAAC,KAAKC,MAAM,CAACG,SAAS,GAAG,QAAQ,GAAG,OAAOJ,CAAC,CAAA;AACrH,GAAC,EAAED,OAAO,CAACC,CAAC,CAAC,CAAA;AACf;;ACPe,SAASK,WAAWA,CAACC,CAAC,EAAEC,CAAC,EAAE;EACxC,IAAI,QAAQ,IAAIR,OAAO,CAACO,CAAC,CAAC,IAAI,CAACA,CAAC,EAAE,OAAOA,CAAC,CAAA;AAC1C,EAAA,IAAIE,CAAC,GAAGF,CAAC,CAACL,MAAM,CAACI,WAAW,CAAC,CAAA;AAC7B,EAAA,IAAI,KAAK,CAAC,KAAKG,CAAC,EAAE;IAChB,IAAIC,CAAC,GAAGD,CAAC,CAACV,IAAI,CAACQ,CAAC,EAAEC,CAAC,IAAI,SAAS,CAAC,CAAA;IACjC,IAAI,QAAQ,IAAIR,OAAO,CAACU,CAAC,CAAC,EAAE,OAAOA,CAAC,CAAA;AACpC,IAAA,MAAM,IAAIC,SAAS,CAAC,8CAA8C,CAAC,CAAA;AACrE,GAAA;EACA,OAAO,CAAC,QAAQ,KAAKH,CAAC,GAAGI,MAAM,GAAGC,MAAM,EAAEN,CAAC,CAAC,CAAA;AAC9C;;ACRe,SAASO,aAAaA,CAACP,CAAC,EAAE;AACvC,EAAA,IAAIG,CAAC,GAAGJ,WAAW,CAACC,CAAC,EAAE,QAAQ,CAAC,CAAA;EAChC,OAAO,QAAQ,IAAIP,OAAO,CAACU,CAAC,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAG,EAAE,CAAA;AAC5C;;ACJe,SAASK,eAAeA,CAACC,GAAG,EAAEC,GAAG,EAAEpB,KAAK,EAAE;AACvDoB,EAAAA,GAAG,GAAGH,aAAa,CAACG,GAAG,CAAC,CAAA;EACxB,IAAIA,GAAG,IAAID,GAAG,EAAE;AACdxB,IAAAA,MAAM,CAACC,cAAc,CAACuB,GAAG,EAAEC,GAAG,EAAE;AAC9BpB,MAAAA,KAAK,EAAEA,KAAK;AACZH,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,YAAY,EAAE,IAAI;AAClBC,MAAAA,QAAQ,EAAE,IAAA;AACZ,KAAC,CAAC,CAAA;AACJ,GAAC,MAAM;AACLoB,IAAAA,GAAG,CAACC,GAAG,CAAC,GAAGpB,KAAK,CAAA;AAClB,GAAA;AACA,EAAA,OAAOmB,GAAG,CAAA;AACZ;;ACde,SAASE,yBAAyBA,CAAC9B,MAAM,EAAEC,QAAQ,EAAE8B,UAAU,EAAE7B,UAAU,EAAEC,OAAO,EAAE;EACnG,IAAI6B,IAAI,GAAG,EAAE,CAAA;EACb5B,MAAM,CAAC6B,IAAI,CAAC/B,UAAU,CAAC,CAACgC,OAAO,CAAC,UAAUL,GAAG,EAAE;AAC7CG,IAAAA,IAAI,CAACH,GAAG,CAAC,GAAG3B,UAAU,CAAC2B,GAAG,CAAC,CAAA;AAC7B,GAAC,CAAC,CAAA;AACFG,EAAAA,IAAI,CAAC1B,UAAU,GAAG,CAAC,CAAC0B,IAAI,CAAC1B,UAAU,CAAA;AACnC0B,EAAAA,IAAI,CAACzB,YAAY,GAAG,CAAC,CAACyB,IAAI,CAACzB,YAAY,CAAA;AACvC,EAAA,IAAI,OAAO,IAAIyB,IAAI,IAAIA,IAAI,CAACtB,WAAW,EAAE;IACvCsB,IAAI,CAACxB,QAAQ,GAAG,IAAI,CAAA;AACtB,GAAA;AACAwB,EAAAA,IAAI,GAAGD,UAAU,CAACI,KAAK,EAAE,CAACC,OAAO,EAAE,CAACC,MAAM,CAAC,UAAUL,IAAI,EAAEM,SAAS,EAAE;IACpE,OAAOA,SAAS,CAACtC,MAAM,EAAEC,QAAQ,EAAE+B,IAAI,CAAC,IAAIA,IAAI,CAAA;GACjD,EAAEA,IAAI,CAAC,CAAA;EACR,IAAI7B,OAAO,IAAI6B,IAAI,CAACtB,WAAW,KAAK,KAAK,CAAC,EAAE;AAC1CsB,IAAAA,IAAI,CAACvB,KAAK,GAAGuB,IAAI,CAACtB,WAAW,GAAGsB,IAAI,CAACtB,WAAW,CAACC,IAAI,CAACR,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;IACvE6B,IAAI,CAACtB,WAAW,GAAG6B,SAAS,CAAA;AAC9B,GAAA;AACA,EAAA,IAAIP,IAAI,CAACtB,WAAW,KAAK,KAAK,CAAC,EAAE;IAC/BN,MAAM,CAACC,cAAc,CAACL,MAAM,EAAEC,QAAQ,EAAE+B,IAAI,CAAC,CAAA;AAC7CA,IAAAA,IAAI,GAAG,IAAI,CAAA;AACb,GAAA;AACA,EAAA,OAAOA,IAAI,CAAA;AACb;;ACrBA,eAAeQ,kBAAkB,CAAC,uZAAuZ,CAAC;;;ACwCraC,IAAAA,MAAM,IAAAC,MAAA,GAAZ,MAAMD,MAAM,SAASE,SAAS,CAAY;AAAA3B,EAAAA,WAAAA,CAAA,GAAA4B,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAA7C,IAAAA,0BAAA,eAAA8C,WAAA,EAAA,IAAA,CAAA,CAAA;AAAA9C,IAAAA,0BAAA,qBAAA+C,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAnB,IAAAA,eAAA,wBAMtCoB,IAAyB,IAAM,IAAI,CAACC,UAAU,GAAGD,IAAK,CAAA,CAAA;IAAApB,eAAA,CAAA,IAAA,EAAA,SAAA,EAE5DsB,OAAiC,IAAK;MAC/C,IAAI,CAACC,IAAI,GAAGD,OAAO,CAAA;KACpB,CAAA,CAAA;AAAAtB,IAAAA,eAAA,CAEYwB,IAAAA,EAAAA,YAAAA,EAAAA,QAAQ,CAClBF,OAAiC,IAAK;AACrC,MAAA,IAAI,CAACG,OAAO,CAACH,OAAO,CAAC,CAAA;AACvB,KAAC,EACD;AAAEI,MAAAA,KAAK,EAAE,KAAA;AAAM,KACjB,CAAC,CAAA,CAAA;AAAA1B,IAAAA,eAAA,qBAEY2B,cAAc,CAAA,CAAA;GAhB3B;AAiBF,CAAC,GAAAT,WAAA,GAAAf,yBAAA,CAAAY,MAAA,CAAAzB,SAAA,EAAA,MAAA,EAAA,CAnBEsC,OAAO,CAAA,EAAA;EAAAhD,YAAA,EAAA,IAAA;EAAAD,UAAA,EAAA,IAAA;EAAAE,QAAA,EAAA,IAAA;AAAAE,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAmC6B,SAAS,CAAA;AAAA,GAAA;AAAA,CAAAO,CAAAA,EAAAA,YAAA,GAAAhB,yBAAA,CAAAY,MAAA,CAAAzB,SAAA,iBAGnDsC,OAAO,CAAA,EAAA;EAAAhD,YAAA,EAAA,IAAA;EAAAD,UAAA,EAAA,IAAA;EAAAE,QAAA,EAAA,IAAA;AAAAE,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAoC6B,SAAS,CAAA;AAAA,GAAA;AAAA,CAAA,CAAA,GAAAG,MAAA,EAAA;AAJ5Bc,oBAAA,CAAAC,QAAA,EAAAhB,MAAA,CAAA;;;;"}
@@ -1,20 +1,16 @@
1
1
  import Modifier from 'ember-modifier';
2
- import { Middleware, Placement, Strategy } from '@floating-ui/dom';
3
- /**
4
- * TODO: figure out how to get the real types out of @floating-ui/dom
5
- */
6
- type TODO = any;
2
+ import { FlipOptions, HideOptions, Middleware, OffsetOptions, Placement, ShiftOptions, Strategy } from '@floating-ui/dom';
7
3
  interface Signature {
8
4
  Element: HTMLElement;
9
5
  Args: {
10
6
  Positional: [referenceElement: string | HTMLElement | SVGElement];
11
7
  Named: {
12
8
  strategy?: Strategy;
13
- offsetOptions?: TODO;
9
+ offsetOptions?: OffsetOptions;
14
10
  placement?: Placement;
15
- flipOptions?: TODO;
16
- shiftOptions?: TODO;
17
- hideOptions?: TODO;
11
+ flipOptions?: FlipOptions;
12
+ shiftOptions?: ShiftOptions;
13
+ hideOptions?: HideOptions;
18
14
  middleware?: Middleware[];
19
15
  setVelcroData?: Middleware['fn'];
20
16
  };
@@ -15,9 +15,6 @@ function velcroData() {
15
15
  };
16
16
  }
17
17
 
18
- /**
19
- * TODO: figure out how to get the real types out of @floating-ui/dom
20
- */ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
18
  class VelcroModifier extends Modifier {
22
19
  modify(floatingElement, [_referenceElement], {
23
20
  strategy = 'fixed',
@@ -52,10 +49,14 @@ class VelcroModifier extends Modifier {
52
49
  placement,
53
50
  strategy
54
51
  });
52
+ const {
53
+ referenceHidden
54
+ } = middlewareData.hide;
55
55
  Object.assign(floatingElement.style, {
56
56
  top: `${y}px`,
57
57
  left: `${x}px`,
58
- margin: 0
58
+ margin: 0,
59
+ visibility: referenceHidden ? 'hidden' : 'visible'
59
60
  });
60
61
  setVelcroData?.(middlewareData.metadata);
61
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"velcro.js","sources":["../../src/middleware/velcro-data.ts","../../src/modifiers/velcro.ts"],"sourcesContent":["import type { Middleware } from '@floating-ui/dom';\n\nexport function velcroData(): Middleware {\n return {\n name: 'metadata',\n fn: (data) => {\n // https://floating-ui.com/docs/middleware#always-return-an-object\n return {\n data,\n };\n },\n };\n}\n","import { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\n\nimport { autoUpdate, computePosition, flip, hide, offset, shift } from '@floating-ui/dom';\nimport Modifier from 'ember-modifier';\n\nimport { velcroData } from '../middleware/velcro-data';\n\nimport type { Middleware, Placement, Strategy } from '@floating-ui/dom';\n\n/**\n * TODO: figure out how to get the real types out of @floating-ui/dom\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TODO = any;\n\nexport interface Signature {\n Element: HTMLElement;\n Args: {\n Positional: [referenceElement: string | HTMLElement | SVGElement];\n Named: {\n strategy?: Strategy;\n offsetOptions?: TODO;\n placement?: Placement;\n flipOptions?: TODO;\n shiftOptions?: TODO;\n hideOptions?: TODO;\n middleware?: Middleware[];\n setVelcroData?: Middleware['fn'];\n };\n };\n}\n\nexport default class VelcroModifier extends Modifier<Signature> {\n modify(\n floatingElement: Signature['Element'],\n [_referenceElement]: Signature['Args']['Positional'],\n {\n strategy = 'fixed',\n offsetOptions = 0,\n placement = 'bottom',\n flipOptions,\n shiftOptions,\n middleware = [],\n setVelcroData,\n }: Signature['Args']['Named']\n ) {\n const referenceElement: null | HTMLElement | SVGElement =\n typeof _referenceElement === 'string'\n ? document.querySelector(_referenceElement)\n : _referenceElement;\n\n assert(\n 'no reference element defined',\n referenceElement instanceof HTMLElement || referenceElement instanceof SVGElement\n );\n\n assert(\n 'no floating element defined',\n floatingElement instanceof HTMLElement || _referenceElement instanceof SVGElement\n );\n\n assert(\n 'reference and floating elements cannot be the same element',\n floatingElement !== _referenceElement\n );\n\n assert('@middleware must be an array of one or more objects', Array.isArray(middleware));\n\n Object.assign(floatingElement.style, {\n position: strategy,\n top: '0',\n left: '0',\n });\n\n let update = async () => {\n let { middlewareData, x, y } = await computePosition(referenceElement, floatingElement, {\n middleware: [\n offset(offsetOptions),\n flip(flipOptions),\n shift(shiftOptions),\n ...middleware,\n hide({ strategy: 'referenceHidden' }),\n hide({ strategy: 'escaped' }),\n velcroData(),\n ],\n placement,\n strategy,\n });\n\n Object.assign(floatingElement.style, {\n top: `${y}px`,\n left: `${x}px`,\n margin: 0,\n });\n setVelcroData?.(middlewareData.metadata);\n };\n\n update();\n\n let cleanup = autoUpdate(referenceElement, floatingElement, update);\n\n registerDestructor(this, cleanup);\n }\n}\n"],"names":["velcroData","name","fn","data","VelcroModifier","Modifier","modify","floatingElement","_referenceElement","strategy","offsetOptions","placement","flipOptions","shiftOptions","middleware","setVelcroData","referenceElement","document","querySelector","assert","HTMLElement","SVGElement","Array","isArray","Object","assign","style","position","top","left","update","middlewareData","x","y","computePosition","offset","flip","shift","hide","margin","metadata","cleanup","autoUpdate","registerDestructor"],"mappings":";;;;;AAEO,SAASA,UAAUA,GAAe;EACvC,OAAO;AACLC,IAAAA,IAAI,EAAE,UAAU;IAChBC,EAAE,EAAGC,IAAI,IAAK;AACZ;MACA,OAAO;AACLA,QAAAA,IAAAA;OACD,CAAA;AACH,KAAA;GACD,CAAA;AACH;;ACFA;AACA;AACA;AAqBe,MAAMC,cAAc,SAASC,QAAQ,CAAY;AAC9DC,EAAAA,MAAMA,CACJC,eAAqC,EACrC,CAACC,iBAAiB,CAAkC,EACpD;AACEC,IAAAA,QAAQ,GAAG,OAAO;AAClBC,IAAAA,aAAa,GAAG,CAAC;AACjBC,IAAAA,SAAS,GAAG,QAAQ;IACpBC,WAAW;IACXC,YAAY;AACZC,IAAAA,UAAU,GAAG,EAAE;AACfC,IAAAA,aAAAA;AAC0B,GAAC,EAC7B;AACA,IAAA,MAAMC,gBAAiD,GACrD,OAAOR,iBAAiB,KAAK,QAAQ,GACjCS,QAAQ,CAACC,aAAa,CAACV,iBAAiB,CAAC,GACzCA,iBAAiB,CAAA;IAEvBW,MAAM,CACJ,8BAA8B,EAC9BH,gBAAgB,YAAYI,WAAW,IAAIJ,gBAAgB,YAAYK,UACzE,CAAC,CAAA;IAEDF,MAAM,CACJ,6BAA6B,EAC7BZ,eAAe,YAAYa,WAAW,IAAIZ,iBAAiB,YAAYa,UACzE,CAAC,CAAA;AAEDF,IAAAA,MAAM,CACJ,4DAA4D,EAC5DZ,eAAe,KAAKC,iBACtB,CAAC,CAAA;IAEDW,MAAM,CAAC,qDAAqD,EAAEG,KAAK,CAACC,OAAO,CAACT,UAAU,CAAC,CAAC,CAAA;AAExFU,IAAAA,MAAM,CAACC,MAAM,CAAClB,eAAe,CAACmB,KAAK,EAAE;AACnCC,MAAAA,QAAQ,EAAElB,QAAQ;AAClBmB,MAAAA,GAAG,EAAE,GAAG;AACRC,MAAAA,IAAI,EAAE,GAAA;AACR,KAAC,CAAC,CAAA;AAEF,IAAA,IAAIC,MAAM,GAAG,YAAY;MACvB,IAAI;QAAEC,cAAc;QAAEC,CAAC;AAAEC,QAAAA,CAAAA;AAAE,OAAC,GAAG,MAAMC,eAAe,CAAClB,gBAAgB,EAAET,eAAe,EAAE;QACtFO,UAAU,EAAE,CACVqB,MAAM,CAACzB,aAAa,CAAC,EACrB0B,IAAI,CAACxB,WAAW,CAAC,EACjByB,KAAK,CAACxB,YAAY,CAAC,EACnB,GAAGC,UAAU,EACbwB,IAAI,CAAC;AAAE7B,UAAAA,QAAQ,EAAE,iBAAA;SAAmB,CAAC,EACrC6B,IAAI,CAAC;AAAE7B,UAAAA,QAAQ,EAAE,SAAA;AAAU,SAAC,CAAC,EAC7BT,UAAU,EAAE,CACb;QACDW,SAAS;AACTF,QAAAA,QAAAA;AACF,OAAC,CAAC,CAAA;AAEFe,MAAAA,MAAM,CAACC,MAAM,CAAClB,eAAe,CAACmB,KAAK,EAAE;QACnCE,GAAG,EAAG,CAAEK,EAAAA,CAAE,CAAG,EAAA,CAAA;QACbJ,IAAI,EAAG,CAAEG,EAAAA,CAAE,CAAG,EAAA,CAAA;AACdO,QAAAA,MAAM,EAAE,CAAA;AACV,OAAC,CAAC,CAAA;AACFxB,MAAAA,aAAa,GAAGgB,cAAc,CAACS,QAAQ,CAAC,CAAA;KACzC,CAAA;AAEDV,IAAAA,MAAM,EAAE,CAAA;IAER,IAAIW,OAAO,GAAGC,UAAU,CAAC1B,gBAAgB,EAAET,eAAe,EAAEuB,MAAM,CAAC,CAAA;AAEnEa,IAAAA,kBAAkB,CAAC,IAAI,EAAEF,OAAO,CAAC,CAAA;AACnC,GAAA;AACF;;;;"}
1
+ {"version":3,"file":"velcro.js","sources":["../../src/middleware/velcro-data.ts","../../src/modifiers/velcro.ts"],"sourcesContent":["import type { Middleware } from '@floating-ui/dom';\n\nexport function velcroData(): Middleware {\n return {\n name: 'metadata',\n fn: (data) => {\n // https://floating-ui.com/docs/middleware#always-return-an-object\n return {\n data,\n };\n },\n };\n}\n","import { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\n\nimport { autoUpdate, computePosition, flip, hide, offset, shift } from '@floating-ui/dom';\nimport Modifier from 'ember-modifier';\n\nimport { velcroData } from '../middleware/velcro-data';\n\nimport type {\n FlipOptions,\n HideOptions,\n Middleware,\n OffsetOptions,\n Placement,\n ShiftOptions,\n Strategy,\n} from '@floating-ui/dom';\n\nexport interface Signature {\n Element: HTMLElement;\n Args: {\n Positional: [referenceElement: string | HTMLElement | SVGElement];\n Named: {\n strategy?: Strategy;\n offsetOptions?: OffsetOptions;\n placement?: Placement;\n flipOptions?: FlipOptions;\n shiftOptions?: ShiftOptions;\n hideOptions?: HideOptions;\n middleware?: Middleware[];\n setVelcroData?: Middleware['fn'];\n };\n };\n}\n\nexport default class VelcroModifier extends Modifier<Signature> {\n modify(\n floatingElement: Signature['Element'],\n [_referenceElement]: Signature['Args']['Positional'],\n {\n strategy = 'fixed',\n offsetOptions = 0,\n placement = 'bottom',\n flipOptions,\n shiftOptions,\n middleware = [],\n setVelcroData,\n }: Signature['Args']['Named']\n ) {\n const referenceElement: null | HTMLElement | SVGElement =\n typeof _referenceElement === 'string'\n ? document.querySelector(_referenceElement)\n : _referenceElement;\n\n assert(\n 'no reference element defined',\n referenceElement instanceof HTMLElement || referenceElement instanceof SVGElement\n );\n\n assert(\n 'no floating element defined',\n floatingElement instanceof HTMLElement || _referenceElement instanceof SVGElement\n );\n\n assert(\n 'reference and floating elements cannot be the same element',\n floatingElement !== _referenceElement\n );\n\n assert('@middleware must be an array of one or more objects', Array.isArray(middleware));\n\n Object.assign(floatingElement.style, {\n position: strategy,\n top: '0',\n left: '0',\n });\n\n let update = async () => {\n let { middlewareData, x, y } = await computePosition(referenceElement, floatingElement, {\n middleware: [\n offset(offsetOptions),\n flip(flipOptions),\n shift(shiftOptions),\n ...middleware,\n hide({ strategy: 'referenceHidden' }),\n hide({ strategy: 'escaped' }),\n velcroData(),\n ],\n placement,\n strategy,\n });\n\n const { referenceHidden } = middlewareData.hide;\n\n Object.assign(floatingElement.style, {\n top: `${y}px`,\n left: `${x}px`,\n margin: 0,\n visibility: referenceHidden ? 'hidden' : 'visible',\n });\n\n setVelcroData?.(middlewareData.metadata);\n };\n\n update();\n\n let cleanup = autoUpdate(referenceElement, floatingElement, update);\n\n registerDestructor(this, cleanup);\n }\n}\n"],"names":["velcroData","name","fn","data","VelcroModifier","Modifier","modify","floatingElement","_referenceElement","strategy","offsetOptions","placement","flipOptions","shiftOptions","middleware","setVelcroData","referenceElement","document","querySelector","assert","HTMLElement","SVGElement","Array","isArray","Object","assign","style","position","top","left","update","middlewareData","x","y","computePosition","offset","flip","shift","hide","referenceHidden","margin","visibility","metadata","cleanup","autoUpdate","registerDestructor"],"mappings":";;;;;AAEO,SAASA,UAAUA,GAAe;EACvC,OAAO;AACLC,IAAAA,IAAI,EAAE,UAAU;IAChBC,EAAE,EAAGC,IAAI,IAAK;AACZ;MACA,OAAO;AACLA,QAAAA,IAAAA;OACD,CAAA;AACH,KAAA;GACD,CAAA;AACH;;ACuBe,MAAMC,cAAc,SAASC,QAAQ,CAAY;AAC9DC,EAAAA,MAAMA,CACJC,eAAqC,EACrC,CAACC,iBAAiB,CAAkC,EACpD;AACEC,IAAAA,QAAQ,GAAG,OAAO;AAClBC,IAAAA,aAAa,GAAG,CAAC;AACjBC,IAAAA,SAAS,GAAG,QAAQ;IACpBC,WAAW;IACXC,YAAY;AACZC,IAAAA,UAAU,GAAG,EAAE;AACfC,IAAAA,aAAAA;AAC0B,GAAC,EAC7B;AACA,IAAA,MAAMC,gBAAiD,GACrD,OAAOR,iBAAiB,KAAK,QAAQ,GACjCS,QAAQ,CAACC,aAAa,CAACV,iBAAiB,CAAC,GACzCA,iBAAiB,CAAA;IAEvBW,MAAM,CACJ,8BAA8B,EAC9BH,gBAAgB,YAAYI,WAAW,IAAIJ,gBAAgB,YAAYK,UACzE,CAAC,CAAA;IAEDF,MAAM,CACJ,6BAA6B,EAC7BZ,eAAe,YAAYa,WAAW,IAAIZ,iBAAiB,YAAYa,UACzE,CAAC,CAAA;AAEDF,IAAAA,MAAM,CACJ,4DAA4D,EAC5DZ,eAAe,KAAKC,iBACtB,CAAC,CAAA;IAEDW,MAAM,CAAC,qDAAqD,EAAEG,KAAK,CAACC,OAAO,CAACT,UAAU,CAAC,CAAC,CAAA;AAExFU,IAAAA,MAAM,CAACC,MAAM,CAAClB,eAAe,CAACmB,KAAK,EAAE;AACnCC,MAAAA,QAAQ,EAAElB,QAAQ;AAClBmB,MAAAA,GAAG,EAAE,GAAG;AACRC,MAAAA,IAAI,EAAE,GAAA;AACR,KAAC,CAAC,CAAA;AAEF,IAAA,IAAIC,MAAM,GAAG,YAAY;MACvB,IAAI;QAAEC,cAAc;QAAEC,CAAC;AAAEC,QAAAA,CAAAA;AAAE,OAAC,GAAG,MAAMC,eAAe,CAAClB,gBAAgB,EAAET,eAAe,EAAE;QACtFO,UAAU,EAAE,CACVqB,MAAM,CAACzB,aAAa,CAAC,EACrB0B,IAAI,CAACxB,WAAW,CAAC,EACjByB,KAAK,CAACxB,YAAY,CAAC,EACnB,GAAGC,UAAU,EACbwB,IAAI,CAAC;AAAE7B,UAAAA,QAAQ,EAAE,iBAAA;SAAmB,CAAC,EACrC6B,IAAI,CAAC;AAAE7B,UAAAA,QAAQ,EAAE,SAAA;AAAU,SAAC,CAAC,EAC7BT,UAAU,EAAE,CACb;QACDW,SAAS;AACTF,QAAAA,QAAAA;AACF,OAAC,CAAC,CAAA;MAEF,MAAM;AAAE8B,QAAAA,eAAAA;OAAiB,GAAGR,cAAc,CAACO,IAAI,CAAA;AAE/Cd,MAAAA,MAAM,CAACC,MAAM,CAAClB,eAAe,CAACmB,KAAK,EAAE;QACnCE,GAAG,EAAG,CAAEK,EAAAA,CAAE,CAAG,EAAA,CAAA;QACbJ,IAAI,EAAG,CAAEG,EAAAA,CAAE,CAAG,EAAA,CAAA;AACdQ,QAAAA,MAAM,EAAE,CAAC;AACTC,QAAAA,UAAU,EAAEF,eAAe,GAAG,QAAQ,GAAG,SAAA;AAC3C,OAAC,CAAC,CAAA;AAEFxB,MAAAA,aAAa,GAAGgB,cAAc,CAACW,QAAQ,CAAC,CAAA;KACzC,CAAA;AAEDZ,IAAAA,MAAM,EAAE,CAAA;IAER,IAAIa,OAAO,GAAGC,UAAU,CAAC5B,gBAAgB,EAAET,eAAe,EAAEuB,MAAM,CAAC,CAAA;AAEnEe,IAAAA,kBAAkB,CAAC,IAAI,EAAEF,OAAO,CAAC,CAAA;AACnC,GAAA;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-velcro",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "Ember Velcro sticks one element to another with Floating UI.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -53,7 +53,7 @@
53
53
  "@babel/plugin-proposal-decorators": "^7.19.3",
54
54
  "@babel/preset-typescript": "^7.18.6",
55
55
  "@babel/runtime": "^7.19.4",
56
- "@embroider/addon-dev": "^2.0.0",
56
+ "@embroider/addon-dev": "^4.0.0",
57
57
  "@glimmer/component": "^1.1.2",
58
58
  "@glimmer/tracking": "^1.1.2",
59
59
  "@glint/environment-ember-loose": "^1.0.2",
@@ -66,8 +66,8 @@
66
66
  "broccoli-asset-rev": "^3.0.0",
67
67
  "concurrently": "^8.0.0",
68
68
  "ember-cli-htmlbars": "^6.1.0",
69
- "ember-source": "~4.12.0",
70
- "ember-modifier": "^3.2.7",
69
+ "ember-source": "~5.6.0",
70
+ "ember-modifier": "^4.0.0",
71
71
  "ember-template-lint": "^4.10.1",
72
72
  "eslint": "^7.0.0",
73
73
  "eslint-config-prettier": "^8.5.0",
@@ -77,7 +77,7 @@
77
77
  "eslint-plugin-node": "^11.1.0",
78
78
  "eslint-plugin-prettier": "^4.2.1",
79
79
  "eslint-plugin-qunit": "^7.3.1",
80
- "npm-run-all": "^4.1.5",
80
+ "npm-run-all2": "^5.0.0",
81
81
  "prettier": "^2.7.1",
82
82
  "rollup": "^2.79.1",
83
83
  "rollup-plugin-copy": "^3.4.0",