wj-elements 0.0.5 → 0.0.7
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/localize-762a9f0f.js +43 -0
- package/dist/style.css +2 -2
- package/dist/wj-animation.js +65 -0
- package/dist/wj-aside.js +8 -10
- package/dist/wj-avatar.js +19 -21
- package/dist/wj-badge.js +16 -16
- package/dist/wj-breadcrumb.js +7 -11
- package/dist/wj-breadcrumbs.js +5 -7
- package/dist/wj-button-group.js +11 -13
- package/dist/wj-button.js +36 -39
- package/dist/wj-card-content.js +11 -13
- package/dist/wj-card-controls.js +6 -8
- package/dist/wj-card-header.js +11 -13
- package/dist/wj-card-subtitle.js +9 -11
- package/dist/wj-card-title.js +7 -9
- package/dist/wj-card.js +13 -15
- package/dist/wj-carousel-item.js +32 -0
- package/dist/wj-carousel.js +178 -0
- package/dist/wj-checkbox.js +11 -11
- package/dist/wj-chip.js +17 -17
- package/dist/wj-col.js +11 -12
- package/dist/wj-color-picker.js +192 -179
- package/dist/wj-container.js +7 -9
- package/dist/wj-copy-button.js +1 -3
- package/dist/wj-dialog.js +20 -22
- package/dist/wj-divider.js +7 -9
- package/dist/wj-dropdown.js +10 -14
- package/dist/wj-element.js +9 -9
- package/dist/wj-fetchAndParseCSS.js +43 -0
- package/dist/wj-file-upload-item.js +63 -0
- package/dist/wj-file-upload.js +221 -0
- package/dist/wj-footer.js +9 -11
- package/dist/wj-form.js +6 -8
- package/dist/wj-format-digital.js +51 -0
- package/dist/wj-grid.js +9 -10
- package/dist/wj-header.js +9 -11
- package/dist/wj-icon-picker.js +78 -58
- package/dist/wj-icon.js +45 -48
- package/dist/wj-img-comparer.js +12 -14
- package/dist/wj-img.js +14 -16
- package/dist/wj-infinite-scroll.js +27 -22
- package/dist/wj-input-file.js +47 -0
- package/dist/wj-input.js +30 -23
- package/dist/wj-item.js +1 -3
- package/dist/wj-label.js +10 -10
- package/dist/wj-list.js +1 -3
- package/dist/wj-main.js +1 -3
- package/dist/wj-masonry.js +133 -0
- package/dist/wj-master.js +284 -249
- package/dist/wj-menu-button.js +10 -12
- package/dist/wj-menu-item.js +49 -46
- package/dist/wj-menu-label.js +2 -2
- package/dist/wj-menu.js +8 -10
- package/dist/wj-popup.js +89 -88
- package/dist/wj-progress-bar.js +14 -16
- package/dist/wj-radio-group.js +5 -7
- package/dist/wj-radio.js +13 -15
- package/dist/wj-rate.js +127 -0
- package/dist/wj-relative-time.js +50 -0
- package/dist/wj-router-link.js +11 -13
- package/dist/wj-row.js +11 -12
- package/dist/wj-slider.js +6 -6
- package/dist/wj-split-view.js +1 -3
- package/dist/wj-textarea.js +17 -19
- package/dist/wj-thumbnail.js +12 -14
- package/dist/wj-toast.js +1 -1
- package/dist/wj-toggle.js +9 -9
- package/dist/wj-toolbar.js +13 -15
- package/dist/wj-tooltip.js +16 -18
- package/dist/wj-visually-hidden.js +6 -8
- package/package.json +1 -1
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var h = (
|
|
4
|
-
import g from "./wj-element.js";
|
|
1
|
+
var u = Object.defineProperty;
|
|
2
|
+
var m = (l, r, t) => r in l ? u(l, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[r] = t;
|
|
3
|
+
var h = (l, r, t) => (m(l, typeof r != "symbol" ? r + "" : r, t), t);
|
|
4
|
+
import g, { event as p } from "./wj-element.js";
|
|
5
5
|
import "./wj-store.js";
|
|
6
|
-
const
|
|
7
|
-
* direction.scss
|
|
8
|
-
*/:host{--wj-infinite-scroll-width: 100%;--wj-infinite-scroll-height: 300px;overflow-x:auto;width:var(--wj-infinite-scroll-width);height:var(--wj-infinite-scroll-height);display:block}
|
|
6
|
+
const f = `:host{--wj-infinite-scroll-width: 100%;--wj-infinite-scroll-height: 300px;overflow-x:auto;width:var(--wj-infinite-scroll-width);height:var(--wj-infinite-scroll-height);display:block}
|
|
9
7
|
`;
|
|
10
|
-
class
|
|
8
|
+
class w extends g {
|
|
11
9
|
constructor(t = {}) {
|
|
12
10
|
super();
|
|
13
11
|
h(this, "className", "InfiniteScroll");
|
|
14
12
|
h(this, "scrollEvent", () => {
|
|
15
13
|
this.addEventListener("scroll", this.onScroll);
|
|
16
14
|
});
|
|
15
|
+
h(this, "unScrollEvent", () => {
|
|
16
|
+
this.removeEventListener("scroll", this.onScroll);
|
|
17
|
+
});
|
|
17
18
|
h(this, "onScroll", (t) => {
|
|
18
19
|
const { scrollTop: s, scrollHeight: e, clientHeight: i } = t.target;
|
|
19
20
|
s + i >= e - 300 && this.currentPage <= this.totalPages && this.isLoading.includes(this.currentPage) && (this.currentPage++, this.loadPages(this.currentPage));
|
|
@@ -21,17 +22,17 @@ class p extends g {
|
|
|
21
22
|
this.totalPages = 0, this.isLoading = [], String.prototype.interpolate = function(s) {
|
|
22
23
|
let e = this, i = e.match(/\{{.*?\}}/g);
|
|
23
24
|
if (i)
|
|
24
|
-
for (let
|
|
25
|
-
let
|
|
26
|
-
|
|
25
|
+
for (let a of i) {
|
|
26
|
+
let o = a.replace("{{", "").replace("}}", ""), n = "";
|
|
27
|
+
o.split(".").forEach((c) => {
|
|
27
28
|
n = n == "" ? s[c] : n[c];
|
|
28
|
-
}), e = e.replace(
|
|
29
|
+
}), e = e.replace(a, n);
|
|
29
30
|
}
|
|
30
31
|
return e;
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
static get cssStyleSheet() {
|
|
34
|
-
return
|
|
35
|
+
return f;
|
|
35
36
|
}
|
|
36
37
|
static get observedAttributes() {
|
|
37
38
|
return [];
|
|
@@ -43,11 +44,11 @@ class p extends g {
|
|
|
43
44
|
this.iterate = this.querySelector("[iterate]"), this.infiniteScrollTemplate = this.iterate.outerHTML, this.iterate.remove(), this.setAttribute("style", "height: " + this.height);
|
|
44
45
|
}
|
|
45
46
|
draw(t, s, e) {
|
|
46
|
-
let i = document.createDocumentFragment(),
|
|
47
|
-
return
|
|
47
|
+
let i = document.createDocumentFragment(), a = document.createElement("slot"), o = document.createElement("div");
|
|
48
|
+
return o.classList.add("loader"), i.appendChild(o), i.appendChild(a), this.loaderEl = o, i;
|
|
48
49
|
}
|
|
49
50
|
async afterDraw() {
|
|
50
|
-
this.queryParams = this.queryParams || "", this.size = +this.size || 10, this.currentPage = 0, await this.loadPages(this.currentPage);
|
|
51
|
+
this.queryParams = this.queryParams || "", this.size = +this.size || 10, this.currentPage = 0, this.scrollEvent(), await this.loadPages(this.currentPage);
|
|
51
52
|
}
|
|
52
53
|
/** @function getPages
|
|
53
54
|
* @description nacitanie dalsej stranky
|
|
@@ -76,11 +77,15 @@ class p extends g {
|
|
|
76
77
|
async loadPages(t) {
|
|
77
78
|
this.showLoader();
|
|
78
79
|
try {
|
|
79
|
-
if (this.hasMorePages(t)) {
|
|
80
|
+
if (this.hasMorePages(t) || typeof this.setCustomData == "function") {
|
|
80
81
|
let s, e;
|
|
81
|
-
typeof this.setCustomData == "function" ? e = await this.setCustomData(t) : e = await this.getPages(t), this.totalPages = e.totalPages, this.currentPage = t
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
typeof this.setCustomData == "function" ? e = await this.setCustomData(t) : e = await this.getPages(t), this.totalPages = e.totalPages, this.currentPage = t;
|
|
83
|
+
const i = new DOMParser();
|
|
84
|
+
let a = this;
|
|
85
|
+
this.hasAttribute("placement") && (a = this.querySelector(this.placement)), e.data.forEach((o) => {
|
|
86
|
+
const n = this.infiniteScrollTemplate.interpolate(o), d = i.parseFromString(n, "text/html").querySelector(this.iterate.tagName.toLowerCase());
|
|
87
|
+
p.addListener(d, "click", "wj-infinite-scroll:click-item", null, { stopPropagation: !0 }), a.insertAdjacentElement("beforeend", d);
|
|
88
|
+
}), this.isLoading.push(t);
|
|
84
89
|
}
|
|
85
90
|
} catch (s) {
|
|
86
91
|
console.log(s.message);
|
|
@@ -89,7 +94,7 @@ class p extends g {
|
|
|
89
94
|
}
|
|
90
95
|
}
|
|
91
96
|
}
|
|
92
|
-
customElements.get("wj-infinite-scroll") || window.customElements.define("wj-infinite-scroll",
|
|
97
|
+
customElements.get("wj-infinite-scroll") || window.customElements.define("wj-infinite-scroll", w);
|
|
93
98
|
export {
|
|
94
|
-
|
|
99
|
+
w as InfiniteScroll
|
|
95
100
|
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var c = Object.defineProperty;
|
|
2
|
+
var b = (i, r, t) => r in i ? c(i, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[r] = t;
|
|
3
|
+
var u = (i, r, t) => (b(i, typeof r != "symbol" ? r + "" : r, t), t);
|
|
4
|
+
import m from "./wj-element.js";
|
|
5
|
+
import "./wj-store.js";
|
|
6
|
+
const h = `:host{--wj-input-font-family: var(--wj-font-family);--wj-input-background-color: var(--wj-background);--wj-input-color: var(--wj-color);--wj-input-color-invalid: var(--wj-color-danger);--wj-input-border-color: var(--wj-border-color);--wj-input-border-color-focus: var(--wj-color-primary);--wj-input-border-width: 1px;--wj-input-border-style: solid;--wj-input-border-radius: 4px;--wj-input-margin-bottom: .5rem;--wj-input-line-height: 20px;--wj-input-slot-padding-inline: .5rem;width:100%;margin-bottom:var(--wj-input-margin-bottom);display:block}:host .wrapper{display:flex;width:100%}:host .native-input .input-wrapper{width:100%;position:relative}:host .native-input.default{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:0;padding-top:.25rem;padding-bottom:.25rem;transition:background-color .2s ease;cursor:text}:host .native-input.default .input-wrapper{margin-inline:.5rem}:host .native-input.default.focused{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.default.focused label{opacity:.67;font-size:12px;letter-spacing:normal}:host .native-input.default input{border:none;height:25px;min-height:25px;padding:0;margin-top:-4px;background:none;box-shadow:none;width:100%}:host .native-input.default label{margin:0;display:block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.default label.fade{opacity:.5;font-size:12px;letter-spacing:normal}:host .native-input.default ::slotted([slot=start]){border-left:none;border-top:none;border-bottom:none}:host .native-input.default ::slotted([slot=end]){border-right:none;border-top:none;border-bottom:none}:host .native-input.standard{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);padding-inline:0;padding-top:0;padding-bottom:0;transition:background-color .2s ease;cursor:text}:host .native-input.standard.focused input{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.standard input{display:block;min-height:32px;padding-inline:.5rem;padding-top:0;padding-bottom:0;background:none;box-shadow:none;width:100%;box-sizing:border-box;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color)}:host .native-input.standard label{margin:0;display:inline-block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.standard .input-wrapper:hover .clear{visibility:visible}:host .native-input.standard ::slotted([slot=start]){border-right:none;border-radius:var(--wj-input-border-radius) 0 0 var(--wj-input-border-radius)}:host .native-input.standard ::slotted([slot=end]){border-left:none;border-radius:0 var(--wj-input-border-radius) var(--wj-input-border-radius) 0}:host .native-input.standard.has-start input{border-top-left-radius:0;border-bottom-left-radius:0}:host .native-input.standard.has-end input{border-top-right-radius:0;border-bottom-right-radius:0}:host .native-input.standard .error-message{position:static;background:transparent;padding:.25rem 0;left:auto;transform:none;color:var(--wj-input-color-invalid);font-size:12px;line-height:normal}.clear{visibility:hidden;position:absolute;right:0;top:3px;--wj-padding-top: .25rem;--wj-padding-start: .25rem;--wj-padding-end: .25rem;--wj-padding-bottom: .25rem;--wj-button-margin-inline: 0 .25rem}:host([required]) .input-wrapper:after{color:var(--wj-input-color-invalid);content:"*";font-family:var(--wj-force-mac-font-family);font-size:20px;position:absolute;right:10px;top:2px}:host([required]) .standard .input-wrapper:after{top:0}:host([invalid]) .error-message{display:block}:host([invalid]) .default label{opacity:1!important;color:var(--wj-input-color-invalid)!important;animation-name:shake;animation-duration:.4s;animation-iteration-count:1}::slotted([slot=start]),::slotted([slot=end]){display:flex;align-items:center;border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:var(--wj-input-slot-padding-inline)}slot[name=start],slot[name=end]{display:flex}input{background-color:var(--wj-input-background-color);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);font-family:var(--wjinput-font-family);color:var(--wj-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;padding:.25rem .5rem;line-height:var(--wj-input-line-height);font-size:14px;font-weight:400;vertical-align:middle;min-height:32px}.error-message{display:none;position:absolute;width:auto;max-width:100%;min-width:auto;border-radius:50px;background:black;padding:.25rem .5rem;top:0;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;line-height:normal}@keyframes shake{8%,41%{transform:translate(-4px)}25%,58%{transform:translate(4px)}75%{transform:translate(-2px)}92%{transform:translate(2px)}0%,to{transform:translate(0)}}
|
|
7
|
+
`;
|
|
8
|
+
class w extends m {
|
|
9
|
+
constructor(t = {}) {
|
|
10
|
+
super();
|
|
11
|
+
u(this, "className", "Input");
|
|
12
|
+
}
|
|
13
|
+
static get cssStyleSheet() {
|
|
14
|
+
return h;
|
|
15
|
+
}
|
|
16
|
+
static get observedAttributes() {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
setupAttributes() {
|
|
20
|
+
this.isShadowRoot = "open";
|
|
21
|
+
}
|
|
22
|
+
draw(t, d, s) {
|
|
23
|
+
let o = document.createDocumentFragment(), n = document.createElement("div");
|
|
24
|
+
n.setAttribute("part", "native"), n.classList.add("native-input-file", this.variant || "default");
|
|
25
|
+
let a = document.createElement("input");
|
|
26
|
+
a.setAttribute("type", "file"), a.setAttribute("multiple", ""), a.setAttribute("hidden", "");
|
|
27
|
+
let e = document.createElement("wj-input");
|
|
28
|
+
e.setAttribute("variant", "standard"), e.setAttribute("type", "text"), e.setAttribute("placeholder", "Click to upload"), e.setAttribute("readonly", "");
|
|
29
|
+
let p = document.createElement("span");
|
|
30
|
+
p.setAttribute("slot", "start");
|
|
31
|
+
let l = document.createElement("wj-icon");
|
|
32
|
+
return l.setAttribute("slot", "icon-only"), l.setAttribute("name", "cloud-upload"), p.appendChild(l), e.appendChild(p), n.appendChild(e), n.appendChild(a), o.appendChild(n), this.native = n, this.input = e, this.fileInput = a, o;
|
|
33
|
+
}
|
|
34
|
+
afterDraw() {
|
|
35
|
+
this.input.addEventListener("click", () => {
|
|
36
|
+
this.fileInput.click();
|
|
37
|
+
}), this.fileInput.addEventListener("change", (t) => {
|
|
38
|
+
for (var d = t.target.files, s = [], o = 0; o < d.length; o++)
|
|
39
|
+
s.push(d[o].name);
|
|
40
|
+
this.input.value = s.join(", ");
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
customElements.get("wj-input-file") || window.customElements.define("wj-input-file", w);
|
|
45
|
+
export {
|
|
46
|
+
w as InputFile
|
|
47
|
+
};
|
package/dist/wj-input.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var b = (n, a, t) => (
|
|
4
|
-
import
|
|
1
|
+
var j = Object.defineProperty;
|
|
2
|
+
var y = (n, a, t) => a in n ? j(n, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[a] = t;
|
|
3
|
+
var b = (n, a, t) => (y(n, typeof a != "symbol" ? a + "" : a, t), t);
|
|
4
|
+
import x, { event as g } from "./wj-element.js";
|
|
5
5
|
import "./wj-store.js";
|
|
6
|
-
const
|
|
7
|
-
* direction.scss
|
|
8
|
-
*/:host{--wj-input-font-family: Inter UI, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;--wj-input-background-color: #fff;--wj-input-color: #212121;--wj-input-color-invalid: #b91e1e;--wj-input-border-color: rgba(33, 33, 33, .14);--wj-input-border-color-focus: #7252D3;--wj-input-border-width: 1px;--wj-input-border-style: solid;--wj-input-border-radius: 4px;--wj-input-margin-bottom: .5rem;--wj-input-line-height: 20px;--wj-input-slot-padding-inline: .5rem;width:100%;margin-bottom:var(--wj-input-margin-bottom);display:block}:host .wrapper{display:flex;width:100%}:host .native-input .input-wrapper{width:100%}:host .native-input.default{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);border-top-color:#08080824;padding-inline:0;padding-top:.25rem;padding-bottom:.25rem;transition:background-color .2s ease;cursor:text}:host .native-input.default .input-wrapper{margin-inline:.5rem}:host .native-input.default.focused{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.default.focused label{opacity:.67;font-size:12px;letter-spacing:normal}:host .native-input.default input{border:none;height:25px;min-height:25px;padding:0;margin-top:-4px;background:none;box-shadow:none;width:100%}:host .native-input.default label{margin:0;display:block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.default label.fade{opacity:.5;font-size:12px;letter-spacing:normal}:host .native-input.default ::slotted([slot=start]){border-left:none;border-top:none;border-bottom:none}:host .native-input.default ::slotted([slot=end]){border-right:none;border-top:none;border-bottom:none}:host .native-input.standard{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);padding-inline:0;padding-top:0;padding-bottom:0;transition:background-color .2s ease;cursor:text}:host .native-input.standard.focused input{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.standard input{display:block;min-height:32px;padding-inline:.5rem;padding-top:0;padding-bottom:0;background:none;box-shadow:none;width:100%;box-sizing:border-box;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color)}:host .native-input.standard label{margin:0;display:inline-block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.standard ::slotted([slot=start]){border-right:none;border-radius:var(--wj-input-border-radius) 0 0 var(--wj-input-border-radius)}:host .native-input.standard ::slotted([slot=end]){border-left:none;border-radius:0 var(--wj-input-border-radius) var(--wj-input-border-radius) 0}:host .native-input.standard.has-start input{border-top-left-radius:0;border-bottom-left-radius:0}:host .native-input.standard.has-end input{border-top-right-radius:0;border-bottom-right-radius:0}:host .native-input.standard .error-message{position:static;background:transparent;padding:.25rem 0;left:auto;transform:none;color:var(--wj-input-color-invalid);font-size:12px;line-height:normal}:host([required]) .input-wrapper:after{color:var(--wj-input-color-invalid);content:"*";font-family:-apple-system,BlinkMacSystemFont,Inter UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:20px;position:absolute;right:10px;top:2px}:host([required]) .standard .input-wrapper:after{top:0}:host([invalid]) .error-message{display:block}:host([invalid]) .default label{opacity:1!important;color:var(--wj-input-color-invalid)!important;animation-name:shake;animation-duration:.4s;animation-iteration-count:1}::slotted([slot=start]),::slotted([slot=end]){display:flex;align-items:center;border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:var(--wj-input-slot-padding-inline)}slot[name=start],slot[name=end]{display:flex}input{background-color:var(--wj-input-background-color);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);font-family:var(--wjinput-font-family);color:var(--wj-input-color);border-top-color:#21212136;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;padding:.25rem .5rem;line-height:var(--wj-input-line-height);font-size:14px;font-weight:400;vertical-align:middle;min-height:32px}.error-message{display:none;position:absolute;width:auto;max-width:100%;min-width:auto;border-radius:50px;background:black;padding:.25rem .5rem;top:0;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;line-height:normal}@keyframes shake{8%,41%{transform:translate(-4px)}25%,58%{transform:translate(4px)}75%{transform:translate(-2px)}92%{transform:translate(2px)}0%,to{transform:translate(0)}}
|
|
6
|
+
const A = `:host{--wj-input-font-family: var(--wj-font-family);--wj-input-background-color: var(--wj-background);--wj-input-color: var(--wj-color);--wj-input-color-invalid: var(--wj-color-danger);--wj-input-border-color: var(--wj-border-color);--wj-input-border-color-focus: var(--wj-color-primary);--wj-input-border-width: 1px;--wj-input-border-style: solid;--wj-input-border-radius: 4px;--wj-input-margin-bottom: .5rem;--wj-input-line-height: 20px;--wj-input-slot-padding-inline: .5rem;width:100%;margin-bottom:var(--wj-input-margin-bottom);display:block}:host .wrapper{display:flex;width:100%}:host .native-input .input-wrapper{width:100%;position:relative}:host .native-input.default{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:0;padding-top:.25rem;padding-bottom:.25rem;transition:background-color .2s ease;cursor:text}:host .native-input.default .input-wrapper{margin-inline:.5rem}:host .native-input.default.focused{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.default.focused label{opacity:.67;font-size:12px;letter-spacing:normal}:host .native-input.default input{border:none;height:25px;min-height:25px;padding:0;margin-top:-4px;background:none;box-shadow:none;width:100%}:host .native-input.default label{margin:0;display:block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.default label.fade{opacity:.5;font-size:12px;letter-spacing:normal}:host .native-input.default ::slotted([slot=start]){border-left:none;border-top:none;border-bottom:none}:host .native-input.default ::slotted([slot=end]){border-right:none;border-top:none;border-bottom:none}:host .native-input.standard{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);padding-inline:0;padding-top:0;padding-bottom:0;transition:background-color .2s ease;cursor:text}:host .native-input.standard.focused input{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.standard input{display:block;min-height:32px;padding-inline:.5rem;padding-top:0;padding-bottom:0;background:none;box-shadow:none;width:100%;box-sizing:border-box;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color)}:host .native-input.standard label{margin:0;display:inline-block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.standard .input-wrapper:hover .clear{visibility:visible}:host .native-input.standard ::slotted([slot=start]){border-right:none;border-radius:var(--wj-input-border-radius) 0 0 var(--wj-input-border-radius)}:host .native-input.standard ::slotted([slot=end]){border-left:none;border-radius:0 var(--wj-input-border-radius) var(--wj-input-border-radius) 0}:host .native-input.standard.has-start input{border-top-left-radius:0;border-bottom-left-radius:0}:host .native-input.standard.has-end input{border-top-right-radius:0;border-bottom-right-radius:0}:host .native-input.standard .error-message{position:static;background:transparent;padding:.25rem 0;left:auto;transform:none;color:var(--wj-input-color-invalid);font-size:12px;line-height:normal}.clear{visibility:hidden;position:absolute;right:0;top:3px;--wj-padding-top: .25rem;--wj-padding-start: .25rem;--wj-padding-end: .25rem;--wj-padding-bottom: .25rem;--wj-button-margin-inline: 0 .25rem}:host([required]) .input-wrapper:after{color:var(--wj-input-color-invalid);content:"*";font-family:var(--wj-force-mac-font-family);font-size:20px;position:absolute;right:10px;top:2px}:host([required]) .standard .input-wrapper:after{top:0}:host([invalid]) .error-message{display:block}:host([invalid]) .default label{opacity:1!important;color:var(--wj-input-color-invalid)!important;animation-name:shake;animation-duration:.4s;animation-iteration-count:1}::slotted([slot=start]),::slotted([slot=end]){display:flex;align-items:center;border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:var(--wj-input-slot-padding-inline)}slot[name=start],slot[name=end]{display:flex}input{background-color:var(--wj-input-background-color);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);font-family:var(--wjinput-font-family);color:var(--wj-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;padding:.25rem .5rem;line-height:var(--wj-input-line-height);font-size:14px;font-weight:400;vertical-align:middle;min-height:32px}.error-message{display:none;position:absolute;width:auto;max-width:100%;min-width:auto;border-radius:50px;background:black;padding:.25rem .5rem;top:0;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;line-height:normal}@keyframes shake{8%,41%{transform:translate(-4px)}25%,58%{transform:translate(4px)}75%{transform:translate(-2px)}92%{transform:translate(2px)}0%,to{transform:translate(0)}}
|
|
9
7
|
`;
|
|
10
|
-
class
|
|
8
|
+
class w extends x {
|
|
11
9
|
constructor(t = {}) {
|
|
12
10
|
super();
|
|
13
11
|
b(this, "className", "Input");
|
|
@@ -56,7 +54,7 @@ class f extends y {
|
|
|
56
54
|
return this.internals.reportValidity();
|
|
57
55
|
}
|
|
58
56
|
static get cssStyleSheet() {
|
|
59
|
-
return
|
|
57
|
+
return A;
|
|
60
58
|
}
|
|
61
59
|
static get observedAttributes() {
|
|
62
60
|
return ["value"];
|
|
@@ -65,22 +63,27 @@ class f extends y {
|
|
|
65
63
|
this.isShadowRoot = "open";
|
|
66
64
|
}
|
|
67
65
|
draw(t, e, s) {
|
|
68
|
-
let o = this.hasSlot(this, "start"),
|
|
69
|
-
|
|
66
|
+
let o = this.hasSlot(this, "start"), m = this.hasSlot(this, "end"), v = document.createDocumentFragment(), r = document.createElement("div");
|
|
67
|
+
r.setAttribute("part", "native"), r.classList.add("native-input", this.variant || "default"), this.hasAttribute("invalid") && r.classList.add("has-error");
|
|
70
68
|
let l = document.createElement("div");
|
|
71
69
|
l.classList.add("wrapper");
|
|
72
|
-
let
|
|
73
|
-
|
|
74
|
-
let
|
|
75
|
-
|
|
76
|
-
let
|
|
77
|
-
|
|
70
|
+
let d = document.createElement("div");
|
|
71
|
+
d.classList.add("input-wrapper");
|
|
72
|
+
let u = document.createElement("label");
|
|
73
|
+
u.innerText = this.label, this.value && !this.hasAttribute("error") && u.classList.add("fade");
|
|
74
|
+
let i = document.createElement("input");
|
|
75
|
+
i.setAttribute("type", "text"), i.setAttribute("part", "input"), i.setAttribute("value", this.value || ""), i.classList.add("form-control"), this.hasAttribute("placeholder") && i.setAttribute("placeholder", this.placeholder), this.hasAttribute("multiple") && i.setAttribute("multiple", this.multiple), this.hasAttribute("disabled") && i.setAttribute("disabled", ""), this.hasAttribute("readonly") && i.setAttribute("readonly", ""), this.hasAttribute("maxlength") && i.setAttribute("maxlength", this.maxlength), this.hasAttribute("max") && i.setAttribute("max", this.max), this.hasAttribute("min") && i.setAttribute("min", this.min);
|
|
78
76
|
let p = document.createElement("div");
|
|
79
77
|
p.classList.add("error-message");
|
|
80
78
|
let h = null;
|
|
81
79
|
o && (h = document.createElement("slot"), h.setAttribute("name", "start"));
|
|
82
80
|
let c = null;
|
|
83
|
-
|
|
81
|
+
if (m && (c = document.createElement("slot"), c.setAttribute("name", "end")), o && (l.appendChild(h), r.classList.add("has-start")), this.variant === "standard" ? this.label && r.appendChild(u) : d.appendChild(u), d.appendChild(i), l.appendChild(d), r.appendChild(l), this.hasAttribute("clearable")) {
|
|
82
|
+
this.clear = document.createElement("wj-button"), this.clear.classList.add("clear"), this.clear.setAttribute("fill", "link"), this.clear.setAttribute("part", "clear");
|
|
83
|
+
let f = document.createElement("wj-icon");
|
|
84
|
+
f.setAttribute("name", "x"), this.clear.appendChild(f), d.appendChild(this.clear);
|
|
85
|
+
}
|
|
86
|
+
return m && (l.appendChild(c), r.classList.add("has-end")), r.appendChild(p), v.appendChild(r), this.native = r, this.labelElement = u, this.input = i, this.errorMessage = p, v;
|
|
84
87
|
}
|
|
85
88
|
afterDraw() {
|
|
86
89
|
[
|
|
@@ -103,10 +106,14 @@ class f extends y {
|
|
|
103
106
|
}), this.input.addEventListener("input", (t) => {
|
|
104
107
|
this.validateOnChange && (this.pristine = !1), this.input.classList.remove("pristine"), this.labelElement.classList.add("fade");
|
|
105
108
|
const e = new t.constructor(t.type, t);
|
|
106
|
-
this.dispatchEvent(e), this.validateInput()
|
|
109
|
+
this.dispatchEvent(e), this.validateInput(), g.dispatchCustomEvent(this, "wj-input:input", {
|
|
110
|
+
value: this.input.value
|
|
111
|
+
});
|
|
107
112
|
}), this.addEventListener("invalid", (t) => {
|
|
108
113
|
this.invalid = !0, this.pristine = !1, this.errorMessage.textContent = this.internals.validationMessage, this.customErrorDisplay && t.preventDefault();
|
|
109
|
-
}), this.addEventListener("focus", () => this.input.focus())
|
|
114
|
+
}), this.addEventListener("focus", () => this.input.focus()), this.clear && this.clear.addEventListener("wj:button-click", (t) => {
|
|
115
|
+
this.input.value = "", g.dispatchCustomEvent(this.clear, "wj-input:clear");
|
|
116
|
+
});
|
|
110
117
|
}
|
|
111
118
|
validateInput() {
|
|
112
119
|
const t = this.input.validity;
|
|
@@ -130,8 +137,8 @@ class f extends y {
|
|
|
130
137
|
return t.querySelectorAll(s).length > 0;
|
|
131
138
|
}
|
|
132
139
|
}
|
|
133
|
-
b(
|
|
134
|
-
customElements.get("wj-input") || window.customElements.define("wj-input",
|
|
140
|
+
b(w, "formAssociated", !0);
|
|
141
|
+
customElements.get("wj-input") || window.customElements.define("wj-input", w);
|
|
135
142
|
export {
|
|
136
|
-
|
|
143
|
+
w as Input
|
|
137
144
|
};
|
package/dist/wj-item.js
CHANGED
|
@@ -3,9 +3,7 @@ var d = (i, e, t) => e in i ? s(i, e, { enumerable: !0, configurable: !0, writab
|
|
|
3
3
|
var o = (i, e, t) => (d(i, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
4
|
import l from "./wj-element.js";
|
|
5
5
|
import "./wj-store.js";
|
|
6
|
-
const m =
|
|
7
|
-
* direction.scss
|
|
8
|
-
*/:host{--wj-item-color: $color-contrast-higher;--wj-border-width: 0 0 1px 0;--wj-item-background: transparent;--wj-item-background-hover: #f4f4f4;--wj-item-padding-top: 0px;--wj-item-padding-bottom: 0px;--wj-item-padding-end: 0px;--wj-item-padding-start: 0px;--wj-item-inner-border-width: 0 0 1px 0;--wj-item-inner-padding-top: 0px;--wj-item-inner-padding-bottom: 0px;--wj-item-inner-padding-start: 0px;--wj-item-inner-padding-end: 0px;--wj-item-inner-box-shadow: none;--wj-item-min-height: 40px;--wj-item-transition: opacity 15ms linear, background-color 15ms linear;display:block;position:relative;align-items:center;justify-content:space-between;outline:none;color:var(--wj-item-color);text-align:initial;text-decoration:none;overflow:hidden;box-sizing:border-box;width:100%}.item-native{border-radius:var(--wj-item-border-radius);padding-top:var(--wj-item-padding-top);padding-bottom:var(--wj-item-padding-bottom);padding-left:var(--wj-item-padding-start);padding-right:var(--wj-item-padding-end);margin:0;display:flex;position:relative;align-items:inherit;justify-content:inherit;width:100%;min-height:var(--wj-item-min-height);transition:var(--wj-item-transition);outline:none;background:var(--wj-item-background);overflow:inherit;box-sizing:border-box;z-index:1;text-decoration:none;color:var(--wj-item-color)}.item-native .item-inner{margin:0;padding:var(--wj-item-inner-padding-top) var(--wj-item-inner-padding-end) var(--wj-item-inner-padding-bottom) var(--wj-item-inner-padding-start);display:flex;position:relative;flex:1 1 0;flex-direction:inherit;align-items:inherit;align-self:stretch;min-height:inherit;border-width:var(--wj-border-width);border-style:var(--wj-border-style);border-color:var(--wj-border-color);box-shadow:var(--wj-item-inner-box-shadow);overflow:inherit;box-sizing:border-box}.item-native .item-inner .input-wrapper{display:flex;flex:1 1 0;flex-direction:inherit;align-items:inherit;align-self:stretch;text-overflow:ellipsis;overflow:inherit;box-sizing:border-box}.item-native .item-bottom{padding:0 var(--wj-item-inner-padding-end) 0 var(--wj-item-padding-start);display:flex;justify-content:space-between}@media (any-hover: hover){:host(:hover) .item-native{color:var(--wj-item-color)}:host(:hover) .item-native :after{transition:var(--wj-item-transition);z-index:-1;top:0;right:0;bottom:0;left:0;position:absolute;content:"";background:var(--wj-item-background-hover);opacity:.7}}button,a{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}::slotted([slot=start]){margin-inline:0 1rem}::slotted(wj-label){margin:10px 8px 10px 0}::slotted(wj-label:not([slot=end])){flex:1 1 0}
|
|
6
|
+
const m = `:host{--wj-border-width: 0 0 1px 0;--wj-item-background: transparent;--wj-item-background-hover: var(--wj-color-contrast-3);--wj-item-padding-top: 0px;--wj-item-padding-bottom: 0px;--wj-item-padding-end: 0px;--wj-item-padding-start: 0px;--wj-item-inner-border-width: 0 0 1px 0;--wj-item-inner-padding-top: 0px;--wj-item-inner-padding-bottom: 0px;--wj-item-inner-padding-start: 0px;--wj-item-inner-padding-end: 0px;--wj-item-inner-box-shadow: none;--wj-item-min-height: 40px;--wj-item-transition: opacity 15ms linear, background-color 15ms linear;display:block;position:relative;align-items:center;justify-content:space-between;outline:none;color:var(--wj-item-color);text-align:initial;text-decoration:none;overflow:hidden;box-sizing:border-box;width:100%}.item-native{border-radius:var(--wj-item-border-radius);padding-top:var(--wj-item-padding-top);padding-bottom:var(--wj-item-padding-bottom);padding-inline:var(--wj-item-padding-start) var(--wj-item-padding-end);margin:0;display:flex;position:relative;align-items:inherit;justify-content:inherit;width:100%;min-height:var(--wj-item-min-height);transition:var(--wj-item-transition);outline:none;background:var(--wj-item-background);overflow:inherit;box-sizing:border-box;z-index:1;text-decoration:none;color:var(--wj-item-color)}.item-native .item-inner{margin:0;padding:var(--wj-item-inner-padding-top) var(--wj-item-inner-padding-end) var(--wj-item-inner-padding-bottom) var(--wj-item-inner-padding-start);display:flex;position:relative;flex:1 1 0;flex-direction:inherit;align-items:inherit;align-self:stretch;min-height:inherit;border-width:var(--wj-border-width);border-style:var(--wj-border-style);border-color:var(--wj-border-color);box-shadow:var(--wj-item-inner-box-shadow);overflow:inherit;box-sizing:border-box}.item-native .item-inner .input-wrapper{display:flex;flex:1 1 0;flex-direction:inherit;align-items:inherit;align-self:stretch;text-overflow:ellipsis;overflow:inherit;box-sizing:border-box}.item-native .item-bottom{padding:0 var(--wj-item-inner-padding-end) 0 var(--wj-item-padding-start);display:flex;justify-content:space-between}@media (any-hover: hover){:host(:hover) .item-native{color:var(--wj-item-color)}:host(:hover) .item-native :after{transition:var(--wj-item-transition);z-index:-1;top:0;right:0;bottom:0;left:0;position:absolute;content:"";background:var(--wj-item-background-hover);opacity:.7}}button,a{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}::slotted([slot=start]){margin-inline:0 1rem}::slotted(wj-label:not([slot=end])){flex:1 1 0}
|
|
9
7
|
`;
|
|
10
8
|
class p extends l {
|
|
11
9
|
constructor() {
|
package/dist/wj-label.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
var
|
|
2
|
-
var c = (e, t, o) => t in e ?
|
|
1
|
+
var i = Object.defineProperty;
|
|
2
|
+
var c = (e, t, o) => t in e ? i(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o;
|
|
3
3
|
var s = (e, t, o) => (c(e, typeof t != "symbol" ? t + "" : t, o), o);
|
|
4
4
|
import w from "./wj-element.js";
|
|
5
5
|
import "./wj-store.js";
|
|
6
|
-
const
|
|
6
|
+
const m = `/*!
|
|
7
7
|
* direction.scss
|
|
8
|
-
*/:host(.wj-color-primary){--wj-color: #7252D3 !important}:host(.wj-color-complete){--wj-color: #0072EC !important}:host(.wj-color-success){--wj-color-base: #19AD79 !important;--wj-color-contrast: #fff !important}:host(.wj-color-warning){--wj-color-base: #FFd945 !important;--wj-color-contrast: #4b4b4b !important}:host(.wj-color-danger){--wj-color-base: #D83C31 !important;--wj-color-contrast: #fff !important}:host(.wj-color-info){--wj-color-base: #3B4752 !important;--wj-color-contrast: #fff !important}:host(.wj-color-menu){--wj-color-base: #2b303b !important;--wj-color-contrast: #fff !important}:host{--wj-
|
|
8
|
+
*/:host(.wj-color-primary){--wj-color: #7252D3 !important}:host(.wj-color-complete){--wj-color: #0072EC !important}:host(.wj-color-success){--wj-color-base: #19AD79 !important;--wj-color-contrast: #fff !important}:host(.wj-color-warning){--wj-color-base: #FFd945 !important;--wj-color-contrast: #4b4b4b !important}:host(.wj-color-danger){--wj-color-base: #D83C31 !important;--wj-color-contrast: #fff !important}:host(.wj-color-info){--wj-color-base: #3B4752 !important;--wj-color-contrast: #fff !important}:host(.wj-color-menu){--wj-color-base: #2b303b !important;--wj-color-contrast: #fff !important}:host{--wj-color: initial;display:block;font-size:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;box-sizing:border-box}:host(.wj-color){color:var(--wj-color-base)}:host(.wj-text-wrap),:host([text-wrap]){white-space:normal!important}:host(.label-fixed){flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.label-stacked),:host(.label-floating){margin:0;align-self:stretch;width:auto;max-width:100%}:host(.label-no-animate.label-floating){transition:none}::slotted(*) h1,::slotted(*) h2,::slotted(*) h3,::slotted(*) h4,::slotted(*) h5,::slotted(*) h6{text-overflow:inherit;overflow:inherit}:host(.wj-color){color:var(--wj-color)}::slotted(*:first-child){margin-top:0!important}::slotted(*:last-child){margin-bottom:0!important}
|
|
9
9
|
`;
|
|
10
|
-
class
|
|
10
|
+
class h extends w {
|
|
11
11
|
constructor() {
|
|
12
12
|
super();
|
|
13
13
|
s(this, "className", "Label");
|
|
14
14
|
}
|
|
15
15
|
static get cssStyleSheet() {
|
|
16
|
-
return
|
|
16
|
+
return m;
|
|
17
17
|
}
|
|
18
18
|
static get observedAttributes() {
|
|
19
19
|
return [];
|
|
@@ -26,11 +26,11 @@ class m extends w {
|
|
|
26
26
|
draw(o, a, r) {
|
|
27
27
|
let l = document.createDocumentFragment();
|
|
28
28
|
this.color && this.classList.add("wj-color-" + r.color, "wj-color");
|
|
29
|
-
let
|
|
30
|
-
return l.appendChild(
|
|
29
|
+
let n = document.createElement("slot");
|
|
30
|
+
return l.appendChild(n), l;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
customElements.get("wj-label") || window.customElements.define("wj-label",
|
|
33
|
+
customElements.get("wj-label") || window.customElements.define("wj-label", h);
|
|
34
34
|
export {
|
|
35
|
-
|
|
35
|
+
h as Label
|
|
36
36
|
};
|
package/dist/wj-list.js
CHANGED
|
@@ -3,9 +3,7 @@ var a = (e, t, s) => t in e ? o(e, t, { enumerable: !0, configurable: !0, writab
|
|
|
3
3
|
var n = (e, t, s) => (a(e, typeof t != "symbol" ? t + "" : t, s), s);
|
|
4
4
|
import l from "./wj-element.js";
|
|
5
5
|
import "./wj-store.js";
|
|
6
|
-
const d =
|
|
7
|
-
* direction.scss
|
|
8
|
-
*/:host{--wj-list-inset-padding: 1rem;--wj-list-border-radius: 8px;--wj-list-background: #fff;margin:0;padding:0;display:block;contain:content;list-style-type:none}:host(.wj-inset){background:var(--wj-list-background);transform:translateZ(0);overflow:hidden;padding:var(--wj-list-inset-padding);border-radius:var(--wj-list-border-radius)}:host(.wj-lines-none) ::slotted(wj-item){--wj-border-width: 0 !important}
|
|
6
|
+
const d = `:host{--wj-list-inset-padding: 1rem;--wj-list-border-radius: 8px;--wj-list-background: var(--wj-background);margin:0;padding:0;display:block;contain:content;list-style-type:none}:host(.wj-inset){background:var(--wj-list-background);transform:translateZ(0);overflow:hidden;padding:var(--wj-list-inset-padding);border-radius:var(--wj-list-border-radius)}:host(.wj-lines-none) ::slotted(wj-item){--wj-border-width: 0 !important}
|
|
9
7
|
`;
|
|
10
8
|
class c extends l {
|
|
11
9
|
constructor() {
|
package/dist/wj-main.js
CHANGED
|
@@ -3,9 +3,7 @@ var i = (t, e, s) => e in t ? a(t, e, { enumerable: !0, configurable: !0, writab
|
|
|
3
3
|
var o = (t, e, s) => (i(t, typeof e != "symbol" ? e + "" : e, s), s);
|
|
4
4
|
import m from "./wj-element.js";
|
|
5
5
|
import "./wj-store.js";
|
|
6
|
-
const c =
|
|
7
|
-
* direction.scss
|
|
8
|
-
*/:host{display:block;flex:1;flex-basis:auto;padding:1.5rem;box-sizing:border-box}
|
|
6
|
+
const c = `:host{display:block;flex:1;flex-basis:auto;padding:1.5rem;box-sizing:border-box}
|
|
9
7
|
`;
|
|
10
8
|
class l extends m {
|
|
11
9
|
constructor() {
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var f = Object.defineProperty;
|
|
2
|
+
var p = (o, s, t) => s in o ? f(o, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[s] = t;
|
|
3
|
+
var r = (o, s, t) => (p(o, typeof s != "symbol" ? s + "" : s, t), t);
|
|
4
|
+
import w from "./wj-element.js";
|
|
5
|
+
import "./wj-store.js";
|
|
6
|
+
const b = 500, A = 300, C = "--wj-masonry-layout-col-count", E = "--wj-masonry-layout-gap", d = 1, m = /* @__PURE__ */ new Map();
|
|
7
|
+
function c(o, s, t) {
|
|
8
|
+
const e = parseFloat(o.getAttribute(s) || "");
|
|
9
|
+
return isNaN(e) ? t : e;
|
|
10
|
+
}
|
|
11
|
+
function g(o, s, t) {
|
|
12
|
+
return isNaN(s) ? Math.max(1, Math.ceil(o / t)) : s;
|
|
13
|
+
}
|
|
14
|
+
function x(o, s, t) {
|
|
15
|
+
const e = m.get(t);
|
|
16
|
+
e != null && window.clearTimeout(e), m.set(t, window.setTimeout(o, s));
|
|
17
|
+
}
|
|
18
|
+
function v(o) {
|
|
19
|
+
let s = 0, t = 1 / 0;
|
|
20
|
+
return o.forEach((e, n) => {
|
|
21
|
+
e < t && (t = e, s = n);
|
|
22
|
+
}), s;
|
|
23
|
+
}
|
|
24
|
+
const S = `:host{display:flex;align-items:flex-start;justify-content:stretch;width:100%}.column{max-width:calc(100% / var(--wj-masonry-layout-col-count, 1) - var(--wj-masonry-layout-gap, 1rem) * (var(--wj-masonry-layout-col-count, 1) - 1) / var(--wj-masonry-layout-col-count, 1));width:100%;flex:1;display:flex;flex-direction:column}.column:not(:last-child){margin-inline-end:var(--wj-masonry-layout-gap, 1rem)}.column ::slotted(*){margin-block-end:var(--wj-masonry-layout-gap, 1rem);box-sizing:border-box;width:100%}#unset-items{opacity:0;position:absolute;pointer-events:none}
|
|
25
|
+
`;
|
|
26
|
+
class N extends w {
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
r(this, "debounceId", `layout_${Math.random()}`);
|
|
30
|
+
r(this, "ro");
|
|
31
|
+
r(this, "className", "Masonry");
|
|
32
|
+
r(this, "onSlotChange", () => {
|
|
33
|
+
(this.unsetSlot.assignedNodes() || []).filter((e) => e.nodeType === d).length > 0 && this.layout();
|
|
34
|
+
});
|
|
35
|
+
r(this, "onResize", (t) => {
|
|
36
|
+
const { width: e } = t != null && Array.isArray(t) && t.length > 0 ? t[0].contentRect : { width: this.offsetWidth };
|
|
37
|
+
g(e, this.cols, this.maxColWidth) !== this.columns.length && this.scheduleLayout();
|
|
38
|
+
});
|
|
39
|
+
r(this, "layout", () => {
|
|
40
|
+
this.currentRequestAnimationFrameCallback != null && window.cancelAnimationFrame(this.currentRequestAnimationFrameCallback), this.currentRequestAnimationFrameCallback = requestAnimationFrame(() => {
|
|
41
|
+
const t = this.gap, e = Array.from(this.children).filter((a) => a.nodeType === d), n = g(this.offsetWidth, this.cols, this.maxColWidth), l = Array(n).fill(0), i = [];
|
|
42
|
+
for (const a of e) {
|
|
43
|
+
const y = a.getBoundingClientRect().height;
|
|
44
|
+
let u = v(l);
|
|
45
|
+
l[u] += y + +t;
|
|
46
|
+
const h = u;
|
|
47
|
+
a.slot !== h && i.push(() => a.slot = h);
|
|
48
|
+
}
|
|
49
|
+
for (const a of i)
|
|
50
|
+
a();
|
|
51
|
+
this.renderCols(n);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
this.debounceId = `layout_${Math.random()}`, this.ro = void 0, this.currentRequestAnimationFrameCallback = void 0, this.unsetSlot = void 0;
|
|
55
|
+
}
|
|
56
|
+
set maxColWidth(t) {
|
|
57
|
+
this.setAttribute("max-col-width", t);
|
|
58
|
+
}
|
|
59
|
+
get maxColWidth() {
|
|
60
|
+
return this.hasAttribute("max-col-width") ? +this.getAttribute("max-col-width") : +b;
|
|
61
|
+
}
|
|
62
|
+
set cols(t) {
|
|
63
|
+
this.hasAttribute("cols") && this.setAttribute("cols", t);
|
|
64
|
+
}
|
|
65
|
+
get cols() {
|
|
66
|
+
return c(this, "cols", "auto");
|
|
67
|
+
}
|
|
68
|
+
set gap(t) {
|
|
69
|
+
this.setAttribute("gap", t);
|
|
70
|
+
}
|
|
71
|
+
get gap() {
|
|
72
|
+
return c(this, "gap", "24");
|
|
73
|
+
}
|
|
74
|
+
set debounce(t) {
|
|
75
|
+
this.setAttribute("debounce", t);
|
|
76
|
+
}
|
|
77
|
+
get debounce() {
|
|
78
|
+
return c(this, "debounce", A);
|
|
79
|
+
}
|
|
80
|
+
get columns() {
|
|
81
|
+
return Array.from(this.shadowRoot.querySelectorAll(".column"));
|
|
82
|
+
}
|
|
83
|
+
static get cssStyleSheet() {
|
|
84
|
+
return S;
|
|
85
|
+
}
|
|
86
|
+
static get observedAttributes() {
|
|
87
|
+
return ["max-col-width", "gap", "cols"];
|
|
88
|
+
}
|
|
89
|
+
attributeChangedCallback(t, e, n) {
|
|
90
|
+
switch (t) {
|
|
91
|
+
case "gap":
|
|
92
|
+
this.style.setProperty(E, `${this.gap}px`);
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
this.scheduleLayout();
|
|
96
|
+
}
|
|
97
|
+
disconnectedCallback() {
|
|
98
|
+
this.unsetSlot.removeEventListener("slotchange", this.onSlotChange), window.removeEventListener("resize", this.onResize), this.ro != null && this.ro.unobserve(this);
|
|
99
|
+
}
|
|
100
|
+
setupAttributes() {
|
|
101
|
+
this.isShadowRoot = "open";
|
|
102
|
+
}
|
|
103
|
+
draw(t, e, n) {
|
|
104
|
+
let l = document.createDocumentFragment(), i = document.createElement("div");
|
|
105
|
+
i.setAttribute("id", "unset-items"), i.setAttribute("part", "native");
|
|
106
|
+
let a = document.createElement("slot");
|
|
107
|
+
return i.appendChild(a), this.unsetSlot = a, this.native = i, l.appendChild(i), l;
|
|
108
|
+
}
|
|
109
|
+
afterDraw() {
|
|
110
|
+
this.onSlotChange(), this.onResize(), this.layout(), this.unsetSlot.addEventListener("slotchange", this.onSlotChange), "ResizeObserver" in window ? (this.ro = new ResizeObserver(this.onResize), this.ro.observe(this)) : window.addEventListener("resize", this.onResize);
|
|
111
|
+
}
|
|
112
|
+
renderCols(t) {
|
|
113
|
+
const e = this.columns;
|
|
114
|
+
if (e.length !== t) {
|
|
115
|
+
for (const n of e)
|
|
116
|
+
n.parentNode && n.parentNode.removeChild(n);
|
|
117
|
+
for (let n = 0; n < t; n++) {
|
|
118
|
+
const l = document.createElement("div");
|
|
119
|
+
l.classList.add("column"), l.setAttribute("part", `column column-${n}`);
|
|
120
|
+
const i = document.createElement("slot");
|
|
121
|
+
i.setAttribute("name", n), l.appendChild(i), this.context.appendChild(l);
|
|
122
|
+
}
|
|
123
|
+
this.style.setProperty(C, t);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
scheduleLayout(t = this.debounce) {
|
|
127
|
+
x(this.layout, t, this.debounceId);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
customElements.get("wj-masonry") || window.customElements.define("wj-masonry", N);
|
|
131
|
+
export {
|
|
132
|
+
N as Masonry
|
|
133
|
+
};
|