@skyux/forms 5.9.4 → 6.0.0-beta.10
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/documentation.json +693 -693
- package/esm2020/index.mjs +43 -0
- package/esm2020/lib/modules/character-counter/character-counter-indicator.component.mjs +32 -0
- package/esm2020/lib/modules/character-counter/character-counter.directive.mjs +84 -0
- package/esm2020/lib/modules/character-counter/character-counter.module.mjs +46 -0
- package/esm2020/lib/modules/checkbox/checkbox-change.mjs +6 -0
- package/esm2020/lib/modules/checkbox/checkbox-label.component.mjs +14 -0
- package/esm2020/lib/modules/checkbox/checkbox-required-validator.directive.mjs +30 -0
- package/esm2020/lib/modules/checkbox/checkbox.component.mjs +237 -0
- package/esm2020/lib/modules/checkbox/checkbox.module.mjs +34 -0
- package/esm2020/lib/modules/file-attachment/file-attachment-label.component.mjs +14 -0
- package/esm2020/lib/modules/file-attachment/file-attachment.component.mjs +326 -0
- package/esm2020/lib/modules/file-attachment/file-attachment.service.mjs +94 -0
- package/esm2020/lib/modules/file-attachment/file-attachments.module.mjs +68 -0
- package/esm2020/lib/modules/file-attachment/file-drop.component.mjs +216 -0
- package/esm2020/lib/modules/file-attachment/file-item-error-type.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/file-item.component.mjs +112 -0
- package/esm2020/lib/modules/file-attachment/file-item.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/file-item.service.mjs +70 -0
- package/esm2020/lib/modules/file-attachment/file-link.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/file-size.pipe.mjs +58 -0
- package/esm2020/lib/modules/file-attachment/types/file-attachment-change.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/types/file-attachment-click.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/types/file-drop-change.mjs +2 -0
- package/esm2020/lib/modules/input-box/input-box-adapter.service.mjs +35 -0
- package/esm2020/lib/modules/input-box/input-box-host.service.mjs +19 -0
- package/esm2020/lib/modules/input-box/input-box-populate-args.mjs +2 -0
- package/esm2020/lib/modules/input-box/input-box.component.mjs +89 -0
- package/esm2020/lib/modules/input-box/input-box.module.mjs +19 -0
- package/esm2020/lib/modules/radio/radio-group.component.mjs +220 -0
- package/esm2020/lib/modules/radio/radio-label.component.mjs +23 -0
- package/esm2020/lib/modules/radio/radio.component.mjs +254 -0
- package/esm2020/lib/modules/radio/radio.module.mjs +28 -0
- package/esm2020/lib/modules/radio/types/radio-change.mjs +2 -0
- package/esm2020/lib/modules/selection-box/selection-box-adapter.service.mjs +123 -0
- package/esm2020/lib/modules/selection-box/selection-box-description.component.mjs +14 -0
- package/esm2020/lib/modules/selection-box/selection-box-grid.component.mjs +128 -0
- package/esm2020/lib/modules/selection-box/selection-box-header.component.mjs +14 -0
- package/esm2020/lib/modules/selection-box/selection-box.component.mjs +101 -0
- package/esm2020/lib/modules/selection-box/selection-box.module.mjs +40 -0
- package/esm2020/lib/modules/selection-box/types/selection-box-grid-align-items-type.mjs +2 -0
- package/esm2020/lib/modules/selection-box/types/selection-box-grid-align-items.mjs +2 -0
- package/esm2020/lib/modules/shared/forms-utility.mjs +26 -0
- package/esm2020/lib/modules/shared/sky-forms-resources.module.mjs +89 -0
- package/esm2020/lib/modules/toggle-switch/toggle-switch-label.component.mjs +14 -0
- package/esm2020/lib/modules/toggle-switch/toggle-switch.component.mjs +151 -0
- package/esm2020/lib/modules/toggle-switch/toggle-switch.module.mjs +20 -0
- package/esm2020/lib/modules/toggle-switch/types/toggle-switch-change.mjs +2 -0
- package/esm2020/skyux-forms.mjs +5 -0
- package/esm2020/testing/checkbox-fixture.mjs +88 -0
- package/esm2020/testing/public-api.mjs +2 -0
- package/esm2020/testing/skyux-forms-testing.mjs +5 -0
- package/fesm2015/{skyux-forms-testing.js → skyux-forms-testing.mjs} +1 -1
- package/fesm2015/skyux-forms-testing.mjs.map +1 -0
- package/fesm2015/skyux-forms.mjs +2684 -0
- package/fesm2015/skyux-forms.mjs.map +1 -0
- package/{esm2015/testing/checkbox-fixture.js → fesm2020/skyux-forms-testing.mjs} +9 -2
- package/fesm2020/skyux-forms-testing.mjs.map +1 -0
- package/fesm2020/skyux-forms.mjs +2676 -0
- package/fesm2020/skyux-forms.mjs.map +1 -0
- package/package.json +39 -15
- package/testing/package.json +5 -5
- package/bundles/skyux-forms-testing.umd.js +0 -123
- package/bundles/skyux-forms.umd.js +0 -3430
- package/esm2015/index.js +0 -43
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js +0 -37
- package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js.map +0 -1
- package/esm2015/lib/modules/character-counter/character-counter.directive.js +0 -84
- package/esm2015/lib/modules/character-counter/character-counter.directive.js.map +0 -1
- package/esm2015/lib/modules/character-counter/character-counter.module.js +0 -46
- package/esm2015/lib/modules/character-counter/character-counter.module.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox-change.js +0 -6
- package/esm2015/lib/modules/checkbox/checkbox-change.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox-label.component.js +0 -17
- package/esm2015/lib/modules/checkbox/checkbox-label.component.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js +0 -32
- package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox.component.js +0 -241
- package/esm2015/lib/modules/checkbox/checkbox.component.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox.module.js +0 -34
- package/esm2015/lib/modules/checkbox/checkbox.module.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js +0 -19
- package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachment.component.js +0 -335
- package/esm2015/lib/modules/file-attachment/file-attachment.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachment.service.js +0 -94
- package/esm2015/lib/modules/file-attachment/file-attachment.service.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachments.module.js +0 -68
- package/esm2015/lib/modules/file-attachment/file-attachments.module.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-drop.component.js +0 -222
- package/esm2015/lib/modules/file-attachment/file-drop.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item-error-type.js +0 -2
- package/esm2015/lib/modules/file-attachment/file-item-error-type.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item.component.js +0 -116
- package/esm2015/lib/modules/file-attachment/file-item.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item.js +0 -2
- package/esm2015/lib/modules/file-attachment/file-item.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item.service.js +0 -72
- package/esm2015/lib/modules/file-attachment/file-item.service.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-link.js +0 -2
- package/esm2015/lib/modules/file-attachment/file-link.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-size.pipe.js +0 -60
- package/esm2015/lib/modules/file-attachment/file-size.pipe.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js +0 -2
- package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js +0 -2
- package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/types/file-drop-change.js +0 -2
- package/esm2015/lib/modules/file-attachment/types/file-drop-change.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box-adapter.service.js +0 -35
- package/esm2015/lib/modules/input-box/input-box-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box-host.service.js +0 -19
- package/esm2015/lib/modules/input-box/input-box-host.service.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box-populate-args.js +0 -2
- package/esm2015/lib/modules/input-box/input-box-populate-args.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box.component.js +0 -97
- package/esm2015/lib/modules/input-box/input-box.component.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box.module.js +0 -19
- package/esm2015/lib/modules/input-box/input-box.module.js.map +0 -1
- package/esm2015/lib/modules/radio/radio-group.component.js +0 -223
- package/esm2015/lib/modules/radio/radio-group.component.js.map +0 -1
- package/esm2015/lib/modules/radio/radio-label.component.js +0 -26
- package/esm2015/lib/modules/radio/radio-label.component.js.map +0 -1
- package/esm2015/lib/modules/radio/radio.component.js +0 -262
- package/esm2015/lib/modules/radio/radio.component.js.map +0 -1
- package/esm2015/lib/modules/radio/radio.module.js +0 -28
- package/esm2015/lib/modules/radio/radio.module.js.map +0 -1
- package/esm2015/lib/modules/radio/types/radio-change.js +0 -2
- package/esm2015/lib/modules/radio/types/radio-change.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js +0 -124
- package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-description.component.js +0 -17
- package/esm2015/lib/modules/selection-box/selection-box-description.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-grid.component.js +0 -134
- package/esm2015/lib/modules/selection-box/selection-box-grid.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-header.component.js +0 -17
- package/esm2015/lib/modules/selection-box/selection-box-header.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box.component.js +0 -107
- package/esm2015/lib/modules/selection-box/selection-box.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box.module.js +0 -40
- package/esm2015/lib/modules/selection-box/selection-box.module.js.map +0 -1
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js +0 -2
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js.map +0 -1
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js +0 -2
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js.map +0 -1
- package/esm2015/lib/modules/shared/forms-utility.js +0 -26
- package/esm2015/lib/modules/shared/forms-utility.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-forms-resources.module.js +0 -89
- package/esm2015/lib/modules/shared/sky-forms-resources.module.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js +0 -18
- package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js +0 -159
- package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js +0 -20
- package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js +0 -2
- package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js.map +0 -1
- package/esm2015/skyux-forms.js +0 -5
- package/esm2015/skyux-forms.js.map +0 -1
- package/esm2015/testing/checkbox-fixture.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -2
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-forms-testing.js +0 -5
- package/esm2015/testing/skyux-forms-testing.js.map +0 -1
- package/fesm2015/skyux-forms-testing.js.map +0 -1
- package/fesm2015/skyux-forms.js +0 -2771
- package/fesm2015/skyux-forms.js.map +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export * from './lib/modules/character-counter/character-counter.module';
|
|
2
|
+
export * from './lib/modules/checkbox/checkbox-change';
|
|
3
|
+
export * from './lib/modules/checkbox/checkbox.module';
|
|
4
|
+
export * from './lib/modules/file-attachment/types/file-attachment-change';
|
|
5
|
+
export * from './lib/modules/file-attachment/types/file-attachment-click';
|
|
6
|
+
export * from './lib/modules/file-attachment/types/file-drop-change';
|
|
7
|
+
export * from './lib/modules/file-attachment/file-attachments.module';
|
|
8
|
+
export * from './lib/modules/file-attachment/file-item';
|
|
9
|
+
export * from './lib/modules/file-attachment/file-item-error-type';
|
|
10
|
+
export * from './lib/modules/file-attachment/file-link';
|
|
11
|
+
export * from './lib/modules/file-attachment/file-size.pipe';
|
|
12
|
+
export * from './lib/modules/input-box/input-box.module';
|
|
13
|
+
export * from './lib/modules/input-box/input-box-host.service';
|
|
14
|
+
export * from './lib/modules/input-box/input-box-populate-args';
|
|
15
|
+
export * from './lib/modules/radio/types/radio-change';
|
|
16
|
+
export * from './lib/modules/radio/radio.module';
|
|
17
|
+
export * from './lib/modules/selection-box/types/selection-box-grid-align-items';
|
|
18
|
+
export * from './lib/modules/selection-box/types/selection-box-grid-align-items-type';
|
|
19
|
+
export * from './lib/modules/selection-box/selection-box.module';
|
|
20
|
+
export * from './lib/modules/toggle-switch/types/toggle-switch-change';
|
|
21
|
+
export * from './lib/modules/toggle-switch/toggle-switch.module';
|
|
22
|
+
// Components and directives must be exported to support Angular's "partial" Ivy compiler.
|
|
23
|
+
// Obscure names are used to indicate types are not part of the public API.
|
|
24
|
+
export { SkyCharacterCounterIndicatorComponent as λ1 } from './lib/modules/character-counter/character-counter-indicator.component';
|
|
25
|
+
export { SkyCharacterCounterInputDirective as λ2 } from './lib/modules/character-counter/character-counter.directive';
|
|
26
|
+
export { SkyCheckboxComponent as λ3 } from './lib/modules/checkbox/checkbox.component';
|
|
27
|
+
export { SkyCheckboxLabelComponent as λ4 } from './lib/modules/checkbox/checkbox-label.component';
|
|
28
|
+
export { SkyCheckboxRequiredValidatorDirective as λ5 } from './lib/modules/checkbox/checkbox-required-validator.directive';
|
|
29
|
+
export { SkyFileAttachmentLabelComponent as λ6 } from './lib/modules/file-attachment/file-attachment-label.component';
|
|
30
|
+
export { SkyFileAttachmentComponent as λ7 } from './lib/modules/file-attachment/file-attachment.component';
|
|
31
|
+
export { SkyFileDropComponent as λ8 } from './lib/modules/file-attachment/file-drop.component';
|
|
32
|
+
export { SkyFileItemComponent as λ9 } from './lib/modules/file-attachment/file-item.component';
|
|
33
|
+
export { SkyInputBoxComponent as λ10 } from './lib/modules/input-box/input-box.component';
|
|
34
|
+
export { SkyRadioGroupComponent as λ11 } from './lib/modules/radio/radio-group.component';
|
|
35
|
+
export { SkyRadioLabelComponent as λ12 } from './lib/modules/radio/radio-label.component';
|
|
36
|
+
export { SkyRadioComponent as λ13 } from './lib/modules/radio/radio.component';
|
|
37
|
+
export { SkySelectionBoxDescriptionComponent as λ14 } from './lib/modules/selection-box/selection-box-description.component';
|
|
38
|
+
export { SkySelectionBoxGridComponent as λ15 } from './lib/modules/selection-box/selection-box-grid.component';
|
|
39
|
+
export { SkySelectionBoxHeaderComponent as λ16 } from './lib/modules/selection-box/selection-box-header.component';
|
|
40
|
+
export { SkySelectionBoxComponent as λ17 } from './lib/modules/selection-box/selection-box.component';
|
|
41
|
+
export { SkyToggleSwitchLabelComponent as λ18 } from './lib/modules/toggle-switch/toggle-switch-label.component';
|
|
42
|
+
export { SkyToggleSwitchComponent as λ19 } from './lib/modules/toggle-switch/toggle-switch.component';
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMERBQTBELENBQUM7QUFFekUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBRXZELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUU3RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpREFBaUQsQ0FBQztBQUVoRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0NBQWtDLENBQUM7QUFFakQsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsa0RBQWtELENBQUM7QUFFakUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLDBGQUEwRjtBQUMxRiwyRUFBMkU7QUFFM0UsT0FBTyxFQUFFLHFDQUFxQyxJQUFJLEVBQUUsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxpQ0FBaUMsSUFBSSxFQUFFLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN0SCxPQUFPLEVBQUUsb0JBQW9CLElBQUksRUFBRSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixJQUFJLEVBQUUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQ0FBcUMsSUFBSSxFQUFFLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzSCxPQUFPLEVBQUUsK0JBQStCLElBQUksRUFBRSxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdEgsT0FBTyxFQUFFLDBCQUEwQixJQUFJLEVBQUUsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLElBQUksRUFBRSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixJQUFJLEdBQUcsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxHQUFHLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLElBQUksR0FBRyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQ0FBbUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsNEJBQTRCLElBQUksR0FBRyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDL0csT0FBTyxFQUFFLDhCQUE4QixJQUFJLEdBQUcsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxHQUFHLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsNkJBQTZCLElBQUksR0FBRyxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDakgsT0FBTyxFQUFFLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxNQUFNLHFEQUFxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWNoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94Lm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L3R5cGVzL2ZpbGUtYXR0YWNobWVudC1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvdHlwZXMvZmlsZS1hdHRhY2htZW50LWNsaWNrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L3R5cGVzL2ZpbGUtZHJvcC1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtaXRlbS1lcnJvci10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtbGluayc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLXNpemUucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LWhvc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3gtcG9wdWxhdGUtYXJncyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vdHlwZXMvcmFkaW8tY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vcmFkaW8ubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3R5cGVzL3NlbGVjdGlvbi1ib3gtZ3JpZC1hbGlnbi1pdGVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvdHlwZXMvc2VsZWN0aW9uLWJveC1ncmlkLWFsaWduLWl0ZW1zLXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3gubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90b2dnbGUtc3dpdGNoL3R5cGVzL3RvZ2dsZS1zd2l0Y2gtY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdG9nZ2xlLXN3aXRjaC90b2dnbGUtc3dpdGNoLm1vZHVsZSc7XG5cbi8vIENvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgbXVzdCBiZSBleHBvcnRlZCB0byBzdXBwb3J0IEFuZ3VsYXIncyBcInBhcnRpYWxcIiBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cblxuZXhwb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudCBhcyDOuzEgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoYXJhY3Rlci1jb3VudGVyL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlIGFzIM67MiB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUNoZWNrYm94Q29tcG9uZW50IGFzIM67MyB9IGZyb20gJy4vbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUNoZWNrYm94TGFiZWxDb21wb25lbnQgYXMgzrs0IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hSZXF1aXJlZFZhbGlkYXRvckRpcmVjdGl2ZSBhcyDOuzUgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LXJlcXVpcmVkLXZhbGlkYXRvci5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRMYWJlbENvbXBvbmVudCBhcyDOuzYgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUZpbGVBdHRhY2htZW50Q29tcG9uZW50IGFzIM67NyB9IGZyb20gJy4vbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5RmlsZURyb3BDb21wb25lbnQgYXMgzrs4IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lGaWxlSXRlbUNvbXBvbmVudCBhcyDOuzkgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreUlucHV0Qm94Q29tcG9uZW50IGFzIM67MTAgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3guY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVJhZGlvR3JvdXBDb21wb25lbnQgYXMgzrsxMSB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVJhZGlvTGFiZWxDb21wb25lbnQgYXMgzrsxMiB9IGZyb20gJy4vbGliL21vZHVsZXMvcmFkaW8vcmFkaW8tbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVJhZGlvQ29tcG9uZW50IGFzIM67MTMgfSBmcm9tICcuL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hEZXNjcmlwdGlvbkNvbXBvbmVudCBhcyDOuzE0IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3gtZGVzY3JpcHRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveEdyaWRDb21wb25lbnQgYXMgzrsxNSB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94LWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVNlbGVjdGlvbkJveEhlYWRlckNvbXBvbmVudCBhcyDOuzE2IH0gZnJvbSAnLi9saWIvbW9kdWxlcy9zZWxlY3Rpb24tYm94L3NlbGVjdGlvbi1ib3gtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lTZWxlY3Rpb25Cb3hDb21wb25lbnQgYXMgzrsxNyB9IGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0aW9uLWJveC9zZWxlY3Rpb24tYm94LmNvbXBvbmVudCc7XG5leHBvcnQgeyBTa3lUb2dnbGVTd2l0Y2hMYWJlbENvbXBvbmVudCBhcyDOuzE4IH0gZnJvbSAnLi9saWIvbW9kdWxlcy90b2dnbGUtc3dpdGNoL3RvZ2dsZS1zd2l0Y2gtbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCB7IFNreVRvZ2dsZVN3aXRjaENvbXBvbmVudCBhcyDOuzE5IH0gZnJvbSAnLi9saWIvbW9kdWxlcy90b2dnbGUtc3dpdGNoL3RvZ2dsZS1zd2l0Y2guY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@skyux/i18n";
|
|
5
|
+
export class SkyCharacterCounterIndicatorComponent {
|
|
6
|
+
constructor(changeDetector) {
|
|
7
|
+
this.changeDetector = changeDetector;
|
|
8
|
+
this.currentCharacterCountLimit = 0;
|
|
9
|
+
this.currentCharacterCount = 0;
|
|
10
|
+
}
|
|
11
|
+
get characterCount() {
|
|
12
|
+
return this.currentCharacterCount;
|
|
13
|
+
}
|
|
14
|
+
set characterCount(count) {
|
|
15
|
+
this.currentCharacterCount = count;
|
|
16
|
+
this.changeDetector.markForCheck();
|
|
17
|
+
}
|
|
18
|
+
get characterCountLimit() {
|
|
19
|
+
return this.currentCharacterCountLimit;
|
|
20
|
+
}
|
|
21
|
+
set characterCountLimit(limit) {
|
|
22
|
+
this.currentCharacterCountLimit = limit;
|
|
23
|
+
this.changeDetector.markForCheck();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
SkyCharacterCounterIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
SkyCharacterCounterIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyCharacterCounterIndicatorComponent, selector: "sky-character-counter-indicator", ngImport: i0, template: "<span\n class=\"sky-character-count-label sky-deemphasized\"\n [ngClass]=\"{ 'sky-error-label': characterCount > characterCountLimit }\"\n>\n {{ characterCount + '/' + characterCountLimit }}\n</span>\n<span aria-live=\"polite\" class=\"sky-screen-reader-only\">\n {{ characterCount }} {{ 'skyux_character_count_message' | skyLibResources }}\n {{ characterCountLimit }}.\n {{\n characterCount > characterCountLimit\n ? ('skyux_character_count_over_limit' | skyLibResources)\n : ''\n }}\n</span>\n", styles: [":host{flex-shrink:.0001}.sky-character-count-label.sky-error-label{margin:0}.sky-character-count-label.sky-error-label:before{font-style:normal}.sky-screen-reader-only{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "skyLibResources": i2.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterIndicatorComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'sky-character-counter-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"sky-character-count-label sky-deemphasized\"\n [ngClass]=\"{ 'sky-error-label': characterCount > characterCountLimit }\"\n>\n {{ characterCount + '/' + characterCountLimit }}\n</span>\n<span aria-live=\"polite\" class=\"sky-screen-reader-only\">\n {{ characterCount }} {{ 'skyux_character_count_message' | skyLibResources }}\n {{ characterCountLimit }}.\n {{\n characterCount > characterCountLimit\n ? ('skyux_character_count_over_limit' | skyLibResources)\n : ''\n }}\n</span>\n", styles: [":host{flex-shrink:.0001}.sky-character-count-label.sky-error-label{margin:0}.sky-character-count-label.sky-error-label:before{font-style:normal}.sky-screen-reader-only{width:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);outline:none;white-space:nowrap}\n"] }]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7OztBQVF2QixNQUFNLE9BQU8scUNBQXFDO0lBT2hELFlBQW9CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUg3QywrQkFBMEIsR0FBRyxDQUFDLENBQUM7UUFDL0IsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO0lBRXNCLENBQUM7SUFFekQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLGNBQWMsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsbUJBQW1CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7a0lBekJVLHFDQUFxQztzSEFBckMscUNBQXFDLHVFQ1psRCxxZ0JBZUE7MkZESGEscUNBQXFDO2tCQU5qRCxTQUFTOytCQUNFLGlDQUFpQyxtQkFHMUIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQge1xuICBwdWJsaWMgY2hhcmFjdGVyQ291bnRNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBvdmVyTGltaXRNZXNzYWdlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjdXJyZW50Q2hhcmFjdGVyQ291bnRMaW1pdCA9IDA7XG4gIHByaXZhdGUgY3VycmVudENoYXJhY3RlckNvdW50ID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBwdWJsaWMgZ2V0IGNoYXJhY3RlckNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudENoYXJhY3RlckNvdW50O1xuICB9XG5cbiAgcHVibGljIHNldCBjaGFyYWN0ZXJDb3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyQ291bnQgPSBjb3VudDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyYWN0ZXJDb3VudExpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudENoYXJhY3RlckNvdW50TGltaXQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGNoYXJhY3RlckNvdW50TGltaXQobGltaXQ6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudENoYXJhY3RlckNvdW50TGltaXQgPSBsaW1pdDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cInNreS1jaGFyYWN0ZXItY291bnQtbGFiZWwgc2t5LWRlZW1waGFzaXplZFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3NreS1lcnJvci1sYWJlbCc6IGNoYXJhY3RlckNvdW50ID4gY2hhcmFjdGVyQ291bnRMaW1pdCB9XCJcbj5cbiAge3sgY2hhcmFjdGVyQ291bnQgKyAnLycgKyBjaGFyYWN0ZXJDb3VudExpbWl0IH19XG48L3NwYW4+XG48c3BhbiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAge3sgY2hhcmFjdGVyQ291bnQgfX0ge3sgJ3NreXV4X2NoYXJhY3Rlcl9jb3VudF9tZXNzYWdlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICB7eyBjaGFyYWN0ZXJDb3VudExpbWl0IH19LlxuICB7e1xuICAgIGNoYXJhY3RlckNvdW50ID4gY2hhcmFjdGVyQ291bnRMaW1pdFxuICAgICAgPyAoJ3NreXV4X2NoYXJhY3Rlcl9jb3VudF9vdmVyX2xpbWl0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgIDogJydcbiAgfX1cbjwvc3Bhbj5cbiJdfQ==
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALIDATORS, } from '@angular/forms';
|
|
3
|
+
import { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Creates an input field that validates the number of characters. Place this directive on
|
|
7
|
+
* an `input` or `textarea` element. If users enter more characters than allowed, then the
|
|
8
|
+
* input field is invalid and the component displays an error indicator.
|
|
9
|
+
* @required
|
|
10
|
+
*/
|
|
11
|
+
export class SkyCharacterCounterInputDirective {
|
|
12
|
+
constructor() {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
14
|
+
this._validatorChange = () => { };
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Specifies the maximum number of characters allowed in the input field. Place this directive
|
|
18
|
+
* on an `input` or `textarea` element. This property accepts `number` values.
|
|
19
|
+
* @required
|
|
20
|
+
*/
|
|
21
|
+
set skyCharacterCounterLimit(value) {
|
|
22
|
+
this._skyCharacterCounterLimit = value;
|
|
23
|
+
this.updateIndicatorLimit(this.skyCharacterCounterLimit);
|
|
24
|
+
this._validatorChange();
|
|
25
|
+
}
|
|
26
|
+
get skyCharacterCounterLimit() {
|
|
27
|
+
return this._skyCharacterCounterLimit || 0;
|
|
28
|
+
}
|
|
29
|
+
validate(control) {
|
|
30
|
+
const value = control.value;
|
|
31
|
+
this.updateIndicatorCount((value && value.length) || 0);
|
|
32
|
+
if (!value) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (value.length > this.skyCharacterCounterLimit) {
|
|
36
|
+
// This is needed to apply the appropriate error styles to the input.
|
|
37
|
+
control.markAsTouched();
|
|
38
|
+
return {
|
|
39
|
+
skyCharacterCounter: {
|
|
40
|
+
invalid: value,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
registerOnValidatorChange(fn) {
|
|
46
|
+
this._validatorChange = fn;
|
|
47
|
+
}
|
|
48
|
+
updateIndicatorCount(count) {
|
|
49
|
+
if (this.skyCharacterCounterIndicator) {
|
|
50
|
+
this.skyCharacterCounterIndicator.characterCount = count;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
updateIndicatorLimit(limit) {
|
|
54
|
+
if (this.skyCharacterCounterIndicator) {
|
|
55
|
+
this.skyCharacterCounterIndicator.characterCountLimit = limit;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
SkyCharacterCounterInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
60
|
+
SkyCharacterCounterInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyCharacterCounterInputDirective, selector: "[skyCharacterCounter]", inputs: { skyCharacterCounterIndicator: "skyCharacterCounterIndicator", skyCharacterCounterLimit: "skyCharacterCounterLimit" }, providers: [
|
|
61
|
+
{
|
|
62
|
+
provide: NG_VALIDATORS,
|
|
63
|
+
useExisting: SkyCharacterCounterInputDirective,
|
|
64
|
+
multi: true,
|
|
65
|
+
},
|
|
66
|
+
], ngImport: i0 });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterInputDirective, decorators: [{
|
|
68
|
+
type: Directive,
|
|
69
|
+
args: [{
|
|
70
|
+
selector: '[skyCharacterCounter]',
|
|
71
|
+
providers: [
|
|
72
|
+
{
|
|
73
|
+
provide: NG_VALIDATORS,
|
|
74
|
+
useExisting: SkyCharacterCounterInputDirective,
|
|
75
|
+
multi: true,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
}]
|
|
79
|
+
}], propDecorators: { skyCharacterCounterIndicator: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], skyCharacterCounterLimit: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}] } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUVMLGFBQWEsR0FHZCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUVoRzs7Ozs7R0FLRztBQVdILE1BQU0sT0FBTyxpQ0FBaUM7SUFWOUM7UUEwRUUsZ0VBQWdFO1FBQ3hELHFCQUFnQixHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQUNyQztJQXpEQzs7OztPQUlHO0lBQ0gsSUFDVyx3QkFBd0IsQ0FBQyxLQUFhO1FBQy9DLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUlNLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRTVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU87U0FDUjtRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDaEQscUVBQXFFO1lBQ3JFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUV4QixPQUFPO2dCQUNMLG1CQUFtQixFQUFFO29CQUNuQixPQUFPLEVBQUUsS0FBSztpQkFDZjthQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxFQUFjO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWE7UUFDeEMsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDckMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBYTtRQUN4QyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNyQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQzs7OEhBOURVLGlDQUFpQztrSEFBakMsaUNBQWlDLGdMQVJqQztRQUNUO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLGlDQUFpQztZQUM5QyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7MkZBRVUsaUNBQWlDO2tCQVY3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxtQ0FBbUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzhCQVFRLDRCQUE0QjtzQkFEbEMsS0FBSztnQkFTSyx3QkFBd0I7c0JBRGxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGlucHV0IGZpZWxkIHRoYXQgdmFsaWRhdGVzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycy4gUGxhY2UgdGhpcyBkaXJlY3RpdmUgb25cbiAqIGFuIGBpbnB1dGAgb3IgYHRleHRhcmVhYCBlbGVtZW50LiBJZiB1c2VycyBlbnRlciBtb3JlIGNoYXJhY3RlcnMgdGhhbiBhbGxvd2VkLCB0aGVuIHRoZVxuICogaW5wdXQgZmllbGQgaXMgaW52YWxpZCBhbmQgdGhlIGNvbXBvbmVudCBkaXNwbGF5cyBhbiBlcnJvciBpbmRpY2F0b3IuXG4gKiBAcmVxdWlyZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUNoYXJhY3RlckNvdW50ZXJdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lDaGFyYWN0ZXJDb3VudGVySW5wdXREaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDaGFyYWN0ZXJDb3VudGVySW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjaGFyYWN0ZXIgY291bnQgaW5kaWNhdG9yIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIHRoZSBjaGFyYWN0ZXIgY291bnQsXG4gICAqIGNoYXJhY3RlciBsaW1pdCwgYW5kIG92ZXItdGhlLWxpbWl0IGluZGljYXRvci4gUGxhY2UgdGhpcyBkaXJlY3RpdmUgb24gYW4gYGlucHV0YCBvclxuICAgKiBgdGV4dGFyZWFgIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcjogU2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvckNvbXBvbmVudDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQgaW4gdGhlIGlucHV0IGZpZWxkLiBQbGFjZSB0aGlzIGRpcmVjdGl2ZVxuICAgKiBvbiBhbiBgaW5wdXRgIG9yIGB0ZXh0YXJlYWAgZWxlbWVudC4gVGhpcyBwcm9wZXJ0eSBhY2NlcHRzIGBudW1iZXJgIHZhbHVlcy5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreUNoYXJhY3RlckNvdW50ZXJMaW1pdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2t5Q2hhcmFjdGVyQ291bnRlckxpbWl0ID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVJbmRpY2F0b3JMaW1pdCh0aGlzLnNreUNoYXJhY3RlckNvdW50ZXJMaW1pdCk7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNreUNoYXJhY3RlckNvdW50ZXJMaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9za3lDaGFyYWN0ZXJDb3VudGVyTGltaXQgfHwgMDtcbiAgfVxuXG4gIHByaXZhdGUgX3NreUNoYXJhY3RlckNvdW50ZXJMaW1pdDogbnVtYmVyO1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICB0aGlzLnVwZGF0ZUluZGljYXRvckNvdW50KCh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGgpIHx8IDApO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZS5sZW5ndGggPiB0aGlzLnNreUNoYXJhY3RlckNvdW50ZXJMaW1pdCkge1xuICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYXBwbHkgdGhlIGFwcHJvcHJpYXRlIGVycm9yIHN0eWxlcyB0byB0aGUgaW5wdXQuXG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2t5Q2hhcmFjdGVyQ291bnRlcjoge1xuICAgICAgICAgIGludmFsaWQ6IHZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJbmRpY2F0b3JDb3VudChjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcikge1xuICAgICAgdGhpcy5za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yLmNoYXJhY3RlckNvdW50ID0gY291bnQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJbmRpY2F0b3JMaW1pdChsaW1pdDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2t5Q2hhcmFjdGVyQ291bnRlckluZGljYXRvcikge1xuICAgICAgdGhpcy5za3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yLmNoYXJhY3RlckNvdW50TGltaXQgPSBsaW1pdDtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgX3ZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xufVxuIl19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { SkyI18nModule } from '@skyux/i18n';
|
|
5
|
+
import { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';
|
|
6
|
+
import { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';
|
|
7
|
+
import { SkyCharacterCounterInputDirective } from './character-counter.directive';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class SkyCharacterCounterModule {
|
|
10
|
+
}
|
|
11
|
+
SkyCharacterCounterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
SkyCharacterCounterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterModule, declarations: [SkyCharacterCounterInputDirective,
|
|
13
|
+
SkyCharacterCounterIndicatorComponent], imports: [CommonModule,
|
|
14
|
+
FormsModule,
|
|
15
|
+
ReactiveFormsModule,
|
|
16
|
+
SkyFormsResourcesModule,
|
|
17
|
+
SkyI18nModule], exports: [SkyCharacterCounterInputDirective,
|
|
18
|
+
SkyCharacterCounterIndicatorComponent] });
|
|
19
|
+
SkyCharacterCounterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterModule, imports: [[
|
|
20
|
+
CommonModule,
|
|
21
|
+
FormsModule,
|
|
22
|
+
ReactiveFormsModule,
|
|
23
|
+
SkyFormsResourcesModule,
|
|
24
|
+
SkyI18nModule,
|
|
25
|
+
]] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCharacterCounterModule, decorators: [{
|
|
27
|
+
type: NgModule,
|
|
28
|
+
args: [{
|
|
29
|
+
declarations: [
|
|
30
|
+
SkyCharacterCounterInputDirective,
|
|
31
|
+
SkyCharacterCounterIndicatorComponent,
|
|
32
|
+
],
|
|
33
|
+
imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
FormsModule,
|
|
36
|
+
ReactiveFormsModule,
|
|
37
|
+
SkyFormsResourcesModule,
|
|
38
|
+
SkyI18nModule,
|
|
39
|
+
],
|
|
40
|
+
exports: [
|
|
41
|
+
SkyCharacterCounterInputDirective,
|
|
42
|
+
SkyCharacterCounterIndicatorComponent,
|
|
43
|
+
],
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLWNvdW50ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFL0UsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBbUJsRixNQUFNLE9BQU8seUJBQXlCOztzSEFBekIseUJBQXlCO3VIQUF6Qix5QkFBeUIsaUJBZmxDLGlDQUFpQztRQUNqQyxxQ0FBcUMsYUFHckMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLGFBQWEsYUFHYixpQ0FBaUM7UUFDakMscUNBQXFDO3VIQUc1Qix5QkFBeUIsWUFaM0I7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsYUFBYTtTQUNkOzJGQU1VLHlCQUF5QjtrQkFqQnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlDQUFpQzt3QkFDakMscUNBQXFDO3FCQUN0QztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQ0FBaUM7d0JBQ2pDLHFDQUFxQztxQkFDdEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNoYXJhY3RlckNvdW50ZXJJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vY2hhcmFjdGVyLWNvdW50ZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lGb3Jtc1Jlc291cmNlc01vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5Q2hhcmFjdGVyQ291bnRlcklucHV0RGlyZWN0aXZlLFxuICAgIFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNoYXJhY3RlckNvdW50ZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fires when users select or deselect the checkbox.
|
|
3
|
+
*/
|
|
4
|
+
export class SkyCheckboxChange {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0NBRzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XG5cbi8qKlxuICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3Qgb3IgZGVzZWxlY3QgdGhlIGNoZWNrYm94LlxuICovXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hDaGFuZ2Uge1xuICBwdWJsaWMgc291cmNlOiBTa3lDaGVja2JveENvbXBvbmVudDtcbiAgcHVibGljIGNoZWNrZWQ6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Specifies a label for the checkbox.
|
|
5
|
+
*/
|
|
6
|
+
export class SkyCheckboxLabelComponent {
|
|
7
|
+
}
|
|
8
|
+
SkyCheckboxLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCheckboxLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
SkyCheckboxLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyCheckboxLabelComponent, selector: "sky-checkbox-label", ngImport: i0, template: "<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n" });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCheckboxLabelComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'sky-checkbox-label', template: "<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n" }]
|
|
13
|
+
}] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOztHQUVHO0FBS0gsTUFBTSxPQUFPLHlCQUF5Qjs7c0hBQXpCLHlCQUF5QjswR0FBekIseUJBQXlCLDBEQ1R0QywyRUFHQTsyRkRNYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgbGFiZWwgZm9yIHRoZSBjaGVja2JveC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94LWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWxhYmVsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hMYWJlbENvbXBvbmVudCB7fVxuIiwiPHNwYW4gY2xhc3M9XCJza3ktc3dpdGNoLWxhYmVsXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Directive, forwardRef } from '@angular/core';
|
|
2
|
+
import { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export const SKY_CHECKBOX_REQUIRED_VALIDATOR = {
|
|
5
|
+
provide: NG_VALIDATORS,
|
|
6
|
+
useExisting: forwardRef(() => SkyCheckboxRequiredValidatorDirective),
|
|
7
|
+
multi: true,
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Validator support for the `required` input on `sky-checkbox`.
|
|
11
|
+
* Angular's `CheckboxRequiredValidator` only works with `input type=checkbox`. This directive
|
|
12
|
+
* extends the angular validator to work with `sky-checkbox` tags.
|
|
13
|
+
* This is based on Angular Material's similar implementation:
|
|
14
|
+
* https://github.com/angular/components/blob/a415b52ead2ec202ba37edb7d7866b29dd790394/src/material/checkbox/checkbox-required-validator.ts
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export class SkyCheckboxRequiredValidatorDirective extends CheckboxRequiredValidator {
|
|
18
|
+
}
|
|
19
|
+
SkyCheckboxRequiredValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCheckboxRequiredValidatorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
+
SkyCheckboxRequiredValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyCheckboxRequiredValidatorDirective, selector: "sky-checkbox[required][formControlName],\n sky-checkbox[required][formControl], sky-checkbox[required][ngModel]", providers: [SKY_CHECKBOX_REQUIRED_VALIDATOR], usesInheritance: true, ngImport: i0 });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCheckboxRequiredValidatorDirective, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{
|
|
24
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
25
|
+
selector: `sky-checkbox[required][formControlName],
|
|
26
|
+
sky-checkbox[required][formControl], sky-checkbox[required][ngModel]`,
|
|
27
|
+
providers: [SKY_CHECKBOX_REQUIRED_VALIDATOR],
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcmVxdWlyZWQtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtcmVxdWlyZWQtdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTFFLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFhO0lBQ3ZELE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUNBQXFDLENBQUM7SUFDcEUsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQU9ILE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSx5QkFBeUI7O2tJQUF2RSxxQ0FBcUM7c0hBQXJDLHFDQUFxQyxzSkFGckMsQ0FBQywrQkFBK0IsQ0FBQzsyRkFFakMscUNBQXFDO2tCQU5qRCxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFO2tGQUNzRTtvQkFDaEYsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBQcm92aWRlciwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hlY2tib3hSZXF1aXJlZFZhbGlkYXRvciwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IFNLWV9DSEVDS0JPWF9SRVFVSVJFRF9WQUxJREFUT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lDaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yRGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIFZhbGlkYXRvciBzdXBwb3J0IGZvciB0aGUgYHJlcXVpcmVkYCBpbnB1dCBvbiBgc2t5LWNoZWNrYm94YC5cbiAqIEFuZ3VsYXIncyBgQ2hlY2tib3hSZXF1aXJlZFZhbGlkYXRvcmAgb25seSB3b3JrcyB3aXRoIGBpbnB1dCB0eXBlPWNoZWNrYm94YC4gVGhpcyBkaXJlY3RpdmVcbiAqIGV4dGVuZHMgdGhlIGFuZ3VsYXIgdmFsaWRhdG9yIHRvIHdvcmsgd2l0aCBgc2t5LWNoZWNrYm94YCB0YWdzLlxuICogVGhpcyBpcyBiYXNlZCBvbiBBbmd1bGFyIE1hdGVyaWFsJ3Mgc2ltaWxhciBpbXBsZW1lbnRhdGlvbjpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9hNDE1YjUyZWFkMmVjMjAyYmEzN2VkYjdkNzg2NmIyOWRkNzkwMzk0L3NyYy9tYXRlcmlhbC9jaGVja2JveC9jaGVja2JveC1yZXF1aXJlZC12YWxpZGF0b3IudHNcbiAqIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6IGBza3ktY2hlY2tib3hbcmVxdWlyZWRdW2Zvcm1Db250cm9sTmFtZV0sXG4gICAgICAgICAgICAgc2t5LWNoZWNrYm94W3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sIHNreS1jaGVja2JveFtyZXF1aXJlZF1bbmdNb2RlbF1gLFxuICBwcm92aWRlcnM6IFtTS1lfQ0hFQ0tCT1hfUkVRVUlSRURfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hSZXF1aXJlZFZhbGlkYXRvckRpcmVjdGl2ZSBleHRlbmRzIENoZWNrYm94UmVxdWlyZWRWYWxpZGF0b3Ige31cbiJdfQ==
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Optional, Output, Self, } from '@angular/core';
|
|
2
|
+
import { NgControl } from '@angular/forms';
|
|
3
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
4
|
+
import { SkyFormsUtility } from '../shared/forms-utility';
|
|
5
|
+
import { SkyCheckboxChange } from './checkbox-change';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "@skyux/indicators";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
/**
|
|
11
|
+
* Monotonically increasing integer used to auto-generate unique ids for checkbox components.
|
|
12
|
+
*/
|
|
13
|
+
let nextId = 0;
|
|
14
|
+
/**
|
|
15
|
+
* Replaces the HTML input element with `type="checkbox"`. When users select a checkbox, its value
|
|
16
|
+
* is driven through an `ngModel` attribute that you specify on the `sky-checkbox` element.
|
|
17
|
+
*/
|
|
18
|
+
export class SkyCheckboxComponent {
|
|
19
|
+
constructor(ngControl) {
|
|
20
|
+
this.ngControl = ngControl;
|
|
21
|
+
/**
|
|
22
|
+
* Specifies an ID for the checkbox.
|
|
23
|
+
* @default a unique, auto-incrementing integer. For example: `sky-checkbox-1`
|
|
24
|
+
*/
|
|
25
|
+
this.id = `sky-checkbox-${++nextId}`;
|
|
26
|
+
/**
|
|
27
|
+
* Specifies an index for the checkbox. If not defined, the index is set to the position of the
|
|
28
|
+
* checkbox on load.
|
|
29
|
+
*/
|
|
30
|
+
this.tabindex = 0;
|
|
31
|
+
/**
|
|
32
|
+
* Specifies a name for a group of checkboxes.
|
|
33
|
+
* @default a unique, auto-incrementing integer. For example: `sky-checkbox-1`
|
|
34
|
+
*/
|
|
35
|
+
this.name = `sky-checkbox-${++nextId}`;
|
|
36
|
+
/**
|
|
37
|
+
* Fires when the selected value changes.
|
|
38
|
+
*/
|
|
39
|
+
this.change = new EventEmitter();
|
|
40
|
+
this.isFirstChange = true;
|
|
41
|
+
this._checked = false;
|
|
42
|
+
this._checkedChange = new BehaviorSubject(this._checked);
|
|
43
|
+
this._disabled = false;
|
|
44
|
+
this._disabledChange = new BehaviorSubject(this._disabled);
|
|
45
|
+
this._required = false;
|
|
46
|
+
/** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
48
|
+
this.onTouched = () => { };
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
50
|
+
this._controlValueAccessorChangeFn = (value) => { };
|
|
51
|
+
if (this.ngControl) {
|
|
52
|
+
this.ngControl.valueAccessor = this;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Indicates whether to disable the checkbox.
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
set disabled(value) {
|
|
60
|
+
const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);
|
|
61
|
+
if (coercedValue !== this.disabled) {
|
|
62
|
+
this._disabled = coercedValue;
|
|
63
|
+
this._disabledChange.next(this._disabled);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Indicates whether the checkbox is disabled.
|
|
68
|
+
*/
|
|
69
|
+
get disabled() {
|
|
70
|
+
return this._disabled;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Specifies a type to set the background color after users select a checkbox where the
|
|
74
|
+
* `icon` property displays an icon in place of the checkbox. The valid options correspond to
|
|
75
|
+
* [the label component's](https://developer.blackbaud.com/skyux/components/label)
|
|
76
|
+
* label types. `"info"` creates a blue background, `"success"` creates a green
|
|
77
|
+
* background, `"warning"` creates an orange background, and `"danger"` creates a red background.
|
|
78
|
+
* @default "info"
|
|
79
|
+
*/
|
|
80
|
+
set checkboxType(value) {
|
|
81
|
+
if (value) {
|
|
82
|
+
this._checkboxType = value.toLowerCase();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
get checkboxType() {
|
|
86
|
+
return this._checkboxType || 'info';
|
|
87
|
+
}
|
|
88
|
+
get inputId() {
|
|
89
|
+
return `input-${this.id}`;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Indicates whether the checkbox is selected.
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
set checked(checked) {
|
|
96
|
+
if (checked !== this.checked) {
|
|
97
|
+
this._checked = checked;
|
|
98
|
+
this._controlValueAccessorChangeFn(checked);
|
|
99
|
+
this._checkedChange.next(this._checked);
|
|
100
|
+
// Do not mark the field as "dirty"
|
|
101
|
+
// if the field has been initialized with a value.
|
|
102
|
+
if (this.isFirstChange && this.ngControl && this.ngControl.control) {
|
|
103
|
+
this.ngControl.control.markAsPristine();
|
|
104
|
+
this.isFirstChange = false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Indicates whether the checkbox is selected.
|
|
110
|
+
*/
|
|
111
|
+
get checked() {
|
|
112
|
+
return this._checked;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Indicates whether the input is required for form validation.
|
|
116
|
+
* When you set this property to `true`, the component adds `aria-required` and `required`
|
|
117
|
+
* attributes to the input element so that forms display an invalid state until the input element
|
|
118
|
+
* is complete.
|
|
119
|
+
* @default false
|
|
120
|
+
*/
|
|
121
|
+
set required(value) {
|
|
122
|
+
this._required = SkyFormsUtility.coerceBooleanProperty(value);
|
|
123
|
+
}
|
|
124
|
+
get required() {
|
|
125
|
+
return this._required;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Fires when users select or deselect the checkbox.
|
|
129
|
+
*/
|
|
130
|
+
get checkedChange() {
|
|
131
|
+
return this._checkedChange;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Fires when the selected value changes.
|
|
135
|
+
*/
|
|
136
|
+
get disabledChange() {
|
|
137
|
+
return this._disabledChange;
|
|
138
|
+
}
|
|
139
|
+
ngOnInit() {
|
|
140
|
+
if (this.ngControl) {
|
|
141
|
+
// Backwards compatibility support for anyone still using Validators.Required.
|
|
142
|
+
this.required =
|
|
143
|
+
this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Implemented as part of ControlValueAccessor.
|
|
148
|
+
*/
|
|
149
|
+
writeValue(value) {
|
|
150
|
+
this.checked = !!value;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Implemented as part of ControlValueAccessor.
|
|
154
|
+
*/
|
|
155
|
+
registerOnChange(fn) {
|
|
156
|
+
this._controlValueAccessorChangeFn = fn;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Implemented as part of ControlValueAccessor.
|
|
160
|
+
*/
|
|
161
|
+
registerOnTouched(fn) {
|
|
162
|
+
this.onTouched = fn;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Implemented as part of ControlValueAccessor.
|
|
166
|
+
*/
|
|
167
|
+
setDisabledState(isDisabled) {
|
|
168
|
+
this.disabled = isDisabled;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Event handler for checkbox input element.
|
|
172
|
+
* Toggles checked state if element is not disabled.
|
|
173
|
+
*/
|
|
174
|
+
onInteractionEvent(event) {
|
|
175
|
+
// We always have to stop propagation on the change event.
|
|
176
|
+
// Otherwise the change event, from the input element, will bubble up and
|
|
177
|
+
// emit its event object to the `change` output.
|
|
178
|
+
event.stopPropagation();
|
|
179
|
+
if (!this.disabled) {
|
|
180
|
+
this._toggle();
|
|
181
|
+
this._emitChangeEvent();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
onInputBlur() {
|
|
185
|
+
this.onTouched();
|
|
186
|
+
}
|
|
187
|
+
_emitChangeEvent() {
|
|
188
|
+
const event = new SkyCheckboxChange();
|
|
189
|
+
event.source = this;
|
|
190
|
+
event.checked = this._checked;
|
|
191
|
+
this._controlValueAccessorChangeFn(this._checked);
|
|
192
|
+
this.change.emit(event);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Toggles the `checked` value between true and false
|
|
196
|
+
*/
|
|
197
|
+
_toggle() {
|
|
198
|
+
this.checked = !this.checked;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
SkyCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCheckboxComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
202
|
+
SkyCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyCheckboxComponent, selector: "sky-checkbox", inputs: { label: "label", labelledBy: "labelledBy", id: "id", disabled: "disabled", tabindex: "tabindex", name: "name", icon: "icon", checkboxType: "checkboxType", checked: "checked", required: "required" }, outputs: { change: "change", checkedChange: "checkedChange", disabledChange: "disabledChange" }, ngImport: i0, template: "<label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': required,\n 'sky-switch-disabled': disabled\n }\"\n>\n <input\n class=\"sky-checkbox-input sky-switch-input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [required]=\"required\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-switch-control-info': checkboxType === 'info',\n 'sky-switch-control-success': checkboxType === 'success',\n 'sky-switch-control-warning': checkboxType === 'warning',\n 'sky-switch-control-danger': checkboxType === 'danger'\n }\"\n >\n <sky-icon\n *ngIf=\"icon || checked\"\n class=\"sky-checkbox-icon-default\"\n fixedWidth=\"true\"\n [icon]=\"icon || 'check'\"\n >\n </sky-icon>\n <div class=\"sky-checkbox-icon-modern\">\n <sky-icon\n *ngIf=\"icon; else checkedTemplate\"\n fixedWidth=\"true\"\n [icon]=\"icon\"\n >\n </sky-icon>\n <ng-template #checkedTemplate>\n <sky-icon\n *ngIf=\"checked\"\n class=\"sky-checkbox-icon-modern-checked\"\n fixedWidth=\"true\"\n icon=\"check\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </ng-template>\n </div>\n </span>\n <ng-content select=\"sky-checkbox-label\"> </ng-content>\n</label>\n", styles: [".sky-checkbox-icon-modern{display:none}:host-context(.sky-theme-modern) .sky-checkbox-icon-default{display:none}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern{display:inline}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-checked{color:#1870b8}:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked{color:#212327}:host-context(.sky-theme-modern) .sky-switch-control{border-radius:6px}.sky-theme-modern .sky-checkbox-icon-default{display:none}.sky-theme-modern .sky-checkbox-icon-modern{display:inline}.sky-theme-modern .sky-checkbox-icon-modern-checked{color:#1870b8}.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked{color:#212327}.sky-theme-modern .sky-switch-control{border-radius:6px}\n"], components: [{ type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCheckboxComponent, decorators: [{
|
|
204
|
+
type: Component,
|
|
205
|
+
args: [{ selector: 'sky-checkbox', template: "<label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': required,\n 'sky-switch-disabled': disabled\n }\"\n>\n <input\n class=\"sky-checkbox-input sky-switch-input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [required]=\"required\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-switch-control-info': checkboxType === 'info',\n 'sky-switch-control-success': checkboxType === 'success',\n 'sky-switch-control-warning': checkboxType === 'warning',\n 'sky-switch-control-danger': checkboxType === 'danger'\n }\"\n >\n <sky-icon\n *ngIf=\"icon || checked\"\n class=\"sky-checkbox-icon-default\"\n fixedWidth=\"true\"\n [icon]=\"icon || 'check'\"\n >\n </sky-icon>\n <div class=\"sky-checkbox-icon-modern\">\n <sky-icon\n *ngIf=\"icon; else checkedTemplate\"\n fixedWidth=\"true\"\n [icon]=\"icon\"\n >\n </sky-icon>\n <ng-template #checkedTemplate>\n <sky-icon\n *ngIf=\"checked\"\n class=\"sky-checkbox-icon-modern-checked\"\n fixedWidth=\"true\"\n icon=\"check\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </ng-template>\n </div>\n </span>\n <ng-content select=\"sky-checkbox-label\"> </ng-content>\n</label>\n", styles: [".sky-checkbox-icon-modern{display:none}:host-context(.sky-theme-modern) .sky-checkbox-icon-default{display:none}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern{display:inline}:host-context(.sky-theme-modern) .sky-checkbox-icon-modern-checked{color:#1870b8}:host-context(.sky-theme-modern) .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked{color:#212327}:host-context(.sky-theme-modern) .sky-switch-control{border-radius:6px}.sky-theme-modern .sky-checkbox-icon-default{display:none}.sky-theme-modern .sky-checkbox-icon-modern{display:inline}.sky-theme-modern .sky-checkbox-icon-modern-checked{color:#1870b8}.sky-theme-modern .sky-checkbox-input:disabled+.sky-switch-control .sky-checkbox-icon-modern-checked{color:#212327}.sky-theme-modern .sky-switch-control{border-radius:6px}\n"] }]
|
|
206
|
+
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
207
|
+
type: Self
|
|
208
|
+
}, {
|
|
209
|
+
type: Optional
|
|
210
|
+
}] }]; }, propDecorators: { label: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], labelledBy: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], id: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], disabled: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], tabindex: [{
|
|
219
|
+
type: Input
|
|
220
|
+
}], name: [{
|
|
221
|
+
type: Input
|
|
222
|
+
}], change: [{
|
|
223
|
+
type: Output
|
|
224
|
+
}], icon: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], checkboxType: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], checked: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], required: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], checkedChange: [{
|
|
233
|
+
type: Output
|
|
234
|
+
}], disabledChange: [{
|
|
235
|
+
type: Output
|
|
236
|
+
}] } });
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFFdEQ7O0dBRUc7QUFDSCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZjs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBMksvQixZQUF3QyxTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBeEo1RDs7O1dBR0c7UUFFSSxPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFzQnZDOzs7V0FHRztRQUVJLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFcEI7OztXQUdHO1FBRUksU0FBSSxHQUFHLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRXpDOztXQUVHO1FBR0ksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBNEY5QyxrQkFBYSxHQUFH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TyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFOUIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxPQUFPO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7aUhBOVBVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFXQy9CakMsK3NEQTREQTsyRkQ3QmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OzBCQStLWCxJQUFJOzswQkFBSSxRQUFROzRDQW5LdEIsS0FBSztzQkFEWCxLQUFLO2dCQVVDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBUUMsRUFBRTtzQkFEUixLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBcUJDLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxJQUFJO3NCQURWLEtBQUs7Z0JBUUMsTUFBTTtzQkFGWixNQUFNO2dCQVVBLElBQUk7c0JBRFYsS0FBSztnQkFZSyxZQUFZO3NCQUR0QixLQUFLO2dCQW9CSyxPQUFPO3NCQURqQixLQUFLO2dCQStCRixRQUFRO3NCQURYLEtBQUs7Z0JBYUssYUFBYTtzQkFEdkIsTUFBTTtnQkFTSSxjQUFjO3NCQUR4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUZvcm1zVXRpbGl0eSB9IGZyb20gJy4uL3NoYXJlZC9mb3Jtcy11dGlsaXR5JztcblxuaW1wb3J0IHsgU2t5Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICcuL2NoZWNrYm94LWNoYW5nZSc7XG5cbi8qKlxuICogTW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGludGVnZXIgdXNlZCB0byBhdXRvLWdlbmVyYXRlIHVuaXF1ZSBpZHMgZm9yIGNoZWNrYm94IGNvbXBvbmVudHMuXG4gKi9cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBIVE1MIGlucHV0IGVsZW1lbnQgd2l0aCBgdHlwZT1cImNoZWNrYm94XCJgLiBXaGVuIHVzZXJzIHNlbGVjdCBhIGNoZWNrYm94LCBpdHMgdmFsdWVcbiAqIGlzIGRyaXZlbiB0aHJvdWdoIGFuIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiB0aGUgYHNreS1jaGVja2JveGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBBUklBIGxhYmVsIGZvciB0aGUgY2hlY2tib3guIFRoaXMgc2V0cyB0aGUgY2hlY2tib3gncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCNhY2Nlc3NpYmlsaXR5KVxuICAgKiB3aGVuIHRoZSBjaGVja2JveCBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbC4gWW91IG11c3Qgc2V0IHRoaXMgcHJvcGVydHkgZm9yIGljb25cbiAgICogY2hlY2tib3hlcy4gSWYgdGhlIGNoZWNrYm94IGluY2x1ZGVzIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBsYWJlbGxlZEJ5YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgSFRNTCBlbGVtZW50IElEICh3aXRob3V0IHRoZSBsZWFkaW5nIGAjYCkgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHMgdGhlXG4gICAqIGNoZWNrYm94LiBUaGlzIHNldHMgdGhlIGNoZWNrYm94J3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCNhY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIGNoZWNrYm94IGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsYCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsbGVkQnk6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIElEIGZvciB0aGUgY2hlY2tib3guXG4gICAqIEBkZWZhdWx0IGEgdW5pcXVlLCBhdXRvLWluY3JlbWVudGluZyBpbnRlZ2VyLiBGb3IgZXhhbXBsZTogYHNreS1jaGVja2JveC0xYFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlkID0gYHNreS1jaGVja2JveC0keysrbmV4dElkfWA7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIGNoZWNrYm94LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlZFZhbHVlO1xuICAgICAgdGhpcy5fZGlzYWJsZWRDaGFuZ2UubmV4dCh0aGlzLl9kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBpbmRleCBmb3IgdGhlIGNoZWNrYm94LiBJZiBub3QgZGVmaW5lZCwgdGhlIGluZGV4IGlzIHNldCB0byB0aGUgcG9zaXRpb24gb2YgdGhlXG4gICAqIGNoZWNrYm94IG9uIGxvYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFiaW5kZXggPSAwO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBuYW1lIGZvciBhIGdyb3VwIG9mIGNoZWNrYm94ZXMuXG4gICAqIEBkZWZhdWx0IGEgdW5pcXVlLCBhdXRvLWluY3JlbWVudGluZyBpbnRlZ2VyLiBGb3IgZXhhbXBsZTogYHNreS1jaGVja2JveC0xYFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWUgPSBgc2t5LWNoZWNrYm94LSR7KytuZXh0SWR9YDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgcHVibGljIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5Q2hlY2tib3hDaGFuZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBpY29uIHRvIGRpc3BsYXkgaW4gcGxhY2Ugb2YgdGhlIGNoZWNrYm94LiBUbyBncm91cCBpY29uIGNoZWNrYm94ZXNcbiAgICogbGlrZSBpbiB0aGUgZGVtbywgcGxhY2UgdGhlIGBza3ktc3dpdGNoLWljb24tZ3JvdXBgIGNsYXNzIG9uIHRoZSBkaXJlY3QgcGFyZW50XG4gICAqIGVsZW1lbnQgb2YgdGhlIGNoZWNrYm94ZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB0eXBlIHRvIHNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBhZnRlciB1c2VycyBzZWxlY3QgYSBjaGVja2JveCB3aGVyZSB0aGVcbiAgICogYGljb25gIHByb3BlcnR5IGRpc3BsYXlzIGFuIGljb24gaW4gcGxhY2Ugb2YgdGhlIGNoZWNrYm94LiBUaGUgdmFsaWQgb3B0aW9ucyBjb3JyZXNwb25kIHRvXG4gICAqIFt0aGUgbGFiZWwgY29tcG9uZW50J3NdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9sYWJlbClcbiAgICogbGFiZWwgdHlwZXMuIGBcImluZm9cImAgY3JlYXRlcyBhIGJsdWUgYmFja2dyb3VuZCwgYFwic3VjY2Vzc1wiYCBjcmVhdGVzIGEgZ3JlZW5cbiAgICogYmFja2dyb3VuZCwgYFwid2FybmluZ1wiYCBjcmVhdGVzIGFuIG9yYW5nZSBiYWNrZ3JvdW5kLCBhbmQgYFwiZGFuZ2VyXCJgIGNyZWF0ZXMgYSByZWQgYmFja2dyb3VuZC5cbiAgICogQGRlZmF1bHQgXCJpbmZvXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hlY2tib3hUeXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2NoZWNrYm94VHlwZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjaGVja2JveFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tib3hUeXBlIHx8ICdpbmZvJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaW5wdXQtJHt0aGlzLmlkfWA7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIHNlbGVjdGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoY2hlY2tlZCAhPT0gdGhpcy5jaGVja2VkKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gY2hlY2tlZDtcbiAgICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4oY2hlY2tlZCk7XG4gICAgICB0aGlzLl9jaGVja2VkQ2hhbmdlLm5leHQodGhpcy5fY2hlY2tlZCk7XG5cbiAgICAgIC8vIERvIG5vdCBtYXJrIHRoZSBmaWVsZCBhcyBcImRpcnR5XCJcbiAgICAgIC8vIGlmIHRoZSBmaWVsZCBoYXMgYmVlbiBpbml0aWFsaXplZCB3aXRoIGEgdmFsdWUuXG4gICAgICBpZiAodGhpcy5pc0ZpcnN0Q2hhbmdlICYmIHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB0aGlzLmlzRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBjaGVja2VkKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudCBzbyB0aGF0IGZvcm1zIGRpc3BsYXkgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gU2t5Rm9ybXNVdGlsaXR5LmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IG9yIGRlc2VsZWN0IHRoZSBjaGVja2JveC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGNoZWNrZWRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrZWRDaGFuZ2U7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZENoYW5nZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNGaXJzdENoYW5nZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfY2hlY2tib3hUeXBlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY2hlY2tlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2NoZWNrZWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX2NoZWNrZWQpO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX2Rpc2FibGVkKTtcblxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBmb3IgYW55b25lIHN0aWxsIHVzaW5nIFZhbGlkYXRvcnMuUmVxdWlyZWQuXG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICAgdGhpcy5yZXF1aXJlZCB8fCBTa3lGb3Jtc1V0aWxpdHkuaGFzUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMubmdDb250cm9sKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGNoZWNrYm94IGlucHV0IGVsZW1lbnQuXG4gICAqIFRvZ2dsZXMgY2hlY2tlZCBzdGF0ZSBpZiBlbGVtZW50IGlzIG5vdCBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBvbkludGVyYWN0aW9uRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gV2UgYWx3YXlzIGhhdmUgdG8gc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgY2hhbmdlIGV2ZW50LlxuICAgIC8vIE90aGVyd2lzZSB0aGUgY2hhbmdlIGV2ZW50LCBmcm9tIHRoZSBpbnB1dCBlbGVtZW50LCB3aWxsIGJ1YmJsZSB1cCBhbmRcbiAgICAvLyBlbWl0IGl0cyBldmVudCBvYmplY3QgdG8gdGhlIGBjaGFuZ2VgIG91dHB1dC5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fdG9nZ2xlKCk7XG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dEJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgY2hlY2tib3ggaXMgYmx1cnJlZC4gTmVlZGVkIHRvIHByb3Blcmx5IGltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3Nvci4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm46ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKHZhbHVlKSA9PiB7fTtcblxuICBwcml2YXRlIF9lbWl0Q2hhbmdlRXZlbnQoKSB7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgU2t5Q2hlY2tib3hDaGFuZ2UoKTtcbiAgICBldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgIGV2ZW50LmNoZWNrZWQgPSB0aGlzLl9jaGVja2VkO1xuXG4gICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLl9jaGVja2VkKTtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBgY2hlY2tlZGAgdmFsdWUgYmV0d2VlbiB0cnVlIGFuZCBmYWxzZVxuICAgKi9cbiAgcHJpdmF0ZSBfdG9nZ2xlKCkge1xuICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gIH1cbn1cbiIsIjxsYWJlbFxuICBjbGFzcz1cInNreS1jaGVja2JveC13cmFwcGVyIHNreS1zd2l0Y2hcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJzogcmVxdWlyZWQsXG4gICAgJ3NreS1zd2l0Y2gtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICB9XCJcbj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaW5wdXQgc2t5LXN3aXRjaC1pbnB1dFwiXG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiXG4gICAgKGNoYW5nZSk9XCJvbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gIC8+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJza3ktc3dpdGNoLWNvbnRyb2wgc2t5LXJvdW5kZWQtY29ybmVyc1wiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1pY29uJzogaWNvbixcbiAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaW5mbyc6IGNoZWNrYm94VHlwZSA9PT0gJ2luZm8nLFxuICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1zdWNjZXNzJzogY2hlY2tib3hUeXBlID09PSAnc3VjY2VzcycsXG4gICAgICAnc2t5LXN3aXRjaC1jb250cm9sLXdhcm5pbmcnOiBjaGVja2JveFR5cGUgPT09ICd3YXJuaW5nJyxcbiAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtZGFuZ2VyJzogY2hlY2tib3hUeXBlID09PSAnZGFuZ2VyJ1xuICAgIH1cIlxuICA+XG4gICAgPHNreS1pY29uXG4gICAgICAqbmdJZj1cImljb24gfHwgY2hlY2tlZFwiXG4gICAgICBjbGFzcz1cInNreS1jaGVja2JveC1pY29uLWRlZmF1bHRcIlxuICAgICAgZml4ZWRXaWR0aD1cInRydWVcIlxuICAgICAgW2ljb25dPVwiaWNvbiB8fCAnY2hlY2snXCJcbiAgICA+XG4gICAgPC9za3ktaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWNoZWNrYm94LWljb24tbW9kZXJuXCI+XG4gICAgICA8c2t5LWljb25cbiAgICAgICAgKm5nSWY9XCJpY29uOyBlbHNlIGNoZWNrZWRUZW1wbGF0ZVwiXG4gICAgICAgIGZpeGVkV2lkdGg9XCJ0cnVlXCJcbiAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICA+XG4gICAgICA8L3NreS1pY29uPlxuICAgICAgPG5nLXRlbXBsYXRlICNjaGVja2VkVGVtcGxhdGU+XG4gICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICpuZ0lmPVwiY2hlY2tlZFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktY2hlY2tib3gtaWNvbi1tb2Rlcm4tY2hlY2tlZFwiXG4gICAgICAgICAgZml4ZWRXaWR0aD1cInRydWVcIlxuICAgICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvc3Bhbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoZWNrYm94LWxhYmVsXCI+IDwvbmctY29udGVudD5cbjwvbGFiZWw+XG4iXX0=
|