@brightspace-ui/core 3.71.0 → 3.72.0
Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,7 @@
|
|
6
6
|
<link rel="stylesheet" href="../../demo/styles.css" type="text/css">
|
7
7
|
<script type="module">
|
8
8
|
import '../../demo/demo-page.js';
|
9
|
+
import '../../dialog/dialog-confirm.js';
|
9
10
|
import '../switch.js';
|
10
11
|
import '../switch-visibility.js';
|
11
12
|
</script>
|
@@ -68,6 +69,27 @@
|
|
68
69
|
</template>
|
69
70
|
</d2l-demo-snippet>
|
70
71
|
|
72
|
+
<h2>On/Off (confirm)</h2>
|
73
|
+
|
74
|
+
<d2l-demo-snippet>
|
75
|
+
<template>
|
76
|
+
<d2l-switch id="switch-with-confirm" text="Dark Mode"></d2l-switch>
|
77
|
+
<d2l-dialog-confirm id="confirm" title-text="Confirm" text="Are you sure you want to change?">
|
78
|
+
<d2l-button slot="footer" primary data-dialog-action="yes">Yes</d2l-button>
|
79
|
+
<d2l-button slot="footer" data-dialog-action="no">No</d2l-button>
|
80
|
+
</d2l-dialog-confirm>
|
81
|
+
<script>
|
82
|
+
const elem = document.querySelector('#switch-with-confirm');
|
83
|
+
elem.addEventListener('d2l-switch-before-change', async e => {
|
84
|
+
e.preventDefault();
|
85
|
+
const confirmResult = await document.querySelector('#confirm').open();
|
86
|
+
if (confirmResult === 'yes') e.detail.update(!elem.on);
|
87
|
+
});
|
88
|
+
elem.addEventListener('change', e => console.log('switch changed', e.target.on));
|
89
|
+
</script>
|
90
|
+
</template>
|
91
|
+
</d2l-demo-snippet>
|
92
|
+
|
71
93
|
</d2l-demo-page>
|
72
94
|
</body>
|
73
95
|
</html>
|
@@ -221,11 +221,11 @@ export const SwitchMixin = superclass => class extends FocusMixin(RtlMixin(super
|
|
221
221
|
|
222
222
|
get _labelContent() {
|
223
223
|
return html`<span
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
224
|
+
@click='${this._handleClick}'
|
225
|
+
@mouseenter='${this._handleSwitchHover}'
|
226
|
+
@mouseleave='${this._handleSwitchHoverLeave}'>
|
227
|
+
${this.text}
|
228
|
+
</span>`;
|
229
229
|
}
|
230
230
|
|
231
231
|
_handleClick() {
|
@@ -252,8 +252,23 @@ export const SwitchMixin = superclass => class extends FocusMixin(RtlMixin(super
|
|
252
252
|
|
253
253
|
_toggleState() {
|
254
254
|
if (this.disabled) return;
|
255
|
-
|
255
|
+
|
256
|
+
const beforeChangeEvent = new CustomEvent('d2l-switch-before-change', {
|
257
|
+
detail: { update: on => this._updateState(on) },
|
258
|
+
cancelable: true
|
259
|
+
});
|
260
|
+
|
261
|
+
this.dispatchEvent(beforeChangeEvent);
|
262
|
+
if (beforeChangeEvent.defaultPrevented) return;
|
263
|
+
|
264
|
+
this._updateState(!this.on);
|
265
|
+
}
|
266
|
+
|
267
|
+
_updateState(value) {
|
268
|
+
this.on = value;
|
269
|
+
|
256
270
|
/** Dispatched when the `on` property is updated */
|
257
271
|
this.dispatchEvent(new CustomEvent('change', { bubbles: true }));
|
258
272
|
}
|
273
|
+
|
259
274
|
};
|
@@ -8,6 +8,7 @@ import { SwitchMixin } from './switch-mixin.js';
|
|
8
8
|
/**
|
9
9
|
* A variant of the generic switch configured with special icons and default text for toggling "visibility".
|
10
10
|
* @slot - Optional content that will be displayed within the "conditions" opener tooltip when the switch is on.
|
11
|
+
* @fires d2l-switch-before-change - Dispatched before on-state is updated. Can be canceled to allow the consumer to handle switching the on-state. This is useful if something needs to happen prior to the on-state being switched.
|
11
12
|
*/
|
12
13
|
class VisibilitySwitch extends LocalizeCoreElement(SwitchMixin(LitElement)) {
|
13
14
|
|
@@ -7,6 +7,7 @@ import { SwitchMixin } from './switch-mixin.js';
|
|
7
7
|
/**
|
8
8
|
* A generic switch with on/off semantics.
|
9
9
|
* @attr {string} text - ACCESSIBILITY: REQUIRED: Acts as the primary label for the switch. Visible unless text-position is `hidden`.
|
10
|
+
* @fires d2l-switch-before-change - Dispatched before on-state is updated. Can be canceled to allow the consumer to handle switching the on-state. This is useful if something needs to happen prior to the on-state being switched.
|
10
11
|
*/
|
11
12
|
class Switch extends SwitchMixin(LitElement) {
|
12
13
|
|
package/custom-elements.json
CHANGED
@@ -11934,6 +11934,10 @@
|
|
11934
11934
|
}
|
11935
11935
|
],
|
11936
11936
|
"events": [
|
11937
|
+
{
|
11938
|
+
"name": "d2l-switch-before-change",
|
11939
|
+
"description": "Dispatched before on-state is updated. Can be canceled to allow the consumer to handle switching the on-state. This is useful if something needs to happen prior to the on-state being switched."
|
11940
|
+
},
|
11937
11941
|
{
|
11938
11942
|
"name": "change",
|
11939
11943
|
"description": "Dispatched when the `on` property is updated"
|
@@ -12012,6 +12016,10 @@
|
|
12012
12016
|
}
|
12013
12017
|
],
|
12014
12018
|
"events": [
|
12019
|
+
{
|
12020
|
+
"name": "d2l-switch-before-change",
|
12021
|
+
"description": "Dispatched before on-state is updated. Can be canceled to allow the consumer to handle switching the on-state. This is useful if something needs to happen prior to the on-state being switched."
|
12022
|
+
},
|
12015
12023
|
{
|
12016
12024
|
"name": "change",
|
12017
12025
|
"description": "Dispatched when the `on` property is updated"
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@brightspace-ui/core",
|
3
|
-
"version": "3.
|
3
|
+
"version": "3.72.0",
|
4
4
|
"description": "A collection of accessible, free, open-source web components for building Brightspace applications",
|
5
5
|
"type": "module",
|
6
6
|
"repository": "https://github.com/BrightspaceUI/core.git",
|