@e280/sly 0.2.0-14 → 0.2.0-15

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/x/dom/dom.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { AttrSpec } from "./types.js";
2
2
  import { Content } from "../ui/types.js";
3
+ import { eve, EveSpec } from "./parts/eve.js";
3
4
  export type Renderable = HTMLElement | ShadowRoot | DocumentFragment;
4
5
  export type Queryable = HTMLElement | ShadowRoot | Element | Document | DocumentFragment;
5
6
  export declare class Dom<C extends Queryable> {
@@ -17,6 +18,7 @@ export declare class Dom<C extends Queryable> {
17
18
  on: (fn: () => void) => () => void;
18
19
  spec: <A extends AttrSpec>(spec: A) => import("./types.js").AttrTypes<A>;
19
20
  };
21
+ events(spec: EveSpec): () => void;
20
22
  }
21
23
  export declare function dom<E extends Queryable>(selector: string): E;
22
24
  export declare function dom<E extends Queryable>(element: E): Dom<E>;
@@ -25,6 +27,7 @@ export declare namespace dom {
25
27
  export var require: <E extends Element = HTMLElement>(selector: string) => E;
26
28
  export var maybe: <E extends Element = HTMLElement>(selector: string) => E | null;
27
29
  export var all: <E extends Element = HTMLElement>(selector: string) => E[];
30
+ export var events: typeof eve;
28
31
  export var attrs: typeof import("./attrs/attrs.js").attrs;
29
32
  export var register: typeof import("./parts/register.js").register;
30
33
  export var render: (container: Renderable, ...content: Content[]) => import("lit-html").RootPart;
package/x/dom/dom.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { render } from "lit";
2
2
  import { attrs } from "./attrs/attrs.js";
3
3
  import { register } from "./parts/register.js";
4
+ import { eve } from "./parts/eve.js";
4
5
  function require(container, selector) {
5
6
  const e = container.querySelector(selector);
6
7
  if (!e)
@@ -35,6 +36,9 @@ export class Dom {
35
36
  attrs() {
36
37
  return attrs(this.element);
37
38
  }
39
+ events(spec) {
40
+ return eve(this.element, spec);
41
+ }
38
42
  }
39
43
  export function dom(selectorOrElement) {
40
44
  return (typeof selectorOrElement === "string")
@@ -46,6 +50,7 @@ dom.in = doc.in.bind(doc);
46
50
  dom.require = doc.require.bind(doc);
47
51
  dom.maybe = doc.maybe.bind(doc);
48
52
  dom.all = doc.all.bind(doc);
53
+ dom.events = eve;
49
54
  dom.attrs = attrs;
50
55
  dom.register = register;
51
56
  dom.render = (container, ...content) => {
package/x/dom/dom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../s/dom/dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAA;AAE1B,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAEtC,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAK5C,SAAS,OAAO,CACd,SAAoB,EACpB,QAAgB;IAEjB,MAAM,CAAC,GAAG,SAAS,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAA;IAC9C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,GAAG,CAAC,CAAA;IAC1D,OAAO,CAAC,CAAA;AACT,CAAC;AAED,MAAM,OAAO,GAAG;IACI;IAAnB,YAAmB,OAAU;QAAV,YAAO,GAAP,OAAO,CAAG;IAAG,CAAC;IAEjC,EAAE,CAAwB,iBAA6B;QACtD,OAAO,IAAI,GAAG,CACb,CAAC,OAAO,iBAAiB,KAAK,QAAQ,CAAC;YACtC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAM;YAC/C,CAAC,CAAC,iBAAiB,CACpB,CAAA;IACF,CAAC;IAED,OAAO,CAAkC,QAAgB;QACxD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,GAAG,CAAC,CAAA;QAC1D,OAAO,CAAC,CAAA;IACT,CAAC;IAED,KAAK,CAAkC,QAAgB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,GAAG,CAAkC,QAAgB;QACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAI,QAAQ,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,CAAC,GAAG,OAAkB;QAC3B,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAqB,CAAC,CAAA;IACnD,CAAC;IAED,KAAK;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,OAAsB,CAAC,CAAA;IAC1C,CAAC;CACD;AAID,MAAM,UAAU,GAAG,CAAsB,iBAA6B;IACrE,OAAO,CAAC,OAAO,iBAAiB,KAAK,QAAQ,CAAC;QAC7C,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAM;QAC3C,CAAC,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;AAC7B,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACnC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE3B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;AACjB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;AACvB,GAAG,CAAC,MAAM,GAAG,CAAC,SAAqB,EAAE,GAAG,OAAkB,EAAE,EAAE;IAC7D,OAAO,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AAClC,CAAC,CAAA"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../s/dom/dom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type EveFn = (event: any) => void;
2
+ export type EveConfig = [options: AddEventListenerOptions, fn: EveFn];
3
+ export type EveHandler = EveFn | EveConfig;
4
+ export type EveSpec = {
5
+ [eventName: string]: EveHandler;
6
+ };
7
+ export declare function eve(target: EventTarget, events: EveSpec): () => void;
@@ -0,0 +1,16 @@
1
+ export function eve(target, events) {
2
+ let detachers = [];
3
+ for (const [eventName, handler] of Object.entries(events)) {
4
+ if (typeof handler === "function") {
5
+ target.addEventListener(eventName, handler);
6
+ detachers.push(() => target.removeEventListener(eventName, handler));
7
+ }
8
+ else {
9
+ const [options, fn] = handler;
10
+ target.addEventListener(eventName, fn, options);
11
+ detachers.push(() => target.removeEventListener(eventName, fn));
12
+ }
13
+ }
14
+ return () => detachers.forEach(d => d());
15
+ }
16
+ //# sourceMappingURL=eve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eve.js","sourceRoot":"","sources":["../../../s/dom/parts/eve.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,MAAe;IACvD,IAAI,SAAS,GAAmB,EAAE,CAAA;IAElC,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QACrE,CAAC;aACI,CAAC;YACL,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAA;YAC7B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAC/C,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;QAChE,CAAC;IACF,CAAC;IAED,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;AACzC,CAAC"}
package/x/index.html CHANGED
@@ -111,7 +111,7 @@ body {
111
111
  }
112
112
 
113
113
  </style>
114
- <script type=module src="demo/demo.bundle.min.js?v=8e64d0bab089"></script>
114
+ <script type=module src="demo/demo.bundle.min.js?v=d83c20a51b3b"></script>
115
115
  <link rel="icon" href="assets/favicon.png?v=4dc161ed79b3"/>
116
116
 
117
117
  <meta name="theme-color" content="#95ff7b">
@@ -131,7 +131,7 @@ body {
131
131
  <img class=icon alt="" src="/assets/favicon.png"/>
132
132
  <h1>sly testing page</h1>
133
133
  <p><a href="https://github.com/e280/sly">github.com/e280/sly</a></p>
134
- <p class=lil>v0.2.0-14</p>
134
+ <p class=lil>v0.2.0-15</p>
135
135
 
136
136
  <fastcount-element></fastcount-element>
137
137
  <counter-component start=280 step=2>component</counter-component>