@pageboard/html 0.11.28 → 0.12.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/elements/accordion.js +0 -1
- package/elements/card.js +5 -5
- package/elements/consent.js +1 -1
- package/elements/embed.js +1 -1
- package/elements/fieldsets.js +2 -2
- package/elements/form.js +2 -2
- package/elements/grid.js +3 -3
- package/elements/heading.js +1 -1
- package/elements/image.js +4 -4
- package/elements/input-date.js +3 -4
- package/elements/inputs.js +12 -12
- package/elements/layout.js +8 -9
- package/elements/link.js +1 -1
- package/elements/menu.js +7 -7
- package/elements/navigation.js +3 -16
- package/elements/pagination.js +1 -1
- package/elements/paragraph.js +2 -2
- package/elements/sitemap.js +8 -8
- package/elements/sticky.js +2 -2
- package/elements/tab.js +1 -1
- package/elements/table.js +10 -10
- package/elements/template.js +1 -1
- package/lib/nouislider.js +28 -0
- package/package.json +1 -1
- package/ui/accordion.js +3 -21
- package/ui/consent.css +3 -3
- package/ui/consent.js +9 -13
- package/ui/embed.js +11 -17
- package/ui/fieldset-list.js +9 -9
- package/ui/fieldset.js +4 -8
- package/ui/form.js +143 -158
- package/ui/heading-helper.js +13 -19
- package/ui/image.js +19 -30
- package/ui/input-date-slot.js +2 -2
- package/ui/input-date.js +2 -7
- package/ui/input-file.js +58 -61
- package/ui/input-range.js +4 -8
- package/ui/layout.js +2 -6
- package/ui/media.js +15 -28
- package/ui/menu.js +23 -27
- package/ui/pagination.js +2 -2
- package/ui/query-tags.js +4 -4
- package/ui/rating.js +2 -2
- package/ui/scroll-link.js +2 -9
- package/ui/select.js +21 -23
- package/ui/sitemap-helper.js +5 -5
- package/ui/sitemap.js +15 -15
- package/ui/sticky.js +2 -6
- package/ui/tab-helper.js +32 -34
- package/ui/tab.js +2 -4
- package/ui/time.js +2 -7
- package/ui/transition.js +21 -21
package/ui/sitemap-helper.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class HTMLElementSitepage extends
|
|
1
|
+
class HTMLElementSitepage extends Page.Element {
|
|
2
2
|
static defaults = {
|
|
3
3
|
url: null,
|
|
4
4
|
index: (x) => parseInt(x) || 0
|
|
@@ -61,7 +61,7 @@ class HTMLElementSitepage extends VirtualHTMLElement {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
|
|
65
|
+
Page.define('element-sitepage', HTMLElementSitepage);
|
|
66
|
+
Page.extend('element-sitemap', HTMLElementSitepage);
|
|
67
|
+
|
package/ui/sitemap.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class HTMLElementSitemap extends
|
|
1
|
+
class HTMLElementSitemap extends Page.Element {
|
|
2
2
|
static makeTree(tree, parent) {
|
|
3
3
|
let page = tree._;
|
|
4
4
|
if (page) {
|
|
@@ -52,27 +52,27 @@ class HTMLElementSitemap extends VirtualHTMLElement {
|
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
build(state) {
|
|
55
|
+
async build(state) {
|
|
56
56
|
if (this.firstElementChild.children.length > 0 && this.isContentEditable) {
|
|
57
57
|
// workaround... build is called a second time with pagecut-placeholder set
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
60
|
+
const res = await Pageboard.fetch('get', `/.api/pages`);
|
|
61
|
+
const scope = await Pageboard.bundle(state, res);
|
|
62
|
+
scope.$element = scope.$elements.sitemap;
|
|
63
|
+
const tree = this.constructor.transformResponse(res);
|
|
64
|
+
const node = Pageboard.render({
|
|
65
|
+
item: tree
|
|
66
|
+
}, scope);
|
|
67
|
+
// only change block content
|
|
68
|
+
const src = node.firstElementChild;
|
|
69
|
+
const dst = this.firstElementChild;
|
|
70
|
+
dst.textContent = '';
|
|
71
|
+
while (src.firstChild) dst.appendChild(src.firstChild);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Page.define('element-sitemap', HTMLElementSitemap);
|
|
77
77
|
|
|
78
78
|
|
package/ui/sticky.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
class HTMLElementStickyNav extends
|
|
2
|
-
constructor() {
|
|
3
|
-
super();
|
|
4
|
-
if (this.init) this.init();
|
|
5
|
-
}
|
|
1
|
+
class HTMLElementStickyNav extends Page.Element {
|
|
6
2
|
#lastScroll;
|
|
7
3
|
#currentScroll() {
|
|
8
4
|
return document.documentElement.scrollTop;
|
|
@@ -33,4 +29,4 @@ class HTMLElementStickyNav extends HTMLElement {
|
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
Page.define('element-sticky-nav', HTMLElementStickyNav, 'header');
|
package/ui/tab-helper.js
CHANGED
|
@@ -1,38 +1,36 @@
|
|
|
1
|
-
Page.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
Page.extend('element-tabs', class TabsHelper {
|
|
2
|
+
setup(state) {
|
|
3
|
+
if (!this.observer) this.observer = new MutationObserver(records => {
|
|
4
|
+
for (const record of records) this.mutate(record, state);
|
|
5
|
+
});
|
|
6
|
+
this.observer.observe(this.items, {
|
|
7
|
+
childList: true
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
close() {
|
|
11
|
+
if (this.observer) this.observer.disconnect();
|
|
12
|
+
}
|
|
13
|
+
mutate(record, state) {
|
|
14
|
+
const items = this.items;
|
|
15
|
+
const tabs = this.tabs;
|
|
16
|
+
if (!items || !tabs) return;
|
|
17
|
+
for (const node of record.addedNodes) {
|
|
18
|
+
tabs.insertBefore(state.scope.$view.render({
|
|
19
|
+
type: 'tab'
|
|
20
|
+
}), tabs.children[items.children.indexOf(node) + 1]);
|
|
10
21
|
}
|
|
11
|
-
|
|
12
|
-
|
|
22
|
+
for (let i = 0; i < record.removedNodes.length; i++) {
|
|
23
|
+
const pos = record.target.childNodes.indexOf(record.previousSibling) + 1 + i;
|
|
24
|
+
const child = tabs.childNodes[pos];
|
|
25
|
+
if (child) child.remove();
|
|
13
26
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
for (let i = 0; i < record.removedNodes.length; i++) {
|
|
24
|
-
const pos = record.target.childNodes.indexOf(record.previousSibling) + 1 + i;
|
|
25
|
-
const child = tabs.childNodes[pos];
|
|
26
|
-
if (child) child.remove();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
handleClick(e, state) {
|
|
30
|
-
const item = e.target.closest('[block-type="tab_item"]');
|
|
31
|
-
if (!item) return;
|
|
32
|
-
const menu = item.parentNode;
|
|
33
|
-
if (!menu || menu.parentNode != this) return;
|
|
34
|
-
this.options.index = this.dataset.index = menu.children.indexOf(item);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
27
|
+
}
|
|
28
|
+
handleClick(e, state) {
|
|
29
|
+
const item = e.target.closest('[block-type="tab_item"]');
|
|
30
|
+
if (!item) return;
|
|
31
|
+
const menu = item.parentNode;
|
|
32
|
+
if (!menu || menu.parentNode != this) return;
|
|
33
|
+
this.options.index = this.dataset.index = menu.children.indexOf(item);
|
|
34
|
+
}
|
|
37
35
|
});
|
|
38
36
|
|
package/ui/tab.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class HTMLElementTabs extends
|
|
1
|
+
class HTMLElementTabs extends Page.Element {
|
|
2
2
|
static defaults = {
|
|
3
3
|
index: (x) => parseInt(x) || 0
|
|
4
4
|
};
|
|
@@ -30,6 +30,4 @@ class HTMLElementTabs extends VirtualHTMLElement {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
Page.
|
|
34
|
-
VirtualHTMLElement.define('element-tabs', HTMLElementTabs);
|
|
35
|
-
});
|
|
33
|
+
Page.define('element-tabs', HTMLElementTabs);
|
package/ui/time.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
class HTMLElementTime extends HTMLTimeElement {
|
|
2
|
-
constructor() {
|
|
3
|
-
super();
|
|
4
|
-
if (this.init) this.init();
|
|
5
|
-
}
|
|
6
|
-
|
|
1
|
+
class HTMLElementTime extends Page.create(HTMLTimeElement) {
|
|
7
2
|
static defaults = {
|
|
8
3
|
dataFormat: null,
|
|
9
4
|
dataTimezone: null,
|
|
@@ -19,4 +14,4 @@ class HTMLElementTime extends HTMLTimeElement {
|
|
|
19
14
|
}
|
|
20
15
|
}
|
|
21
16
|
|
|
22
|
-
|
|
17
|
+
Page.define(`element-time`, HTMLElementTime, 'time');
|
package/ui/transition.js
CHANGED
|
@@ -21,6 +21,8 @@ Page.init(state => {
|
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
class Transition {
|
|
24
|
+
#defer;
|
|
25
|
+
|
|
24
26
|
static event(name) {
|
|
25
27
|
const low = name.toLowerCase();
|
|
26
28
|
const caps = name[0].toUpperCase() + low.substring(1);
|
|
@@ -57,37 +59,35 @@ class Transition {
|
|
|
57
59
|
from.after(to);
|
|
58
60
|
}
|
|
59
61
|
start() {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
});
|
|
62
|
+
this.#defer = new Deferred();
|
|
63
|
+
if (!this.ok) {
|
|
64
|
+
this.destroy();
|
|
65
|
+
} else {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
this.root.addEventListener(this.event, this);
|
|
68
|
+
this.root.classList.add('transitioning');
|
|
69
|
+
});
|
|
70
|
+
this.safe = setTimeout(() => {
|
|
71
|
+
console.warn("Transition timeout");
|
|
72
|
+
this.end();
|
|
73
|
+
}, 4000);
|
|
74
|
+
}
|
|
75
75
|
}
|
|
76
76
|
cancel() {
|
|
77
77
|
this.ok = false;
|
|
78
78
|
this.root.classList.remove('transitioning');
|
|
79
|
-
if (this
|
|
80
|
-
this.resolve();
|
|
81
|
-
|
|
79
|
+
if (this.#defer) {
|
|
80
|
+
this.#defer.resolve();
|
|
81
|
+
this.#defer = null;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
end() {
|
|
85
85
|
this.ok = false;
|
|
86
86
|
this.from.remove();
|
|
87
87
|
this.destroy();
|
|
88
|
-
if (this
|
|
89
|
-
this.resolve();
|
|
90
|
-
|
|
88
|
+
if (this.#defer) {
|
|
89
|
+
this.#defer.resolve();
|
|
90
|
+
this.#defer = null;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
scrollTo(obj) {
|