@schukai/monster 3.68.4 → 3.69.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/CHANGELOG.md +6 -18
- package/package.json +1 -1
- package/source/components/datatable/filter.mjs +6 -4
- package/source/components/form/field-set.mjs +242 -245
- package/source/components/form/style/field-set.pcss +26 -2
- package/source/components/form/stylesheet/toggle-switch.mjs +13 -6
- package/source/components/form/toggle-switch.mjs +322 -323
package/CHANGELOG.md
CHANGED
|
@@ -2,36 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
## [3.69.0] - 2024-06-23
|
|
6
|
+
|
|
7
|
+
### Add Features
|
|
8
|
+
|
|
9
|
+
- new field-set control [#186](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/186)
|
|
10
|
+
|
|
5
11
|
## [3.68.4] - 2024-06-23
|
|
6
12
|
|
|
7
13
|
### Bug Fixes
|
|
8
14
|
|
|
9
15
|
- if the query is empty but astring, getSlottedElements must not report an error [#208](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/208)
|
|
10
16
|
|
|
11
|
-
|
|
12
|
-
|
|
13
17
|
## [3.68.3] - 2024-06-23
|
|
14
18
|
|
|
15
19
|
### Bug Fixes
|
|
16
20
|
|
|
17
21
|
- working on ci pipeline
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## [3.68.2] - 2024-06-23
|
|
22
|
-
|
|
23
|
-
### Bug Fixes
|
|
24
|
-
|
|
25
|
-
- gitlab pipeline
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## [3.68.1] - 2024-06-23
|
|
30
|
-
|
|
31
|
-
### Bug Fixes
|
|
32
|
-
|
|
33
|
-
- wip pipeline
|
|
34
|
-
|
|
35
23
|
## [3.68.0] - 2024-06-23
|
|
36
24
|
|
|
37
25
|
### Add Features
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.5","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.
|
|
1
|
+
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.5","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.69.0"}
|
|
@@ -234,11 +234,10 @@ class Filter extends CustomElement {
|
|
|
234
234
|
formatter: {
|
|
235
235
|
marker: {
|
|
236
236
|
open: null,
|
|
237
|
-
close: null
|
|
238
|
-
}
|
|
237
|
+
close: null,
|
|
238
|
+
},
|
|
239
239
|
},
|
|
240
240
|
labels: {
|
|
241
|
-
|
|
242
241
|
search: "Search",
|
|
243
242
|
reset: "Reset",
|
|
244
243
|
save: "Save",
|
|
@@ -1013,7 +1012,10 @@ function collectSearchQueries() {
|
|
|
1013
1012
|
});
|
|
1014
1013
|
|
|
1015
1014
|
if (self.getOption("formatter.marker.open")) {
|
|
1016
|
-
formatter.setMarker(
|
|
1015
|
+
formatter.setMarker(
|
|
1016
|
+
self.getOption("formatter.marker.open"),
|
|
1017
|
+
self.getOption("formatter.marker.close"),
|
|
1018
|
+
);
|
|
1017
1019
|
}
|
|
1018
1020
|
|
|
1019
1021
|
let queryPart = formatter.format(template);
|
|
@@ -12,25 +12,24 @@
|
|
|
12
12
|
* SPDX-License-Identifier: AGPL-3.0
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import {instanceSymbol} from "../../constants.mjs";
|
|
16
|
-
import {addAttributeToken} from "../../dom/attributes.mjs";
|
|
15
|
+
import { instanceSymbol } from "../../constants.mjs";
|
|
16
|
+
import { addAttributeToken } from "../../dom/attributes.mjs";
|
|
17
17
|
import {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
ATTRIBUTE_ERRORMESSAGE,
|
|
19
|
+
ATTRIBUTE_ROLE,
|
|
20
20
|
} from "../../dom/constants.mjs";
|
|
21
|
-
import {CustomControl} from "../../dom/customcontrol.mjs";
|
|
21
|
+
import { CustomControl } from "../../dom/customcontrol.mjs";
|
|
22
22
|
import {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
assembleMethodSymbol,
|
|
24
|
+
getSlottedElements,
|
|
25
|
+
registerCustomElement,
|
|
25
26
|
} from "../../dom/customelement.mjs";
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {FieldSetStyleSheet} from "./stylesheet/field-set.mjs";
|
|
29
|
-
import {fireCustomEvent} from "../../dom/events.mjs";
|
|
27
|
+
import { isFunction } from "../../types/is.mjs";
|
|
28
|
+
import { FieldSetStyleSheet } from "./stylesheet/field-set.mjs";
|
|
30
29
|
import "../layout/collapse.mjs";
|
|
31
|
-
import
|
|
30
|
+
import "./toggle-switch.mjs";
|
|
32
31
|
|
|
33
|
-
export {FieldSet};
|
|
32
|
+
export { FieldSet };
|
|
34
33
|
|
|
35
34
|
/**
|
|
36
35
|
* @private
|
|
@@ -44,6 +43,18 @@ const fieldSetElementSymbol = Symbol("fieldSetElement");
|
|
|
44
43
|
*/
|
|
45
44
|
const collapseElementSymbol = Symbol("collapseElement");
|
|
46
45
|
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
* @type {symbol}
|
|
49
|
+
*/
|
|
50
|
+
const extendedSwitchSymbol = Symbol("extendedSwitch");
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @private
|
|
54
|
+
* @type {symbol}
|
|
55
|
+
*/
|
|
56
|
+
const headerElementSymbol = Symbol("headerElement");
|
|
57
|
+
|
|
47
58
|
/**
|
|
48
59
|
* @private
|
|
49
60
|
* @type {symbol}
|
|
@@ -90,174 +101,179 @@ const extendedSwitchElementSymbol = Symbol("extendedSwitchElement");
|
|
|
90
101
|
* @summary A simple FieldSet
|
|
91
102
|
*/
|
|
92
103
|
class FieldSet extends CustomControl {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
104
|
+
/**
|
|
105
|
+
* This method is called by the `instanceof` operator.
|
|
106
|
+
* @returns {symbol}
|
|
107
|
+
*/
|
|
108
|
+
static get [instanceSymbol]() {
|
|
109
|
+
return Symbol.for("@schukai/monster/components/form/fieldset@@instance");
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @return {Components.Form.FieldSet
|
|
114
|
+
*/
|
|
115
|
+
[assembleMethodSymbol]() {
|
|
116
|
+
super[assembleMethodSymbol]();
|
|
117
|
+
initControlReferences.call(this);
|
|
118
|
+
initEventHandler.call(this);
|
|
119
|
+
updateExtendedFields.call(this);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* To set the options via the html tag the attribute `data-monster-options` must be used.
|
|
125
|
+
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
|
126
|
+
*
|
|
127
|
+
* The individual configuration values can be found in the table.
|
|
128
|
+
*
|
|
129
|
+
* @property {Object} templates Template definitions
|
|
130
|
+
* @property {string} templates.main Main template
|
|
131
|
+
* @property {Object} labels Label definitions
|
|
132
|
+
* @property {Object} actions Callbacks
|
|
133
|
+
* @property {string} actions.click="throw Error" Callback when clicked
|
|
134
|
+
* @property {Object} features Features
|
|
135
|
+
* @property {Object} classes CSS classes
|
|
136
|
+
* @property {boolean} disabled=false Disabled state
|
|
137
|
+
*/
|
|
138
|
+
get defaults() {
|
|
139
|
+
return Object.assign({}, super.defaults, {
|
|
140
|
+
templates: {
|
|
141
|
+
main: getTemplate(),
|
|
142
|
+
},
|
|
143
|
+
labels: {
|
|
144
|
+
"toggle-switch-on": "✔",
|
|
145
|
+
"toggle-switch-off": "✖",
|
|
146
|
+
"toggle-switch-label": "Expand",
|
|
147
|
+
title: "",
|
|
148
|
+
},
|
|
149
|
+
classes: {},
|
|
150
|
+
disabled: false,
|
|
151
|
+
features: {},
|
|
152
|
+
actions: {
|
|
153
|
+
click: () => {
|
|
154
|
+
throw new Error("the click action is not defined");
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
value: null,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
*
|
|
163
|
+
* @return {string}
|
|
164
|
+
*/
|
|
165
|
+
static getTag() {
|
|
166
|
+
return "monster-field-set";
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
*
|
|
171
|
+
* @return {CSSStyleSheet[]}
|
|
172
|
+
*/
|
|
173
|
+
static getCSSStyleSheet() {
|
|
174
|
+
return [FieldSetStyleSheet];
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* The FieldSet.click() method simulates a click on the internal element.
|
|
179
|
+
*
|
|
180
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click}
|
|
181
|
+
*/
|
|
182
|
+
click() {
|
|
183
|
+
if (this.getOption("disabled") === true) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (
|
|
188
|
+
this[fieldSetElementSymbol] &&
|
|
189
|
+
isFunction(this[fieldSetElementSymbol].click)
|
|
190
|
+
) {
|
|
191
|
+
this[fieldSetElementSymbol].click();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* The Button.focus() method sets focus on the internal element.
|
|
197
|
+
*
|
|
198
|
+
* @param {Object} options
|
|
199
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus}
|
|
200
|
+
*/
|
|
201
|
+
focus(options) {
|
|
202
|
+
if (this.getOption("disabled") === true) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (
|
|
207
|
+
this[fieldSetElementSymbol] &&
|
|
208
|
+
isFunction(this[fieldSetElementSymbol].focus)
|
|
209
|
+
) {
|
|
210
|
+
this[fieldSetElementSymbol].focus(options);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* The Button.blur() method removes focus from the internal element.
|
|
216
|
+
*/
|
|
217
|
+
blur() {
|
|
218
|
+
if (
|
|
219
|
+
this[fieldSetElementSymbol] &&
|
|
220
|
+
isFunction(this[fieldSetElementSymbol].blur)
|
|
221
|
+
) {
|
|
222
|
+
this[fieldSetElementSymbol].blur();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals}
|
|
228
|
+
* @return {boolean}
|
|
229
|
+
*/
|
|
230
|
+
static get formAssociated() {
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* The current value of the form control.
|
|
236
|
+
*
|
|
237
|
+
* ```js
|
|
238
|
+
* e = document.querySelector('monster-field-set');
|
|
239
|
+
* console.log(e.value)
|
|
240
|
+
* ```
|
|
241
|
+
*
|
|
242
|
+
* @property {string}
|
|
243
|
+
*/
|
|
244
|
+
get value() {
|
|
245
|
+
return this.getOption("value");
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Set value of the form control.
|
|
250
|
+
*
|
|
251
|
+
* ```
|
|
252
|
+
* e = document.querySelector('monster-field-set');
|
|
253
|
+
* e.value=1
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
256
|
+
* @property {string} value
|
|
257
|
+
* @throws {Error} unsupported type
|
|
258
|
+
*/
|
|
259
|
+
set value(value) {
|
|
260
|
+
this.setOption("value", value);
|
|
261
|
+
try {
|
|
262
|
+
this?.setFormValue(this.value);
|
|
263
|
+
} catch (e) {
|
|
264
|
+
addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, e.message);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
252
267
|
}
|
|
253
268
|
|
|
254
269
|
function updateExtendedFields() {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
270
|
+
const nodes = getSlottedElements.call(this, "", "extended");
|
|
271
|
+
console.log(nodes.size);
|
|
272
|
+
if (nodes.size > 0) {
|
|
273
|
+
this[extendedSwitchSymbol].classList.remove("hidden");
|
|
274
|
+
} else {
|
|
275
|
+
this[extendedSwitchSymbol].classList.add("hidden");
|
|
276
|
+
}
|
|
261
277
|
}
|
|
262
278
|
|
|
263
279
|
/**
|
|
@@ -266,78 +282,53 @@ function updateExtendedFields() {
|
|
|
266
282
|
* @fires Monster.Components.Form.event:monster-field-set-clicked
|
|
267
283
|
*/
|
|
268
284
|
function initEventHandler() {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
// ATTRIBUTE_ROLE,
|
|
288
|
-
// "control",
|
|
289
|
-
// );
|
|
290
|
-
//
|
|
291
|
-
// if (!(element instanceof Node && self.hasNode(element))) {
|
|
292
|
-
// return;
|
|
293
|
-
// }
|
|
294
|
-
//
|
|
295
|
-
// callback.call(self, event);
|
|
296
|
-
// });
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
this[toggleSwitchElementSymbol].setOption("actions.on", () => {
|
|
300
|
-
console.log( this[collapseElementSymbol],"!!!")
|
|
301
|
-
this[collapseElementSymbol].open();
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
this[toggleSwitchElementSymbol].setOption("actions.off", () => {
|
|
305
|
-
this[collapseElementSymbol].close();
|
|
306
|
-
});
|
|
307
|
-
|
|
308
|
-
// this[extendedSwitchElementSymbol].addEventListener(type, function (event) {
|
|
309
|
-
// const element = findTargetElementFromEvent(
|
|
310
|
-
// event,
|
|
311
|
-
// ATTRIBUTE_ROLE,
|
|
312
|
-
// "extended-switch",
|
|
313
|
-
// );
|
|
314
|
-
//
|
|
315
|
-
//
|
|
316
|
-
//
|
|
317
|
-
// })
|
|
318
|
-
|
|
319
|
-
return this;
|
|
285
|
+
this[toggleSwitchElementSymbol].setOption(
|
|
286
|
+
"labels.toggle-switch-on",
|
|
287
|
+
this.getOption("labels.toggle-switch-on"),
|
|
288
|
+
);
|
|
289
|
+
this[toggleSwitchElementSymbol].setOption(
|
|
290
|
+
"labels.toggle-switch-off",
|
|
291
|
+
this.getOption("labels.toggle-switch-off"),
|
|
292
|
+
);
|
|
293
|
+
|
|
294
|
+
this[toggleSwitchElementSymbol].setOption("actions.on", () => {
|
|
295
|
+
this[collapseElementSymbol].open();
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
this[toggleSwitchElementSymbol].setOption("actions.off", () => {
|
|
299
|
+
this[collapseElementSymbol].close();
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
return this;
|
|
320
303
|
}
|
|
321
304
|
|
|
322
305
|
/**
|
|
323
306
|
* @private
|
|
324
307
|
*/
|
|
325
308
|
function initControlReferences() {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
309
|
+
this[fieldSetElementSymbol] = this.shadowRoot.querySelector(
|
|
310
|
+
`[${ATTRIBUTE_ROLE}="control"]`,
|
|
311
|
+
);
|
|
312
|
+
|
|
313
|
+
this[extendedSwitchElementSymbol] = this.shadowRoot.querySelector(
|
|
314
|
+
`[${ATTRIBUTE_ROLE}="extended-switch"]`,
|
|
315
|
+
);
|
|
316
|
+
|
|
317
|
+
this[collapseElementSymbol] = this.shadowRoot.querySelector(
|
|
318
|
+
`[${ATTRIBUTE_ROLE}="collapse"]`,
|
|
319
|
+
);
|
|
329
320
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
321
|
+
this[headerElementSymbol] = this.shadowRoot.querySelector(
|
|
322
|
+
`[${ATTRIBUTE_ROLE}="header"]`,
|
|
323
|
+
);
|
|
333
324
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
325
|
+
this[extendedSwitchSymbol] = this.shadowRoot.querySelector(
|
|
326
|
+
`[${ATTRIBUTE_ROLE}="extended-switch"]`,
|
|
327
|
+
);
|
|
337
328
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
329
|
+
this[toggleSwitchElementSymbol] = this.shadowRoot.querySelector(
|
|
330
|
+
`monster-toggle-switch`,
|
|
331
|
+
);
|
|
341
332
|
}
|
|
342
333
|
|
|
343
334
|
/**
|
|
@@ -345,14 +336,20 @@ function initControlReferences() {
|
|
|
345
336
|
* @return {string}
|
|
346
337
|
*/
|
|
347
338
|
function getTemplate() {
|
|
348
|
-
|
|
349
|
-
|
|
339
|
+
// language=HTML
|
|
340
|
+
return `
|
|
350
341
|
<div data-monster-role="control" part="control">
|
|
351
342
|
<div data-monster-role="header">
|
|
352
|
-
<monster-
|
|
343
|
+
<div data-monster-replace="path:labels.title" data-monster-role="title"></div>
|
|
344
|
+
<div data-monster-role="extended-switch">
|
|
345
|
+
<label data-monster-replace="path:labels.toggle-switch-label"></label>
|
|
346
|
+
<monster-toggle-switch></monster-toggle-switch>
|
|
347
|
+
</div>
|
|
353
348
|
</div>
|
|
354
349
|
<div>
|
|
355
|
-
<
|
|
350
|
+
<div class="collapse-alignment">
|
|
351
|
+
<slot></slot>
|
|
352
|
+
</div>
|
|
356
353
|
<monster-collapse data-monster-role="collapse">
|
|
357
354
|
<slot name="extended"></slot>
|
|
358
355
|
</monster-collapse>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@import "../../style/color.pcss";
|
|
2
|
+
@import "../../style/theme.pcss";
|
|
1
3
|
@import "../../style/display.pcss";
|
|
2
4
|
@import "../../style/border.pcss";
|
|
3
5
|
@import "../../style/control.pcss";
|
|
@@ -9,12 +11,34 @@
|
|
|
9
11
|
@import "../../style/floating-ui.pcss";
|
|
10
12
|
|
|
11
13
|
[data-monster-role=control] {
|
|
12
|
-
|
|
14
|
+
|
|
15
|
+
& .collapse-alignment {
|
|
16
|
+
padding: 0 1rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
13
20
|
}
|
|
14
21
|
|
|
15
22
|
|
|
16
23
|
[data-monster-role=header] {
|
|
17
24
|
display: flex;
|
|
18
25
|
align-items: center;
|
|
19
|
-
justify-content:
|
|
26
|
+
justify-content: space-between;
|
|
27
|
+
border-bottom: var(--monster-border-width) var(--monster-border-style) var(--monster-color-primary-1);
|
|
28
|
+
margin-bottom: 1rem;
|
|
29
|
+
padding-bottom: 0.2rem;
|
|
30
|
+
|
|
31
|
+
& label {
|
|
32
|
+
padding-right: 0.3rem;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
& [data-monster-role=extended-switch] {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: flex-end;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
& [data-monster-role=title] {
|
|
42
|
+
font-weight: bold;
|
|
43
|
+
}
|
|
20
44
|
}
|