@baloise/ds-core 16.5.0-snapshot.1471-e419cbebb → 16.5.1
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/all.d.ts +0 -2
- package/components/all.js +0 -3
- package/components/bal-app.js +85 -1
- package/components/bal-field.js +3 -0
- package/components/bal-segment-item.js +64 -47
- package/components/bal-segment.js +61 -17
- package/components/index.js +289 -5
- package/components/tokens.esm.js +1 -1
- package/dist/baloise-design-system/baloise-design-system.esm.js +1 -1
- package/dist/baloise-design-system/baloise-design-system.js +1 -1
- package/dist/baloise-design-system/index.esm.js +1 -1
- package/dist/baloise-design-system/{p-f959646a.system.js → p-013b4c72.system.js} +1 -1
- package/dist/baloise-design-system/p-08b0e345a2.entry.js +1 -0
- package/dist/baloise-design-system/p-0db6b19e.js +1 -0
- package/dist/baloise-design-system/p-1509eaa7.system.js +1 -1
- package/dist/baloise-design-system/{p-9ab0f719.js → p-15a85377.js} +1 -1
- package/dist/baloise-design-system/{p-cd81adc228.entry.js → p-27bc71c322.entry.js} +1 -1
- package/dist/baloise-design-system/{p-b9203254fb.entry.js → p-3180888825.entry.js} +1 -1
- package/dist/baloise-design-system/{p-3e1fdd01f5.entry.js → p-342b27632b.entry.js} +1 -1
- package/dist/baloise-design-system/{p-ad679bd040.entry.js → p-34671b9410.entry.js} +1 -1
- package/dist/baloise-design-system/p-449ffc7a7e.entry.js +1 -0
- package/dist/baloise-design-system/{p-045b79ee4d.system.entry.js → p-52a4a89073.system.entry.js} +1 -1
- package/dist/baloise-design-system/p-54f81c32.js +1 -1
- package/dist/baloise-design-system/{p-d960c286.system.js → p-590da25b.system.js} +1 -1
- package/dist/baloise-design-system/{p-40878304.system.js → p-5de0bd8a.system.js} +1 -1
- package/dist/baloise-design-system/{p-04585f2f.system.js → p-60a6af04.system.js} +1 -1
- package/dist/baloise-design-system/{p-a547251249.entry.js → p-784c10d48f.entry.js} +1 -1
- package/dist/baloise-design-system/{p-767c357ddc.entry.js → p-80e59744a7.entry.js} +1 -1
- package/dist/baloise-design-system/{p-95bf6d0a8b.system.entry.js → p-8613444e15.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-2cb51419.system.js → p-910b2f3d.system.js} +1 -1
- package/dist/baloise-design-system/{p-e7d9295cf8.system.entry.js → p-a7de2305e0.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-78d1d35d85.system.entry.js → p-aed4d3ac0f.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-676e163338.system.entry.js → p-b4941441f4.system.entry.js} +1 -1
- package/dist/baloise-design-system/p-b60576a064.entry.js +1 -0
- package/dist/baloise-design-system/p-bcca1ed3.system.js +1 -0
- package/dist/baloise-design-system/{p-8b72df5ab4.entry.js → p-c716d30de1.entry.js} +1 -1
- package/dist/baloise-design-system/{p-e5a5fc1b.js → p-cfa901cb.js} +1 -1
- package/dist/baloise-design-system/{p-c8c9bab6e3.system.entry.js → p-d8a71bc5b4.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-a3eb350b5a.system.entry.js → p-d94b2cb869.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-5ef104a5a4.entry.js → p-d9f2d48be1.entry.js} +1 -1
- package/dist/baloise-design-system/{p-6590ce827f.system.entry.js → p-dd162dc12e.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-cb1e44b674.system.entry.js → p-e227dcfaa1.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-a6e88e6ab0.system.entry.js → p-e2316d2aea.system.entry.js} +1 -1
- package/dist/baloise-design-system/p-e45eb6121d.system.entry.js +1 -0
- package/dist/baloise-design-system/p-e78a6409.js +1 -0
- package/dist/baloise-design-system/{p-8a615db59f.entry.js → p-e829652c7a.entry.js} +1 -1
- package/dist/baloise-design-system/{p-8a16c8f794.entry.js → p-e8cab53413.entry.js} +1 -1
- package/dist/baloise-design-system/p-ec044ce124.system.entry.js +1 -0
- package/dist/baloise-design-system/{p-4e016ed599.system.entry.js → p-efe5a8806d.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-71b2968d8e.system.entry.js → p-f3bb565972.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-a5c78d4bf8.entry.js → p-fcfee1c692.entry.js} +1 -1
- package/dist/cjs/{global-2562a984.js → app-globals-ae3a8623.js} +4 -2
- package/dist/cjs/bal-carousel_2.cjs.entry.js +3 -3
- package/dist/cjs/bal-datepicker.cjs.entry.js +3 -3
- package/dist/cjs/bal-field_5.cjs.entry.js +3 -0
- package/dist/cjs/bal-hint_5.cjs.entry.js +3 -3
- package/dist/cjs/bal-list_8.cjs.entry.js +3 -3
- package/dist/cjs/bal-logo.cjs.entry.js +3 -3
- package/dist/cjs/bal-nav_8.cjs.entry.js +3 -3
- package/dist/cjs/bal-navbar_5.cjs.entry.js +3 -3
- package/dist/cjs/bal-pagination.cjs.entry.js +3 -3
- package/dist/cjs/bal-progress-bar.cjs.entry.js +4 -4
- package/dist/cjs/bal-segment_2.cjs.entry.js +115 -63
- package/dist/cjs/bal-shape.cjs.entry.js +1 -1
- package/dist/cjs/bal-steps.cjs.entry.js +3 -3
- package/dist/cjs/bal-tab-item_2.cjs.entry.js +3 -3
- package/dist/cjs/baloise-design-system.cjs.js +2 -3
- package/dist/cjs/{breakpoints.decorator-b125d386.js → breakpoints.decorator-f4da1834.js} +1 -1
- package/dist/cjs/{breakpoints.subject-488871c0.js → breakpoints.subject-6fc372a8.js} +1 -1
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/initialize-2a19d091.js +1 -1
- package/dist/cjs/loader.cjs.js +2 -3
- package/dist/cjs/{tokens.esm-abb7c10c.js → tokens.esm-cd3fab6c.js} +1 -1
- package/dist/cjs/{window-resize.decorator-3e886802.js → window-resize.decorator-67e1f4de.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -2
- package/dist/collection/components/bal-field/bal-field.js +3 -0
- package/dist/collection/components/bal-segment/bal-segment-item/bal-segment-item.js +92 -69
- package/dist/collection/components/bal-segment/bal-segment.js +115 -19
- package/dist/collection/utils/constants/version.constant.js +1 -1
- package/dist/esm/{global-63f4bcec.js → app-globals-b0dd0fc4.js} +4 -2
- package/dist/esm/bal-carousel_2.entry.js +3 -3
- package/dist/esm/bal-datepicker.entry.js +3 -3
- package/dist/esm/bal-field_5.entry.js +3 -0
- package/dist/esm/bal-hint_5.entry.js +3 -3
- package/dist/esm/bal-list_8.entry.js +3 -3
- package/dist/esm/bal-logo.entry.js +3 -3
- package/dist/esm/bal-nav_8.entry.js +3 -3
- package/dist/esm/bal-navbar_5.entry.js +3 -3
- package/dist/esm/bal-pagination.entry.js +3 -3
- package/dist/esm/bal-progress-bar.entry.js +4 -4
- package/dist/esm/bal-segment_2.entry.js +115 -63
- package/dist/esm/bal-shape.entry.js +1 -1
- package/dist/esm/bal-steps.entry.js +3 -3
- package/dist/esm/bal-tab-item_2.entry.js +3 -3
- package/dist/esm/baloise-design-system.js +2 -3
- package/dist/esm/{breakpoints.decorator-d3119ed5.js → breakpoints.decorator-8a50482f.js} +1 -1
- package/dist/esm/{breakpoints.subject-ed7a3540.js → breakpoints.subject-e3538fe7.js} +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/initialize-e216cfe4.js +1 -1
- package/dist/esm/loader.js +2 -3
- package/dist/esm/{tokens.esm-d31851f8.js → tokens.esm-7cf87670.js} +1 -1
- package/dist/esm/{window-resize.decorator-db8fd6f3.js → window-resize.decorator-9c08027e.js} +1 -1
- package/dist/esm-es5/app-globals-b0dd0fc4.js +1 -0
- package/dist/esm-es5/bal-carousel_2.entry.js +1 -1
- package/dist/esm-es5/bal-datepicker.entry.js +1 -1
- package/dist/esm-es5/bal-field_5.entry.js +1 -1
- package/dist/esm-es5/bal-hint_5.entry.js +1 -1
- package/dist/esm-es5/bal-list_8.entry.js +1 -1
- package/dist/esm-es5/bal-logo.entry.js +1 -1
- package/dist/esm-es5/bal-nav_8.entry.js +1 -1
- package/dist/esm-es5/bal-navbar_5.entry.js +1 -1
- package/dist/esm-es5/bal-pagination.entry.js +1 -1
- package/dist/esm-es5/bal-progress-bar.entry.js +1 -1
- package/dist/esm-es5/bal-segment_2.entry.js +1 -1
- package/dist/esm-es5/bal-shape.entry.js +1 -1
- package/dist/esm-es5/bal-steps.entry.js +1 -1
- package/dist/esm-es5/bal-tab-item_2.entry.js +1 -1
- package/dist/esm-es5/baloise-design-system.js +1 -1
- package/dist/esm-es5/{breakpoints.decorator-d3119ed5.js → breakpoints.decorator-8a50482f.js} +1 -1
- package/dist/esm-es5/{breakpoints.subject-ed7a3540.js → breakpoints.subject-e3538fe7.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/initialize-e216cfe4.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{window-resize.decorator-db8fd6f3.js → window-resize.decorator-9c08027e.js} +1 -1
- package/dist/types/components/bal-segment/bal-segment-item/bal-segment-item.d.ts +17 -13
- package/dist/types/components/bal-segment/bal-segment.d.ts +22 -3
- package/dist/types/components/bal-segment/bal-segment.interfaces.d.ts +2 -0
- package/dist/types/components.d.ts +7 -56
- package/package.json +7 -7
- package/components/bal-app2.js +0 -87
- package/components/bal-doc-app.d.ts +0 -11
- package/components/bal-doc-app.js +0 -260
- package/components/initialize.js +0 -288
- package/dist/baloise-design-system/p-1b8739df31.system.entry.js +0 -1
- package/dist/baloise-design-system/p-2d373ec3.js +0 -1
- package/dist/baloise-design-system/p-360068a4.system.js +0 -1
- package/dist/baloise-design-system/p-4ff656dd48.entry.js +0 -1
- package/dist/baloise-design-system/p-6d1b6215.js +0 -1
- package/dist/baloise-design-system/p-7291766c.system.js +0 -1
- package/dist/baloise-design-system/p-7cc52e4a3b.system.entry.js +0 -1
- package/dist/baloise-design-system/p-99177a28c0.entry.js +0 -1
- package/dist/baloise-design-system/p-b8f085f7b5.system.entry.js +0 -1
- package/dist/baloise-design-system/p-d9d229a026.entry.js +0 -1
- package/dist/baloise-design-system/p-e8ffddeb.js +0 -1
- package/dist/baloise-design-system/p-ef493de9d5.entry.js +0 -1
- package/dist/cjs/app-globals-5fd73c0c.js +0 -7
- package/dist/cjs/bal-doc-app.cjs.entry.js +0 -231
- package/dist/collection/components/docs/bal-doc-app/bal-doc-app.css +0 -1
- package/dist/collection/components/docs/bal-doc-app/bal-doc-app.js +0 -229
- package/dist/esm/app-globals-970bab17.js +0 -5
- package/dist/esm/bal-doc-app.entry.js +0 -227
- package/dist/esm-es5/app-globals-970bab17.js +0 -1
- package/dist/esm-es5/bal-doc-app.entry.js +0 -1
- package/dist/esm-es5/global-63f4bcec.js +0 -1
- package/dist/types/components/docs/bal-doc-app/bal-doc-app.d.ts +0 -21
- package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/icons/src/index.d.ts +0 -81
- /package/dist/baloise-design-system/{p-445ba24a.js → p-46bed129.js} +0 -0
- /package/dist/baloise-design-system/{p-072d2e2e.system.js → p-9ffefe27.system.js} +0 -0
- /package/dist/esm-es5/{tokens.esm-d31851f8.js → tokens.esm-7cf87670.js} +0 -0
package/components/all.d.ts
CHANGED
|
@@ -28,7 +28,6 @@ import { BalDateCalendar, defineCustomElement as defineBalDateCalendar } from '.
|
|
|
28
28
|
import { BalDateCalendarCell, defineCustomElement as defineBalDateCalendarCell } from './bal-date-calendar-cell'
|
|
29
29
|
import { BalDatepicker, defineCustomElement as defineBalDatepicker } from './bal-datepicker'
|
|
30
30
|
import { BalDivider, defineCustomElement as defineBalDivider } from './bal-divider'
|
|
31
|
-
import { BalDocApp, defineCustomElement as defineBalDocApp } from './bal-doc-app'
|
|
32
31
|
import { BalDropdown, defineCustomElement as defineBalDropdown } from './bal-dropdown'
|
|
33
32
|
import { BalField, defineCustomElement as defineBalField } from './bal-field'
|
|
34
33
|
import { BalFieldControl, defineCustomElement as defineBalFieldControl } from './bal-field-control'
|
|
@@ -147,7 +146,6 @@ export { BalDateCalendar, defineBalDateCalendar }
|
|
|
147
146
|
export { BalDateCalendarCell, defineBalDateCalendarCell }
|
|
148
147
|
export { BalDatepicker, defineBalDatepicker }
|
|
149
148
|
export { BalDivider, defineBalDivider }
|
|
150
|
-
export { BalDocApp, defineBalDocApp }
|
|
151
149
|
export { BalDropdown, defineBalDropdown }
|
|
152
150
|
export { BalField, defineBalField }
|
|
153
151
|
export { BalFieldControl, defineBalFieldControl }
|
package/components/all.js
CHANGED
|
@@ -28,7 +28,6 @@ import { BalDateCalendar, defineCustomElement as defineBalDateCalendar } from '.
|
|
|
28
28
|
import { BalDateCalendarCell, defineCustomElement as defineBalDateCalendarCell } from './bal-date-calendar-cell'
|
|
29
29
|
import { BalDatepicker, defineCustomElement as defineBalDatepicker } from './bal-datepicker'
|
|
30
30
|
import { BalDivider, defineCustomElement as defineBalDivider } from './bal-divider'
|
|
31
|
-
import { BalDocApp, defineCustomElement as defineBalDocApp } from './bal-doc-app'
|
|
32
31
|
import { BalDropdown, defineCustomElement as defineBalDropdown } from './bal-dropdown'
|
|
33
32
|
import { BalField, defineCustomElement as defineBalField } from './bal-field'
|
|
34
33
|
import { BalFieldControl, defineCustomElement as defineBalFieldControl } from './bal-field-control'
|
|
@@ -147,7 +146,6 @@ export { BalDateCalendar, defineBalDateCalendar }
|
|
|
147
146
|
export { BalDateCalendarCell, defineBalDateCalendarCell }
|
|
148
147
|
export { BalDatepicker, defineBalDatepicker }
|
|
149
148
|
export { BalDivider, defineBalDivider }
|
|
150
|
-
export { BalDocApp, defineBalDocApp }
|
|
151
149
|
export { BalDropdown, defineBalDropdown }
|
|
152
150
|
export { BalField, defineBalField }
|
|
153
151
|
export { BalFieldControl, defineBalFieldControl }
|
|
@@ -267,7 +265,6 @@ export const defineAllComponents = () => {
|
|
|
267
265
|
defineBalDateCalendarCell()
|
|
268
266
|
defineBalDatepicker()
|
|
269
267
|
defineBalDivider()
|
|
270
|
-
defineBalDocApp()
|
|
271
268
|
defineBalDropdown()
|
|
272
269
|
defineBalField()
|
|
273
270
|
defineBalFieldControl()
|
package/components/bal-app.js
CHANGED
|
@@ -1,4 +1,88 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { _ as __decorate, a as __metadata } from './tslib.es6.js';
|
|
3
|
+
import { b as balBrowser } from './browser.js';
|
|
4
|
+
import { b as balDevice } from './device.js';
|
|
5
|
+
import { h as debounce, k as rIC } from './helpers.js';
|
|
6
|
+
import { L as Logger } from './log.js';
|
|
7
|
+
import { s as startFocusVisible } from './focus-visible.js';
|
|
8
|
+
import { b as updateBalAnimated } from './config.utils.js';
|
|
9
|
+
|
|
10
|
+
const balAppCss = ":root{--bal-app-height:100%}.bal-app{position:relative;display:block}";
|
|
11
|
+
const BalAppStyle0 = balAppCss;
|
|
12
|
+
|
|
13
|
+
const App = /*@__PURE__*/ proxyCustomElement(class App extends HTMLElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.__registerHost();
|
|
17
|
+
this.debouncedNotify = debounce(() => this.notifyResize(), 100);
|
|
18
|
+
this.notifyResize = async () => {
|
|
19
|
+
if (balBrowser.hasDocument && balBrowser.hasWindow) {
|
|
20
|
+
const doc = document.documentElement;
|
|
21
|
+
doc.style.setProperty('--bal-app-height', `${window.innerHeight}px`);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
this.animated = true;
|
|
25
|
+
this.ready = false;
|
|
26
|
+
}
|
|
27
|
+
createLogger(log) {
|
|
28
|
+
this.log = log;
|
|
29
|
+
}
|
|
30
|
+
connectedCallback() {
|
|
31
|
+
updateBalAnimated(this.animated);
|
|
32
|
+
if (balBrowser.hasWindow) {
|
|
33
|
+
window.addEventListener('resize', this.debouncedNotify);
|
|
34
|
+
this.debouncedNotify();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
componentDidLoad() {
|
|
38
|
+
rIC(async () => {
|
|
39
|
+
this.ready = true;
|
|
40
|
+
startFocusVisible();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
disconnectedCallback() {
|
|
44
|
+
if (balBrowser.hasWindow) {
|
|
45
|
+
window.removeEventListener('resize', this.debouncedNotify);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async setFocus(elements) {
|
|
49
|
+
if (this.focusVisible) {
|
|
50
|
+
this.focusVisible.setFocus(elements);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
render() {
|
|
54
|
+
return (h(Host, { class: {
|
|
55
|
+
'bal-app': true,
|
|
56
|
+
'bal-app--safari': balBrowser.isSafari,
|
|
57
|
+
'bal-app--touch': balDevice.hasTouchScreen,
|
|
58
|
+
} }, h("slot", null)));
|
|
59
|
+
}
|
|
60
|
+
get el() { return this; }
|
|
61
|
+
static get style() { return BalAppStyle0; }
|
|
62
|
+
}, [4, "bal-app", {
|
|
63
|
+
"animated": [516],
|
|
64
|
+
"ready": [1540],
|
|
65
|
+
"setFocus": [64]
|
|
66
|
+
}]);
|
|
67
|
+
__decorate([
|
|
68
|
+
Logger('bal-app'),
|
|
69
|
+
__metadata("design:type", Function),
|
|
70
|
+
__metadata("design:paramtypes", [Function]),
|
|
71
|
+
__metadata("design:returntype", void 0)
|
|
72
|
+
], App.prototype, "createLogger", null);
|
|
73
|
+
function defineCustomElement$1() {
|
|
74
|
+
if (typeof customElements === "undefined") {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const components = ["bal-app"];
|
|
78
|
+
components.forEach(tagName => { switch (tagName) {
|
|
79
|
+
case "bal-app":
|
|
80
|
+
if (!customElements.get(tagName)) {
|
|
81
|
+
customElements.define(tagName, App);
|
|
82
|
+
}
|
|
83
|
+
break;
|
|
84
|
+
} });
|
|
85
|
+
}
|
|
2
86
|
|
|
3
87
|
const BalApp = App;
|
|
4
88
|
const defineCustomElement = defineCustomElement$1;
|
package/components/bal-field.js
CHANGED
|
@@ -29,6 +29,7 @@ const Field = /*@__PURE__*/ proxyCustomElement(class Field extends HTMLElement {
|
|
|
29
29
|
'bal-input-slider',
|
|
30
30
|
'bal-file-upload',
|
|
31
31
|
'bal-dropdown',
|
|
32
|
+
'bal-segment',
|
|
32
33
|
];
|
|
33
34
|
this.formElements = [...this.formControlElement, 'bal-field-label', 'bal-field-message'];
|
|
34
35
|
this.isDirectChild = (el) => {
|
|
@@ -118,6 +119,8 @@ const Field = /*@__PURE__*/ proxyCustomElement(class Field extends HTMLElement {
|
|
|
118
119
|
'bal-field-control bal-dropdown',
|
|
119
120
|
'bal-field-control bal-checkbox',
|
|
120
121
|
'bal-field-control bal-radio',
|
|
122
|
+
'bal-field-control bal-segment-item',
|
|
123
|
+
'bal-field-control bal-segment',
|
|
121
124
|
'bal-field-control bal-checkbox-group',
|
|
122
125
|
'bal-field-control bal-radio-group',
|
|
123
126
|
'bal-field-control bal-number-input',
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement,
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { B as BEM } from './bem.js';
|
|
3
3
|
import { i as inheritAttributes } from './attributes.js';
|
|
4
|
-
import { j as addEventListener,
|
|
4
|
+
import { j as addEventListener, l as raf, r as removeEventListener } from './helpers.js';
|
|
5
|
+
import { d as defaultBalAriaForm } from './form.js';
|
|
5
6
|
import { d as defineCustomElement$5 } from './bal-content2.js';
|
|
6
7
|
import { d as defineCustomElement$4 } from './bal-icon2.js';
|
|
7
8
|
import { d as defineCustomElement$3 } from './bal-label2.js';
|
|
@@ -10,15 +11,15 @@ import { d as defineCustomElement$2 } from './bal-stack2.js';
|
|
|
10
11
|
const balSegmentItemCss = ":root{--bal-segment-background:var(--bal-color-grey-2);--bal-segment-background-invalid:var(--bal-color-danger-1);--bal-segment-item-focus-border:var(--bal-color-border-primary);--bal-segment-item-text-color:var(--bal-color-text-primary);--bal-segment-item-text-color-checked:var(--bal-color-text-primary);--bal-segment-item-text-color-checked-hovered:var(--bal-color-text-primary-hovered);--bal-segment-item-text-color-checked-pressed:var(--bal-color-text-primary-pressed);--bal-segment-item-text-color-invalid:var(--bal-color-text-danger);--bal-segment-item-text-color-invalid-hovered:var(--bal-color-text-danger-hovered);--bal-segment-item-text-color-invalid-pressed:var(--bal-color-text-danger-pressed);--bal-segment-item-text-color-disabled:var(--bal-color-text-grey);--bal-segment-item-text-color-disabled-checked:var(--bal-color-text-grey-dark);--bal-segment-item-divider-background:var(--bal-color-grey);--bal-segment-item-divider-background-invalid:var(--bal-color-danger-2);--bal-segment-item-indicator-background:var(--bal-color-purple-2);--bal-segment-item-indicator-background-invalid:var(--bal-color-danger-4);--bal-segment-item-indicator-background-disabled:var(--bal-color-grey-3)}.bal-segment-item{display:block;position:relative;height:auto;text-decoration:none;text-overflow:ellipsis;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;grid-row:1;-webkit-font-kerning:none;font-kerning:none}.bal-segment-item--disabled{cursor:default !important;pointer-events:none !important}.bal-segment-item__button{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:2.5rem;min-width:3rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-positive:1;flex-grow:1;padding-top:.375rem;padding-bottom:.375rem;padding-left:20px;padding-right:20px;outline:none;border-color:rgba(0,0,0,0);border-width:var(--bal-border-width-normal);border-style:solid;border-radius:var(--bal-radius-normal);background:rgba(0,0,0,0);font-size:var(--bal-text-size-normal);font-weight:var(--bal-font-weight-bold);color:var(--bal-segment-item-text-color);overflow:hidden;position:relative;contain:content;pointer-events:none;cursor:pointer;z-index:2}.bal-segment-item__button--vertical{padding-left:.75rem;padding-right:.75rem}.bal-segment-item__button span{font-size:var(--bal-text-size-small);font-weight:var(--bal-font-weight-regular)}.bal-segment-item__button{will-change:color,padding;-webkit-transition:color 160ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 160ms cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition:padding 160ms cubic-bezier(0.4, 0, 0.2, 1);transition:padding 160ms cubic-bezier(0.4, 0, 0.2, 1)}.bal-segment-item:not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{content:\"\";position:absolute;background:var(--bal-segment-item-divider-background);border-radius:var(--bal-radius-normal)}.bal-segment-item:not(.bal-segment-item--vertical):not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{top:2px;bottom:2px;right:-1px;width:2px}.bal-segment-item.bal-segment-item--vertical:not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{left:2px;right:2px;bottom:-1px;height:2px}.bal-segment-item--invalid:not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{background:var(--bal-segment-item-divider-background-invalid)}.bal-segment-item__indicator{-webkit-transform-origin:left;transform-origin:left;position:absolute;opacity:0;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;border-radius:var(--bal-radius-normal);background:var(--bal-segment-item-indicator-background);top:0;left:0}.bal-segment-item__indicator--vertical{-webkit-transform-origin:top;transform-origin:top}.bal-segment-item__indicator--invalid{background:var(--bal-segment-item-indicator-background-invalid)}.bal-segment-item__indicator--background{min-width:100%;min-height:100%;-webkit-transform:none;transform:none;pointer-events:none}.bal-segment-item__indicator--animated{will-change:transform,opacity,top,bottom,left,right,min-width,min-heigth;-webkit-transition:min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease,-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease,-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1),min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease;transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1),min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease,-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1)}.bal-segment-item__indicator--checked{opacity:1}.bal-segment-item:active .bal-segment-item__indicator{min-width:calc(100% - 4px);min-height:calc(100% - 4px);top:2px !important;bottom:2px !important;left:2px !important;right:2px !important}.bal-segment-item__button__icon{position:absolute !important;opacity:0;width:0 !important;-webkit-transform:translateX(0.1rem);transform:translateX(0.1rem);pointer-events:none !important;cursor:inherit;will-change:transform,opacity}.bal-segment-item__button__icon:not(.bal-segment-item__button__icon--vertical){left:10px}.bal-segment-item__button__icon--vertical{right:10px}.bal-segment-item__button__icon--animated{opacity:1;width:.875rem !important;-webkit-transform:translateX(-4px);transform:translateX(-4px);-webkit-transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),transform 260ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1)}.bal-segment-item__button--checked{color:var(--bal-segment-item-text-color-checked);padding-right:40px}.bal-segment-item__button--checked:not(.bal-segment-item__button--vertical){padding-left:26px;padding-right:12px}@media (hover: hover)and (pointer: fine){.bal-segment-item:not(.bal-segment-item--disabled):hover .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-checked-hovered)}}.bal-segment-item:not(.bal-segment-item--disabled):active .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-checked-pressed)}.bal-segment--keyboard .bal-segment-item__button:not(.bal-segment-item__button--disabled):focus-visible,.bal-segment--keyboard .bal-segment-item__button--focused:not(.bal-segment-item__button--disabled){border-color:var(--bal-segment-item-focus-border);border-width:var(--bal-border-width-normal);border-style:solid;-webkit-transition:border 300ms ease-in-out;transition:border 300ms ease-in-out}.bal-segment-item.bal-segment-item--invalid:not(.bal-segment-item--disabled) .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-invalid)}@media (hover: hover)and (pointer: fine){.bal-segment-item.bal-segment-item--invalid:not(.bal-segment-item--disabled):hover .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-invalid-hovered)}}.bal-segment-item.bal-segment-item--invalid:not(.bal-segment-item--disabled):active .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-invalid-pressed)}.bal-segment-item__button--invalid.bal-segment-item__button--checked{color:var(--bal-color-text-white)}.bal-segment-item__button--disabled{background:rgba(0,0,0,0);color:var(--bal-segment-item-text-color-disabled)}.bal-segment-item__button--disabled.bal-segment-item__button--checked{background:var(--bal-segment-item-indicator-background-disabled);color:var(--bal-segment-item-text-color-disabled-checked)}.bal-segment-item__button__slot--hidden{display:none !important}";
|
|
11
12
|
const BalSegmentItemStyle0 = balSegmentItemCss;
|
|
12
13
|
|
|
13
|
-
let
|
|
14
|
+
let SegmentItemIds = 0;
|
|
14
15
|
const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends HTMLElement {
|
|
15
16
|
constructor() {
|
|
16
17
|
super();
|
|
17
18
|
this.__registerHost();
|
|
18
|
-
this.balBlur = createEvent(this, "balBlur", 7);
|
|
19
19
|
this.segmentEl = null;
|
|
20
20
|
this.inheritedAttributes = {};
|
|
21
|
-
this.
|
|
21
|
+
this.internalId = SegmentItemIds++;
|
|
22
|
+
this.inputId = `bal-si-${this.internalId}`;
|
|
22
23
|
this.updateVertical = (ev) => {
|
|
23
24
|
this.isVertical = ev.detail;
|
|
24
25
|
};
|
|
@@ -26,7 +27,7 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
|
|
|
26
27
|
const { segmentEl } = this;
|
|
27
28
|
if (segmentEl) {
|
|
28
29
|
if (segmentEl.value === '' || segmentEl.value === undefined || segmentEl.value === null) {
|
|
29
|
-
const items = this.
|
|
30
|
+
const items = this.allAvailableOptions;
|
|
30
31
|
if (items.length > 0) {
|
|
31
32
|
const first = items[0];
|
|
32
33
|
this.isFocusable = first === this.el;
|
|
@@ -39,6 +40,9 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
|
|
|
39
40
|
if (segmentEl.disabled) {
|
|
40
41
|
this.disabled = true;
|
|
41
42
|
}
|
|
43
|
+
this.isLast = segmentEl.lastElementChild === this.el;
|
|
44
|
+
this.isFirst = segmentEl.firstElementChild === this.el;
|
|
45
|
+
this.calculateEmptyValue();
|
|
42
46
|
}
|
|
43
47
|
};
|
|
44
48
|
this.onSlottedItemsChange = () => {
|
|
@@ -52,23 +56,35 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
|
|
|
52
56
|
this.hasSlotContent = false;
|
|
53
57
|
this.isFocusable = false;
|
|
54
58
|
this.isVertical = false;
|
|
59
|
+
this.isLast = false;
|
|
60
|
+
this.isFirst = false;
|
|
61
|
+
this.hasEmptyValue = true;
|
|
62
|
+
this.ariaForm = defaultBalAriaForm;
|
|
55
63
|
this.disabled = false;
|
|
56
64
|
this.invalid = false;
|
|
57
65
|
this.focused = false;
|
|
58
66
|
this.checked = false;
|
|
59
67
|
this.label = '';
|
|
60
|
-
this.value = 'bal-si-' + this.
|
|
68
|
+
this.value = 'bal-si-' + this.internalId;
|
|
61
69
|
}
|
|
62
|
-
valueChanged() {
|
|
63
|
-
|
|
70
|
+
valueChanged(newValue, oldValue) {
|
|
71
|
+
if (newValue !== oldValue) {
|
|
72
|
+
this.updateState();
|
|
73
|
+
}
|
|
64
74
|
}
|
|
65
|
-
|
|
75
|
+
componentWillLoad() {
|
|
76
|
+
this.inheritedAttributes = Object.assign({}, inheritAttributes(this.el, ['aria-label']));
|
|
77
|
+
}
|
|
78
|
+
componentDidLoad() {
|
|
66
79
|
const segmentEl = (this.segmentEl = this.el.closest('bal-segment'));
|
|
67
80
|
if (segmentEl) {
|
|
68
|
-
this.updateState();
|
|
69
81
|
addEventListener(segmentEl, 'balSelect', this.updateState);
|
|
70
82
|
addEventListener(segmentEl, 'balVertical', this.updateVertical);
|
|
71
83
|
}
|
|
84
|
+
raf(() => {
|
|
85
|
+
this.checkSlotContent();
|
|
86
|
+
this.updateState();
|
|
87
|
+
});
|
|
72
88
|
}
|
|
73
89
|
disconnectedCallback() {
|
|
74
90
|
const segmentEl = this.segmentEl;
|
|
@@ -78,11 +94,14 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
|
|
|
78
94
|
this.segmentEl = null;
|
|
79
95
|
}
|
|
80
96
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
97
|
+
calculateEmptyValue() {
|
|
98
|
+
if (this.segmentEl) {
|
|
99
|
+
const segments = Array.from(this.segmentEl.querySelectorAll('bal-segment-item'));
|
|
100
|
+
this.hasEmptyValue = !segments.some(item => item.value === this.segmentEl.value);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.hasEmptyValue = false;
|
|
104
|
+
}
|
|
86
105
|
}
|
|
87
106
|
/**
|
|
88
107
|
* @internal
|
|
@@ -95,54 +114,47 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
|
|
|
95
114
|
nativeEl.focus();
|
|
96
115
|
}
|
|
97
116
|
}
|
|
98
|
-
|
|
99
|
-
|
|
117
|
+
/**
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
async setAriaForm(ariaForm) {
|
|
121
|
+
this.ariaForm = Object.assign({}, ariaForm);
|
|
100
122
|
}
|
|
101
|
-
get
|
|
123
|
+
get allAvailableOptions() {
|
|
124
|
+
return this.allOptions.filter(item => !item.disabled);
|
|
125
|
+
}
|
|
126
|
+
get allOptions() {
|
|
102
127
|
const { segmentEl } = this;
|
|
103
128
|
if (segmentEl) {
|
|
104
129
|
return Array.from(segmentEl.querySelectorAll('bal-segment-item'));
|
|
105
130
|
}
|
|
106
131
|
return [];
|
|
107
132
|
}
|
|
108
|
-
isFirst() {
|
|
109
|
-
const { segmentEl } = this;
|
|
110
|
-
let items = this.items;
|
|
111
|
-
if (segmentEl && segmentEl.disabled) {
|
|
112
|
-
items = this.allItems;
|
|
113
|
-
}
|
|
114
|
-
if (items.length > 0) {
|
|
115
|
-
const first = items[0];
|
|
116
|
-
return first === this.el;
|
|
117
|
-
}
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
isLast() {
|
|
121
|
-
const { segmentEl } = this;
|
|
122
|
-
let items = this.items;
|
|
123
|
-
if (segmentEl && segmentEl.disabled) {
|
|
124
|
-
items = this.allItems;
|
|
125
|
-
}
|
|
126
|
-
if (items.length > 0) {
|
|
127
|
-
const last = items[items.length - 1];
|
|
128
|
-
return last === this.el;
|
|
129
|
-
}
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
133
|
checkSlotContent() {
|
|
133
134
|
const slot = this.el.querySelector('[part="slot"]');
|
|
134
135
|
const children = slot ? slot.innerHTML.trim() : '';
|
|
135
136
|
this.hasSlotContent = children.length > 0;
|
|
136
137
|
}
|
|
137
138
|
render() {
|
|
138
|
-
const { checked, focused, segmentEl, label, isFocusable } = this;
|
|
139
|
+
const { checked, focused, segmentEl, label, isFocusable, isFirst, hasEmptyValue } = this;
|
|
139
140
|
const block = BEM.block('segment-item');
|
|
140
141
|
const buttonBem = block.element('button');
|
|
141
142
|
const indicatorBem = block.element('indicator');
|
|
142
143
|
const invalid = this.invalid || (segmentEl && segmentEl.invalid);
|
|
143
144
|
const disabled = this.disabled || (segmentEl && segmentEl.disabled);
|
|
144
145
|
const vertical = this.isVertical;
|
|
145
|
-
|
|
146
|
+
const hasTabindex = (hasEmptyValue && isFirst) || (isFocusable && !disabled);
|
|
147
|
+
const id = (hasTabindex && this.ariaForm.controlId) || this.inputId;
|
|
148
|
+
let buttonAttributes = {};
|
|
149
|
+
if (hasTabindex) {
|
|
150
|
+
let labelId = this.ariaForm.labelId || null;
|
|
151
|
+
labelId = `${labelId || ''} ${id}-lbl`.trim();
|
|
152
|
+
buttonAttributes = {
|
|
153
|
+
'aria-labelledby': labelId,
|
|
154
|
+
'aria-describedby': this.ariaForm.messageId,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return (h(Host, { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('vertical').class(vertical)), block.modifier('disabled').class(disabled)), block.modifier('checked').class(checked)), block.modifier('invalid').class(invalid)), block.modifier('last').class(this.isLast && !checked)) }, h("button", Object.assign({ id: id, role: "radio", "aria-checked": checked ? 'true' : 'false' }, buttonAttributes, { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, buttonBem.class()), buttonBem.modifier('checked').class(checked)), buttonBem.modifier('invalid').class(invalid)), buttonBem.modifier('disabled').class(disabled)), buttonBem.modifier('focused').class(focused)), buttonBem.modifier('vertical').class(vertical)), type: 'button', tabIndex: hasTabindex ? 0 : -1, part: "native", disabled: disabled, ref: el => (this.nativeEl = el) }, this.inheritedAttributes), h("bal-icon", { name: "check", size: "small", class: Object.assign(Object.assign(Object.assign({}, buttonBem.element('icon').class()), buttonBem.element('icon').modifier('animated').class(checked)), buttonBem.element('icon').modifier('vertical').class(vertical)), color: disabled ? 'grey-dark' : invalid ? 'white' : 'primary' }), h("bal-stack", { space: "x-small", layout: 'horizontal' }, h("bal-content", { space: "none" }, h("bal-label", { htmlId: `bal-si-${this.internalId}-label` }, label), h("span", { part: "slot", class: Object.assign({}, buttonBem.element('slot').modifier('hidden').class(!this.hasSlotContent)) }, ' ', h("slot", { onSlotchange: this.onSlottedItemsChange }))))), h("div", { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, indicatorBem.class()), indicatorBem.modifier('animated').class()), indicatorBem.modifier('background').class()), indicatorBem.modifier('disabled').class(disabled)), indicatorBem.modifier('invalid').class(invalid)), indicatorBem.modifier('checked').class(checked)), indicatorBem.modifier('vertical').class(vertical)) })));
|
|
146
158
|
}
|
|
147
159
|
get el() { return this; }
|
|
148
160
|
static get watchers() { return {
|
|
@@ -155,11 +167,16 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
|
|
|
155
167
|
"focused": [1028],
|
|
156
168
|
"checked": [1028],
|
|
157
169
|
"label": [1],
|
|
158
|
-
"value": [
|
|
170
|
+
"value": [1032],
|
|
159
171
|
"hasSlotContent": [32],
|
|
160
172
|
"isFocusable": [32],
|
|
161
173
|
"isVertical": [32],
|
|
162
|
-
"
|
|
174
|
+
"isLast": [32],
|
|
175
|
+
"isFirst": [32],
|
|
176
|
+
"hasEmptyValue": [32],
|
|
177
|
+
"ariaForm": [32],
|
|
178
|
+
"setFocus": [64],
|
|
179
|
+
"setAriaForm": [64]
|
|
163
180
|
}, undefined, {
|
|
164
181
|
"value": ["valueChanged"]
|
|
165
182
|
}]);
|
|
@@ -6,6 +6,8 @@ import { a as isSpaceKey, q as isArrowUpKey, A as isArrowLeftKey, o as isArrowDo
|
|
|
6
6
|
import { s as stopEventBubbling } from './form-input.js';
|
|
7
7
|
import { F as FOCUS_KEYS } from './focus-visible.js';
|
|
8
8
|
import { l as raf } from './helpers.js';
|
|
9
|
+
import { d as defaultBalAriaForm } from './form.js';
|
|
10
|
+
import { L as ListenToFocus } from './focus.decorator.js';
|
|
9
11
|
import { L as ListenToBreakpoints } from './breakpoints.decorator.js';
|
|
10
12
|
import { L as ListenToWindowResize } from './window-resize.decorator.js';
|
|
11
13
|
|
|
@@ -16,13 +18,19 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
16
18
|
constructor() {
|
|
17
19
|
super();
|
|
18
20
|
this.__registerHost();
|
|
21
|
+
this.balFocus = createEvent(this, "balFocus", 7);
|
|
19
22
|
this.balBlur = createEvent(this, "balBlur", 7);
|
|
20
23
|
this.balChange = createEvent(this, "balChange", 7);
|
|
21
24
|
this.balSelect = createEvent(this, "balSelect", 7);
|
|
22
25
|
this.balVertical = createEvent(this, "balVertical", 7);
|
|
26
|
+
/**
|
|
27
|
+
* LISTENERS
|
|
28
|
+
* ------------------------------------------------------
|
|
29
|
+
*/
|
|
30
|
+
this.hasFocus = false;
|
|
23
31
|
this.getSegmentItem = (selector) => {
|
|
24
32
|
var _a, _b;
|
|
25
|
-
const items = this.
|
|
33
|
+
const items = this.allItems.filter(item => !item.disabled);
|
|
26
34
|
const currIndex = items.findIndex(item => item === document.activeElement.closest('bal-segment-item'));
|
|
27
35
|
switch (selector) {
|
|
28
36
|
case 'current':
|
|
@@ -87,6 +95,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
87
95
|
this.isVertical = false;
|
|
88
96
|
this.isMobile = false;
|
|
89
97
|
this.maxWidth = 0;
|
|
98
|
+
this.ariaForm = defaultBalAriaForm;
|
|
90
99
|
this.invalid = false;
|
|
91
100
|
this.disabled = false;
|
|
92
101
|
this.vertical = false;
|
|
@@ -97,6 +106,9 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
97
106
|
createLogger(log) {
|
|
98
107
|
this.log = log;
|
|
99
108
|
}
|
|
109
|
+
disabledChanged() {
|
|
110
|
+
this.allItems.map(item => (item.disabled = this.disabled));
|
|
111
|
+
}
|
|
100
112
|
valueChanged(value) {
|
|
101
113
|
/**
|
|
102
114
|
* `balSelect` is emitted every time the value changes (internal or external changes).
|
|
@@ -111,6 +123,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
111
123
|
connectedCallback() {
|
|
112
124
|
this.el.addEventListener('touchstart', this.onPointerDown);
|
|
113
125
|
this.el.addEventListener('mousedown', this.onPointerDown);
|
|
126
|
+
this.disabledChanged();
|
|
114
127
|
}
|
|
115
128
|
disconnectedCallback() {
|
|
116
129
|
this.el.removeEventListener('touchstart', this.onPointerDown);
|
|
@@ -120,10 +133,12 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
120
133
|
this.setCheckedClasses();
|
|
121
134
|
this.defineWidth();
|
|
122
135
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
136
|
+
focusInListener(ev) {
|
|
137
|
+
this.balFocus.emit(ev);
|
|
138
|
+
}
|
|
139
|
+
focusOutListener(ev) {
|
|
140
|
+
this.balBlur.emit(ev);
|
|
141
|
+
}
|
|
127
142
|
breakpointListener(breakpoints) {
|
|
128
143
|
this.isMobile = breakpoints.mobile;
|
|
129
144
|
}
|
|
@@ -145,9 +160,8 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
145
160
|
this.emitVerticalChange(true);
|
|
146
161
|
}
|
|
147
162
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this.balBlur.emit(ev.detail);
|
|
163
|
+
listenOnKeyDownOutside() {
|
|
164
|
+
this.keyboardMode = true;
|
|
151
165
|
}
|
|
152
166
|
listenOnKeyDown(ev) {
|
|
153
167
|
this.keyboardMode = FOCUS_KEYS.includes(ev.key);
|
|
@@ -155,6 +169,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
155
169
|
if (isSpaceKey(ev)) {
|
|
156
170
|
stopEventBubbling(ev);
|
|
157
171
|
current = this.getSegmentItem('current');
|
|
172
|
+
this.value = current.value;
|
|
158
173
|
}
|
|
159
174
|
else if (isArrowUpKey(ev) || isArrowLeftKey(ev)) {
|
|
160
175
|
stopEventBubbling(ev);
|
|
@@ -184,15 +199,25 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
184
199
|
current.setFocus();
|
|
185
200
|
}
|
|
186
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* PUBLIC METHODS
|
|
204
|
+
* ------------------------------------------------------
|
|
205
|
+
*/
|
|
206
|
+
/**
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
async setAriaForm(ariaForm) {
|
|
210
|
+
this.ariaForm = Object.assign({}, ariaForm);
|
|
211
|
+
}
|
|
187
212
|
/**
|
|
188
213
|
* GETTERS
|
|
189
214
|
* ------------------------------------------------------
|
|
190
215
|
*/
|
|
191
|
-
get
|
|
216
|
+
get allItems() {
|
|
192
217
|
return Array.from(this.el.querySelectorAll('bal-segment-item'));
|
|
193
218
|
}
|
|
194
219
|
get checked() {
|
|
195
|
-
return this.
|
|
220
|
+
return this.allItems.find(item => item.value === this.value);
|
|
196
221
|
}
|
|
197
222
|
/**
|
|
198
223
|
* PRIVATE METHODS
|
|
@@ -217,8 +242,11 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
217
242
|
});
|
|
218
243
|
}
|
|
219
244
|
getIndicator(item) {
|
|
220
|
-
|
|
221
|
-
|
|
245
|
+
if (item) {
|
|
246
|
+
const root = item.shadowRoot || item;
|
|
247
|
+
return root.querySelector('.bal-segment-item__indicator');
|
|
248
|
+
}
|
|
249
|
+
return null;
|
|
222
250
|
}
|
|
223
251
|
checkButton(previous, current) {
|
|
224
252
|
const previousIndicator = this.getIndicator(previous);
|
|
@@ -255,7 +283,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
255
283
|
this.setCheckedClasses();
|
|
256
284
|
}
|
|
257
285
|
setCheckedClasses() {
|
|
258
|
-
const items = this.
|
|
286
|
+
const items = this.allItems;
|
|
259
287
|
const index = items.findIndex(item => item.value === this.value);
|
|
260
288
|
const next = index + 1;
|
|
261
289
|
const previous = index - 1;
|
|
@@ -275,12 +303,13 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
275
303
|
* ------------------------------------------------------
|
|
276
304
|
*/
|
|
277
305
|
render() {
|
|
278
|
-
const { invalid, isVertical, scrollable, keyboardMode, expanded, isMobile } = this;
|
|
306
|
+
const { invalid, isVertical, scrollable, keyboardMode, expanded, isMobile, disabled } = this;
|
|
279
307
|
const block = BEM.block('segment');
|
|
280
|
-
return (h(Host, { role: "radiogroup", class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('invalid').class(invalid)), block.modifier('vertical').class(isVertical)), block.modifier('scrollable').class(scrollable)), block.modifier('keyboard').class(keyboardMode)), block.modifier('expanded').class((expanded || isMobile) && !isVertical)), onClick: this.onClick }, h("slot", { onSlotchange: this.onSlottedItemsChange })));
|
|
308
|
+
return (h(Host, { role: "radiogroup", "aria-labelledby": this.ariaForm.labelId, "aria-describedby": this.ariaForm.messageId, class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('invalid').class(invalid)), block.modifier('vertical').class(isVertical)), block.modifier('scrollable').class(scrollable)), block.modifier('keyboard').class(keyboardMode)), block.modifier('disabled').class(disabled)), block.modifier('expanded').class((expanded || isMobile) && !isVertical)), onClick: this.onClick }, h("slot", { onSlotchange: this.onSlottedItemsChange })));
|
|
281
309
|
}
|
|
282
310
|
get el() { return this; }
|
|
283
311
|
static get watchers() { return {
|
|
312
|
+
"disabled": ["disabledChanged"],
|
|
284
313
|
"value": ["valueChanged"]
|
|
285
314
|
}; }
|
|
286
315
|
static get style() { return BalSegmentStyle0; }
|
|
@@ -295,8 +324,11 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
|
|
|
295
324
|
"keyboardMode": [32],
|
|
296
325
|
"isVertical": [32],
|
|
297
326
|
"isMobile": [32],
|
|
298
|
-
"maxWidth": [32]
|
|
299
|
-
|
|
327
|
+
"maxWidth": [32],
|
|
328
|
+
"ariaForm": [32],
|
|
329
|
+
"setAriaForm": [64]
|
|
330
|
+
}, [[4, "keydown", "listenOnKeyDownOutside"], [0, "keydown", "listenOnKeyDown"]], {
|
|
331
|
+
"disabled": ["disabledChanged"],
|
|
300
332
|
"value": ["valueChanged"]
|
|
301
333
|
}]);
|
|
302
334
|
__decorate([
|
|
@@ -305,6 +337,18 @@ __decorate([
|
|
|
305
337
|
__metadata("design:paramtypes", [Function]),
|
|
306
338
|
__metadata("design:returntype", void 0)
|
|
307
339
|
], Segment.prototype, "createLogger", null);
|
|
340
|
+
__decorate([
|
|
341
|
+
ListenToFocus(),
|
|
342
|
+
__metadata("design:type", Function),
|
|
343
|
+
__metadata("design:paramtypes", [FocusEvent]),
|
|
344
|
+
__metadata("design:returntype", void 0)
|
|
345
|
+
], Segment.prototype, "focusInListener", null);
|
|
346
|
+
__decorate([
|
|
347
|
+
ListenToFocus(),
|
|
348
|
+
__metadata("design:type", Function),
|
|
349
|
+
__metadata("design:paramtypes", [FocusEvent]),
|
|
350
|
+
__metadata("design:returntype", void 0)
|
|
351
|
+
], Segment.prototype, "focusOutListener", null);
|
|
308
352
|
__decorate([
|
|
309
353
|
ListenToBreakpoints(),
|
|
310
354
|
__metadata("design:type", Function),
|