@baloise/ds-core 19.9.3-nightly.20260424 → 19.9.4
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/animation.decorator.js +1 -1
- package/components/bal-accordion.js +1 -2
- package/components/bal-app.js +102 -1
- package/components/bal-button2.js +1 -1
- package/components/bal-carousel-item.js +1 -1
- package/components/bal-checkbox-group.js +1 -1
- package/components/bal-date-calendar2.js +1 -1
- package/components/bal-date.js +1 -1
- package/components/bal-dropdown.js +1 -1
- package/components/bal-field.js +1 -1
- package/components/bal-file-upload.js +5 -5
- package/components/bal-footer.js +1 -1
- package/components/bal-form.js +1 -1
- package/components/bal-input-stepper.js +1 -1
- package/components/bal-list-item-accordion-body2.js +1 -1
- package/components/bal-list-item2.js +1 -1
- package/components/bal-logo2.js +1 -1
- package/components/bal-modal.js +1 -1
- package/components/bal-nav.js +1 -1
- package/components/bal-navbar-brand.js +1 -1
- package/components/bal-option-list2.js +1 -1
- package/components/bal-popup2.js +1 -1
- package/components/bal-radio-group.js +1 -1
- package/components/bal-segment-item.js +1 -1
- package/components/bal-select2.js +1 -1
- package/components/bal-spinner2.js +1 -1
- package/components/bal-stage-image.js +1 -1
- package/components/bal-tabs2.js +1 -1
- package/components/breakpoints.subject.js +1 -1
- package/components/element-states.decorator.js +1 -1
- package/components/floating-ui.js +1 -1
- package/components/focus.decorator.js +1 -1
- package/components/form-input.js +1 -1
- package/components/helpers.js +1 -1
- package/components/index.js +449 -5
- package/components/mutation.decorator.js +1 -1
- package/components/overlays.js +1 -1
- package/components/resize.decorator.js +1 -1
- package/components/swipe.subject.js +19 -1
- package/components/swiper.util.js +1 -1
- package/components/tokens.esm.js +1 -1
- package/components/visibility.decorator.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-ea9aa92049.entry.js → p-041bf35913.entry.js} +1 -1
- package/dist/baloise-design-system/{p-051254b0d3.system.entry.js → p-1d8afd6f97.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-0c689e7238.entry.js → p-29d68d2132.entry.js} +1 -1
- package/dist/baloise-design-system/{p-a9eba39458.system.entry.js → p-353111ebe0.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-f647a73892.system.entry.js → p-36934c6f59.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-082b190eb3.system.entry.js → p-372ba2be28.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-eb813a0370.entry.js → p-3bb89f6a82.entry.js} +1 -1
- package/dist/baloise-design-system/{p-3503bb237f.entry.js → p-3c2762a456.entry.js} +1 -1
- package/dist/baloise-design-system/{p-bf52f2daab.system.entry.js → p-47a709940f.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-e4d6340644.entry.js → p-484747871b.entry.js} +1 -1
- package/dist/baloise-design-system/{p-51ddab57a5.entry.js → p-495621ad03.entry.js} +1 -1
- package/dist/baloise-design-system/{p-BCtb7Ny9.system.js → p-4RgSLeC0.system.js} +1 -1
- package/dist/baloise-design-system/{p-66ce67d44e.entry.js → p-4f036f58ab.entry.js} +1 -1
- package/dist/baloise-design-system/{p-d6b104dc85.entry.js → p-50a9cbd963.entry.js} +1 -1
- package/dist/baloise-design-system/{p-771763d6eb.entry.js → p-52c76f1bdd.entry.js} +1 -1
- package/dist/baloise-design-system/{p-82e5170a01.system.entry.js → p-608249b400.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-ae6acdbe67.system.entry.js → p-6d9619c9d0.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-9e262a69b0.entry.js → p-72b37feadf.entry.js} +1 -1
- package/dist/baloise-design-system/{p-c0a10b3672.system.entry.js → p-813c277b9f.system.entry.js} +1 -1
- package/dist/baloise-design-system/p-8346d5f6ae.entry.js +1 -0
- package/dist/baloise-design-system/{p-9da10572eb.system.entry.js → p-8f06689f6a.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-fc08bd8b75.entry.js → p-9871800426.entry.js} +1 -1
- package/dist/baloise-design-system/{p-1ea005b1a6.system.entry.js → p-9bf6adbd21.system.entry.js} +1 -1
- package/dist/baloise-design-system/p-B6GTvSSK.js +1 -0
- package/dist/baloise-design-system/p-BFRjY4w3.js +1 -1
- package/dist/baloise-design-system/p-BRAmUyPx.system.js +1 -1
- package/dist/baloise-design-system/{p-FZ28NFyi.system.js → p-BhPUGxAx.system.js} +1 -1
- package/dist/baloise-design-system/p-Bk7UdnZ5.system.js +1 -0
- package/dist/baloise-design-system/p-CKN3W8qn.js +1 -0
- package/dist/baloise-design-system/{p-DURYWrGs.system.js → p-CM1lc2ni.system.js} +1 -1
- package/dist/baloise-design-system/p-C_FHgwWW.js +1 -0
- package/dist/baloise-design-system/{p-3VlTyI5Z.system.js → p-CsPrCX4f.system.js} +1 -1
- package/dist/baloise-design-system/p-CviYHi5s.system.js +1 -0
- package/dist/baloise-design-system/{p-C-AVDEcm.js → p-CwRoS0HB.js} +1 -1
- package/dist/baloise-design-system/{p-xlS5vO33.system.js → p-D5aEF_JU.system.js} +1 -1
- package/dist/baloise-design-system/{p-ZalPEZLa.js → p-DRqAN-8G.js} +1 -1
- package/dist/baloise-design-system/p-DwxDqMbM.system.js +1 -0
- package/dist/baloise-design-system/{p-ce856e0435.system.entry.js → p-a0020dcf30.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-e53e45f7ca.entry.js → p-af292102b8.entry.js} +1 -1
- package/dist/baloise-design-system/{p-ba3af6cb71.system.entry.js → p-c900ad58d0.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-05bbd749b0.system.entry.js → p-ccdbef8f33.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-872b859383.entry.js → p-d5de84380b.entry.js} +1 -1
- package/dist/baloise-design-system/{p-d1384b4d37.entry.js → p-e7a78b097d.entry.js} +1 -1
- package/dist/baloise-design-system/{p-9191e04f14.system.entry.js → p-f393662ba3.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-fc69c2827b.system.entry.js → p-ff649f9b8a.system.entry.js} +1 -1
- package/dist/baloise-design-system/{p-BLP1vyKW.js → p-j8ENYrr7.js} +1 -1
- package/dist/cjs/{global-BOGOCc0T.js → app-globals-D4xKyILL.js} +4 -2
- package/dist/cjs/bal-accordion_4.cjs.entry.js +0 -1
- package/dist/cjs/bal-carousel_2.cjs.entry.js +5 -5
- package/dist/cjs/bal-date-calendar_2.cjs.entry.js +2 -2
- package/dist/cjs/bal-field_5.cjs.entry.js +3 -3
- package/dist/cjs/bal-file-upload.cjs.entry.js +5 -5
- 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 +4 -4
- 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 +5 -5
- package/dist/cjs/baloise-design-system.cjs.js +2 -3
- package/dist/cjs/{breakpoints.decorator-BNkZS6Oc.js → breakpoints.decorator-DIeNdkiK.js} +1 -1
- package/dist/cjs/{breakpoints.subject-BOxyCIrs.js → breakpoints.subject-YppJaklV.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/initialize-BzrcZo6Y.js +1 -1
- package/dist/cjs/loader.cjs.js +2 -3
- package/dist/cjs/{swipe.decorator-BZYUlkYt.js → swipe.decorator-C_jX7Il5.js} +1 -1
- package/dist/cjs/{swipe.subject-BaKNugDQ.js → swipe.subject-iyL-XVHG.js} +18 -0
- package/dist/cjs/{tokens.esm-BWT37Jjh.js → tokens.esm-CGjXTIYw.js} +1 -1
- package/dist/cjs/{window-resize.decorator-CafBWpij.js → window-resize.decorator-CnkxxD9I.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -2
- package/dist/collection/components/bal-accordion/bal-accordion.js +2 -6
- package/dist/collection/components/bal-file-upload/bal-file-upload.js +5 -5
- package/dist/collection/utils/constants/version.constant.js +1 -1
- package/dist/collection/utils/swipe/swipe.listener.js +19 -0
- package/dist/esm/{global-Llrc69_N.js → app-globals-Blx--ecs.js} +4 -2
- package/dist/esm/bal-accordion_4.entry.js +0 -1
- package/dist/esm/bal-carousel_2.entry.js +5 -5
- package/dist/esm/bal-date-calendar_2.entry.js +2 -2
- package/dist/esm/bal-field_5.entry.js +3 -3
- package/dist/esm/bal-file-upload.entry.js +5 -5
- 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 +4 -4
- 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 +5 -5
- package/dist/esm/baloise-design-system.js +2 -3
- package/dist/esm/{breakpoints.decorator-DEK7q794.js → breakpoints.decorator-CLJL1mrw.js} +1 -1
- package/dist/esm/{breakpoints.subject-BQ7TXTSr.js → breakpoints.subject-CaVH5CdH.js} +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/initialize-W3od-FM9.js +1 -1
- package/dist/esm/loader.js +2 -3
- package/dist/esm/{swipe.decorator-B_Ghrp1o.js → swipe.decorator-B-pmjyNr.js} +1 -1
- package/dist/esm/{swipe.subject-T0VStuOK.js → swipe.subject-BXuaiulg.js} +18 -0
- package/dist/esm/{tokens.esm-COXHT7kA.js → tokens.esm-PSBwy3yf.js} +1 -1
- package/dist/esm/{window-resize.decorator-Byy3FvjJ.js → window-resize.decorator-B6C5v87J.js} +1 -1
- package/dist/esm-es5/app-globals-Blx--ecs.js +1 -0
- package/dist/esm-es5/bal-carousel_2.entry.js +1 -1
- package/dist/esm-es5/bal-date-calendar_2.entry.js +1 -1
- package/dist/esm-es5/bal-field_5.entry.js +1 -1
- package/dist/esm-es5/bal-file-upload.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-CLJL1mrw.js +1 -0
- package/dist/esm-es5/{breakpoints.subject-BQ7TXTSr.js → breakpoints.subject-CaVH5CdH.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/initialize-W3od-FM9.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{swipe.decorator-B_Ghrp1o.js → swipe.decorator-B-pmjyNr.js} +1 -1
- package/dist/esm-es5/swipe.subject-BXuaiulg.js +1 -0
- package/dist/esm-es5/{window-resize.decorator-Byy3FvjJ.js → window-resize.decorator-B6C5v87J.js} +1 -1
- package/dist/html.html-data.json +4 -0
- package/dist/types/components/bal-accordion/bal-accordion.d.ts +0 -1
- package/dist/types/components.d.ts +6 -75
- package/dist/types/utils/swipe/swipe.listener.d.ts +1 -0
- package/package.json +6 -6
- package/components/bal-app2.js +0 -104
- package/components/bal-doc-app.d.ts +0 -11
- package/components/bal-doc-app.js +0 -264
- package/components/initialize.js +0 -450
- package/dist/baloise-design-system/p-21ea7b32f1.system.entry.js +0 -1
- package/dist/baloise-design-system/p-9ca0a9bf5c.entry.js +0 -1
- package/dist/baloise-design-system/p-BM04kaEl.js +0 -1
- package/dist/baloise-design-system/p-BvSkuJ_n.js +0 -1
- package/dist/baloise-design-system/p-BzIZLOtt.system.js +0 -1
- package/dist/baloise-design-system/p-C_qvcMEM.system.js +0 -1
- package/dist/baloise-design-system/p-CeIZ5hSt.js +0 -1
- package/dist/baloise-design-system/p-D-kRAQUV.system.js +0 -1
- package/dist/baloise-design-system/p-Ectc3YAG.js +0 -1
- package/dist/baloise-design-system/p-ds9HBN3K.system.js +0 -1
- package/dist/baloise-design-system/p-fb2960c1b6.entry.js +0 -1
- package/dist/cjs/app-globals-DcKvQZAC.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 -248
- package/dist/esm/app-globals-CIj5uAPM.js +0 -5
- package/dist/esm/bal-doc-app.entry.js +0 -229
- package/dist/esm-es5/app-globals-CIj5uAPM.js +0 -1
- package/dist/esm-es5/bal-doc-app.entry.js +0 -1
- package/dist/esm-es5/breakpoints.decorator-DEK7q794.js +0 -1
- package/dist/esm-es5/global-Llrc69_N.js +0 -1
- package/dist/esm-es5/swipe.subject-T0VStuOK.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 -82
- /package/dist/baloise-design-system/{p-68c75901a4.system.entry.js → p-67f2a7fbef.system.entry.js} +0 -0
- /package/dist/baloise-design-system/{p-7563a0a66d.entry.js → p-692f76ee0c.entry.js} +0 -0
- /package/dist/baloise-design-system/{p-D47SgySc.system.js → p-BJHY1rVR.system.js} +0 -0
- /package/dist/baloise-design-system/{p-COXHT7kA.js → p-PSBwy3yf.js} +0 -0
- /package/dist/esm-es5/{tokens.esm-COXHT7kA.js → tokens.esm-PSBwy3yf.js} +0 -0
package/components/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { setPlatformHelpers } from '@stencil/core/internal/client';
|
|
1
2
|
export { getAssetPath, render, setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
|
|
2
3
|
export { F as FileUploadRejectionReason } from './bal-file-upload.type.js';
|
|
3
4
|
export { i as i18nBalClose } from './bal-close.i18n.js';
|
|
@@ -7,25 +8,177 @@ export { i as i18nBalLabel } from './bal-label.i18n.js';
|
|
|
7
8
|
export { i as i18nBalTimeInput } from './bal-time-input.i18n.js';
|
|
8
9
|
export { n as newBalStepOption } from './bal-step.util.js';
|
|
9
10
|
export { n as newBalTabOption } from './bal-tab.util.js';
|
|
10
|
-
export { B as BalSnackbarController, a as BalToastController, b as balSnackbarController, c as balToastController, i as initialize, i as initializeBaloiseDesignSystem, s as setupConfig } from './initialize.js';
|
|
11
11
|
import { b as balBrowser } from './browser.js';
|
|
12
|
+
import { w as waitForComponent, g as getAppRoot, c as componentOnReady } from './helpers.js';
|
|
13
|
+
export { d as deepReady, i as isDescendant, s as shallowReady, a as wait, b as waitAfterFramePaint, e as waitAfterIdleCallback, f as waitAfterLargestContentfulPaintCallback, h as waitForDesignSystem, j as waitOnLoadEventCallback } from './helpers.js';
|
|
14
|
+
import { d as defaultConfig } from './config.default.js';
|
|
12
15
|
import { b as balDevice } from './device.js';
|
|
13
16
|
export { B as BalDevice } from './device.js';
|
|
14
17
|
export { n as newBalOption } from './option.js';
|
|
15
18
|
export { s as scrollToFirstInvalidField } from './form.js';
|
|
16
|
-
import { g as getAppRoot, c as componentOnReady } from './helpers.js';
|
|
17
|
-
export { d as deepReady, i as isDescendant, s as shallowReady, w as wait, a as waitAfterFramePaint, b as waitAfterIdleCallback, e as waitAfterLargestContentfulPaintCallback, f as waitForComponent, h as waitForDesignSystem, j as waitOnLoadEventCallback } from './helpers.js';
|
|
18
19
|
export { I as INVALID_VALUE } from './mask-util.js';
|
|
19
20
|
export { B as BalScrollHandler } from './scroll.js';
|
|
20
21
|
import { g as getOverlays, a as getOverlay } from './overlays.js';
|
|
21
22
|
import { B as BalWindowResizeListener, b as balBreakpoints } from './breakpoints.subject.js';
|
|
22
23
|
export { c as BalBreakpointSubject, d as BalBreakpointsUtil, a as balBreakpointSubject } from './breakpoints.subject.js';
|
|
23
24
|
export { a as attachToConfig, d as detachFromConfig, o as onBalConfigChange, u as updateBalAllowedLanguages, b as updateBalAnimated, c as updateBalIcons, e as updateBalLanguage, f as updateBalRegion, g as useBalConfig } from './config.utils.js';
|
|
24
|
-
export { d as defaultConfig } from './config.default.js';
|
|
25
25
|
export { B as BalDate } from './date.js';
|
|
26
26
|
import { S as Subject } from './listener.js';
|
|
27
27
|
export { B as BalSwipeSubject } from './swipe.subject.js';
|
|
28
28
|
|
|
29
|
+
const BALOISE_ANIMATION_KEY = 'baloise-animated';
|
|
30
|
+
|
|
31
|
+
class Config {
|
|
32
|
+
constructor() {
|
|
33
|
+
this._componentObservers = [];
|
|
34
|
+
this._observers = [];
|
|
35
|
+
this._config = defaultConfig;
|
|
36
|
+
}
|
|
37
|
+
get locale() {
|
|
38
|
+
return `${this._config.language}-${this._config.region}`;
|
|
39
|
+
}
|
|
40
|
+
get region() {
|
|
41
|
+
return this._config.region;
|
|
42
|
+
}
|
|
43
|
+
set region(region) {
|
|
44
|
+
if (region !== this._config.region) {
|
|
45
|
+
this._config.region = region;
|
|
46
|
+
this._notify();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
get language() {
|
|
50
|
+
return this._config.language;
|
|
51
|
+
}
|
|
52
|
+
get brand() {
|
|
53
|
+
return this._config.brand;
|
|
54
|
+
}
|
|
55
|
+
set brand(brand) {
|
|
56
|
+
if (brand !== this._config.brand) {
|
|
57
|
+
this._config.brand = brand;
|
|
58
|
+
this._notify();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
set language(language) {
|
|
62
|
+
if (language !== this._config.language) {
|
|
63
|
+
if (this._config.allowedLanguages.includes(language)) {
|
|
64
|
+
this._config.language = language;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this._config.language = this._config.fallbackLanguage;
|
|
68
|
+
}
|
|
69
|
+
this._notify();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
get allowedLanguages() {
|
|
73
|
+
return this._config.allowedLanguages;
|
|
74
|
+
}
|
|
75
|
+
set allowedLanguages(allowedLanguages) {
|
|
76
|
+
if (allowedLanguages !== this._config.allowedLanguages) {
|
|
77
|
+
this._config.allowedLanguages = allowedLanguages;
|
|
78
|
+
this._notify();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
get icons() {
|
|
82
|
+
return this._config.icons;
|
|
83
|
+
}
|
|
84
|
+
set icons(icons) {
|
|
85
|
+
this._config.icons = Object.assign(Object.assign({}, this._config.icons), icons);
|
|
86
|
+
this._notify();
|
|
87
|
+
}
|
|
88
|
+
get logger() {
|
|
89
|
+
return this._config.logger;
|
|
90
|
+
}
|
|
91
|
+
set logger(logger) {
|
|
92
|
+
this._config.logger = Object.assign({}, logger);
|
|
93
|
+
this._notify();
|
|
94
|
+
}
|
|
95
|
+
get animated() {
|
|
96
|
+
return this._config.animated;
|
|
97
|
+
}
|
|
98
|
+
set animated(animated) {
|
|
99
|
+
this._config.animated = animated;
|
|
100
|
+
this._notify();
|
|
101
|
+
}
|
|
102
|
+
get httpFormSubmit() {
|
|
103
|
+
return this._config.httpFormSubmit;
|
|
104
|
+
}
|
|
105
|
+
set httpFormSubmit(httpFormSubmit) {
|
|
106
|
+
this._config.httpFormSubmit = httpFormSubmit;
|
|
107
|
+
this._notify();
|
|
108
|
+
}
|
|
109
|
+
attach(observer) {
|
|
110
|
+
const isExist = this._observers.includes(observer);
|
|
111
|
+
if (isExist) {
|
|
112
|
+
return console.log('Subject: Observer has been attached already.');
|
|
113
|
+
}
|
|
114
|
+
this._observers.push(observer);
|
|
115
|
+
observer.configChanged(this._config);
|
|
116
|
+
}
|
|
117
|
+
detach(observer) {
|
|
118
|
+
const observerIndex = this._observers.indexOf(observer);
|
|
119
|
+
if (observerIndex === -1) {
|
|
120
|
+
return console.log('Subject: Nonexistent observer.');
|
|
121
|
+
}
|
|
122
|
+
this._observers.splice(observerIndex, 1);
|
|
123
|
+
}
|
|
124
|
+
attachComponent(observer) {
|
|
125
|
+
const isExist = this._componentObservers.includes(observer);
|
|
126
|
+
if (isExist) {
|
|
127
|
+
return console.log('Subject: Observer has been attached already.');
|
|
128
|
+
}
|
|
129
|
+
this._componentObservers.push(observer);
|
|
130
|
+
observer.configChanged(this._config);
|
|
131
|
+
}
|
|
132
|
+
detachComponent(observer) {
|
|
133
|
+
const observerIndex = this._componentObservers.indexOf(observer);
|
|
134
|
+
if (observerIndex === -1) {
|
|
135
|
+
return console.log('Subject: Nonexistent observer.');
|
|
136
|
+
}
|
|
137
|
+
this._componentObservers.splice(observerIndex, 1);
|
|
138
|
+
}
|
|
139
|
+
toString() {
|
|
140
|
+
return JSON.stringify(this._config);
|
|
141
|
+
}
|
|
142
|
+
reset(config) {
|
|
143
|
+
this._config = Object.assign(Object.assign(Object.assign({}, this._config), config), { icons: Object.assign(Object.assign({}, this._config.icons), config.icons) });
|
|
144
|
+
this._notify(false);
|
|
145
|
+
}
|
|
146
|
+
_notify(all = true) {
|
|
147
|
+
for (const observer of this._componentObservers) {
|
|
148
|
+
observer.configChanged(this._config);
|
|
149
|
+
}
|
|
150
|
+
if (all) {
|
|
151
|
+
for (const observer of this._observers) {
|
|
152
|
+
observer.configChanged(this._config);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const config = /*@__PURE__*/ new Config();
|
|
158
|
+
const configFromLocalStorage = (win) => {
|
|
159
|
+
try {
|
|
160
|
+
const animated = JSON.parse(win.localStorage.getItem(BALOISE_ANIMATION_KEY));
|
|
161
|
+
if (animated !== null) {
|
|
162
|
+
return {
|
|
163
|
+
animated,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
return {};
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
return {};
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const setupConfig = (userConfig = {}, win = {}) => {
|
|
174
|
+
if (Object.keys(win).length === 0 && balBrowser.hasWindow) {
|
|
175
|
+
win = window;
|
|
176
|
+
}
|
|
177
|
+
win.BaloiseDesignSystem = win.BaloiseDesignSystem || {};
|
|
178
|
+
config.reset(Object.assign(Object.assign(Object.assign({}, configFromLocalStorage(win)), userConfig), { icons: Object.assign({}, userConfig.icons) }));
|
|
179
|
+
win.BaloiseDesignSystem.config = config;
|
|
180
|
+
};
|
|
181
|
+
|
|
29
182
|
const i18nBalFieldLabel = {
|
|
30
183
|
de: {
|
|
31
184
|
optional: ' (optional)',
|
|
@@ -79,6 +232,297 @@ const newBalSingleOptionValue = (valueAndLabel, disabled = false, data) => {
|
|
|
79
232
|
return newBalOptionValue(valueAndLabel, valueAndLabel, disabled, data);
|
|
80
233
|
};
|
|
81
234
|
|
|
235
|
+
class BalNoticeController {
|
|
236
|
+
constructor(options) {
|
|
237
|
+
this.options = options;
|
|
238
|
+
this.container = null;
|
|
239
|
+
this.queue = [];
|
|
240
|
+
this.preQueue = [];
|
|
241
|
+
this.queueLimit = 5;
|
|
242
|
+
}
|
|
243
|
+
create(options) {
|
|
244
|
+
if (balBrowser.hasDocument) {
|
|
245
|
+
this.setupContainer(options);
|
|
246
|
+
const clone = this.findClone(options);
|
|
247
|
+
if (clone === undefined) {
|
|
248
|
+
const el = document.createElement(this.options.tag);
|
|
249
|
+
Object.assign(el, options);
|
|
250
|
+
el.addEventListener('balClose', ev => {
|
|
251
|
+
this.removeFromQueue(ev.detail);
|
|
252
|
+
});
|
|
253
|
+
this.preQueue.push(el);
|
|
254
|
+
this.updateQueue();
|
|
255
|
+
return el;
|
|
256
|
+
}
|
|
257
|
+
return clone;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
setQueue(queueLimit) {
|
|
261
|
+
this.queueLimit = queueLimit;
|
|
262
|
+
}
|
|
263
|
+
async dismissAll() {
|
|
264
|
+
var _a;
|
|
265
|
+
const elements = (_a = this.container) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.options.tag);
|
|
266
|
+
if (elements) {
|
|
267
|
+
const closingQueue = [];
|
|
268
|
+
for (let index = 0; index < elements.length; index++) {
|
|
269
|
+
const el = elements[index];
|
|
270
|
+
if (el.close) {
|
|
271
|
+
closingQueue.push(el.close());
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
await Promise.all(closingQueue);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* @deprecated use dismissAll instead
|
|
279
|
+
*/
|
|
280
|
+
async clearAll() {
|
|
281
|
+
console.warn('[DEPRECATED] - use dismissAll() instead');
|
|
282
|
+
return this.dismissAll();
|
|
283
|
+
}
|
|
284
|
+
findClone(options) {
|
|
285
|
+
for (let index = 0; index < this.queue.length; index++) {
|
|
286
|
+
const el = this.queue[index];
|
|
287
|
+
if (el.message === options.message && el.color === options.color) {
|
|
288
|
+
return el;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return undefined;
|
|
292
|
+
}
|
|
293
|
+
setupContainer(options) {
|
|
294
|
+
if (balBrowser.hasDocument) {
|
|
295
|
+
const containerId = `${this.options.tag}-container`;
|
|
296
|
+
this.container = document.getElementById(containerId);
|
|
297
|
+
if (this.container)
|
|
298
|
+
return;
|
|
299
|
+
if (!this.container) {
|
|
300
|
+
this.container = document.createElement('bal-notices');
|
|
301
|
+
this.container.setAttribute('interface', this.options.tag.replace('bal-', ''));
|
|
302
|
+
this.container.setAttribute('animated', options.animated ? 'true' : 'false');
|
|
303
|
+
if (options.container !== undefined) {
|
|
304
|
+
this.container.setAttribute('container', options.container === true ? '' : options.container);
|
|
305
|
+
}
|
|
306
|
+
this.container.id = containerId;
|
|
307
|
+
}
|
|
308
|
+
document.body.appendChild(this.container);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
async updateQueue() {
|
|
312
|
+
var _a;
|
|
313
|
+
if (this.queue.length < this.queueLimit) {
|
|
314
|
+
const el = this.preQueue.shift();
|
|
315
|
+
if (el && this.container) {
|
|
316
|
+
await waitForComponent(this.container);
|
|
317
|
+
const innerEl = this.container.querySelector('.bal-notices__inner');
|
|
318
|
+
if (innerEl) {
|
|
319
|
+
this.queue.push(el);
|
|
320
|
+
innerEl.insertAdjacentElement('beforeend', el);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
if (this.queue.length === 0) {
|
|
325
|
+
(_a = this.container) === null || _a === void 0 ? void 0 : _a.remove();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
removeFromQueue(toastId) {
|
|
329
|
+
this.queue = this.queue.filter(el => el.id !== toastId);
|
|
330
|
+
setTimeout(() => this.updateQueue(), 0);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
class BalSnackbarController extends BalNoticeController {
|
|
335
|
+
constructor() {
|
|
336
|
+
super({
|
|
337
|
+
tag: 'bal-snackbar',
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
create(options) {
|
|
341
|
+
return super.create(options);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
const balSnackbarController = new BalSnackbarController();
|
|
345
|
+
|
|
346
|
+
class BalToastController extends BalNoticeController {
|
|
347
|
+
constructor() {
|
|
348
|
+
super({
|
|
349
|
+
tag: 'bal-toast',
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
create(options) {
|
|
353
|
+
return super.create(options);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
const balToastController = new BalToastController();
|
|
357
|
+
|
|
358
|
+
const tags = [
|
|
359
|
+
"bal-accordion",
|
|
360
|
+
"bal-accordion-details",
|
|
361
|
+
"bal-accordion-summary",
|
|
362
|
+
"bal-accordion-trigger",
|
|
363
|
+
"bal-app",
|
|
364
|
+
"bal-badge",
|
|
365
|
+
"bal-button",
|
|
366
|
+
"bal-button-group",
|
|
367
|
+
"bal-card",
|
|
368
|
+
"bal-card-actions",
|
|
369
|
+
"bal-card-button",
|
|
370
|
+
"bal-card-content",
|
|
371
|
+
"bal-card-subtitle",
|
|
372
|
+
"bal-card-title",
|
|
373
|
+
"bal-carousel",
|
|
374
|
+
"bal-carousel-item",
|
|
375
|
+
"bal-check",
|
|
376
|
+
"bal-checkbox",
|
|
377
|
+
"bal-checkbox-group",
|
|
378
|
+
"bal-close",
|
|
379
|
+
"bal-content",
|
|
380
|
+
"bal-data",
|
|
381
|
+
"bal-data-item",
|
|
382
|
+
"bal-data-label",
|
|
383
|
+
"bal-data-value",
|
|
384
|
+
"bal-date",
|
|
385
|
+
"bal-date-calendar",
|
|
386
|
+
"bal-date-calendar-cell",
|
|
387
|
+
"bal-divider",
|
|
388
|
+
"bal-dropdown",
|
|
389
|
+
"bal-field",
|
|
390
|
+
"bal-field-control",
|
|
391
|
+
"bal-field-hint",
|
|
392
|
+
"bal-field-label",
|
|
393
|
+
"bal-field-message",
|
|
394
|
+
"bal-file-upload",
|
|
395
|
+
"bal-footer",
|
|
396
|
+
"bal-form",
|
|
397
|
+
"bal-form-col",
|
|
398
|
+
"bal-form-grid",
|
|
399
|
+
"bal-heading",
|
|
400
|
+
"bal-hint",
|
|
401
|
+
"bal-hint-text",
|
|
402
|
+
"bal-hint-title",
|
|
403
|
+
"bal-icon",
|
|
404
|
+
"bal-input",
|
|
405
|
+
"bal-input-date",
|
|
406
|
+
"bal-input-group",
|
|
407
|
+
"bal-input-slider",
|
|
408
|
+
"bal-input-stepper",
|
|
409
|
+
"bal-label",
|
|
410
|
+
"bal-list",
|
|
411
|
+
"bal-list-item",
|
|
412
|
+
"bal-list-item-accordion-body",
|
|
413
|
+
"bal-list-item-accordion-head",
|
|
414
|
+
"bal-list-item-content",
|
|
415
|
+
"bal-list-item-icon",
|
|
416
|
+
"bal-list-item-subtitle",
|
|
417
|
+
"bal-list-item-title",
|
|
418
|
+
"bal-logo",
|
|
419
|
+
"bal-modal",
|
|
420
|
+
"bal-modal-body",
|
|
421
|
+
"bal-modal-header",
|
|
422
|
+
"bal-nav",
|
|
423
|
+
"bal-nav-link",
|
|
424
|
+
"bal-nav-link-grid",
|
|
425
|
+
"bal-nav-link-grid-col",
|
|
426
|
+
"bal-nav-link-group",
|
|
427
|
+
"bal-nav-menu-bar",
|
|
428
|
+
"bal-nav-menu-flyout",
|
|
429
|
+
"bal-nav-meta-bar",
|
|
430
|
+
"bal-navbar",
|
|
431
|
+
"bal-navbar-brand",
|
|
432
|
+
"bal-navbar-menu",
|
|
433
|
+
"bal-navbar-menu-end",
|
|
434
|
+
"bal-navbar-menu-start",
|
|
435
|
+
"bal-notices",
|
|
436
|
+
"bal-notification",
|
|
437
|
+
"bal-number-input",
|
|
438
|
+
"bal-option",
|
|
439
|
+
"bal-option-list",
|
|
440
|
+
"bal-pagination",
|
|
441
|
+
"bal-popover",
|
|
442
|
+
"bal-popover-content",
|
|
443
|
+
"bal-popup",
|
|
444
|
+
"bal-progress-bar",
|
|
445
|
+
"bal-radio",
|
|
446
|
+
"bal-radio-group",
|
|
447
|
+
"bal-radio-icon",
|
|
448
|
+
"bal-segment",
|
|
449
|
+
"bal-segment-item",
|
|
450
|
+
"bal-select",
|
|
451
|
+
"bal-select-option",
|
|
452
|
+
"bal-shape",
|
|
453
|
+
"bal-sheet",
|
|
454
|
+
"bal-snackbar",
|
|
455
|
+
"bal-spinner",
|
|
456
|
+
"bal-stack",
|
|
457
|
+
"bal-stage",
|
|
458
|
+
"bal-stage-back-link",
|
|
459
|
+
"bal-stage-body",
|
|
460
|
+
"bal-stage-foot",
|
|
461
|
+
"bal-stage-head",
|
|
462
|
+
"bal-stage-image",
|
|
463
|
+
"bal-step-item",
|
|
464
|
+
"bal-steps",
|
|
465
|
+
"bal-switch",
|
|
466
|
+
"bal-tab-item",
|
|
467
|
+
"bal-table",
|
|
468
|
+
"bal-tabs",
|
|
469
|
+
"bal-tag",
|
|
470
|
+
"bal-tag-group",
|
|
471
|
+
"bal-text",
|
|
472
|
+
"bal-textarea",
|
|
473
|
+
"bal-time-input",
|
|
474
|
+
"bal-toast",
|
|
475
|
+
"bal-tooltip"
|
|
476
|
+
];
|
|
477
|
+
|
|
478
|
+
// generated by .build/version.js
|
|
479
|
+
const VERSION = '19.9.4';
|
|
480
|
+
|
|
481
|
+
const initializeBaloiseDesignSystem = (userConfig = {}, platformConfig = undefined, win = {}) => {
|
|
482
|
+
if (Object.keys(win).length === 0 && balBrowser.hasWindow) {
|
|
483
|
+
win = window;
|
|
484
|
+
}
|
|
485
|
+
win.BaloiseDesignSystem = win.BaloiseDesignSystem || {};
|
|
486
|
+
if (platformConfig) {
|
|
487
|
+
setPlatformHelpers(platformConfig);
|
|
488
|
+
}
|
|
489
|
+
setupConfig(Object.assign(Object.assign({}, userConfig), platformConfig), win);
|
|
490
|
+
win.BaloiseDesignSystem.toastController = balToastController;
|
|
491
|
+
win.BaloiseDesignSystem.snackbarController = balSnackbarController;
|
|
492
|
+
win.BaloiseDesignSystem.initialize = () => setupConfig(win.BaloiseDesignSystem.config, win);
|
|
493
|
+
win.BaloiseDesignSystem.version = VERSION;
|
|
494
|
+
if (userConfig._generateHydrateForCustomElementsOutput) {
|
|
495
|
+
generateHydrateForCustomElementsOutput(tags);
|
|
496
|
+
}
|
|
497
|
+
};
|
|
498
|
+
/**
|
|
499
|
+
* This function generates the CSS needed for custom elements hydration and inserts it into the document head.
|
|
500
|
+
* The CSS rules include styles for slot fallback and the hydrated class.
|
|
501
|
+
*
|
|
502
|
+
* This is copied from the Stencil core library.
|
|
503
|
+
* src/runtime/bootstrap-lazy.ts
|
|
504
|
+
*/
|
|
505
|
+
const generateHydrateForCustomElementsOutput = (cmpTags = []) => {
|
|
506
|
+
const SLOT_FB_CSS = 'slot-fb{display:contents}slot-fb[hidden]{display:none}';
|
|
507
|
+
const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
|
|
508
|
+
const win = typeof window !== 'undefined' ? window : {};
|
|
509
|
+
if (!win.document) {
|
|
510
|
+
console.warn('Stencil: No document found. Skipping bootstrapping lazy components.');
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
const head = win.document.head;
|
|
514
|
+
const metaCharset = /* @__PURE__ */ head.querySelector('meta[charset]');
|
|
515
|
+
const dataStyles = /* @__PURE__ */ win.document.createElement('style');
|
|
516
|
+
if (cmpTags.length > 0) {
|
|
517
|
+
dataStyles.textContent += SLOT_FB_CSS;
|
|
518
|
+
dataStyles.textContent += cmpTags.sort() + HYDRATED_CSS;
|
|
519
|
+
if (dataStyles.innerHTML.length) {
|
|
520
|
+
dataStyles.setAttribute('data-styles', '');
|
|
521
|
+
head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
};
|
|
525
|
+
|
|
82
526
|
class BalOrientationSubject extends Subject {
|
|
83
527
|
constructor() {
|
|
84
528
|
super(observer => observer.orientationListener(this.state));
|
|
@@ -176,4 +620,4 @@ const isPlatform = (winOrPlatform, platform) => {
|
|
|
176
620
|
const NewBalOptionValue = newBalOptionValue;
|
|
177
621
|
const NewBalSingleOptionValue = newBalSingleOptionValue;
|
|
178
622
|
|
|
179
|
-
export { BalModalController, BalOrientationSubject, NewBalOptionValue, NewBalSingleOptionValue, balBreakpoints, balBrowser, balDevice, balModalController, balOrientationSubject, componentOnReady, getAppRoot, getPlatforms, hasTouchSupport, i18nBalFieldLabel, isBrowser, isPlatform, newBalCheckboxOption, newBalOptionValue, newBalRadioOption, newBalSingleOptionValue };
|
|
623
|
+
export { BalModalController, BalOrientationSubject, BalSnackbarController, BalToastController, NewBalOptionValue, NewBalSingleOptionValue, balBreakpoints, balBrowser, balDevice, balModalController, balOrientationSubject, balSnackbarController, balToastController, componentOnReady, defaultConfig, getAppRoot, getPlatforms, hasTouchSupport, i18nBalFieldLabel, initializeBaloiseDesignSystem as initialize, initializeBaloiseDesignSystem, isBrowser, isPlatform, newBalCheckboxOption, newBalOptionValue, newBalRadioOption, newBalSingleOptionValue, setupConfig, waitForComponent };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as deepReady,
|
|
1
|
+
import { d as deepReady, b as waitAfterFramePaint, l as debounce } from './helpers.js';
|
|
2
2
|
import { L as ListenerAbstract, a as SingleSubject } from './listener.js';
|
|
3
3
|
|
|
4
4
|
class BalMutationListener extends ListenerAbstract {
|
package/components/overlays.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { b as balDevice } from './device.js';
|
|
2
2
|
import { L as ListenerAbstract, a as SingleSubject } from './listener.js';
|
|
3
|
-
import {
|
|
3
|
+
import { n as rOnLoad } from './helpers.js';
|
|
4
4
|
|
|
5
5
|
class BalSwipeListener extends ListenerAbstract {
|
|
6
6
|
async connect(el) {
|
|
@@ -8,12 +8,30 @@ class BalSwipeListener extends ListenerAbstract {
|
|
|
8
8
|
await this.loadLib();
|
|
9
9
|
if (this.PointerListenerLib) {
|
|
10
10
|
this.pointerListener = new this.PointerListenerLib(el, { handleTouchEvents: false });
|
|
11
|
+
// contactjs calls setPointerCapture on the event target in its onPointerDown handler.
|
|
12
|
+
// When a pointerdown originates inside a shadow DOM component, the browser retargets
|
|
13
|
+
// the event so the target appears as the shadow host element (e.g. bal-date-calendar).
|
|
14
|
+
// This causes pointer capture to be set on the shadow host, which redirects pointerup
|
|
15
|
+
// away from the actual element inside the shadow DOM, preventing the click event from
|
|
16
|
+
// being dispatched on the intended target (e.g. bal-date-calendar-cell).
|
|
17
|
+
// Fix: release pointer capture from shadow host elements immediately after contactjs sets it.
|
|
18
|
+
this.shadowFixPointerDownListener = (ev) => {
|
|
19
|
+
const target = ev.target;
|
|
20
|
+
if (target && target !== el && target.shadowRoot) {
|
|
21
|
+
target.releasePointerCapture(ev.pointerId);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
el.addEventListener('pointerdown', this.shadowFixPointerDownListener);
|
|
11
25
|
this.pointerListener.on('swipeleft', () => this.notify({ left: true, right: false }));
|
|
12
26
|
this.pointerListener.on('swiperight', () => this.notify({ left: false, right: true }));
|
|
13
27
|
}
|
|
14
28
|
}
|
|
15
29
|
disconnect() {
|
|
16
30
|
var _a;
|
|
31
|
+
if (this.shadowFixPointerDownListener && this.el) {
|
|
32
|
+
this.el.removeEventListener('pointerdown', this.shadowFixPointerDownListener);
|
|
33
|
+
this.shadowFixPointerDownListener = undefined;
|
|
34
|
+
}
|
|
17
35
|
super.disconnect();
|
|
18
36
|
(_a = this.pointerListener) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
19
37
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h } from '@stencil/core/internal/client';
|
|
2
2
|
import { B as BEM } from './bem.js';
|
|
3
3
|
import { s as stopEventBubbling } from './form-input.js';
|
|
4
|
-
import { i as isDescendant,
|
|
4
|
+
import { i as isDescendant, l as debounce, p as addEventListener, q as removeEventListener, r as raf } from './helpers.js';
|
|
5
5
|
import { e as isTabKey } from './keyboard.helpers.js';
|
|
6
6
|
|
|
7
7
|
const convert = (value) => parseInt(value.slice(0, -2), 10);
|
package/components/tokens.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as deepReady,
|
|
1
|
+
import { d as deepReady, b as waitAfterFramePaint, l as debounce } from './helpers.js';
|
|
2
2
|
import { L as ListenerAbstract, a as SingleSubject } from './listener.js';
|
|
3
3
|
|
|
4
4
|
class BalVisibilityListener extends ListenerAbstract {
|