@pageboard/html 0.14.10 → 0.14.12
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/elements/fieldsets.js +21 -14
- package/elements/pagination.js +1 -1
- package/package.json +1 -1
- package/ui/fieldset.css +1 -0
- package/ui/fieldset.js +8 -1
- package/ui/form.js +0 -34
- package/ui/select.css +3 -0
- package/ui/select.js +1 -0
package/elements/fieldsets.js
CHANGED
|
@@ -5,31 +5,38 @@ exports.fieldset = {
|
|
|
5
5
|
group: 'block',
|
|
6
6
|
context: 'form//',
|
|
7
7
|
properties: {
|
|
8
|
+
plain: {
|
|
9
|
+
title: 'Plain',
|
|
10
|
+
description: 'Without legend or borders',
|
|
11
|
+
type: 'boolean',
|
|
12
|
+
default: false
|
|
13
|
+
},
|
|
8
14
|
name: {
|
|
9
|
-
title: '
|
|
15
|
+
title: 'When input named',
|
|
10
16
|
type: 'string',
|
|
11
17
|
format: 'singleline',
|
|
12
18
|
nullable: true,
|
|
13
19
|
$helper: 'form-element'
|
|
14
20
|
},
|
|
21
|
+
op: {
|
|
22
|
+
title: 'Condition',
|
|
23
|
+
anyOf: [{
|
|
24
|
+
const: 'eq',
|
|
25
|
+
title: 'is equal to'
|
|
26
|
+
}, {
|
|
27
|
+
const: 'neq',
|
|
28
|
+
title: 'is not equal to'
|
|
29
|
+
}],
|
|
30
|
+
default: 'eq'
|
|
31
|
+
},
|
|
15
32
|
value: {
|
|
16
|
-
title: '
|
|
33
|
+
title: 'Value',
|
|
17
34
|
type: 'string',
|
|
18
|
-
format: 'singleline'
|
|
19
|
-
$filter: {
|
|
20
|
-
name: 'element-value',
|
|
21
|
-
using: 'name'
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
plain: {
|
|
25
|
-
title: 'Plain',
|
|
26
|
-
description: 'Without legend or borders',
|
|
27
|
-
type: 'boolean',
|
|
28
|
-
default: false
|
|
35
|
+
format: 'singleline'
|
|
29
36
|
}
|
|
30
37
|
},
|
|
31
38
|
contents: "fieldset_legend block+",
|
|
32
|
-
html: '<fieldset class="[plain]" data-name="[name]" data-value="[value]" is="element-fieldset"></fieldset>',
|
|
39
|
+
html: '<fieldset class="[plain]" data-name="[name]" data-op="[op]" data-value="[value]" is="element-fieldset"></fieldset>',
|
|
33
40
|
scripts: ["../ui/fieldset.js"],
|
|
34
41
|
stylesheets: ['../ui/fieldset.css']
|
|
35
42
|
};
|
package/elements/pagination.js
CHANGED
package/package.json
CHANGED
package/ui/fieldset.css
CHANGED
package/ui/fieldset.js
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
class HTMLElementFieldSet extends Page.create(HTMLFieldSetElement) {
|
|
2
2
|
static defaults = {
|
|
3
3
|
dataName: null,
|
|
4
|
+
dataOp: null,
|
|
4
5
|
dataValue: null
|
|
5
6
|
};
|
|
6
7
|
|
|
8
|
+
#compare(to) {
|
|
9
|
+
const { value } = this.options;
|
|
10
|
+
if (this.options.op == "neq") return value != to;
|
|
11
|
+
else return value == to;
|
|
12
|
+
}
|
|
13
|
+
|
|
7
14
|
fill(query) {
|
|
8
15
|
if (this.isContentEditable || !this.options?.name || !this.form) return;
|
|
9
16
|
if (!query) query = this.form.read(true);
|
|
10
17
|
const val = query[this.options.name];
|
|
11
|
-
const disabled = this.disabled = this.hidden = val
|
|
18
|
+
const disabled = this.disabled = this.hidden = !this.#compare(val);
|
|
12
19
|
for (const node of this.querySelectorAll('[name]')) {
|
|
13
20
|
node.disabled = disabled;
|
|
14
21
|
}
|
package/ui/form.js
CHANGED
|
@@ -19,40 +19,6 @@ class HTMLElementForm extends Page.create(HTMLFormElement) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
static patch(state) {
|
|
22
|
-
state.scope.$filters.form = (ctx, val, action, name) => {
|
|
23
|
-
const form = name
|
|
24
|
-
? document.querySelector(`form[name="${name}"]`)
|
|
25
|
-
: ctx.dest.node.closest('form');
|
|
26
|
-
if (!form) {
|
|
27
|
-
// eslint-disable-next-line no-console
|
|
28
|
-
console.warn("No parent form found");
|
|
29
|
-
return val;
|
|
30
|
-
}
|
|
31
|
-
if (action == "toggle") {
|
|
32
|
-
action = val ? "enable" : "disable";
|
|
33
|
-
}
|
|
34
|
-
const isQuery = ctx.expr.path[0] == "$query" && ctx.expr.path.length == 1;
|
|
35
|
-
|
|
36
|
-
state.finish(() => {
|
|
37
|
-
if (action == "enable") {
|
|
38
|
-
form.enable?.();
|
|
39
|
-
} else if (action == "disable") {
|
|
40
|
-
form.disable?.();
|
|
41
|
-
} else if (action == "fill") {
|
|
42
|
-
if (val == null) {
|
|
43
|
-
form.reset?.();
|
|
44
|
-
} else if (typeof val == "object") {
|
|
45
|
-
const vars = form.fill?.(this.linearizeValues(val), state.scope) ?? [];
|
|
46
|
-
if (isQuery) {
|
|
47
|
-
for (const name of vars) state.vars[name] = true;
|
|
48
|
-
}
|
|
49
|
-
form.save?.();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
return val;
|
|
55
|
-
};
|
|
56
22
|
state.finish(() => {
|
|
57
23
|
let index = 0;
|
|
58
24
|
for (const node of document.querySelectorAll('label[for]')) {
|
package/ui/select.css
CHANGED
package/ui/select.js
CHANGED