@total_onion/onion-library 3.0.4 → 3.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/components/webc-post-filter-module/dev-content/dev-content.js +9 -0
- package/components/webc-post-filter-module/dev-content/dev-contentlocal.js +11 -0
- package/components/webc-post-filter-module/dev-content/ramses-school-day.webp +0 -0
- package/package.json +1 -1
- package/public/jsAssets.mjs +39 -3
- package/public/block-post-type-filter-grid-v4/dev-content/dev-content.js +0 -38
- package/public/block-post-type-filter-grid-v4/post-type-filter-grid-v4.css +0 -42
- package/public/block-post-type-filter-grid-v4/post-type-filter-grid-v4.js +0 -181
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import ramsesImage from './ramses-tired.webp';
|
|
2
|
+
import ramsesSchoolDay from './ramses-school-day.webp';
|
|
2
3
|
import kaiImage from './kai.webp';
|
|
3
4
|
import kaiSelfie from './kai-selfie.webp';
|
|
4
5
|
import kaiLounging from './kai-lounging.webp';
|
|
@@ -309,6 +310,14 @@ export const devContentPets = [
|
|
|
309
310
|
|
|
310
311
|
categories: [14, 10, 4, 1]
|
|
311
312
|
}
|
|
313
|
+
{
|
|
314
|
+
name: `Ramses <span class='font-secondary'>School Day</span>`,
|
|
315
|
+
link: 'https://totalonion.com',
|
|
316
|
+
images: {
|
|
317
|
+
post_image_src: ramsesSchoolDay
|
|
318
|
+
},
|
|
319
|
+
categories: [13, 3, 10, 5]
|
|
320
|
+
}
|
|
312
321
|
];
|
|
313
322
|
|
|
314
323
|
export const devContentCategories = [
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
const ramsesImage = '../webc-post-filter-module/dev-content/ramses-tired.webp';
|
|
2
|
+
const ramsesSchoolDay =
|
|
3
|
+
'../webc-post-filter-module/dev-content/ramses-school-day.webp';
|
|
2
4
|
const kaiImage = '../webc-post-filter-module/dev-content/kai.webp';
|
|
3
5
|
const kaiSelfie = '../webc-post-filter-module/dev-content/kai-selfie.webp';
|
|
4
6
|
const kaiLounging = '../webc-post-filter-module/dev-content/kai-lounging.webp';
|
|
@@ -321,6 +323,15 @@ export const devContentPets = [
|
|
|
321
323
|
},
|
|
322
324
|
|
|
323
325
|
categories: [14, 10, 3]
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
name: `Ramses <span class='font-secondary'>School Day</span>`,
|
|
329
|
+
link: 'https://totalonion.com',
|
|
330
|
+
images: {
|
|
331
|
+
post_image_src: ramsesSchoolDay
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
categories: [13, 3, 10, 5]
|
|
324
335
|
}
|
|
325
336
|
];
|
|
326
337
|
|
package/package.json
CHANGED
package/public/jsAssets.mjs
CHANGED
|
@@ -1,4 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const dynamicAssets = [
|
|
2
|
+
{ assetKey: "video-content-v3" },
|
|
3
|
+
{ assetKey: "sub-group-container-v3" },
|
|
4
|
+
{ assetKey: "sticky-buy-cta-v3" },
|
|
5
|
+
{ assetKey: "standard-content-v3" },
|
|
6
|
+
{ assetKey: "spotify-embed-v3" },
|
|
7
|
+
{ assetKey: "spacer-v3" },
|
|
8
|
+
{ assetKey: "social-networks-v3" },
|
|
9
|
+
{ assetKey: "smash-balloon-social-media-v3" },
|
|
10
|
+
{ assetKey: "site-title-and-tagline-v3" },
|
|
11
|
+
{ assetKey: "site-logo-container-v3" },
|
|
12
|
+
{ assetKey: "site-copyright-notice-v3" },
|
|
13
|
+
{ assetKey: "single-responsive-image-v3" },
|
|
14
|
+
{ assetKey: "single-column-container-v3" },
|
|
15
|
+
{ assetKey: "section-separator-v3" },
|
|
16
|
+
{ assetKey: "scrolling-banner-v3" },
|
|
17
|
+
{ assetKey: "responsive-table-v3" },
|
|
18
|
+
{ assetKey: "raw-html-v3" },
|
|
19
|
+
{ assetKey: "product-info-v3" },
|
|
20
|
+
{ assetKey: "post-info-v3" },
|
|
21
|
+
{ assetKey: "nav-menu-container-v3" },
|
|
22
|
+
{ assetKey: "modal-form-v3" },
|
|
23
|
+
{ assetKey: "market-selector-v3" },
|
|
24
|
+
{ assetKey: "lottie-content-v3" },
|
|
25
|
+
{ assetKey: "group-container-v3" },
|
|
26
|
+
{ assetKey: "gradient-layer-v3" },
|
|
27
|
+
{ assetKey: "form-selection-v3" },
|
|
28
|
+
{ assetKey: "featured-image-gallery-v3" },
|
|
29
|
+
{ assetKey: "divider-v3" },
|
|
30
|
+
{ assetKey: "cover-link-v3" },
|
|
31
|
+
{ assetKey: "cocktail-recipe-v3" },
|
|
32
|
+
{ assetKey: "carousel-multi-layout-v3" },
|
|
33
|
+
{ assetKey: "block-interactions-v3" },
|
|
34
|
+
{ assetKey: "betterreviews-display-v3" },
|
|
35
|
+
{ assetKey: "back-to-top-button-v3" },
|
|
36
|
+
{ assetKey: "accordion-v3" },
|
|
37
|
+
{ assetKey: "accent-image-v3" },
|
|
38
|
+
];
|
|
39
|
+
const api = { dynamicAssets };
|
|
4
40
|
export default api;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export const devContentDogz = [
|
|
2
|
-
{
|
|
3
|
-
postname: 'Dogz-1',
|
|
4
|
-
'post-link': '#',
|
|
5
|
-
'image-src': 'https://place-puppy.com/puppy/y:100/x:100',
|
|
6
|
-
categories: new Set([1, 5])
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
postname: 'Dogz-2',
|
|
10
|
-
'post-link': '#',
|
|
11
|
-
'image-src': 'https://place-puppy.com/puppy/y:100/x:100',
|
|
12
|
-
|
|
13
|
-
categories: new Set([2])
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
postname: 'Dogz-3',
|
|
17
|
-
'post-link': '#',
|
|
18
|
-
'image-src': 'https://place-puppy.com/puppy/y:100/x:100',
|
|
19
|
-
|
|
20
|
-
categories: new Set([1, 3])
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
postname: 'Dogz-4',
|
|
24
|
-
'post-link': '#',
|
|
25
|
-
'image-src': 'https://place-puppy.com/puppy/y:100/x:100',
|
|
26
|
-
|
|
27
|
-
categories: new Set([4])
|
|
28
|
-
}
|
|
29
|
-
];
|
|
30
|
-
|
|
31
|
-
export const devContentCategories = [
|
|
32
|
-
{name: 'grumpy', id: '1', parentid: '6'},
|
|
33
|
-
{name: 'fluffy', id: '2', parentid: '6'},
|
|
34
|
-
{name: 'happy', id: '3', parentid: '6'},
|
|
35
|
-
{name: 'sleepy', id: '4', parentid: '6'},
|
|
36
|
-
{name: 'sweet', id: '5', parentid: '6'},
|
|
37
|
-
{name: 'hounds', id: '6', parentid: null}
|
|
38
|
-
];
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
post-type-filter-grid-v4 {
|
|
2
|
-
display: block;
|
|
3
|
-
background-color: hotpink;
|
|
4
|
-
--padding-block-multiplier-mobile-top: 1;
|
|
5
|
-
--padding-inline-multiplier-mobile-right: 1;
|
|
6
|
-
--padding-block-multiplier-mobile-bottom: 1;
|
|
7
|
-
--padding-inline-multiplier-mobile-left: 1;
|
|
8
|
-
}
|
|
9
|
-
post-filter-module-v4 {
|
|
10
|
-
display: block;
|
|
11
|
-
background-color: aquamarine;
|
|
12
|
-
}
|
|
13
|
-
post-grid-display-module-v4 {
|
|
14
|
-
--padding-block-multiplier-mobile-top: 1;
|
|
15
|
-
--padding-inline-multiplier-mobile-right: 1;
|
|
16
|
-
--padding-block-multiplier-mobile-bottom: 1;
|
|
17
|
-
--padding-inline-multiplier-mobile-left: 1;
|
|
18
|
-
display: grid;
|
|
19
|
-
background-color: hotpink;
|
|
20
|
-
}
|
|
21
|
-
post-grid-display-module-v4 .post-grid-display-module-v4__grid-container {
|
|
22
|
-
align-self: stretch;
|
|
23
|
-
justify-self: stretch;
|
|
24
|
-
place-self: stretch;
|
|
25
|
-
display: grid;
|
|
26
|
-
padding: 10px;
|
|
27
|
-
grid-gap: 10px;
|
|
28
|
-
gap: 10px;
|
|
29
|
-
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
|
30
|
-
}
|
|
31
|
-
post-grid-display-module-v4 .post-grid-display-module-v4__post-image {
|
|
32
|
-
width: 100%;
|
|
33
|
-
height: auto;
|
|
34
|
-
}
|
|
35
|
-
load-more-posts-trigger-v4 {
|
|
36
|
-
display: block;
|
|
37
|
-
padding: 10px;
|
|
38
|
-
background-color: #639;
|
|
39
|
-
}
|
|
40
|
-
load-more-posts-trigger-v4 .load-more-posts-trigger-v4__button-trigger {
|
|
41
|
-
color: antiquewhite;
|
|
42
|
-
}
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
export default function posttypefiltergridv4Js(options = {}) {
|
|
2
|
-
try {
|
|
3
|
-
const { block } = options;
|
|
4
|
-
customElements.define(
|
|
5
|
-
"post-filter-module-v4",
|
|
6
|
-
class extends HTMLElement {
|
|
7
|
-
constructor() {
|
|
8
|
-
super();
|
|
9
|
-
this.filterState = {
|
|
10
|
-
allposts: /* @__PURE__ */ new Set(),
|
|
11
|
-
filteredposts: /* @__PURE__ */ new Set(),
|
|
12
|
-
activefilters: /* @__PURE__ */ new Set(),
|
|
13
|
-
setActiveFilters: function(newState) {
|
|
14
|
-
Object.assign(this.filterState, newState);
|
|
15
|
-
this.dispatchEvent(
|
|
16
|
-
new CustomEvent("activefilters-updated")
|
|
17
|
-
);
|
|
18
|
-
},
|
|
19
|
-
setFilteredPosts: function(newState) {
|
|
20
|
-
Object.assign(this.filterState, newState);
|
|
21
|
-
this.dispatchEvent(
|
|
22
|
-
new CustomEvent("filteredposts-updated")
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
this.filterCategoriesDisplay = this.querySelector(
|
|
27
|
-
".post-filter-module-v4__filter-categories-display"
|
|
28
|
-
);
|
|
29
|
-
this.clearFiltersButton = this.querySelector(
|
|
30
|
-
".post-filter-module-v4__clear-filters-button"
|
|
31
|
-
);
|
|
32
|
-
this.setStateButton = this.querySelector(
|
|
33
|
-
".post-filter-module-v4__set-state-button"
|
|
34
|
-
);
|
|
35
|
-
this.clearFiltersButton.addEventListener(
|
|
36
|
-
"click",
|
|
37
|
-
this.clearFilters.bind(this)
|
|
38
|
-
);
|
|
39
|
-
this.addEventListener(
|
|
40
|
-
"activefilters-updated",
|
|
41
|
-
this.filterPosts.bind(this)
|
|
42
|
-
);
|
|
43
|
-
this.devMode = this.dataset.dev;
|
|
44
|
-
this.devModeContent = this.dataset.devcontent;
|
|
45
|
-
}
|
|
46
|
-
async connectedCallback() {
|
|
47
|
-
console.log("Filter Module element added to page.");
|
|
48
|
-
let data;
|
|
49
|
-
if (this.devMode) {
|
|
50
|
-
data = await import("./dev-content/dev-content.js");
|
|
51
|
-
}
|
|
52
|
-
this.filterState.allposts = data[`devContent${this.devModeContent}`];
|
|
53
|
-
this.filterState.categories = data[`devContentCategories`];
|
|
54
|
-
this.filterState.categories.forEach((category) => {
|
|
55
|
-
if (category.parentid) {
|
|
56
|
-
this.filterCategoriesDisplay.insertAdjacentHTML(
|
|
57
|
-
"beforeend",
|
|
58
|
-
`<button class="post-filter-module-v4__category-button" data-categoryid="${category.id}">${category.name}</button>`
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
this.categorybuttons = this.querySelectorAll(
|
|
63
|
-
".post-filter-module-v4__category-button"
|
|
64
|
-
);
|
|
65
|
-
this.categorybuttons.forEach((button) => {
|
|
66
|
-
button.addEventListener("click", () => {
|
|
67
|
-
if (this.filterState.activefilters.has(
|
|
68
|
-
Number(button.dataset.categoryid)
|
|
69
|
-
)) {
|
|
70
|
-
const newActiveFilters = new Set(
|
|
71
|
-
this.filterState.activefilters
|
|
72
|
-
);
|
|
73
|
-
newActiveFilters.delete(
|
|
74
|
-
Number(button.dataset.categoryid)
|
|
75
|
-
);
|
|
76
|
-
this.filterState.setActiveFilters.bind(this)({
|
|
77
|
-
activefilters: newActiveFilters
|
|
78
|
-
});
|
|
79
|
-
} else {
|
|
80
|
-
const newActiveFilters = new Set(
|
|
81
|
-
this.filterState.activefilters
|
|
82
|
-
);
|
|
83
|
-
newActiveFilters.add(
|
|
84
|
-
Number(button.dataset.categoryid)
|
|
85
|
-
);
|
|
86
|
-
this.filterState.setActiveFilters.bind(this)({
|
|
87
|
-
activefilters: newActiveFilters
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
this.filterState.setFilteredPosts.bind(this)({
|
|
93
|
-
filteredposts: this.filterState.allposts
|
|
94
|
-
});
|
|
95
|
-
this.classList.add("loaded");
|
|
96
|
-
}
|
|
97
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
98
|
-
}
|
|
99
|
-
filterPosts(event) {
|
|
100
|
-
if (this.filterState.activefilters.size === 0) {
|
|
101
|
-
this.filterState.setFilteredPosts.bind(this)({
|
|
102
|
-
filteredposts: this.filterState.allposts
|
|
103
|
-
});
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
const newFilteredPosts = this.filterState.allposts.filter(
|
|
107
|
-
(post) => {
|
|
108
|
-
return this.filterState.activefilters.intersection(
|
|
109
|
-
post.categories
|
|
110
|
-
).size > 0;
|
|
111
|
-
}
|
|
112
|
-
);
|
|
113
|
-
this.filterState.setFilteredPosts.bind(this)({
|
|
114
|
-
filteredposts: newFilteredPosts
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
clearFilters(event) {
|
|
118
|
-
this.filterState.setActiveFilters.bind(this)({
|
|
119
|
-
activefilters: /* @__PURE__ */ new Set()
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
);
|
|
124
|
-
customElements.define(
|
|
125
|
-
"post-type-filter-grid-v4",
|
|
126
|
-
class extends HTMLElement {
|
|
127
|
-
constructor() {
|
|
128
|
-
super();
|
|
129
|
-
this.data = this.dataset;
|
|
130
|
-
this.filterModule = this.querySelector("#filter-module");
|
|
131
|
-
this.displayModule = this.querySelector("#display-module");
|
|
132
|
-
}
|
|
133
|
-
connectedCallback() {
|
|
134
|
-
console.log("PTFG v4 element added to page.");
|
|
135
|
-
this.filterModule.addEventListener(
|
|
136
|
-
"filteredposts-updated",
|
|
137
|
-
() => {
|
|
138
|
-
this.displayModule.dataset.posts = JSON.stringify(
|
|
139
|
-
this.filterModule.filterState.filteredposts
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
);
|
|
143
|
-
this.classList.add("loaded");
|
|
144
|
-
}
|
|
145
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
);
|
|
149
|
-
customElements.define(
|
|
150
|
-
"post-grid-display-module-v4",
|
|
151
|
-
class extends HTMLElement {
|
|
152
|
-
static observedAttributes = ["data-posts"];
|
|
153
|
-
constructor() {
|
|
154
|
-
super();
|
|
155
|
-
this.gridContainer = this.querySelector(
|
|
156
|
-
".post-grid-display-module-v4__grid-container"
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
connectedCallback() {
|
|
160
|
-
console.log("Display module added to page.");
|
|
161
|
-
this.classList.add("loaded");
|
|
162
|
-
}
|
|
163
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
164
|
-
this.gridContainer.innerHTML = "";
|
|
165
|
-
if (newValue) {
|
|
166
|
-
const posts = JSON.parse(newValue);
|
|
167
|
-
posts.forEach((post) => {
|
|
168
|
-
const postContent = `<div class="post-grid-display-module-v4__post-container"><h2>${post.postname}</h2><img class="post-grid-display-module-v4__post-image" src="${post["image-src"]}" alt="${post.postname}"></div>`;
|
|
169
|
-
this.gridContainer.insertAdjacentHTML(
|
|
170
|
-
"beforeend",
|
|
171
|
-
postContent
|
|
172
|
-
);
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
);
|
|
178
|
-
} catch (error) {
|
|
179
|
-
console.error(error);
|
|
180
|
-
}
|
|
181
|
-
}
|