@substrate-system/blur-hash 0.0.1 → 0.0.3

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.d.ts CHANGED
@@ -1,10 +1,402 @@
1
+ import { WebComponent } from '@substrate-system/web-component';
1
2
  declare global {
2
3
  interface HTMLElementTagNameMap {
3
4
  'blur-hash': BlurHash;
4
5
  }
5
6
  }
6
- export declare class BlurHash extends HTMLElement {
7
+ declare const BlurHash_base: {
8
+ new (): {
9
+ NAME: string;
10
+ render(): void;
11
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): Promise<void>;
12
+ connectedCallback(): void;
13
+ qs<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
14
+ qs<E extends Element = Element>(selector: string): E | null;
15
+ qsa<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
16
+ qsa<E extends Element = Element>(selector: string): E | null;
17
+ emit<T = any>(type: string, opts?: Partial<{
18
+ bubbles: boolean;
19
+ cancelable: boolean;
20
+ detail: CustomEvent<T>["detail"];
21
+ }>): boolean;
22
+ dispatch<T>(type: string, opts?: Partial<{
23
+ bubbles: boolean;
24
+ cancelable: boolean;
25
+ detail: CustomEvent<T>["detail"];
26
+ }>): boolean;
27
+ accessKey: string;
28
+ readonly accessKeyLabel: string;
29
+ autocapitalize: string;
30
+ dir: string;
31
+ draggable: boolean;
32
+ hidden: boolean;
33
+ inert: boolean;
34
+ innerText: string;
35
+ lang: string;
36
+ readonly offsetHeight: number;
37
+ readonly offsetLeft: number;
38
+ readonly offsetParent: Element | null;
39
+ readonly offsetTop: number;
40
+ readonly offsetWidth: number;
41
+ outerText: string;
42
+ popover: string | null;
43
+ spellcheck: boolean;
44
+ title: string;
45
+ translate: boolean;
46
+ writingSuggestions: string;
47
+ attachInternals(): ElementInternals;
48
+ click(): void;
49
+ hidePopover(): void;
50
+ showPopover(): void;
51
+ togglePopover(options?: boolean): boolean;
52
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
53
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
54
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
55
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
56
+ readonly attributes: NamedNodeMap;
57
+ get classList(): DOMTokenList;
58
+ set classList(value: string): any;
59
+ className: string;
60
+ readonly clientHeight: number;
61
+ readonly clientLeft: number;
62
+ readonly clientTop: number;
63
+ readonly clientWidth: number;
64
+ readonly currentCSSZoom: number;
65
+ id: string;
66
+ innerHTML: string;
67
+ readonly localName: string;
68
+ readonly namespaceURI: string | null;
69
+ onfullscreenchange: ((this: Element, ev: Event) => any) | null;
70
+ onfullscreenerror: ((this: Element, ev: Event) => any) | null;
71
+ outerHTML: string;
72
+ readonly ownerDocument: Document;
73
+ get part(): DOMTokenList;
74
+ set part(value: string): any;
75
+ readonly prefix: string | null;
76
+ readonly scrollHeight: number;
77
+ scrollLeft: number;
78
+ scrollTop: number;
79
+ readonly scrollWidth: number;
80
+ readonly shadowRoot: ShadowRoot | null;
81
+ slot: string;
82
+ readonly tagName: string;
83
+ attachShadow(init: ShadowRootInit): ShadowRoot;
84
+ checkVisibility(options?: CheckVisibilityOptions): boolean;
85
+ closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
86
+ closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
87
+ closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
88
+ closest<E extends Element = Element>(selectors: string): E | null;
89
+ computedStyleMap(): StylePropertyMapReadOnly;
90
+ getAttribute(qualifiedName: string): string | null;
91
+ getAttributeNS(namespace: string | null, localName: string): string | null;
92
+ getAttributeNames(): string[];
93
+ getAttributeNode(qualifiedName: string): Attr | null;
94
+ getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
95
+ getBoundingClientRect(): DOMRect;
96
+ getClientRects(): DOMRectList;
97
+ getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
98
+ getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
99
+ getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
100
+ getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
101
+ getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
102
+ getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
103
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
104
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
105
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
106
+ getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
107
+ getHTML(options?: GetHTMLOptions): string;
108
+ hasAttribute(qualifiedName: string): boolean;
109
+ hasAttributeNS(namespace: string | null, localName: string): boolean;
110
+ hasAttributes(): boolean;
111
+ hasPointerCapture(pointerId: number): boolean;
112
+ insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
113
+ insertAdjacentHTML(position: InsertPosition, string: string): void;
114
+ insertAdjacentText(where: InsertPosition, data: string): void;
115
+ matches(selectors: string): boolean;
116
+ releasePointerCapture(pointerId: number): void;
117
+ removeAttribute(qualifiedName: string): void;
118
+ removeAttributeNS(namespace: string | null, localName: string): void;
119
+ removeAttributeNode(attr: Attr): Attr;
120
+ requestFullscreen(options?: FullscreenOptions): Promise<void>;
121
+ requestPointerLock(options?: PointerLockOptions): Promise<void>;
122
+ scroll(options?: ScrollToOptions): void;
123
+ scroll(x: number, y: number): void;
124
+ scrollBy(options?: ScrollToOptions): void;
125
+ scrollBy(x: number, y: number): void;
126
+ scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
127
+ scrollTo(options?: ScrollToOptions): void;
128
+ scrollTo(x: number, y: number): void;
129
+ setAttribute(qualifiedName: string, value: string): void;
130
+ setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
131
+ setAttributeNode(attr: Attr): Attr | null;
132
+ setAttributeNodeNS(attr: Attr): Attr | null;
133
+ setHTMLUnsafe(html: string): void;
134
+ setPointerCapture(pointerId: number): void;
135
+ toggleAttribute(qualifiedName: string, force?: boolean): boolean;
136
+ webkitMatchesSelector(selectors: string): boolean;
137
+ readonly baseURI: string;
138
+ readonly childNodes: NodeListOf<ChildNode>;
139
+ readonly firstChild: ChildNode | null;
140
+ readonly isConnected: boolean;
141
+ readonly lastChild: ChildNode | null;
142
+ readonly nextSibling: ChildNode | null;
143
+ readonly nodeName: string;
144
+ readonly nodeType: number;
145
+ nodeValue: string | null;
146
+ readonly parentElement: HTMLElement | null;
147
+ readonly parentNode: ParentNode | null;
148
+ readonly previousSibling: ChildNode | null;
149
+ textContent: string | null;
150
+ appendChild<T extends Node>(node: T): T;
151
+ cloneNode(subtree?: boolean): Node;
152
+ compareDocumentPosition(other: Node): number;
153
+ contains(other: Node | null): boolean;
154
+ getRootNode(options?: GetRootNodeOptions): Node;
155
+ hasChildNodes(): boolean;
156
+ insertBefore<T extends Node>(node: T, child: Node | null): T;
157
+ isDefaultNamespace(namespace: string | null): boolean;
158
+ isEqualNode(otherNode: Node | null): boolean;
159
+ isSameNode(otherNode: Node | null): boolean;
160
+ lookupNamespaceURI(prefix: string | null): string | null;
161
+ lookupPrefix(namespace: string | null): string | null;
162
+ normalize(): void;
163
+ removeChild<T extends Node>(child: T): T;
164
+ replaceChild<T extends Node>(node: Node, child: T): T;
165
+ readonly ELEMENT_NODE: 1;
166
+ readonly ATTRIBUTE_NODE: 2;
167
+ readonly TEXT_NODE: 3;
168
+ readonly CDATA_SECTION_NODE: 4;
169
+ readonly ENTITY_REFERENCE_NODE: 5;
170
+ readonly ENTITY_NODE: 6;
171
+ readonly PROCESSING_INSTRUCTION_NODE: 7;
172
+ readonly COMMENT_NODE: 8;
173
+ readonly DOCUMENT_NODE: 9;
174
+ readonly DOCUMENT_TYPE_NODE: 10;
175
+ readonly DOCUMENT_FRAGMENT_NODE: 11;
176
+ readonly NOTATION_NODE: 12;
177
+ readonly DOCUMENT_POSITION_DISCONNECTED: 1;
178
+ readonly DOCUMENT_POSITION_PRECEDING: 2;
179
+ readonly DOCUMENT_POSITION_FOLLOWING: 4;
180
+ readonly DOCUMENT_POSITION_CONTAINS: 8;
181
+ readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
182
+ readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
183
+ dispatchEvent(event: Event): boolean;
184
+ dispatchEvent(event: Event): boolean;
185
+ ariaAtomic: string | null;
186
+ ariaAutoComplete: string | null;
187
+ ariaBrailleLabel: string | null;
188
+ ariaBrailleRoleDescription: string | null;
189
+ ariaBusy: string | null;
190
+ ariaChecked: string | null;
191
+ ariaColCount: string | null;
192
+ ariaColIndex: string | null;
193
+ ariaColIndexText: string | null;
194
+ ariaColSpan: string | null;
195
+ ariaCurrent: string | null;
196
+ ariaDescription: string | null;
197
+ ariaDisabled: string | null;
198
+ ariaExpanded: string | null;
199
+ ariaHasPopup: string | null;
200
+ ariaHidden: string | null;
201
+ ariaInvalid: string | null;
202
+ ariaKeyShortcuts: string | null;
203
+ ariaLabel: string | null;
204
+ ariaLevel: string | null;
205
+ ariaLive: string | null;
206
+ ariaModal: string | null;
207
+ ariaMultiLine: string | null;
208
+ ariaMultiSelectable: string | null;
209
+ ariaOrientation: string | null;
210
+ ariaPlaceholder: string | null;
211
+ ariaPosInSet: string | null;
212
+ ariaPressed: string | null;
213
+ ariaReadOnly: string | null;
214
+ ariaRelevant: string | null;
215
+ ariaRequired: string | null;
216
+ ariaRoleDescription: string | null;
217
+ ariaRowCount: string | null;
218
+ ariaRowIndex: string | null;
219
+ ariaRowIndexText: string | null;
220
+ ariaRowSpan: string | null;
221
+ ariaSelected: string | null;
222
+ ariaSetSize: string | null;
223
+ ariaSort: string | null;
224
+ ariaValueMax: string | null;
225
+ ariaValueMin: string | null;
226
+ ariaValueNow: string | null;
227
+ ariaValueText: string | null;
228
+ role: string | null;
229
+ animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
230
+ getAnimations(options?: GetAnimationsOptions): Animation[];
231
+ after(...nodes: (Node | string)[]): void;
232
+ before(...nodes: (Node | string)[]): void;
233
+ remove(): void;
234
+ replaceWith(...nodes: (Node | string)[]): void;
235
+ readonly nextElementSibling: Element | null;
236
+ readonly previousElementSibling: Element | null;
237
+ readonly childElementCount: number;
238
+ readonly children: HTMLCollection;
239
+ readonly firstElementChild: Element | null;
240
+ readonly lastElementChild: Element | null;
241
+ append(...nodes: (Node | string)[]): void;
242
+ prepend(...nodes: (Node | string)[]): void;
243
+ querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
244
+ querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
245
+ querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
246
+ querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
247
+ querySelector<E extends Element = Element>(selectors: string): E | null;
248
+ querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
249
+ querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
250
+ querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
251
+ querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
252
+ querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
253
+ replaceChildren(...nodes: (Node | string)[]): void;
254
+ readonly assignedSlot: HTMLSlotElement | null;
255
+ readonly attributeStyleMap: StylePropertyMap;
256
+ get style(): CSSStyleDeclaration;
257
+ set style(cssText: string): any;
258
+ contentEditable: string;
259
+ enterKeyHint: string;
260
+ inputMode: string;
261
+ readonly isContentEditable: boolean;
262
+ onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
263
+ onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
264
+ onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
265
+ onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
266
+ onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
267
+ onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
268
+ onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
269
+ onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
270
+ onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
271
+ oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
272
+ oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
273
+ oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
274
+ onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
275
+ onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
276
+ onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
277
+ oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
278
+ oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
279
+ oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
280
+ oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
281
+ oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
282
+ oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
283
+ ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
284
+ ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
285
+ ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
286
+ ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
287
+ ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
288
+ ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
289
+ ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
290
+ ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
291
+ ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
292
+ onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
293
+ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
294
+ onerror: OnErrorEventHandler;
295
+ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
296
+ onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
297
+ ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
298
+ oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
299
+ oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
300
+ onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
301
+ onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
302
+ onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
303
+ onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
304
+ onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
305
+ onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
306
+ onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
307
+ onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
308
+ onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
309
+ onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
310
+ onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
311
+ onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
312
+ onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
313
+ onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
314
+ onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
315
+ onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
316
+ onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
317
+ onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
318
+ onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
319
+ onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
320
+ onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
321
+ onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
322
+ onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
323
+ onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
324
+ onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
325
+ onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
326
+ onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
327
+ onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
328
+ onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
329
+ onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
330
+ onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
331
+ onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
332
+ onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
333
+ onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
334
+ onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
335
+ onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
336
+ onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
337
+ onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
338
+ onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
339
+ onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
340
+ onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
341
+ onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
342
+ onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
343
+ ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
344
+ ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
345
+ ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
346
+ ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
347
+ ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
348
+ ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
349
+ ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
350
+ ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
351
+ ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
352
+ ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
353
+ onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
354
+ onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
355
+ onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
356
+ onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
357
+ onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
358
+ onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
359
+ onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
360
+ autofocus: boolean;
361
+ readonly dataset: DOMStringMap;
362
+ nonce?: string;
363
+ tabIndex: number;
364
+ blur(): void;
365
+ focus(options?: FocusOptions): void;
366
+ };
367
+ NAME: string;
368
+ create(elementName: string): any;
369
+ define<T extends {
370
+ new (...args: any[]): WebComponent;
371
+ NAME: string;
372
+ }>(this: T): void;
373
+ event(evType: string): string;
374
+ };
375
+ export declare class BlurHash extends BlurHash_base {
376
+ time: number;
7
377
  constructor();
378
+ /**
379
+ * Change the image, and do the blur-up thing again.
380
+ */
381
+ reset(newSrc: string, alt: string, placeholder: string, newSrcset?: string | null, newSizes?: string | null, attrs?: Partial<{
382
+ srcset: string | null;
383
+ width: string | null;
384
+ height: string | null;
385
+ time: number | null;
386
+ }>): void;
8
387
  connectedCallback(): void;
388
+ static html(attrs: {
389
+ alt: string;
390
+ srcset?: string | null;
391
+ w?: string | null;
392
+ h?: string | null;
393
+ time?: number;
394
+ contentVisibility?: 'visible' | 'auto' | 'hidden' | null;
395
+ decoding?: 'sync' | 'async' | 'auto' | null;
396
+ loading?: 'lazy' | 'eager' | 'auto' | null;
397
+ src: string;
398
+ }): string;
399
+ render(): string;
9
400
  }
401
+ export {};
10
402
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,WAAW,EAAE,QAAQ,CAAA;KACxB;CACJ;AAED,qBAAa,QAAS,SAAQ,WAAW;;IA2BrC,iBAAiB;CA0BpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAI9D,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,WAAW,EAAE,QAAQ,CAAA;KACxB;CACJ;;;;;;;;;;;wCA8CO,CAAR;;;;;sCASiD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA6B1C,CAAA;gJAGA,CAAN;4FAIM,CAAJ;mJAKiB,CAAC;+FAQd,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA4CA,CAAJ;;;;;;;;;;;;;;;;;;;;;;;uBAOy/D,CAAC,EAAC,cAAe;;;;;;;;;;;;;iCAAg0B,CAAC;kCAA2E,CAAC,EAAC,kBAAmB;sBAA4C,CAAC;;wBAAsG,CAAC;;0BAA0G,CAAC;wBAAsE,CAAC;;;;;;;;oDAAmgB,CAAC;;;;;;;;;;;;;;;;yBAAwwB,CAAC;;;2BAA8J,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAAu4G,CAAC;6BAAkF,CAAC;cAAwD,GAAG;eAAoD,GAAG;;oBAAqF,GAAG;;;;;;;eAAwX,GAAG;gBAAqD,GAAG;;;;;;;;;;;wBAAmsC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAA4tO,CAAC;kBAAiG,CAAC;mBAAkG,CAAC;oBAAmG,CAAC;;;;;;;;;;;;;;aAA+oC,CAAC;;;qBAA2F,CAAC;;;;;aAAyJ,GAAG;;;;;AAzJ70lB,qBAAa,QAAS,SAAQ,aAAgC;IAC1D,IAAI,EAAC,MAAM,CAAA;;IAiBX;;OAEG;IACH,KAAK,CACD,MAAM,EAAC,MAAM,EACb,GAAG,EAAC,MAAM,EACV,WAAW,EAAC,MAAM,EAClB,SAAS,CAAC,EAAC,MAAM,GAAC,IAAI,EACtB,QAAQ,CAAC,EAAC,MAAM,GAAC,IAAI,EACrB,KAAK,GAAC,OAAO,CAAC;QACV,MAAM,EAAC,MAAM,GAAC,IAAI,CAAC;QACnB,KAAK,EAAC,MAAM,GAAC,IAAI,CAAC;QAClB,MAAM,EAAC,MAAM,GAAC,IAAI,CAAC;QACnB,IAAI,EAAC,MAAM,GAAC,IAAI,CAAC;KACpB,CAAM,GACT,IAAI;IAwCN,iBAAiB;IAyBjB,MAAM,CAAC,IAAI,CAAE,KAAK,EAAC;QACf,GAAG,EAAC,MAAM,CAAC;QACX,MAAM,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC;QACpB,CAAC,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC;QACf,CAAC,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC;QACf,IAAI,CAAC,EAAC,MAAM,CAAC;QACb,iBAAiB,CAAC,EAAC,SAAS,GAAC,MAAM,GAAC,QAAQ,GAAC,IAAI,CAAC;QAClD,QAAQ,CAAC,EAAC,MAAM,GAAC,OAAO,GAAC,MAAM,GAAC,IAAI,CAAC;QACrC,OAAO,CAAC,EAAC,MAAM,GAAC,OAAO,GAAC,MAAM,GAAC,IAAI,CAAC;QACpC,GAAG,EAAC,MAAM,CAAC;KACd;IA6BD,MAAM,IAAI,MAAM;CAanB"}
package/dist/index.js CHANGED
@@ -1,36 +1,56 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { WebComponent } from "@substrate-system/web-component";
3
4
  import { decode } from "blurhash";
4
- import { createDebug } from "@bicycle-codes/debug";
5
- const debug = createDebug();
6
- class BlurHash extends HTMLElement {
5
+ class BlurHash extends WebComponent.create("blur-hash") {
7
6
  static {
8
7
  __name(this, "BlurHash");
9
8
  }
9
+ time;
10
10
  constructor() {
11
11
  super();
12
- const srcset = this.getAttribute("srcset");
13
- const placeholder = this.getAttribute("placeholder");
14
- if (!placeholder) throw new Error("not placeholder");
12
+ const w = this.getAttribute("width");
13
+ const h = this.getAttribute("height");
14
+ const time = this.getAttribute("time");
15
+ this.time = time ? parseInt(time) : 800;
16
+ this.style.width = "" + w;
17
+ this.style.height = "" + h;
15
18
  document.body.style.setProperty(
16
19
  "--blur-hash-time",
17
- this.getAttribute("time") || "0.6s"
20
+ time ? "." + (parseInt(time) / 1e3 + "s") : "0.8s"
18
21
  );
19
- this.innerHTML = `<canvas
20
- class="blurry"
21
- width=${this.getAttribute("width")}
22
- height=${this.getAttribute("height")}
23
- ></canvas>
24
- <img class="blurry"
25
- ${srcset ? `srcset="${srcset}"` : ""}
26
- alt="${this.getAttribute("alt")}"
27
- content-visibility="${this.getAttribute("content-visibility") || "auto"}"
28
- decoding="${this.getAttribute("decoding") || "async"}"
29
- loading="${this.getAttribute("loading") || "lazy"}"
30
- class="image-element blurry"
31
- src="${this.getAttribute("src")}"
32
- />
33
- `;
22
+ }
23
+ /**
24
+ * Change the image, and do the blur-up thing again.
25
+ */
26
+ reset(newSrc, alt, placeholder, newSrcset, newSizes, attrs = {}) {
27
+ if (attrs.width) this.style.width = attrs.width;
28
+ if (attrs.height) this.style.height = attrs.height;
29
+ const width = attrs.width ? parseInt(attrs.width) : parseInt(this.style.width);
30
+ const height = attrs.height ? parseInt(attrs.height) : parseInt(this.style.height);
31
+ this.innerHTML = BlurHash.html({
32
+ srcset: attrs.srcset,
33
+ w: "" + width,
34
+ h: "" + height,
35
+ src: newSrc,
36
+ alt
37
+ });
38
+ const pixels = decode(placeholder, width, height);
39
+ const canvas = this.querySelector("canvas");
40
+ const ctx = canvas.getContext("2d");
41
+ const imageData = ctx.createImageData(width, height);
42
+ imageData.data.set(pixels);
43
+ ctx.putImageData(imageData, 0, 0);
44
+ this.setAttribute("src", newSrc);
45
+ this.setAttribute("placeholder", placeholder);
46
+ const img = this.querySelector("img");
47
+ if (newSrcset) img.setAttribute("srcset", newSrcset);
48
+ if (newSizes) img.setAttribute("sizes", newSizes);
49
+ img.addEventListener("load", () => {
50
+ canvas.style.display = "none";
51
+ img.classList.remove("blurry");
52
+ img.classList.add("sharp");
53
+ });
34
54
  }
35
55
  connectedCallback() {
36
56
  const width = parseInt(this.getAttribute("width") ?? "");
@@ -39,6 +59,7 @@ class BlurHash extends HTMLElement {
39
59
  if (!placeholder || !width || !height) {
40
60
  throw new Error("Missing attributes");
41
61
  }
62
+ this.innerHTML = this.render();
42
63
  const pixels = decode(placeholder, width, height);
43
64
  const canvas = this.querySelector("canvas");
44
65
  const ctx = canvas.getContext("2d");
@@ -47,12 +68,49 @@ class BlurHash extends HTMLElement {
47
68
  ctx.putImageData(imageData, 0, 0);
48
69
  const img = this.querySelector("img");
49
70
  img.addEventListener("load", () => {
50
- debug("loaded");
51
71
  canvas.style.display = "none";
52
72
  img.classList.remove("blurry");
53
73
  img.classList.add("sharp");
54
74
  });
55
- debug("the image", img);
75
+ }
76
+ static html(attrs) {
77
+ const {
78
+ srcset,
79
+ w,
80
+ h,
81
+ alt,
82
+ contentVisibility,
83
+ decoding,
84
+ loading,
85
+ src
86
+ } = attrs;
87
+ return `<canvas
88
+ class="blurry"
89
+ width=${w}
90
+ height=${h}
91
+ ></canvas>
92
+
93
+ <img class="blurry"
94
+ ${srcset ? `srcset="${srcset}"` : ""}
95
+ alt="${alt}"
96
+ content-visibility="${contentVisibility || "auto"}"
97
+ decoding="${decoding || "async"}"
98
+ loading="${loading || "lazy"}"
99
+ class="image-element blurry"
100
+ src="${src}"
101
+ />`;
102
+ }
103
+ render() {
104
+ const srcset = this.getAttribute("srcset");
105
+ const w = this.getAttribute("width");
106
+ const h = this.getAttribute("height");
107
+ const time = this.getAttribute("time");
108
+ this.time = time ? parseInt(time) : 800;
109
+ const src = this.getAttribute("src");
110
+ const alt = this.getAttribute("alt");
111
+ if (!src) throw new Error("Not src");
112
+ if (!alt) throw new Error("Not alt");
113
+ return BlurHash.html({ srcset, w, h, src, alt });
56
114
  }
57
115
  }
58
116
  customElements.define("blur-hash", BlurHash);
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["import { decode } from 'blurhash'\nimport { createDebug } from '@bicycle-codes/debug'\nconst debug = createDebug()\n\n// for docuement.querySelector\ndeclare global {\n interface HTMLElementTagNameMap {\n 'blur-hash': BlurHash\n }\n}\n\nexport class BlurHash extends HTMLElement {\n constructor () {\n super()\n const srcset = this.getAttribute('srcset')\n const placeholder = this.getAttribute('placeholder')\n if (!placeholder) throw new Error('not placeholder')\n\n document.body.style.setProperty('--blur-hash-time',\n this.getAttribute('time') || '0.6s')\n\n this.innerHTML = `<canvas\n class=\"blurry\"\n width=${this.getAttribute('width')}\n height=${this.getAttribute('height')}\n ></canvas>\n <img class=\"blurry\"\n ${srcset ? `srcset=\"${srcset}\"` : ''}\n alt=\"${this.getAttribute('alt')}\"\n content-visibility=\"${this.getAttribute('content-visibility') || 'auto'}\"\n decoding=\"${this.getAttribute('decoding') || 'async'}\"\n loading=\"${this.getAttribute('loading') || 'lazy'}\"\n class=\"image-element blurry\"\n src=\"${this.getAttribute('src')}\"\n />\n `\n }\n\n connectedCallback () {\n const width = parseInt(this.getAttribute('width') ?? '')\n const height = parseInt(this.getAttribute('height') ?? '')\n const placeholder = this.getAttribute('placeholder')\n if (!placeholder || !width || !height) {\n throw new Error('Missing attributes')\n }\n\n const pixels = decode(placeholder, width, height)\n const canvas = this.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d')!\n const imageData = ctx.createImageData(width, height)\n imageData.data.set(pixels)\n ctx.putImageData(imageData, 0, 0)\n\n const img = this.querySelector('img')!\n\n img.addEventListener('load', () => {\n debug('loaded')\n canvas.style.display = 'none'\n img.classList.remove('blurry')\n img.classList.add('sharp')\n })\n\n debug('the image', img)\n }\n}\n\ncustomElements.define('blur-hash', BlurHash)\n"],
5
- "mappings": ";;AAAA,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAC5B,MAAM,QAAQ,YAAY;AASnB,MAAM,iBAAiB,YAAY;AAAA,EAX1C,OAW0C;AAAA;AAAA;AAAA,EACtC,cAAe;AACX,UAAM;AACN,UAAM,SAAS,KAAK,aAAa,QAAQ;AACzC,UAAM,cAAc,KAAK,aAAa,aAAa;AACnD,QAAI,CAAC,YAAa,OAAM,IAAI,MAAM,iBAAiB;AAEnD,aAAS,KAAK,MAAM;AAAA,MAAY;AAAA,MAC5B,KAAK,aAAa,MAAM,KAAK;AAAA,IAAM;AAEvC,SAAK,YAAY;AAAA;AAAA,oBAEL,KAAK,aAAa,OAAO,CAAC;AAAA,qBACzB,KAAK,aAAa,QAAQ,CAAC;AAAA;AAAA;AAAA,cAGlC,SAAS,WAAW,MAAM,MAAM,EAAE;AAAA,mBAC7B,KAAK,aAAa,KAAK,CAAC;AAAA,kCACT,KAAK,aAAa,oBAAoB,KAAK,MAAM;AAAA,wBAC3D,KAAK,aAAa,UAAU,KAAK,OAAO;AAAA,uBACzC,KAAK,aAAa,SAAS,KAAK,MAAM;AAAA;AAAA,mBAE1C,KAAK,aAAa,KAAK,CAAC;AAAA;AAAA;AAAA,EAGvC;AAAA,EAEA,oBAAqB;AACjB,UAAM,QAAQ,SAAS,KAAK,aAAa,OAAO,KAAK,EAAE;AACvD,UAAM,SAAS,SAAS,KAAK,aAAa,QAAQ,KAAK,EAAE;AACzD,UAAM,cAAc,KAAK,aAAa,aAAa;AACnD,QAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ;AACnC,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAEA,UAAM,SAAS,OAAO,aAAa,OAAO,MAAM;AAChD,UAAM,SAAS,KAAK,cAAc,QAAQ;AAC1C,UAAM,MAAM,OAAO,WAAW,IAAI;AAClC,UAAM,YAAY,IAAI,gBAAgB,OAAO,MAAM;AACnD,cAAU,KAAK,IAAI,MAAM;AACzB,QAAI,aAAa,WAAW,GAAG,CAAC;AAEhC,UAAM,MAAM,KAAK,cAAc,KAAK;AAEpC,QAAI,iBAAiB,QAAQ,MAAM;AAC/B,YAAM,QAAQ;AACd,aAAO,MAAM,UAAU;AACvB,UAAI,UAAU,OAAO,QAAQ;AAC7B,UAAI,UAAU,IAAI,OAAO;AAAA,IAC7B,CAAC;AAED,UAAM,aAAa,GAAG;AAAA,EAC1B;AACJ;AAEA,eAAe,OAAO,aAAa,QAAQ;",
4
+ "sourcesContent": ["import { WebComponent } from '@substrate-system/web-component'\nimport { decode } from 'blurhash'\n\n// for docuement.querySelector\ndeclare global {\n interface HTMLElementTagNameMap {\n 'blur-hash': BlurHash\n }\n}\n\nexport class BlurHash extends WebComponent.create('blur-hash') {\n time:number\n\n constructor () {\n super()\n // const srcset = this.getAttribute('srcset')\n const w = this.getAttribute('width')\n const h = this.getAttribute('height')\n const time = this.getAttribute('time')\n this.time = time ? parseInt(time) : 800\n\n this.style.width = '' + w\n this.style.height = '' + h\n\n document.body.style.setProperty('--blur-hash-time',\n time ? '.' + (parseInt(time) / 1000 + 's') : '0.8s')\n }\n\n /**\n * Change the image, and do the blur-up thing again.\n */\n reset (\n newSrc:string,\n alt:string,\n placeholder:string,\n newSrcset?:string|null,\n newSizes?:string|null,\n attrs:Partial<{\n srcset:string|null;\n width:string|null;\n height:string|null;\n time:number|null;\n }> = {}\n ):void {\n if (attrs.width) this.style.width = attrs.width\n if (attrs.height) this.style.height = attrs.height\n\n const width = (attrs.width ?\n parseInt(attrs.width) :\n parseInt(this.style.width))\n const height = (attrs.height ?\n parseInt(attrs.height) :\n parseInt(this.style.height))\n\n this.innerHTML = BlurHash.html({\n srcset: attrs.srcset,\n w: '' + width,\n h: '' + height,\n src: newSrc,\n alt\n })\n\n const pixels = decode(placeholder, width, height)\n const canvas = this.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d')!\n const imageData = ctx.createImageData(width, height)\n imageData.data.set(pixels)\n ctx.putImageData(imageData, 0, 0)\n\n this.setAttribute('src', newSrc)\n this.setAttribute('placeholder', placeholder)\n\n const img = this.querySelector('img')!\n if (newSrcset) img.setAttribute('srcset', newSrcset)\n if (newSizes) img.setAttribute('sizes', newSizes)\n\n img.addEventListener('load', () => {\n canvas.style.display = 'none'\n img.classList.remove('blurry')\n img.classList.add('sharp')\n })\n }\n\n connectedCallback () {\n const width = parseInt(this.getAttribute('width') ?? '')\n const height = parseInt(this.getAttribute('height') ?? '')\n const placeholder = this.getAttribute('placeholder')\n if (!placeholder || !width || !height) {\n throw new Error('Missing attributes')\n }\n\n this.innerHTML = this.render()\n const pixels = decode(placeholder, width, height)\n const canvas = this.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d')!\n const imageData = ctx.createImageData(width, height)\n imageData.data.set(pixels)\n ctx.putImageData(imageData, 0, 0)\n\n const img = this.querySelector('img')!\n\n img.addEventListener('load', () => {\n canvas.style.display = 'none'\n img.classList.remove('blurry')\n img.classList.add('sharp')\n })\n }\n\n static html (attrs:{\n alt:string;\n srcset?:string|null;\n w?:string|null;\n h?:string|null;\n time?:number;\n contentVisibility?:'visible'|'auto'|'hidden'|null;\n decoding?:'sync'|'async'|'auto'|null;\n loading?:'lazy'|'eager'|'auto'|null;\n src:string;\n }) {\n const {\n srcset,\n w,\n h,\n alt,\n contentVisibility,\n decoding,\n loading,\n src\n } = attrs\n\n return `<canvas\n class=\"blurry\"\n width=${w}\n height=${h}\n ></canvas>\n\n <img class=\"blurry\"\n ${srcset ? `srcset=\"${srcset}\"` : ''}\n alt=\"${alt}\"\n content-visibility=\"${contentVisibility || 'auto'}\"\n decoding=\"${decoding || 'async'}\"\n loading=\"${loading || 'lazy'}\"\n class=\"image-element blurry\"\n src=\"${src}\"\n />`\n }\n\n render ():string {\n const srcset = this.getAttribute('srcset')\n const w = this.getAttribute('width')\n const h = this.getAttribute('height')\n const time = this.getAttribute('time')\n this.time = time ? parseInt(time) : 800\n const src = this.getAttribute('src')\n const alt = this.getAttribute('alt')\n if (!src) throw new Error('Not src')\n if (!alt) throw new Error('Not alt')\n\n return BlurHash.html({ srcset, w, h, src, alt })\n }\n}\n\ncustomElements.define('blur-hash', BlurHash)\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }