@twobirds/microcomponents 0.0.50 → 0.0.51
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/formValues.d.ts.map +1 -1
- package/dist/formValues.ts +17 -18
- package/dist/formvValues.min.js +1 -1
- package/dist/microcomponents.min.js +1 -1
- package/package.json +1 -1
- package/public/assets/search.js +1 -1
- package/public/classes/MC.DC.html +13 -13
- package/public/classes/MC.MC.html +7 -7
- package/public/classes/MC.McBase.html +4 -4
- package/public/classes/MC.McEvent.html +13 -13
- package/public/classes/formValues.FormValues.html +86 -0
- package/public/functions/MC.addListener.html +2 -1
- package/public/functions/{formValues.formValues.html → MC.autoload.html} +18 -17
- package/public/functions/MC.removeListener.html +2 -1
- package/public/functions/elements.defineCE.html +1 -1
- package/public/functions/elements.getCE.html +1 -1
- package/public/functions/observables.observe.html +3 -3
- package/public/functions/selectors._d.html +1 -1
- package/public/functions/selectors._t.html +1 -1
- package/public/interfaces/MC.HTMLMcElement.html +2 -2
- package/public/interfaces/selectors.DSelector.html +55 -55
- package/public/interfaces/selectors.TSelector.html +37 -37
- package/public/modules/MC.html +3 -1
- package/public/modules/elements.html +1 -1
- package/public/modules/formValues.html +4 -4
- package/public/modules/observables.html +1 -1
- package/public/modules/selectors.html +1 -1
- package/public/types/observables.Observable.html +1 -1
- package/public/types/selectors.selection.html +1 -1
- package/public/types/selectors.singleSelector.html +1 -1
- package/src/formValues.ts +17 -18
- package/public/3d.html +0 -42
- package/public/Grandparent.css +0 -13
- package/public/Grandparent.js +0 -338
- package/public/MC.js +0 -314
- package/public/MC.js.map +0 -1
- package/public/MC.min.js +0 -451
- package/public/McEvent.js +0 -71
- package/public/McEvent.js.map +0 -1
- package/public/MicroComponents.svg +0 -15
- package/public/TestForm.css +0 -47
- package/public/TestForm.html +0 -56
- package/public/TestForm.js +0 -56
- package/public/TestForm.json +0 -27
- package/public/Testform.js +0 -149
- package/public/autoloader.js +0 -53
- package/public/autoloader.js.map +0 -1
- package/public/documentation/MC.md +0 -470
- package/public/documentation/ajaxian-1.png +0 -0
- package/public/documentation/ajaxian-2.png +0 -0
- package/public/documentation/ajaxian-3.png +0 -0
- package/public/documentation/comparision.md +0 -0
- package/public/documentation/elements.md +0 -276
- package/public/documentation/functional_requirements.md +0 -8
- package/public/documentation/history.md +0 -436
- package/public/documentation/how_tos.md +0 -0
- package/public/documentation/introduction.md +0 -0
- package/public/documentation/magic.md +0 -29
- package/public/documentation/observe.md +0 -317
- package/public/documentation/proposal_draft.md +0 -37
- package/public/documentation/rnd0023-1.jpg +0 -0
- package/public/documentation/rnd0023-2.jpg +0 -0
- package/public/documentation/rnd0023-3.jpg +0 -0
- package/public/documentation/tB_react.md +0 -207
- package/public/documentation/usage.md +0 -142
- package/public/documentation/why.md +0 -25
- package/public/elements.js +0 -48
- package/public/elements.js.map +0 -1
- package/public/elements.min.js +0 -1
- package/public/fiddle/MicroComponents.svg +0 -15
- package/public/fiddle/fiddle.css +0 -0
- package/public/fiddle/fiddle.js +0 -0
- package/public/fiddle/index.html +0 -0
- package/public/formValues.js +0 -205
- package/public/formValues.js.map +0 -1
- package/public/formvValues.min.js +0 -1
- package/public/helpers.js +0 -113
- package/public/helpers.js.map +0 -1
- package/public/microcomponents.es3.js +0 -303
- package/public/microcomponents.es3.js.map +0 -1
- package/public/microcomponents.js +0 -9
- package/public/microcomponents.js.map +0 -1
- package/public/microcomponents.min.js +0 -1
- package/public/my-tag.css +0 -19
- package/public/observables.js +0 -251
- package/public/observables.js.map +0 -1
- package/public/observables.min.js +0 -1
- package/public/selectors.js +0 -971
- package/public/selectors.js.map +0 -1
- package/public/selectors.min.js +0 -1
- package/public/src/MC.ts +0 -478
- package/public/src/McEvent.ts +0 -96
- package/public/src/autoloader.ts +0 -98
- package/public/src/elements.ts +0 -76
- package/public/src/formValues.ts +0 -278
- package/public/src/helpers.ts +0 -149
- package/public/src/microcomponents.ts +0 -8
- package/public/src/observables.ts +0 -405
- package/public/src/selectors.ts +0 -1634
- package/public/src/test.ts +0 -177
- package/public/test/Grandparent.js +0 -1
- package/public/test/Testform.js +0 -1
- package/public/test.html +0 -27
- package/public/test.js +0 -78
- package/public/test.js.map +0 -1
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# Micro Component Management
|
|
2
|
-
|
|
3
|
-
This system allows you to attach, manage, and interact with micro components.
|
|
4
|
-
|
|
5
|
-
**Micro Components** can literally be anything you can put into an object as a property.
|
|
6
|
-
|
|
7
|
-
Also it has selectors to find micro components in the DOM. It consists of a single class `MC`.
|
|
8
|
-
|
|
9
|
-
## Summary of MC() Methods
|
|
10
|
-
|
|
11
|
-
- **Static Methods:**
|
|
12
|
-
- `MC.add( target, key, element)`: Attach a top level micro component to an HTMLElement.
|
|
13
|
-
- `MC.remove( target, key )`: Detach a top level micro component from an HTMLElement.
|
|
14
|
-
- `MC.siblings( target )`: get top level micro components from an HTMLElement.
|
|
15
|
-
|
|
16
|
-
- **Instance Methods:**
|
|
17
|
-
- `add( key, element )`: Attach a private Micro Component to a Micro Component.
|
|
18
|
-
- `remove( key )`: Detach a private Micro Component from a Micro Component.
|
|
19
|
-
- `siblings(search?)`: Retrieve sibling micro components.
|
|
20
|
-
- `parent(search?)`: Get parent top level micro components.
|
|
21
|
-
- `parents(search?)`: Get all ancestor top level micro components.
|
|
22
|
-
- `children(search?)`: Retrieve child top level micro components.
|
|
23
|
-
- `descendants(search?)`: Get all descendant top level micro components.
|
|
24
|
-
|
|
25
|
-
**Micro Components** will most likely be **class instances** that expose inner methods **or an observable collection** for data driven workflows, e.g. business process logic.
|
|
26
|
-
|
|
27
|
-
## Typical Workflow
|
|
28
|
-
|
|
29
|
-
1. **Attach micro components** to elements using `MC.add()`.
|
|
30
|
-
2. **Access** micro components by their property key or navigating through DOM (e.g., `siblings()`, `parents()`, `children()`, etc.) **and use their inner functionality**.
|
|
31
|
-
3. **Manipulate** micro components by adding or removing them as needed or change their properties/call their methods.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Hints
|
|
35
|
-
|
|
36
|
-
- **All static methods handle top level Micro Components. These are PUBLIC, that is they are visible in the DOM elements _mc property and usually have an interface.**
|
|
37
|
-
|
|
38
|
-
- **All MC instance methods handle inner Micro Components. These are PRIVATE, that is they are not visible in the DOM elements _mc property.**
|
|
39
|
-
|
|
40
|
-
- **Micro Components can recursively contain Micro Components. Just like npm and the node_modules directory.**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## Attaching a top level Micro Component to a DOM element
|
|
44
|
-
|
|
45
|
-
To attach a micro component to an HTML element, use the `MC.add()` static function.
|
|
46
|
-
|
|
47
|
-
### Example Usage:
|
|
48
|
-
```javascript
|
|
49
|
-
const myElement = document.getElementById('myDiv');
|
|
50
|
-
|
|
51
|
-
// Attach a micro component (most often a class instance, here a simple object for simplicity) with a specific key
|
|
52
|
-
MC.add( myElement, 'myComponent', { name: 'Mike' } );
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
- After you added a micro component using this function, the HTMLElement will contain a property `_mc` which is a MC() class instance that offers some methods.
|
|
56
|
-
- Also the HTMLElement then has an attribute _mc which will indicate that at least one micro component is attached to this dom element.
|
|
57
|
-
|
|
58
|
-
## Removing a top level Micro Component from a DOM element
|
|
59
|
-
|
|
60
|
-
Micro components can be removed using the `MC.remove()` static method.
|
|
61
|
-
|
|
62
|
-
### Removing a Micro component:
|
|
63
|
-
```javascript
|
|
64
|
-
MC.remove( myDomElement, 'myComponent');
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
**When all micro components are removed** (the _mc object has no more properties), the `_mc` **attribute is also removed** from the HTML element. The `_mc` **property persists**.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## Retrieve all top level Micro Components from a DOM element
|
|
71
|
-
|
|
72
|
-
The `MC.siblings()` method retrieves all top level micro components attached to the same DOM element.
|
|
73
|
-
|
|
74
|
-
### Example:
|
|
75
|
-
```javascript
|
|
76
|
-
const target = document.querySelector( 'div' );
|
|
77
|
-
const siblings = MC.siblings( target );
|
|
78
|
-
console.log(siblings); // Logs an array of top level sibling micro components
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
To retrieve a specific micro component by its key:
|
|
82
|
-
```javascript
|
|
83
|
-
const target = document.querySelector( 'div' );
|
|
84
|
-
const siblings = MC.siblings( target, 'myOtherComponent' );
|
|
85
|
-
console.log(siblings); // Logs an array containing a top level sibling micro component, if its key matches the search string
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
## Retrieving Sibling Micro components
|
|
90
|
-
|
|
91
|
-
The `.siblings()` method retrieves all micro components attached to the same DOM element.
|
|
92
|
-
|
|
93
|
-
### Example:
|
|
94
|
-
```javascript
|
|
95
|
-
const siblings = myElement._mc.siblings();
|
|
96
|
-
console.log(siblings); // Logs an array of sibling micro components
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
To retrieve a specific micro component by its key:
|
|
100
|
-
```javascript
|
|
101
|
-
const specificSibling = myElement._mc.siblings('anotherComponent');
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
- **The following methods hop over HTMLElements that contain no micro component.**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
## 4. Navigating Parent and Ancestor Micro components
|
|
109
|
-
|
|
110
|
-
The `_mc.parent()` and `_mc.parents()` methods allow you to retrieve micro components attached to parent elements.
|
|
111
|
-
|
|
112
|
-
### Example:
|
|
113
|
-
```javascript
|
|
114
|
-
const parentMc = myElement._mc.parent();
|
|
115
|
-
console.log(parentMc); // Logs micro components closest nachestor that has microcomponents
|
|
116
|
-
|
|
117
|
-
const allAncestorsMc = myElement._mc.parents();
|
|
118
|
-
console.log(allAncestorsMc); // Logs all ancestor micro components up to document
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
To retrieve a specific micro component attached to the parent or ancestors:
|
|
122
|
-
```javascript
|
|
123
|
-
const specificAncestorMc = myElement._mc.parents('myComponent');
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## 5. Retrieving Child and Descendant Micro components
|
|
127
|
-
|
|
128
|
-
The `_mc.children()` and `_mc.descendants()` methods retrieve micro components attached to child elements or any descendants.
|
|
129
|
-
|
|
130
|
-
### Example:
|
|
131
|
-
```javascript
|
|
132
|
-
const childMicro components = myElement._mc.children();
|
|
133
|
-
console.log(childMicro components); // Logs an array of nearest child micro components
|
|
134
|
-
|
|
135
|
-
const descendantMicro components = myElement._mc.descendants();
|
|
136
|
-
console.log(descendantMicro components); // Logs micro components attached to all descendants
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
To search for a specific micro component by key:
|
|
140
|
-
```javascript
|
|
141
|
-
const specificMc = myElement._mc.<someComponent>;
|
|
142
|
-
```
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
## Why would I give this a try?
|
|
3
|
-
|
|
4
|
-
It is lightweight, proven and can yield positive results immediatly.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
### **As the CTO**:
|
|
8
|
-
|
|
9
|
-
- **Reusability**: this works with every Javascript framework that allows for DOM access, and it will work as long as the DOM exists in browsers. That is, forever.
|
|
10
|
-
- **Scalability**: scales perfectly by design.
|
|
11
|
-
- **Interoperability**: where many teams in different projects should share specific business or UI logic, you want to have something that works in any JS framework you use.
|
|
12
|
-
|
|
13
|
-
### **As a Project Manager**:
|
|
14
|
-
|
|
15
|
-
- **Separation of Concerns**: since this is a modular approach you can **split UI logic from Business logic** and let diffent teams work on each.
|
|
16
|
-
- using this, you can **work with external developers without the need to give them access to your projects code repository**.
|
|
17
|
-
- you will find out that this allows your project to **become independent from the "tools hell"**. You tend to use **DIY** modules where you had tools before.
|
|
18
|
-
|
|
19
|
-
### **As a Javascript Developer**:
|
|
20
|
-
|
|
21
|
-
- The learning curve to use this is more than shallow. 1 hour should be enough.
|
|
22
|
-
- This is based on **plain Javascript/Typescript, HTML and CSS**. There is no abstraction layer.
|
|
23
|
-
- From the very start **it is fun to work with**. You are back in control of your code without bigger frameworks, but you are able to interact with them.
|
|
24
|
-
- You can **work for any customer right away**. **No training on their system required**, just fulfill their micro component requirements.
|
|
25
|
-
- Over time, you can **build your own framework or functional libraries** from scratch.
|
package/public/elements.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
import { DC } from './MC.js';
|
|
3
|
-
import { kebabToPascal } from './helpers.js';
|
|
4
|
-
class CeBaseClass extends HTMLElement {
|
|
5
|
-
constructor() {
|
|
6
|
-
super();
|
|
7
|
-
}
|
|
8
|
-
connectedCallback() {
|
|
9
|
-
DC.trigger(this, 'Connected');
|
|
10
|
-
}
|
|
11
|
-
disconnectedCallback() {
|
|
12
|
-
DC.trigger(this, 'Disconnected');
|
|
13
|
-
}
|
|
14
|
-
adoptedCallback() {
|
|
15
|
-
DC.trigger(this, 'Adopted');
|
|
16
|
-
}
|
|
17
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
18
|
-
DC.trigger(this, 'AttributeChanged', { name, oldValue, newValue });
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function createNamedClass(name, ClassBody) {
|
|
22
|
-
return Object.defineProperty(ClassBody, 'name', { value: name });
|
|
23
|
-
}
|
|
24
|
-
export function defineCE(tagName, DefinitionClass, observedAttributes = []) {
|
|
25
|
-
if (customElements.get(tagName)) {
|
|
26
|
-
console.warn(`IGNORED: Custom element "${tagName}" is already defined!`);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (!tagName.includes('-')) {
|
|
30
|
-
throw new Error('createCustomElement: tagName must contain at least one hyphen ("-").');
|
|
31
|
-
}
|
|
32
|
-
let name = kebabToPascal(tagName);
|
|
33
|
-
customElements.define(tagName, createNamedClass(name, class extends CeBaseClass {
|
|
34
|
-
instance;
|
|
35
|
-
constructor(data) {
|
|
36
|
-
super();
|
|
37
|
-
let instance = new DefinitionClass(this, data);
|
|
38
|
-
DC.add(this, name, instance);
|
|
39
|
-
}
|
|
40
|
-
static get observedAttributes() {
|
|
41
|
-
return observedAttributes;
|
|
42
|
-
}
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
export function getCE(tagName) {
|
|
46
|
-
return customElements.get(tagName);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=elements.js.map
|
package/public/elements.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAY,SAAQ,WAAW;IACpC;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IAED,iBAAiB;QACf,EAAU,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,oBAAoB;QAClB,EAAU,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe;QACb,EAAU,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,wBAAwB,CAAC,IAAY,EAAE,QAAa,EAAE,QAAa;QACjE,EAAU,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7E,CAAC;CACD;AAED,SAAS,gBAAgB,CACxB,IAAY,EACZ,SAAwC;IAExC,OAAO,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,QAAQ,CACvB,OAAe,EACf,eAA8C,EAC9C,qBAA+B,EAAE;IAEjC,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,4BAA4B,OAAO,uBAAuB,CAAC,CAAC;QACzE,OAAO;IACR,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACd,sEAAsE,CACtE,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAElC,cAAc,CAAC,MAAM,CACpB,OAAO,EACP,gBAAgB,CACf,IAAI,EACJ,KAAM,SAAQ,WAAW;QACxB,QAAQ,CAAM;QAEd,YAAY,IAAU;YACrB,KAAK,EAAE,CAAC;YACR,IAAI,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,KAAK,kBAAkB;YAC5B,OAAO,kBAAkB,CAAC;QAC3B,CAAC;KACD,CACD,CACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAe;IACpC,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
|
package/public/elements.min.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.elements=t():e.elements=t()}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{defineCE:()=>y,getCE:()=>w});var r=new Function("try {return this===window;}catch(e){ return false;}");let n=new Set;r()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>n.add(e)));class o{#e;#t=!1;#r=!1;constructor(e,t={},r="l"){this.#e=e,this.data=t,this.bubble=r}get type(){return this.#e}get stopped(){return this.#t}get immediateStopped(){return this.#r}stopPropagation(){this.#t=!0}stopImmediatePropagation(){this.stopPropagation(),this.#r=!0}}var i=new Function("try {return this===window;}catch(e){ return false;}");let c=new Set;function s(e,t){let r=[];return e.forEach((e=>{if(e&&e instanceof HTMLElement){const n=e?._mc;!t&&n?r=r.concat(Object.values(e._mc)):t&&n&&n[t]&&r.push(n[t])}})),r}function a(e,t,r=!0){let n=[];for(;e;){if(e._mc&&(t?t&&e._mc[t]&&n.push(e._mc[t]):n=n.concat(Object.values(e._mc)),r))return n;e=e.parentNode}return n}function u(e){return e&&e instanceof HTMLElement}function l(e,t,r={}){let n=e;if(!n._mc){let t=b?.debug;b.debug=!1,n._mc=new b(e),b.debug=t,delete n._mc._mc}const o=n._mc;return t.length&&!o[t]&&(o[t]=r,e instanceof HTMLElement&&e.setAttribute("_mc","")),r}function d(e,t){if(!t)return;const r=e?._mc||{};r&&r[t]&&delete r[t],!Object.keys(r).length&&e instanceof HTMLElement&&e.hasAttribute("_mc")&&e.removeAttribute("_mc")}function p(e,t,r={},n="l"){let i=e?._mc;if(!i)return;let c=t instanceof o?new o(t.type,t.data,"l"):new o(t,r,"l"),s="string"!=typeof t?t:new o(t,r,n);[...Object.values(i)].forEach((e=>{e?.trigger&&"function"==typeof e?.trigger&&e?.trigger(c)})),/[ud]/.test(s.bubble)&&f(e,s)}function f(e,t){/[ud]/.test(t.bubble)&&setTimeout((()=>{if(-1===t.bubble.indexOf("l")&&(t.bubble+="l"),t.bubble.indexOf("u")>-1){let r=a(e,"",!0)?.[0].target;r&&b.trigger(r,t)}t.bubble.indexOf("d")>-1&&new Set(e._mc.children().map((e=>e?.target))).forEach((e=>{e&&b.trigger(e,t)}))}),0)}i()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>c.add(e)));class g{#n;constructor(e,t=!1){var r;this.#n=new WeakRef(e||{}),(r=this).constructor!==b&&setTimeout((()=>{r.trigger("Init")}),0),function(e){if(!i()||e.constructor===b)return;const t=e.target;if(t instanceof HTMLElement){let r=e;Object.getOwnPropertyNames(r.constructor.prototype).filter((e=>/^on[A-Z]|one[A-Z]/.test(e)&&"function"==typeof r.constructor.prototype[e])).forEach((n=>{let o=/^one/.test(n),i=n.replace(/^on[e]{0,1}/,""),s=i.toLowerCase();o&&Object.defineProperty(e,"on"+i,{configurable:!0,enumerable:!1,writable:!0,value:e=>{r.constructor.prototype[n].bind(r)(e)}}),c.has("on"+s)&&function(e,t,r,n=!1,o=!1){let i={once:!1};n&&(i.capture=n),o&&(i.once=o),e.addEventListener(t,r,i)}(t,s,(e=>{r.trigger(i,e)}),!1,o)}))}}(this)}get target(){return this.#n.deref()}}class m extends g{_mc={};constructor(e){super(e)}static trigger=p;trigger(e,t={},r="l"){let n=this;if(n.constructor===m||n.constructor===b){let i=e instanceof o?new o(e.type,e.data,"l"):new o(e,t,"l"),c="string"!=typeof e?e:new o(e,t,r);return[...Object.getOwnPropertyNames(n)].forEach((e=>{n[e]?.trigger&&"function"==typeof n[e]?.trigger&&n[e]?.trigger(i)})),void(/[ud]/.test(c.bubble)&&f(n.target,c))}if(n instanceof m||n instanceof b){const n=this,i="string"!=typeof e?e:new o(e,t,r),c="on"+i.type[0].toUpperCase()+i.type.slice(1);if(i.bubble.indexOf("l")>-1&&(i.immediateStopped||"function"!=typeof n[c]||(n[c](i),n.hasOwnProperty(c)&&delete n[c])),i.stopped||"l"===i.bubble)return n;/[ud]/.test(i.bubble)&&f(n.target,i)}}}class b extends g{_mc={};constructor(e,t=!1){super(e)}static add=l;static remove=d;static trigger=p;trigger(e,t={},r){m.prototype.trigger.call(this,e,t,r)}parent(e=""){let t=this.target;return u(t)?a(t.parentNode,e,!0):[]}ancestors(e=""){let t=this?.target;return u(t)?a(this.target.parentNode,e,!1):[]}children(e=""){let t=this?.target;if(!u(t))return[];const r=Math.random().toString().replace(".",""),n='[_mc]:not([temp_id="'+r+'"] [_mc] [_mc])';t.setAttribute("temp_id",r);const o=s([...t.querySelectorAll(n)],e);return t.removeAttribute("temp_id"),o}descendants(e=""){let t=this?.target;return u(t)?s([...t.querySelectorAll("*[_mc]")],e):[]}}new Map;class h extends HTMLElement{constructor(){super()}connectedCallback(){b.trigger(this,"Connected")}disconnectedCallback(){b.trigger(this,"Disconnected")}adoptedCallback(){b.trigger(this,"Adopted")}attributeChangedCallback(e,t,r){b.trigger(this,"AttributeChanged",{name:e,oldValue:t,newValue:r})}}function y(e,t,r=[]){if(customElements.get(e))return void console.warn(`IGNORED: Custom element "${e}" is already defined!`);if(!e.includes("-"))throw new Error('createCustomElement: tagName must contain at least one hyphen ("-").');let n=e.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join("");customElements.define(e,function(e,t){return Object.defineProperty(t,"name",{value:e})}(n,class extends h{instance;constructor(e){super();let r=new t(this,e);b.add(this,n,r)}static get observedAttributes(){return r}}))}function w(e){return customElements.get(e)}return t})()));
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
|
2
|
-
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
|
3
|
-
<title>test</title>
|
|
4
|
-
<rect fill="transparent" x="0" y="0" width="200" height="200" fill-opacity="1"/>
|
|
5
|
-
<g style="fill:transparent">
|
|
6
|
-
<title>first bird</title>
|
|
7
|
-
<path fill="#18829c" d="
|
|
8
|
-
m15,160
|
|
9
|
-
a30,75 45 1 0 160,-150
|
|
10
|
-
a20,50 225 1 1 -110,100
|
|
11
|
-
a12,25 45 1 1 60,-50
|
|
12
|
-
a20,50 225 1 0 -110,100
|
|
13
|
-
" />
|
|
14
|
-
</g>
|
|
15
|
-
</svg>
|
package/public/fiddle/fiddle.css
DELETED
|
File without changes
|
package/public/fiddle/fiddle.js
DELETED
|
File without changes
|
package/public/fiddle/index.html
DELETED
|
File without changes
|
package/public/formValues.js
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
import { copyGettersSetters } from './helpers.js';
|
|
3
|
-
import { DC, addListener } from './MC.js';
|
|
4
|
-
import { observe } from './observables.js';
|
|
5
|
-
const getInputName = (e) => {
|
|
6
|
-
return e.tagName.toLowerCase();
|
|
7
|
-
};
|
|
8
|
-
class InputBase {
|
|
9
|
-
constructor(e) { }
|
|
10
|
-
}
|
|
11
|
-
class RadioHandler extends InputBase {
|
|
12
|
-
#e;
|
|
13
|
-
#form;
|
|
14
|
-
constructor(e, form) {
|
|
15
|
-
super(e);
|
|
16
|
-
this.#e = e;
|
|
17
|
-
this.#form = form;
|
|
18
|
-
}
|
|
19
|
-
get val() {
|
|
20
|
-
let ret = new FormData(this.#form).get(this.#e.name);
|
|
21
|
-
return ret;
|
|
22
|
-
}
|
|
23
|
-
set val(value) {
|
|
24
|
-
let arr = [
|
|
25
|
-
...this.#form.querySelectorAll(`input[type="radio][name="${this.#e.name}"]`),
|
|
26
|
-
];
|
|
27
|
-
arr
|
|
28
|
-
.filter((e) => e.getAttribute('value') === value)
|
|
29
|
-
.shift().checked = true;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
class CheckboxHandler extends InputBase {
|
|
33
|
-
#e;
|
|
34
|
-
constructor(e) {
|
|
35
|
-
super(e);
|
|
36
|
-
this.#e = e;
|
|
37
|
-
}
|
|
38
|
-
get val() {
|
|
39
|
-
return this.#e.checked;
|
|
40
|
-
}
|
|
41
|
-
set val(value) {
|
|
42
|
-
this.#e.checked = value;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
class InputHandler extends InputBase {
|
|
46
|
-
#e;
|
|
47
|
-
constructor(e) {
|
|
48
|
-
super(e);
|
|
49
|
-
this.#e = e;
|
|
50
|
-
}
|
|
51
|
-
get val() {
|
|
52
|
-
return this.#e.value;
|
|
53
|
-
}
|
|
54
|
-
set val(value) {
|
|
55
|
-
this.#e.value = value;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
class SelectHandler extends InputBase {
|
|
59
|
-
#e;
|
|
60
|
-
#multi = false;
|
|
61
|
-
constructor(e) {
|
|
62
|
-
super(e);
|
|
63
|
-
this.#e = e;
|
|
64
|
-
this.#multi = e.multiple;
|
|
65
|
-
}
|
|
66
|
-
get val() {
|
|
67
|
-
const that = this, ret = [];
|
|
68
|
-
const options = [...that.#e.querySelectorAll('option')]
|
|
69
|
-
.filter((o) => o.selected)
|
|
70
|
-
.forEach((o) => {
|
|
71
|
-
if (o.selected)
|
|
72
|
-
ret.push(o.value);
|
|
73
|
-
});
|
|
74
|
-
if (this.#multi)
|
|
75
|
-
return ret;
|
|
76
|
-
return ret.length ? ret[0] : '';
|
|
77
|
-
}
|
|
78
|
-
set val(value) {
|
|
79
|
-
const that = this;
|
|
80
|
-
value = typeof value === 'string' ? [value] : value;
|
|
81
|
-
const options = [...that.#e.querySelectorAll('option')].forEach((o) => {
|
|
82
|
-
if (value.indexOf(o.value) > -1) {
|
|
83
|
-
o.setAttribute('selected', 'selected');
|
|
84
|
-
o.selected = true;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
o.removeAttribute('selected');
|
|
88
|
-
o.selected = false;
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
class TextAreaHandler extends InputBase {
|
|
95
|
-
#e;
|
|
96
|
-
constructor(e) {
|
|
97
|
-
super(e);
|
|
98
|
-
this.#e = e;
|
|
99
|
-
}
|
|
100
|
-
get val() {
|
|
101
|
-
return this.#e.value || '';
|
|
102
|
-
}
|
|
103
|
-
set val(value) {
|
|
104
|
-
this.#e.value = value;
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
const getInputHandlers = (e) => {
|
|
109
|
-
let inputList = [
|
|
110
|
-
...(e || document).querySelectorAll('input,select,textarea'),
|
|
111
|
-
], handlers = {};
|
|
112
|
-
inputList.forEach((i) => {
|
|
113
|
-
const name = i.getAttribute('name') || 'undefined';
|
|
114
|
-
if (name) {
|
|
115
|
-
let h, type = i.type, handler, setter;
|
|
116
|
-
switch (getInputName(i)) {
|
|
117
|
-
case 'input':
|
|
118
|
-
switch (type) {
|
|
119
|
-
case 'radio':
|
|
120
|
-
handler = new RadioHandler(i, (e.constructor === HTMLFormElement
|
|
121
|
-
? e
|
|
122
|
-
: e.querySelector('form')));
|
|
123
|
-
setter = DC.add(i, name, handler);
|
|
124
|
-
break;
|
|
125
|
-
case 'checkbox':
|
|
126
|
-
handler = new CheckboxHandler(i);
|
|
127
|
-
setter = DC.add(i, name, handler);
|
|
128
|
-
break;
|
|
129
|
-
default:
|
|
130
|
-
handler = new InputHandler(i);
|
|
131
|
-
setter = DC.add(i, name, handler);
|
|
132
|
-
}
|
|
133
|
-
Object.defineProperty(handlers, name, {
|
|
134
|
-
enumerable: true,
|
|
135
|
-
configurable: true,
|
|
136
|
-
get: () => {
|
|
137
|
-
return setter.val;
|
|
138
|
-
},
|
|
139
|
-
set: (value) => {
|
|
140
|
-
if (setter.val !== value) {
|
|
141
|
-
setter.val = value;
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
});
|
|
145
|
-
break;
|
|
146
|
-
case 'select':
|
|
147
|
-
handler = new SelectHandler(i);
|
|
148
|
-
setter = DC.add(i, name, handler);
|
|
149
|
-
Object.defineProperty(handlers, name, {
|
|
150
|
-
enumerable: true,
|
|
151
|
-
configurable: true,
|
|
152
|
-
get: () => {
|
|
153
|
-
return setter.val;
|
|
154
|
-
},
|
|
155
|
-
set: (value) => {
|
|
156
|
-
if (setter.val !== value) {
|
|
157
|
-
setter.val = value;
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
break;
|
|
162
|
-
case 'textarea':
|
|
163
|
-
handler = new TextAreaHandler(i);
|
|
164
|
-
setter = DC.add(i, name, handler);
|
|
165
|
-
Object.defineProperty(handlers, name, {
|
|
166
|
-
enumerable: true,
|
|
167
|
-
configurable: true,
|
|
168
|
-
get: () => {
|
|
169
|
-
return setter.val;
|
|
170
|
-
},
|
|
171
|
-
set: (value) => {
|
|
172
|
-
if (setter.val !== value) {
|
|
173
|
-
setter.val = value;
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
});
|
|
177
|
-
break;
|
|
178
|
-
default:
|
|
179
|
-
console.warn('handler missing:', name, 'for', i.tagName.toLowerCase(), i);
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
return handlers;
|
|
185
|
-
};
|
|
186
|
-
export class FormValues {
|
|
187
|
-
constructor(targetObject, propertyName, dom) {
|
|
188
|
-
let that = this, handlers = getInputHandlers(dom);
|
|
189
|
-
targetObject[propertyName] = Object.assign({}, handlers);
|
|
190
|
-
observe(targetObject, propertyName);
|
|
191
|
-
copyGettersSetters(handlers, targetObject[propertyName]);
|
|
192
|
-
[...dom.querySelectorAll('input, textarea, select')].forEach((input) => {
|
|
193
|
-
addListener(input, 'keyup', (ev) => {
|
|
194
|
-
targetObject[propertyName].notify();
|
|
195
|
-
});
|
|
196
|
-
addListener(input, 'change', (ev) => {
|
|
197
|
-
targetObject[propertyName].notify();
|
|
198
|
-
});
|
|
199
|
-
addListener(input, 'select', (ev) => {
|
|
200
|
-
targetObject[propertyName].notify();
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
//# sourceMappingURL=formValues.js.map
|
package/public/formValues.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formValues.js","sourceRoot":"","sources":["../src/formValues.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.formValues=t():e.formValues=t()}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){let t={};return[...Object.keys(e)].sort().forEach((n=>{var o;(o=e[n])&&o.constructor&&o.constructor===Object?t[n]=r(e[n]):t[n]=e[n]})),t}function n(e,t=!0){let o={};return[...Object.getOwnPropertyNames(e)].forEach((t=>{if(e[t]&&e[t].constructor&&e[t].constructor===Object){const r=n(e[t],!1);for(const e in r)o[t+"."+e]=r[e]}else o[t]=e[t]})),t?r(o):o}function o(e,t){return JSON.stringify(n(e))===JSON.stringify(n(t))}function c(e,t){let r;return()=>{clearTimeout(r),r=setTimeout((function(){e(...arguments)}),t)}}function a(e,t){const r=Object.getOwnPropertyDescriptors(e);for(const[e,n]of Object.entries(r))("get"in n||"set"in n)&&Object.defineProperty(t,e,n)}e.r(t),e.d(t,{FormValues:()=>C});var s=new Function("try {return this===window;}catch(e){ return false;}");let l=new Set;s()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>l.add(e)));class i{#e;#t=!1;#r=!1;constructor(e,t={},r="l"){this.#e=e,this.data=t,this.bubble=r}get type(){return this.#e}get stopped(){return this.#t}get immediateStopped(){return this.#r}stopPropagation(){this.#t=!0}stopImmediatePropagation(){this.stopPropagation(),this.#r=!0}}var u=new Function("try {return this===window;}catch(e){ return false;}");let f=new Set;function d(e,t){let r=[];return e.forEach((e=>{if(e&&e instanceof HTMLElement){const n=e?._mc;!t&&n?r=r.concat(Object.values(e._mc)):t&&n&&n[t]&&r.push(n[t])}})),r}function p(e,t,r=!0){let n=[];for(;e;){if(e._mc&&(t?t&&e._mc[t]&&n.push(e._mc[t]):n=n.concat(Object.values(e._mc)),r))return n;e=e.parentNode}return n}function b(e){return e&&e instanceof HTMLElement}function g(e,t,r,n=!1,o=!1){let c={once:!1};n&&(c.capture=n),o&&(c.once=o),e.addEventListener(t,r,c)}function h(e,t,r={}){let n=e;if(!n._mc){let t=E?.debug;E.debug=!1,n._mc=new E(e),E.debug=t,delete n._mc._mc}const o=n._mc;return t.length&&!o[t]&&(o[t]=r,e instanceof HTMLElement&&e.setAttribute("_mc","")),r}function m(e,t){if(!t)return;const r=e?._mc||{};r&&r[t]&&delete r[t],!Object.keys(r).length&&e instanceof HTMLElement&&e.hasAttribute("_mc")&&e.removeAttribute("_mc")}function y(e,t,r={},n="l"){let o=e?._mc;if(!o)return;let c=t instanceof i?new i(t.type,t.data,"l"):new i(t,r,"l"),a="string"!=typeof t?t:new i(t,r,n);[...Object.values(o)].forEach((e=>{e?.trigger&&"function"==typeof e?.trigger&&e?.trigger(c)})),/[ud]/.test(a.bubble)&&O(e,a)}function O(e,t){/[ud]/.test(t.bubble)&&setTimeout((()=>{if(-1===t.bubble.indexOf("l")&&(t.bubble+="l"),t.bubble.indexOf("u")>-1){let r=p(e,"",!0)?.[0].target;r&&E.trigger(r,t)}t.bubble.indexOf("d")>-1&&new Set(e._mc.children().map((e=>e?.target))).forEach((e=>{e&&E.trigger(e,t)}))}),0)}u()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>f.add(e)));class v{#n;constructor(e,t=!1){var r;this.#n=new WeakRef(e||{}),(r=this).constructor!==E&&setTimeout((()=>{r.trigger("Init")}),0),function(e){if(!u()||e.constructor===E)return;const t=e.target;if(t instanceof HTMLElement){let r=e;Object.getOwnPropertyNames(r.constructor.prototype).filter((e=>/^on[A-Z]|one[A-Z]/.test(e)&&"function"==typeof r.constructor.prototype[e])).forEach((n=>{let o=/^one/.test(n),c=n.replace(/^on[e]{0,1}/,""),a=c.toLowerCase();o&&Object.defineProperty(e,"on"+c,{configurable:!0,enumerable:!1,writable:!0,value:e=>{r.constructor.prototype[n].bind(r)(e)}}),f.has("on"+a)&&g(t,a,(e=>{r.trigger(c,e)}),!1,o)}))}}(this)}get target(){return this.#n.deref()}}class w extends v{_mc={};constructor(e){super(e)}static trigger=y;trigger(e,t={},r="l"){let n=this;if(n.constructor===w||n.constructor===E){let o=e instanceof i?new i(e.type,e.data,"l"):new i(e,t,"l"),c="string"!=typeof e?e:new i(e,t,r);return[...Object.getOwnPropertyNames(n)].forEach((e=>{n[e]?.trigger&&"function"==typeof n[e]?.trigger&&n[e]?.trigger(o)})),void(/[ud]/.test(c.bubble)&&O(n.target,c))}if(n instanceof w||n instanceof E){const n=this,o="string"!=typeof e?e:new i(e,t,r),c="on"+o.type[0].toUpperCase()+o.type.slice(1);if(o.bubble.indexOf("l")>-1&&(o.immediateStopped||"function"!=typeof n[c]||(n[c](o),n.hasOwnProperty(c)&&delete n[c])),o.stopped||"l"===o.bubble)return n;/[ud]/.test(o.bubble)&&O(n.target,o)}}}class E extends v{_mc={};constructor(e,t=!1){super(e)}static add=h;static remove=m;static trigger=y;trigger(e,t={},r){w.prototype.trigger.call(this,e,t,r)}parent(e=""){let t=this.target;return b(t)?p(t.parentNode,e,!0):[]}ancestors(e=""){let t=this?.target;return b(t)?p(this.target.parentNode,e,!1):[]}children(e=""){let t=this?.target;if(!b(t))return[];const r=Math.random().toString().replace(".",""),n='[_mc]:not([temp_id="'+r+'"] [_mc] [_mc])';t.setAttribute("temp_id",r);const o=d([...t.querySelectorAll(n)],e);return t.removeAttribute("temp_id"),o}descendants(e=""){let t=this?.target;return b(t)?d([...t.querySelectorAll("*[_mc]")],e):[]}}function j(e){return null!=e&&"object"==typeof e}function S(e){let t=new Set,r=/\{[^\{\}]*\}/g;return e.getAttributeNames().filter((t=>e.getAttribute(t)?.match(r))).forEach((n=>{new Set(e.getAttribute(n)?.match(r)).forEach((e=>t.add(e.replace(/[\{\}]/g,""))))})),[...e.childNodes].filter((e=>3===e.nodeType&&(e.nodeValue||"").match(r))).forEach((e=>{(e.nodeValue||"").match(r).forEach((e=>{t.add(e.replace(/[\{\}]/g,""))}))})),[...t].map((e=>e.replace(/[\{\}]/g,""))),[...t]}new Map;const _=[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement];class A extends E{data={};oldDisplay="";constructor(e){super(e);let t=this;S(e).forEach((e=>t.data[e]="")),k(t),t.#o(),delete t._mc}#o(){let e=this,t=e.target,r=!1;t.getAttributeNames().filter((e=>t.getAttribute(e)?.match(/\{[^\{\}]*\}/g))).forEach((r=>{let n=new Set(t.getAttribute(r)?.match(/\{[^\{\}]*\}/g));var o;e.data.observe((o=t.getAttribute(r),e=>{let c=o;n.forEach((t=>{c=c.replace(t,e[t.replace(/[\{\}]/g,"")])})),t.setAttribute(r,c)}))})),[...t.childNodes].filter((e=>3===e.nodeType&&(e.nodeValue||"").match(/\{[^\{\}]*\}/g))).forEach((n=>{r=!0;let o=new Set(n.nodeValue.match(/\{[^\{\}]*\}/g));var c;e.data.observe((c=n.nodeValue,r=>{let a=c;o.forEach((e=>{a=a.replace(e,r[e.replace(/[\{\}]/g,"")])})),Object.keys(r).some((e=>!!r[e]))&&(e.oldDisplay?t.style=e.oldDisplay:t.removeAttribute("style"),delete e.oldDisplay),n.nodeValue=a})),e.oldDisplay=t.getAttribute("style)")||"",r&&!_.includes(t.constructor)&&"FIELDSET"!==t.tagName&&(t.style.display="none")}))}onData(e){let t=this,r={};Object.keys(e.data).forEach((n=>{t.data.hasOwnProperty(n)&&(r[n]=e.data[n])})),JSON.stringify(r)!==JSON.stringify(t.data)&&Object.assign(t.data,r)}}const k=(e,t)=>((t?[t]:[...Object.getOwnPropertyNames(e)]).forEach((t=>{if("_"===t[0]||void 0===e?.[t])return e;let r,s=e[t];if(!s.prototype)switch(typeof s){case"string":r=String;break;case"number":r=Number;break;case"boolean":r=Boolean;break;case"object":r=s instanceof Array?Array:Object;break;default:return}let l=class extends r{#c=!0;constructor(e){super(e),this.constructor.callbacks=[],j(e)&&Object.getOwnPropertyNames(e).forEach((t=>{this[t]=e[t]}))}observe(e){return this.constructor.callbacks.push(e),this}bind(e){const t=this;if(j(t.valueOf())){!function(e){var t;(t=e,(t instanceof HTMLElement?[t]:[]).concat([...t.querySelectorAll("*")]).filter((e=>!!S(e).length)).filter((e=>"STYLE"!==e.tagName))).forEach((e=>{e?._mc?._placeholders||E.add(e,"_placeholders",new A(e))}))}(e);const r=[...e.querySelectorAll("[_mc]")].filter((e=>!!e?._mc?._placeholders)),o=function(e){let t=n(e);r.forEach((e=>{e&&e._mc.trigger("data",t)}))};t.constructor.callbacks.push(o),t.notify()}else console.warn("IGNORED - cannot bind a non-Object to the dom, IS:",typeof t.valueOf(),t);return this}notify(e){let t=this,r=j(t.valueOf())&&t.valueOf()instanceof Array==0?structuredClone(Object.assign({},t)):t.valueOf();return void 0!==e&&(t.#c=e),t.constructor.callbacks.forEach((e=>{e(r)})),t}},i=new l(s);Object.defineProperty(e,t,{enumerable:!0,get(){if(j(i.valueOf())){let e=structuredClone(Object.assign({},i));setTimeout(c((function(){o(structuredClone(Object.assign({},i)),e)||i.notify()}),0),0)}return i},set(e){if(typeof e==typeof i.valueOf())if(j(i.valueOf())&&i.valueOf()instanceof Array==0){let t=structuredClone(Object.assign({},i));i instanceof l==0&&(i=new l(structuredClone(Object.assign({},e))),a(e,i),i.seal()),Object.assign(i,e),setTimeout(c((function(){o(structuredClone(Object.assign({},i)),t)||i.notify()}),0),0)}else{let t=i.valueOf(),r=i.constructor.callbacks;i=new l(e),i.constructor.callbacks=r,e!==t&&i.notify()}else console.warn("IGNORED - cannot change observable types, IS:",typeof i.valueOf(),i,"- CANNOT BECOME:",typeof e)}}),e[t]=s})),e);class T{constructor(e){}}class N extends T{#a;#s;constructor(e,t){super(e),this.#a=e,this.#s=t}get val(){return new FormData(this.#s).get(this.#a.name)}set val(e){[...this.#s.querySelectorAll(`input[type="radio][name="${this.#a.name}"]`)].filter((t=>t.getAttribute("value")===e)).shift().checked=!0}}class x extends T{#a;constructor(e){super(e),this.#a=e}get val(){return this.#a.checked}set val(e){this.#a.checked=e}}class P extends T{#a;constructor(e){super(e),this.#a=e}get val(){return this.#a.value}set val(e){this.#a.value=e}}class L extends T{#a;#l=!1;constructor(e){super(e),this.#a=e,this.#l=e.multiple}get val(){const e=[];return[...this.#a.querySelectorAll("option")].filter((e=>e.selected)).forEach((t=>{t.selected&&e.push(t.value)})),this.#l?e:e.length?e[0]:""}set val(e){e="string"==typeof e?[e]:e,[...this.#a.querySelectorAll("option")].forEach((t=>{e.indexOf(t.value)>-1?(t.setAttribute("selected","selected"),t.selected=!0):(t.removeAttribute("selected"),t.selected=!1)}))}}class M extends T{#a;constructor(e){super(e),this.#a=e}get val(){return this.#a.value||""}set val(e){this.#a.value=e}}class C{constructor(e,t,r){let n=(e=>{let t=[...(e||document).querySelectorAll("input,select,textarea")],r={};return t.forEach((t=>{const n=t.getAttribute("name")||"undefined";if(n){let o,c,a=t.type;switch((e=>e.tagName.toLowerCase())(t)){case"input":switch(a){case"radio":o=new N(t,e.constructor===HTMLFormElement?e:e.querySelector("form")),c=E.add(t,n,o);break;case"checkbox":o=new x(t),c=E.add(t,n,o);break;default:o=new P(t),c=E.add(t,n,o)}Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>c.val,set:e=>{c.val!==e&&(c.val=e)}});break;case"select":o=new L(t),c=E.add(t,n,o),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>c.val,set:e=>{c.val!==e&&(c.val=e)}});break;case"textarea":o=new M(t),c=E.add(t,n,o),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>c.val,set:e=>{c.val!==e&&(c.val=e)}});break;default:console.warn("handler missing:",n,"for",t.tagName.toLowerCase(),t)}}})),r})(r);e[t]=Object.assign({},n),k(e,t),a(n,e[t]),[...r.querySelectorAll("input, textarea, select")].forEach((r=>{g(r,"keyup",(r=>{e[t].notify()})),g(r,"change",(r=>{e[t].notify()})),g(r,"select",(r=>{e[t].notify()}))}))}}return t})()));
|
package/public/helpers.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
export function isNativeObject(value) {
|
|
3
|
-
return value && value['constructor'] && value.constructor === Object;
|
|
4
|
-
}
|
|
5
|
-
export function sortObject(o) {
|
|
6
|
-
let result = {}, keys = [...Object.keys(o)].sort();
|
|
7
|
-
keys.forEach((key) => {
|
|
8
|
-
if (isNativeObject(o[key])) {
|
|
9
|
-
result[key] = sortObject(o[key]);
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
result[key] = o[key];
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
return result;
|
|
16
|
-
}
|
|
17
|
-
export function flattenObject(o, doSort = true) {
|
|
18
|
-
let result = {};
|
|
19
|
-
[...Object.getOwnPropertyNames(o)].forEach((propName) => {
|
|
20
|
-
if (o[propName] &&
|
|
21
|
-
o[propName]['constructor'] &&
|
|
22
|
-
o[propName].constructor === Object) {
|
|
23
|
-
const temp = flattenObject(o[propName], false);
|
|
24
|
-
for (const j in temp) {
|
|
25
|
-
result[propName + '.' + j] = temp[j];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
result[propName] = o[propName];
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
return doSort ? sortObject(result) : result;
|
|
33
|
-
}
|
|
34
|
-
export function deepEqual(o1, o2) {
|
|
35
|
-
return (JSON.stringify(flattenObject(o1)) === JSON.stringify(flattenObject(o2)));
|
|
36
|
-
}
|
|
37
|
-
export function nameSpace(ns, obj = {}) {
|
|
38
|
-
let nsa = ns.constructor === String ? ns.split('.') : ns;
|
|
39
|
-
if (!obj || !nsa[0] || !obj[nsa[0]]) {
|
|
40
|
-
console.warn('ns', nsa[0], 'not in', obj);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (obj[nsa[0]].constructor === Object && nsa.length > 1) {
|
|
44
|
-
return nameSpace(nsa.splice(1), obj[nsa[0]]);
|
|
45
|
-
}
|
|
46
|
-
return obj[nsa[0]];
|
|
47
|
-
}
|
|
48
|
-
export function parse(what, parseThis) {
|
|
49
|
-
var args = Array.from(arguments);
|
|
50
|
-
if (args.length > 2) {
|
|
51
|
-
while (args.length > 1) {
|
|
52
|
-
args[0] = parse(args[0], args[1]);
|
|
53
|
-
args.splice(1, 1);
|
|
54
|
-
}
|
|
55
|
-
return args[0];
|
|
56
|
-
}
|
|
57
|
-
if (typeof what === 'string') {
|
|
58
|
-
what.match(/\{[^\{\}]*\}/g)?.forEach(function (pPropname) {
|
|
59
|
-
var propname = pPropname.substring(1, pPropname.length - 1), value = nameSpace(propname, parseThis);
|
|
60
|
-
if (typeof value !== 'undefined') {
|
|
61
|
-
what = what.replace(pPropname, value);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
else if (isNativeObject(what)) {
|
|
66
|
-
switch (what.constructor) {
|
|
67
|
-
case Object:
|
|
68
|
-
Object.keys(what).forEach(function (pKey) {
|
|
69
|
-
if (what.hasOwnProperty(pKey)) {
|
|
70
|
-
what[pKey] = parse(what[pKey], parseThis);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
break;
|
|
74
|
-
case Array:
|
|
75
|
-
what.forEach(function (pValue, pKey, original) {
|
|
76
|
-
original[pKey] = parse(what[pKey], parseThis);
|
|
77
|
-
});
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return what;
|
|
82
|
-
}
|
|
83
|
-
export function kebabToPascal(str) {
|
|
84
|
-
return str
|
|
85
|
-
.split('-')
|
|
86
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
87
|
-
.join('');
|
|
88
|
-
}
|
|
89
|
-
export function debounce(func, milliseconds) {
|
|
90
|
-
let timeout;
|
|
91
|
-
return () => {
|
|
92
|
-
clearTimeout(timeout);
|
|
93
|
-
timeout = setTimeout(function () {
|
|
94
|
-
func(...arguments);
|
|
95
|
-
}, milliseconds);
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
export function htmlToElements(html) {
|
|
99
|
-
let template = document.createElement('template');
|
|
100
|
-
html = html.replace(/<([A-Za-z0-9\-]*)([^>\/]*)(\/>)/gi, '<$1$2></$1>');
|
|
101
|
-
template.innerHTML = html;
|
|
102
|
-
template.content.normalize();
|
|
103
|
-
return Array.from(template.content.childNodes);
|
|
104
|
-
}
|
|
105
|
-
export function copyGettersSetters(source, target) {
|
|
106
|
-
const descriptors = Object.getOwnPropertyDescriptors(source);
|
|
107
|
-
for (const [key, descriptor] of Object.entries(descriptors)) {
|
|
108
|
-
if ('get' in descriptor || 'set' in descriptor) {
|
|
109
|
-
Object.defineProperty(target, key, descriptor);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=helpers.js.map
|
package/public/helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|