dphelper 3.7.1 → 3.7.2

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.
Files changed (61) hide show
  1. package/docs/README.md +385 -0
  2. package/docs/SUMMARY.md +83 -0
  3. package/docs/_config.yml +1 -0
  4. package/docs/markdown/ai.md +345 -0
  5. package/docs/markdown/anchor.md +156 -0
  6. package/docs/markdown/array.md +208 -0
  7. package/docs/markdown/audio.md +113 -0
  8. package/docs/markdown/avoid.md +53 -0
  9. package/docs/markdown/biometric.md +338 -0
  10. package/docs/markdown/browser.md +203 -0
  11. package/docs/markdown/check.md +65 -0
  12. package/docs/markdown/color.md +159 -0
  13. package/docs/markdown/compress.md +310 -0
  14. package/docs/markdown/cookie.md +115 -0
  15. package/docs/markdown/coords.md +127 -0
  16. package/docs/markdown/credits.md +56 -0
  17. package/docs/markdown/date.md +260 -0
  18. package/docs/markdown/disable.md +109 -0
  19. package/docs/markdown/dispatch.md +108 -0
  20. package/docs/markdown/element.md +53 -0
  21. package/docs/markdown/event.md +85 -0
  22. package/docs/markdown/fetch.md +122 -0
  23. package/docs/markdown/form.md +302 -0
  24. package/docs/markdown/format.md +122 -0
  25. package/docs/markdown/i18n.md +292 -0
  26. package/docs/markdown/image.md +298 -0
  27. package/docs/markdown/json.md +269 -0
  28. package/docs/markdown/load.md +133 -0
  29. package/docs/markdown/logging.md +99 -0
  30. package/docs/markdown/math.md +172 -0
  31. package/docs/markdown/memory.md +85 -0
  32. package/docs/markdown/navigation.md +152 -0
  33. package/docs/markdown/net.md +60 -0
  34. package/docs/markdown/obj.md +242 -0
  35. package/docs/markdown/path.md +46 -0
  36. package/docs/markdown/promise.md +94 -0
  37. package/docs/markdown/sanitize.md +118 -0
  38. package/docs/markdown/screen.md +78 -0
  39. package/docs/markdown/scrollbar.md +82 -0
  40. package/docs/markdown/security.md +289 -0
  41. package/docs/markdown/shortcut.md +100 -0
  42. package/docs/markdown/socket.md +134 -0
  43. package/docs/markdown/sse.md +120 -0
  44. package/docs/markdown/svg.md +167 -0
  45. package/docs/markdown/sync.md +147 -0
  46. package/docs/markdown/system.md +78 -0
  47. package/docs/markdown/terminal.md +73 -0
  48. package/docs/markdown/text.md +245 -0
  49. package/docs/markdown/timer.md +98 -0
  50. package/docs/markdown/tools.md +111 -0
  51. package/docs/markdown/translators.md +65 -0
  52. package/docs/markdown/trigger.md +99 -0
  53. package/docs/markdown/triggers.md +133 -0
  54. package/docs/markdown/type.md +109 -0
  55. package/docs/markdown/types.md +102 -0
  56. package/docs/markdown/ui.md +45 -0
  57. package/docs/markdown/window.md +211 -0
  58. package/docs/markdown/worker.md +223 -0
  59. package/index.cjs +1 -1
  60. package/index.js +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,133 @@
1
+ # triggers
2
+
3
+ Custom event trigger system for application-wide event handling.
4
+
5
+ ## Functions
6
+
7
+ | Function | Description | Example |
8
+ |----------|-------------|---------|
9
+ | `add` | Add event listener | `dphelper.triggers.add(event, callback)` |
10
+ | `on` | Listen for event (alias for add) | `dphelper.triggers.on(event, callback)` |
11
+ | `emit` | Trigger an event with data | `dphelper.triggers.emit(event, data)` |
12
+ | `remove` | Remove all listeners for event | `dphelper.triggers.remove(event)` |
13
+ | `off` | Remove specific callback | `dphelper.triggers.off(event, callback)` |
14
+ | `clear` | Clear all triggers | `dphelper.triggers.clear()` |
15
+ | `list` | List all registered events | `dphelper.triggers.list()` |
16
+
17
+ ## Description
18
+
19
+ Custom event system:
20
+ - **Event Listeners** - Add/remove custom event listeners
21
+ - **Event Emission** - Emit events with data payloads
22
+ - **Namespacing** - Organize events by name
23
+ - **Error Handling** - Safe callback execution
24
+
25
+ ## Usage Examples
26
+
27
+ ### Add Event Listeners
28
+
29
+ ```javascript
30
+ // Listen for custom events
31
+ dphelper.triggers.add('user:login', (user) => {
32
+ console.log('User logged in:', user);
33
+ });
34
+
35
+ dphelper.triggers.on('data:loaded', (data) => {
36
+ console.log('Data received:', data);
37
+ });
38
+ ```
39
+
40
+ ### Emit Events
41
+
42
+ ```javascript
43
+ // Emit events with data
44
+ dphelper.triggers.emit('user:login', { id: 1, name: 'John' });
45
+
46
+ dphelper.triggers.emit('notification', {
47
+ type: 'success',
48
+ message: 'Operation complete!'
49
+ });
50
+ ```
51
+
52
+ ### Remove Listeners
53
+
54
+ ```javascript
55
+ // Remove all listeners for an event
56
+ dphelper.triggers.remove('user:login');
57
+
58
+ // Remove specific callback
59
+ const handler = (data) => console.log(data);
60
+ dphelper.triggers.on('event', handler);
61
+ // ... later
62
+ dphelper.triggers.off('event', handler);
63
+ ```
64
+
65
+ ### List Registered Events
66
+
67
+ ```javascript
68
+ // See all registered events
69
+ const events = dphelper.triggers.list();
70
+ console.log(events); // ['user:login', 'data:loaded', ...]
71
+
72
+ // Clear all triggers
73
+ dphelper.triggers.clear();
74
+ ```
75
+
76
+ ### Event-Driven Architecture
77
+
78
+ ```javascript
79
+ // Pub/Sub event system
80
+ class EventBus {
81
+ constructor() {
82
+ this.triggers = dphelper.triggers;
83
+ }
84
+
85
+ subscribe(event, callback) {
86
+ this.triggers.on(event, callback);
87
+ return () => this.triggers.off(event, callback);
88
+ }
89
+
90
+ publish(event, data) {
91
+ this.triggers.emit(event, data);
92
+ }
93
+ }
94
+
95
+ const bus = new EventBus();
96
+
97
+ // Subscribe
98
+ const unsubscribe = bus.subscribe('order:created', (order) => {
99
+ console.log('Order created:', order.id);
100
+ });
101
+
102
+ // Publish
103
+ bus.publish('order:created', { id: 123, total: 99.99 });
104
+
105
+ // Unsubscribe
106
+ unsubscribe();
107
+ ```
108
+
109
+ ### Component Communication
110
+
111
+ ```javascript
112
+ // Component A - Sender
113
+ function notifyUser(userId, message) {
114
+ dphelper.triggers.emit('notification', { userId, message });
115
+ }
116
+
117
+ // Component B - Receiver
118
+ dphelper.triggers.on('notification', ({ userId, message }) => {
119
+ showToast(`User ${userId}: ${message}`);
120
+ });
121
+ ```
122
+
123
+ ## Details
124
+
125
+ - **Author:** Dario Passariello
126
+ - **Version:** 0.0.1
127
+ - **Creation Date:** 20250220
128
+ - **Last Modified:** 20250220
129
+ - **Environment:** client (browser)
130
+
131
+ ---
132
+
133
+ *Automatically generated document*
@@ -0,0 +1,109 @@
1
+ # type
2
+
3
+ Utilities for type checking.
4
+
5
+ ## Functions
6
+
7
+ | Function | Description | Example |
8
+ |----------|-------------|---------|
9
+ | `of` | Get the type of a value | `dphelper.type.of(value)` |
10
+ | `instOfObj` | Check if value is Object instance | `dphelper.type.instOfObj(value)` |
11
+ | `isNaN` | Check if value is NaN | `dphelper.type.isNaN(value)` |
12
+ | `isBool` | Check if value is boolean | `dphelper.type.isBool(value)` |
13
+
14
+ ## Description
15
+
16
+ Type checking utilities:
17
+ - **Type Detection** - Get precise type of any value
18
+ - **Boolean Check** - Detect boolean values
19
+ - **NaN Detection** - Identify NaN values
20
+ - **Object Check** - Verify object instances
21
+
22
+ ## Usage Examples
23
+
24
+ ### Get Type
25
+
26
+ ```javascript
27
+ // Get type of value
28
+ console.log(dphelper.type.of('hello')); // "string"
29
+ console.log(dphelper.type.of(123)); // "number"
30
+ console.log(dphelper.type.of(true)); // "boolean"
31
+ console.log(dphelper.type.of({})); // "object"
32
+ console.log(dphelper.type.of([])); // "object"
33
+ console.log(dphelper.type.of(null)); // "null"
34
+ console.log(dphelper.type.of(undefined)); // "undefined"
35
+ ```
36
+
37
+ ### Check Object Instance
38
+
39
+ ```javascript
40
+ // Check if value is Object
41
+ console.log(dphelper.type.instOfObj({})); // true
42
+ console.log(dphelper.type.instOfObj([])); // true
43
+ console.log(dphelper.type.instOfObj(new Date())); // true
44
+ console.log(dphelper.type.instOfObj('string')); // false
45
+ console.log(dphelper.type.instOfObj(123)); // false
46
+ console.log(dphelper.type.instOfObj(null)); // false
47
+ ```
48
+
49
+ ### Check NaN
50
+
51
+ ```javascript
52
+ // Check for NaN
53
+ console.log(dphelper.type.isNaN(NaN)); // true
54
+ console.log(dphelper.type.isNaN(0/0)); // true
55
+ console.log(dphelper.type.isNaN('hello')); // false
56
+ console.log(dphelper.type.isNaN(123)); // false
57
+
58
+ // Safe number validation
59
+ function isValidNumber(value) {
60
+ return !dphelper.type.isNaN(value) && dphelper.type.of(value) === 'number';
61
+ }
62
+ ```
63
+
64
+ ### Check Boolean
65
+
66
+ ```javascript
67
+ // Check if boolean
68
+ console.log(dphelper.type.isBool(true)); // true
69
+ console.log(dphelper.type.isBool(false)); // true
70
+ console.log(dphelper.type.isBool(1)); // false
71
+ console.log(dphelper.type.isBool('true')); // false
72
+
73
+ // Boolean coercion check
74
+ function isExplicitBoolean(value) {
75
+ return dphelper.type.isBool(value);
76
+ }
77
+ ```
78
+
79
+ ### Type Guard Functions
80
+
81
+ ```javascript
82
+ // Comprehensive type checking
83
+ function getTypeInfo(value) {
84
+ return {
85
+ type: dphelper.type.of(value),
86
+ isObject: dphelper.type.instOfObj(value),
87
+ isNaN: dphelper.type.isNaN(value),
88
+ isBoolean: dphelper.type.isBool(value)
89
+ };
90
+ }
91
+
92
+ console.log(getTypeInfo(42));
93
+ // { type: 'number', isObject: false, isNaN: false, isBoolean: false }
94
+
95
+ console.log(getTypeInfo({a: 1}));
96
+ // { type: 'object', isObject: true, isNaN: false, isBoolean: false }
97
+ ```
98
+
99
+ ## Details
100
+
101
+ - **Author:** Dario Passariello
102
+ - **Version:** 0.0.2
103
+ - **Creation Date:** 20210101
104
+ - **Last Modified:** 20260220
105
+ - **Environment:** both (browser + Node.js)
106
+
107
+ ---
108
+
109
+ *Automatically generated document*
@@ -0,0 +1,102 @@
1
+ # types
2
+
3
+ Advanced type checking and validation utilities.
4
+
5
+ ## Functions
6
+
7
+ | Function | Description | Example |
8
+ |----------|-------------|---------|
9
+ | `of` | Get the type of a value | `dphelper.types.of(value)` |
10
+ | `instOfObj` | Check if value is Object instance | `dphelper.types.instOfObj(value)` |
11
+ | `isNaN` | Check if value is NaN | `dphelper.types.isNaN(value)` |
12
+ | `isBool` | Check if value is boolean | `dphelper.types.isBool(value)` |
13
+
14
+ ## Description
15
+
16
+ Advanced type utilities:
17
+ - **Type Detection** - Get precise type of any value
18
+ - **Boolean Check** - Detect boolean values (including string booleans)
19
+ - **Object Check** - Verify object instances
20
+
21
+ ## Usage Examples
22
+
23
+ ### Get Type
24
+
25
+ ```javascript
26
+ // Get type of value
27
+ console.log(dphelper.types.of('hello')); // "string"
28
+ console.log(dphelper.types.of(123)); // "number"
29
+ console.log(dphelper.types.of(true)); // "boolean"
30
+ console.log(dphelper.types.of({})); // "object"
31
+ console.log(dphelper.types.of([])); // "object"
32
+ console.log(dphelper.types.of(null)); // "null"
33
+ console.log(dphelper.types.of(undefined)); // "undefined"
34
+ ```
35
+
36
+ ### Check Object Instance
37
+
38
+ ```javascript
39
+ // Check if value is Object instance
40
+ console.log(dphelper.types.instOfObj({})); // true
41
+ console.log(dphelper.types.instOfObj([])); // true
42
+ console.log(dphelper.types.instOfObj(new Date())); // true
43
+ console.log(dphelper.types.instOfObj('string')); // false
44
+ console.log(dphelper.types.instOfObj(123)); // false
45
+ ```
46
+
47
+ ### Check NaN
48
+
49
+ ```javascript
50
+ // Check for NaN
51
+ console.log(dphelper.types.isNaN(NaN)); // true
52
+ console.log(dphelper.types.isNaN(0/0)); // true
53
+ console.log(dphelper.types.isNaN('hello')); // false
54
+ console.log(dphelper.types.isNaN(123)); // false
55
+ ```
56
+
57
+ ### Check Boolean
58
+
59
+ ```javascript
60
+ // Check if boolean (including string representations)
61
+ console.log(dphelper.types.isBool(true)); // true
62
+ console.log(dphelper.types.isBool(false)); // true
63
+ console.log(dphelper.types.isBool(1)); // false
64
+ console.log(dphelper.types.isBool('true')); // false
65
+ console.log(dphelper.types.isBool(null)); // true
66
+ console.log(dphelper.types.isBool(undefined));// true
67
+ ```
68
+
69
+ ### Form Validation
70
+
71
+ ```javascript
72
+ // Type-safe form validation
73
+ function validateField(value, type) {
74
+ const actualType = dphelper.types.of(value);
75
+
76
+ if (type === 'string' && actualType !== 'string') {
77
+ return { valid: false, error: 'Must be a string' };
78
+ }
79
+
80
+ if (type === 'number' && actualType !== 'number') {
81
+ return { valid: false, error: 'Must be a number' };
82
+ }
83
+
84
+ if (type === 'boolean' && !dphelper.types.isBool(value)) {
85
+ return { valid: false, error: 'Must be a boolean' };
86
+ }
87
+
88
+ return { valid: true };
89
+ }
90
+ ```
91
+
92
+ ## Details
93
+
94
+ - **Author:** Dario Passariello
95
+ - **Version:** 0.0.2
96
+ - **Creation Date:** 20210101
97
+ - **Last Modified:** 20260220
98
+ - **Environment:** both (browser + Node.js)
99
+
100
+ ---
101
+
102
+ *Automatically generated document*
@@ -0,0 +1,45 @@
1
+ # UI
2
+
3
+ User Interface components and Debugging tools.
4
+
5
+ ## Debugging Tools
6
+
7
+ | Function | Description | Example |
8
+ |----------|-------------|---------|
9
+ | `fps` | Toggles a real-time FPS and Memory monitor overlay | `dphelper.UI.fps(true)` |
10
+ | `boxModel` | Toggles visual box-model highlighter for all elements | `dphelper.UI.boxModel(true)` |
11
+
12
+ ## Base Components
13
+
14
+ - `input`, `button`, `textarea`, `select`, `code` (Work in progress)
15
+
16
+ ## Description
17
+
18
+ The UI module provides both functional interface components and developer-oriented inspection tools to monitor application health and layout.
19
+
20
+ ## Usage Examples
21
+
22
+ ### Performance Monitoring
23
+
24
+ ```javascript
25
+ // Shows FPS and RAM usage on screen
26
+ dphelper.UI.fps(true);
27
+ ```
28
+
29
+ ### Layout Debugging
30
+
31
+ ```javascript
32
+ // Highlights borders of all elements on the page
33
+ dphelper.UI.boxModel(true);
34
+ ```
35
+
36
+ ## Details
37
+
38
+ - **Author:** Dario Passariello & Jo
39
+ - **Version:** 0.0.2
40
+ - **Creation Date:** 20210101
41
+ - **Last Modified:** 20260220
42
+
43
+ ---
44
+
45
+ *Automatically generated document*
@@ -0,0 +1,211 @@
1
+ # window
2
+
3
+ Window management utilities for popups, zoom control, page leave handling, and memory management.
4
+
5
+ ## Functions
6
+
7
+ | Function | Description | Example |
8
+ |----------|-------------|---------|
9
+ | `enhancement` | Enhance window with additional properties | `dphelper.window.enhancement()` |
10
+ | `center` | Open centered popup window | `dphelper.window.center({ url, title, name, w, h })` |
11
+ | `onBeforeUnLoad` | Prompt before leaving page | `dphelper.window.onBeforeUnLoad('#form')` |
12
+ | `purge` | Clear elements from memory | `dphelper.window.purge()` |
13
+ | `stopZoomWheel` | Disable Ctrl+wheel zoom | `dphelper.window.stopZoomWheel()` |
14
+ | `setZoom` | Set element zoom level | `dphelper.window.setZoom('#container', 1.5)` |
15
+ | `getZoom` | Get element zoom level | `dphelper.window.getZoom('#container')` |
16
+
17
+ ## Description
18
+
19
+ Complete window management toolkit:
20
+ - **Popup Windows** - Centered, sized windows
21
+ - **Zoom Control** - Get/set zoom levels
22
+ - **Page Exit** - Warn before leaving with unsaved changes
23
+ - **Memory** - Purge unused elements
24
+ - **Accessibility** - Disable unwanted zoom
25
+
26
+ ## Usage Examples
27
+
28
+ ### Centered Popup Window
29
+
30
+ ```javascript
31
+ // Open centered popup
32
+ dphelper.window.center({
33
+ url: 'https://example.com',
34
+ title: 'Popup Window',
35
+ name: 'myPopup',
36
+ w: 800, // width
37
+ h: 600 // height
38
+ });
39
+
40
+ // Useful for:
41
+ // - Video players
42
+ // - Image galleries
43
+ // - Login/signup modals
44
+ // - External content
45
+ ```
46
+
47
+ ### Before Unload Warning
48
+
49
+ ```javascript
50
+ // Warn user before leaving with unsaved changes
51
+ dphelper.window.onBeforeUnLoad('#myForm');
52
+
53
+ // When user tries to leave:
54
+ // - Fills out form
55
+ // - Clicks external link
56
+ // - Closes tab
57
+ // -> Shows confirmation dialog
58
+
59
+ // Clean form detection
60
+ // <input id="myForm">
61
+ // Warning only shows if form has content
62
+ ```
63
+
64
+ ### Zoom Control
65
+
66
+ ```javascript
67
+ // Get current zoom level
68
+ const zoom = dphelper.window.getZoom();
69
+ console.log(zoom); // 1 (or 1.5, 2, etc.)
70
+
71
+ // Get specific element zoom
72
+ const elZoom = dphelper.window.getZoom('#container');
73
+ console.log(elZoom);
74
+
75
+ // Set zoom level (1 = 100%)
76
+ dphelper.window.setZoom('#container', 1.5); // 150%
77
+ dphelper.window.setZoom('#container', 2); // 200%
78
+ dphelper.window.setZoom('#container', 0.5); // 50%
79
+
80
+ // Reset to default
81
+ dphelper.window.setZoom('#container', 1);
82
+ ```
83
+
84
+ ### Disable Mouse Wheel Zoom
85
+
86
+ ```javascript
87
+ // Prevent Ctrl+wheel zoom (accessibility feature)
88
+ dphelper.window.stopZoomWheel();
89
+
90
+ // Useful for:
91
+ // - Interactive maps
92
+ // - Canvas applications
93
+ // - Games
94
+ // - Preventing accidental zoom
95
+ ```
96
+
97
+ ### Memory Purge
98
+
99
+ ```javascript
100
+ // Purge document from memory after delay
101
+ dphelper.window.purge(document, 10000); // 10 seconds
102
+
103
+ // Or purge specific element
104
+ const oldContent = document.getElementById('oldContent');
105
+ dphelper.window.purge(oldContent, 5000);
106
+
107
+ // Cleans up:
108
+ // - Event listeners
109
+ // - References
110
+ // - Child nodes
111
+ ```
112
+
113
+ ### Window Enhancement
114
+
115
+ ```javascript
116
+ // Enhance window with cross-browser utilities
117
+ dphelper.window.enhancement();
118
+
119
+ // Adds:
120
+ // - Cross-browser requestAnimationFrame
121
+ // - Additional window properties
122
+ ```
123
+
124
+ ## Advanced Usage
125
+
126
+ ### Complete Form Protection
127
+
128
+ ```javascript
129
+ class FormProtection {
130
+ constructor(formSelector) {
131
+ this.form = document.querySelector(formSelector);
132
+ this.init();
133
+ }
134
+
135
+ init() {
136
+ // Enable beforeunload warning
137
+ dphelper.window.onBeforeUnLoad(this.form);
138
+ }
139
+
140
+ // Clean up when form is submitted
141
+ onSubmit(callback) {
142
+ this.form.addEventListener('submit', (e) => {
143
+ // Remove protection after successful submit
144
+ this.disable();
145
+ callback(e);
146
+ });
147
+ }
148
+
149
+ disable() {
150
+ // Programmatically disable warning
151
+ window.onbeforeunload = null;
152
+ }
153
+ }
154
+
155
+ // Usage
156
+ const protectedForm = new FormProtection('#contactForm');
157
+ protectedForm.onSubmit(() => {
158
+ console.log('Form submitted!');
159
+ });
160
+ ```
161
+
162
+ ### Responsive Zoom Handler
163
+
164
+ ```javascript
165
+ class ZoomManager {
166
+ constructor(container) {
167
+ this.container = container;
168
+ this.setupHandlers();
169
+ }
170
+
171
+ setupHandlers() {
172
+ // Disable default zoom
173
+ dphelper.window.stopZoomWheel();
174
+
175
+ // Track zoom changes
176
+ window.addEventListener('resize', () => this.handleResize());
177
+ }
178
+
179
+ handleResize() {
180
+ const width = window.innerWidth;
181
+ let zoom = 1;
182
+
183
+ if (width < 768) {
184
+ zoom = 0.75;
185
+ } else if (width < 1024) {
186
+ zoom = 0.9;
187
+ }
188
+
189
+ dphelper.window.setZoom(this.container, zoom);
190
+ }
191
+
192
+ getCurrentZoom() {
193
+ return dphelper.window.getZoom(this.container);
194
+ }
195
+ }
196
+
197
+ // Usage
198
+ const zoomManager = new ZoomManager('#app-container');
199
+ ```
200
+
201
+ ## Details
202
+
203
+ - **Author:** Dario Passariello
204
+ - **Version:** 0.0.2
205
+ - **Creation Date:** 20210101
206
+ - **Last Modified:** 20260220
207
+ - **Environment:** Client-side only (browser)
208
+
209
+ ---
210
+
211
+ *Automatically generated document*