@bquery/bquery 1.0.2 → 1.1.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 +61 -7
- package/dist/component/index.d.ts +8 -0
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component.es.mjs +80 -53
- package/dist/component.es.mjs.map +1 -1
- package/dist/core/collection.d.ts +46 -0
- package/dist/core/collection.d.ts.map +1 -1
- package/dist/core/element.d.ts +124 -22
- package/dist/core/element.d.ts.map +1 -1
- package/dist/core/utils.d.ts +13 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core.es.mjs +298 -55
- package/dist/core.es.mjs.map +1 -1
- package/dist/full.d.ts +2 -2
- package/dist/full.d.ts.map +1 -1
- package/dist/full.es.mjs +38 -33
- package/dist/full.iife.js +1 -1
- package/dist/full.iife.js.map +1 -1
- package/dist/full.umd.js +1 -1
- package/dist/full.umd.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.es.mjs +38 -33
- package/dist/reactive/index.d.ts +2 -2
- package/dist/reactive/index.d.ts.map +1 -1
- package/dist/reactive/signal.d.ts +107 -0
- package/dist/reactive/signal.d.ts.map +1 -1
- package/dist/reactive.es.mjs +92 -55
- package/dist/reactive.es.mjs.map +1 -1
- package/dist/security/sanitize.d.ts.map +1 -1
- package/dist/security.es.mjs +136 -66
- package/dist/security.es.mjs.map +1 -1
- package/package.json +120 -120
- package/src/component/index.ts +414 -360
- package/src/core/collection.ts +454 -339
- package/src/core/element.ts +740 -493
- package/src/core/utils.ts +444 -425
- package/src/full.ts +106 -101
- package/src/index.ts +27 -27
- package/src/reactive/index.ts +22 -9
- package/src/reactive/signal.ts +506 -347
- package/src/security/sanitize.ts +553 -446
package/dist/core/element.d.ts
CHANGED
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wrapper for a single DOM element.
|
|
3
|
-
* Provides a chainable, jQuery-like API for DOM manipulation.
|
|
4
|
-
*
|
|
5
|
-
* This class encapsulates a DOM element and provides methods for:
|
|
6
|
-
* - Class manipulation (addClass, removeClass, toggleClass)
|
|
7
|
-
* - Attribute and property access (attr, prop, data)
|
|
8
|
-
* - Content manipulation (text, html, append, prepend)
|
|
9
|
-
* - Style manipulation (css)
|
|
10
|
-
* - Event handling (on, off, once, trigger)
|
|
11
|
-
* - DOM traversal (find, closest, parent, children, siblings)
|
|
12
|
-
*
|
|
13
|
-
* All mutating methods return `this` for method chaining.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```ts
|
|
17
|
-
* $('#button')
|
|
18
|
-
* .addClass('active')
|
|
19
|
-
* .css({ color: 'blue' })
|
|
20
|
-
* .on('click', () => console.log('clicked'));
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
1
|
export declare class BQueryElement {
|
|
24
2
|
private readonly element;
|
|
3
|
+
/**
|
|
4
|
+
* Stores delegated event handlers for cleanup via undelegate().
|
|
5
|
+
* Key format: `${event}:${selector}`
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
private readonly delegatedHandlers;
|
|
25
9
|
/**
|
|
26
10
|
* Creates a new BQueryElement wrapper.
|
|
27
11
|
* @param element - The DOM element to wrap
|
|
@@ -120,6 +104,58 @@ export declare class BQueryElement {
|
|
|
120
104
|
* @returns The instance for method chaining
|
|
121
105
|
*/
|
|
122
106
|
after(content: string | Element | Element[]): this;
|
|
107
|
+
/**
|
|
108
|
+
* Wraps the element with the specified wrapper element or tag.
|
|
109
|
+
*
|
|
110
|
+
* @param wrapper - Tag name string or Element to wrap with
|
|
111
|
+
* @returns The instance for method chaining
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```ts
|
|
115
|
+
* $('#content').wrap('div'); // Wraps with <div>
|
|
116
|
+
* $('#content').wrap(document.createElement('section'));
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
wrap(wrapper: string | Element): this;
|
|
120
|
+
/**
|
|
121
|
+
* Removes the parent element, keeping this element in its place.
|
|
122
|
+
* Essentially the opposite of wrap().
|
|
123
|
+
*
|
|
124
|
+
* @returns The instance for method chaining
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```ts
|
|
128
|
+
* // Before: <div><span id="text">Hello</span></div>
|
|
129
|
+
* $('#text').unwrap();
|
|
130
|
+
* // After: <span id="text">Hello</span>
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
unwrap(): this;
|
|
134
|
+
/**
|
|
135
|
+
* Replaces this element with new content.
|
|
136
|
+
*
|
|
137
|
+
* @param content - HTML string (sanitized) or Element to replace with
|
|
138
|
+
* @returns A new BQueryElement wrapping the replacement element
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* const newEl = $('#old').replaceWith('<div id="new">Replaced</div>');
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
replaceWith(content: string | Element): BQueryElement;
|
|
146
|
+
/**
|
|
147
|
+
* Scrolls the element into view with configurable behavior.
|
|
148
|
+
*
|
|
149
|
+
* @param options - ScrollIntoView options or boolean for legacy behavior
|
|
150
|
+
* @returns The instance for method chaining
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```ts
|
|
154
|
+
* $('#section').scrollTo(); // Smooth scroll
|
|
155
|
+
* $('#section').scrollTo({ behavior: 'instant', block: 'start' });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
scrollTo(options?: ScrollIntoViewOptions | boolean): this;
|
|
123
159
|
/**
|
|
124
160
|
* Removes the element from the DOM.
|
|
125
161
|
*
|
|
@@ -222,6 +258,46 @@ export declare class BQueryElement {
|
|
|
222
258
|
* @returns The instance for method chaining
|
|
223
259
|
*/
|
|
224
260
|
trigger(event: string, detail?: unknown): this;
|
|
261
|
+
/**
|
|
262
|
+
* Adds a delegated event listener that only triggers for matching descendants.
|
|
263
|
+
* More efficient than adding listeners to many elements individually.
|
|
264
|
+
*
|
|
265
|
+
* Use `undelegate()` to remove the listener later.
|
|
266
|
+
*
|
|
267
|
+
* @param event - Event type to listen for
|
|
268
|
+
* @param selector - CSS selector to match against event targets
|
|
269
|
+
* @param handler - Event handler function, receives the matched element as context
|
|
270
|
+
* @returns The instance for method chaining
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```ts
|
|
274
|
+
* // Instead of adding listeners to each button:
|
|
275
|
+
* const handler = (e, target) => console.log('Clicked:', target.textContent);
|
|
276
|
+
* $('#list').delegate('click', '.item', handler);
|
|
277
|
+
*
|
|
278
|
+
* // Later, remove the delegated listener:
|
|
279
|
+
* $('#list').undelegate('click', '.item', handler);
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
delegate(event: string, selector: string, handler: (event: Event, target: Element) => void): this;
|
|
283
|
+
/**
|
|
284
|
+
* Removes a delegated event listener previously added with `delegate()`.
|
|
285
|
+
*
|
|
286
|
+
* @param event - Event type that was registered
|
|
287
|
+
* @param selector - CSS selector that was used
|
|
288
|
+
* @param handler - The original handler function passed to delegate()
|
|
289
|
+
* @returns The instance for method chaining
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```ts
|
|
293
|
+
* const handler = (e, target) => console.log('Clicked:', target.textContent);
|
|
294
|
+
* $('#list').delegate('click', '.item', handler);
|
|
295
|
+
*
|
|
296
|
+
* // Remove the delegated listener:
|
|
297
|
+
* $('#list').undelegate('click', '.item', handler);
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
undelegate(event: string, selector: string, handler: (event: Event, target: Element) => void): this;
|
|
225
301
|
/**
|
|
226
302
|
* Checks if the element matches a CSS selector.
|
|
227
303
|
*
|
|
@@ -275,6 +351,32 @@ export declare class BQueryElement {
|
|
|
275
351
|
* @returns The current value when getting, or the instance when setting
|
|
276
352
|
*/
|
|
277
353
|
val(newValue?: string): string | this;
|
|
354
|
+
/**
|
|
355
|
+
* Serializes form data to a plain object.
|
|
356
|
+
* Only works on form elements; returns empty object for non-forms.
|
|
357
|
+
*
|
|
358
|
+
* @returns Object with form field names as keys and values
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* ```ts
|
|
362
|
+
* // For a form with <input name="email" value="test@example.com">
|
|
363
|
+
* const data = $('#myForm').serialize();
|
|
364
|
+
* // { email: 'test@example.com' }
|
|
365
|
+
* ```
|
|
366
|
+
*/
|
|
367
|
+
serialize(): Record<string, string | string[]>;
|
|
368
|
+
/**
|
|
369
|
+
* Serializes form data to a URL-encoded query string.
|
|
370
|
+
*
|
|
371
|
+
* @returns URL-encoded string suitable for form submission
|
|
372
|
+
*
|
|
373
|
+
* @example
|
|
374
|
+
* ```ts
|
|
375
|
+
* const queryString = $('#myForm').serializeString();
|
|
376
|
+
* // 'email=test%40example.com&name=John'
|
|
377
|
+
* ```
|
|
378
|
+
*/
|
|
379
|
+
serializeString(): string;
|
|
278
380
|
/**
|
|
279
381
|
* Gets the bounding client rectangle of the element.
|
|
280
382
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../src/core/element.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../src/core/element.ts"],"names":[],"mappings":"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"}
|
package/dist/core/utils.d.ts
CHANGED
|
@@ -42,8 +42,21 @@ export declare const utils: {
|
|
|
42
42
|
* );
|
|
43
43
|
* // Result: { a: 1, b: 2, nested: { x: 1, y: 2 } }
|
|
44
44
|
* ```
|
|
45
|
+
*
|
|
46
|
+
* @security This method is protected against prototype pollution attacks.
|
|
47
|
+
* Keys like `__proto__`, `constructor`, and `prototype` are ignored.
|
|
45
48
|
*/
|
|
46
49
|
merge<T extends Record<string, unknown>>(...sources: T[]): T;
|
|
50
|
+
/**
|
|
51
|
+
* Checks if a key could cause prototype pollution.
|
|
52
|
+
* These keys are dangerous when used in object merging operations.
|
|
53
|
+
*
|
|
54
|
+
* @param key - The key to check
|
|
55
|
+
* @returns True if the key is a prototype pollution vector
|
|
56
|
+
*
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
isPrototypePollutionKey(key: string): boolean;
|
|
47
60
|
/**
|
|
48
61
|
* Creates a debounced function that delays execution until after
|
|
49
62
|
* the specified delay has elapsed since the last call.
|
package/dist/core/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK;IAChB;;;;;;;;;;;;;;OAcG;UACG,CAAC,SAAS,CAAC,GAAG,CAAC;IAOrB
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK;IAChB;;;;;;;;;;;;;;OAcG;UACG,CAAC,SAAS,CAAC,GAAG,CAAC;IAOrB;;;;;;;;;;;;;;;;;;;;OAoBG;UACG,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IAoB5D;;;;;;;;OAQG;iCAC0B,MAAM,GAAG,OAAO;IAI7C;;;;;;;;;;;;;;;;;;;OAmBG;aACM,KAAK,SAAS,OAAO,EAAE,MAC1B,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI,WACnB,MAAM,GACd,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI;IAU3B;;;;;;;;;;;;;;;;OAgBG;aACM,KAAK,SAAS,OAAO,EAAE,MAC1B,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI,cAChB,MAAM,GACjB,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,IAAI;IAW3B;;;;;;;;;;OAUG;0BACqB,MAAM;IAI9B;;;;;OAKG;qBACc,OAAO,GAAG,KAAK,IAAI,OAAO;IAI3C;;;;;OAKG;wBACiB,OAAO,GAAG,KAAK,IAAI;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE;IAI9D;;;;;;;;;;;;;;;OAeG;mBACY,OAAO,GAAG,OAAO;IAQhC;;;;;OAKG;yBACkB,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI/D;;;;;OAKG;sBACe,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO;IAIpE;;;;;OAKG;oBACa,OAAO,GAAG,KAAK,IAAI,MAAM;IAIzC;;;;;OAKG;oBACa,OAAO,GAAG,KAAK,IAAI,MAAM;IAIzC;;;;;OAKG;qBACc,OAAO,GAAG,KAAK,IAAI,OAAO;IAI3C;;;;;;OAMG;YACK,CAAC,mBAAmB,OAAO,GAAG,KAAK,IAAI,CAAC,EAAE;IAIlD;;;;;;;;;;;;;OAaG;cACO,CAAC,QAAQ,MAAM,YAAY,CAAC,GAAG,CAAC;IAQ1C;;;;;;;;;;;;;;OAcG;SACE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAUzF;;;;;;;;;;;;;;OAcG;SACE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAQzF;;;;;;;;;;;OAWG;cACO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;;;;;;;;;OAWG;mBACY,MAAM,OAAO,MAAM,GAAG,MAAM;IAI3C;;;;;;;;;;;;;;OAcG;iBACU,MAAM,OAAO,MAAM,OAAO,MAAM,GAAG,MAAM;IAItD;;;;;;;;;;OAUG;oBACa,MAAM,GAAG,MAAM;IAK/B;;;;;;;;;;OAUG;qBACc,MAAM,GAAG,MAAM;IAOhC;;;;;;;;;;OAUG;qBACc,MAAM,GAAG,MAAM;CAKjC,CAAC"}
|