@ifsworld/granite-components 14.2.2 → 15.0.0-beta.1
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/date-picker/lib/date-picker-base.d.ts +3 -3
- package/date-picker/lib/date-picker.module.d.ts +2 -2
- package/fesm2022/ifsworld-granite-components-carousel.mjs +15 -13
- package/fesm2022/ifsworld-granite-components-carousel.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-date-picker.mjs +34 -30
- package/fesm2022/ifsworld-granite-components-date-picker.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-file-upload.mjs +13 -12
- package/fesm2022/ifsworld-granite-components-file-upload.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-table.mjs +32 -29
- package/fesm2022/ifsworld-granite-components-table.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components-tooltip.mjs +16 -15
- package/fesm2022/ifsworld-granite-components-tooltip.mjs.map +1 -1
- package/fesm2022/ifsworld-granite-components.mjs +340 -322
- package/fesm2022/ifsworld-granite-components.mjs.map +1 -1
- package/lib/contacts/contacts-trigger/contacts-trigger-data.d.ts +1 -1
- package/lib/core/overlay-base.d.ts +1 -1
- package/lib/core/radio-checkbox-base.d.ts +1 -1
- package/lib/menu/menu-base.d.ts +1 -1
- package/lib/progress-bar/progress-bar-legend-base.d.ts +1 -1
- package/package.json +9 -21
- package/src/lib/core/style/_mixins.scss +16 -11
- package/src/lib/core/style/_range-functions.scss +6 -4
- package/src/lib/core/style/_z-index.scss +6 -4
- package/table/lib/cell/cell.d.ts +1 -1
- package/esm2022/carousel/ifsworld-granite-components-carousel.mjs +0 -5
- package/esm2022/carousel/index.mjs +0 -3
- package/esm2022/carousel/lib/carousel.component.mjs +0 -154
- package/esm2022/carousel/lib/carousel.module.mjs +0 -31
- package/esm2022/date-picker/ifsworld-granite-components-date-picker.mjs +0 -5
- package/esm2022/date-picker/index.mjs +0 -5
- package/esm2022/date-picker/lib/date-picker-base.mjs +0 -53
- package/esm2022/date-picker/lib/date-picker-trigger-for.directive.mjs +0 -228
- package/esm2022/date-picker/lib/date-picker.component.mjs +0 -30
- package/esm2022/date-picker/lib/date-picker.module.mjs +0 -58
- package/esm2022/date-picker/lib/date-range-picker.component.mjs +0 -46
- package/esm2022/file-upload/ifsworld-granite-components-file-upload.mjs +0 -5
- package/esm2022/file-upload/index.mjs +0 -3
- package/esm2022/file-upload/lib/directives/file-drag-and-drop.directive.mjs +0 -102
- package/esm2022/file-upload/lib/file-upload.component.mjs +0 -182
- package/esm2022/file-upload/lib/file-upload.constants.mjs +0 -45
- package/esm2022/file-upload/lib/file-upload.module.mjs +0 -32
- package/esm2022/file-upload/lib/file-upload.utils.mjs +0 -13
- package/esm2022/ifsworld-granite-components.mjs +0 -5
- package/esm2022/index.mjs +0 -90
- package/esm2022/lib/arrange-grid/arrange-grid-item.component.mjs +0 -44
- package/esm2022/lib/arrange-grid/arrange-grid.component.mjs +0 -125
- package/esm2022/lib/arrange-grid/arrange-grid.module.mjs +0 -19
- package/esm2022/lib/avatar/avatar-default-status/avatar-default-status.component.mjs +0 -36
- package/esm2022/lib/avatar/avatar.component.mjs +0 -68
- package/esm2022/lib/avatar/avatar.component.public-types.mjs +0 -7
- package/esm2022/lib/avatar/avatar.module.mjs +0 -37
- package/esm2022/lib/avatar/custom-avatar-status.directive.mjs +0 -18
- package/esm2022/lib/avatar/empty-avatar/empty-avatar.component.mjs +0 -37
- package/esm2022/lib/badge/badge.component.mjs +0 -39
- package/esm2022/lib/badge/badge.module.mjs +0 -18
- package/esm2022/lib/badge/testing/badge.harness.mjs +0 -25
- package/esm2022/lib/button/button.component.mjs +0 -87
- package/esm2022/lib/button/button.module.mjs +0 -16
- package/esm2022/lib/card-list/card/card-avatar.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-actions.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-body.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-content.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-footer.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-header-subtitle.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-header-title.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card-content/card-header.component.mjs +0 -11
- package/esm2022/lib/card-list/card/card.component.mjs +0 -11
- package/esm2022/lib/card-list/card-list.component.mjs +0 -24
- package/esm2022/lib/card-list/card-list.module.mjs +0 -68
- package/esm2022/lib/checkbox/checkbox-group.component.mjs +0 -17
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -99
- package/esm2022/lib/checkbox/checkbox.module.mjs +0 -17
- package/esm2022/lib/chips/chip-input.mjs +0 -195
- package/esm2022/lib/chips/chip-list.component.mjs +0 -567
- package/esm2022/lib/chips/chip.component.mjs +0 -287
- package/esm2022/lib/chips/chips.module.mjs +0 -31
- package/esm2022/lib/collapsible-group/collapsible-group-body.directive.mjs +0 -17
- package/esm2022/lib/collapsible-group/collapsible-group-header.directive.mjs +0 -17
- package/esm2022/lib/collapsible-group/collapsible-group.component.mjs +0 -46
- package/esm2022/lib/collapsible-group/collapsible-group.module.mjs +0 -33
- package/esm2022/lib/contacts/contact-item/contact-item.component.mjs +0 -27
- package/esm2022/lib/contacts/contact-item-default-status/contact-item-default-status.component.mjs +0 -20
- package/esm2022/lib/contacts/contact-item-title/contact-item-title.component.mjs +0 -15
- package/esm2022/lib/contacts/contacts-profile/contacts-profile.component.mjs +0 -18
- package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-data.mjs +0 -24
- package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-for.directive.mjs +0 -231
- package/esm2022/lib/contacts/contacts-types/contacts.component.private-types.mjs +0 -2
- package/esm2022/lib/contacts/contacts-types/contacts.component.public-types.mjs +0 -9
- package/esm2022/lib/contacts/contacts.component.mjs +0 -92
- package/esm2022/lib/contacts/contacts.module.mjs +0 -53
- package/esm2022/lib/contacts/custom-profile.directive.mjs +0 -16
- package/esm2022/lib/contacts/custom-status.directive.mjs +0 -18
- package/esm2022/lib/core/animation.mjs +0 -34
- package/esm2022/lib/core/client-environment.mjs +0 -20
- package/esm2022/lib/core/common-behaviors/disabled.mjs +0 -27
- package/esm2022/lib/core/core.module.mjs +0 -44
- package/esm2022/lib/core/devices/client-input-desktop.directive.mjs +0 -29
- package/esm2022/lib/core/devices/client-input-touch.directive.mjs +0 -29
- package/esm2022/lib/core/devices/client-output-desktop.directive.mjs +0 -29
- package/esm2022/lib/core/devices/client-output-touch.directive.mjs +0 -29
- package/esm2022/lib/core/hide-on-overflow.directive.mjs +0 -83
- package/esm2022/lib/core/overlay-base.mjs +0 -18
- package/esm2022/lib/core/overlay-position-config.mjs +0 -2
- package/esm2022/lib/core/overlay-trigger-for-base.directive.mjs +0 -121
- package/esm2022/lib/core/overlay.service.mjs +0 -90
- package/esm2022/lib/core/pipes/pure-pipes.module.mjs +0 -16
- package/esm2022/lib/core/pipes/title.pipe.mjs +0 -21
- package/esm2022/lib/core/radio-checkbox-base.mjs +0 -19
- package/esm2022/lib/core/services/names-utils-service.mjs +0 -51
- package/esm2022/lib/core/theme.library.mjs +0 -59
- package/esm2022/lib/core/types.mjs +0 -2
- package/esm2022/lib/grid/grid.component.mjs +0 -128
- package/esm2022/lib/grid/grid.module.mjs +0 -18
- package/esm2022/lib/icon/icon.component.mjs +0 -43
- package/esm2022/lib/icon/icon.module.mjs +0 -16
- package/esm2022/lib/input-field/input-field.component.mjs +0 -167
- package/esm2022/lib/input-field/input-field.module.mjs +0 -20
- package/esm2022/lib/label/label.component.mjs +0 -31
- package/esm2022/lib/label/label.module.mjs +0 -18
- package/esm2022/lib/menu/divider.directive.mjs +0 -23
- package/esm2022/lib/menu/menu-base.mjs +0 -354
- package/esm2022/lib/menu/menu-desktop-animations.mjs +0 -23
- package/esm2022/lib/menu/menu-errors.mjs +0 -37
- package/esm2022/lib/menu/menu-item.component.mjs +0 -89
- package/esm2022/lib/menu/menu-panel.mjs +0 -7
- package/esm2022/lib/menu/menu-positions.mjs +0 -9
- package/esm2022/lib/menu/menu-touch-animations.mjs +0 -137
- package/esm2022/lib/menu/menu-touch-close.component.mjs +0 -13
- package/esm2022/lib/menu/menu-touch-title.component.mjs +0 -59
- package/esm2022/lib/menu/menu-trigger-for.directive.mjs +0 -738
- package/esm2022/lib/menu/menu.component.mjs +0 -30
- package/esm2022/lib/menu/menu.module.mjs +0 -55
- package/esm2022/lib/menu/testing/menu.harness.mjs +0 -109
- package/esm2022/lib/menu/title.directive.mjs +0 -17
- package/esm2022/lib/progress-bar/progress-bar-legend/progress-bar-legend.component.mjs +0 -19
- package/esm2022/lib/progress-bar/progress-bar-legend-base.mjs +0 -17
- package/esm2022/lib/progress-bar/progress-bar-legend-trigger-for.directive.mjs +0 -54
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -92
- package/esm2022/lib/progress-bar/progress-bar.model.mjs +0 -2
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -44
- package/esm2022/lib/radio-button/radio-button.component.mjs +0 -119
- package/esm2022/lib/radio-button/radio-button.module.mjs +0 -17
- package/esm2022/lib/radio-button/radio-group.component.mjs +0 -17
- package/esm2022/lib/toggle-switch/toggle-switch.component.mjs +0 -100
- package/esm2022/lib/toggle-switch/toggle-switch.module.mjs +0 -16
- package/esm2022/table/ifsworld-granite-components-table.mjs +0 -5
- package/esm2022/table/index.mjs +0 -5
- package/esm2022/table/lib/cell/cell-align/cell-align-classes.directive.mjs +0 -26
- package/esm2022/table/lib/cell/cell.mjs +0 -15
- package/esm2022/table/lib/cell/table-data-cell.component.mjs +0 -25
- package/esm2022/table/lib/cell/table-header-cell.component.mjs +0 -14
- package/esm2022/table/lib/column/table-column.directive.mjs +0 -33
- package/esm2022/table/lib/column-size/column-size.directive.mjs +0 -34
- package/esm2022/table/lib/table-constants.library.mjs +0 -7
- package/esm2022/table/lib/table.component.mjs +0 -62
- package/esm2022/table/lib/table.model.mjs +0 -2
- package/esm2022/table/lib/table.module.mjs +0 -38
- package/esm2022/tooltip/ifsworld-granite-components-tooltip.mjs +0 -5
- package/esm2022/tooltip/index.mjs +0 -4
- package/esm2022/tooltip/lib/Services/granite-tooltip.service.mjs +0 -28
- package/esm2022/tooltip/lib/tooltip-constants.library.mjs +0 -4
- package/esm2022/tooltip/lib/tooltip-trigger-for.directive.mjs +0 -147
- package/esm2022/tooltip/lib/tooltip.component.mjs +0 -14
- package/esm2022/tooltip/lib/tooltip.module.mjs +0 -19
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
2
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ElementRef, ViewChild, } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/cdk/a11y";
|
|
6
|
-
export class GraniteCheckboxComponent {
|
|
7
|
-
constructor(_focusMonitor) {
|
|
8
|
-
this._focusMonitor = _focusMonitor;
|
|
9
|
-
this.id = null;
|
|
10
|
-
this.checked = false;
|
|
11
|
-
this.disabled = false;
|
|
12
|
-
this.readonly = false;
|
|
13
|
-
this.labelPosition = 'after';
|
|
14
|
-
this.ariaLabel = null;
|
|
15
|
-
this.ariaLabelledby = null;
|
|
16
|
-
this.valueChange = new EventEmitter();
|
|
17
|
-
this.checkboxChange = new EventEmitter();
|
|
18
|
-
this.checkboxBlur = new EventEmitter();
|
|
19
|
-
this._positionBefore = false;
|
|
20
|
-
this._checkboxDisabled = false;
|
|
21
|
-
}
|
|
22
|
-
ngOnChanges(changes) {
|
|
23
|
-
if (changes.checked) {
|
|
24
|
-
this.checked = coerceBooleanProperty(changes.checked.currentValue);
|
|
25
|
-
}
|
|
26
|
-
if (changes.disabled) {
|
|
27
|
-
this.disabled = coerceBooleanProperty(changes.disabled.currentValue);
|
|
28
|
-
}
|
|
29
|
-
if (changes.readonly) {
|
|
30
|
-
this.readonly = coerceBooleanProperty(changes.readonly.currentValue);
|
|
31
|
-
}
|
|
32
|
-
if (changes.labelPosition != null) {
|
|
33
|
-
this._positionBefore =
|
|
34
|
-
changes.labelPosition.currentValue != null &&
|
|
35
|
-
changes.labelPosition.currentValue === 'before';
|
|
36
|
-
}
|
|
37
|
-
if (changes.disabled || changes.readonly) {
|
|
38
|
-
if (this.disabled || this.readonly) {
|
|
39
|
-
this._checkboxDisabled = true;
|
|
40
|
-
}
|
|
41
|
-
else
|
|
42
|
-
this._checkboxDisabled = false;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
focus(origin = 'program', options) {
|
|
46
|
-
this._focusMonitor.focusVia(this._getInputElement(), origin, options);
|
|
47
|
-
}
|
|
48
|
-
_onBlur() {
|
|
49
|
-
this.checkboxBlur.emit();
|
|
50
|
-
}
|
|
51
|
-
_checkboxChange() {
|
|
52
|
-
this.checked = this._getInputElement().checked;
|
|
53
|
-
this.valueChange.emit(this.checked);
|
|
54
|
-
}
|
|
55
|
-
_checkboxClick() {
|
|
56
|
-
this.checkboxChange.emit();
|
|
57
|
-
}
|
|
58
|
-
_getInputElement() {
|
|
59
|
-
return this._inputElement.nativeElement;
|
|
60
|
-
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCheckboxComponent, deps: [{ token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GraniteCheckboxComponent, selector: "granite-checkbox", inputs: { id: "id", checked: "checked", disabled: "disabled", readonly: "readonly", labelPosition: "labelPosition", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"] }, outputs: { valueChange: "valueChange", checkboxChange: "checkboxChange", checkboxBlur: "checkboxBlur" }, host: { properties: { "class.granite-checkbox-checked": "checked", "class.granite-checkbox-disabled": "disabled", "class.granite-checkbox-readonly": "readonly", "class.granite-checkbox-label-before": "_positionBefore" }, classAttribute: "granite-checkbox" }, viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["graniteCheckbox"], usesOnChanges: true, ngImport: i0, template: "<label [attr.for]=\"id\" class=\"granite-checkbox-label\">\n <div class=\"granite-checkbox-box\">\n <input\n #input\n [id]=\"id\"\n class=\"granite-checkbox-input cdk-visually-hidden\"\n role=\"checkbox\"\n type=\"checkbox\"\n [attr.aria-checked]=\"checked.toString()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [checked]=\"checked\"\n [disabled]=\"_checkboxDisabled\"\n [readonly]=\"readonly\"\n (click)=\"_checkboxClick()\"\n (change)=\"_checkboxChange()\"\n (blur)=\"_onBlur()\"\n />\n <div class=\"granite-checkbox-check\"></div>\n </div>\n <span class=\"granite-checkbox-text\"><ng-content></ng-content></span>\n</label>\n", styles: [".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}:host{box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit;cursor:pointer}:host(.granite-checkbox){color:var(--granite-color-text)}:host(.granite-checkbox):not(.granite-checkbox-checked):not(.granite-checkbox-readonly):not(.granite-checkbox-disabled) .granite-checkbox-label:hover .granite-checkbox-box{border-color:var(--granite-color-background-active)}:host(.granite-checkbox-checked):not(.granite-checkbox-readonly):not(.granite-checkbox-disabled) .granite-checkbox-box{animation:fade-in-animation .2s;animation-iteration-count:1}:host(.granite-checkbox-checked):not(.granite-checkbox-readonly):not(.granite-checkbox-disabled) .granite-checkbox-label:hover .granite-checkbox-box{background-color:var(--granite-color-background-active-hover);border-color:var(--granite-color-background-active-hover)}:host(.granite-checkbox-checked) .granite-checkbox-box{border-color:var(--granite-color-background-active);background-color:var(--granite-color-background-active)}:host(.granite-checkbox-checked) .granite-checkbox-box:focus-within{border-color:var(--granite-color-focus)}:host(.granite-checkbox-checked) .granite-checkbox-check{display:flex}:host(:not(.granite-checkbox-checked)) .granite-checkbox-box{animation:fade-out-animation .2s;animation-iteration-count:1}:host(.granite-checkbox-readonly.granite-checkbox-checked) .granite-checkbox-box{background-color:var(--granite-color-text);border-color:var(--granite-color-text)}:host(.granite-checkbox-readonly.granite-checkbox-checked) .granite-checkbox-box .granite-checkbox-check{border-color:var(--granite-color-background)}:host(.granite-checkbox-disabled) .granite-checkbox-box{opacity:.3;background-color:var(--granite-color-border-soft)}:host(.granite-checkbox-disabled) .granite-checkbox-label{opacity:.6}:host(.granite-checkbox-disabled) *{cursor:default}:host(.granite-checkbox-readonly) *{cursor:default}:host(.granite-checkbox-label-before) .granite-checkbox-label{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.granite-checkbox-label-before) .granite-checkbox-text{padding-inline-start:0;padding-inline-end:var(--granite-spacing-8)}.granite-checkbox-label{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;align-items:center;width:max-content;margin-inline-end:var(--granite-spacing-32);margin-block-end:var(--granite-spacing-4)}.granite-checkbox-box{width:1rem;height:1rem;border:solid var(--granite-color-background-inactive);border-width:.0625rem;border-radius:.25rem;display:flex;justify-content:center;position:relative}.granite-checkbox-box:focus-within{border:.0625rem solid var(--granite-color-focus)}.granite-checkbox-check{position:relative;display:none;width:.5625rem;height:.3125rem;background-color:transparent;border:solid var(--granite-color-text-static-light);transform:rotate(-45deg);margin-top:var(--granite-spacing-4);border-width:0 0 .125rem .125rem}.granite-checkbox-text{padding-inline-start:var(--granite-spacing-8);font-size:var(--granite-font-size-body-small)}.granite-checkbox-text:empty{display:none}@keyframes fade-in-animation{0%{opacity:0}to{opacity:1}}@keyframes fade-out-animation{0%{opacity:1}to{opacity:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCheckboxComponent, decorators: [{
|
|
65
|
-
type: Component,
|
|
66
|
-
args: [{ selector: 'granite-checkbox', exportAs: 'graniteCheckbox', host: {
|
|
67
|
-
class: 'granite-checkbox',
|
|
68
|
-
'[class.granite-checkbox-checked]': 'checked',
|
|
69
|
-
'[class.granite-checkbox-disabled]': 'disabled',
|
|
70
|
-
'[class.granite-checkbox-readonly]': 'readonly',
|
|
71
|
-
'[class.granite-checkbox-label-before]': '_positionBefore',
|
|
72
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"id\" class=\"granite-checkbox-label\">\n <div class=\"granite-checkbox-box\">\n <input\n #input\n [id]=\"id\"\n class=\"granite-checkbox-input cdk-visually-hidden\"\n role=\"checkbox\"\n type=\"checkbox\"\n [attr.aria-checked]=\"checked.toString()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [checked]=\"checked\"\n [disabled]=\"_checkboxDisabled\"\n [readonly]=\"readonly\"\n (click)=\"_checkboxClick()\"\n (change)=\"_checkboxChange()\"\n (blur)=\"_onBlur()\"\n />\n <div class=\"granite-checkbox-check\"></div>\n </div>\n <span class=\"granite-checkbox-text\"><ng-content></ng-content></span>\n</label>\n", styles: [".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}:host{box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit;cursor:pointer}:host(.granite-checkbox){color:var(--granite-color-text)}:host(.granite-checkbox):not(.granite-checkbox-checked):not(.granite-checkbox-readonly):not(.granite-checkbox-disabled) .granite-checkbox-label:hover .granite-checkbox-box{border-color:var(--granite-color-background-active)}:host(.granite-checkbox-checked):not(.granite-checkbox-readonly):not(.granite-checkbox-disabled) .granite-checkbox-box{animation:fade-in-animation .2s;animation-iteration-count:1}:host(.granite-checkbox-checked):not(.granite-checkbox-readonly):not(.granite-checkbox-disabled) .granite-checkbox-label:hover .granite-checkbox-box{background-color:var(--granite-color-background-active-hover);border-color:var(--granite-color-background-active-hover)}:host(.granite-checkbox-checked) .granite-checkbox-box{border-color:var(--granite-color-background-active);background-color:var(--granite-color-background-active)}:host(.granite-checkbox-checked) .granite-checkbox-box:focus-within{border-color:var(--granite-color-focus)}:host(.granite-checkbox-checked) .granite-checkbox-check{display:flex}:host(:not(.granite-checkbox-checked)) .granite-checkbox-box{animation:fade-out-animation .2s;animation-iteration-count:1}:host(.granite-checkbox-readonly.granite-checkbox-checked) .granite-checkbox-box{background-color:var(--granite-color-text);border-color:var(--granite-color-text)}:host(.granite-checkbox-readonly.granite-checkbox-checked) .granite-checkbox-box .granite-checkbox-check{border-color:var(--granite-color-background)}:host(.granite-checkbox-disabled) .granite-checkbox-box{opacity:.3;background-color:var(--granite-color-border-soft)}:host(.granite-checkbox-disabled) .granite-checkbox-label{opacity:.6}:host(.granite-checkbox-disabled) *{cursor:default}:host(.granite-checkbox-readonly) *{cursor:default}:host(.granite-checkbox-label-before) .granite-checkbox-label{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.granite-checkbox-label-before) .granite-checkbox-text{padding-inline-start:0;padding-inline-end:var(--granite-spacing-8)}.granite-checkbox-label{display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;align-items:center;width:max-content;margin-inline-end:var(--granite-spacing-32);margin-block-end:var(--granite-spacing-4)}.granite-checkbox-box{width:1rem;height:1rem;border:solid var(--granite-color-background-inactive);border-width:.0625rem;border-radius:.25rem;display:flex;justify-content:center;position:relative}.granite-checkbox-box:focus-within{border:.0625rem solid var(--granite-color-focus)}.granite-checkbox-check{position:relative;display:none;width:.5625rem;height:.3125rem;background-color:transparent;border:solid var(--granite-color-text-static-light);transform:rotate(-45deg);margin-top:var(--granite-spacing-4);border-width:0 0 .125rem .125rem}.granite-checkbox-text{padding-inline-start:var(--granite-spacing-8);font-size:var(--granite-font-size-body-small)}.granite-checkbox-text:empty{display:none}@keyframes fade-in-animation{0%{opacity:0}to{opacity:1}}@keyframes fade-out-animation{0%{opacity:1}to{opacity:0}}\n"] }]
|
|
73
|
-
}], ctorParameters: () => [{ type: i1.FocusMonitor }], propDecorators: { id: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], checked: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], disabled: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], readonly: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], labelPosition: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], ariaLabel: [{
|
|
84
|
-
type: Input,
|
|
85
|
-
args: ['aria-label']
|
|
86
|
-
}], ariaLabelledby: [{
|
|
87
|
-
type: Input,
|
|
88
|
-
args: ['aria-labelledby']
|
|
89
|
-
}], valueChange: [{
|
|
90
|
-
type: Output
|
|
91
|
-
}], checkboxChange: [{
|
|
92
|
-
type: Output
|
|
93
|
-
}], checkboxBlur: [{
|
|
94
|
-
type: Output
|
|
95
|
-
}], _inputElement: [{
|
|
96
|
-
type: ViewChild,
|
|
97
|
-
args: ['input']
|
|
98
|
-
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUdOLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFpQnZCLE1BQU0sT0FBTyx3QkFBd0I7SUFxQ25DLFlBQW9CLGFBQTJCO1FBQTNCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBbkMvQyxPQUFFLEdBQWtCLElBQUksQ0FBQztRQUd6QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixrQkFBYSxHQUFhLE9BQU8sQ0FBQztRQUdsQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQUdoQyxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFHNUIsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUdqRSxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzlELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFLckUsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO0lBRWUsQ0FBQztJQUVuRCxX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bml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi9jb3JlL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ3Jhbml0ZS1jaGVja2JveCcsXG4gIGV4cG9ydEFzOiAnZ3Jhbml0ZUNoZWNrYm94JyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3Jhbml0ZS1jaGVja2JveCcsXG4gICAgJ1tjbGFzcy5ncmFuaXRlLWNoZWNrYm94LWNoZWNrZWRdJzogJ2NoZWNrZWQnLFxuICAgICdbY2xhc3MuZ3Jhbml0ZS1jaGVja2JveC1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuZ3Jhbml0ZS1jaGVja2JveC1yZWFkb25seV0nOiAncmVhZG9ubHknLFxuICAgICdbY2xhc3MuZ3Jhbml0ZS1jaGVja2JveC1sYWJlbC1iZWZvcmVdJzogJ19wb3NpdGlvbkJlZm9yZScsXG4gIH0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBpZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBsYWJlbFBvc2l0aW9uOiBQb3NpdGlvbiA9ICdhZnRlcic7XG5cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgYXJpYUxhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpXG4gIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgY2hlY2tib3hDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgY2hlY2tib3hCbHVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgX3Bvc2l0aW9uQmVmb3JlOiBib29sZWFuID0gZmFsc2U7XG4gIF9jaGVja2JveERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzLmNoZWNrZWQuY3VycmVudFZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMucmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlcy5yZWFkb25seS5jdXJyZW50VmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmxhYmVsUG9zaXRpb24gIT0gbnVsbCkge1xuICAgICAgdGhpcy5fcG9zaXRpb25CZWZvcmUgPVxuICAgICAgICBjaGFuZ2VzLmxhYmVsUG9zaXRpb24uY3VycmVudFZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgY2hhbmdlcy5sYWJlbFBvc2l0aW9uLmN1cnJlbnRWYWx1ZSA9PT0gJ2JlZm9yZSc7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGlzYWJsZWQgfHwgY2hhbmdlcy5yZWFkb25seSkge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkge1xuICAgICAgICB0aGlzLl9jaGVja2JveERpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB0aGlzLl9jaGVja2JveERpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZm9jdXMob3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJywgb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLl9nZXRJbnB1dEVsZW1lbnQoKSwgb3JpZ2luLCBvcHRpb25zKTtcbiAgfVxuXG4gIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2JveEJsdXIuZW1pdCgpO1xuICB9XG5cbiAgX2NoZWNrYm94Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuX2dldElucHV0RWxlbWVudCgpLmNoZWNrZWQ7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gIH1cblxuICBfY2hlY2tib3hDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrYm94Q2hhbmdlLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldElucHV0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cbiIsIjxsYWJlbCBbYXR0ci5mb3JdPVwiaWRcIiBjbGFzcz1cImdyYW5pdGUtY2hlY2tib3gtbGFiZWxcIj5cbiAgPGRpdiBjbGFzcz1cImdyYW5pdGUtY2hlY2tib3gtYm94XCI+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRcbiAgICAgIFtpZF09XCJpZFwiXG4gICAgICBjbGFzcz1cImdyYW5pdGUtY2hlY2tib3gtaW5wdXQgY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICByb2xlPVwiY2hlY2tib3hcIlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkLnRvU3RyaW5nKClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIl9jaGVja2JveERpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAoY2xpY2spPVwiX2NoZWNrYm94Q2xpY2soKVwiXG4gICAgICAoY2hhbmdlKT1cIl9jaGVja2JveENoYW5nZSgpXCJcbiAgICAgIChibHVyKT1cIl9vbkJsdXIoKVwiXG4gICAgLz5cbiAgICA8ZGl2IGNsYXNzPVwiZ3Jhbml0ZS1jaGVja2JveC1jaGVja1wiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPHNwYW4gY2xhc3M9XCJncmFuaXRlLWNoZWNrYm94LXRleHRcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { GraniteCheckboxComponent } from './checkbox.component';
|
|
3
|
-
import { GraniteCheckboxGroupComponent } from './checkbox-group.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class GraniteCheckboxModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GraniteCheckboxModule, declarations: [GraniteCheckboxComponent, GraniteCheckboxGroupComponent], exports: [GraniteCheckboxComponent, GraniteCheckboxGroupComponent] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCheckboxModule }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCheckboxModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
declarations: [GraniteCheckboxComponent, GraniteCheckboxGroupComponent],
|
|
14
|
-
exports: [GraniteCheckboxComponent, GraniteCheckboxGroupComponent],
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNM0UsTUFBTSxPQUFPLHFCQUFxQjsrR0FBckIscUJBQXFCO2dIQUFyQixxQkFBcUIsaUJBSGpCLHdCQUF3QixFQUFFLDZCQUE2QixhQUM1RCx3QkFBd0IsRUFBRSw2QkFBNkI7Z0hBRXRELHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFKakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSw2QkFBNkIsQ0FBQztvQkFDdkUsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsNkJBQTZCLENBQUM7aUJBQ25FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdyYW5pdGVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IEdyYW5pdGVDaGVja2JveEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC1ncm91cC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtHcmFuaXRlQ2hlY2tib3hDb21wb25lbnQsIEdyYW5pdGVDaGVja2JveEdyb3VwQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0dyYW5pdGVDaGVja2JveENvbXBvbmVudCwgR3Jhbml0ZUNoZWNrYm94R3JvdXBDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ2hlY2tib3hNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { BACKSPACE, ENTER, hasModifierKey, TAB } from '@angular/cdk/keycodes';
|
|
3
|
-
import { Directive, ElementRef, EventEmitter, Input, Output, } from '@angular/core';
|
|
4
|
-
import { GraniteChipListComponent } from './chip-list.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
let nextUniqueId = 0;
|
|
7
|
-
export class GraniteChipInputDirective {
|
|
8
|
-
/** Register input for chip list */
|
|
9
|
-
set graniteChipInputFor(value) {
|
|
10
|
-
if (value) {
|
|
11
|
-
this._chipList = value;
|
|
12
|
-
this._chipList.registerInput(this);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Whether or not the chipEnd event will be emitted when the input is blurred.
|
|
17
|
-
*/
|
|
18
|
-
get graniteChipInputAddOnBlur() {
|
|
19
|
-
return this._addOnBlur;
|
|
20
|
-
}
|
|
21
|
-
set graniteChipInputAddOnBlur(value) {
|
|
22
|
-
this._addOnBlur = coerceBooleanProperty(value);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Whether this is a required field, currently we use it only for setting aria-required.
|
|
26
|
-
*/
|
|
27
|
-
get required() {
|
|
28
|
-
return this._required;
|
|
29
|
-
}
|
|
30
|
-
set required(value) {
|
|
31
|
-
this._required = coerceBooleanProperty(value);
|
|
32
|
-
}
|
|
33
|
-
/** Whether the input is disabled. */
|
|
34
|
-
get disabled() {
|
|
35
|
-
return this._disabled || (this._chipList && this._chipList.disabled);
|
|
36
|
-
}
|
|
37
|
-
set disabled(value) {
|
|
38
|
-
this._disabled = coerceBooleanProperty(value);
|
|
39
|
-
}
|
|
40
|
-
/** Whether the input is empty. */
|
|
41
|
-
get empty() {
|
|
42
|
-
return !this.inputElement.value;
|
|
43
|
-
}
|
|
44
|
-
constructor(_elementRef) {
|
|
45
|
-
this._elementRef = _elementRef;
|
|
46
|
-
/** Unique id for the input. */
|
|
47
|
-
this.id = `granite-chip-list-input-${nextUniqueId++}`;
|
|
48
|
-
/** The input's placeholder text. */
|
|
49
|
-
this.placeholder = '';
|
|
50
|
-
/** Emitted when a chip is to be added. */
|
|
51
|
-
this.graniteChipInputTokenEnd = new EventEmitter();
|
|
52
|
-
/**
|
|
53
|
-
* The list of key codes that will trigger a chipEnd event.
|
|
54
|
-
*
|
|
55
|
-
* Defaults to `[ENTER]`.
|
|
56
|
-
*/
|
|
57
|
-
this.graniteChipInputSeparatorKeyCodes = [
|
|
58
|
-
ENTER,
|
|
59
|
-
];
|
|
60
|
-
this._addOnBlur = true;
|
|
61
|
-
this.focused = false;
|
|
62
|
-
this._disabled = false;
|
|
63
|
-
this.inputElement = this._elementRef.nativeElement;
|
|
64
|
-
}
|
|
65
|
-
ngOnChanges() {
|
|
66
|
-
this._chipList.stateChanges.next();
|
|
67
|
-
}
|
|
68
|
-
ngOnDestroy() {
|
|
69
|
-
this.graniteChipInputTokenEnd.complete();
|
|
70
|
-
}
|
|
71
|
-
ngAfterContentInit() {
|
|
72
|
-
this._focusLastChipOnBackspace = this.empty;
|
|
73
|
-
}
|
|
74
|
-
/** Utility method to make host definition/tests more clear. */
|
|
75
|
-
_keydown(event) {
|
|
76
|
-
if (event) {
|
|
77
|
-
// Allow the user's focus to escape when they're tabbing forward. Note that we don't
|
|
78
|
-
// want to do this when going backwards, because focus should go back to the first chip.
|
|
79
|
-
if (event.keyCode === TAB && !hasModifierKey(event, 'shiftKey')) {
|
|
80
|
-
this._chipList._allowFocusEscape();
|
|
81
|
-
}
|
|
82
|
-
// To prevent the user from accidentally deleting chips when pressing BACKSPACE continuously,
|
|
83
|
-
// We focus the last chip on backspace only after the user has released the backspace button,
|
|
84
|
-
// and the input is empty (see behaviour in _keyup)
|
|
85
|
-
if (event.keyCode === BACKSPACE && this._focusLastChipOnBackspace) {
|
|
86
|
-
this._chipList._keyManager.setLastItemActive();
|
|
87
|
-
event.preventDefault();
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this._focusLastChipOnBackspace = false;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
this._emitChipEnd(event);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Pass events to the keyboard manager. Available here for tests.
|
|
98
|
-
*/
|
|
99
|
-
_keyup(event) {
|
|
100
|
-
// Allow user to move focus to chips next time he presses backspace
|
|
101
|
-
if (!this._focusLastChipOnBackspace &&
|
|
102
|
-
event.keyCode === BACKSPACE &&
|
|
103
|
-
this.empty) {
|
|
104
|
-
this._focusLastChipOnBackspace = true;
|
|
105
|
-
event.preventDefault();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/** Checks to see if the blur should emit the (chipEnd) event. */
|
|
109
|
-
_blur() {
|
|
110
|
-
if (this.graniteChipInputAddOnBlur) {
|
|
111
|
-
this._emitChipEnd();
|
|
112
|
-
}
|
|
113
|
-
this.focused = false;
|
|
114
|
-
// Blur the chip list if it is not focused
|
|
115
|
-
if (!this._chipList.focused) {
|
|
116
|
-
this._chipList._blur();
|
|
117
|
-
}
|
|
118
|
-
this._chipList.stateChanges.next();
|
|
119
|
-
}
|
|
120
|
-
_focus() {
|
|
121
|
-
this.focused = true;
|
|
122
|
-
this._focusLastChipOnBackspace = this.empty;
|
|
123
|
-
this._chipList.stateChanges.next();
|
|
124
|
-
}
|
|
125
|
-
/** Checks to see if the (chipEnd) event needs to be emitted. */
|
|
126
|
-
_emitChipEnd(event) {
|
|
127
|
-
if (!this.inputElement.value && !!event) {
|
|
128
|
-
this._chipList._keydown(event);
|
|
129
|
-
}
|
|
130
|
-
if (!event || this._isSeparatorKey(event)) {
|
|
131
|
-
this.graniteChipInputTokenEnd.emit({
|
|
132
|
-
input: this.inputElement,
|
|
133
|
-
value: this.inputElement.value,
|
|
134
|
-
chipInput: this,
|
|
135
|
-
});
|
|
136
|
-
event?.preventDefault();
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
_onInput() {
|
|
140
|
-
// Let chip list know whenever the value changes.
|
|
141
|
-
this._chipList.stateChanges.next();
|
|
142
|
-
}
|
|
143
|
-
/** Focuses the input (called from parent level). */
|
|
144
|
-
setFocus(options) {
|
|
145
|
-
this.inputElement.focus(options);
|
|
146
|
-
}
|
|
147
|
-
/** Clears the input */
|
|
148
|
-
clear() {
|
|
149
|
-
this.inputElement.value = '';
|
|
150
|
-
this._focusLastChipOnBackspace = true;
|
|
151
|
-
}
|
|
152
|
-
/** Checks whether a keycode is one of the configured separators. */
|
|
153
|
-
_isSeparatorKey(event) {
|
|
154
|
-
return (!hasModifierKey(event) &&
|
|
155
|
-
new Set(this.graniteChipInputSeparatorKeyCodes).has(event.keyCode));
|
|
156
|
-
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipInputDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
158
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteChipInputDirective, selector: "input[graniteChipInputFor]", inputs: { id: "id", placeholder: "placeholder", graniteChipInputFor: "graniteChipInputFor", graniteChipInputSeparatorKeyCodes: "graniteChipInputSeparatorKeyCodes", graniteChipInputAddOnBlur: "graniteChipInputAddOnBlur", required: "required", disabled: "disabled" }, outputs: { graniteChipInputTokenEnd: "graniteChipInputTokenEnd" }, host: { listeners: { "keydown": "_keydown($event)", "keyup": "_keyup($event)", "blur": "_blur()", "focus": "_focus()", "input": "_onInput()" }, properties: { "id": "id", "attr.disabled": "disabled || null", "attr.placeholder": "placeholder || null", "attr.aria-required": "required || null" }, classAttribute: "granite-chip-input" }, exportAs: ["graniteChipInput", "graniteChipInputFor"], usesOnChanges: true, ngImport: i0 }); }
|
|
159
|
-
}
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteChipInputDirective, decorators: [{
|
|
161
|
-
type: Directive,
|
|
162
|
-
args: [{
|
|
163
|
-
selector: 'input[graniteChipInputFor]',
|
|
164
|
-
exportAs: 'graniteChipInput, graniteChipInputFor',
|
|
165
|
-
host: {
|
|
166
|
-
class: 'granite-chip-input',
|
|
167
|
-
'[id]': 'id',
|
|
168
|
-
'[attr.disabled]': 'disabled || null',
|
|
169
|
-
'[attr.placeholder]': 'placeholder || null',
|
|
170
|
-
'[attr.aria-required]': 'required || null',
|
|
171
|
-
'(keydown)': '_keydown($event)',
|
|
172
|
-
'(keyup)': '_keyup($event)',
|
|
173
|
-
'(blur)': '_blur()',
|
|
174
|
-
'(focus)': '_focus()',
|
|
175
|
-
'(input)': '_onInput()',
|
|
176
|
-
},
|
|
177
|
-
}]
|
|
178
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { id: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], placeholder: [{
|
|
181
|
-
type: Input
|
|
182
|
-
}], graniteChipInputTokenEnd: [{
|
|
183
|
-
type: Output
|
|
184
|
-
}], graniteChipInputFor: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], graniteChipInputSeparatorKeyCodes: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], graniteChipInputAddOnBlur: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], required: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], disabled: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3NyYy9saWIvY2hpcHMvY2hpcC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUUsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBeUJqRSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFrQnJCLE1BQU0sT0FBTyx5QkFBeUI7SUFhcEMsbUNBQW1DO0lBQ25DLElBQ0ksbUJBQW1CLENBQUMsS0FBK0I7UUFDckQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBWUQ7O09BRUc7SUFDSCxJQUNJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUkseUJBQXlCLENBQUMsS0FBYztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFHRDs7T0FFRztJQUNILElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENB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QkFEaEMsS0FBSztnQkFTRix5QkFBeUI7c0JBRDVCLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQWlCRixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQkFDS1NQQUNFLCBFTlRFUiwgaGFzTW9kaWZpZXJLZXksIFRBQiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3Jhbml0ZUNoaXBMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jaGlwLWxpc3QuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFuaXRlQ2hpcFRleHRDb250cm9sIHtcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdGV4dCBjb250cm9sLiAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogVGhlIHRleHQgY29udHJvbCdzIHBsYWNlaG9sZGVyIHRleHQuICovXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSB0ZXh0IGNvbnRyb2wgaGFzIGJyb3dzZXIgZm9jdXMuICovXG4gIGZvY3VzZWQ6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSB0ZXh0IGNvbnRyb2wgaXMgZW1wdHkuICovXG4gIGVtcHR5OiBib29sZWFuO1xuICAvKiogRm9jdXNlcyB0aGUgdGV4dCBjb250cm9sLiAqL1xuICBzZXRGb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZDtcbn1cblxuLyoqIFJlcHJlc2VudHMgYW4gaW5wdXQgZXZlbnQgb24gYSBgZ3Jhbml0ZUNoaXBJbnB1dGAuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYW5pdGVDaGlwSW5wdXRFdmVudCB7XG4gIC8qKiBUaGUgbmF0aXZlIGA8aW5wdXQ+YCBlbGVtZW50IHRoYXQgdGhlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGZvci4gKi9cbiAgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0LiAqL1xuICB2YWx1ZTogc3RyaW5nO1xuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBjaGlwIGlucHV0IHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gIGNoaXBJbnB1dDogR3Jhbml0ZUNoaXBJbnB1dERpcmVjdGl2ZTtcbn1cblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2dyYW5pdGVDaGlwSW5wdXRGb3JdJyxcbiAgZXhwb3J0QXM6ICdncmFuaXRlQ2hpcElucHV0LCBncmFuaXRlQ2hpcElucHV0Rm9yJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3Jhbml0ZS1jaGlwLWlucHV0JyxcbiAgICAnW2lkXSc6ICdpZCcsXG4gICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcbiAgICAnW2F0dHIucGxhY2Vob2xkZXJdJzogJ3BsYWNlaG9sZGVyIHx8IG51bGwnLFxuICAgICdbYXR0ci5hcmlhLXJlcXVpcmVkXSc6ICdyZXF1aXJlZCB8fCBudWxsJyxcbiAgICAnKGtleWRvd24pJzogJ19rZXlkb3duKCRldmVudCknLFxuICAgICcoa2V5dXApJzogJ19rZXl1cCgkZXZlbnQpJyxcbiAgICAnKGJsdXIpJzogJ19ibHVyKCknLFxuICAgICcoZm9jdXMpJzogJ19mb2N1cygpJyxcbiAgICAnKGlucHV0KSc6ICdfb25JbnB1dCgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZUNoaXBJbnB1dERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEdyYW5pdGVDaGlwVGV4dENvbnRyb2wsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0XG57XG4gIC8qKiBVbmlxdWUgaWQgZm9yIHRoZSBpbnB1dC4gKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGBncmFuaXRlLWNoaXAtbGlzdC1pbnB1dC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgLyoqIFRoZSBpbnB1dCdzIHBsYWNlaG9sZGVyIHRleHQuICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAvKiogRW1pdHRlZCB3aGVuIGEgY2hpcCBpcyB0byBiZSBhZGRlZC4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGdyYW5pdGVDaGlwSW5wdXRUb2tlbkVuZCA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxHcmFuaXRlQ2hpcElucHV0RXZlbnQ+KCk7XG5cbiAgLyoqIFJlZ2lzdGVyIGlucHV0IGZvciBjaGlwIGxpc3QgKi9cbiAgQElucHV0KClcbiAgc2V0IGdyYW5pdGVDaGlwSW5wdXRGb3IodmFsdWU6IEdyYW5pdGVDaGlwTGlzdENvbXBvbmVudCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fY2hpcExpc3QgPSB2YWx1ZTtcbiAgICAgIHRoaXMuX2NoaXBMaXN0LnJlZ2lzdGVySW5wdXQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGtleSBjb2RlcyB0aGF0IHdpbGwgdHJpZ2dlciBhIGNoaXBFbmQgZXZlbnQuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGBbRU5URVJdYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdyYW5pdGVDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2RlczogcmVhZG9ubHkgbnVtYmVyW10gfCBSZWFkb25seVNldDxudW1iZXI+ID0gW1xuICAgIEVOVEVSLFxuICBdIGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY2hpcEVuZCBldmVudCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaXMgYmx1cnJlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBncmFuaXRlQ2hpcElucHV0QWRkT25CbHVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hZGRPbkJsdXI7XG4gIH1cbiAgc2V0IGdyYW5pdGVDaGlwSW5wdXRBZGRPbkJsdXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hZGRPbkJsdXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIF9hZGRPbkJsdXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgYSByZXF1aXJlZCBmaWVsZCwgY3VycmVudGx5IHdlIHVzZSBpdCBvbmx5IGZvciBzZXR0aW5nIGFyaWEtcmVxdWlyZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgdG8gd2hpY2ggdGhpcyBkaXJlY3RpdmUgaXMgYXR0YWNoZWQuICovXG4gIHJlYWRvbmx5IGlucHV0RWxlbWVudCE6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIF9jaGlwTGlzdDogR3Jhbml0ZUNoaXBMaXN0Q29tcG9uZW50O1xuICBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIF9yZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgKHRoaXMuX2NoaXBMaXN0ICYmIHRoaXMuX2NoaXBMaXN0LmRpc2FibGVkKTtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZW1wdHkuICovXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVXNlZCB0byBwcmV2ZW50IGZvY3VzIG1vdmluZyB0byBjaGlwcyB3aGlsZSB1c2VyIGlzIGhvbGRpbmcgYmFja3NwYWNlICovXG4gIHByaXZhdGUgX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4pIHtcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2hpcExpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZ3Jhbml0ZUNoaXBJbnB1dFRva2VuRW5kLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlID0gdGhpcy5lbXB0eTtcbiAgfVxuXG4gIC8qKiBVdGlsaXR5IG1ldGhvZCB0byBtYWtlIGhvc3QgZGVmaW5pdGlvbi90ZXN0cyBtb3JlIGNsZWFyLiAqL1xuICBfa2V5ZG93bihldmVudD86IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIC8vIEFsbG93IHRoZSB1c2VyJ3MgZm9jdXMgdG8gZXNjYXBlIHdoZW4gdGhleSdyZSB0YWJiaW5nIGZvcndhcmQuIE5vdGUgdGhhdCB3ZSBkb24ndFxuICAgICAgLy8gd2FudCB0byBkbyB0aGlzIHdoZW4gZ29pbmcgYmFja3dhcmRzLCBiZWNhdXNlIGZvY3VzIHNob3VsZCBnbyBiYWNrIHRvIHRoZSBmaXJzdCBjaGlwLlxuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFRBQiAmJiAhaGFzTW9kaWZpZXJLZXkoZXZlbnQsICdzaGlmdEtleScpKSB7XG4gICAgICAgIHRoaXMuX2NoaXBMaXN0Ll9hbGxvd0ZvY3VzRXNjYXBlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIHByZXZlbnQgdGhlIHVzZXIgZnJvbSBhY2NpZGVudGFsbHkgZGVsZXRpbmcgY2hpcHMgd2hlbiBwcmVzc2luZyBCQUNLU1BBQ0UgY29udGludW91c2x5LFxuICAgICAgLy8gV2UgZm9jdXMgdGhlIGxhc3QgY2hpcCBvbiBiYWNrc3BhY2Ugb25seSBhZnRlciB0aGUgdXNlciBoYXMgcmVsZWFzZWQgdGhlIGJhY2tzcGFjZSBidXR0b24sXG4gICAgICAvLyBhbmQgdGhlIGlucHV0IGlzIGVtcHR5IChzZWUgYmVoYXZpb3VyIGluIF9rZXl1cClcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBCQUNLU1BBQ0UgJiYgdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlKSB7XG4gICAgICAgIHRoaXMuX2NoaXBMaXN0Ll9rZXlNYW5hZ2VyLnNldExhc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2VtaXRDaGlwRW5kKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXNzIGV2ZW50cyB0byB0aGUga2V5Ym9hcmQgbWFuYWdlci4gQXZhaWxhYmxlIGhlcmUgZm9yIHRlc3RzLlxuICAgKi9cbiAgX2tleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLy8gQWxsb3cgdXNlciB0byBtb3ZlIGZvY3VzIHRvIGNoaXBzIG5leHQgdGltZSBoZSBwcmVzc2VzIGJhY2tzcGFjZVxuICAgIGlmIChcbiAgICAgICF0aGlzLl9mb2N1c0xhc3RDaGlwT25CYWNrc3BhY2UgJiZcbiAgICAgIGV2ZW50LmtleUNvZGUgPT09IEJBQ0tTUEFDRSAmJlxuICAgICAgdGhpcy5lbXB0eVxuICAgICkge1xuICAgICAgdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlID0gdHJ1ZTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoZWNrcyB0byBzZWUgaWYgdGhlIGJsdXIgc2hvdWxkIGVtaXQgdGhlIChjaGlwRW5kKSBldmVudC4gKi9cbiAgX2JsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ3Jhbml0ZUNoaXBJbnB1dEFkZE9uQmx1cikge1xuICAgICAgdGhpcy5fZW1pdENoaXBFbmQoKTtcbiAgICB9XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgLy8gQmx1ciB0aGUgY2hpcCBsaXN0IGlmIGl0IGlzIG5vdCBmb2N1c2VkXG4gICAgaWYgKCF0aGlzLl9jaGlwTGlzdC5mb2N1c2VkKSB7XG4gICAgICB0aGlzLl9jaGlwTGlzdC5fYmx1cigpO1xuICAgIH1cbiAgICB0aGlzLl9jaGlwTGlzdC5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgX2ZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5fZm9jdXNMYXN0Q2hpcE9uQmFja3NwYWNlID0gdGhpcy5lbXB0eTtcbiAgICB0aGlzLl9jaGlwTGlzdC5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIENoZWNrcyB0byBzZWUgaWYgdGhlIChjaGlwRW5kKSBldmVudCBuZWVkcyB0byBiZSBlbWl0dGVkLiAqL1xuICBfZW1pdENoaXBFbmQoZXZlbnQ/OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlucHV0RWxlbWVudC52YWx1ZSAmJiAhIWV2ZW50KSB7XG4gICAgICB0aGlzLl9jaGlwTGlzdC5fa2V5ZG93bihldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKCFldmVudCB8fCB0aGlzLl9pc1NlcGFyYXRvcktleShldmVudCkpIHtcbiAgICAgIHRoaXMuZ3Jhbml0ZUNoaXBJbnB1dFRva2VuRW5kLmVtaXQoe1xuICAgICAgICBpbnB1dDogdGhpcy5pbnB1dEVsZW1lbnQsXG4gICAgICAgIHZhbHVlOiB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSxcbiAgICAgICAgY2hpcElucHV0OiB0aGlzLFxuICAgICAgfSk7XG5cbiAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIF9vbklucHV0KCk6IHZvaWQge1xuICAgIC8vIExldCBjaGlwIGxpc3Qga25vdyB3aGVuZXZlciB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICB0aGlzLl9jaGlwTGlzdC5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIGlucHV0IChjYWxsZWQgZnJvbSBwYXJlbnQgbGV2ZWwpLiAqL1xuICBzZXRGb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiogQ2xlYXJzIHRoZSBpbnB1dCAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZSA9IHRydWU7XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgYSBrZXljb2RlIGlzIG9uZSBvZiB0aGUgY29uZmlndXJlZCBzZXBhcmF0b3JzLiAqL1xuICBwcml2YXRlIF9pc1NlcGFyYXRvcktleShldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhaGFzTW9kaWZpZXJLZXkoZXZlbnQpICYmXG4gICAgICBuZXcgU2V0KHRoaXMuZ3Jhbml0ZUNoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzKS5oYXMoZXZlbnQua2V5Q29kZSlcbiAgICApO1xuICB9XG59XG4iXX0=
|