@skyux/forms 5.0.2 → 5.5.0-alpha.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/README.md +6 -4
- package/bundles/skyux-forms.umd.js +114 -114
- package/documentation.json +1412 -961
- package/esm2015/index.js +43 -0
- package/esm2015/index.js.map +1 -0
- package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js +37 -0
- package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js.map +1 -0
- package/esm2015/lib/modules/character-counter/character-counter.directive.js +83 -0
- package/esm2015/lib/modules/character-counter/character-counter.directive.js.map +1 -0
- package/esm2015/lib/modules/character-counter/character-counter.module.js +46 -0
- package/esm2015/lib/modules/character-counter/character-counter.module.js.map +1 -0
- package/esm2015/lib/modules/checkbox/checkbox-change.js +6 -0
- package/esm2015/lib/modules/checkbox/checkbox-change.js.map +1 -0
- package/esm2015/lib/modules/checkbox/checkbox-label.component.js +17 -0
- package/esm2015/lib/modules/checkbox/checkbox-label.component.js.map +1 -0
- package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js +32 -0
- package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js.map +1 -0
- package/esm2015/lib/modules/checkbox/checkbox.component.js +240 -0
- package/esm2015/lib/modules/checkbox/checkbox.component.js.map +1 -0
- package/esm2015/lib/modules/checkbox/checkbox.module.js +34 -0
- package/esm2015/lib/modules/checkbox/checkbox.module.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js +19 -0
- package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-attachment.component.js +331 -0
- package/esm2015/lib/modules/file-attachment/file-attachment.component.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-attachment.service.js +94 -0
- package/esm2015/lib/modules/file-attachment/file-attachment.service.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-attachments.module.js +68 -0
- package/esm2015/lib/modules/file-attachment/file-attachments.module.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-drop.component.js +223 -0
- package/esm2015/lib/modules/file-attachment/file-drop.component.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-item-error-type.js +2 -0
- package/esm2015/lib/modules/file-attachment/file-item-error-type.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-item.component.js +114 -0
- package/esm2015/lib/modules/file-attachment/file-item.component.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-item.js +2 -0
- package/esm2015/lib/modules/file-attachment/file-item.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-item.service.js +72 -0
- package/esm2015/lib/modules/file-attachment/file-item.service.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-link.js +2 -0
- package/esm2015/lib/modules/file-attachment/file-link.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/file-size.pipe.js +61 -0
- package/esm2015/lib/modules/file-attachment/file-size.pipe.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js +2 -0
- package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js +2 -0
- package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js.map +1 -0
- package/esm2015/lib/modules/file-attachment/types/file-drop-change.js +2 -0
- package/esm2015/lib/modules/file-attachment/types/file-drop-change.js.map +1 -0
- package/esm2015/lib/modules/input-box/input-box-adapter.service.js +35 -0
- package/esm2015/lib/modules/input-box/input-box-adapter.service.js.map +1 -0
- package/esm2015/lib/modules/input-box/input-box-host.service.js +19 -0
- package/esm2015/lib/modules/input-box/input-box-host.service.js.map +1 -0
- package/esm2015/lib/modules/input-box/input-box-populate-args.js +2 -0
- package/esm2015/lib/modules/input-box/input-box-populate-args.js.map +1 -0
- package/esm2015/{modules → lib/modules}/input-box/input-box.component.js +5 -5
- package/esm2015/lib/modules/input-box/input-box.component.js.map +1 -0
- package/esm2015/lib/modules/input-box/input-box.module.js +19 -0
- package/esm2015/lib/modules/input-box/input-box.module.js.map +1 -0
- package/esm2015/lib/modules/radio/radio-group.component.js +223 -0
- package/esm2015/lib/modules/radio/radio-group.component.js.map +1 -0
- package/esm2015/lib/modules/radio/radio-label.component.js +26 -0
- package/esm2015/lib/modules/radio/radio-label.component.js.map +1 -0
- package/esm2015/lib/modules/radio/radio.component.js +262 -0
- package/esm2015/lib/modules/radio/radio.component.js.map +1 -0
- package/esm2015/lib/modules/radio/radio.module.js +28 -0
- package/esm2015/lib/modules/radio/radio.module.js.map +1 -0
- package/esm2015/lib/modules/radio/types/radio-change.js +2 -0
- package/esm2015/lib/modules/radio/types/radio-change.js.map +1 -0
- package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js +124 -0
- package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js.map +1 -0
- package/esm2015/lib/modules/selection-box/selection-box-description.component.js +17 -0
- package/esm2015/lib/modules/selection-box/selection-box-description.component.js.map +1 -0
- package/esm2015/lib/modules/selection-box/selection-box-grid.component.js +132 -0
- package/esm2015/lib/modules/selection-box/selection-box-grid.component.js.map +1 -0
- package/esm2015/lib/modules/selection-box/selection-box-header.component.js +17 -0
- package/esm2015/lib/modules/selection-box/selection-box-header.component.js.map +1 -0
- package/esm2015/lib/modules/selection-box/selection-box.component.js +107 -0
- package/esm2015/lib/modules/selection-box/selection-box.component.js.map +1 -0
- package/esm2015/lib/modules/selection-box/selection-box.module.js +40 -0
- package/esm2015/lib/modules/selection-box/selection-box.module.js.map +1 -0
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js +2 -0
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js.map +1 -0
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js +2 -0
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js.map +1 -0
- package/esm2015/lib/modules/shared/forms-utility.js +26 -0
- package/esm2015/lib/modules/shared/forms-utility.js.map +1 -0
- package/esm2015/lib/modules/shared/sky-forms-resources.module.js +89 -0
- package/esm2015/lib/modules/shared/sky-forms-resources.module.js.map +1 -0
- package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js +18 -0
- package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js.map +1 -0
- package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js +158 -0
- package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js.map +1 -0
- package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js +20 -0
- package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js.map +1 -0
- package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js +2 -0
- package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js.map +1 -0
- package/esm2015/skyux-forms.js +2 -2
- package/esm2015/skyux-forms.js.map +1 -0
- package/esm2015/testing/checkbox-fixture.js +1 -1
- package/esm2015/testing/checkbox-fixture.js.map +1 -0
- package/esm2015/testing/public-api.js +1 -1
- package/esm2015/testing/public-api.js.map +1 -0
- package/esm2015/testing/skyux-forms-testing.js +1 -1
- package/esm2015/testing/skyux-forms-testing.js.map +1 -0
- package/fesm2015/skyux-forms-testing.js.map +1 -1
- package/fesm2015/skyux-forms.js +145 -145
- package/fesm2015/skyux-forms.js.map +1 -1
- package/index.d.ts +40 -0
- package/{modules → lib/modules}/character-counter/character-counter-indicator.component.d.ts +0 -0
- package/{modules → lib/modules}/character-counter/character-counter.directive.d.ts +0 -0
- package/{modules → lib/modules}/character-counter/character-counter.module.d.ts +0 -0
- package/{modules → lib/modules}/checkbox/checkbox-change.d.ts +0 -0
- package/{modules → lib/modules}/checkbox/checkbox-label.component.d.ts +0 -0
- package/{modules → lib/modules}/checkbox/checkbox-required-validator.directive.d.ts +0 -0
- package/{modules → lib/modules}/checkbox/checkbox.component.d.ts +3 -3
- package/{modules → lib/modules}/checkbox/checkbox.module.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-attachment-label.component.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-attachment.component.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-attachment.service.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-attachments.module.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-drop.component.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-item-error-type.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-item.component.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-item.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-item.service.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-link.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/file-size.pipe.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/types/file-attachment-change.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/types/file-attachment-click.d.ts +0 -0
- package/{modules → lib/modules}/file-attachment/types/file-drop-change.d.ts +0 -0
- package/{modules → lib/modules}/input-box/input-box-adapter.service.d.ts +0 -0
- package/{modules → lib/modules}/input-box/input-box-host.service.d.ts +0 -0
- package/{modules → lib/modules}/input-box/input-box-populate-args.d.ts +0 -0
- package/{modules → lib/modules}/input-box/input-box.component.d.ts +0 -0
- package/{modules → lib/modules}/input-box/input-box.module.d.ts +0 -0
- package/{modules → lib/modules}/radio/radio-group.component.d.ts +2 -2
- package/{modules → lib/modules}/radio/radio-label.component.d.ts +0 -0
- package/{modules → lib/modules}/radio/radio.component.d.ts +0 -0
- package/{modules → lib/modules}/radio/radio.module.d.ts +0 -0
- package/{modules → lib/modules}/radio/types/radio-change.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/selection-box-adapter.service.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/selection-box-description.component.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/selection-box-grid.component.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/selection-box-header.component.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/selection-box.component.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/selection-box.module.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/types/selection-box-grid-align-items-type.d.ts +0 -0
- package/{modules → lib/modules}/selection-box/types/selection-box-grid-align-items.d.ts +0 -0
- package/{modules → lib/modules}/shared/forms-utility.d.ts +0 -0
- package/{modules → lib/modules}/shared/sky-forms-resources.module.d.ts +0 -0
- package/{modules → lib/modules}/toggle-switch/toggle-switch-label.component.d.ts +0 -0
- package/{modules → lib/modules}/toggle-switch/toggle-switch.component.d.ts +0 -0
- package/{modules → lib/modules}/toggle-switch/toggle-switch.module.d.ts +0 -0
- package/{modules → lib/modules}/toggle-switch/types/toggle-switch-change.d.ts +0 -0
- package/package.json +7 -7
- package/skyux-forms.d.ts +1 -1
- package/LICENSE +0 -21
- package/bundles/skyux-forms-testing.umd.js.map +0 -1
- package/bundles/skyux-forms.umd.js.map +0 -1
- package/esm2015/modules/character-counter/character-counter-indicator.component.js +0 -37
- package/esm2015/modules/character-counter/character-counter.directive.js +0 -82
- package/esm2015/modules/character-counter/character-counter.module.js +0 -46
- package/esm2015/modules/checkbox/checkbox-change.js +0 -6
- package/esm2015/modules/checkbox/checkbox-label.component.js +0 -17
- package/esm2015/modules/checkbox/checkbox-required-validator.directive.js +0 -32
- package/esm2015/modules/checkbox/checkbox.component.js +0 -239
- package/esm2015/modules/checkbox/checkbox.module.js +0 -34
- package/esm2015/modules/file-attachment/file-attachment-label.component.js +0 -19
- package/esm2015/modules/file-attachment/file-attachment.component.js +0 -328
- package/esm2015/modules/file-attachment/file-attachment.service.js +0 -94
- package/esm2015/modules/file-attachment/file-attachments.module.js +0 -68
- package/esm2015/modules/file-attachment/file-drop.component.js +0 -223
- package/esm2015/modules/file-attachment/file-item-error-type.js +0 -2
- package/esm2015/modules/file-attachment/file-item.component.js +0 -113
- package/esm2015/modules/file-attachment/file-item.js +0 -2
- package/esm2015/modules/file-attachment/file-item.service.js +0 -72
- package/esm2015/modules/file-attachment/file-link.js +0 -2
- package/esm2015/modules/file-attachment/file-size.pipe.js +0 -59
- package/esm2015/modules/file-attachment/types/file-attachment-change.js +0 -2
- package/esm2015/modules/file-attachment/types/file-attachment-click.js +0 -2
- package/esm2015/modules/file-attachment/types/file-drop-change.js +0 -2
- package/esm2015/modules/input-box/input-box-adapter.service.js +0 -35
- package/esm2015/modules/input-box/input-box-host.service.js +0 -19
- package/esm2015/modules/input-box/input-box-populate-args.js +0 -2
- package/esm2015/modules/input-box/input-box.module.js +0 -19
- package/esm2015/modules/radio/radio-group.component.js +0 -222
- package/esm2015/modules/radio/radio-label.component.js +0 -26
- package/esm2015/modules/radio/radio.component.js +0 -262
- package/esm2015/modules/radio/radio.module.js +0 -28
- package/esm2015/modules/radio/types/radio-change.js +0 -2
- package/esm2015/modules/selection-box/selection-box-adapter.service.js +0 -124
- package/esm2015/modules/selection-box/selection-box-description.component.js +0 -17
- package/esm2015/modules/selection-box/selection-box-grid.component.js +0 -129
- package/esm2015/modules/selection-box/selection-box-header.component.js +0 -17
- package/esm2015/modules/selection-box/selection-box.component.js +0 -106
- package/esm2015/modules/selection-box/selection-box.module.js +0 -40
- package/esm2015/modules/selection-box/types/selection-box-grid-align-items-type.js +0 -2
- package/esm2015/modules/selection-box/types/selection-box-grid-align-items.js +0 -2
- package/esm2015/modules/shared/forms-utility.js +0 -26
- package/esm2015/modules/shared/sky-forms-resources.module.js +0 -89
- package/esm2015/modules/toggle-switch/toggle-switch-label.component.js +0 -18
- package/esm2015/modules/toggle-switch/toggle-switch.component.js +0 -158
- package/esm2015/modules/toggle-switch/toggle-switch.module.js +0 -20
- package/esm2015/modules/toggle-switch/types/toggle-switch-change.js +0 -2
- package/esm2015/public-api.js +0 -43
- package/public-api.d.ts +0 -40
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-attachment-click.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/forms/src/lib/modules/file-attachment/types/file-attachment-click.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyFileItem } from '../file-item';\n\nexport interface SkyFileAttachmentClick {\n /**\n * Specifies the file that was clicked.\n */\n file: SkyFileItem;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-drop-change.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/forms/src/lib/modules/file-attachment/types/file-drop-change.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyFileItem } from '../file-item';\n\nexport interface SkyFileDropChange {\n /**\n * Specifies an array of files that were added or removed.\n */\n files: Array<SkyFileItem>;\n /**\n * Specifies an array of files that were rejected.\n */\n rejectedFiles: Array<SkyFileItem>;\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export class SkyInputBoxAdapterService {
|
|
7
|
+
focusControl(elRef) {
|
|
8
|
+
const control = elRef.nativeElement.querySelector('.sky-form-control');
|
|
9
|
+
/* istanbul ignore else */
|
|
10
|
+
if (control) {
|
|
11
|
+
control.focus();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns the inline help element.
|
|
16
|
+
*/
|
|
17
|
+
getInlineHelpElement(elRef) {
|
|
18
|
+
return elRef.nativeElement.querySelector('.sky-control-help');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns true if the provided element contains the focused element.
|
|
22
|
+
*/
|
|
23
|
+
isFocusInElement(el) {
|
|
24
|
+
if (el) {
|
|
25
|
+
return (el === document.activeElement || el.contains(document.activeElement));
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
SkyInputBoxAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
+
SkyInputBoxAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxAdapterService });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxAdapterService, decorators: [{
|
|
33
|
+
type: Injectable
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=input-box-adapter.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-box-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/forms/src/lib/modules/input-box/input-box-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,eAAe,CAAC;;AAEvD;;GAEG;AAEH,MAAM,OAAO,yBAAyB;IAC7B,YAAY,CAAC,KAAiB;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACvE,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;IACH,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,KAAiB;QAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,EAAe;QACrC,IAAI,EAAE,EAAE;YACN,OAAO,CACL,EAAE,KAAK,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CACrE,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;uHA1BU,yBAAyB;2HAAzB,yBAAyB;4FAAzB,yBAAyB;kBADrC,UAAU","sourcesContent":["import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInputBoxAdapterService {\n public focusControl(elRef: ElementRef): void {\n const control = elRef.nativeElement.querySelector('.sky-form-control');\n /* istanbul ignore else */\n if (control) {\n control.focus();\n }\n }\n\n /**\n * Returns the inline help element.\n */\n public getInlineHelpElement(elRef: ElementRef): HTMLElement {\n return elRef.nativeElement.querySelector('.sky-control-help');\n }\n\n /**\n * Returns true if the provided element contains the focused element.\n */\n public isFocusInElement(el: HTMLElement): boolean {\n if (el) {\n return (\n el === document.activeElement || el.contains(document.activeElement)\n );\n }\n return false;\n }\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export class SkyInputBoxHostService {
|
|
7
|
+
init(host) {
|
|
8
|
+
this.host = host;
|
|
9
|
+
}
|
|
10
|
+
populate(args) {
|
|
11
|
+
this.host.populate(args);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
SkyInputBoxHostService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxHostService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
SkyInputBoxHostService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxHostService });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxHostService, decorators: [{
|
|
17
|
+
type: Injectable
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=input-box-host.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-box-host.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/forms/src/lib/modules/input-box/input-box-host.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAM3C;;GAEG;AAEH,MAAM,OAAO,sBAAsB;IAG1B,IAAI,CAAC,IAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,QAAQ,CAAC,IAA6B;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;;oHATU,sBAAsB;wHAAtB,sBAAsB;4FAAtB,sBAAsB;kBADlC,UAAU","sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyInputBoxComponent } from './input-box.component';\n\nimport { SkyInputBoxPopulateArgs } from './input-box-populate-args';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInputBoxHostService {\n private host: SkyInputBoxComponent;\n\n public init(host: SkyInputBoxComponent): void {\n this.host = host;\n }\n\n public populate(args: SkyInputBoxPopulateArgs): void {\n this.host.populate(args);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-box-populate-args.js","sourceRoot":"","sources":["../../../../../../../../libs/components/forms/src/lib/modules/input-box/input-box-populate-args.ts"],"names":[],"mappings":"","sourcesContent":["import { TemplateRef } from '@angular/core';\n\n/**\n * @internal\n */\nexport interface SkyInputBoxPopulateArgs {\n inputTemplate: TemplateRef<any>;\n\n buttonsTemplate?: TemplateRef<any>;\n\n buttonsLeftTemplate?: TemplateRef<any>;\n\n buttonsInsetTemplate?: TemplateRef<any>;\n\n iconsInsetTemplate?: TemplateRef<any>;\n\n iconsInsetLeftTemplate?: TemplateRef<any>;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ContentChild, Input, ViewEncapsulation, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, Component, ContentChild, ElementRef, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
2
|
import { FormControlDirective, FormControlName, NgModel, } from '@angular/forms';
|
|
3
3
|
import { SkyInputBoxAdapterService } from './input-box-adapter.service';
|
|
4
4
|
import { SkyInputBoxHostService } from './input-box-host.service';
|
|
@@ -67,9 +67,9 @@ export class SkyInputBoxComponent {
|
|
|
67
67
|
return control && control.invalid && (control.dirty || control.touched);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
SkyInputBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
71
|
-
SkyInputBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyInputBoxComponent, selector: "sky-input-box", inputs: { hasErrors: "hasErrors", disabled: "disabled" }, providers: [SkyInputBoxAdapterService, SkyInputBoxHostService], queries: [{ propertyName: "formControl", first: true, predicate: FormControlDirective, descendants: true }, { propertyName: "formControlByName", first: true, predicate: FormControlName, descendants: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }], ngImport: i0, template: "<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\"></ng-container>\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"characterCountTemplate\"\n ></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\"></ng-content>\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <ng-content select=\".sky-control-help\"></ng-content>\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <ng-content select=\"sky-character-counter-indicator\"></ng-content>\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content select=\".sky-form-control\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostInputTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsLeftTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content\n select=\".sky-input-group-btn.sky-input-box-btn-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsInsetTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset-left\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetLeftTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <ng-content select=\".sky-error-label\"></ng-content>\n</ng-template>\n", styles: ["sky-input-box{display:block}sky-input-box .sky-input-box-input-container{width:100%}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap}sky-input-box .sky-form-group .sky-control-help{margin:0 0 0 4px}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:33px;display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{flex-grow:1;text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-grow:0;flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:6px;border-bottom-left-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:#686c73;margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:55px}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:6px;border-bottom-left-radius:6px;margin-right:-1px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-group-icon{width:55px}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:#686c73;font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:-2px}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:-1px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #ef4044;color:#d93a3d}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box .sky-form-group{background-color:#fff;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;color:#686c73;flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;padding:0 15px;width:100%}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding:6px 0 1px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:13px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help .sky-help-inline{font-size:16px;padding:3px 10px 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:last-child .sky-help-inline{padding:3px 0 0 10px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:3px 0 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:6px;font-size:16px;height:auto;line-height:18px;margin-top:-23px;padding:26px 15px 10px;position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:first-line{line-height:19px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-ms-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn{background-color:transparent;border-radius:6px;transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0;padding-top:10px}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:0;padding-top:5px}@-moz-document url-prefix(){.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{padding-left:10px}}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - 10px);z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{resize:vertical}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 15px;width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #d2d2d2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8;z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus{border:none;box-shadow:inset 0 0 0 2px #1870b8;color:#212327;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #ef4044;color:#d93a3d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid:active .sky-form-group{color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{background-color:#ededee}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:#ededee;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;opacity:1}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group{background-color:transparent;border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-form-control,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-input-group-btn .sky-btn{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus .sky-form-group,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus.sky-input-box-group-form-control-invalid .sky-form-group{color:#1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #ef4044;color:#d93a3d}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn.sky-btn-default{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn:focus{border-color:#1870b8;color:#fbfcfe}\n"], directives: [{ type: i3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
70
|
+
SkyInputBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyInputBoxHostService }, { token: i2.SkyInputBoxAdapterService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
SkyInputBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyInputBoxComponent, selector: "sky-input-box", inputs: { hasErrors: "hasErrors", disabled: "disabled" }, providers: [SkyInputBoxAdapterService, SkyInputBoxHostService], queries: [{ propertyName: "formControl", first: true, predicate: FormControlDirective, descendants: true }, { propertyName: "formControlByName", first: true, predicate: FormControlName, descendants: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }], ngImport: i0, template: "<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\"></ng-container>\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"characterCountTemplate\"\n ></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\"></ng-content>\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <ng-content select=\".sky-control-help\"></ng-content>\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <ng-content select=\"sky-character-counter-indicator\"></ng-content>\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content select=\".sky-form-control\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostInputTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsLeftTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content\n select=\".sky-input-group-btn.sky-input-box-btn-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsInsetTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset-left\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetLeftTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <ng-content select=\".sky-error-label\"></ng-content>\n</ng-template>\n", styles: ["sky-input-box{display:block}sky-input-box .sky-input-box-input-container{width:100%}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap}sky-input-box .sky-form-group .sky-control-help{margin:0 0 0 4px}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:33px;display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{flex-grow:1;text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-grow:0;flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:6px;border-bottom-left-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:#686c73;margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:55px}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:6px;border-bottom-left-radius:6px;margin-right:-1px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-group-icon{width:55px}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:#686c73;font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:-2px}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:-1px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #ef4044;color:#d93a3d}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box .sky-form-group{background-color:#fff;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;color:#686c73;flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;padding:0 15px;width:100%}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding:6px 0 1px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:13px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help .sky-help-inline{font-size:16px;padding:3px 10px 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:last-child .sky-help-inline{padding:3px 0 0 10px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:3px 0 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:6px;font-size:16px;height:auto;line-height:18px;margin-top:-23px;padding:26px 15px 10px;position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:first-line{line-height:19px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-ms-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn{background-color:transparent;border-radius:6px;transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0;padding-top:10px}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:0;padding-top:5px}@-moz-document url-prefix(){.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{padding-left:10px}}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - 10px);z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{resize:vertical}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 15px;width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #d2d2d2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8;z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus{border:none;box-shadow:inset 0 0 0 2px #1870b8;color:#212327;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #ef4044;color:#d93a3d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid:active .sky-form-group{color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{background-color:#ededee}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:#ededee;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;opacity:1}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group{background-color:transparent;border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-form-control,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-input-group-btn .sky-btn{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus .sky-form-group,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus.sky-input-box-group-form-control-invalid .sky-form-group{color:#1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #ef4044;color:#d93a3d}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn.sky-btn-default{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn:focus{border-color:#1870b8;color:#fbfcfe}\n"], directives: [{ type: i3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{
|
|
75
75
|
selector: 'sky-input-box',
|
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
94
94
|
type: ContentChild,
|
|
95
95
|
args: [NgModel]
|
|
96
96
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm1zL3NyYy9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMvc3JjL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBR0wsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLE9BQU8sR0FDUixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFJbEU7Ozs7OztHQU1HO0FBVUgsTUFBTSxPQUFPLG9CQUFvQjtJQXNEL0IsWUFDVSxTQUE0QixFQUM1QixlQUF1QyxFQUN2QyxjQUF5QyxFQUN6QyxVQUFzQjtRQUh0QixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsbUJBQWMsR0FBZCxjQUFjLENBQTJCO1FBQ3pDLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDN0IsQ0FBQztJQWpCSixJQUFXLGlCQUFpQjtRQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ2hDLE9BQU8sQ0FDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDcEMsQ0FBQztTQUNIO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFTTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUMzRCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsSUFBNkI7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDaEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUN4RCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzFELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDdEQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNoRSxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWlCO1FBQ3RDLHlGQUF5RjtRQUN6RiwwRkFBMEY7UUFDMUYsZ0VBQWdFO1FBQ2hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBaUM7UUFDeEQsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7O2tIQXpHVSxvQkFBb0I7c0dBQXBCLG9CQUFvQixrR0FMcEIsQ0FBQyx5QkFBeUIsRUFBRSxzQkFBc0IsQ0FBQyxtRUFzQ2hELG9CQUFvQixvRkFHcEIsZUFBZSwwRUFHZixPQUFPLGdEQy9FdkIsbzNKQXNJQTs0RkQ5RmEsb0JBQW9CO2tCQVRoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDekMsU0FBUyxFQUFFLENBQUMseUJBQXlCLEVBQUUsc0JBQXNCLENBQUM7b0JBQzlELHVGQUF1RjtvQkFDdkYsd0ZBQXdGO29CQUN4RixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OE1BUVEsU0FBUztzQkFEZixLQUFLO2dCQVdDLFFBQVE7c0JBRGQsS0FBSztnQkFrQkMsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBSTNCLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyxlQUFlO2dCQUl0QixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlLFxuICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgRm9ybUNvbnRyb2xOYW1lLFxuICBOZ01vZGVsLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFNreUlucHV0Qm94QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2lucHV0LWJveC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlIH0gZnJvbSAnLi9pbnB1dC1ib3gtaG9zdC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU2t5SW5wdXRCb3hQb3B1bGF0ZUFyZ3MgfSBmcm9tICcuL2lucHV0LWJveC1wb3B1bGF0ZS1hcmdzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgd3JhcHBlciB0byBwcm92aWRlIHN0eWxpbmcgZm9yIGBpbnB1dGAgYW5kIGBsYWJlbGAgZWxlbWVudHMuIFRvIHJlbmRlciB0aGVcbiAqIGNvbXBvbmVudCBjb3JyZWN0bHksIGluY2x1ZGUgdGhlIGBza3ktZm9ybS1jb250cm9sYCBDU1MgY2xhc3Mgb24gdGhlIGBpbnB1dGAgZWxlbWVudFxuICogYW5kIHRoZSBgc2t5LWNvbnRyb2wtbGFiZWxgIENTUyBjbGFzcyBvbiB0aGUgYGxhYmVsYCBlbGVtZW50LiBUbyBkaXNwbGF5IGEgaGVscCBidXR0b25cbiAqIGJlc2lkZSB0aGUgbGFiZWwsIGluY2x1ZGUgYSBoZWxwIGJ1dHRvbiBlbGVtZW50IGluIHRoZSBgc2t5LWlucHV0LWJveGAgZWxlbWVudCBhbmQgYVxuICogYHNreS1jb250cm9sLWhlbHBgIENTUyBjbGFzcyBvbiB0aGF0IGVsZW1lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1pbnB1dC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1NreUlucHV0Qm94QWRhcHRlclNlcnZpY2UsIFNreUlucHV0Qm94SG9zdFNlcnZpY2VdLFxuICAvLyBOb3RlIHRoYXQgY2hhbmdlIGRldGVjdGlvbiBpcyBub3Qgc2V0IHRvIE9uUHVzaDsgZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0aW9uIGFsbG93cyB0aGVcbiAgLy8gaW52YWxpZCBDU1MgY2xhc3MgdG8gYmUgYWRkZWQgd2hlbiB0aGUgY29udGVudCBjb250cm9sJ3MgaW52YWxpZC9kaXJ0eSBzdGF0ZSBjaGFuZ2VzLlxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lJbnB1dEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byB2aXN1YWxseSBoaWdobGlnaHQgdGhlIGlucHV0IGJveCBpbiBhbiBlcnJvciBzdGF0ZS4gSWYgYGhhc0Vycm9yc2AgaXMgYGZhbHNlYCwgdGhlIGlucHV0IGJveCBzdGlsbFxuICAgKiBkaXNwbGF5cyBpbiBhbiBlcnJvciBzdGF0ZSB3aGVuIGVpdGhlciB0aGUgYG5nTW9kZWxgIG9yIHRoZSBBbmd1bGFyIGBGb3JtQ29udHJvbGAgY29udGFpbiBhbiBlcnJvci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoYXNFcnJvcnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHZpc3VhbGx5IGhpZ2hsaWdodCB0aGUgaW5wdXQgYm94IGFzIGRpc2FibGVkLiBUbyBkaXNhYmxlIHRoZSBpbnB1dCBib3gnc1xuICAgKiBgaW5wdXRgIGVsZW1lbnQsIHVzZSB0aGUgSFRNTCBgZGlzYWJsZWRgIGF0dHJpYnV0ZSBvciB0aGUgQW5ndWxhciBgRm9ybUNvbnRyb2wuZGlzYWJsZWRgXG4gICAqIHByb3BlcnR5LiBZb3UgbXVzdCBzZXQgYm90aCBwcm9wZXJ0aWVzIHRvIGRpc2FibGUgYW4gYGlucHV0YCBlbGVtZW50IGFuZCB2aXN1YWxseSBpbmRpY2F0ZVxuICAgKiB0aGUgZGlzYWJsZWQgc3RhdGUgb24gdGhlIGlucHV0IGJveC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaG9zdElucHV0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIGhvc3RCdXR0b25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIGhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgaG9zdEJ1dHRvbnNMZWZ0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIGZvcm1Db250cm9sSGFzRm9jdXM6IGJvb2xlYW47XG5cbiAgcHVibGljIGhvc3RJY29uc0luc2V0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIGhvc3RJY29uc0luc2V0TGVmdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUNvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2xEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChGb3JtQ29udHJvbE5hbWUpXG4gIHB1YmxpYyBmb3JtQ29udHJvbEJ5TmFtZTogRm9ybUNvbnRyb2xOYW1lO1xuXG4gIEBDb250ZW50Q2hpbGQoTmdNb2RlbClcbiAgcHVibGljIG5nTW9kZWw6IE5nTW9kZWw7XG5cbiAgcHVibGljIGdldCBoYXNFcnJvcnNDb21wdXRlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5oYXNFcnJvcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5jb250cm9sSGFzRXJyb3JzKHRoaXMuZm9ybUNvbnRyb2wpIHx8XG4gICAgICAgIHRoaXMuY29udHJvbEhhc0Vycm9ycyh0aGlzLmZvcm1Db250cm9sQnlOYW1lKSB8fFxuICAgICAgICB0aGlzLmNvbnRyb2xIYXNFcnJvcnModGhpcy5uZ01vZGVsKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBpbnB1dEJveEhvc3RTdmM6IFNreUlucHV0Qm94SG9zdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZGFwdGVyU2VydmljZTogU2t5SW5wdXRCb3hBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Qm94SG9zdFN2Yy5pbml0KHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGZvcm1Db250cm9sRm9jdXNJbigpOiB2b2lkIHtcbiAgICBjb25zdCBpbmxpbmVIZWxwRWwgPSB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmdldElubGluZUhlbHBFbGVtZW50KFxuICAgICAgdGhpcy5lbGVtZW50UmVmXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuYWRhcHRlclNlcnZpY2UuaXNGb2N1c0luRWxlbWVudChpbmxpbmVIZWxwRWwpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUhhc0ZvY3VzKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtQ29udHJvbEZvY3VzT3V0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSGFzRm9jdXMoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG9uSW5zZXRJY29uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmZvY3VzQ29udHJvbCh0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3B1bGF0ZShhcmdzOiBTa3lJbnB1dEJveFBvcHVsYXRlQXJncyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdElucHV0VGVtcGxhdGUgPSBhcmdzLmlucHV0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0QnV0dG9uc1RlbXBsYXRlID0gYXJncy5idXR0b25zVGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0QnV0dG9uc0xlZnRUZW1wbGF0ZSA9IGFyZ3MuYnV0dG9uc0xlZnRUZW1wbGF0ZTtcbiAgICB0aGlzLmhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZSA9IGFyZ3MuYnV0dG9uc0luc2V0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0SWNvbnNJbnNldFRlbXBsYXRlID0gYXJncy5pY29uc0luc2V0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0SWNvbnNJbnNldExlZnRUZW1wbGF0ZSA9IGFyZ3MuaWNvbnNJbnNldExlZnRUZW1wbGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSGFzRm9jdXMoaGFzRm9jdXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBTb21lIGNvbXBvbmVudHMgbWFuaXB1bGF0ZSB0aGUgZm9jdXMgb2YgZWxlbWVudHMgaW5zaWRlIGFuIGlucHV0IGJveCBwcm9ncmFtbWF0aWNhbGx5LFxuICAgIC8vIHdoaWNoIGNhbiBjYXVzZSBhbiBgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcmAgaWYgZm9jdXMgd2FzIHNldCBhZnRlclxuICAgIC8vIGluaXRpYWwgY2hhbmdlIGRldGVjdGlvbi4gVXNpbmcgYHNldFRpbWVvdXQoKWAgaGVyZSBmaXhlcyBpdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xIYXNGb2N1cyA9IGhhc0ZvY3VzO1xuICAgICAgdGhpcy5jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnRyb2xIYXNFcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlKSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIlxuICBjbGFzcz1cInNreS1pbnB1dC1ib3hcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1pbnB1dC1ib3gtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICB9XCJcbj5cbiAgPGRpdiBjbGFzcz1cInNreS1mb3JtLWdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ib3gtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbmxpbmVIZWxwVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGFyYWN0ZXJDb3VudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ncm91cFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNMZWZ0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktaW5wdXQtYm94LWlucHV0LWdyb3VwLWlubmVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktZmllbGQtc3RhdHVzLWFjdGl2ZSc6IGZvcm1Db250cm9sSGFzRm9jdXMsXG4gICAgICAgICAgJ3NreS1maWVsZC1zdGF0dXMtaW52YWxpZCc6IGhhc0Vycm9yc0NvbXB1dGVkXG4gICAgICAgIH1cIlxuICAgICAgICAoZm9jdXNpbik9XCJmb3JtQ29udHJvbEZvY3VzSW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJmb3JtQ29udHJvbEZvY3VzT3V0KClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNJbnNldExlZnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc0luc2V0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25zSW5zZXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yTGFiZWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICBjbGFzcz1cInNreS1pbnB1dC1ib3hcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1pbnB1dC1ib3gtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICB9XCJcbj5cbiAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ib3gtZ3JvdXBcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc0xlZnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWlucHV0LWJveC1ncm91cC1mb3JtLWNvbnRyb2xcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWlucHV0LWJveC1ncm91cC1mb3JtLWNvbnRyb2wtZm9jdXMnOiBmb3JtQ29udHJvbEhhc0ZvY3VzLFxuICAgICAgICAnc2t5LWlucHV0LWJveC1ncm91cC1mb3JtLWNvbnRyb2wtaW52YWxpZCc6IGhhc0Vycm9yc0NvbXB1dGVkXG4gICAgICB9XCJcbiAgICAgIChmb2N1c2luKT1cImZvcm1Db250cm9sRm9jdXNJbigpXCJcbiAgICAgIChmb2N1c291dCk9XCJmb3JtQ29udHJvbEZvY3VzT3V0KClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZm9ybS1ncm91cFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNJbnNldExlZnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWJveC1mb3JtLWdyb3VwLWlubmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ib3gtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbmxpbmVIZWxwVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGFyYWN0ZXJDb3VudFRlbXBsYXRlXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNJbnNldFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uc0luc2V0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvckxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktY29udHJvbC1sYWJlbFwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5saW5lSGVscFRlbXBsYXRlPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2hhcmFjdGVyQ291bnRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvclwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1mb3JtLWNvbnRyb2xcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJob3N0SW5wdXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zTGVmdFRlbXBsYXRlPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWlucHV0LWdyb3VwLWJ0bi5za3ktaW5wdXQtYm94LWJ0bi1sZWZ0XCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG9zdEJ1dHRvbnNMZWZ0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc1RlbXBsYXRlPlxuICA8bmctY29udGVudFxuICAgIHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtYnRuOm5vdCguc2t5LWlucHV0LWJveC1idG4tbGVmdCk6bm90KC5za3ktaW5wdXQtYm94LWJ0bi1pbnNldClcIlxuICA+PC9uZy1jb250ZW50PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG9zdEJ1dHRvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zSW5zZXRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnRcbiAgICBzZWxlY3Q9XCIuc2t5LWlucHV0LWdyb3VwLWJ0bi5za3ktaW5wdXQtYm94LWJ0bi1pbnNldFwiXG4gID48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJob3N0QnV0dG9uc0luc2V0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvbnNJbnNldFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWJveC1pY29uLWluc2V0LXdyYXBwZXJcIiAoY2xpY2spPVwib25JbnNldEljb25DbGljaygpXCI+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgIHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtaWNvbi5za3ktaW5wdXQtYm94LWljb24taW5zZXRcIlxuICAgID48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhvc3RJY29uc0luc2V0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ljb25zSW5zZXRMZWZ0VGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1pbnB1dC1ib3gtaWNvbi1pbnNldC1sZWZ0LXdyYXBwZXJcIlxuICAgIChjbGljayk9XCJvbkluc2V0SWNvbkNsaWNrKClcIlxuICA+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgIHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtaWNvbi5za3ktaW5wdXQtYm94LWljb24taW5zZXQtbGVmdFwiXG4gICAgPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG9zdEljb25zSW5zZXRMZWZ0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Vycm9yTGFiZWxUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1lcnJvci1sYWJlbFwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
97
|
+
//# sourceMappingURL=input-box.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-box.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/forms/src/lib/modules/input-box/input-box.component.ts","../../../../../../../../libs/components/forms/src/lib/modules/input-box/input-box.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n AbstractControlDirective,\n FormControlDirective,\n FormControlName,\n NgModel,\n} from '@angular/forms';\n\nimport { SkyInputBoxAdapterService } from './input-box-adapter.service';\n\nimport { SkyInputBoxHostService } from './input-box-host.service';\n\nimport { SkyInputBoxPopulateArgs } from './input-box-populate-args';\n\n/**\n * Creates a wrapper to provide styling for `input` and `label` elements. To render the\n * component correctly, include the `sky-form-control` CSS class on the `input` element\n * and the `sky-control-label` CSS class on the `label` element. To display a help button\n * beside the label, include a help button element in the `sky-input-box` element and a\n * `sky-control-help` CSS class on that element.\n */\n@Component({\n selector: 'sky-input-box',\n templateUrl: './input-box.component.html',\n styleUrls: ['./input-box.component.scss'],\n providers: [SkyInputBoxAdapterService, SkyInputBoxHostService],\n // Note that change detection is not set to OnPush; default change detection allows the\n // invalid CSS class to be added when the content control's invalid/dirty state changes.\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyInputBoxComponent implements OnInit {\n /**\n * Indicates whether to visually highlight the input box in an error state. If `hasErrors` is `false`, the input box still\n * displays in an error state when either the `ngModel` or the Angular `FormControl` contain an error.\n * @default false\n */\n @Input()\n public hasErrors: boolean;\n\n /**\n * Indicates whether to visually highlight the input box as disabled. To disable the input box's\n * `input` element, use the HTML `disabled` attribute or the Angular `FormControl.disabled`\n * property. You must set both properties to disable an `input` element and visually indicate\n * the disabled state on the input box.\n * @default false\n */\n @Input()\n public disabled: boolean;\n\n public hostInputTemplate: TemplateRef<any>;\n\n public hostButtonsTemplate: TemplateRef<any>;\n\n public hostButtonsInsetTemplate: TemplateRef<any>;\n\n public hostButtonsLeftTemplate: TemplateRef<any>;\n\n public formControlHasFocus: boolean;\n\n public hostIconsInsetTemplate: TemplateRef<any>;\n\n public hostIconsInsetLeftTemplate: TemplateRef<any>;\n\n @ContentChild(FormControlDirective)\n public formControl: FormControlDirective;\n\n @ContentChild(FormControlName)\n public formControlByName: FormControlName;\n\n @ContentChild(NgModel)\n public ngModel: NgModel;\n\n public get hasErrorsComputed(): boolean {\n if (this.hasErrors === undefined) {\n return (\n this.controlHasErrors(this.formControl) ||\n this.controlHasErrors(this.formControlByName) ||\n this.controlHasErrors(this.ngModel)\n );\n }\n\n return this.hasErrors;\n }\n\n constructor(\n private changeRef: ChangeDetectorRef,\n private inputBoxHostSvc: SkyInputBoxHostService,\n private adapterService: SkyInputBoxAdapterService,\n private elementRef: ElementRef\n ) {}\n\n public ngOnInit(): void {\n this.inputBoxHostSvc.init(this);\n }\n\n public formControlFocusIn(): void {\n const inlineHelpEl = this.adapterService.getInlineHelpElement(\n this.elementRef\n );\n if (!this.adapterService.isFocusInElement(inlineHelpEl)) {\n this.updateHasFocus(true);\n }\n }\n\n public formControlFocusOut(): void {\n this.updateHasFocus(false);\n }\n\n public onInsetIconClick(): void {\n if (!this.disabled) {\n this.adapterService.focusControl(this.elementRef);\n }\n }\n\n public populate(args: SkyInputBoxPopulateArgs): void {\n this.hostInputTemplate = args.inputTemplate;\n this.hostButtonsTemplate = args.buttonsTemplate;\n this.hostButtonsLeftTemplate = args.buttonsLeftTemplate;\n this.hostButtonsInsetTemplate = args.buttonsInsetTemplate;\n this.hostIconsInsetTemplate = args.iconsInsetTemplate;\n this.hostIconsInsetLeftTemplate = args.iconsInsetLeftTemplate;\n }\n\n private updateHasFocus(hasFocus: boolean): void {\n // Some components manipulate the focus of elements inside an input box programmatically,\n // which can cause an `ExpressionChangedAfterItHasBeenCheckedError` if focus was set after\n // initial change detection. Using `setTimeout()` here fixes it.\n setTimeout(() => {\n this.formControlHasFocus = hasFocus;\n this.changeRef.markForCheck();\n });\n }\n\n private controlHasErrors(control: AbstractControlDirective) {\n return control && control.invalid && (control.dirty || control.touched);\n }\n}\n","<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\"></ng-container>\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"characterCountTemplate\"\n ></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\"></ng-content>\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <ng-content select=\".sky-control-help\"></ng-content>\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <ng-content select=\"sky-character-counter-indicator\"></ng-content>\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content select=\".sky-form-control\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostInputTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsLeftTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content\n select=\".sky-input-group-btn.sky-input-box-btn-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsInsetTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset-left\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetLeftTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <ng-content select=\".sky-error-label\"></ng-content>\n</ng-template>\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { SkyThemeModule } from '@skyux/theme';
|
|
4
|
+
import { SkyInputBoxComponent } from './input-box.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SkyInputBoxModule {
|
|
7
|
+
}
|
|
8
|
+
SkyInputBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
SkyInputBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxModule, declarations: [SkyInputBoxComponent], imports: [CommonModule, SkyThemeModule], exports: [SkyInputBoxComponent] });
|
|
10
|
+
SkyInputBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxModule, imports: [[CommonModule, SkyThemeModule]] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyInputBoxModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [SkyInputBoxComponent],
|
|
15
|
+
imports: [CommonModule, SkyThemeModule],
|
|
16
|
+
exports: [SkyInputBoxComponent],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=input-box.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-box.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/forms/src/lib/modules/input-box/input-box.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;;AAO7D,MAAM,OAAO,iBAAiB;;+GAAjB,iBAAiB;gHAAjB,iBAAiB,iBAJb,oBAAoB,aACzB,YAAY,EAAE,cAAc,aAC5B,oBAAoB;gHAEnB,iBAAiB,YAHnB,CAAC,YAAY,EAAE,cAAc,CAAC;4FAG5B,iBAAiB;kBAL7B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACvC,OAAO,EAAE,CAAC,oBAAoB,CAAC;iBAChC","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyInputBoxComponent } from './input-box.component';\n\n@NgModule({\n declarations: [SkyInputBoxComponent],\n imports: [CommonModule, SkyThemeModule],\n exports: [SkyInputBoxComponent],\n})\nexport class SkyInputBoxModule {}\n"]}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, ContentChildren, Input, Optional, QueryList, Self, } from '@angular/core';
|
|
2
|
+
import { NgControl } from '@angular/forms';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { SkyFormsUtility } from '../shared/forms-utility';
|
|
6
|
+
import { SkyRadioComponent } from './radio.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
let nextUniqueId = 0;
|
|
10
|
+
/**
|
|
11
|
+
* Organizes radio buttons into a group. It is required for radio
|
|
12
|
+
* buttons on Angular reactive forms, and we recommend using it with all radio buttons.
|
|
13
|
+
* On Angular forms, the component manages the selected values and keeps the forms up-to-date.
|
|
14
|
+
* When users select a radio button, its value is driven through an `ngModel` attribute that you specify on the `sky-radio-group` element.
|
|
15
|
+
*/
|
|
16
|
+
export class SkyRadioGroupComponent {
|
|
17
|
+
constructor(changeDetector, ngControl) {
|
|
18
|
+
this.changeDetector = changeDetector;
|
|
19
|
+
this.ngControl = ngControl;
|
|
20
|
+
/**
|
|
21
|
+
* Indicates whether the input is required for form validation.
|
|
22
|
+
* When you set this property to `true`, the component adds `aria-required` and `required`
|
|
23
|
+
* attributes to the input element so that forms display an invalid state until the input element
|
|
24
|
+
* is complete.
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
this.required = false;
|
|
28
|
+
this.ngUnsubscribe = new Subject();
|
|
29
|
+
this._disabled = false;
|
|
30
|
+
this._name = `sky-radio-group-${nextUniqueId++}`;
|
|
31
|
+
/* istanbul ignore next */
|
|
32
|
+
this.onChange = () => { };
|
|
33
|
+
/* istanbul ignore next */
|
|
34
|
+
this.onTouched = () => { };
|
|
35
|
+
if (this.ngControl) {
|
|
36
|
+
this.ngControl.valueAccessor = this;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Indicates whether to disable the input.
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
set disabled(value) {
|
|
44
|
+
const newDisabledState = SkyFormsUtility.coerceBooleanProperty(value);
|
|
45
|
+
if (this._disabled !== newDisabledState) {
|
|
46
|
+
this._disabled = newDisabledState;
|
|
47
|
+
this.updateRadioButtonDisabled();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
get disabled() {
|
|
51
|
+
return this._disabled;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Specifies a name for the collection of radio buttons that the component groups together.
|
|
55
|
+
* This property overwrites the deprecated `name` property on individual `sky-radio` elements,
|
|
56
|
+
* and it is required unless the `name` property is set on individual `sky-radio` elements.
|
|
57
|
+
* @required
|
|
58
|
+
*/
|
|
59
|
+
set name(value) {
|
|
60
|
+
this._name = value;
|
|
61
|
+
this.updateRadioButtonNames();
|
|
62
|
+
}
|
|
63
|
+
get name() {
|
|
64
|
+
return this._name;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Specifies the value of the radio button to select by default when the group loads.
|
|
68
|
+
* The value corresponds to the `value` property of an individual `sky-radio` element within the
|
|
69
|
+
* group.
|
|
70
|
+
*/
|
|
71
|
+
set value(value) {
|
|
72
|
+
const isNewValue = value !== this._value;
|
|
73
|
+
/* istanbul ignore else */
|
|
74
|
+
if (isNewValue) {
|
|
75
|
+
this._value = value;
|
|
76
|
+
this.onChange(this._value);
|
|
77
|
+
this.updateCheckedRadioFromValue();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
get value() {
|
|
81
|
+
return this._value;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Specifies an index for all the radio buttons in the group. If the index is not defined,
|
|
85
|
+
* the indices for individual radio buttons are set to their positions on load.
|
|
86
|
+
* This property supports accessibility by placing focus on the currently selected radio
|
|
87
|
+
* button. If no radio button is selected, it places focus on the first or last button
|
|
88
|
+
* depending on how users navigate to the radio button group.
|
|
89
|
+
*/
|
|
90
|
+
set tabIndex(value) {
|
|
91
|
+
if (this._tabIndex !== value) {
|
|
92
|
+
this._tabIndex = value;
|
|
93
|
+
this.updateRadioButtonTabIndexes();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
get tabIndex() {
|
|
97
|
+
return this._tabIndex;
|
|
98
|
+
}
|
|
99
|
+
ngAfterContentInit() {
|
|
100
|
+
// Let child radio components render before updating.
|
|
101
|
+
setTimeout(() => {
|
|
102
|
+
this.resetRadioButtons();
|
|
103
|
+
});
|
|
104
|
+
// Watch for radio selections.
|
|
105
|
+
this.watchForSelections();
|
|
106
|
+
this.radios.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
107
|
+
// Wait for child radio components to finish any rendering updates.
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
this.resetRadioButtons();
|
|
110
|
+
});
|
|
111
|
+
// Subscribe to the new radio buttons
|
|
112
|
+
this.watchForSelections();
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
ngAfterViewInit() {
|
|
116
|
+
if (this.ngControl) {
|
|
117
|
+
// Backwards compatibility support for anyone still using Validators.Required.
|
|
118
|
+
this.required =
|
|
119
|
+
this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);
|
|
120
|
+
// Avoid an ExpressionChangedAfterItHasBeenCheckedError.
|
|
121
|
+
this.changeDetector.detectChanges();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
watchForSelections() {
|
|
125
|
+
this.radios.forEach((radio) => {
|
|
126
|
+
radio.change
|
|
127
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
128
|
+
.subscribe((change) => {
|
|
129
|
+
this.onTouched();
|
|
130
|
+
this.writeValue(change.value);
|
|
131
|
+
});
|
|
132
|
+
radio.blur.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
133
|
+
this.onTouched();
|
|
134
|
+
this.changeDetector.markForCheck();
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
ngOnDestroy() {
|
|
139
|
+
this.ngUnsubscribe.next();
|
|
140
|
+
this.ngUnsubscribe.complete();
|
|
141
|
+
}
|
|
142
|
+
writeValue(value) {
|
|
143
|
+
this.value = value;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* @internal
|
|
147
|
+
* Indicates whether to disable the control. Implemented as a part of ControlValueAccessor.
|
|
148
|
+
*/
|
|
149
|
+
setDisabledState(isDisabled) {
|
|
150
|
+
this.disabled = isDisabled;
|
|
151
|
+
}
|
|
152
|
+
registerOnChange(fn) {
|
|
153
|
+
this.onChange = fn;
|
|
154
|
+
}
|
|
155
|
+
registerOnTouched(fn) {
|
|
156
|
+
this.onTouched = fn;
|
|
157
|
+
}
|
|
158
|
+
updateRadioButtonDisabled() {
|
|
159
|
+
if (this.radios) {
|
|
160
|
+
this.radios.forEach((radio) => {
|
|
161
|
+
radio.disabled = this.disabled;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
updateRadioButtonNames() {
|
|
166
|
+
if (this.radios) {
|
|
167
|
+
this.radios.forEach((radio) => {
|
|
168
|
+
radio.name = this.name;
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
updateRadioButtonTabIndexes() {
|
|
173
|
+
if (this.radios) {
|
|
174
|
+
this.radios.forEach((radio) => {
|
|
175
|
+
radio.groupTabIndex = this.tabIndex;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
updateCheckedRadioFromValue() {
|
|
180
|
+
if (!this.radios) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
this.radios.forEach((radio) => {
|
|
184
|
+
radio.checked = this._value === radio.value;
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
resetRadioButtons() {
|
|
188
|
+
this.updateCheckedRadioFromValue();
|
|
189
|
+
this.updateRadioButtonNames();
|
|
190
|
+
this.updateRadioButtonTabIndexes();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
SkyRadioGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
194
|
+
SkyRadioGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyRadioGroupComponent, selector: "sky-radio-group", inputs: { ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", disabled: "disabled", name: "name", required: "required", value: "value", tabIndex: "tabIndex" }, queries: [{ propertyName: "radios", predicate: SkyRadioComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content></ng-content>\n</div>\n" });
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyRadioGroupComponent, decorators: [{
|
|
196
|
+
type: Component,
|
|
197
|
+
args: [{
|
|
198
|
+
selector: 'sky-radio-group',
|
|
199
|
+
templateUrl: './radio-group.component.html',
|
|
200
|
+
}]
|
|
201
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NgControl, decorators: [{
|
|
202
|
+
type: Self
|
|
203
|
+
}, {
|
|
204
|
+
type: Optional
|
|
205
|
+
}] }]; }, propDecorators: { ariaLabelledBy: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], ariaLabel: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], disabled: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], name: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], required: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], value: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], tabIndex: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], radios: [{
|
|
220
|
+
type: ContentChildren,
|
|
221
|
+
args: [SkyRadioComponent, { descendants: true }]
|
|
222
|
+
}] } });
|
|
223
|
+
//# sourceMappingURL=radio-group.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/forms/src/lib/modules/radio/radio-group.component.ts","../../../../../../../../libs/components/forms/src/lib/modules/radio/radio-group.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n Self,\n} from '@angular/core';\n\nimport { NgControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyFormsUtility } from '../shared/forms-utility';\n\nimport { SkyRadioChange } from './types/radio-change';\n\nimport { SkyRadioComponent } from './radio.component';\n\nlet nextUniqueId = 0;\n\n/**\n * Organizes radio buttons into a group. It is required for radio\n * buttons on Angular reactive forms, and we recommend using it with all radio buttons.\n * On Angular forms, the component manages the selected values and keeps the forms up-to-date.\n * When users select a radio button, its value is driven through an `ngModel` attribute that you specify on the `sky-radio-group` element.\n */\n@Component({\n selector: 'sky-radio-group',\n templateUrl: './radio-group.component.html',\n})\nexport class SkyRadioGroupComponent\n implements AfterContentInit, AfterViewInit, OnDestroy\n{\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the radio button group. This sets the radio button group's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group does not include a visible label, use `ariaLabel` instead.\n */\n @Input()\n public ariaLabelledBy: string;\n\n /**\n * Specifies an ARIA label for the radio button group. This sets the\n * radio button group's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group includes a visible label, use `ariaLabelledBy` instead.\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Indicates whether to disable the input.\n * @default false\n */\n @Input()\n public set disabled(value: boolean) {\n const newDisabledState = SkyFormsUtility.coerceBooleanProperty(value);\n if (this._disabled !== newDisabledState) {\n this._disabled = newDisabledState;\n this.updateRadioButtonDisabled();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Specifies a name for the collection of radio buttons that the component groups together.\n * This property overwrites the deprecated `name` property on individual `sky-radio` elements,\n * and it is required unless the `name` property is set on individual `sky-radio` elements.\n * @required\n */\n @Input()\n public set name(value: string) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n public get name(): string {\n return this._name;\n }\n\n /**\n * Indicates whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * @default false\n */\n @Input()\n public required: boolean = false;\n\n /**\n * Specifies the value of the radio button to select by default when the group loads.\n * The value corresponds to the `value` property of an individual `sky-radio` element within the\n * group.\n */\n @Input()\n public set value(value: any) {\n const isNewValue = value !== this._value;\n\n /* istanbul ignore else */\n if (isNewValue) {\n this._value = value;\n this.onChange(this._value);\n this.updateCheckedRadioFromValue();\n }\n }\n public get value(): any {\n return this._value;\n }\n\n /**\n * Specifies an index for all the radio buttons in the group. If the index is not defined,\n * the indices for individual radio buttons are set to their positions on load.\n * This property supports accessibility by placing focus on the currently selected radio\n * button. If no radio button is selected, it places focus on the first or last button\n * depending on how users navigate to the radio button group.\n */\n @Input()\n public set tabIndex(value: number) {\n if (this._tabIndex !== value) {\n this._tabIndex = value;\n this.updateRadioButtonTabIndexes();\n }\n }\n public get tabIndex(): number {\n return this._tabIndex;\n }\n\n @ContentChildren(SkyRadioComponent, { descendants: true })\n private radios: QueryList<SkyRadioComponent>;\n\n private ngUnsubscribe = new Subject();\n\n private _disabled: boolean = false;\n\n private _name = `sky-radio-group-${nextUniqueId++}`;\n\n private _tabIndex: number;\n\n private _value: any;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n @Self() @Optional() private ngControl: NgControl\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngAfterContentInit(): void {\n // Let child radio components render before updating.\n setTimeout(() => {\n this.resetRadioButtons();\n });\n\n // Watch for radio selections.\n this.watchForSelections();\n\n this.radios.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n // Wait for child radio components to finish any rendering updates.\n setTimeout(() => {\n this.resetRadioButtons();\n });\n\n // Subscribe to the new radio buttons\n this.watchForSelections();\n });\n }\n\n public ngAfterViewInit(): void {\n if (this.ngControl) {\n // Backwards compatibility support for anyone still using Validators.Required.\n this.required =\n this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);\n\n // Avoid an ExpressionChangedAfterItHasBeenCheckedError.\n this.changeDetector.detectChanges();\n }\n }\n\n public watchForSelections() {\n this.radios.forEach((radio) => {\n radio.change\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((change: SkyRadioChange) => {\n this.onTouched();\n this.writeValue(change.value);\n });\n radio.blur.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched();\n this.changeDetector.markForCheck();\n });\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public writeValue(value: any): void {\n this.value = value;\n }\n\n /**\n * @internal\n * Indicates whether to disable the control. Implemented as a part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /* istanbul ignore next */\n private onChange: (value: any) => void = () => {};\n /* istanbul ignore next */\n private onTouched: () => any = () => {};\n\n private updateRadioButtonDisabled(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.disabled = this.disabled;\n });\n }\n }\n\n private updateRadioButtonNames(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n\n private updateRadioButtonTabIndexes(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.groupTabIndex = this.tabIndex;\n });\n }\n }\n\n private updateCheckedRadioFromValue(): void {\n if (!this.radios) {\n return;\n }\n\n this.radios.forEach((radio) => {\n radio.checked = this._value === radio.value;\n });\n }\n\n private resetRadioButtons(): void {\n this.updateCheckedRadioFromValue();\n this.updateRadioButtonNames();\n this.updateRadioButtonTabIndexes();\n }\n}\n","<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content></ng-content>\n</div>\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Specifies a label for the radio button.
|
|
5
|
+
*/
|
|
6
|
+
export class SkyRadioLabelComponent {
|
|
7
|
+
// When clicking on a checkbox label, Angular registers two click events.
|
|
8
|
+
// This handler ignores all events except for those that deal
|
|
9
|
+
// with the checkbox input explicitly.
|
|
10
|
+
onClick(event) {
|
|
11
|
+
event.stopPropagation();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
SkyRadioLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyRadioLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
SkyRadioLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyRadioLabelComponent, selector: "sky-radio-label", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0, template: "<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyRadioLabelComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: 'sky-radio-label',
|
|
20
|
+
templateUrl: './radio-label.component.html',
|
|
21
|
+
}]
|
|
22
|
+
}], propDecorators: { onClick: [{
|
|
23
|
+
type: HostListener,
|
|
24
|
+
args: ['click', ['$event']]
|
|
25
|
+
}] } });
|
|
26
|
+
//# sourceMappingURL=radio-label.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-label.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/forms/src/lib/modules/radio/radio-label.component.ts","../../../../../../../../libs/components/forms/src/lib/modules/radio/radio-label.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;AAExD;;GAEG;AAKH,MAAM,OAAO,sBAAsB;IACjC,yEAAyE;IACzE,6DAA6D;IAC7D,sCAAsC;IAE/B,OAAO,CAAC,KAAiB;QAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;;oHAPU,sBAAsB;wGAAtB,sBAAsB,4GCTnC,2EAGA;4FDMa,sBAAsB;kBAJlC,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,WAAW,EAAE,8BAA8B;iBAC5C;8BAMQ,OAAO;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["import { Component, HostListener } from '@angular/core';\n\n/**\n * Specifies a label for the radio button.\n */\n@Component({\n selector: 'sky-radio-label',\n templateUrl: './radio-label.component.html',\n})\nexport class SkyRadioLabelComponent {\n // When clicking on a checkbox label, Angular registers two click events.\n // This handler ignores all events except for those that deal\n // with the checkbox input explicitly.\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n"]}
|