@sbb-esta/lyne-elements 1.2.1 → 1.3.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/button/common/button-common.d.ts.map +1 -1
- package/button/common.js +20 -20
- package/button/mini-button/mini-button.d.ts +0 -1
- package/button/mini-button/mini-button.d.ts.map +1 -1
- package/button/mini-button.js +16 -18
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +22 -20
- package/checkbox/checkbox/checkbox.d.ts +0 -1
- package/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts +0 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/checkbox/checkbox-group.js +5 -3
- package/checkbox/checkbox-panel/checkbox-panel.d.ts +0 -1
- package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/checkbox/checkbox-panel.js +12 -11
- package/checkbox/checkbox.js +12 -11
- package/core/datetime/date-adapter.d.ts +23 -13
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/datetime/native-date-adapter.d.ts +0 -1
- package/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/core/datetime.js +23 -23
- package/core/decorators/host-attributes.d.ts +1 -1
- package/core/decorators/slot-state.d.ts +18 -0
- package/core/decorators/slot-state.d.ts.map +1 -0
- package/core/decorators.d.ts +1 -0
- package/core/decorators.d.ts.map +1 -1
- package/core/decorators.js +15 -9
- package/core/styles/mixins/buttons.scss +15 -48
- package/custom-elements.json +463 -302
- package/datepicker/common/datepicker-button.d.ts +5 -5
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common.js +21 -20
- package/datepicker/datepicker/datepicker.d.ts +55 -38
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -1
- package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
- package/datepicker/datepicker-next-day.js +16 -16
- package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -1
- package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
- package/datepicker/datepicker-previous-day.js +14 -14
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +25 -23
- package/datepicker/datepicker.js +147 -181
- package/development/button/common/button-common.d.ts.map +1 -1
- package/development/button/common.js +30 -25
- package/development/button/mini-button/mini-button.d.ts +0 -1
- package/development/button/mini-button/mini-button.d.ts.map +1 -1
- package/development/button/mini-button.js +17 -55
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +4 -2
- package/development/checkbox/checkbox/checkbox.d.ts +0 -1
- package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts +0 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/development/checkbox/checkbox-group.js +6 -5
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +0 -1
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/development/checkbox/checkbox-panel.js +5 -5
- package/development/checkbox/checkbox.js +5 -5
- package/development/core/datetime/date-adapter.d.ts +23 -13
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/native-date-adapter.d.ts +0 -1
- package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/development/core/datetime.js +28 -26
- package/development/core/decorators/host-attributes.d.ts +1 -1
- package/development/core/decorators/slot-state.d.ts +18 -0
- package/development/core/decorators/slot-state.d.ts.map +1 -0
- package/development/core/decorators.d.ts +1 -0
- package/development/core/decorators.d.ts.map +1 -1
- package/development/core/decorators.js +11 -2
- package/development/datepicker/common/datepicker-button.d.ts +5 -5
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common.js +10 -9
- package/development/datepicker/datepicker/datepicker.d.ts +55 -38
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -1
- package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day.js +14 -54
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -1
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
- package/development/datepicker/datepicker-previous-day.js +14 -54
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +1 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +16 -10
- package/development/datepicker/datepicker.js +134 -159
- package/development/dialog/dialog.js +1 -1
- package/development/file-selector/file-selector.d.ts +0 -1
- package/development/file-selector/file-selector.d.ts.map +1 -1
- package/development/file-selector.js +6 -5
- package/development/form-field/form-field/form-field.d.ts +1 -2
- package/development/form-field/form-field/form-field.d.ts.map +1 -1
- package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
- package/development/form-field/form-field-clear.js +15 -51
- package/development/form-field/form-field.js +8 -7
- package/development/link/common/link-common.d.ts.map +1 -1
- package/development/link/common.js +6 -7
- package/development/link-list/link-list.d.ts +0 -1
- package/development/link-list/link-list.d.ts.map +1 -1
- package/development/link-list.js +5 -5
- package/development/map-container.js +5 -2
- package/development/navigation/navigation-list/navigation-list.d.ts +0 -1
- package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
- package/development/navigation/navigation-list.js +5 -5
- package/development/navigation/navigation-section/navigation-section.d.ts +0 -1
- package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/development/navigation/navigation-section.js +6 -6
- package/development/notification/notification.d.ts +5 -16
- package/development/notification/notification.d.ts.map +1 -1
- package/development/notification.js +8 -9
- package/development/option/option/option.d.ts.map +1 -1
- package/development/option/option.js +5 -5
- package/development/popover/popover/popover.d.ts +3 -1
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover-trigger.js +14 -49
- package/development/popover/popover.js +11 -4
- package/development/radio-button/radio-button/radio-button.d.ts +0 -1
- package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +6 -6
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +0 -1
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel.js +4 -7
- package/development/radio-button/radio-button.js +4 -7
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts +0 -1
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +6 -5
- package/development/skiplink-list/skiplink-list.d.ts +0 -1
- package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
- package/development/skiplink-list.js +5 -5
- package/development/status/status.d.ts +0 -1
- package/development/status/status.d.ts.map +1 -1
- package/development/status.js +5 -5
- package/development/stepper/stepper/stepper.d.ts +3 -1
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +3 -2
- package/development/tabs/tab-group/tab-group.d.ts +3 -1
- package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +3 -2
- package/development/tabs/tab-label/tab-label.d.ts +0 -1
- package/development/tabs/tab-label/tab-label.d.ts.map +1 -1
- package/development/tabs/tab-label.js +5 -5
- package/development/tag/tag/tag.d.ts +0 -1
- package/development/tag/tag/tag.d.ts.map +1 -1
- package/development/tag/tag.js +6 -5
- package/development/teaser/teaser.d.ts +0 -1
- package/development/teaser/teaser.d.ts.map +1 -1
- package/development/teaser.js +5 -5
- package/development/toast/toast.d.ts +1 -2
- package/development/toast/toast.d.ts.map +1 -1
- package/development/toast.js +10 -8
- package/development/toggle/toggle-option/toggle-option.d.ts +0 -1
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +6 -6
- package/development/toggle-check/toggle-check.d.ts +0 -1
- package/development/toggle-check/toggle-check.d.ts.map +1 -1
- package/development/toggle-check.js +5 -5
- package/dialog/dialog.js +1 -1
- package/file-selector/file-selector.d.ts +0 -1
- package/file-selector/file-selector.d.ts.map +1 -1
- package/file-selector.js +17 -15
- package/form-field/form-field/form-field.d.ts +1 -2
- package/form-field/form-field/form-field.d.ts.map +1 -1
- package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
- package/form-field/form-field-clear.js +17 -18
- package/form-field/form-field.js +16 -14
- package/link/common/link-common.d.ts.map +1 -1
- package/link/common.js +9 -9
- package/link-list/link-list.d.ts +0 -1
- package/link-list/link-list.d.ts.map +1 -1
- package/link-list.js +8 -7
- package/map-container.js +1 -1
- package/navigation/navigation-list/navigation-list.d.ts +0 -1
- package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
- package/navigation/navigation-list.js +9 -8
- package/navigation/navigation-section/navigation-section.d.ts +0 -1
- package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/navigation/navigation-section.js +10 -9
- package/notification/notification.d.ts +5 -16
- package/notification/notification.d.ts.map +1 -1
- package/notification.js +9 -9
- package/option/option/option.d.ts.map +1 -1
- package/option/option.js +6 -5
- package/package.json +1 -1
- package/popover/popover/popover.d.ts +3 -1
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover-trigger.js +13 -13
- package/popover/popover.js +55 -48
- package/radio-button/radio-button/radio-button.d.ts +0 -1
- package/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +7 -6
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +0 -1
- package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/radio-button/radio-button-panel.js +12 -14
- package/radio-button/radio-button.js +7 -9
- package/selection-expansion-panel/selection-expansion-panel.d.ts +0 -1
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +15 -13
- package/skiplink-list/skiplink-list.d.ts +0 -1
- package/skiplink-list/skiplink-list.d.ts.map +1 -1
- package/skiplink-list.js +4 -3
- package/status/status.d.ts +0 -1
- package/status/status.d.ts.map +1 -1
- package/status.js +9 -8
- package/stepper/stepper/stepper.d.ts +3 -1
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +7 -6
- package/tabs/tab-group/tab-group.d.ts +3 -1
- package/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +14 -13
- package/tabs/tab-label/tab-label.d.ts +0 -1
- package/tabs/tab-label/tab-label.d.ts.map +1 -1
- package/tabs/tab-label.js +4 -3
- package/tag/tag/tag.d.ts +0 -1
- package/tag/tag/tag.d.ts.map +1 -1
- package/tag/tag.js +6 -4
- package/teaser/teaser.d.ts +0 -1
- package/teaser/teaser.d.ts.map +1 -1
- package/teaser.js +4 -3
- package/toast/toast.d.ts +1 -2
- package/toast/toast.d.ts.map +1 -1
- package/toast.js +15 -12
- package/toggle/toggle-option/toggle-option.d.ts +0 -1
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +12 -11
- package/toggle-check/toggle-check.d.ts +0 -1
- package/toggle-check/toggle-check.d.ts.map +1 -1
- package/toggle-check.js +4 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LitElement, html, nothing } from "lit";
|
|
2
2
|
import { customElement } from "lit/decorators.js";
|
|
3
|
-
import {
|
|
3
|
+
import { slotState } from "../core/decorators.js";
|
|
4
4
|
import { EventEmitter } from "../core/eventing.js";
|
|
5
5
|
import { SbbPanelMixin, SbbUpdateSchedulerMixin, panelCommonStyle } from "../core/mixins.js";
|
|
6
6
|
import { SbbCheckboxCommonElementMixin, checkboxCommonStyle } from "./common.js";
|
|
@@ -20,13 +20,12 @@ let SbbCheckboxPanelElement = class extends SbbPanelMixin(
|
|
|
20
20
|
SbbCheckboxCommonElementMixin(SbbUpdateSchedulerMixin(LitElement))
|
|
21
21
|
) {
|
|
22
22
|
constructor() {
|
|
23
|
-
super();
|
|
23
|
+
super(...arguments);
|
|
24
24
|
this.stateChange = new EventEmitter(
|
|
25
25
|
this,
|
|
26
26
|
SbbCheckboxPanelElement.events.stateChange,
|
|
27
27
|
{ bubbles: true }
|
|
28
28
|
);
|
|
29
|
-
new SbbSlotStateController(this);
|
|
30
29
|
}
|
|
31
30
|
async willUpdate(changedProperties) {
|
|
32
31
|
super.willUpdate(changedProperties);
|
|
@@ -78,9 +77,10 @@ SbbCheckboxPanelElement.events = {
|
|
|
78
77
|
panelConnected: "panelConnected"
|
|
79
78
|
};
|
|
80
79
|
SbbCheckboxPanelElement = __decorateClass([
|
|
81
|
-
customElement("sbb-checkbox-panel")
|
|
80
|
+
customElement("sbb-checkbox-panel"),
|
|
81
|
+
slotState()
|
|
82
82
|
], SbbCheckboxPanelElement);
|
|
83
83
|
export {
|
|
84
84
|
SbbCheckboxPanelElement
|
|
85
85
|
};
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcGFuZWwuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC1wYW5lbC9jaGVja2JveC1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHR5cGUge1xuICBTYmJDaGVja2VkU3RhdGVDaGFuZ2UsXG4gIFNiYkRpc2FibGVkU3RhdGVDaGFuZ2UsXG4gIFNiYlN0YXRlQ2hhbmdlLFxufSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMvdHlwZXMuanMnO1xuaW1wb3J0IHsgcGFuZWxDb21tb25TdHlsZSwgU2JiUGFuZWxNaXhpbiwgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBjaGVja2JveENvbW1vblN0eWxlLCBTYmJDaGVja2JveENvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vLi4vdmlzdWFsLWNoZWNrYm94LmpzJztcblxuZXhwb3J0IHR5cGUgU2JiQ2hlY2tib3hQYW5lbFN0YXRlQ2hhbmdlID0gRXh0cmFjdDxcbiAgU2JiU3RhdGVDaGFuZ2UsXG4gIFNiYkRpc2FibGVkU3RhdGVDaGFuZ2UgfCBTYmJDaGVja2VkU3RhdGVDaGFuZ2Vcbj47XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBjaGVja2JveCBlbmhhbmNlZCB3aXRoIHNlbGVjdGlvbiBwYW5lbCBkZXNpZ24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1jaGVja2JveGAuXG4gKiBAc2xvdCBzdWJ0ZXh0IC0gU2xvdCB1c2VkIHRvIHJlbmRlciBhIHN1YnRleHQgdW5kZXIgdGhlIGxhYmVsIChvbmx5IHZpc2libGUgd2l0aGluIGEgc2VsZWN0aW9uIHBhbmVsKS5cbiAqIEBzbG90IHN1ZmZpeCAtIFNsb3QgdXNlZCB0byByZW5kZXIgYWRkaXRpb25hbCBjb250ZW50IGFmdGVyIHRoZSBsYWJlbCAob25seSB2aXNpYmxlIHdpdGhpbiBhIHNlbGVjdGlvbiBwYW5lbCkuXG4gKiBAc2xvdCBiYWRnZSAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhIGBzYmItY2FyZC1iYWRnZWAgKG9wdGlvbmFsKS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gKiBAZXZlbnQge0V2ZW50fSBjaGFuZ2UgLSBFdmVudCBmaXJlZCBvbiBjaGFuZ2UuXG4gKiBAZXZlbnQge0lucHV0RXZlbnR9IGlucHV0IC0gRXZlbnQgZmlyZWQgb24gaW5wdXQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItY2hlY2tib3gtcGFuZWwnKVxuQHNsb3RTdGF0ZSgpXG5leHBvcnQgY2xhc3MgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgZXh0ZW5kcyBTYmJQYW5lbE1peGluKFxuICBTYmJDaGVja2JveENvbW1vbkVsZW1lbnRNaXhpbihTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2NoZWNrYm94Q29tbW9uU3R5bGUsIHBhbmVsQ29tbW9uU3R5bGVdO1xuXG4gIC8vIEZJWE1FIHVzaW5nIC4uLnN1cGVyLmV2ZW50cyByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL3NiYi1kZXNpZ24tc3lzdGVtcy9seW5lLWNvbXBvbmVudHMvaXNzdWVzLzI2MDBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICBzdGF0ZUNoYW5nZTogJ3N0YXRlQ2hhbmdlJyxcbiAgICBwYW5lbENvbm5lY3RlZDogJ3BhbmVsQ29ubmVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEludGVybmFsIGV2ZW50IHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIHN0YXRlIG9mIHRoZSBjaGVja2JveFxuICAgKiBpbiByZWxhdGlvbiB0byB0aGUgcGFyZW50IHNlbGVjdGlvbiBwYW5lbCBjaGFuZ2VzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiQ2hlY2tib3hQYW5lbFN0YXRlQ2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJDaGVja2JveFBhbmVsRWxlbWVudC5ldmVudHMuc3RhdGVDaGFuZ2UsXG4gICAgeyBidWJibGVzOiB0cnVlIH0sXG4gICk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdjaGVja2VkJykpIHtcbiAgICAgIC8vIEFzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbiBkb2VzIG5vdCByZWZsZWN0IGNoZWNrZWQgcHJvcGVydHksIHdlIGFkZCBhIGRhdGEtY2hlY2tlZC5cbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWNoZWNrZWQnLCB0aGlzLmNoZWNrZWQpO1xuXG4gICAgICBpZiAodGhpcy5jaGVja2VkICE9PSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ2NoZWNrZWQnKSEpIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KHsgdHlwZTogJ2NoZWNrZWQnLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkICE9PSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ2Rpc2FibGVkJykhKSB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh7IHR5cGU6ICdkaXNhYmxlZCcsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2VsZWN0aW9uLXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLXBhbmVsX19iYWRnZVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJiYWRnZVwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94LXdyYXBwZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2lubmVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94X19hbGlnbmVyXCI+XG4gICAgICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5jaGVja2VkfVxuICAgICAgICAgICAgICAgICAgP2luZGV0ZXJtaW5hdGU9JHt0aGlzLmluZGV0ZXJtaW5hdGV9XG4gICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgICAgID48L3NiYi12aXN1YWwtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWZmaXhcIj48L3Nsb3Q+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWJ0ZXh0XCI+PC9zbG90PlxuICAgICAgICAgICAgJHt0aGlzLmV4cGFuc2lvblN0YXRlXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seT4ke3RoaXMuZXhwYW5zaW9uU3RhdGV9PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jaGVja2JveC1wYW5lbCc6IFNiYkNoZWNrYm94UGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUNPLElBQU0sMEJBQU4sY0FBc0M7QUFBQSxFQUMzQyw4QkFBOEIsd0JBQXdCLFVBQVUsQ0FBQztBQUNuRSxFQUFFO0FBQUEsRUFGSyxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFpQkwsU0FBVSxjQUF5RCxJQUFJO0FBQUEsTUFDckU7QUFBQSxNQUNBLHdCQUF3QixPQUFPO0FBQUEsTUFDL0IsRUFBRSxTQUFTLEtBQUs7QUFBQSxJQUFBO0FBQUEsRUFDbEI7QUFBQSxFQUVBLE1BQXlCLFdBQVcsbUJBQXdEO0FBQzFGLFVBQU0sV0FBVyxpQkFBaUI7QUFFOUIsUUFBQSxrQkFBa0IsSUFBSSxTQUFTLEdBQUc7QUFFL0IsV0FBQSxnQkFBZ0IsZ0JBQWdCLEtBQUssT0FBTztBQUVqRCxVQUFJLEtBQUssWUFBWSxrQkFBa0IsSUFBSSxTQUFTLEdBQUk7QUFDakQsYUFBQSxZQUFZLEtBQUssRUFBRSxNQUFNLFdBQVcsU0FBUyxLQUFLLFNBQVM7QUFBQSxNQUNsRTtBQUFBLElBQ0Y7QUFDSSxRQUFBLGtCQUFrQixJQUFJLFVBQVUsR0FBRztBQUNyQyxVQUFJLEtBQUssYUFBYSxrQkFBa0IsSUFBSSxVQUFVLEdBQUk7QUFDbkQsYUFBQSxZQUFZLEtBQUssRUFBRSxNQUFNLFlBQVksVUFBVSxLQUFLLFVBQVU7QUFBQSxNQUNyRTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQVVrQixLQUFLLE9BQU87QUFBQSxtQ0FDTixLQUFLLGFBQWE7QUFBQSw4QkFDdkIsS0FBSyxZQUFZLEtBQUssWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQVNsRCxLQUFLLGlCQUNILCtCQUErQixLQUFLLGNBQWMsOEJBQ2xELE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS3JCO0FBQ0Y7QUF2RWEsd0JBR1ksU0FBeUIsQ0FBQyxxQkFBcUIsZ0JBQWdCO0FBSDNFLHdCQU1ZLFNBQVM7QUFBQSxFQUM5QixXQUFXO0FBQUEsRUFDWCxhQUFhO0FBQUEsRUFDYixnQkFBZ0I7QUFDbEI7QUFWVywwQkFBTixnQkFBQTtBQUFBLEVBRk4sY0FBYyxvQkFBb0I7QUFBQSxFQUNsQyxVQUFVO0FBQUEsR0FDRSx1QkFBQTsifQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css, LitElement, html } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
-
import {
|
|
3
|
+
import { slotState } from "../core/decorators.js";
|
|
4
4
|
import { SbbIconNameMixin } from "../icon.js";
|
|
5
5
|
import { SbbCheckboxCommonElementMixin, checkboxCommonStyle } from "./common.js";
|
|
6
6
|
import "../visual-checkbox.js";
|
|
@@ -67,9 +67,8 @@ let SbbCheckboxElement = class extends SbbCheckboxCommonElementMixin(
|
|
|
67
67
|
SbbIconNameMixin(LitElement)
|
|
68
68
|
) {
|
|
69
69
|
constructor() {
|
|
70
|
-
super();
|
|
70
|
+
super(...arguments);
|
|
71
71
|
this.iconPlacement = "end";
|
|
72
|
-
new SbbSlotStateController(this);
|
|
73
72
|
}
|
|
74
73
|
render() {
|
|
75
74
|
return html`
|
|
@@ -103,9 +102,10 @@ __decorateClass([
|
|
|
103
102
|
property({ attribute: "icon-placement", reflect: true })
|
|
104
103
|
], SbbCheckboxElement.prototype, "iconPlacement", 2);
|
|
105
104
|
SbbCheckboxElement = __decorateClass([
|
|
106
|
-
customElement("sbb-checkbox")
|
|
105
|
+
customElement("sbb-checkbox"),
|
|
106
|
+
slotState()
|
|
107
107
|
], SbbCheckboxElement);
|
|
108
108
|
export {
|
|
109
109
|
SbbCheckboxElement
|
|
110
110
|
};
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJJY29uUGxhY2VtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCB7IFNiYkNoZWNrYm94Q29tbW9uRWxlbWVudE1peGluLCBjaGVja2JveENvbW1vblN0eWxlIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IGNoZWNrYm94U3R5bGUgZnJvbSAnLi9jaGVja2JveC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL3Zpc3VhbC1jaGVja2JveC5qcyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBjaGVja2JveCBlbmhhbmNlZCB3aXRoIHRoZSBTQkIgRGVzaWduLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItY2hlY2tib3hgLlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byByZW5kZXIgdGhlIGNoZWNrYm94IGljb24gKGRpc2FibGVkIGluc2lkZSBhIHNlbGVjdGlvbiBwYW5lbCkuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDaGFuZ2UgLSBEZXByZWNhdGVkLiB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICogQGV2ZW50IHtFdmVudH0gY2hhbmdlIC0gRXZlbnQgZmlyZWQgb24gY2hhbmdlLlxuICogQGV2ZW50IHtJbnB1dEV2ZW50fSBpbnB1dCAtIEV2ZW50IGZpcmVkIG9uIGlucHV0LlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWNoZWNrYm94JylcbkBzbG90U3RhdGUoKVxuZXhwb3J0IGNsYXNzIFNiYkNoZWNrYm94RWxlbWVudCBleHRlbmRzIFNiYkNoZWNrYm94Q29tbW9uRWxlbWVudE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtjaGVja2JveENvbW1vblN0eWxlLCBjaGVja2JveFN0eWxlXTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgbGFiZWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGxhYmVsSWNvbi4gRGVmYXVsdHMgdG8gZW5kICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ljb24tcGxhY2VtZW50JywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgaWNvblBsYWNlbWVudDogU2JiSWNvblBsYWNlbWVudCA9ICdlbmQnO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3gtd3JhcHBlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94X19pbm5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2FsaWduZXJcIj5cbiAgICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuY2hlY2tlZH1cbiAgICAgICAgICAgICAgICA/aW5kZXRlcm1pbmF0ZT0ke3RoaXMuaW5kZXRlcm1pbmF0ZX1cbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgICA+PC9zYmItdmlzdWFsLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2xhYmVsXCI+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2xhYmVsLS1pY29uIHNiYi1jaGVja2JveF9fYWxpZ25lclwiXG4gICAgICAgICAgICAgICAgPiR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWNoZWNrYm94JzogU2JiQ2hlY2tib3hFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sSUFBTSxxQkFBTixjQUFpQztBQUFBLEVBQ3RDLGlCQUFpQixVQUFVO0FBQzdCLEVBQUU7QUFBQSxFQUZLLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQVdMLFNBQU8sZ0JBQWtDO0FBQUEsRUFBQTtBQUFBLEVBRXRCLFNBQXlCO0FBQ25DLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBTWdCLEtBQUssT0FBTztBQUFBLGlDQUNOLEtBQUssYUFBYTtBQUFBLDRCQUN2QixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQU0zQyxLQUFLLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT3RDO0FBQ0Y7QUFwQ2EsbUJBR1ksU0FBeUIsQ0FBQyxxQkFBcUIsYUFBYTtBQUh4RSxtQkFLWSxTQUFTO0FBQUEsRUFDOUIsV0FBVztBQUNiO0FBSU8sZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxXQUFXLGtCQUFrQixTQUFTLE1BQU07QUFBQSxHQVY3QyxtQkFXSixXQUFBLGlCQUFBLENBQUE7QUFYSSxxQkFBTixnQkFBQTtBQUFBLEVBRk4sY0FBYyxjQUFjO0FBQUEsRUFDNUIsVUFBVTtBQUFBLEdBQ0Usa0JBQUE7In0=
|
|
@@ -30,12 +30,13 @@ export declare abstract class DateAdapter<T = any> {
|
|
|
30
30
|
* @param date
|
|
31
31
|
*/
|
|
32
32
|
abstract getDayOfWeek(date: T): number;
|
|
33
|
+
/** Get the first day of the week (0: sunday; 1: monday; etc.). */
|
|
33
34
|
abstract getFirstDayOfWeek(): number;
|
|
34
35
|
/**
|
|
35
36
|
* Get the number of days in a month.
|
|
36
37
|
* @param year
|
|
37
38
|
* @param month
|
|
38
|
-
|
|
39
|
+
*/
|
|
39
40
|
abstract getNumDaysInMonth(date: T): number;
|
|
40
41
|
/**
|
|
41
42
|
* Get a list of all the months in a given style.
|
|
@@ -54,18 +55,19 @@ export declare abstract class DateAdapter<T = any> {
|
|
|
54
55
|
/**
|
|
55
56
|
* Checks whether a given `date` is valid.
|
|
56
57
|
* @param date
|
|
57
|
-
|
|
58
|
+
*/
|
|
58
59
|
abstract isValid(date: T | null | undefined): boolean;
|
|
59
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Creates a new date by cloning the given one.
|
|
60
62
|
* @param date
|
|
61
|
-
|
|
63
|
+
*/
|
|
62
64
|
abstract clone(date: T): T;
|
|
63
65
|
/**
|
|
64
66
|
* Creates a new date, given day, month and year; without date's overflow.
|
|
65
67
|
* @param year
|
|
66
68
|
* @param month The month of the date (1-indexed, 1 = January). Must be an integer 1 - 12.
|
|
67
69
|
* @param date
|
|
68
|
-
|
|
70
|
+
*/
|
|
69
71
|
abstract createDate(year: number, month: number, date: number): T;
|
|
70
72
|
/**
|
|
71
73
|
* Attempts to deserialize a value to a valid date object. This is different from parsing in that
|
|
@@ -74,7 +76,7 @@ export declare abstract class DateAdapter<T = any> {
|
|
|
74
76
|
* the given value is already a valid date object or null.
|
|
75
77
|
* @param value Either Date, ISOString, Unix Timestamp (number of seconds since Jan 1, 1970).
|
|
76
78
|
* @returns The date if the input is valid, `null` otherwise.
|
|
77
|
-
|
|
79
|
+
*/
|
|
78
80
|
deserialize(value: T | string | number | null | undefined): T | null;
|
|
79
81
|
/**
|
|
80
82
|
* Creates a new date adding the number of provided `years` to the provided `date`.
|
|
@@ -90,26 +92,33 @@ export declare abstract class DateAdapter<T = any> {
|
|
|
90
92
|
* @param months The number of months to add.
|
|
91
93
|
*/
|
|
92
94
|
abstract addCalendarMonths(date: T, months: number): T;
|
|
93
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Creates a new date by adding the number of provided `days` to the provided `date`.
|
|
94
97
|
* @param date The starting date.
|
|
95
98
|
* @param days The number of days to add.
|
|
96
99
|
*/
|
|
97
100
|
abstract addCalendarDays(date: T, days: number): T;
|
|
98
|
-
/**
|
|
101
|
+
/**
|
|
102
|
+
* Get the date in the local format.
|
|
99
103
|
* @param date The date to format
|
|
100
104
|
* @returns The `date` in the local format as string.
|
|
101
105
|
*/
|
|
102
106
|
abstract getAccessibilityFormatDate(date: T | string): string;
|
|
103
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Get the given string as Date.
|
|
104
109
|
* @param value The date in the format DD.MM.YYYY.
|
|
105
110
|
* @param now The current date as Date.
|
|
106
111
|
*/
|
|
107
112
|
abstract parse(value: string | null | undefined, now: T): T | undefined;
|
|
108
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* Format the given date as string.
|
|
109
115
|
* @param date The date to format.
|
|
110
116
|
*/
|
|
111
|
-
|
|
112
|
-
|
|
117
|
+
format(date: T | null | undefined, options?: {
|
|
118
|
+
weekdayStyle?: 'long' | 'short' | 'narrow';
|
|
119
|
+
}): string;
|
|
120
|
+
/**
|
|
121
|
+
* Checks whether the given `obj` is a Date.
|
|
113
122
|
* @param obj The object to check.
|
|
114
123
|
*/
|
|
115
124
|
abstract isDateInstance(obj: any): boolean;
|
|
@@ -118,7 +127,8 @@ export declare abstract class DateAdapter<T = any> {
|
|
|
118
127
|
* @returns An invalid date.
|
|
119
128
|
*/
|
|
120
129
|
abstract invalid(): T;
|
|
121
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* Get the given date as ISO String.
|
|
122
132
|
* @param date The date to convert to ISO String.
|
|
123
133
|
*/
|
|
124
134
|
toIso8601(date: T): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAE,MAAU,CAAC;AACtC,eAAO,MAAM,cAAc,EAAE,MAAU,CAAC;AACxC,eAAO,MAAM,aAAa,EAAE,MAAU,CAAC;AACvC,eAAO,MAAM,cAAc,EAAE,MAAW,CAAC;AACzC,eAAO,MAAM,WAAW,QACgE,CAAC;
|
|
1
|
+
{"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,6 @@ export declare class NativeDateAdapter extends DateAdapter<Date> {
|
|
|
59
59
|
deserialize(date: SbbDateLike | null | undefined): Date | null;
|
|
60
60
|
/** Returns the right format for the `valueAsDate` property. */
|
|
61
61
|
parse(value: string | null | undefined, now: Date): Date | undefined;
|
|
62
|
-
format(value: Date | null | undefined): string;
|
|
63
62
|
invalid(): Date;
|
|
64
63
|
/**
|
|
65
64
|
* Creates an array with the given length and fills it by mapping with the provided function.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/native-date-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAU7D,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAExB,gBAAgB,GAAE,MAAW;IAKhD,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAInC,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIvC,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAS9D;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAK/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAM/D,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI5C,4BAA4B;IACrB,KAAK,IAAI,IAAI;IAIpB,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBlE,gDAAgD;IACzC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,uDAAuD;IAChD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAItD,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI9B;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxD;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1D,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKtD,6EAA6E;IAC7D,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAkB9E,+DAA+D;IACxD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"native-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/native-date-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAU7D,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAExB,gBAAgB,GAAE,MAAW;IAKhD,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAInC,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIvC,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAS9D;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAK/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAM/D,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI5C,4BAA4B;IACrB,KAAK,IAAI,IAAI;IAIpB,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBlE,gDAAgD;IACzC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,uDAAuD;IAChD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAItD,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI9B;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxD;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1D,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKtD,6EAA6E;IAC7D,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAkB9E,+DAA+D;IACxD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;IA4B3D,OAAO,IAAI,IAAI;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAId,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;CAShC;AAED,eAAO,MAAM,kBAAkB,mBAA0B,CAAC"}
|
|
@@ -12,14 +12,37 @@ class DateAdapter {
|
|
|
12
12
|
* the given value is already a valid date object or null.
|
|
13
13
|
* @param value Either Date, ISOString, Unix Timestamp (number of seconds since Jan 1, 1970).
|
|
14
14
|
* @returns The date if the input is valid, `null` otherwise.
|
|
15
|
-
|
|
15
|
+
*/
|
|
16
16
|
deserialize(value) {
|
|
17
17
|
if (value == null || this.isDateInstance(value) && this.isValid(value)) {
|
|
18
18
|
return value;
|
|
19
19
|
}
|
|
20
20
|
return this.invalid();
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Format the given date as string.
|
|
24
|
+
* @param date The date to format.
|
|
25
|
+
*/
|
|
26
|
+
format(date, options) {
|
|
27
|
+
if (!this.isValid(date)) {
|
|
28
|
+
return "";
|
|
29
|
+
}
|
|
30
|
+
const value = /* @__PURE__ */ new Date(this.toIso8601(date) + "T00:00:00");
|
|
31
|
+
const dateFormatter = new Intl.DateTimeFormat("de-CH", {
|
|
32
|
+
day: "2-digit",
|
|
33
|
+
month: "2-digit",
|
|
34
|
+
year: "numeric"
|
|
35
|
+
});
|
|
36
|
+
const weekdayStyle = (options == null ? void 0 : options.weekdayStyle) ?? "short";
|
|
37
|
+
let weekday = this.getDayOfWeekNames(weekdayStyle)[this.getDayOfWeek(date)];
|
|
38
|
+
weekday = weekday.charAt(0).toUpperCase() + weekday.substring(1);
|
|
39
|
+
if (weekdayStyle === "short") {
|
|
40
|
+
weekday = weekday.substring(0, 2);
|
|
41
|
+
}
|
|
42
|
+
return `${weekday}, ${dateFormatter.format(value)}`;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the given date as ISO String.
|
|
23
46
|
* @param date The date to convert to ISO String.
|
|
24
47
|
*/
|
|
25
48
|
toIso8601(date) {
|
|
@@ -212,7 +235,7 @@ class NativeDateAdapter extends DateAdapter {
|
|
|
212
235
|
} else if (!Number.isNaN(+date)) {
|
|
213
236
|
return this.getValidDateOrNull(new Date(+date * 1e3));
|
|
214
237
|
} else if (ISO_8601_REGEX.test(date)) {
|
|
215
|
-
return this.getValidDateOrNull(new Date(date));
|
|
238
|
+
return this.getValidDateOrNull(new Date(date.includes("T") ? date : date + "T00:00:00"));
|
|
216
239
|
}
|
|
217
240
|
} else if (typeof date === "number") {
|
|
218
241
|
return this.getValidDateOrNull(new Date(date * 1e3));
|
|
@@ -236,23 +259,6 @@ class NativeDateAdapter extends DateAdapter {
|
|
|
236
259
|
}
|
|
237
260
|
return new Date(year, +match[2] - 1, +match[1]);
|
|
238
261
|
}
|
|
239
|
-
format(value) {
|
|
240
|
-
if (!value) {
|
|
241
|
-
return "";
|
|
242
|
-
}
|
|
243
|
-
const locale = `${SbbLanguageController.current}-CH`;
|
|
244
|
-
const dateFormatter = new Intl.DateTimeFormat("de-CH", {
|
|
245
|
-
day: "2-digit",
|
|
246
|
-
month: "2-digit",
|
|
247
|
-
year: "numeric"
|
|
248
|
-
});
|
|
249
|
-
const dayFormatter = new Intl.DateTimeFormat(locale, {
|
|
250
|
-
weekday: "short"
|
|
251
|
-
});
|
|
252
|
-
let weekday = dayFormatter.format(value);
|
|
253
|
-
weekday = weekday.charAt(0).toUpperCase() + weekday.charAt(1);
|
|
254
|
-
return `${weekday}, ${dateFormatter.format(value)}`;
|
|
255
|
-
}
|
|
256
262
|
invalid() {
|
|
257
263
|
return /* @__PURE__ */ new Date(NaN);
|
|
258
264
|
}
|
|
@@ -262,11 +268,7 @@ class NativeDateAdapter extends DateAdapter {
|
|
|
262
268
|
* @param valueFunction The function of array's index used to fill the array.
|
|
263
269
|
*/
|
|
264
270
|
_range(length, valueFunction) {
|
|
265
|
-
|
|
266
|
-
for (let i = 0; i < length; i++) {
|
|
267
|
-
valuesArray[i] = valueFunction(i);
|
|
268
|
-
}
|
|
269
|
-
return valuesArray;
|
|
271
|
+
return Array.from({ length }).map((_, i) => valueFunction(i));
|
|
270
272
|
}
|
|
271
273
|
/** Creates a date but allows the month and date to overflow. */
|
|
272
274
|
_createDateWithOverflow(year, month, date) {
|
|
@@ -288,4 +290,4 @@ export {
|
|
|
288
290
|
YEARS_PER_ROW,
|
|
289
291
|
defaultDateAdapter
|
|
290
292
|
};
|
|
291
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL25hdGl2ZS1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IFlFQVJTX1BFUl9QQUdFOiBudW1iZXIgPSAyNDtcbmV4cG9ydCBjb25zdCBGT1JNQVRfREFURSA9XG4gIC8oXjA/WzEtOV0/fFsxMl0/WzAtOV0/fDM/WzAxXT8pWy4sXFxcXC9cXC1cXHNdKDA/WzEtOV0/fDE/WzAtMl0/KT9bLixcXFxcL1xcLVxcc10oXFxkezEsNH0kKT8vO1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXIgYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0WWVhcihkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRoIGFzIGEgbnVtYmVyLlxuICAgKiBBdHRlbnRpb246IFRoaXMgcmV0dXJucyAxLTEyIGFuZCBtaXRpZ2F0ZXMgdGhlIGRlZmF1bHQgSmF2YVNjcmlwdCBEYXRlIGJlaGF2aW9yLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF5IG9mIHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgRGF5IG9mIHRoZSB3ZWVrIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2VlayhkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aC5cbiAgICogQHBhcmFtIHllYXJcbiAgICogQHBhcmFtIG1vbnRoXG4gICAqICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgbW9udGhzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBHZXQgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgd2VlayBkYXlzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXTtcblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0b2RheSgpOiBUO1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIGBkYXRlYCBpcyB2YWxpZC5cbiAgICogQHBhcmFtIGRhdGVcbiAgICogKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuO1xuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgY2xvbmluZyB0aGUgZ2l2ZW4gb25lLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGRlc2VyaWFsaXplIGEgdmFsdWUgdG8gYSB2YWxpZCBkYXRlIG9iamVjdC4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBwYXJzaW5nIGluIHRoYXRcbiAgICogZGVzZXJpYWxpemUgc2hvdWxkIG9ubHkgYWNjZXB0IG5vbi1hbWJpZ3VvdXMsIGxvY2FsZS1pbmRlcGVuZGVudCBmb3JtYXRzIChlLmcuIGEgSVNPIDg2MDFcbiAgICogc3RyaW5nKS4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgYWxsb3cgYW55IGRlc2VyaWFsaXphdGlvbiwgaXQgc2ltcGx5IGNoZWNrcyB0aGF0XG4gICAqIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbHJlYWR5IGEgdmFsaWQgZGF0ZSBvYmplY3Qgb3IgbnVsbC5cbiAgICogQHBhcmFtIHZhbHVlIEVpdGhlciBEYXRlLCBJU09TdHJpbmcsIFVuaXggVGltZXN0YW1wIChudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSBKYW4gMSwgMTk3MCkuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICogKi9cbiAgcHVibGljIGRlc2VyaWFsaXplKHZhbHVlOiBUIHwgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PSBudWxsIHx8XG4gICAgICAodGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQgfCBudWxsIHwgdW5kZWZpbmVkKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZSBhcyBUIHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBULCB5ZWFyczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4gd2l0aCBgZGF0ZWAgPSBuZXcgRGF0ZSgyMDIyLCAwLCAzMSkgYW5kIGBtb250aHNgID0gMSwgaXQgcmV0dXJucyBuZXcgRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gbW9udGhzIFRoZSBudW1iZXIgb2YgbW9udGhzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBULCBtb250aHM6IG51bWJlcik6IFQ7XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBkYXlzIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IFQsIGRheXM6IG51bWJlcik6IFQ7XG5cbiAgLyoqIEdldCB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXRcbiAgICogQHJldHVybnMgVGhlIGBkYXRlYCBpbiB0aGUgbG9jYWwgZm9ybWF0IGFzIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUIHwgc3RyaW5nKTogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGdpdmVuIHN0cmluZyBhcyBEYXRlLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIGRhdGUgaW4gdGhlIGZvcm1hdCBERC5NTS5ZWVlZLlxuICAgKiBAcGFyYW0gbm93IFRoZSBjdXJyZW50IGRhdGUgYXMgRGF0ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgbm93OiBUKTogVCB8IHVuZGVmaW5lZDtcblxuICAvKiogRm9ybWF0IHRoZSBnaXZlbiBEYXRlIGFzIHN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGZvcm1hdChkYXRlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZztcblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKFxuICAgICAgKERBWVNfUEVSX1JPVyArIHRoaXMuZ2V0RGF5T2ZXZWVrKGZpcnN0T2ZNb250aCkgLSB0aGlzLmdldEZpcnN0RGF5T2ZXZWVrKCkpICUgREFZU19QRVJfUk9XXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gZGF0ZXMuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyAwIGlmIHRoZSBkYXRlcyBhcmUgZXF1YWwsIGEgbnVtYmVyIGxlc3MgdGhhbiAwIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGVhcmxpZXIsXG4gICAqICAgICBhIG51bWJlciBncmVhdGVyIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBsYXRlci5cbiAgICovXG4gIHB1YmxpYyBjb21wYXJlRGF0ZShmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5nZXRZZWFyKGZpcnN0KSAtIHRoaXMuZ2V0WWVhcihzZWNvbmQpIHx8XG4gICAgICB0aGlzLmdldE1vbnRoKGZpcnN0KSAtIHRoaXMuZ2V0TW9udGgoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXREYXRlKGZpcnN0KSAtIHRoaXMuZ2V0RGF0ZShzZWNvbmQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogQHBhcmFtIGZpcnN0IFRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogICAgIE51bGwgZGF0ZXMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gb3RoZXIgbnVsbCBkYXRlcy5cbiAgICovXG4gIHB1YmxpYyBzYW1lRGF0ZShmaXJzdDogVCB8IG51bGwsIHNlY29uZDogVCB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZmlyc3QgJiYgc2Vjb25kKSB7XG4gICAgICBjb25zdCBmaXJzdFZhbGlkID0gdGhpcy5pc1ZhbGlkKGZpcnN0KTtcbiAgICAgIGNvbnN0IHNlY29uZFZhbGlkID0gdGhpcy5pc1ZhbGlkKHNlY29uZCk7XG4gICAgICBpZiAoZmlyc3RWYWxpZCAmJiBzZWNvbmRWYWxpZCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcGFyZURhdGUoZmlyc3QsIHNlY29uZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RWYWxpZCA9PSBzZWNvbmRWYWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0ID09IHNlY29uZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGFtcCB0aGUgZ2l2ZW4gZGF0ZSBiZXR3ZWVuIG1pbiBhbmQgbWF4IGRhdGVzLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBjbGFtcC5cbiAgICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1pbiBpcyBlbmZvcmNlZC5cbiAgICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1heCBpcyBlbmZvcmNlZC5cbiAgICogQHJldHVybnMgYG1pbmAgaWYgYGRhdGVgIGlzIGxlc3MgdGhhbiBgbWluYCwgYG1heGAgaWYgZGF0ZSBpcyBncmVhdGVyIHRoYW4gYG1heGAsXG4gICAqICAgICBvdGhlcndpc2UgYGRhdGVgLlxuICAgKi9cbiAgcHVibGljIGNsYW1wRGF0ZShkYXRlOiBULCBtaW4/OiBUIHwgbnVsbCwgbWF4PzogVCB8IG51bGwpOiBUIHtcbiAgICBpZiAobWluICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWluKSA8IDApIHtcbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGlmIChtYXggJiYgdGhpcy5jb21wYXJlRGF0ZShkYXRlLCBtYXgpID4gMCkge1xuICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIEZPUk1BVF9EQVRFIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIuanMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW4gd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0ID0gY3V0b2ZmWWVhck9mZnNldDtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSB5ZWFyIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIG1vbnRoIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0TW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC4gKi9cbiAgcHVibGljIGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKS5mb3JtYXQobmV3IERhdGUoZGF0ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc3RyaW5ncyB3aXRoIGxlbmd0aCA9IDEyLCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbW9udGhzIHN0YXJ0aW5nIGZyb20gSmFudWFyeSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGBtb250aGAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2A6IGBsb25nYCBmb3IgZnVsbCBuYW1lLCBgc2hvcnRgIGZvciBzaG9ydCBuYW1lLCBgbmFycm93YCBmb3Igc2luZ2xlIGxldHRlcixcbiAgICogRS5nLiwgd2l0aCBKYW51YXJ5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIkphbnVhcnlcIiwgYHNob3J0YCByZXR1cm5zIFwiSmFuXCIsIGBuYXJyb3dgIHJldHVybnMgXCJKXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IG1vbnRoOiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMTIsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIGksIDEpKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IGRheTogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgzMSwgKGkpID0+IGZvcm1hdHRlci5mb3JtYXQobmV3IERhdGUoMjAxNywgMCwgaSArIDEpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDcsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBkYXlzIGluIGEgd2VlayBzdGFydGluZyBmcm9tIFN1bmRheSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGB3ZWVrZGF5YCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYCAtICdsb25nJyBmb3IgZnVsbCBuYW1lLCAnc2hvcnQnIGZvciBzaG9ydCBuYW1lLCAnbmFycm93JyBmb3Igc2luZ2xlIGxldHRlcjtcbiAgICogRS5nLiwgd2l0aCBNb25kYXkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiTW9uZGF5XCIsIGBzaG9ydGAgcmV0dXJucyBcIk1vblwiLCBgbmFycm93YCByZXR1cm5zIFwiTVwiLlxuICAgKi9cbiAgcHVibGljIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgd2Vla2RheTogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDcsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIHRvZGF5KCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEhvdXJzKDAsIDAsIDAsIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHRoZSBtZXRob2QgZG9lc24ndCBhbGxvdyBkYXRlJ3Mgb3ZlcmZsb3cuICovXG4gIHB1YmxpYyBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgbW9udGggYW5kIGRhdGUgKGV4Y2VwdCB1cHBlciBib3VuZCBvbiBkYXRlIHdoaWNoIHdlIGhhdmUgdG8gY2hlY2sgYWZ0ZXIgY3JlYXRpbmcgdGhlIERhdGUpLlxuICAgIGlmIChtb250aCA8IDEgfHwgbW9udGggPiAxMikge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgbW9udGggaW5kZXggXCIke21vbnRofVwiLiBNb250aCBpbmRleCBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCAxMi5gKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZSA8IDEpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZURhdGVXaXRoT3ZlcmZsb3coeWVhciwgbW9udGggLSAxLCBkYXRlKTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYG9iamAgaXMgYSBEYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYGRhdGVgIGlzIGEgdmFsaWQgRGF0ZS4gKi9cbiAgcHVibGljIGlzVmFsaWQoZGF0ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFkYXRlICYmICFpc05hTihkYXRlLnZhbHVlT2YoKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXRlLCB5ZWFyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgeWVhcnMgKiAxMik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4sIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyBtb250aHM7XG4gICAgY29uc3QgZGF0ZVdpdGhDb3JyZWN0TW9udGggPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIHRhcmdldE1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0TnVtRGF5c0luTW9udGgoZGF0ZVdpdGhDb3JyZWN0TW9udGgpO1xuICAgIC8vIEFkYXB0IHRoZSBsYXN0IGRheSBvZiBtb250aCBmb3Igc2hvcnRlciBtb250aHNcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jbG9uZShkYXRlKS5zZXRNb250aCh0YXJnZXRNb250aCwgTWF0aC5taW4oZGF5c0luTW9udGgsIGRhdGUuZ2V0RGF0ZSgpKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXREYXkgPSBkYXRlLmdldERhdGUoKSArIGRheXM7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCB0YXJnZXREYXksIDAsIDAsIDAsIDApO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBEYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoRGF0ZSwgc3RyaW5nIG9yIG51bWJlciBpbiBzZWNvbmRzKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNOYU4oK2RhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChuZXcgRGF0ZSgrZGF0ZSAqIDEwMDApKTtcblxuICAgICAgICAvLyBUaGUgYERhdGVgIGNvbnN0cnVjdG9yIGFjY2VwdHMgZm9ybWF0cyBvdGhlciB0aGFuIElTTyA4NjAxLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVcbiAgICAgICAgLy8gc3RyaW5nIGlzIHRoZSByaWdodCBmb3JtYXQgZmlyc3QuXG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUgKiAxMDAwKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZShkYXRlKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVBc0RhdGVgIHByb3BlcnR5LiAqL1xuICBwdWJsaWMgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIG5vdzogRGF0ZSk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaXBwZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnICcpLnRyaW0oKTtcblxuICAgIGNvbnN0IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHN0cmlwcGVkVmFsdWU/Lm1hdGNoKEZPUk1BVF9EQVRFKTtcbiAgICBpZiAoXG4gICAgICAhbWF0Y2ggfHxcbiAgICAgIG1hdGNoLmluZGV4ICE9PSAwIHx8XG4gICAgICBtYXRjaC5sZW5ndGggPD0gMiB8fFxuICAgICAgbWF0Y2guc29tZSgoZSkgPT4gZSA9PT0gdW5kZWZpbmVkKSB8fFxuICAgICAgIXRoaXMuaXNWYWxpZCh0aGlzLmNyZWF0ZURhdGUoK21hdGNoWzNdLCArbWF0Y2hbMl0sICttYXRjaFsxXSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSBub3cuZ2V0RnVsbFllYXIoKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCArbWF0Y2hbMl0gLSAxLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgcHVibGljIGZvcm1hdCh2YWx1ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgbG9jYWxlID0gYCR7U2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnR9LUNIYDtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuICAgIGNvbnN0IGRheUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwge1xuICAgICAgd2Vla2RheTogJ3Nob3J0JyxcbiAgICB9KTtcblxuICAgIGxldCB3ZWVrZGF5ID0gZGF5Rm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSk7XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LmNoYXJBdCgxKTtcblxuICAgIHJldHVybiBgJHt3ZWVrZGF5fSwgJHtkYXRlRm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSl9YDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBpbnZhbGlkKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgd2l0aCB0aGUgZ2l2ZW4gbGVuZ3RoIGFuZCBmaWxscyBpdCBieSBtYXBwaW5nIHdpdGggdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHRvIGJlIGNyZWF0ZWQuXG4gICAqIEBwYXJhbSB2YWx1ZUZ1bmN0aW9uIFRoZSBmdW5jdGlvbiBvZiBhcnJheSdzIGluZGV4IHVzZWQgdG8gZmlsbCB0aGUgYXJyYXkuXG4gICAqL1xuICBwcml2YXRlIF9yYW5nZTxUPihsZW5ndGg6IG51bWJlciwgdmFsdWVGdW5jdGlvbjogKGluZGV4OiBudW1iZXIpID0+IFQpOiBUW10ge1xuICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkobGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWx1ZXNBcnJheVtpXSA9IHZhbHVlRnVuY3Rpb24oaSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXNBcnJheTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZGF0ZSBidXQgYWxsb3dzIHRoZSBtb250aCBhbmQgZGF0ZSB0byBvdmVyZmxvdy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNvcnJlY3QgZm9yIHRoZSBmYWN0IHRoYXQgSlMgbmF0aXZlIERhdGUgdHJlYXRzIHllYXJzIGluIHJhbmdlIFswLCA5OV0gYXNcbiAgICAvLyBhYmJyZXZpYXRpb25zIGZvciAxOXh4LlxuICAgIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgICAgcmVzdWx0LnNldEZ1bGxZZWFyKHRoaXMuZ2V0WWVhcihyZXN1bHQpIC0gMTkwMCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHREYXRlQWRhcHRlciA9IG5ldyBOYXRpdmVEYXRlQWRhcHRlcigpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBTyxNQUFNLGVBQXVCO0FBQzdC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
|
|
293
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL25hdGl2ZS1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IFlFQVJTX1BFUl9QQUdFOiBudW1iZXIgPSAyNDtcbmV4cG9ydCBjb25zdCBGT1JNQVRfREFURSA9XG4gIC8oXjA/WzEtOV0/fFsxMl0/WzAtOV0/fDM/WzAxXT8pWy4sXFxcXC9cXC1cXHNdKDA/WzEtOV0/fDE/WzAtMl0/KT9bLixcXFxcL1xcLVxcc10oXFxkezEsNH0kKT8vO1xuXG4vLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IENoYW5nZSB1bmRlZmluZWQgcmV0dXJuIHR5cGVzIHRvIG51bGwuXG5cbi8qKlxuICogQWJzdHJhY3QgZGF0ZSBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvbWF0ZXJpYWwvY29yZS9kYXRldGltZS9kYXRlLWFkYXB0ZXIudHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGVBZGFwdGVyPFQgPSBhbnk+IHtcbiAgLyoqXG4gICAqIEdldCB0aGUgeWVhciBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRZZWFyKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEF0dGVudGlvbjogVGhpcyByZXR1cm5zIDEtMTIgYW5kIG1pdGlnYXRlcyB0aGUgZGVmYXVsdCBKYXZhU2NyaXB0IERhdGUgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGgoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERhdGUoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBEYXkgb2YgdGhlIHdlZWsgYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aC5cbiAgICogQHBhcmFtIHllYXJcbiAgICogQHBhcmFtIG1vbnRoXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBhbGwgdGhlIG1vbnRocyBpbiBhIGdpdmVuIHN0eWxlLlxuICAgKiBAcGFyYW0gc3R5bGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXTtcblxuICAvKiogR2V0IGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gMzEsIGZpbGxlZCB3aXRoIHRoZSBkYXlzIGluIGEgbW9udGgsIHN0YXJ0aW5nIGZyb20gMS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERhdGVOYW1lcygpOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBhbGwgdGhlIHdlZWsgZGF5cyBpbiBhIGdpdmVuIHN0eWxlLlxuICAgKiBAcGFyYW0gc3R5bGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgdG9kYXkoKTogVDtcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBgZGF0ZWAgaXMgdmFsaWQuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaXNWYWxpZChkYXRlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBkZXNlcmlhbGl6ZSBhIHZhbHVlIHRvIGEgdmFsaWQgZGF0ZSBvYmplY3QuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gcGFyc2luZyBpbiB0aGF0XG4gICAqIGRlc2VyaWFsaXplIHNob3VsZCBvbmx5IGFjY2VwdCBub24tYW1iaWd1b3VzLCBsb2NhbGUtaW5kZXBlbmRlbnQgZm9ybWF0cyAoZS5nLiBhIElTTyA4NjAxXG4gICAqIHN0cmluZykuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGFsbG93IGFueSBkZXNlcmlhbGl6YXRpb24sIGl0IHNpbXBseSBjaGVja3MgdGhhdFxuICAgKiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYWxyZWFkeSBhIHZhbGlkIGRhdGUgb2JqZWN0IG9yIG51bGwuXG4gICAqIEBwYXJhbSB2YWx1ZSBFaXRoZXIgRGF0ZSwgSVNPU3RyaW5nLCBVbml4IFRpbWVzdGFtcCAobnVtYmVyIG9mIHNlY29uZHMgc2luY2UgSmFuIDEsIDE5NzApLlxuICAgKiBAcmV0dXJucyBUaGUgZGF0ZSBpZiB0aGUgaW5wdXQgaXMgdmFsaWQsIGBudWxsYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgZGVzZXJpYWxpemUodmFsdWU6IFQgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogVCB8IG51bGwge1xuICAgIGlmIChcbiAgICAgIHZhbHVlID09IG51bGwgfHxcbiAgICAgICh0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCB8IG51bGwgfCB1bmRlZmluZWQpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlIGFzIFQgfCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGB5ZWFyc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSB5ZWFycyBUaGUgbnVtYmVyIG9mIHllYXJzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhclllYXJzKGRhdGU6IFQsIHllYXJzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYG1vbnRoc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgbW9udGggaGFzIGZld2VyIGRheXMgdGhhbiB0aGUgb3JpZ2luYWwgb25lLCB0aGUgZGF0ZSBpcyBzZXQgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC5cbiAgICogRS5nLiB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBtb250aHMgVGhlIG51bWJlciBvZiBtb250aHMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IFQsIG1vbnRoczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBkYXlzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIGRheXMgVGhlIG51bWJlciBvZiBkYXlzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhckRheXMoZGF0ZTogVCwgZGF5czogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdFxuICAgKiBAcmV0dXJucyBUaGUgYGRhdGVgIGluIHRoZSBsb2NhbCBmb3JtYXQgYXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IFQgfCBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZ2l2ZW4gc3RyaW5nIGFzIERhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgZGF0ZSBpbiB0aGUgZm9ybWF0IERELk1NLllZWVkuXG4gICAqIEBwYXJhbSBub3cgVGhlIGN1cnJlbnQgZGF0ZSBhcyBEYXRlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBub3c6IFQpOiBUIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGdpdmVuIGRhdGUgYXMgc3RyaW5nLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0KFxuICAgIGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM/OiB7IHdlZWtkYXlTdHlsZT86ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93JyB9LFxuICApOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnRvSXNvODYwMShkYXRlISkgKyAnVDAwOjAwOjAwJyk7XG4gICAgY29uc3QgZGF0ZUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdkZS1DSCcsIHtcbiAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKFxuICAgICAgKERBWVNfUEVSX1JPVyArIHRoaXMuZ2V0RGF5T2ZXZWVrKGZpcnN0T2ZNb250aCkgLSB0aGlzLmdldEZpcnN0RGF5T2ZXZWVrKCkpICUgREFZU19QRVJfUk9XXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gZGF0ZXMuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyAwIGlmIHRoZSBkYXRlcyBhcmUgZXF1YWwsIGEgbnVtYmVyIGxlc3MgdGhhbiAwIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGVhcmxpZXIsXG4gICAqICAgICBhIG51bWJlciBncmVhdGVyIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBsYXRlci5cbiAgICovXG4gIHB1YmxpYyBjb21wYXJlRGF0ZShmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5nZXRZZWFyKGZpcnN0KSAtIHRoaXMuZ2V0WWVhcihzZWNvbmQpIHx8XG4gICAgICB0aGlzLmdldE1vbnRoKGZpcnN0KSAtIHRoaXMuZ2V0TW9udGgoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXREYXRlKGZpcnN0KSAtIHRoaXMuZ2V0RGF0ZShzZWNvbmQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogQHBhcmFtIGZpcnN0IFRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogICAgIE51bGwgZGF0ZXMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gb3RoZXIgbnVsbCBkYXRlcy5cbiAgICovXG4gIHB1YmxpYyBzYW1lRGF0ZShmaXJzdDogVCB8IG51bGwsIHNlY29uZDogVCB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZmlyc3QgJiYgc2Vjb25kKSB7XG4gICAgICBjb25zdCBmaXJzdFZhbGlkID0gdGhpcy5pc1ZhbGlkKGZpcnN0KTtcbiAgICAgIGNvbnN0IHNlY29uZFZhbGlkID0gdGhpcy5pc1ZhbGlkKHNlY29uZCk7XG4gICAgICBpZiAoZmlyc3RWYWxpZCAmJiBzZWNvbmRWYWxpZCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcGFyZURhdGUoZmlyc3QsIHNlY29uZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RWYWxpZCA9PSBzZWNvbmRWYWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0ID09IHNlY29uZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGFtcCB0aGUgZ2l2ZW4gZGF0ZSBiZXR3ZWVuIG1pbiBhbmQgbWF4IGRhdGVzLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBjbGFtcC5cbiAgICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1pbiBpcyBlbmZvcmNlZC5cbiAgICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1heCBpcyBlbmZvcmNlZC5cbiAgICogQHJldHVybnMgYG1pbmAgaWYgYGRhdGVgIGlzIGxlc3MgdGhhbiBgbWluYCwgYG1heGAgaWYgZGF0ZSBpcyBncmVhdGVyIHRoYW4gYG1heGAsXG4gICAqICAgICBvdGhlcndpc2UgYGRhdGVgLlxuICAgKi9cbiAgcHVibGljIGNsYW1wRGF0ZShkYXRlOiBULCBtaW4/OiBUIHwgbnVsbCwgbWF4PzogVCB8IG51bGwpOiBUIHtcbiAgICBpZiAobWluICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWluKSA8IDApIHtcbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGlmIChtYXggJiYgdGhpcy5jb21wYXJlRGF0ZShkYXRlLCBtYXgpID4gMCkge1xuICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIEZPUk1BVF9EQVRFIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIuanMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW4gd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0ID0gY3V0b2ZmWWVhck9mZnNldDtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSB5ZWFyIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIG1vbnRoIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0TW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC4gKi9cbiAgcHVibGljIGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKS5mb3JtYXQobmV3IERhdGUoZGF0ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc3RyaW5ncyB3aXRoIGxlbmd0aCA9IDEyLCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbW9udGhzIHN0YXJ0aW5nIGZyb20gSmFudWFyeSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGBtb250aGAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2A6IGBsb25nYCBmb3IgZnVsbCBuYW1lLCBgc2hvcnRgIGZvciBzaG9ydCBuYW1lLCBgbmFycm93YCBmb3Igc2luZ2xlIGxldHRlcixcbiAgICogRS5nLiwgd2l0aCBKYW51YXJ5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIkphbnVhcnlcIiwgYHNob3J0YCByZXR1cm5zIFwiSmFuXCIsIGBuYXJyb3dgIHJldHVybnMgXCJKXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IG1vbnRoOiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMTIsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIGksIDEpKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IGRheTogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgzMSwgKGkpID0+IGZvcm1hdHRlci5mb3JtYXQobmV3IERhdGUoMjAxNywgMCwgaSArIDEpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDcsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBkYXlzIGluIGEgd2VlayBzdGFydGluZyBmcm9tIFN1bmRheSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGB3ZWVrZGF5YCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYCAtICdsb25nJyBmb3IgZnVsbCBuYW1lLCAnc2hvcnQnIGZvciBzaG9ydCBuYW1lLCAnbmFycm93JyBmb3Igc2luZ2xlIGxldHRlcjtcbiAgICogRS5nLiwgd2l0aCBNb25kYXkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiTW9uZGF5XCIsIGBzaG9ydGAgcmV0dXJucyBcIk1vblwiLCBgbmFycm93YCByZXR1cm5zIFwiTVwiLlxuICAgKi9cbiAgcHVibGljIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgd2Vla2RheTogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDcsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIHRvZGF5KCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEhvdXJzKDAsIDAsIDAsIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHRoZSBtZXRob2QgZG9lc24ndCBhbGxvdyBkYXRlJ3Mgb3ZlcmZsb3cuICovXG4gIHB1YmxpYyBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgbW9udGggYW5kIGRhdGUgKGV4Y2VwdCB1cHBlciBib3VuZCBvbiBkYXRlIHdoaWNoIHdlIGhhdmUgdG8gY2hlY2sgYWZ0ZXIgY3JlYXRpbmcgdGhlIERhdGUpLlxuICAgIGlmIChtb250aCA8IDEgfHwgbW9udGggPiAxMikge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgbW9udGggaW5kZXggXCIke21vbnRofVwiLiBNb250aCBpbmRleCBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCAxMi5gKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZSA8IDEpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZURhdGVXaXRoT3ZlcmZsb3coeWVhciwgbW9udGggLSAxLCBkYXRlKTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYG9iamAgaXMgYSBEYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYGRhdGVgIGlzIGEgdmFsaWQgRGF0ZS4gKi9cbiAgcHVibGljIGlzVmFsaWQoZGF0ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFkYXRlICYmICFpc05hTihkYXRlLnZhbHVlT2YoKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXRlLCB5ZWFyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgeWVhcnMgKiAxMik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4sIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyBtb250aHM7XG4gICAgY29uc3QgZGF0ZVdpdGhDb3JyZWN0TW9udGggPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIHRhcmdldE1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0TnVtRGF5c0luTW9udGgoZGF0ZVdpdGhDb3JyZWN0TW9udGgpO1xuICAgIC8vIEFkYXB0IHRoZSBsYXN0IGRheSBvZiBtb250aCBmb3Igc2hvcnRlciBtb250aHNcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jbG9uZShkYXRlKS5zZXRNb250aCh0YXJnZXRNb250aCwgTWF0aC5taW4oZGF5c0luTW9udGgsIGRhdGUuZ2V0RGF0ZSgpKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXREYXkgPSBkYXRlLmdldERhdGUoKSArIGRheXM7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCB0YXJnZXREYXksIDAsIDAsIDAsIDApO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBEYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoRGF0ZSwgc3RyaW5nIG9yIG51bWJlciBpbiBzZWNvbmRzKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNOYU4oK2RhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChuZXcgRGF0ZSgrZGF0ZSAqIDEwMDApKTtcblxuICAgICAgICAvLyBUaGUgYERhdGVgIGNvbnN0cnVjdG9yIGFjY2VwdHMgZm9ybWF0cyBvdGhlciB0aGFuIElTTyA4NjAxLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVcbiAgICAgICAgLy8gc3RyaW5nIGlzIHRoZSByaWdodCBmb3JtYXQgZmlyc3QuXG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUuaW5jbHVkZXMoJ1QnKSA/IGRhdGUgOiBkYXRlICsgJ1QwMDowMDowMCcpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUgKiAxMDAwKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZShkYXRlKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVBc0RhdGVgIHByb3BlcnR5LiAqL1xuICBwdWJsaWMgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIG5vdzogRGF0ZSk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaXBwZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnICcpLnRyaW0oKTtcblxuICAgIGNvbnN0IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHN0cmlwcGVkVmFsdWU/Lm1hdGNoKEZPUk1BVF9EQVRFKTtcbiAgICBpZiAoXG4gICAgICAhbWF0Y2ggfHxcbiAgICAgIG1hdGNoLmluZGV4ICE9PSAwIHx8XG4gICAgICBtYXRjaC5sZW5ndGggPD0gMiB8fFxuICAgICAgbWF0Y2guc29tZSgoZSkgPT4gZSA9PT0gdW5kZWZpbmVkKSB8fFxuICAgICAgIXRoaXMuaXNWYWxpZCh0aGlzLmNyZWF0ZURhdGUoK21hdGNoWzNdLCArbWF0Y2hbMl0sICttYXRjaFsxXSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSBub3cuZ2V0RnVsbFllYXIoKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCArbWF0Y2hbMl0gLSAxLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGludmFsaWQoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoZSBnaXZlbiBsZW5ndGggYW5kIGZpbGxzIGl0IGJ5IG1hcHBpbmcgd2l0aCB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdG8gYmUgY3JlYXRlZC5cbiAgICogQHBhcmFtIHZhbHVlRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIG9mIGFycmF5J3MgaW5kZXggdXNlZCB0byBmaWxsIHRoZSBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgX3JhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSkubWFwKChfLCBpKSA9PiB2YWx1ZUZ1bmN0aW9uKGkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZGF0ZSBidXQgYWxsb3dzIHRoZSBtb250aCBhbmQgZGF0ZSB0byBvdmVyZmxvdy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNvcnJlY3QgZm9yIHRoZSBmYWN0IHRoYXQgSlMgbmF0aXZlIERhdGUgdHJlYXRzIHllYXJzIGluIHJhbmdlIFswLCA5OV0gYXNcbiAgICAvLyBhYmJyZXZpYXRpb25zIGZvciAxOXh4LlxuICAgIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgICAgcmVzdWx0LnNldEZ1bGxZZWFyKHRoaXMuZ2V0WWVhcihyZXN1bHQpIC0gMTkwMCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHREYXRlQWRhcHRlciA9IG5ldyBOYXRpdmVEYXRlQWRhcHRlcigpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBTyxNQUFNLGVBQXVCO0FBQzdCLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sZ0JBQXdCO0FBQzlCLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sY0FDWDtBQVNLLE1BQWUsWUFBcUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFrRmxDLFlBQVksT0FBeUQ7QUFFeEUsUUFBQSxTQUFTLFFBQ1IsS0FBSyxlQUFlLEtBQUssS0FBSyxLQUFLLFFBQVEsS0FBNkIsR0FDekU7QUFDTyxhQUFBO0FBQUEsSUFDVDtBQUNBLFdBQU8sS0FBSztFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQTJDTyxPQUNMLE1BQ0EsU0FDUTtBQUNSLFFBQUksQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHO0FBQ2hCLGFBQUE7QUFBQSxJQUNUO0FBRUEsVUFBTSxRQUFZLG9CQUFBLEtBQUssS0FBSyxVQUFVLElBQUssSUFBSSxXQUFXO0FBQzFELFVBQU0sZ0JBQWdCLElBQUksS0FBSyxlQUFlLFNBQVM7QUFBQSxNQUNyRCxLQUFLO0FBQUEsTUFDTCxPQUFPO0FBQUEsTUFDUCxNQUFNO0FBQUEsSUFBQSxDQUNQO0FBRUssVUFBQSxnQkFBZSxtQ0FBUyxpQkFBZ0I7QUFDMUMsUUFBQSxVQUFVLEtBQUssa0JBQWtCLFlBQVksRUFBRSxLQUFLLGFBQWEsSUFBSyxDQUFDO0FBQ2pFLGNBQUEsUUFBUSxPQUFPLENBQUMsRUFBRSxnQkFBZ0IsUUFBUSxVQUFVLENBQUM7QUFHL0QsUUFBSSxpQkFBaUIsU0FBUztBQUNsQixnQkFBQSxRQUFRLFVBQVUsR0FBRyxDQUFDO0FBQUEsSUFDbEM7QUFFQSxXQUFPLEdBQUcsT0FBTyxLQUFLLGNBQWMsT0FBTyxLQUFLLENBQUM7QUFBQSxFQUNuRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFrQk8sVUFBVSxNQUFpQjtBQUMxQixVQUFBLE1BQU0sQ0FBQyxPQUFlLFNBQVMsTUFBYyxHQUFHLEtBQUssR0FBRyxTQUFTLFFBQVEsR0FBRztBQUMzRSxXQUFBLEdBQUcsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUM7QUFBQSxFQUM3RjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sbUJBQW1CLE9BQTBCO0FBQzNDLFdBQUEsS0FBSyxlQUFlLEtBQUssS0FBSyxLQUFLLFFBQVEsS0FBVSxJQUFLLFFBQWM7QUFBQSxFQUNqRjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08sbUJBQW1CLE1BQWlCO0FBQ25DLFVBQUEsZUFBZSxLQUFLLFdBQVcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUM7QUFDL0UsWUFDRyxlQUFlLEtBQUssYUFBYSxZQUFZLElBQUksS0FBSyxrQkFBdUIsS0FBQTtBQUFBLEVBRWxGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNPLFlBQVksT0FBVSxRQUFtQjtBQUU1QyxXQUFBLEtBQUssUUFBUSxLQUFLLElBQUksS0FBSyxRQUFRLE1BQU0sS0FDekMsS0FBSyxTQUFTLEtBQUssSUFBSSxLQUFLLFNBQVMsTUFBTSxLQUMzQyxLQUFLLFFBQVEsS0FBSyxJQUFJLEtBQUssUUFBUSxNQUFNO0FBQUEsRUFFN0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sU0FBUyxPQUFpQixRQUEyQjtBQUMxRCxRQUFJLFNBQVMsUUFBUTtBQUNiLFlBQUEsYUFBYSxLQUFLLFFBQVEsS0FBSztBQUMvQixZQUFBLGNBQWMsS0FBSyxRQUFRLE1BQU07QUFDdkMsVUFBSSxjQUFjLGFBQWE7QUFDN0IsZUFBTyxDQUFDLEtBQUssWUFBWSxPQUFPLE1BQU07QUFBQSxNQUN4QztBQUNBLGFBQU8sY0FBYztBQUFBLElBQ3ZCO0FBQ0EsV0FBTyxTQUFTO0FBQUEsRUFDbEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVTyxVQUFVLE1BQVMsS0FBZ0IsS0FBbUI7QUFDM0QsUUFBSSxPQUFPLEtBQUssWUFBWSxNQUFNLEdBQUcsSUFBSSxHQUFHO0FBQ25DLGFBQUE7QUFBQSxJQUNUO0FBQ0EsUUFBSSxPQUFPLEtBQUssWUFBWSxNQUFNLEdBQUcsSUFBSSxHQUFHO0FBQ25DLGFBQUE7QUFBQSxJQUNUO0FBQ08sV0FBQTtBQUFBLEVBQ1Q7QUFDRjtBQ2hRQSxNQUFNLGlCQUNKO0FBRUssTUFBTSwwQkFBMEIsWUFBa0I7QUFBQSxFQUdoRCxZQUFZLG1CQUEyQixJQUFJO0FBQzFDO0FBQ04sU0FBSyxvQkFBb0I7QUFBQSxFQUMzQjtBQUFBO0FBQUEsRUFHTyxRQUFRLE1BQW9CO0FBQ2pDLFdBQU8sS0FBSztFQUNkO0FBQUE7QUFBQSxFQUdPLFNBQVMsTUFBb0I7QUFDM0IsV0FBQSxLQUFLLFNBQWEsSUFBQTtBQUFBLEVBQzNCO0FBQUE7QUFBQSxFQUdPLFFBQVEsTUFBb0I7QUFDakMsV0FBTyxLQUFLO0VBQ2Q7QUFBQTtBQUFBLEVBR08sYUFBYSxNQUFvQjtBQUN0QyxXQUFPLEtBQUs7RUFDZDtBQUFBO0FBQUEsRUFHTywyQkFBMkIsTUFBNkI7QUFDN0QsVUFBTSxVQUFzQztBQUFBLE1BQzFDLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxNQUNQLEtBQUs7QUFBQSxJQUFBO0FBRUEsV0FBQSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFDOUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxjQUFjLE9BQThDO0FBQzNELFVBQUEsWUFBWSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxFQUFFLE9BQU8sTUFBQSxDQUFPO0FBQ3pGLFdBQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLFVBQVUsT0FBTyxJQUFJLEtBQUssTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQUEsRUFDdEU7QUFBQTtBQUFBLEVBR08sZUFBeUI7QUFDeEIsVUFBQSxZQUFZLElBQUksS0FBSyxlQUFlLHNCQUFzQixTQUFTLEVBQUUsS0FBSyxVQUFBLENBQVc7QUFDM0YsV0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sVUFBVSxPQUFPLElBQUksS0FBSyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUFBLEVBQzFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sa0JBQWtCLE9BQThDO0FBQy9ELFVBQUEsWUFBWSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxFQUFFLFNBQVMsTUFBQSxDQUFPO0FBQzNGLFdBQU8sS0FBSyxPQUFPLEdBQUcsQ0FBQyxNQUFNLFVBQVUsT0FBTyxJQUFJLEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFBQSxFQUN6RTtBQUFBO0FBQUEsRUFHTyxvQkFBNEI7QUFDMUIsV0FBQTtBQUFBLEVBQ1Q7QUFBQTtBQUFBLEVBR08sa0JBQWtCLE1BQW9CO0FBQzNDLFdBQU8sS0FBSyxRQUFRLEtBQUssd0JBQXdCLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLENBQUM7QUFBQSxFQUM5RjtBQUFBO0FBQUEsRUFHTyxRQUFjO0FBQ1osV0FBQSxJQUFJLE1BQUssb0JBQUksUUFBTyxTQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUFBLEVBQ2pEO0FBQUE7QUFBQSxFQUdPLFdBQVcsTUFBYyxPQUFlLE1BQW9CO0FBRTdELFFBQUEsUUFBUSxLQUFLLFFBQVEsSUFBSTtBQUNyQixZQUFBLE1BQU0sd0JBQXdCLEtBQUssNENBQTRDO0FBQUEsSUFDdkY7QUFFQSxRQUFJLE9BQU8sR0FBRztBQUNOLFlBQUEsTUFBTSxpQkFBaUIsSUFBSSxtQ0FBbUM7QUFBQSxJQUN0RTtBQUVBLFVBQU0sU0FBUyxLQUFLLHdCQUF3QixNQUFNLFFBQVEsR0FBRyxJQUFJO0FBRWpFLFFBQUksT0FBTyxhQUFhLE1BQU0sT0FBTztBQUNuQyxZQUFNLE1BQU0saUJBQWlCLElBQUksMkJBQTJCLEtBQUssSUFBSTtBQUFBLElBQ3ZFO0FBRU8sV0FBQTtBQUFBLEVBQ1Q7QUFBQTtBQUFBLEVBR08sZUFBZSxLQUFtQjtBQUN2QyxXQUFPLGVBQWU7QUFBQSxFQUN4QjtBQUFBO0FBQUEsRUFHTyxRQUFRLE1BQXdDO0FBQ3JELFdBQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssU0FBUztBQUFBLEVBQ3hDO0FBQUE7QUFBQSxFQUdPLE1BQU0sTUFBa0I7QUFDN0IsV0FBTyxJQUFJLEtBQUssS0FBSyxRQUFTLENBQUE7QUFBQSxFQUNoQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLGlCQUFpQixNQUFZLE9BQXFCO0FBQ3ZELFdBQU8sS0FBSyxrQkFBa0IsTUFBTSxRQUFRLEVBQUU7QUFBQSxFQUNoRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLGtCQUFrQixNQUFZLFFBQXNCO0FBQ25ELFVBQUEsY0FBYyxLQUFLLFNBQUEsSUFBYTtBQUNoQyxVQUFBLHVCQUF1QixJQUFJLEtBQUssS0FBSyxZQUFlLEdBQUEsYUFBYSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDOUUsVUFBQSxjQUFjLEtBQUssa0JBQWtCLG9CQUFvQjtBQUUvRCxXQUFPLElBQUksS0FBSyxLQUFLLE1BQU0sSUFBSSxFQUFFLFNBQVMsYUFBYSxLQUFLLElBQUksYUFBYSxLQUFLLFFBQVMsQ0FBQSxDQUFDLENBQUM7QUFBQSxFQUMvRjtBQUFBO0FBQUEsRUFHTyxnQkFBZ0IsTUFBWSxNQUFvQjtBQUMvQyxVQUFBLFlBQVksS0FBSyxRQUFBLElBQVk7QUFDbkMsV0FBTyxJQUFJLEtBQUssS0FBSyxZQUFBLEdBQWUsS0FBSyxZQUFZLFdBQVcsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUFBLEVBQzVFO0FBQUE7QUFBQSxFQUdnQixZQUFZLE1BQW1EO0FBQ3pFLFFBQUEsT0FBTyxTQUFTLFVBQVU7QUFDNUIsVUFBSSxDQUFDLE1BQU07QUFDRixlQUFBO0FBQUEsaUJBQ0UsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLEdBQUc7QUFDL0IsZUFBTyxLQUFLLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxPQUFPLEdBQUksQ0FBQztBQUFBLE1BSTVDLFdBQUEsZUFBZSxLQUFLLElBQUksR0FBRztBQUM3QixlQUFBLEtBQUssbUJBQW1CLElBQUksS0FBSyxLQUFLLFNBQVMsR0FBRyxJQUFJLE9BQU8sT0FBTyxXQUFXLENBQUM7QUFBQSxNQUN6RjtBQUFBLElBQUEsV0FDUyxPQUFPLFNBQVMsVUFBVTtBQUNuQyxhQUFPLEtBQUssbUJBQW1CLElBQUksS0FBSyxPQUFPLEdBQUksQ0FBQztBQUFBLElBQ3REO0FBQ08sV0FBQSxNQUFNLFlBQVksSUFBSTtBQUFBLEVBQy9CO0FBQUE7QUFBQSxFQUdPLE1BQU0sT0FBa0MsS0FBNkI7QUFDMUUsUUFBSSxDQUFDLE9BQU87QUFDSCxhQUFBO0FBQUEsSUFDVDtBQUVBLFVBQU0sZ0JBQWdCLE1BQU0sUUFBUSxPQUFPLEdBQUcsRUFBRTtBQUUxQyxVQUFBLFFBQTZDLCtDQUFlLE1BQU07QUFDeEUsUUFDRSxDQUFDLFNBQ0QsTUFBTSxVQUFVLEtBQ2hCLE1BQU0sVUFBVSxLQUNoQixNQUFNLEtBQUssQ0FBQyxNQUFNLE1BQU0sTUFBUyxLQUNqQyxDQUFDLEtBQUssUUFBUSxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUM5RDtBQUNPLGFBQUE7QUFBQSxJQUNUO0FBRUksUUFBQSxPQUFPLENBQUMsTUFBTSxDQUFDO0FBRW5CLFFBQUksT0FBTyxTQUFTLFlBQVksT0FBTyxPQUFPLFFBQVEsR0FBRztBQUN2RCxZQUFNLFFBQVEsSUFBSSxZQUFZLElBQUksTUFBTyxLQUFLO0FBQzlDLGFBQU8sUUFBUSxRQUFRLE1BQU8sT0FBTyxPQUFPO0FBQUEsSUFDOUM7QUFFTyxXQUFBLElBQUksS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQUEsRUFDaEQ7QUFBQSxFQUVnQixVQUFnQjtBQUN2QixXQUFBLG9CQUFJLEtBQUssR0FBRztBQUFBLEVBQ3JCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1EsT0FBVSxRQUFnQixlQUEwQztBQUMxRSxXQUFPLE1BQU0sS0FBSyxFQUFFLE9BQVEsQ0FBQSxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sY0FBYyxDQUFDLENBQUM7QUFBQSxFQUM5RDtBQUFBO0FBQUEsRUFHUSx3QkFBd0IsTUFBYyxPQUFlLE1BQW9CO0FBQy9FLFVBQU0sU0FBUyxJQUFJLEtBQUssTUFBTSxPQUFPLElBQUk7QUFHckMsUUFBQSxRQUFRLEtBQUssT0FBTyxLQUFLO0FBQzNCLGFBQU8sWUFBWSxLQUFLLFFBQVEsTUFBTSxJQUFJLElBQUk7QUFBQSxJQUNoRDtBQUNPLFdBQUE7QUFBQSxFQUNUO0FBQ0Y7QUFFYSxNQUFBLHFCQUFxQixJQUFJLGtCQUFrQjsifQ==
|
|
@@ -8,10 +8,10 @@ import { AbstractConstructor } from '../mixins.js';
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
*
|
|
11
|
+
* @customElement('my-element)
|
|
11
12
|
* @hostAttributes({
|
|
12
13
|
* role: 'region'
|
|
13
14
|
* })
|
|
14
|
-
* @customElement('my-element)
|
|
15
15
|
* export class MyElement extends LitElement {
|
|
16
16
|
* ...
|
|
17
17
|
* }
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactiveElement } from 'lit';
|
|
2
|
+
import { AbstractConstructor } from '../mixins.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Adds the {@link SbbSlotStateController} to the related element.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
*
|
|
9
|
+
* @customElement('my-element)
|
|
10
|
+
* @slotState()
|
|
11
|
+
* export class MyElement extends LitElement {
|
|
12
|
+
* ...
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* @param attributes A record of attributes to apply to the element.
|
|
16
|
+
*/
|
|
17
|
+
export declare const slotState: () => (target: AbstractConstructor<ReactiveElement>) => void;
|
|
18
|
+
//# sourceMappingURL=slot-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-state.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/slot-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,iBAAkB,mBAAmB,CAAC,eAAe,CAAC,SAM3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isServer } from "lit";
|
|
2
|
+
import { SbbSlotStateController } from "./controllers.js";
|
|
2
3
|
function applyAttributes(instance, attributes) {
|
|
3
4
|
for (const [name, value] of Object.entries(attributes)) {
|
|
4
5
|
if (value) {
|
|
@@ -24,7 +25,15 @@ const hostAttributes = (attributes) => (target) => target.addInitializer((instan
|
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
});
|
|
28
|
+
const slotState = () => (target) => {
|
|
29
|
+
if (!isServer) {
|
|
30
|
+
target.addInitializer(
|
|
31
|
+
(instance) => new SbbSlotStateController(instance)
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
27
35
|
export {
|
|
28
|
-
hostAttributes
|
|
36
|
+
hostAttributes,
|
|
37
|
+
slotState
|
|
29
38
|
};
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy9ob3N0LWF0dHJpYnV0ZXMudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL3Nsb3Qtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vbWl4aW5zLmpzJztcblxuZnVuY3Rpb24gYXBwbHlBdHRyaWJ1dGVzKFxuICBpbnN0YW5jZTogUmVhY3RpdmVFbGVtZW50LFxuICBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPixcbik6IHZvaWQge1xuICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlLnRvZ2dsZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSAhPT0gbnVsbCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXBwbGllcyB0aGUgZ2l2ZW4gYXR0cmlidXRlcyB0byB0aGUgcmVsYXRlZCBlbGVtZW50LlxuICogSWYgYW4gZW1wdHkgc3RyaW5nIGlzIHBhc3NlZCBhcyBhIHZhbHVlLCB0aGUgYXR0cmlidXRlIHdpbGwgYmUgc2V0XG4gKiB3aXRob3V0IHZhbHVlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogQGN1c3RvbUVsZW1lbnQoJ215LWVsZW1lbnQpXG4gKiBAaG9zdEF0dHJpYnV0ZXMoe1xuICogICByb2xlOiAncmVnaW9uJ1xuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAqICAgLi4uXG4gKiB9XG4gKlxuICogQHBhcmFtIGF0dHJpYnV0ZXMgQSByZWNvcmQgb2YgYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGhvc3RBdHRyaWJ1dGVzID1cbiAgKGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+KSA9PiAodGFyZ2V0OiBBYnN0cmFjdENvbnN0cnVjdG9yPFJlYWN0aXZlRWxlbWVudD4pID0+XG4gICAgKHRhcmdldCBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5hZGRJbml0aWFsaXplcigoaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCkgPT4ge1xuICAgICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCBpcyBub3QgYWxsb3dlZCB0byBzZXQgYXR0cmlidXRlcyBkdXJpbmcgY29uc3RydWN0b3IgcGhhc2UuIER1ZSB0byB0aGlzIHdlIHVzZSBhXG4gICAgICAgIC8vIGNvbnRyb2xsZXIgdG8gYXNzaWduIHRoZSBhdHRyaWJ1dGVzIGR1cmluZyBsaXQgaW5pdGlhbGl6YXRpb24gcGhhc2UuXG4gICAgICAgIC8vIEhvc3RDb25uZWN0ZWQgb3IgaG9zdFVwZGF0ZSBjYW4gYmUgY2FsbGVkIGVpdGhlciBvcmRlci4gRHVlIHRvIHRoYXQgd2UgYXBwbHkgaW4gdGhlXG4gICAgICAgIC8vIGZpcnN0IG9jY3VycmVuY2UgYW5kIGRpcmVjdGx5IHJlbW92ZSB0aGUgY29udHJvbGxlciwgc28gaXQncyBvbmx5IGNhbGxlZCBvbmNlLlxuICAgICAgICBpbnN0YW5jZS5hZGRDb250cm9sbGVyKHtcbiAgICAgICAgICBob3N0Q29ubmVjdGVkKCkge1xuICAgICAgICAgICAgYXBwbHlBdHRyaWJ1dGVzKGluc3RhbmNlLCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBob3N0VXBkYXRlKCkge1xuICAgICAgICAgICAgYXBwbHlBdHRyaWJ1dGVzKGluc3RhbmNlLCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBTYmJTbG90U3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vbWl4aW5zLmpzJztcblxuLyoqXG4gKiBBZGRzIHRoZSB7QGxpbmsgU2JiU2xvdFN0YXRlQ29udHJvbGxlcn0gdG8gdGhlIHJlbGF0ZWQgZWxlbWVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIEBjdXN0b21FbGVtZW50KCdteS1lbGVtZW50KVxuICogQHNsb3RTdGF0ZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzIEEgcmVjb3JkIG9mIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBzbG90U3RhdGUgPSAoKSA9PiAodGFyZ2V0OiBBYnN0cmFjdENvbnN0cnVjdG9yPFJlYWN0aXZlRWxlbWVudD4pID0+IHtcbiAgaWYgKCFpc1NlcnZlcikge1xuICAgICh0YXJnZXQgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuYWRkSW5pdGlhbGl6ZXIoXG4gICAgICAoaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCkgPT4gbmV3IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIoaW5zdGFuY2UpLFxuICAgICk7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxTQUFTLGdCQUNQLFVBQ0EsWUFDTTtBQUNOLGFBQVcsQ0FBQyxNQUFNLEtBQUssS0FBSyxPQUFPLFFBQVEsVUFBVSxHQUFHO0FBQ3RELFFBQUksT0FBTztBQUNBLGVBQUEsYUFBYSxNQUFNLEtBQUs7QUFBQSxJQUFBLE9BQzVCO0FBQ0ksZUFBQSxnQkFBZ0IsTUFBTSxVQUFVLElBQUk7QUFBQSxJQUMvQztBQUFBLEVBQ0Y7QUFDRjtBQW1CYSxNQUFBLGlCQUNYLENBQUMsZUFBOEMsQ0FBQyxXQUM3QyxPQUFrQyxlQUFlLENBQUMsYUFBOEI7QUFDL0UsTUFBSSxVQUFVO0FBQ1osb0JBQWdCLFVBQVUsVUFBVTtBQUFBLEVBQUEsT0FDL0I7QUFLTCxhQUFTLGNBQWM7QUFBQSxNQUNyQixnQkFBZ0I7QUFDZCx3QkFBZ0IsVUFBVSxVQUFVO0FBQ3BDLGlCQUFTLGlCQUFpQixJQUFJO0FBQUEsTUFDaEM7QUFBQSxNQUNBLGFBQWE7QUFDWCx3QkFBZ0IsVUFBVSxVQUFVO0FBQ3BDLGlCQUFTLGlCQUFpQixJQUFJO0FBQUEsTUFDaEM7QUFBQSxJQUFBLENBQ0Q7QUFBQSxFQUNIO0FBQ0YsQ0FBQztBQ3JDUSxNQUFBLFlBQVksTUFBTSxDQUFDLFdBQWlEO0FBQy9FLE1BQUksQ0FBQyxVQUFVO0FBQ1osV0FBa0M7QUFBQSxNQUNqQyxDQUFDLGFBQThCLElBQUksdUJBQXVCLFFBQVE7QUFBQSxJQUFBO0FBQUEsRUFFdEU7QUFDRjsifQ==
|
|
@@ -4,16 +4,16 @@ import { DateAdapter } from '../../core/datetime.js';
|
|
|
4
4
|
import { SbbDatepickerElement, SbbInputUpdateEvent } from '../datepicker.js';
|
|
5
5
|
|
|
6
6
|
declare const SbbDatepickerButton_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNegativeMixinType> & typeof SbbButtonBaseElement;
|
|
7
|
-
export declare abstract class SbbDatepickerButton extends SbbDatepickerButton_base {
|
|
7
|
+
export declare abstract class SbbDatepickerButton<T = Date> extends SbbDatepickerButton_base {
|
|
8
8
|
/** Datepicker reference. */
|
|
9
|
-
datePicker?: string | SbbDatepickerElement
|
|
9
|
+
datePicker?: string | SbbDatepickerElement<T>;
|
|
10
10
|
/** The boundary date (min/max) as set in the date-picker's input. */
|
|
11
11
|
protected boundary: string | number | null;
|
|
12
12
|
/** Whether the component is disabled due date equals to boundary date. */
|
|
13
13
|
private _disabled;
|
|
14
14
|
/** Whether the component is disabled due date-picker's input disabled. */
|
|
15
15
|
private _inputDisabled;
|
|
16
|
-
protected datePickerElement?: SbbDatepickerElement | null;
|
|
16
|
+
protected datePickerElement?: SbbDatepickerElement<T> | null;
|
|
17
17
|
private _dateAdapter;
|
|
18
18
|
private _datePickerController;
|
|
19
19
|
private _abort;
|
|
@@ -21,12 +21,12 @@ export declare abstract class SbbDatepickerButton extends SbbDatepickerButton_ba
|
|
|
21
21
|
protected abstract iconName: string;
|
|
22
22
|
protected abstract i18nOffBoundaryDay: Record<string, string>;
|
|
23
23
|
protected abstract i18nSelectOffBoundaryDay: (_currentDate: string) => Record<string, string>;
|
|
24
|
-
protected abstract findAvailableDate: (_date:
|
|
24
|
+
protected abstract findAvailableDate: (_date: T, _dateFilter: ((date: T) => boolean) | null, _dateAdapter: DateAdapter<T>, _boundary: string | number | null) => T;
|
|
25
25
|
protected abstract onInputUpdated(event: CustomEvent<SbbInputUpdateEvent>): void;
|
|
26
26
|
connectedCallback(): void;
|
|
27
27
|
willUpdate(changedProperties: PropertyValues<this>): void;
|
|
28
28
|
disconnectedCallback(): void;
|
|
29
|
-
protected setDisabledState(datepicker: SbbDatepickerElement | null | undefined): void;
|
|
29
|
+
protected setDisabledState(datepicker: SbbDatepickerElement<T> | null | undefined): void;
|
|
30
30
|
private _handleClick;
|
|
31
31
|
private _syncUpstreamProperties;
|
|
32
32
|
private _init;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-button.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/common/datepicker-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"datepicker-button.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/common/datepicker-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,eAAe,CAAC;;AAEvB,8BAAsB,mBAAmB,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,wBAAsC;IAChG,4BAA4B;IACmB,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE7F,qEAAqE;IAC5D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAQ;IAE3D,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAS;IAE1B,0EAA0E;IAC1E,OAAO,CAAC,cAAc,CAAS;IAE/B,SAAS,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IACpE,OAAO,CAAC,YAAY,CAA4E;IAChG,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAA2E;IAE5F,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CACpC,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,IAAI,EAC1C,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,EAC5B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAC9B,CAAC,CAAC;IACP,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAEhE,iBAAiB,IAAI,IAAI;IASzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQzD,oBAAoB,IAAI,IAAI;IAK5C,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAmBxF,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,KAAK;IA+Cb,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,4BAA4B;cAajB,cAAc,IAAI,cAAc;CAGpD"}
|