@skyux/forms 11.16.0 → 11.18.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.
@@ -170,14 +170,14 @@ export class SkyToggleSwitchComponent {
170
170
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkyToggleSwitchComponent, selector: "sky-toggle-switch", inputs: { ariaLabel: "ariaLabel", checked: "checked", disabled: "disabled", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", tabIndex: "tabIndex", labelText: "labelText", labelHidden: ["labelHidden", "labelHidden", booleanAttribute], helpKey: "helpKey" }, outputs: { toggleChange: "toggleChange" }, providers: [
171
171
  SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR,
172
172
  SKY_TOGGLE_SWITCH_VALIDATOR,
173
- ], queries: [{ propertyName: "labelComponents", predicate: SkyToggleSwitchLabelComponent }], ngImport: i0, template: "<span\n class=\"sky-toggle-switch\"\n [ngClass]=\"{\n 'sky-toggle-switch-with-label': hasLabelComponent || labelText\n }\"\n>\n <button\n #toggle=\"skyId\"\n class=\"sky-toggle-switch-button\"\n role=\"switch\"\n type=\"button\"\n skyId\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"labelText || ariaLabel || null\"\n [attr.aria-labelledby]=\"\n !ariaLabel && (hasLabelComponent || labelText) ? labelId : null\n \"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-toggle-switch-checked': checked,\n 'sky-toggle-switch-disabled': disabled\n }\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onButtonBlur()\"\n (click)=\"onButtonClick($event)\"\n >\n <div aria-hidden=\"true\" class=\"sky-toggle-switch-switch\">\n <i\n class=\"sky-toggle-switch-indicator\"\n [ngClass]=\"{\n 'sky-toggle-switch-transition': enableIndicatorAnimation\n }\"\n >&nbsp;</i\n >\n </div>\n </button>\n <span>\n @if (hasLabelComponent || labelText) {\n <label\n class=\"sky-toggle-switch-label\"\n [for]=\"toggle.id\"\n [attr.id]=\"labelId\"\n >\n @if (labelText) {\n @if (!labelHidden) {\n <ng-container>{{ labelText }}</ng-container>\n }\n } @else {\n <ng-content select=\"sky-toggle-switch-label\" />\n }\n </label>\n }\n <span class=\"sky-control-help-container\">\n @if (labelText && (helpPopoverContent || helpKey)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n }\n <ng-content select=\".sky-control-help\" />\n </span>\n </span>\n</span>\n", styles: [".sky-toggle-switch{display:inline-flex;align-items:baseline}.sky-toggle-switch.sky-toggle-switch-with-label{gap:10px}.sky-toggle-switch-switch{border:1px solid #cdcfd2;background-color:#eeeeef;padding:1px;border-radius:24px;flex:none;line-height:1.428571429;width:46px;display:inline-block}.sky-toggle-switch-button{border:none;background:none;margin:0;padding:0;outline:none}.sky-toggle-switch-button:focus-visible .sky-toggle-switch-switch{outline:none;border:solid 2px #1870B8;padding:0}.sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled){cursor:pointer}.sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled):not(:focus-visible) .sky-toggle-switch-switch{border-color:#00b4f1;border-width:2px;padding:0}.sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:#c1e8fb;border-width:2px;padding:0}.sky-toggle-switch-button.sky-toggle-switch-checked:not(:focus-visible,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-color:#00b4f1}.sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-indicator{left:100%}.sky-toggle-switch-button.sky-toggle-switch-disabled{color:var(--sky-text-color-default)}.sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{background-color:#cdcfd2;border-color:transparent}.sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:#eeeeef}.sky-toggle-switch-indicator{height:22px;width:22px;display:block;position:relative;top:0;left:22px;margin-left:-22px;border-radius:100%;box-shadow:0 1px 2px #000000bf;background-color:#fff}.sky-toggle-switch-indicator.sky-toggle-switch-transition{transition:left .15s}:host-context(.sky-theme-modern) .sky-toggle-switch-button .sky-toggle-switch-switch{background-color:#fff;border:1px solid var(--sky-border-color-neutral-medium-dark);width:48px;transition:border-color .15s,box-shadow .15s}:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{cursor:not-allowed}:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch,:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:#ededee}:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{padding:1px}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled).sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-background-color-input-selected);border-color:#1870b8}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):active .sky-toggle-switch-switch,:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):focus-visible .sky-toggle-switch-switch{outline:none;border:solid 2px #1870B8;padding:0}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):focus-visible .sky-toggle-switch-switch{box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):hover:not(:focus-visible) .sky-toggle-switch-switch{padding:1px;border:solid 1px #1870B8}:host-context(.sky-theme-modern) .sky-toggle-switch-indicator{box-shadow:0 1px 2px #00000080}.sky-theme-modern .sky-toggle-switch-button .sky-toggle-switch-switch{background-color:#fff;border:1px solid var(--sky-border-color-neutral-medium-dark);width:48px;transition:border-color .15s,box-shadow .15s}.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{cursor:not-allowed}.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch,.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:#ededee}.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{padding:1px}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled).sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-background-color-input-selected);border-color:#1870b8}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):active .sky-toggle-switch-switch,.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):focus-visible .sky-toggle-switch-switch{outline:none;border:solid 2px #1870B8;padding:0}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):focus-visible .sky-toggle-switch-switch{box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):hover:not(:focus-visible) .sky-toggle-switch-switch{padding:1px;border:solid 1px #1870B8}.sky-theme-modern .sky-toggle-switch-indicator{box-shadow:0 1px 2px #00000080}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-toggle-switch-button{background-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-toggle-switch-button{background-color:#121212}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
173
+ ], queries: [{ propertyName: "labelComponents", predicate: SkyToggleSwitchLabelComponent }], ngImport: i0, template: "<span\n class=\"sky-toggle-switch\"\n [ngClass]=\"{\n 'sky-toggle-switch-with-label': hasLabelComponent || labelText\n }\"\n>\n <button\n #toggle=\"skyId\"\n class=\"sky-toggle-switch-button\"\n role=\"switch\"\n type=\"button\"\n skyId\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"labelText || ariaLabel || null\"\n [attr.aria-labelledby]=\"\n !ariaLabel && (hasLabelComponent || labelText) ? labelId : null\n \"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-toggle-switch-checked': checked,\n 'sky-toggle-switch-disabled': disabled\n }\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onButtonBlur()\"\n (click)=\"onButtonClick($event)\"\n >\n <div aria-hidden=\"true\" class=\"sky-toggle-switch-switch\">\n <i\n class=\"sky-toggle-switch-indicator\"\n [ngClass]=\"{\n 'sky-toggle-switch-transition': enableIndicatorAnimation\n }\"\n >&nbsp;</i\n >\n </div>\n </button>\n <span>\n @if (hasLabelComponent || labelText) {\n <label\n class=\"sky-toggle-switch-label\"\n [for]=\"toggle.id\"\n [attr.id]=\"labelId\"\n >\n @if (labelText) {\n @if (!labelHidden) {\n <ng-container>{{ labelText }}</ng-container>\n }\n } @else {\n <ng-content select=\"sky-toggle-switch-label\" />\n }\n </label>\n }\n <span class=\"sky-control-help-container\">\n @if (labelText && (helpPopoverContent || helpKey)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n }\n <ng-content select=\".sky-control-help\" />\n </span>\n </span>\n</span>\n", styles: [".sky-toggle-switch:not(.sky-theme-modern *){--sky-override-toggle-switch-background-color: #eeeeef;--sky-override-toggle-switch-background-color-disabled: #cdcfd2;--sky-override-toggle-switch-background-color-selected: #c1e8fb;--sky-override-toggle-switch-border: 1px solid #cdcfd2;--sky-override-toggle-switch-border-color-active: #cdcfd2;--sky-override-toggle-switch-border-color-disabled: transparent;--sky-override-toggle-switch-border-color-focus: #1870B8;--sky-override-toggle-switch-border-color-hover: #00b4f1;--sky-override-toggle-switch-border-color-selected: #00b4f1;--sky-override-toggle-switch-border-radius: 24px;--sky-override-toggle-switch-border-width: 1px;--sky-override-toggle-switch-border-width-active: 1px;--sky-override-toggle-switch-border-width-disabled: 2px;--sky-override-toggle-switch-border-width-focus: 2px;--sky-override-toggle-switch-border-width-hover: 2px;--sky-override-toggle-switch-border-width-selected: 2px;--sky-override-toggle-switch-box-shadow-focus: none;--sky-override-toggle-switch-label-gap: 10px;--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-padding: 1px;--sky-override-toggle-switch-padding-active: 1px;--sky-override-toggle-switch-padding-disabled: 0;--sky-override-toggle-switch-padding-focus: 0;--sky-override-toggle-switch-padding-hover: 0;--sky-override-toggle-switch-padding-selected: 0;--sky-override-toggle-switch-pointer-disabled: default;--sky-override-toggle-switch-transition: none;--sky-override-toggle-switch-width: 46px;--sky-override-toggle-switch-indicator-background-color: #ffffff;--sky-override-toggle-switch-indicator-background-color-disabled: #eeeeef;--sky-override-toggle-switch-indicator-border-radius: 100%;--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .75);--sky-override-toggle-switch-indicator-height: 22px;--sky-override-toggle-switch-indicator-left: 22px;--sky-override-toggle-switch-indicator-margin-left: -22px;--sky-override-toggle-switch-indicator-width: 22px}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-toggle-switch{--sky-override-toggle-switch-background-color: var(--modern-color-white);--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-width: var(--modern-size-48);--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .5)}.sky-toggle-switch{display:inline-flex;align-items:baseline}.sky-toggle-switch.sky-toggle-switch-with-label{gap:var(--sky-override-toggle-switch-label-gap, var(--sky-space-gap-label-m))}.sky-toggle-switch .sky-toggle-switch-button{border:none;background:none;margin:0;padding:0;outline:none}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-switch{border:var(--sky-override-toggle-switch-border, var(--sky-border-width-input-base) solid var(--sky-color-border-input-base));background-color:var(--sky-override-toggle-switch-background-color, var(--sky-background-input-base));padding:var(--sky-override-toggle-switch-padding, var(--sky-border-width-input-base));border-radius:var(--sky-override-toggle-switch-border-radius, calc(var(--sky-border-radius-thumb) + var(--sky-space-inset-thumb) * 2)/100%);flex:none;line-height:var(--sky-override-toggle-switch-line-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-width, calc(var(--sky-size-switch) * 2 - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:inline-block;transition:var(--sky-override-toggle-switch-transition, border-color .15s, box-shadow .15s)}.sky-toggle-switch .sky-toggle-switch-button:focus-visible .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-focus, var(--sky-border-width-input-focus));border-color:var(--sky-override-toggle-switch-border-color-focus, var(--sky-color-border-input-focus));padding:var(--sky-override-toggle-switch-padding-focus, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-focus)))}.sky-toggle-switch .sky-toggle-switch-button:focus-visible:not(:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{box-shadow:var(--sky-override-toggle-switch-box-shadow-focus, var(--sky-elevation-focus))}.sky-toggle-switch .sky-toggle-switch-button:active .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-active, var(--sky-border-width-input-active));border-color:var(--sky-override-toggle-switch-border-color-active, var(--sky-color-border-input-active));padding:var(--sky-override-toggle-switch-padding-active, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-active)))}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled){cursor:pointer}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled):not(:focus-visible) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-hover, var(--sky-border-width-input-hover));border-color:var(--sky-override-toggle-switch-border-color-hover, var(--sky-color-border-input-hover));padding:var(--sky-override-toggle-switch-padding-hover, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-selected, var(--sky-color-background-selected-heavy))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:not(:focus-visible,:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-selected, var(--sky-border-width-input-selected));border-color:var(--sky-override-toggle-switch-border-color-selected, var(--sky-color-border-selected));padding:var(--sky-override-toggle-switch-padding-selected, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-indicator{left:100%}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled{color:var(--sky-color-text-default)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-disabled, var(--sky-color-background-input-disabled));border-color:var(--sky-override-toggle-switch-border-color-disabled, var(--sky-color-border-input-disabled));border-width:var(--sky-override-toggle-switch-border-width-disabled, var(--sky-border-width-input-disabled));padding:var(--sky-override-toggle-switch-padding-disabled, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-disabled)));cursor:var(--sky-override-toggle-switch-pointer-disabled, not-allowed)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:var(--sky-override-toggle-switch-indicator-background-color-disabled, var(--sky-color-background-thumb-disabled))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator{height:var(--sky-override-toggle-switch-indicator-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-indicator-width, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:block;position:relative;top:0;left:var(--sky-override-toggle-switch-indicator-left, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));margin-left:var(--sky-override-toggle-switch-indicator-margin-left, calc((var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)) * -1));border-radius:var(--sky-override-toggle-switch-indicator-border-radius, var(--sky-border-radius-thumb));box-shadow:var(--sky-override-toggle-switch-indicator-box-shadow, var(--sky-elevation-raised-100));background-color:var(--sky-override-toggle-switch-indicator-background-color, var(--sky-color-background-thumb-base))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator.sky-toggle-switch-transition{transition:left .15s}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
174
  }
175
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyToggleSwitchComponent, decorators: [{
176
176
  type: Component,
177
177
  args: [{ selector: 'sky-toggle-switch', providers: [
178
178
  SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR,
179
179
  SKY_TOGGLE_SWITCH_VALIDATOR,
180
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"sky-toggle-switch\"\n [ngClass]=\"{\n 'sky-toggle-switch-with-label': hasLabelComponent || labelText\n }\"\n>\n <button\n #toggle=\"skyId\"\n class=\"sky-toggle-switch-button\"\n role=\"switch\"\n type=\"button\"\n skyId\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"labelText || ariaLabel || null\"\n [attr.aria-labelledby]=\"\n !ariaLabel && (hasLabelComponent || labelText) ? labelId : null\n \"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-toggle-switch-checked': checked,\n 'sky-toggle-switch-disabled': disabled\n }\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onButtonBlur()\"\n (click)=\"onButtonClick($event)\"\n >\n <div aria-hidden=\"true\" class=\"sky-toggle-switch-switch\">\n <i\n class=\"sky-toggle-switch-indicator\"\n [ngClass]=\"{\n 'sky-toggle-switch-transition': enableIndicatorAnimation\n }\"\n >&nbsp;</i\n >\n </div>\n </button>\n <span>\n @if (hasLabelComponent || labelText) {\n <label\n class=\"sky-toggle-switch-label\"\n [for]=\"toggle.id\"\n [attr.id]=\"labelId\"\n >\n @if (labelText) {\n @if (!labelHidden) {\n <ng-container>{{ labelText }}</ng-container>\n }\n } @else {\n <ng-content select=\"sky-toggle-switch-label\" />\n }\n </label>\n }\n <span class=\"sky-control-help-container\">\n @if (labelText && (helpPopoverContent || helpKey)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n }\n <ng-content select=\".sky-control-help\" />\n </span>\n </span>\n</span>\n", styles: [".sky-toggle-switch{display:inline-flex;align-items:baseline}.sky-toggle-switch.sky-toggle-switch-with-label{gap:10px}.sky-toggle-switch-switch{border:1px solid #cdcfd2;background-color:#eeeeef;padding:1px;border-radius:24px;flex:none;line-height:1.428571429;width:46px;display:inline-block}.sky-toggle-switch-button{border:none;background:none;margin:0;padding:0;outline:none}.sky-toggle-switch-button:focus-visible .sky-toggle-switch-switch{outline:none;border:solid 2px #1870B8;padding:0}.sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled){cursor:pointer}.sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled):not(:focus-visible) .sky-toggle-switch-switch{border-color:#00b4f1;border-width:2px;padding:0}.sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:#c1e8fb;border-width:2px;padding:0}.sky-toggle-switch-button.sky-toggle-switch-checked:not(:focus-visible,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-color:#00b4f1}.sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-indicator{left:100%}.sky-toggle-switch-button.sky-toggle-switch-disabled{color:var(--sky-text-color-default)}.sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{background-color:#cdcfd2;border-color:transparent}.sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:#eeeeef}.sky-toggle-switch-indicator{height:22px;width:22px;display:block;position:relative;top:0;left:22px;margin-left:-22px;border-radius:100%;box-shadow:0 1px 2px #000000bf;background-color:#fff}.sky-toggle-switch-indicator.sky-toggle-switch-transition{transition:left .15s}:host-context(.sky-theme-modern) .sky-toggle-switch-button .sky-toggle-switch-switch{background-color:#fff;border:1px solid var(--sky-border-color-neutral-medium-dark);width:48px;transition:border-color .15s,box-shadow .15s}:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{cursor:not-allowed}:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch,:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:#ededee}:host-context(.sky-theme-modern) .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{padding:1px}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled).sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-background-color-input-selected);border-color:#1870b8}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):active .sky-toggle-switch-switch,:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):focus-visible .sky-toggle-switch-switch{outline:none;border:solid 2px #1870B8;padding:0}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):focus-visible .sky-toggle-switch-switch{box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):hover:not(:focus-visible) .sky-toggle-switch-switch{padding:1px;border:solid 1px #1870B8}:host-context(.sky-theme-modern) .sky-toggle-switch-indicator{box-shadow:0 1px 2px #00000080}.sky-theme-modern .sky-toggle-switch-button .sky-toggle-switch-switch{background-color:#fff;border:1px solid var(--sky-border-color-neutral-medium-dark);width:48px;transition:border-color .15s,box-shadow .15s}.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{cursor:not-allowed}.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch,.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:#ededee}.sky-theme-modern .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{padding:1px}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled).sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-background-color-input-selected);border-color:#1870b8}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):active .sky-toggle-switch-switch,.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):focus-visible .sky-toggle-switch-switch{outline:none;border:solid 2px #1870B8;padding:0}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):focus-visible .sky-toggle-switch-switch{box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-toggle-switch-button:not(.sky-toggle-switch-disabled):not(:active):hover:not(:focus-visible) .sky-toggle-switch-switch{padding:1px;border:solid 1px #1870B8}.sky-theme-modern .sky-toggle-switch-indicator{box-shadow:0 1px 2px #00000080}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-toggle-switch-button{background-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-toggle-switch-button{background-color:#121212}\n"] }]
180
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"sky-toggle-switch\"\n [ngClass]=\"{\n 'sky-toggle-switch-with-label': hasLabelComponent || labelText\n }\"\n>\n <button\n #toggle=\"skyId\"\n class=\"sky-toggle-switch-button\"\n role=\"switch\"\n type=\"button\"\n skyId\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"labelText || ariaLabel || null\"\n [attr.aria-labelledby]=\"\n !ariaLabel && (hasLabelComponent || labelText) ? labelId : null\n \"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-toggle-switch-checked': checked,\n 'sky-toggle-switch-disabled': disabled\n }\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onButtonBlur()\"\n (click)=\"onButtonClick($event)\"\n >\n <div aria-hidden=\"true\" class=\"sky-toggle-switch-switch\">\n <i\n class=\"sky-toggle-switch-indicator\"\n [ngClass]=\"{\n 'sky-toggle-switch-transition': enableIndicatorAnimation\n }\"\n >&nbsp;</i\n >\n </div>\n </button>\n <span>\n @if (hasLabelComponent || labelText) {\n <label\n class=\"sky-toggle-switch-label\"\n [for]=\"toggle.id\"\n [attr.id]=\"labelId\"\n >\n @if (labelText) {\n @if (!labelHidden) {\n <ng-container>{{ labelText }}</ng-container>\n }\n } @else {\n <ng-content select=\"sky-toggle-switch-label\" />\n }\n </label>\n }\n <span class=\"sky-control-help-container\">\n @if (labelText && (helpPopoverContent || helpKey)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n }\n <ng-content select=\".sky-control-help\" />\n </span>\n </span>\n</span>\n", styles: [".sky-toggle-switch:not(.sky-theme-modern *){--sky-override-toggle-switch-background-color: #eeeeef;--sky-override-toggle-switch-background-color-disabled: #cdcfd2;--sky-override-toggle-switch-background-color-selected: #c1e8fb;--sky-override-toggle-switch-border: 1px solid #cdcfd2;--sky-override-toggle-switch-border-color-active: #cdcfd2;--sky-override-toggle-switch-border-color-disabled: transparent;--sky-override-toggle-switch-border-color-focus: #1870B8;--sky-override-toggle-switch-border-color-hover: #00b4f1;--sky-override-toggle-switch-border-color-selected: #00b4f1;--sky-override-toggle-switch-border-radius: 24px;--sky-override-toggle-switch-border-width: 1px;--sky-override-toggle-switch-border-width-active: 1px;--sky-override-toggle-switch-border-width-disabled: 2px;--sky-override-toggle-switch-border-width-focus: 2px;--sky-override-toggle-switch-border-width-hover: 2px;--sky-override-toggle-switch-border-width-selected: 2px;--sky-override-toggle-switch-box-shadow-focus: none;--sky-override-toggle-switch-label-gap: 10px;--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-padding: 1px;--sky-override-toggle-switch-padding-active: 1px;--sky-override-toggle-switch-padding-disabled: 0;--sky-override-toggle-switch-padding-focus: 0;--sky-override-toggle-switch-padding-hover: 0;--sky-override-toggle-switch-padding-selected: 0;--sky-override-toggle-switch-pointer-disabled: default;--sky-override-toggle-switch-transition: none;--sky-override-toggle-switch-width: 46px;--sky-override-toggle-switch-indicator-background-color: #ffffff;--sky-override-toggle-switch-indicator-background-color-disabled: #eeeeef;--sky-override-toggle-switch-indicator-border-radius: 100%;--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .75);--sky-override-toggle-switch-indicator-height: 22px;--sky-override-toggle-switch-indicator-left: 22px;--sky-override-toggle-switch-indicator-margin-left: -22px;--sky-override-toggle-switch-indicator-width: 22px}:host-context(.sky-theme-modern:not(.sky-theme-brand-blackbaud)) .sky-toggle-switch{--sky-override-toggle-switch-background-color: var(--modern-color-white);--sky-override-toggle-switch-line-height: calc(20 / 14);--sky-override-toggle-switch-width: var(--modern-size-48);--sky-override-toggle-switch-indicator-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, .5)}.sky-toggle-switch{display:inline-flex;align-items:baseline}.sky-toggle-switch.sky-toggle-switch-with-label{gap:var(--sky-override-toggle-switch-label-gap, var(--sky-space-gap-label-m))}.sky-toggle-switch .sky-toggle-switch-button{border:none;background:none;margin:0;padding:0;outline:none}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-switch{border:var(--sky-override-toggle-switch-border, var(--sky-border-width-input-base) solid var(--sky-color-border-input-base));background-color:var(--sky-override-toggle-switch-background-color, var(--sky-background-input-base));padding:var(--sky-override-toggle-switch-padding, var(--sky-border-width-input-base));border-radius:var(--sky-override-toggle-switch-border-radius, calc(var(--sky-border-radius-thumb) + var(--sky-space-inset-thumb) * 2)/100%);flex:none;line-height:var(--sky-override-toggle-switch-line-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-width, calc(var(--sky-size-switch) * 2 - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:inline-block;transition:var(--sky-override-toggle-switch-transition, border-color .15s, box-shadow .15s)}.sky-toggle-switch .sky-toggle-switch-button:focus-visible .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-focus, var(--sky-border-width-input-focus));border-color:var(--sky-override-toggle-switch-border-color-focus, var(--sky-color-border-input-focus));padding:var(--sky-override-toggle-switch-padding-focus, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-focus)))}.sky-toggle-switch .sky-toggle-switch-button:focus-visible:not(:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{box-shadow:var(--sky-override-toggle-switch-box-shadow-focus, var(--sky-elevation-focus))}.sky-toggle-switch .sky-toggle-switch-button:active .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-active, var(--sky-border-width-input-active));border-color:var(--sky-override-toggle-switch-border-color-active, var(--sky-color-border-input-active));padding:var(--sky-override-toggle-switch-padding-active, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-active)))}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled){cursor:pointer}.sky-toggle-switch .sky-toggle-switch-button:hover:not(.sky-toggle-switch-disabled):not(:focus-visible) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-hover, var(--sky-border-width-input-hover));border-color:var(--sky-override-toggle-switch-border-color-hover, var(--sky-color-border-input-hover));padding:var(--sky-override-toggle-switch-padding-hover, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-selected, var(--sky-color-background-selected-heavy))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked:not(:focus-visible,:active,.sky-toggle-switch-disabled) .sky-toggle-switch-switch{border-width:var(--sky-override-toggle-switch-border-width-selected, var(--sky-border-width-input-selected));border-color:var(--sky-override-toggle-switch-border-color-selected, var(--sky-color-border-selected));padding:var(--sky-override-toggle-switch-padding-selected, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-base)))}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-checked .sky-toggle-switch-indicator{left:100%}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled{color:var(--sky-color-text-default)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-switch{background-color:var(--sky-override-toggle-switch-background-color-disabled, var(--sky-color-background-input-disabled));border-color:var(--sky-override-toggle-switch-border-color-disabled, var(--sky-color-border-input-disabled));border-width:var(--sky-override-toggle-switch-border-width-disabled, var(--sky-border-width-input-disabled));padding:var(--sky-override-toggle-switch-padding-disabled, calc(var(--sky-space-inset-thumb) * 2 - var(--sky-border-width-input-disabled)));cursor:var(--sky-override-toggle-switch-pointer-disabled, not-allowed)}.sky-toggle-switch .sky-toggle-switch-button.sky-toggle-switch-disabled .sky-toggle-switch-indicator{background-color:var(--sky-override-toggle-switch-indicator-background-color-disabled, var(--sky-color-background-thumb-disabled))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator{height:var(--sky-override-toggle-switch-indicator-height, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));width:var(--sky-override-toggle-switch-indicator-width, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));display:block;position:relative;top:0;left:var(--sky-override-toggle-switch-indicator-left, calc(var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)));margin-left:var(--sky-override-toggle-switch-indicator-margin-left, calc((var(--sky-size-switch) - (var(--sky-border-width-input-base) * 2 + var(--sky-space-inset-thumb) * 2)) * -1));border-radius:var(--sky-override-toggle-switch-indicator-border-radius, var(--sky-border-radius-thumb));box-shadow:var(--sky-override-toggle-switch-indicator-box-shadow, var(--sky-elevation-raised-100));background-color:var(--sky-override-toggle-switch-indicator-background-color, var(--sky-color-background-thumb-base))}.sky-toggle-switch .sky-toggle-switch-button .sky-toggle-switch-indicator.sky-toggle-switch-transition{transition:left .15s}\n"] }]
181
181
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyIdService }], propDecorators: { ariaLabel: [{
182
182
  type: Input
183
183
  }], checked: [{
@@ -11,8 +11,8 @@ export class SkyCheckboxGroupHarness extends SkyComponentHarness {
11
11
  */
12
12
  static { this.hostSelector = 'sky-checkbox-group'; }
13
13
  #getCheckboxes = this.locatorForAll(SkyCheckboxHarness);
14
- #getHeading = this.locatorFor('.sky-control-label');
15
- #getHeadingWrapper = this.locatorFor('.sky-control-label span');
14
+ #getHeading = this.locatorFor('.sky-checkbox-group-heading');
15
+ #getHeadingWrapper = this.locatorFor('.sky-checkbox-group-legend');
16
16
  #getHintText = this.locatorForOptional('.sky-checkbox-group-hint-text');
17
17
  #getLegendDefault = this.locatorForOptional('legend .sky-checkbox-group-heading-text');
18
18
  #getLegendH3 = this.locatorForOptional('legend h3');
@@ -69,7 +69,7 @@ export class SkyCheckboxGroupHarness extends SkyComponentHarness {
69
69
  * Whether the heading is hidden.
70
70
  */
71
71
  async getHeadingHidden() {
72
- return (await this.#getHeading()).hasClass('sky-screen-reader-only');
72
+ return (await this.#getHeadingWrapper()).hasClass('sky-screen-reader-only');
73
73
  }
74
74
  /**
75
75
  * The semantic heading level used for the checkbox group. Returns undefined if heading level is not set.
@@ -113,8 +113,8 @@ export class SkyCheckboxGroupHarness extends SkyComponentHarness {
113
113
  * Whether the checkbox group is required.
114
114
  */
115
115
  async getRequired() {
116
- const headingWrapper = await this.#getHeadingWrapper();
117
- return await headingWrapper.hasClass('sky-control-label-required');
116
+ const heading = await this.#getHeading();
117
+ return await heading.hasClass('sky-control-label-required');
118
118
  }
119
119
  /**
120
120
  * Whether the checkbox group is stacked.
@@ -125,8 +125,8 @@ export class SkyCheckboxGroupHarness extends SkyComponentHarness {
125
125
  (await this.#getLegendH4()) ||
126
126
  (await this.#getLegendH5());
127
127
  const label = await this.#getLegendDefault();
128
- return (((await host.hasClass('sky-margin-stacked-lg')) && !!label) ||
129
- ((await host.hasClass('sky-margin-stacked-xl')) && !!heading));
128
+ return (((await host.hasClass('sky-checkbox-stacked-no-heading')) && !!label) ||
129
+ ((await host.hasClass('sky-checkbox-stacked-heading')) && !!heading));
130
130
  }
131
131
  /**
132
132
  * Whether all the checkboxes in a required group are unchecked.
@@ -147,7 +147,7 @@ export class SkyCheckboxGroupHarness extends SkyComponentHarness {
147
147
  }
148
148
  async #getHelpInline() {
149
149
  const harness = await this.locatorForOptional(SkyHelpInlineHarness.with({
150
- ancestor: '.sky-checkbox-group > .sky-control-label',
150
+ ancestor: '.sky-checkbox-group > .sky-checkbox-group-legend',
151
151
  }))();
152
152
  if (harness) {
153
153
  return harness;
@@ -155,4 +155,4 @@ export class SkyCheckboxGroupHarness extends SkyComponentHarness {
155
155
  throw Error('No help inline found.');
156
156
  }
157
157
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9jaGVja2JveC9jaGVja2JveC1ncm91cC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBTTFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLG1CQUFtQjtJQUM5RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7SUFFbEQsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3BELGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNoRSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDeEUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUN6Qyx5Q0FBeUMsQ0FDMUMsQ0FBQztJQUNGLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELGlCQUFp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LFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQzFCLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUN4QixTQUFTLEVBQUUsNEJBQTRCO1NBQ3hDLENBQUMsQ0FDSCxFQUFFLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQzNDLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUN4QixRQUFRLEVBQUUsMENBQTBDO1NBQ3JELENBQUMsQ0FDSCxFQUFFLENBQUM7UUFFSixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbmltcG9ydCB7XG4gIFNreUNoZWNrYm94R3JvdXBIZWFkaW5nTGV2ZWwsXG4gIFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGUsXG59IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MnO1xuXG5pbXBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2NoZWNrYm94LWdyb3VwLWhhcm5lc3MtZmlsdGVycyc7XG5pbXBvcnQgeyBTa3lDaGVja2JveEhhcm5lc3MgfSBmcm9tICcuL2NoZWNrYm94LWhhcm5lc3MnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBjaGVja2JveCBncm91cCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lDaGVja2JveEdyb3VwSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktY2hlY2tib3gtZ3JvdXAnO1xuXG4gICNnZXRDaGVja2JveGVzID0gdGhpcy5sb2NhdG9yRm9yQWxsKFNreUNoZWNrYm94SGFybmVzcyk7XG4gICNnZXRIZWFkaW5nID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWNvbnRyb2wtbGFiZWwnKTtcbiAgI2dldEhlYWRpbmdXcmFwcGVyID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWNvbnRyb2wtbGFiZWwgc3BhbicpO1xuICAjZ2V0SGludFRleHQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnLnNreS1jaGVja2JveC1ncm91cC1oaW50LXRleHQnKTtcbiAgI2dldExlZ2VuZERlZmF1bHQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICAnbGVnZW5kIC5za3ktY2hlY2tib3gtZ3JvdXAtaGVhZGluZy10ZXh0JyxcbiAgKTtcbiAgI2dldExlZ2VuZEgzID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJ2xlZ2VuZCBoMycpO1xuICAjZ2V0TGVnZW5kSDQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnbGVnZW5kIGg0Jyk7XG4gICNnZXRMZWdlbmRINSA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdsZWdlbmQgaDUnKTtcbiAgI2dldExlZ2VuZEhlYWRpbmcgPSB0aGlzLmxvY2F0b3JGb3IoXG4gICAgJ2xlZ2VuZCBoMyxoNCxoNSwuc2t5LWNoZWNrYm94LWdyb3VwLWhlYWRpbmctdGV4dCcsXG4gICk7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreUNoZWNrYm94R3JvdXBIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5Q2hlY2tib3hHcm91cEhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreUNoZWNrYm94R3JvdXBIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreUNoZWNrYm94R3JvdXBIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGhlbHAgaW5saW5lIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0hlbHBJbmxpbmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBhcnJheSBvZiBoYXJuZXNzZXMgZm9yIHRoZSBjaGVja2JveGVzIGluIHRoZSBjaGVja2JveCBncm91cC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRDaGVja2JveGVzKCk6IFByb21pc2U8U2t5Q2hlY2tib3hIYXJuZXNzW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jZ2V0Q2hlY2tib3hlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyQ29udGVudCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyQ29udGVudCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlclRpdGxlKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmdldFBvcG92ZXJUaXRsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGNoZWNrYm94IGdyb3VwJ3MgaGVhZGluZyB0ZXh0LiBJZiBgaGVhZGluZ0hpZGRlbmAgaXMgdHJ1ZSxcbiAgICogdGhlIHRleHQgd2lsbCBzdGlsbCBiZSByZXR1cm5lZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWFkaW5nVGV4dCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSGVhZGluZygpKS50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY2hlY2tib3ggZ3JvdXAncyBoaW50IHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGludFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBoaW50VGV4dCA9IGF3YWl0IHRoaXMuI2dldEhpbnRUZXh0KCk7XG5cbiAgICByZXR1cm4gKGF3YWl0IGhpbnRUZXh0Py50ZXh0KCkpPy50cmltKCkgPz8gJyc7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaGVhZGluZyBpcyBoaWRkZW4uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ0hpZGRlbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldEhlYWRpbmcoKSkuaGFzQ2xhc3MoJ3NreS1zY3JlZW4tcmVhZGVyLW9ubHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2VtYW50aWMgaGVhZGluZyBsZXZlbCB1c2VkIGZvciB0aGUgY2hlY2tib3ggZ3JvdXAuIFJldHVybnMgdW5kZWZpbmVkIGlmIGhlYWRpbmcgbGV2ZWwgaXMgbm90IHNldC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWFkaW5nTGV2ZWwoKTogUHJvbWlzZTxcbiAgICBTa3lDaGVja2JveEdyb3VwSGVhZGluZ0xldmVsIHwgdW5kZWZpbmVkXG4gID4ge1xuICAgIGNvbnN0IGhlYWRpbmcgPSBhd2FpdCB0aGlzLiNnZXRMZWdlbmRIZWFkaW5nKCk7XG4gICAgY29uc3QgaDMgPSBhd2FpdCBoZWFkaW5nLm1hdGNoZXNTZWxlY3RvcignaDMnKTtcbiAgICBjb25zdCBoNCA9IGF3YWl0IGhlYWRpbmcubWF0Y2hlc1NlbGVjdG9yKCdoNCcpO1xuICAgIGNvbnN0IGg1ID0gYXdhaXQgaGVhZGluZy5tYXRjaGVzU2VsZWN0b3IoJ2g1Jyk7XG5cbiAgICBpZiAoaDMpIHtcbiAgICAgIHJldHVybiAzO1xuICAgIH0gZWxzZSBpZiAoaDQpIHtcbiAgICAgIHJldHVybiA0O1xuICAgIH0gZWxzZSBpZiAoaDUpIHtcbiAgICAgIHJldHVybiA1O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBzdHlsZSB1c2VkIGZvciB0aGUgY2hlY2tib3ggZ3JvdXAuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ1N0eWxlKCk6IFByb21pc2U8U2t5Q2hlY2tib3hHcm91cEhlYWRpbmdTdHlsZT4ge1xuICAgIGNvbnN0IGhlYWRpbmcgPSBhd2FpdCB0aGlzLiNnZXRMZWdlbmRIZWFkaW5nKCk7XG5cbiAgICBjb25zdCBpc0hlYWRpbmdTdHlsZTMgPSBhd2FpdCBoZWFkaW5nLmhhc0NsYXNzKCdza3ktZm9udC1oZWFkaW5nLTMnKTtcbiAgICBjb25zdCBpc0hlYWRpbmdTdHlsZTQgPSBhd2FpdCBoZWFkaW5nLmhhc0NsYXNzKCdza3ktZm9udC1oZWFkaW5nLTQnKTtcblxuICAgIGlmIChpc0hlYWRpbmdTdHlsZTMpIHtcbiAgICAgIHJldHVybiAzO1xuICAgIH0gZWxzZSBpZiAoaXNIZWFkaW5nU3R5bGU0KSB7XG4gICAgICByZXR1cm4gNDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGdyb3VwIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFJlcXVpcmVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGhlYWRpbmdXcmFwcGVyID0gYXdhaXQgdGhpcy4jZ2V0SGVhZGluZ1dyYXBwZXIoKTtcblxuICAgIHJldHVybiBhd2FpdCBoZWFkaW5nV3JhcHBlci5oYXNDbGFzcygnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBncm91cCBpcyBzdGFja2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFN0YWNrZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgaG9zdCA9IGF3YWl0IHRoaXMuaG9zdCgpO1xuICAgIGNvbnN0IGhlYWRpbmcgPVxuICAgICAgKGF3YWl0IHRoaXMuI2dldExlZ2VuZEgzKCkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSDQoKSkgfHxcbiAgICAgIChhd2FpdCB0aGlzLiNnZXRMZWdlbmRINSgpKTtcbiAgICBjb25zdCBsYWJlbCA9IGF3YWl0IHRoaXMuI2dldExlZ2VuZERlZmF1bHQoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAoKGF3YWl0IGhvc3QuaGFzQ2xhc3MoJ3NreS1tYXJnaW4tc3RhY2tlZC1sZycpKSAmJiAhIWxhYmVsKSB8fFxuICAgICAgKChhd2FpdCBob3N0Lmhhc0NsYXNzKCdza3ktbWFyZ2luLXN0YWNrZWQteGwnKSkgJiYgISFoZWFkaW5nKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBhbGwgdGhlIGNoZWNrYm94ZXMgaW4gYSByZXF1aXJlZCBncm91cCBhcmUgdW5jaGVja2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc1JlcXVpcmVkRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3JzKCkpLmhhc0Vycm9yKCdyZXF1aXJlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGdyb3VwIGhhcyBlcnJvcnMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzRXJyb3IoZXJyb3JOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcnMoKSkuaGFzRXJyb3IoZXJyb3JOYW1lKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRGb3JtRXJyb3JzKCk6IFByb21pc2U8U2t5Rm9ybUVycm9yc0hhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFxuICAgICAgU2t5Rm9ybUVycm9yc0hhcm5lc3Mud2l0aCh7XG4gICAgICAgIGRhdGFTa3lJZDogJ2NoZWNrYm94LWdyb3VwLWZvcm0tZXJyb3JzJyxcbiAgICAgIH0pLFxuICAgICkoKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRIZWxwSW5saW5lKCk6IFByb21pc2U8U2t5SGVscElubGluZUhhcm5lc3M+IHtcbiAgICBjb25zdCBoYXJuZXNzID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICBTa3lIZWxwSW5saW5lSGFybmVzcy53aXRoKHtcbiAgICAgICAgYW5jZXN0b3I6ICcuc2t5LWNoZWNrYm94LWdyb3VwID4gLnNreS1jb250cm9sLWxhYmVsJyxcbiAgICAgIH0pLFxuICAgICkoKTtcblxuICAgIGlmIChoYXJuZXNzKSB7XG4gICAgICByZXR1cm4gaGFybmVzcztcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcignTm8gaGVscCBpbmxpbmUgZm91bmQuJyk7XG4gIH1cbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9jaGVja2JveC9jaGVja2JveC1ncm91cC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBTTFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLG1CQUFtQjtJQUM5RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7SUFFbEQsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzdELGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNuRSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDeEUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUN6Qyx5Q0FBeUMsQ0FDMUMsQ0FBQztJQUNGLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELGlCQUFp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LFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQzFCLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUN4QixTQUFTLEVBQUUsNEJBQTRCO1NBQ3hDLENBQUMsQ0FDSCxFQUFFLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQzNDLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUN4QixRQUFRLEVBQUUsa0RBQWtEO1NBQzdELENBQUMsQ0FDSCxFQUFFLENBQUM7UUFFSixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG54L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcbmltcG9ydCB7XG4gIFNreUNoZWNrYm94R3JvdXBIZWFkaW5nTGV2ZWwsXG4gIFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGUsXG59IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MnO1xuXG5pbXBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2NoZWNrYm94LWdyb3VwLWhhcm5lc3MtZmlsdGVycyc7XG5pbXBvcnQgeyBTa3lDaGVja2JveEhhcm5lc3MgfSBmcm9tICcuL2NoZWNrYm94LWhhcm5lc3MnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBjaGVja2JveCBncm91cCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lDaGVja2JveEdyb3VwSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktY2hlY2tib3gtZ3JvdXAnO1xuXG4gICNnZXRDaGVja2JveGVzID0gdGhpcy5sb2NhdG9yRm9yQWxsKFNreUNoZWNrYm94SGFybmVzcyk7XG4gICNnZXRIZWFkaW5nID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWNoZWNrYm94LWdyb3VwLWhlYWRpbmcnKTtcbiAgI2dldEhlYWRpbmdXcmFwcGVyID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWNoZWNrYm94LWdyb3VwLWxlZ2VuZCcpO1xuICAjZ2V0SGludFRleHQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnLnNreS1jaGVja2JveC1ncm91cC1oaW50LXRleHQnKTtcbiAgI2dldExlZ2VuZERlZmF1bHQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICAnbGVnZW5kIC5za3ktY2hlY2tib3gtZ3JvdXAtaGVhZGluZy10ZXh0JyxcbiAgKTtcbiAgI2dldExlZ2VuZEgzID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJ2xlZ2VuZCBoMycpO1xuICAjZ2V0TGVnZW5kSDQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnbGVnZW5kIGg0Jyk7XG4gICNnZXRMZWdlbmRINSA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdsZWdlbmQgaDUnKTtcbiAgI2dldExlZ2VuZEhlYWRpbmcgPSB0aGlzLmxvY2F0b3JGb3IoXG4gICAgJ2xlZ2VuZCBoMyxoNCxoNSwuc2t5LWNoZWNrYm94LWdyb3VwLWhlYWRpbmctdGV4dCcsXG4gICk7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreUNoZWNrYm94R3JvdXBIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5Q2hlY2tib3hHcm91cEhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreUNoZWNrYm94R3JvdXBIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreUNoZWNrYm94R3JvdXBIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGhlbHAgaW5saW5lIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0hlbHBJbmxpbmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBhcnJheSBvZiBoYXJuZXNzZXMgZm9yIHRoZSBjaGVja2JveGVzIGluIHRoZSBjaGVja2JveCBncm91cC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRDaGVja2JveGVzKCk6IFByb21pc2U8U2t5Q2hlY2tib3hIYXJuZXNzW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jZ2V0Q2hlY2tib3hlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyQ29udGVudCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyQ29udGVudCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlclRpdGxlKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmdldFBvcG92ZXJUaXRsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGNoZWNrYm94IGdyb3VwJ3MgaGVhZGluZyB0ZXh0LiBJZiBgaGVhZGluZ0hpZGRlbmAgaXMgdHJ1ZSxcbiAgICogdGhlIHRleHQgd2lsbCBzdGlsbCBiZSByZXR1cm5lZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWFkaW5nVGV4dCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSGVhZGluZygpKS50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY2hlY2tib3ggZ3JvdXAncyBoaW50IHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGludFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBoaW50VGV4dCA9IGF3YWl0IHRoaXMuI2dldEhpbnRUZXh0KCk7XG5cbiAgICByZXR1cm4gKGF3YWl0IGhpbnRUZXh0Py50ZXh0KCkpPy50cmltKCkgPz8gJyc7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaGVhZGluZyBpcyBoaWRkZW4uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ0hpZGRlbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldEhlYWRpbmdXcmFwcGVyKCkpLmhhc0NsYXNzKCdza3ktc2NyZWVuLXJlYWRlci1vbmx5Jyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHNlbWFudGljIGhlYWRpbmcgbGV2ZWwgdXNlZCBmb3IgdGhlIGNoZWNrYm94IGdyb3VwLiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBoZWFkaW5nIGxldmVsIGlzIG5vdCBzZXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ0xldmVsKCk6IFByb21pc2U8XG4gICAgU2t5Q2hlY2tib3hHcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZFxuICA+IHtcbiAgICBjb25zdCBoZWFkaW5nID0gYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSGVhZGluZygpO1xuICAgIGNvbnN0IGgzID0gYXdhaXQgaGVhZGluZy5tYXRjaGVzU2VsZWN0b3IoJ2gzJyk7XG4gICAgY29uc3QgaDQgPSBhd2FpdCBoZWFkaW5nLm1hdGNoZXNTZWxlY3RvcignaDQnKTtcbiAgICBjb25zdCBoNSA9IGF3YWl0IGhlYWRpbmcubWF0Y2hlc1NlbGVjdG9yKCdoNScpO1xuXG4gICAgaWYgKGgzKSB7XG4gICAgICByZXR1cm4gMztcbiAgICB9IGVsc2UgaWYgKGg0KSB7XG4gICAgICByZXR1cm4gNDtcbiAgICB9IGVsc2UgaWYgKGg1KSB7XG4gICAgICByZXR1cm4gNTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhlYWRpbmcgc3R5bGUgdXNlZCBmb3IgdGhlIGNoZWNrYm94IGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlYWRpbmdTdHlsZSgpOiBQcm9taXNlPFNreUNoZWNrYm94R3JvdXBIZWFkaW5nU3R5bGU+IHtcbiAgICBjb25zdCBoZWFkaW5nID0gYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSGVhZGluZygpO1xuXG4gICAgY29uc3QgaXNIZWFkaW5nU3R5bGUzID0gYXdhaXQgaGVhZGluZy5oYXNDbGFzcygnc2t5LWZvbnQtaGVhZGluZy0zJyk7XG4gICAgY29uc3QgaXNIZWFkaW5nU3R5bGU0ID0gYXdhaXQgaGVhZGluZy5oYXNDbGFzcygnc2t5LWZvbnQtaGVhZGluZy00Jyk7XG5cbiAgICBpZiAoaXNIZWFkaW5nU3R5bGUzKSB7XG4gICAgICByZXR1cm4gMztcbiAgICB9IGVsc2UgaWYgKGlzSGVhZGluZ1N0eWxlNCkge1xuICAgICAgcmV0dXJuIDQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA1O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBncm91cCBpcyByZXF1aXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRSZXF1aXJlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBoZWFkaW5nID0gYXdhaXQgdGhpcy4jZ2V0SGVhZGluZygpO1xuXG4gICAgcmV0dXJuIGF3YWl0IGhlYWRpbmcuaGFzQ2xhc3MoJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2hlY2tib3ggZ3JvdXAgaXMgc3RhY2tlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTdGFja2VkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGhvc3QgPSBhd2FpdCB0aGlzLmhvc3QoKTtcbiAgICBjb25zdCBoZWFkaW5nID1cbiAgICAgIChhd2FpdCB0aGlzLiNnZXRMZWdlbmRIMygpKSB8fFxuICAgICAgKGF3YWl0IHRoaXMuI2dldExlZ2VuZEg0KCkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSDUoKSk7XG4gICAgY29uc3QgbGFiZWwgPSBhd2FpdCB0aGlzLiNnZXRMZWdlbmREZWZhdWx0KCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgKChhd2FpdCBob3N0Lmhhc0NsYXNzKCdza3ktY2hlY2tib3gtc3RhY2tlZC1uby1oZWFkaW5nJykpICYmICEhbGFiZWwpIHx8XG4gICAgICAoKGF3YWl0IGhvc3QuaGFzQ2xhc3MoJ3NreS1jaGVja2JveC1zdGFja2VkLWhlYWRpbmcnKSkgJiYgISFoZWFkaW5nKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBhbGwgdGhlIGNoZWNrYm94ZXMgaW4gYSByZXF1aXJlZCBncm91cCBhcmUgdW5jaGVja2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc1JlcXVpcmVkRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3JzKCkpLmhhc0Vycm9yKCdyZXF1aXJlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGdyb3VwIGhhcyBlcnJvcnMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzRXJyb3IoZXJyb3JOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcnMoKSkuaGFzRXJyb3IoZXJyb3JOYW1lKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRGb3JtRXJyb3JzKCk6IFByb21pc2U8U2t5Rm9ybUVycm9yc0hhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFxuICAgICAgU2t5Rm9ybUVycm9yc0hhcm5lc3Mud2l0aCh7XG4gICAgICAgIGRhdGFTa3lJZDogJ2NoZWNrYm94LWdyb3VwLWZvcm0tZXJyb3JzJyxcbiAgICAgIH0pLFxuICAgICkoKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRIZWxwSW5saW5lKCk6IFByb21pc2U8U2t5SGVscElubGluZUhhcm5lc3M+IHtcbiAgICBjb25zdCBoYXJuZXNzID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICBTa3lIZWxwSW5saW5lSGFybmVzcy53aXRoKHtcbiAgICAgICAgYW5jZXN0b3I6ICcuc2t5LWNoZWNrYm94LWdyb3VwID4gLnNreS1jaGVja2JveC1ncm91cC1sZWdlbmQnLFxuICAgICAgfSksXG4gICAgKSgpO1xuXG4gICAgaWYgKGhhcm5lc3MpIHtcbiAgICAgIHJldHVybiBoYXJuZXNzO1xuICAgIH1cblxuICAgIHRocm93IEVycm9yKCdObyBoZWxwIGlubGluZSBmb3VuZC4nKTtcbiAgfVxufVxuIl19
@@ -617,8 +617,8 @@ class SkyCheckboxGroupHarness extends SkyComponentHarness {
617
617
  */
618
618
  static { this.hostSelector = 'sky-checkbox-group'; }
619
619
  #getCheckboxes = this.locatorForAll(SkyCheckboxHarness);
620
- #getHeading = this.locatorFor('.sky-control-label');
621
- #getHeadingWrapper = this.locatorFor('.sky-control-label span');
620
+ #getHeading = this.locatorFor('.sky-checkbox-group-heading');
621
+ #getHeadingWrapper = this.locatorFor('.sky-checkbox-group-legend');
622
622
  #getHintText = this.locatorForOptional('.sky-checkbox-group-hint-text');
623
623
  #getLegendDefault = this.locatorForOptional('legend .sky-checkbox-group-heading-text');
624
624
  #getLegendH3 = this.locatorForOptional('legend h3');
@@ -675,7 +675,7 @@ class SkyCheckboxGroupHarness extends SkyComponentHarness {
675
675
  * Whether the heading is hidden.
676
676
  */
677
677
  async getHeadingHidden() {
678
- return (await this.#getHeading()).hasClass('sky-screen-reader-only');
678
+ return (await this.#getHeadingWrapper()).hasClass('sky-screen-reader-only');
679
679
  }
680
680
  /**
681
681
  * The semantic heading level used for the checkbox group. Returns undefined if heading level is not set.
@@ -719,8 +719,8 @@ class SkyCheckboxGroupHarness extends SkyComponentHarness {
719
719
  * Whether the checkbox group is required.
720
720
  */
721
721
  async getRequired() {
722
- const headingWrapper = await this.#getHeadingWrapper();
723
- return await headingWrapper.hasClass('sky-control-label-required');
722
+ const heading = await this.#getHeading();
723
+ return await heading.hasClass('sky-control-label-required');
724
724
  }
725
725
  /**
726
726
  * Whether the checkbox group is stacked.
@@ -731,8 +731,8 @@ class SkyCheckboxGroupHarness extends SkyComponentHarness {
731
731
  (await this.#getLegendH4()) ||
732
732
  (await this.#getLegendH5());
733
733
  const label = await this.#getLegendDefault();
734
- return (((await host.hasClass('sky-margin-stacked-lg')) && !!label) ||
735
- ((await host.hasClass('sky-margin-stacked-xl')) && !!heading));
734
+ return (((await host.hasClass('sky-checkbox-stacked-no-heading')) && !!label) ||
735
+ ((await host.hasClass('sky-checkbox-stacked-heading')) && !!heading));
736
736
  }
737
737
  /**
738
738
  * Whether all the checkboxes in a required group are unchecked.
@@ -753,7 +753,7 @@ class SkyCheckboxGroupHarness extends SkyComponentHarness {
753
753
  }
754
754
  async #getHelpInline() {
755
755
  const harness = await this.locatorForOptional(SkyHelpInlineHarness.with({
756
- ancestor: '.sky-checkbox-group > .sky-control-label',
756
+ ancestor: '.sky-checkbox-group > .sky-checkbox-group-legend',
757
757
  }))();
758
758
  if (harness) {
759
759
  return harness;