@daffodil/design 0.90.0 → 0.92.3-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/README.md +26 -38
- package/accordion/index.d.ts +9 -6
- package/article/README.md +66 -46
- package/article/index.d.ts +41 -0
- package/article/src/article-theme.scss +22 -0
- package/breadcrumb/README.md +6 -1
- package/breadcrumb/index.d.ts +65 -11
- package/breadcrumb/src/breadcrumb-theme.scss +1 -1
- package/button/README.md +36 -33
- package/button/index.d.ts +27 -6
- package/button/src/button/basic/button-theme.scss +4 -2
- package/button/src/button/button-base.scss +29 -6
- package/button/src/button/icon/icon-theme.scss +10 -6
- package/button/src/button/raised/raised-theme.scss +6 -4
- package/callout/README.md +15 -27
- package/card/README.md +36 -69
- package/card/index.d.ts +7 -41
- package/card/src/card-base-theme.scss +2 -5
- package/card/src/card-base.scss +2 -2
- package/checkbox/README.md +0 -0
- package/checkbox/index.d.ts +177 -0
- package/container/README.md +18 -23
- package/fesm2022/daffodil-design-accordion.mjs +34 -25
- package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
- package/fesm2022/daffodil-design-article.mjs +283 -17
- package/fesm2022/daffodil-design-article.mjs.map +1 -1
- package/fesm2022/daffodil-design-breadcrumb.mjs +180 -28
- package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
- package/fesm2022/daffodil-design-button.mjs +90 -45
- package/fesm2022/daffodil-design-button.mjs.map +1 -1
- package/fesm2022/daffodil-design-callout.mjs +23 -23
- package/fesm2022/daffodil-design-callout.mjs.map +1 -1
- package/fesm2022/daffodil-design-card.mjs +43 -90
- package/fesm2022/daffodil-design-card.mjs.map +1 -1
- package/fesm2022/daffodil-design-checkbox.mjs +317 -0
- package/fesm2022/daffodil-design-checkbox.mjs.map +1 -0
- package/fesm2022/daffodil-design-container.mjs +8 -8
- package/fesm2022/daffodil-design-container.mjs.map +1 -1
- package/fesm2022/daffodil-design-form-field.mjs +56 -86
- package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
- package/fesm2022/daffodil-design-form.mjs +62 -0
- package/fesm2022/daffodil-design-form.mjs.map +1 -0
- package/fesm2022/daffodil-design-hero.mjs +23 -23
- package/fesm2022/daffodil-design-hero.mjs.map +1 -1
- package/fesm2022/daffodil-design-image.mjs +19 -11
- package/fesm2022/daffodil-design-image.mjs.map +1 -1
- package/fesm2022/daffodil-design-input.mjs +18 -14
- package/fesm2022/daffodil-design-input.mjs.map +1 -1
- package/fesm2022/daffodil-design-link-set.mjs +25 -17
- package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
- package/fesm2022/daffodil-design-list.mjs +16 -16
- package/fesm2022/daffodil-design-list.mjs.map +1 -1
- package/fesm2022/daffodil-design-loading-icon.mjs +8 -8
- package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
- package/fesm2022/daffodil-design-media-gallery.mjs +13 -13
- package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
- package/fesm2022/daffodil-design-menu.mjs +223 -60
- package/fesm2022/daffodil-design-menu.mjs.map +1 -1
- package/fesm2022/daffodil-design-modal.mjs +86 -83
- package/fesm2022/daffodil-design-modal.mjs.map +1 -1
- package/fesm2022/daffodil-design-native-select.mjs +47 -41
- package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-navbar.mjs +25 -21
- package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
- package/fesm2022/daffodil-design-notification.mjs +28 -64
- package/fesm2022/daffodil-design-notification.mjs.map +1 -1
- package/fesm2022/daffodil-design-paginator.mjs +11 -16
- package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
- package/fesm2022/daffodil-design-progress-bar.mjs +10 -10
- package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
- package/fesm2022/daffodil-design-quantity-field.mjs +19 -18
- package/fesm2022/daffodil-design-quantity-field.mjs.map +1 -1
- package/fesm2022/daffodil-design-radio.mjs +27 -56
- package/fesm2022/daffodil-design-radio.mjs.map +1 -1
- package/fesm2022/daffodil-design-select.mjs +6 -6
- package/fesm2022/daffodil-design-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-sidebar.mjs +30 -60
- package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
- package/fesm2022/daffodil-design-spinner.mjs +99 -0
- package/fesm2022/daffodil-design-spinner.mjs.map +1 -0
- package/fesm2022/daffodil-design-switch.mjs +49 -106
- package/fesm2022/daffodil-design-switch.mjs.map +1 -1
- package/fesm2022/daffodil-design-tabs.mjs +35 -27
- package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
- package/fesm2022/daffodil-design-tag.mjs +7 -7
- package/fesm2022/daffodil-design-tag.mjs.map +1 -1
- package/fesm2022/daffodil-design-text-snippet.mjs +6 -8
- package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
- package/fesm2022/daffodil-design-textarea.mjs +6 -3
- package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
- package/fesm2022/daffodil-design-toast.mjs +79 -80
- package/fesm2022/daffodil-design-toast.mjs.map +1 -1
- package/fesm2022/daffodil-design-tree.mjs +152 -112
- package/fesm2022/daffodil-design-tree.mjs.map +1 -1
- package/fesm2022/daffodil-design-youtube-player.mjs +6 -6
- package/fesm2022/daffodil-design-youtube-player.mjs.map +1 -1
- package/fesm2022/daffodil-design.mjs +559 -711
- package/fesm2022/daffodil-design.mjs.map +1 -1
- package/form/README.md +75 -0
- package/form/index.d.ts +27 -0
- package/form-field/README.md +74 -99
- package/form-field/index.d.ts +64 -42
- package/hero/README.md +5 -5
- package/image/README.md +27 -19
- package/image/index.d.ts +6 -1
- package/index.d.ts +282 -447
- package/input/README.md +36 -16
- package/input/index.d.ts +4 -3
- package/link-set/index.d.ts +9 -1
- package/list/README.md +2 -2
- package/loading-icon/README.md +1 -1
- package/loading-icon/index.d.ts +1 -1
- package/media-gallery/README.md +3 -3
- package/menu/README.md +107 -10
- package/menu/index.d.ts +143 -11
- package/modal/README.md +107 -17
- package/modal/index.d.ts +72 -35
- package/native-select/README.md +52 -15
- package/native-select/index.d.ts +8 -7
- package/navbar/README.md +23 -17
- package/navbar/index.d.ts +12 -2
- package/navbar/src/navbar-theme.scss +4 -46
- package/notification/README.md +4 -4
- package/notification/index.d.ts +7 -38
- package/package.json +1 -1
- package/paginator/README.md +42 -6
- package/paginator/index.d.ts +5 -9
- package/progress-bar/README.md +3 -3
- package/quantity-field/README.md +4 -4
- package/quantity-field/index.d.ts +4 -1
- package/radio/README.md +1 -1
- package/radio/index.d.ts +0 -16
- package/scss/layout/_breakpoint.scss +1 -1
- package/scss/theme.scss +9 -5
- package/scss/theming/_color-palettes.scss +19 -11
- package/scss/theming/_configure-theme.scss +11 -10
- package/scss/theming/_daff-theme.scss +5 -14
- package/scss/theming/_get-base-color.scss +2 -2
- package/scss/theming/_get-palette.scss +2 -2
- package/scss/theming/_get-theme-mode.scss +3 -3
- package/scss/theming/_index.scss +2 -1
- package/scss/theming/contrast/max-contrast/max-contrast.scss +3 -3
- package/scss/theming/contrast/text-contrast/text-contrast.scss +22 -16
- package/scss/theming/contrast/text-contrast/text-contrast.spec.scss +57 -0
- package/scss/theming/create-theme/_create-theme.scss +330 -0
- package/scss/theming/create-theme/_create-theme.spec.scss +122 -0
- package/scss/theming/create-theme/_index.scss +1 -0
- package/scss/theming/get-font-colors/_get-font-colors.scss +36 -0
- package/scss/theming/get-font-colors/_get-font-colors.spec.scss +72 -0
- package/scss/typography/mixins/_font-weight.scss +8 -14
- package/select/README.md +107 -4
- package/sidebar/README.md +6 -14
- package/sidebar/index.d.ts +3 -15
- package/spinner/README.md +57 -0
- package/spinner/index.d.ts +53 -0
- package/spinner/src/spinner-theme.scss +62 -0
- package/switch/README.md +21 -29
- package/switch/index.d.ts +18 -48
- package/switch/src/switch-theme.scss +26 -18
- package/tabs/README.md +1 -1
- package/tabs/index.d.ts +8 -5
- package/tag/README.md +24 -30
- package/tag/index.d.ts +1 -1
- package/tag/src/tag-theme.scss +11 -9
- package/text-snippet/README.md +1 -1
- package/text-snippet/src/text-snippet-theme.scss +12 -0
- package/textarea/README.md +36 -6
- package/textarea/index.d.ts +4 -4
- package/toast/README.md +4 -4
- package/tree/README.md +39 -22
- package/tree/index.d.ts +57 -96
- package/tree/src/tree-theme.scss +0 -4
- package/accordion/examples/index.d.ts +0 -20
- package/article/examples/index.d.ts +0 -50
- package/breadcrumb/examples/index.d.ts +0 -10
- package/button/examples/index.d.ts +0 -67
- package/callout/examples/index.d.ts +0 -41
- package/card/examples/index.d.ts +0 -62
- package/card/src/card/raised/raised-theme.scss +0 -28
- package/checkbox/examples/index.d.ts +0 -32
- package/container/examples/index.d.ts +0 -16
- package/fesm2022/daffodil-design-accordion-examples.mjs +0 -50
- package/fesm2022/daffodil-design-accordion-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-article-examples.mjs +0 -134
- package/fesm2022/daffodil-design-article-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-breadcrumb-examples.mjs +0 -46
- package/fesm2022/daffodil-design-breadcrumb-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-button-examples.mjs +0 -178
- package/fesm2022/daffodil-design-button-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-callout-examples.mjs +0 -116
- package/fesm2022/daffodil-design-callout-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-card-examples.mjs +0 -168
- package/fesm2022/daffodil-design-card-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-checkbox-examples.mjs +0 -76
- package/fesm2022/daffodil-design-checkbox-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-container-examples.mjs +0 -41
- package/fesm2022/daffodil-design-container-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-form-field-examples.mjs +0 -96
- package/fesm2022/daffodil-design-form-field-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-hero-examples.mjs +0 -121
- package/fesm2022/daffodil-design-hero-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-image-examples.mjs +0 -58
- package/fesm2022/daffodil-design-image-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-input-examples.mjs +0 -108
- package/fesm2022/daffodil-design-input-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-list-examples.mjs +0 -77
- package/fesm2022/daffodil-design-list-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-loading-icon-examples.mjs +0 -44
- package/fesm2022/daffodil-design-loading-icon-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-media-gallery-examples.mjs +0 -104
- package/fesm2022/daffodil-design-media-gallery-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-menu-examples.mjs +0 -50
- package/fesm2022/daffodil-design-menu-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-modal-examples.mjs +0 -51
- package/fesm2022/daffodil-design-modal-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-native-select-examples.mjs +0 -71
- package/fesm2022/daffodil-design-native-select-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-navbar-examples.mjs +0 -88
- package/fesm2022/daffodil-design-navbar-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-notification-examples.mjs +0 -102
- package/fesm2022/daffodil-design-notification-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-paginator-examples.mjs +0 -59
- package/fesm2022/daffodil-design-paginator-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-progress-bar-examples.mjs +0 -57
- package/fesm2022/daffodil-design-progress-bar-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-quantity-field-examples.mjs +0 -85
- package/fesm2022/daffodil-design-quantity-field-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-radio-examples.mjs +0 -34
- package/fesm2022/daffodil-design-radio-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-select-examples.mjs +0 -117
- package/fesm2022/daffodil-design-select-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-sidebar-examples.mjs +0 -109
- package/fesm2022/daffodil-design-sidebar-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-sticky-examples.mjs +0 -25
- package/fesm2022/daffodil-design-sticky-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-switch-examples.mjs +0 -110
- package/fesm2022/daffodil-design-switch-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-tabs-examples.mjs +0 -115
- package/fesm2022/daffodil-design-tabs-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-tag-examples.mjs +0 -125
- package/fesm2022/daffodil-design-tag-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-text-snippet-examples.mjs +0 -25
- package/fesm2022/daffodil-design-text-snippet-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-textarea-examples.mjs +0 -66
- package/fesm2022/daffodil-design-textarea-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-toast-examples.mjs +0 -147
- package/fesm2022/daffodil-design-toast-examples.mjs.map +0 -1
- package/fesm2022/daffodil-design-tree-examples.mjs +0 -104
- package/fesm2022/daffodil-design-tree-examples.mjs.map +0 -1
- package/form-field/examples/index.d.ts +0 -18
- package/hero/examples/index.d.ts +0 -45
- package/image/examples/index.d.ts +0 -10
- package/input/examples/index.d.ts +0 -10
- package/list/examples/index.d.ts +0 -29
- package/loading-icon/examples/index.d.ts +0 -16
- package/media-gallery/examples/index.d.ts +0 -38
- package/menu/examples/index.d.ts +0 -20
- package/modal/examples/index.d.ts +0 -15
- package/native-select/examples/index.d.ts +0 -10
- package/navbar/examples/index.d.ts +0 -31
- package/notification/examples/index.d.ts +0 -12
- package/paginator/examples/index.d.ts +0 -26
- package/progress-bar/examples/index.d.ts +0 -10
- package/quantity-field/examples/index.d.ts +0 -30
- package/radio/examples/index.d.ts +0 -13
- package/select/examples/index.d.ts +0 -28
- package/sidebar/examples/index.d.ts +0 -10
- package/sticky/examples/index.d.ts +0 -10
- package/switch/examples/index.d.ts +0 -46
- package/tabs/examples/index.d.ts +0 -12
- package/tag/examples/index.d.ts +0 -50
- package/text-snippet/examples/index.d.ts +0 -10
- package/textarea/examples/index.d.ts +0 -10
- package/toast/examples/index.d.ts +0 -56
- package/tree/examples/index.d.ts +0 -18
- /package/{form-field → form}/src/error-message/error-message-theme.scss +0 -0
- /package/{form-field → form}/src/hint/hint-theme.scss +0 -0
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { Input, ChangeDetectionStrategy, Component, EventEmitter, Output, Optional, Injectable, Self, Directive, NgModule } from '@angular/core';
|
|
4
4
|
import * as i1 from '@angular/forms';
|
|
5
5
|
|
|
6
6
|
class DaffRadioSetComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
this.role = 'radiogroup';
|
|
12
|
-
}
|
|
13
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: DaffRadioSetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: DaffRadioSetComponent, isStandalone: true, selector: "daff-radio-set", inputs: { name: "name" }, host: { properties: { "attr.role": "this.role" } }, ngImport: i0, template: "<ng-content></ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7
|
+
constructor() { }
|
|
8
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioSetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffRadioSetComponent, isStandalone: true, selector: "daff-radio-set", inputs: { name: "name" }, host: { attributes: { "role": "radiogroup" } }, ngImport: i0, template: "<ng-content></ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
10
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioSetComponent, decorators: [{
|
|
17
12
|
type: Component,
|
|
18
|
-
args: [{ selector: 'daff-radio-set', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
|
+
args: [{ selector: 'daff-radio-set', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
14
|
+
role: 'radiogroup',
|
|
15
|
+
}, template: "<ng-content></ng-content>" }]
|
|
19
16
|
}], ctorParameters: () => [], propDecorators: { name: [{
|
|
20
17
|
type: Input
|
|
21
|
-
}], role: [{
|
|
22
|
-
type: HostBinding,
|
|
23
|
-
args: ['attr.role']
|
|
24
18
|
}] } });
|
|
25
19
|
|
|
26
20
|
let radioUniqueId = 0;
|
|
27
21
|
class DaffRadioComponent {
|
|
28
|
-
/**
|
|
29
|
-
* @docs-private
|
|
30
|
-
*/
|
|
31
|
-
get focusClass() {
|
|
32
|
-
return this.focused === true;
|
|
33
|
-
}
|
|
34
|
-
;
|
|
35
|
-
/**
|
|
36
|
-
* @docs-private
|
|
37
|
-
*/
|
|
38
|
-
get disabledClass() {
|
|
39
|
-
return this.disabled === true;
|
|
40
|
-
}
|
|
41
|
-
;
|
|
42
22
|
/**
|
|
43
23
|
* The checked property of the radio
|
|
44
24
|
*/
|
|
@@ -53,10 +33,6 @@ class DaffRadioComponent {
|
|
|
53
33
|
}
|
|
54
34
|
constructor(radioset) {
|
|
55
35
|
this.radioset = radioset;
|
|
56
|
-
/**
|
|
57
|
-
* @docs-private
|
|
58
|
-
*/
|
|
59
|
-
this.role = 'radio';
|
|
60
36
|
/**
|
|
61
37
|
* @docs-private
|
|
62
38
|
*/
|
|
@@ -116,24 +92,19 @@ class DaffRadioComponent {
|
|
|
116
92
|
this.select();
|
|
117
93
|
}
|
|
118
94
|
;
|
|
119
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
120
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
95
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioComponent, deps: [{ token: DaffRadioSetComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffRadioComponent, isStandalone: true, selector: "daff-radio", inputs: { checked: "checked", value: "value", id: "id", name: "name", label: ["aria-label", "label"], labelledby: ["aria-labelledby", "labelledby"] }, outputs: { selectionChange: "selectionChange" }, host: { attributes: { "role": "radio" }, properties: { "class.focused": "focused", "class.disabled": "disabled" } }, ngImport: i0, template: "<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
121
97
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioComponent, decorators: [{
|
|
123
99
|
type: Component,
|
|
124
|
-
args: [{ selector: 'daff-radio', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
100
|
+
args: [{ selector: 'daff-radio', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
101
|
+
role: 'radio',
|
|
102
|
+
'[class.focused]': 'focused',
|
|
103
|
+
'[class.disabled]': 'disabled',
|
|
104
|
+
}, template: "<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>" }]
|
|
125
105
|
}], ctorParameters: () => [{ type: DaffRadioSetComponent, decorators: [{
|
|
126
106
|
type: Optional
|
|
127
|
-
}] }], propDecorators: {
|
|
128
|
-
type: HostBinding,
|
|
129
|
-
args: ['attr.role']
|
|
130
|
-
}], focusClass: [{
|
|
131
|
-
type: HostBinding,
|
|
132
|
-
args: ['class.focused']
|
|
133
|
-
}], disabledClass: [{
|
|
134
|
-
type: HostBinding,
|
|
135
|
-
args: ['class.disabled']
|
|
136
|
-
}], selectionChange: [{
|
|
107
|
+
}] }], propDecorators: { selectionChange: [{
|
|
137
108
|
type: Output
|
|
138
109
|
}], checked: [{
|
|
139
110
|
type: Input
|
|
@@ -195,10 +166,10 @@ class DaffRadioRegistry {
|
|
|
195
166
|
return controlPair.control.control.parent === accessor._control.control.parent
|
|
196
167
|
&& controlPair.accessor.name === accessor.name;
|
|
197
168
|
}
|
|
198
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
199
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
169
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
170
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioRegistry, providedIn: 'root' }); }
|
|
200
171
|
}
|
|
201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioRegistry, decorators: [{
|
|
202
173
|
type: Injectable,
|
|
203
174
|
args: [{ providedIn: 'root' }]
|
|
204
175
|
}] });
|
|
@@ -270,10 +241,10 @@ class DaffRadioControlValueAccessorDirective {
|
|
|
270
241
|
fireDeselect() {
|
|
271
242
|
this._radio.deselect();
|
|
272
243
|
}
|
|
273
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
274
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
244
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioControlValueAccessorDirective, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: DaffRadioRegistry }, { token: DaffRadioComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
245
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffRadioControlValueAccessorDirective, isStandalone: true, selector: "daff-radio[ngModel], daff-radio[formControl], daff-radio[formControlName]", inputs: { value: "value", name: "name" }, ngImport: i0 }); }
|
|
275
246
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioControlValueAccessorDirective, decorators: [{
|
|
277
248
|
type: Directive,
|
|
278
249
|
args: [{
|
|
279
250
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -290,16 +261,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
290
261
|
}] } });
|
|
291
262
|
|
|
292
263
|
class DaffRadioModule {
|
|
293
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
294
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
264
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
265
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, imports: [CommonModule,
|
|
295
266
|
DaffRadioComponent,
|
|
296
267
|
DaffRadioSetComponent,
|
|
297
268
|
DaffRadioControlValueAccessorDirective], exports: [DaffRadioComponent,
|
|
298
269
|
DaffRadioSetComponent,
|
|
299
270
|
DaffRadioControlValueAccessorDirective] }); }
|
|
300
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
271
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, imports: [CommonModule] }); }
|
|
301
272
|
}
|
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffRadioModule, decorators: [{
|
|
303
274
|
type: NgModule,
|
|
304
275
|
args: [{
|
|
305
276
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-radio.mjs","sources":["../../../libs/design/radio/src/radio-set/radio-set.component.ts","../../../libs/design/radio/src/radio-set/radio-set.component.html","../../../libs/design/radio/src/radio/radio.component.ts","../../../libs/design/radio/src/radio/radio.component.html","../../../libs/design/radio/src/registry/radio-registry.ts","../../../libs/design/radio/src/cva/radio-cva.directive.ts","../../../libs/design/radio/src/radio.module.ts","../../../libs/design/radio/src/radio.ts","../../../libs/design/radio/src/daffodil-design-radio.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n Input,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-radio-set',\n templateUrl: './radio-set.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffRadioSetComponent {\n\n @Input() name: string;\n\n constructor() { }\n\n /**\n * @docs-private\n */\n @HostBinding('attr.role') role = 'radiogroup';\n\n}\n","<ng-content></ng-content>","import {\n Component,\n OnInit,\n Input,\n HostBinding,\n ChangeDetectionStrategy,\n Optional,\n Output,\n EventEmitter,\n} from '@angular/core';\n\nimport { DaffRadioSetComponent } from '../radio-set/radio-set.component';\n\nlet radioUniqueId = 0;\n\n@Component({\n selector: 'daff-radio',\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffRadioComponent implements OnInit {\n\n /**\n * @docs-private\n */\n @HostBinding('attr.role') role = 'radio';\n /**\n * @docs-private\n */\n @HostBinding('class.focused') get focusClass() {\n return this.focused === true;\n };\n /**\n * @docs-private\n */\n @HostBinding('class.disabled') get disabledClass() {\n return this.disabled === true;\n };\n\n /**\n * @docs-private\n */\n _checked = false;\n /**\n * Output event of selection being changed\n */\n @Output() selectionChange: EventEmitter<boolean> = new EventEmitter();\n\n\n /**\n * The checked property of the radio\n */\n @Input()\n get checked() {\n return this._checked;\n }\n set checked(value: boolean) {\n if (this._checked !== value) {\n this._checked = value;\n this.selectionChange.emit(this.value);\n }\n }\n /**\n * The value of the radio\n */\n @Input() value: any;\n /**\n * The id of the radio. It is uniquely generated but can be overwritten by the user. Must be unique.\n */\n @Input() id: string = 'daff-radio-' + radioUniqueId;\n\n /**\n * Name of the Radio\n */\n @Input() name = '';\n\n /**\n * Used for aria-label. Default to name if user does not input a label.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-label') label: string = this.name;\n\n /**\n * Used for aria-labelledby.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-labelledby') labelledby: string;\n\n\n disabled = false;\n focused = false;\n\n constructor(@Optional() private radioset: DaffRadioSetComponent) {\n radioUniqueId++;\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.name = this.radioset ? this.radioset.name : this.name;\n }\n\n /**\n * updates Focus styling\n */\n onFocus() {\n this.focused = true;\n }\n /**\n * updates Blur styling\n */\n onBlur() {\n this.focused = false;\n }\n /**\n * toggles checked attribute on\n */\n select(): void {\n this.checked = true;\n }\n /**\n * toggles checked attribute off\n */\n deselect(): void {\n this.checked = false;\n }\n onChange() {\n this.select();\n };\n}\n","<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>","import { Injectable } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { DaffRadioControlValueAccessorDirective } from '../cva/radio-cva.directive';\n\nexport interface ControlAccessorPair {\n control: NgControl;\n accessor: DaffRadioControlValueAccessorDirective;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DaffRadioRegistry {\n private _accessors: ControlAccessorPair[] = [];\n\n /**\n * @description\n * Adds a control to the internal registry.\n */\n add(control: NgControl, accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.push({\n control,\n accessor,\n });\n }\n\n /**\n * @description\n * Removes a control from the internal registry.\n */\n remove(accessor: DaffRadioControlValueAccessorDirective) {\n for (let i = this._accessors.length - 1; i >= 0; --i) {\n if (this._accessors[i].accessor === accessor) {\n this._accessors.splice(i, 1);\n return;\n }\n }\n }\n\n /**\n * @description\n * Selects a radio button.\n */\n select(accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.forEach((c) => {\n if (this._isSameGroup(c, accessor) && c.accessor !== accessor) {\n c.accessor.fireDeselect();\n }\n });\n }\n\n private _isSameGroup(\n controlPair: ControlAccessorPair,\n accessor: DaffRadioControlValueAccessorDirective): boolean {\n if (!controlPair.control.control) {\n return false;\n }\n return controlPair.control.control.parent === accessor._control.control.parent\n && controlPair.accessor.name === accessor.name;\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n Self,\n Optional,\n} from '@angular/core';\nimport {\n NgControl,\n ControlValueAccessor,\n} from '@angular/forms';\n\nimport { DaffRadioComponent } from '../radio/radio.component';\nimport { DaffRadioRegistry } from '../registry/radio-registry';\n\n/**\n * ControlValueAccessor functionality for the DaffRadio\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'daff-radio[ngModel], daff-radio[formControl], daff-radio[formControlName]',\n})\nexport class DaffRadioControlValueAccessorDirective implements OnInit, ControlValueAccessor {\n _onChange: () => void;\n _onTouched: () => void;\n\n /**\n * The value of the ControlValueAccessor\n */\n @Input() value: any;\n\n /**\n * The name of the ControlValueAccessor\n */\n @Input() name: string;\n\n constructor(\n @Optional() @Self() public _control: NgControl,\n private _registry: DaffRadioRegistry,\n private _radio: DaffRadioComponent,\n ) {\n if (this._control != null) {\n this._control.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n if (this._control) {\n this.writeValue(this._control.value);\n this._registry.add(this._control, this);\n }\n\n this._radio.selectionChange.subscribe(\n value => value ? this._onChange() : null,\n );\n }\n /**\n *\n * writeValue function from the CVA interface\n */\n writeValue(value: any): void {\n // the this._onChange null check here is necessary because of an ongoing bug in angular forms\n // where writeValue can be called before the component initializes: https://github.com/angular/angular/issues/29218\n if (this.value === value && this._onChange) {\n this._onChange();\n this.fireSelect();\n }\n }\n\n /**\n * registerOnChange implemented from the CVA interface\n */\n registerOnChange(fn: any): void {\n this._onChange = () => {\n fn(this.value);\n this._registry.select(this);\n };\n }\n\n /**\n * registerOnTouch implemented from the CVA interface\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * sets the disabled state.\n */\n setDisabledState?(isDisabled: boolean): void {\n this._radio.disabled = isDisabled;\n }\n\n /**\n calls select function for the radio\n */\n fireSelect() {\n this._radio.select();\n }\n\n /**\n calls deselect function for the radio\n */\n fireDeselect() {\n this._radio.deselect();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n exports: [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n})\nexport class DaffRadioModule { }\n","import { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n/**\n * @docs-private\n */\nexport const DAFF_RADIO_COMPONENTS = <const> [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffRadioSetComponent","i2.DaffRadioRegistry","i3.DaffRadioComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daffodil-design-radio.mjs","sources":["../../../libs/design/radio/src/radio-set/radio-set.component.ts","../../../libs/design/radio/src/radio-set/radio-set.component.html","../../../libs/design/radio/src/radio/radio.component.ts","../../../libs/design/radio/src/radio/radio.component.html","../../../libs/design/radio/src/registry/radio-registry.ts","../../../libs/design/radio/src/cva/radio-cva.directive.ts","../../../libs/design/radio/src/radio.module.ts","../../../libs/design/radio/src/radio.ts","../../../libs/design/radio/src/daffodil-design-radio.ts"],"sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-radio-set',\n templateUrl: './radio-set.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radiogroup',\n },\n})\n\nexport class DaffRadioSetComponent {\n\n @Input() name: string;\n\n constructor() { }\n\n}\n","<ng-content></ng-content>","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n Optional,\n Output,\n EventEmitter,\n} from '@angular/core';\n\nimport { DaffRadioSetComponent } from '../radio-set/radio-set.component';\n\nlet radioUniqueId = 0;\n\n@Component({\n selector: 'daff-radio',\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radio',\n '[class.focused]': 'focused',\n '[class.disabled]': 'disabled',\n },\n})\n\nexport class DaffRadioComponent implements OnInit {\n\n /**\n * @docs-private\n */\n _checked = false;\n /**\n * Output event of selection being changed\n */\n @Output() selectionChange: EventEmitter<boolean> = new EventEmitter();\n\n\n /**\n * The checked property of the radio\n */\n @Input()\n get checked() {\n return this._checked;\n }\n set checked(value: boolean) {\n if (this._checked !== value) {\n this._checked = value;\n this.selectionChange.emit(this.value);\n }\n }\n /**\n * The value of the radio\n */\n @Input() value: any;\n /**\n * The id of the radio. It is uniquely generated but can be overwritten by the user. Must be unique.\n */\n @Input() id: string = 'daff-radio-' + radioUniqueId;\n\n /**\n * Name of the Radio\n */\n @Input() name = '';\n\n /**\n * Used for aria-label. Default to name if user does not input a label.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-label') label: string = this.name;\n\n /**\n * Used for aria-labelledby.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('aria-labelledby') labelledby: string;\n\n\n disabled = false;\n focused = false;\n\n constructor(@Optional() private radioset: DaffRadioSetComponent) {\n radioUniqueId++;\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.name = this.radioset ? this.radioset.name : this.name;\n }\n\n /**\n * updates Focus styling\n */\n onFocus() {\n this.focused = true;\n }\n /**\n * updates Blur styling\n */\n onBlur() {\n this.focused = false;\n }\n /**\n * toggles checked attribute on\n */\n select(): void {\n this.checked = true;\n }\n /**\n * toggles checked attribute off\n */\n deselect(): void {\n this.checked = false;\n }\n onChange() {\n this.select();\n };\n}\n","<input type=\"radio\" \n[attr.checked]=\"checked ? '' : null\" \n[attr.id]=\"id\" \n[attr.name]=\"name\" \n[attr.aria-label]=\"label\"\n[attr.aria-labelledby]=\"labelledby\"\n[attr.value]=\"value\"\n[attr.disabled] = \"disabled ? '' : null\" \n(change)=\"onChange()\"\n(blur)=\"onBlur()\"\n(focus)=\"onFocus()\"/>\n<label [attr.for]=\"id\">\n <ng-content></ng-content>\n</label>","import { Injectable } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { DaffRadioControlValueAccessorDirective } from '../cva/radio-cva.directive';\n\nexport interface ControlAccessorPair {\n control: NgControl;\n accessor: DaffRadioControlValueAccessorDirective;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DaffRadioRegistry {\n private _accessors: ControlAccessorPair[] = [];\n\n /**\n * @description\n * Adds a control to the internal registry.\n */\n add(control: NgControl, accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.push({\n control,\n accessor,\n });\n }\n\n /**\n * @description\n * Removes a control from the internal registry.\n */\n remove(accessor: DaffRadioControlValueAccessorDirective) {\n for (let i = this._accessors.length - 1; i >= 0; --i) {\n if (this._accessors[i].accessor === accessor) {\n this._accessors.splice(i, 1);\n return;\n }\n }\n }\n\n /**\n * @description\n * Selects a radio button.\n */\n select(accessor: DaffRadioControlValueAccessorDirective) {\n this._accessors.forEach((c) => {\n if (this._isSameGroup(c, accessor) && c.accessor !== accessor) {\n c.accessor.fireDeselect();\n }\n });\n }\n\n private _isSameGroup(\n controlPair: ControlAccessorPair,\n accessor: DaffRadioControlValueAccessorDirective): boolean {\n if (!controlPair.control.control) {\n return false;\n }\n return controlPair.control.control.parent === accessor._control.control.parent\n && controlPair.accessor.name === accessor.name;\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n Self,\n Optional,\n} from '@angular/core';\nimport {\n NgControl,\n ControlValueAccessor,\n} from '@angular/forms';\n\nimport { DaffRadioComponent } from '../radio/radio.component';\nimport { DaffRadioRegistry } from '../registry/radio-registry';\n\n/**\n * ControlValueAccessor functionality for the DaffRadio\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'daff-radio[ngModel], daff-radio[formControl], daff-radio[formControlName]',\n})\nexport class DaffRadioControlValueAccessorDirective implements OnInit, ControlValueAccessor {\n _onChange: () => void;\n _onTouched: () => void;\n\n /**\n * The value of the ControlValueAccessor\n */\n @Input() value: any;\n\n /**\n * The name of the ControlValueAccessor\n */\n @Input() name: string;\n\n constructor(\n @Optional() @Self() public _control: NgControl,\n private _registry: DaffRadioRegistry,\n private _radio: DaffRadioComponent,\n ) {\n if (this._control != null) {\n this._control.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n if (this._control) {\n this.writeValue(this._control.value);\n this._registry.add(this._control, this);\n }\n\n this._radio.selectionChange.subscribe(\n value => value ? this._onChange() : null,\n );\n }\n /**\n *\n * writeValue function from the CVA interface\n */\n writeValue(value: any): void {\n // the this._onChange null check here is necessary because of an ongoing bug in angular forms\n // where writeValue can be called before the component initializes: https://github.com/angular/angular/issues/29218\n if (this.value === value && this._onChange) {\n this._onChange();\n this.fireSelect();\n }\n }\n\n /**\n * registerOnChange implemented from the CVA interface\n */\n registerOnChange(fn: any): void {\n this._onChange = () => {\n fn(this.value);\n this._registry.select(this);\n };\n }\n\n /**\n * registerOnTouch implemented from the CVA interface\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * sets the disabled state.\n */\n setDisabledState?(isDisabled: boolean): void {\n this._radio.disabled = isDisabled;\n }\n\n /**\n calls select function for the radio\n */\n fireSelect() {\n this._radio.select();\n }\n\n /**\n calls deselect function for the radio\n */\n fireDeselect() {\n this._radio.deselect();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n exports: [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n ],\n})\nexport class DaffRadioModule { }\n","import { DaffRadioControlValueAccessorDirective } from './cva/radio-cva.directive';\nimport { DaffRadioComponent } from './radio/radio.component';\nimport { DaffRadioSetComponent } from './radio-set/radio-set.component';\n/**\n * @docs-private\n */\nexport const DAFF_RADIO_COMPONENTS = <const> [\n DaffRadioComponent,\n DaffRadioSetComponent,\n DaffRadioControlValueAccessorDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffRadioSetComponent","i2.DaffRadioRegistry","i3.DaffRadioComponent"],"mappings":";;;;;MAea,qBAAqB,CAAA;AAIhC,IAAA,WAAA,GAAA,EAAgB;kIAJL,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,oJCflC,2BAAyB,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDeZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,IAAI,EAAE,YAAY;AACnB,qBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA;;sBAKA;;;AELH,IAAI,aAAa,GAAG,CAAC;MAaR,kBAAkB,CAAA;AAY7B;;AAEG;AACH,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;IACA,IAAI,OAAO,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC;IACF;AA+BA,IAAA,WAAA,CAAgC,QAA+B,EAAA;QAA/B,IAAA,CAAA,QAAQ,GAAR,QAAQ;AArDxC;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAChB;;AAEG;AACO,QAAA,IAAA,CAAA,eAAe,GAA0B,IAAI,YAAY,EAAE;AAoBrE;;AAEG;AACM,QAAA,IAAA,CAAA,EAAE,GAAW,aAAa,GAAG,aAAa;AAEnD;;AAEG;QACM,IAAA,CAAA,IAAI,GAAG,EAAE;AAElB;;AAEG;;AAEkB,QAAA,IAAA,CAAA,KAAK,GAAW,IAAI,CAAC,IAAI;QAS9C,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,OAAO,GAAG,KAAK;AAGb,QAAA,aAAa,EAAE;IACjB;AAEA;;AAEG;IACH,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;IAC5D;AAEA;;AAEG;IACH,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACrB;AACA;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;IACtB;AACA;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACrB;AACA;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;IACtB;IACA,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE;IACf;;kIA5FW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,mYCzB/B,6XAaQ,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDYK,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,eAAA,EAEL,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,iBAAiB,EAAE,SAAS;AAC5B,wBAAA,kBAAkB,EAAE,UAAU;AAC/B,qBAAA,EAAA,QAAA,EAAA,6XAAA,EAAA;;0BA0DY;;sBA9CZ;;sBAMA;;sBAaA;;sBAIA;;sBAKA;;sBAMA,KAAK;uBAAC,YAAY;;sBAMlB,KAAK;uBAAC,iBAAiB;;;ME/Db,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;QAEU,IAAA,CAAA,UAAU,GAA0B,EAAE;AA+C/C,IAAA;AA7CC;;;AAGG;IACH,GAAG,CAAC,OAAkB,EAAE,QAAgD,EAAA;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,OAAO;YACP,QAAQ;AACT,SAAA,CAAC;IACJ;AAEA;;;AAGG;AACH,IAAA,MAAM,CAAC,QAAgD,EAAA;AACrD,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YACpD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B;YACF;QACF;IACF;AAEA;;;AAGG;AACH,IAAA,MAAM,CAAC,QAAgD,EAAA;QACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC7D,gBAAA,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC3B;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,YAAY,CAClB,WAAgC,EAChC,QAAgD,EAAA;AAChD,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE;AAChC,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;eACnE,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;IAClD;kIA/CW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA,CAAA;;4FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACKlC;;AAEG;MAKU,sCAAsC,CAAA;AAcjD,IAAA,WAAA,CAC6B,QAAmB,EACtC,SAA4B,EAC5B,MAA0B,EAAA;QAFP,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAC3B,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,MAAM,GAAN,MAAM;AAEd,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI;QACpC;IACF;AAEA;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;QACzC;QAEA,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CACnC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CACzC;IACH;AACA;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;;;QAGnB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1C,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;AAEA;;AAEG;AACH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAK;AACpB,YAAA,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,QAAA,CAAC;IACH;AAEA;;AAEG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACtB;AAEA;;AAEG;AACH,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU;IACnC;AAEA;;AAEG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB;AAEA;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IACxB;kIAtFW,sCAAsC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAAtC,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtC,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAJlD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,2EAA2E;AACtF,iBAAA;;0BAgBI;;0BAAY;;sBARd;;sBAKA;;;MCdU,eAAe,CAAA;kIAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAXxB,YAAY;YACZ,kBAAkB;YAClB,qBAAqB;AACrB,YAAA,sCAAsC,aAGtC,kBAAkB;YAClB,qBAAqB;YACrB,sCAAsC,CAAA,EAAA,CAAA,CAAA;AAG7B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAXxB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAWH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,qBAAqB;wBACrB,sCAAsC;AACvC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,kBAAkB;wBAClB,qBAAqB;wBACrB,sCAAsC;AACvC,qBAAA;AACF,iBAAA;;;AChBD;;AAEG;AACI,MAAM,qBAAqB,GAAW;IAC3C,kBAAkB;IAClB,qBAAqB;IACrB,sCAAsC;;;ACTxC;;AAEG;;;;"}
|
|
@@ -20,10 +20,10 @@ class DaffSelectOptionDirective {
|
|
|
20
20
|
constructor(templateRef) {
|
|
21
21
|
this.templateRef = templateRef;
|
|
22
22
|
}
|
|
23
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
24
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
23
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectOptionDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffSelectOptionDirective, isStandalone: true, selector: "[daffSelectOption]", ngImport: i0 }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectOptionDirective, decorators: [{
|
|
27
27
|
type: Directive,
|
|
28
28
|
args: [{
|
|
29
29
|
selector: '[daffSelectOption]',
|
|
@@ -299,12 +299,12 @@ class DaffSelectComponent extends DaffFormFieldControl {
|
|
|
299
299
|
this._highlighted = this._highlighted > 0 ? this._highlighted - 1 : this.options.length - 1;
|
|
300
300
|
(event?.target).children[this._highlighted].scrollIntoView();
|
|
301
301
|
}
|
|
302
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
303
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
302
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.NgControl, optional: true, self: true }, { token: i2.Overlay }, { token: i3.DaffOpenableDirective }, { token: i4.DaffFormFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
303
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DaffSelectComponent, isStandalone: true, selector: "daff-select", inputs: { disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], options: "options", optionsId: "optionsId" }, host: { properties: { "attr.aria-labelledby": "ariaLabelledBy" }, classAttribute: "daff-select" }, providers: [
|
|
304
304
|
{ provide: DaffFormFieldControl, useExisting: DaffSelectComponent },
|
|
305
305
|
], queries: [{ propertyName: "optionTemplate", first: true, predicate: DaffSelectOptionDirective, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["field"], descendants: true }, { propertyName: "optionsTemplatePortal", first: true, predicate: ["optionsTemplate"], descendants: true }, { propertyName: "optionsElement", first: true, predicate: ["optionsEl"], descendants: true, read: (ElementRef) }], usesInheritance: true, hostDirectives: [{ directive: i3.DaffOpenableDirective }], ngImport: i0, template: "<button #field class=\"daff-select__field\"\n type=\"button\"\n (click)=\"open($event)\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n [disabled]=\"disabled\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"optionsId\"\n (keydown.arrowdown)=\"open($event)\"\n (keydown.arrowup)=\"open($event)\"\n (keydown.alt.arrowup)=\"open($event)\"\n (keydown.alt.arrowdown)=\"open($event)\"\n (keydown.space)=\"open($event)\"\n (keydown.enter)=\"open($event)\">\n @if (value) {\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"\n {\n option: value,\n isSelected: true,\n isHighlighted: true,\n }\n \"><div></div>\n </ng-container>\n }\n</button>\n<ng-template cdkPortal #optionsTemplate=\"cdkPortal\">\n <div class=\"daff-select__options\" #optionsEl\n [id]=\"optionsId\"\n tabindex=\"0\"\n role=\"listbox\"\n (blur)=\"blur()\"\n (keydown.enter)=\"selectHighlighted($event)\"\n (keydown.space)=\"selectHighlighted($event)\"\n (keydown.escape)=\"close($event)\"\n (keydown.arrowdown)=\"highlightNext($event)\"\n (keydown.arrowup)=\"highlightPrevious($event)\">\n @for (option of options; track $index; let i = $index) {\n <div class=\"daff-select__option\"\n [class.selected]=\"value === option\"\n [class.highlighted]=\"highlighted === i\"\n (click)=\"selectOption(option)\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{\n isSelected: value === option,\n isHighlighted: highlighted === i,\n option\n }\">\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n", styles: [".daff-select{display:inline-block;width:100%}.daff-select.disabled .daff-select__field{cursor:not-allowed}.daff-select__field{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;font-size:1rem;line-height:1.25rem;min-height:3.5rem;margin:0;outline:none;padding:1.5rem 0 .5rem;text-align:left;width:100%;position:relative}.daff-select__field[disabled]{cursor:not-allowed}.daff-select__field:after{content:\"\";position:absolute;top:48%;right:.125rem;display:inline-block;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-select.daff-open .daff-select__field:after{top:56%;transform:translateY(-50%) rotate(225deg)}.daff-select__options{width:100%}.daff-select__option{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;appearance:none;background:none;border:none;font-size:1rem;line-height:1.25rem;margin:0;padding:.5rem;text-align:left;width:100%}.daff-select__option:first-of-type{border-radius:.25rem .25rem 0 0}.daff-select__option:last-of-type{border-radius:0 0 .25rem .25rem}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i5.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
306
306
|
}
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffSelectComponent, decorators: [{
|
|
308
308
|
type: Component,
|
|
309
309
|
args: [{ selector: 'daff-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
|
|
310
310
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-select.mjs","sources":["../../../libs/design/select/src/option/option.directive.ts","../../../libs/design/select/src/select/select.component.ts","../../../libs/design/select/src/select/select.component.html","../../../libs/design/select/src/select.ts","../../../libs/design/select/src/daffodil-design-select.ts"],"sourcesContent":["import {\n Directive,\n Optional,\n TemplateRef,\n} from '@angular/core';\n\n/**\n * The directive provides the template for a list of options inside the select dropdown.\n */\n@Directive({\n selector: '[daffSelectOption]',\n})\nexport class DaffSelectOptionDirective {\n constructor(@Optional() public templateRef?: TemplateRef<unknown>) {}\n}\n","import {\n Overlay,\n OverlayModule,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ChangeDetectorRef,\n OnInit,\n ElementRef,\n Inject,\n Optional,\n Self,\n ContentChild,\n ViewChild,\n OnDestroy,\n booleanAttribute,\n DOCUMENT,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n Subject,\n delay,\n map,\n merge,\n of,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { DaffOpenableDirective } from '@daffodil/design';\nimport {\n DaffFormFieldComponent,\n DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\nimport { DaffSelectOptionDirective } from '../option/option.directive';\n\nlet daffSelectOtionsId = 0;\n\n/**\n * DaffSelectComponent is a form control component that presents a list of selectable options,\n * similar to the native `<select>` element we call `<daff-native-select>`.\n *\n */\n@Component({\n selector: 'daff-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: DaffOpenableDirective,\n },\n ],\n host: {\n class: 'daff-select',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n },\n providers: [\n\n { provide: DaffFormFieldControl, useExisting: DaffSelectComponent },\n ],\n imports: [\n NgTemplateOutlet,\n OverlayModule,\n PortalModule,\n ],\n})\nexport class DaffSelectComponent<T = unknown> extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit, OnDestroy, ControlValueAccessor {\n /** @docs-private */\n controlType = 'custom-select';\n\n /**\n * @docs-private\n */\n supportsAutoLabelling = false;\n\n private _destroyed = new Subject<boolean>();\n private _overlay: OverlayRef;\n private _value = null;\n private _highlighted = 0;\n\n /**\n * @docs-private\n */\n get focused() {\n return this.document.activeElement === this.buttonElement?.nativeElement || this.document.activeElement === this.optionsElement?.nativeElement;\n }\n\n /**\n * @docs-private\n */\n get raised() {\n return this.focused && this.isOpen;\n }\n\n /** @docs-private */\n focus() {\n (<HTMLElement>this.buttonElement?.nativeElement)?.focus();\n this.emitState();\n }\n\n /** @docs-private */\n blur() {\n this.onTouched();\n this.emitState(true);\n }\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n private _required = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this.ngControl?.control?.hasValidator(Validators.required) ?? this._required;\n }\n set required(value: boolean) {\n this._required = value;\n }\n\n @Input() options: T[] = [];\n\n /**\n * @docs-private\n */\n get isOpen() {\n return this.openDirective.open;\n }\n\n /**\n * @docs-private\n *\n * `aria-labelledby` for the select.\n */\n ariaLabelledBy = '';\n\n /**\n * The unique id of the select options. Defaults to an autogenerated value.\n */\n @Input() optionsId: string = 'daff-select-options' + '-' + ++daffSelectOtionsId;\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: Document,\n @Optional() @Self() public ngControl: NgControl,\n private overlay: Overlay,\n private openDirective: DaffOpenableDirective,\n @Optional() private formField: DaffFormFieldComponent,\n ) {\n super(ngControl);\n\n if(!this.formField) {\n throw new Error('DaffSelectComponent needs to be used with the DaffFormFieldComponent.');\n }\n\n this.ariaLabelledBy = this.formField.id;\n\n this.openDirective.stateless = false;\n\n this.document.addEventListener('keydown', (event) => {\n if (event.key === 'Tab' && this.isOpen) {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusOptionsList();\n }\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n @ViewChild('field') buttonElement: ElementRef<HTMLButtonElement>;\n /**\n * @docs-private\n */\n @ViewChild('optionsTemplate') optionsTemplatePortal: TemplatePortal<unknown>;\n /**\n * @docs-private\n */\n @ViewChild('optionsEl', { read: ElementRef<HTMLDivElement> }) optionsElement: ElementRef<HTMLDivElement>;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffSelectOptionDirective) optionTemplate?: DaffSelectOptionDirective;\n\n /**\n * @docs-private\n */\n get value() {\n return this._value;\n }\n\n /**\n * @docs-private\n */\n get highlighted(): number {\n return this._highlighted;\n }\n\n set highlighted(val: number) {\n this._highlighted = val;\n this.cd.markForCheck();\n }\n\n private focusOptionsList() {\n this.optionsElement?.nativeElement.focus();\n }\n\n private focusButton() {\n this.buttonElement?.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._destroyed.next(true);\n this._overlay?.dispose();\n }\n\n private onChange(value: T): void {};\n private onTouched(): void {};\n\n /**\n * @docs-private\n */\n writeValue(value: T): void {\n this._value = value;\n this.cd.markForCheck();\n }\n\n /**\n * @docs-private\n */\n registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n /**\n * @docs-private\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * @docs-private\n */\n flushValue() {\n this.ngControl?.control?.setValue(this._value);\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.stateChanges = merge(\n this._stateChanges.asObservable(),\n this.ngControl ? this.ngControl.statusChanges : of(undefined),\n ).pipe(\n map(() => this.state),\n tap((state) => this.disabled = state.disabled),\n );\n }\n\n /**\n * Opens the options list.\n */\n open(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.openDirective.open) {\n this.openDirective.open = true;\n\n if (this._value) {\n this._highlighted = this.options.findIndex((v) => v === this._value);\n }\n\n const formFieldEl = this.formField.elementRef.nativeElement;\n const formFieldWidth = formFieldEl.getBoundingClientRect().width;\n\n this._overlay = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n disposeOnNavigation: true,\n width: `${formFieldWidth}px`,\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(formFieldEl)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 2,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -2,\n },\n ]),\n });\n\n this._overlay.attachments().pipe(\n takeUntil(this._destroyed),\n delay(0),\n ).subscribe(() => {\n this.focusOptionsList();\n });\n\n this._overlay.attach(this.optionsTemplatePortal);\n\n this._overlay.backdropClick().pipe(\n takeUntil(this._destroyed),\n ).subscribe(() => this.close());\n this.cd.markForCheck();\n }\n }\n\n /**\n * Closes the options list.\n */\n close(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (this.openDirective.open) {\n this.openDirective.open = false;\n this.cd.markForCheck();\n\n // do we actually have to dispose and recreate the overlay every time we want to close the dropdown?\n this._overlay?.dispose();\n this._overlay = null;\n this.focusButton();\n }\n }\n\n /**\n * Selects the value in a particular position in the options list.\n */\n private selectValueInPosition(position: number) {\n if (position >= 0 && position < this.options.length) {\n this.writeValue(this.options[position]);\n }\n\n this.close();\n }\n\n /**\n * Selects an option.\n */\n selectOption(option: T) {\n this._value = option;\n this.onChange(this._value);\n\n this.close();\n }\n\n /**\n * Selects the option referenced by the highlighted index.\n */\n selectHighlighted(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this.selectValueInPosition(this._highlighted);\n\n this.onChange(this._value);\n }\n\n /**\n * Highlights the next option in the list.\n */\n highlightNext(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted < this.options.length - 1 ? this._highlighted + 1 : 0;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n\n /**\n * Highlights the previous option in the list.\n */\n highlightPrevious(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted > 0 ? this._highlighted - 1 : this.options.length - 1;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n}\n","<button #field class=\"daff-select__field\"\n type=\"button\"\n (click)=\"open($event)\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n [disabled]=\"disabled\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"optionsId\"\n (keydown.arrowdown)=\"open($event)\"\n (keydown.arrowup)=\"open($event)\"\n (keydown.alt.arrowup)=\"open($event)\"\n (keydown.alt.arrowdown)=\"open($event)\"\n (keydown.space)=\"open($event)\"\n (keydown.enter)=\"open($event)\">\n @if (value) {\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"\n {\n option: value,\n isSelected: true,\n isHighlighted: true,\n }\n \"><div></div>\n </ng-container>\n }\n</button>\n<ng-template cdkPortal #optionsTemplate=\"cdkPortal\">\n <div class=\"daff-select__options\" #optionsEl\n [id]=\"optionsId\"\n tabindex=\"0\"\n role=\"listbox\"\n (blur)=\"blur()\"\n (keydown.enter)=\"selectHighlighted($event)\"\n (keydown.space)=\"selectHighlighted($event)\"\n (keydown.escape)=\"close($event)\"\n (keydown.arrowdown)=\"highlightNext($event)\"\n (keydown.arrowup)=\"highlightPrevious($event)\">\n @for (option of options; track $index; let i = $index) {\n <div class=\"daff-select__option\"\n [class.selected]=\"value === option\"\n [class.highlighted]=\"highlighted === i\"\n (click)=\"selectOption(option)\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{\n isSelected: value === option,\n isHighlighted: highlighted === i,\n option\n }\">\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n","import { DaffSelectOptionDirective } from './option/option.directive';\nimport { DaffSelectComponent } from './select/select.component';\n\nexport const DAFF_SELECT_COMPONENTS = <const> [\n DaffSelectComponent,\n DaffSelectOptionDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daffodil-design-select.mjs","sources":["../../../libs/design/select/src/option/option.directive.ts","../../../libs/design/select/src/select/select.component.ts","../../../libs/design/select/src/select/select.component.html","../../../libs/design/select/src/select.ts","../../../libs/design/select/src/daffodil-design-select.ts"],"sourcesContent":["import {\n Directive,\n Optional,\n TemplateRef,\n} from '@angular/core';\n\n/**\n * The directive provides the template for a list of options inside the select dropdown.\n */\n@Directive({\n selector: '[daffSelectOption]',\n})\nexport class DaffSelectOptionDirective {\n constructor(@Optional() public templateRef?: TemplateRef<unknown>) {}\n}\n","import {\n Overlay,\n OverlayModule,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ChangeDetectorRef,\n OnInit,\n ElementRef,\n Inject,\n Optional,\n Self,\n ContentChild,\n ViewChild,\n OnDestroy,\n booleanAttribute,\n DOCUMENT,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n Subject,\n delay,\n map,\n merge,\n of,\n takeUntil,\n tap,\n} from 'rxjs';\n\nimport { DaffOpenableDirective } from '@daffodil/design';\nimport {\n DaffFormFieldComponent,\n DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\nimport { DaffSelectOptionDirective } from '../option/option.directive';\n\nlet daffSelectOtionsId = 0;\n\n/**\n * DaffSelectComponent is a form control component that presents a list of selectable options,\n * similar to the native `<select>` element we call `<daff-native-select>`.\n *\n */\n@Component({\n selector: 'daff-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: DaffOpenableDirective,\n },\n ],\n host: {\n class: 'daff-select',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n },\n providers: [\n\n { provide: DaffFormFieldControl, useExisting: DaffSelectComponent },\n ],\n imports: [\n NgTemplateOutlet,\n OverlayModule,\n PortalModule,\n ],\n})\nexport class DaffSelectComponent<T = unknown> extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit, OnDestroy, ControlValueAccessor {\n /** @docs-private */\n controlType = 'custom-select';\n\n /**\n * @docs-private\n */\n supportsAutoLabelling = false;\n\n private _destroyed = new Subject<boolean>();\n private _overlay: OverlayRef;\n private _value = null;\n private _highlighted = 0;\n\n /**\n * @docs-private\n */\n get focused() {\n return this.document.activeElement === this.buttonElement?.nativeElement || this.document.activeElement === this.optionsElement?.nativeElement;\n }\n\n /**\n * @docs-private\n */\n get raised() {\n return this.focused && this.isOpen;\n }\n\n /** @docs-private */\n focus() {\n (<HTMLElement>this.buttonElement?.nativeElement)?.focus();\n this.emitState();\n }\n\n /** @docs-private */\n blur() {\n this.onTouched();\n this.emitState(true);\n }\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n private _required = false;\n\n /**\n * @docs-private\n *\n * Implemented as part of DaffFormFieldControl.\n */\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this.ngControl?.control?.hasValidator(Validators.required) ?? this._required;\n }\n set required(value: boolean) {\n this._required = value;\n }\n\n @Input() options: T[] = [];\n\n /**\n * @docs-private\n */\n get isOpen() {\n return this.openDirective.open;\n }\n\n /**\n * @docs-private\n *\n * `aria-labelledby` for the select.\n */\n ariaLabelledBy = '';\n\n /**\n * The unique id of the select options. Defaults to an autogenerated value.\n */\n @Input() optionsId: string = 'daff-select-options' + '-' + ++daffSelectOtionsId;\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: Document,\n @Optional() @Self() public ngControl: NgControl,\n private overlay: Overlay,\n private openDirective: DaffOpenableDirective,\n @Optional() private formField: DaffFormFieldComponent,\n ) {\n super(ngControl);\n\n if(!this.formField) {\n throw new Error('DaffSelectComponent needs to be used with the DaffFormFieldComponent.');\n }\n\n this.ariaLabelledBy = this.formField.id;\n\n this.openDirective.stateless = false;\n\n this.document.addEventListener('keydown', (event) => {\n if (event.key === 'Tab' && this.isOpen) {\n event.preventDefault();\n event.stopPropagation();\n\n this.focusOptionsList();\n }\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /**\n * @docs-private\n */\n @ViewChild('field') buttonElement: ElementRef<HTMLButtonElement>;\n /**\n * @docs-private\n */\n @ViewChild('optionsTemplate') optionsTemplatePortal: TemplatePortal<unknown>;\n /**\n * @docs-private\n */\n @ViewChild('optionsEl', { read: ElementRef<HTMLDivElement> }) optionsElement: ElementRef<HTMLDivElement>;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffSelectOptionDirective) optionTemplate?: DaffSelectOptionDirective;\n\n /**\n * @docs-private\n */\n get value() {\n return this._value;\n }\n\n /**\n * @docs-private\n */\n get highlighted(): number {\n return this._highlighted;\n }\n\n set highlighted(val: number) {\n this._highlighted = val;\n this.cd.markForCheck();\n }\n\n private focusOptionsList() {\n this.optionsElement?.nativeElement.focus();\n }\n\n private focusButton() {\n this.buttonElement?.nativeElement.focus();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._destroyed.next(true);\n this._overlay?.dispose();\n }\n\n private onChange(value: T): void {};\n private onTouched(): void {};\n\n /**\n * @docs-private\n */\n writeValue(value: T): void {\n this._value = value;\n this.cd.markForCheck();\n }\n\n /**\n * @docs-private\n */\n registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n /**\n * @docs-private\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * @docs-private\n */\n flushValue() {\n this.ngControl?.control?.setValue(this._value);\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.stateChanges = merge(\n this._stateChanges.asObservable(),\n this.ngControl ? this.ngControl.statusChanges : of(undefined),\n ).pipe(\n map(() => this.state),\n tap((state) => this.disabled = state.disabled),\n );\n }\n\n /**\n * Opens the options list.\n */\n open(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.openDirective.open) {\n this.openDirective.open = true;\n\n if (this._value) {\n this._highlighted = this.options.findIndex((v) => v === this._value);\n }\n\n const formFieldEl = this.formField.elementRef.nativeElement;\n const formFieldWidth = formFieldEl.getBoundingClientRect().width;\n\n this._overlay = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.block(),\n disposeOnNavigation: true,\n width: `${formFieldWidth}px`,\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(formFieldEl)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 2,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -2,\n },\n ]),\n });\n\n this._overlay.attachments().pipe(\n takeUntil(this._destroyed),\n delay(0),\n ).subscribe(() => {\n this.focusOptionsList();\n });\n\n this._overlay.attach(this.optionsTemplatePortal);\n\n this._overlay.backdropClick().pipe(\n takeUntil(this._destroyed),\n ).subscribe(() => this.close());\n this.cd.markForCheck();\n }\n }\n\n /**\n * Closes the options list.\n */\n close(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n\n if (this.openDirective.open) {\n this.openDirective.open = false;\n this.cd.markForCheck();\n\n // do we actually have to dispose and recreate the overlay every time we want to close the dropdown?\n this._overlay?.dispose();\n this._overlay = null;\n this.focusButton();\n }\n }\n\n /**\n * Selects the value in a particular position in the options list.\n */\n private selectValueInPosition(position: number) {\n if (position >= 0 && position < this.options.length) {\n this.writeValue(this.options[position]);\n }\n\n this.close();\n }\n\n /**\n * Selects an option.\n */\n selectOption(option: T) {\n this._value = option;\n this.onChange(this._value);\n\n this.close();\n }\n\n /**\n * Selects the option referenced by the highlighted index.\n */\n selectHighlighted(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this.selectValueInPosition(this._highlighted);\n\n this.onChange(this._value);\n }\n\n /**\n * Highlights the next option in the list.\n */\n highlightNext(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted < this.options.length - 1 ? this._highlighted + 1 : 0;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n\n /**\n * Highlights the previous option in the list.\n */\n highlightPrevious(event?: KeyboardEvent | MouseEvent) {\n event?.preventDefault();\n event?.stopPropagation();\n this._highlighted = this._highlighted > 0 ? this._highlighted - 1 : this.options.length - 1;\n (<HTMLElement>event?.target).children[this._highlighted].scrollIntoView();\n }\n}\n","<button #field class=\"daff-select__field\"\n type=\"button\"\n (click)=\"open($event)\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n [disabled]=\"disabled\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"optionsId\"\n (keydown.arrowdown)=\"open($event)\"\n (keydown.arrowup)=\"open($event)\"\n (keydown.alt.arrowup)=\"open($event)\"\n (keydown.alt.arrowdown)=\"open($event)\"\n (keydown.space)=\"open($event)\"\n (keydown.enter)=\"open($event)\">\n @if (value) {\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"\n {\n option: value,\n isSelected: true,\n isHighlighted: true,\n }\n \"><div></div>\n </ng-container>\n }\n</button>\n<ng-template cdkPortal #optionsTemplate=\"cdkPortal\">\n <div class=\"daff-select__options\" #optionsEl\n [id]=\"optionsId\"\n tabindex=\"0\"\n role=\"listbox\"\n (blur)=\"blur()\"\n (keydown.enter)=\"selectHighlighted($event)\"\n (keydown.space)=\"selectHighlighted($event)\"\n (keydown.escape)=\"close($event)\"\n (keydown.arrowdown)=\"highlightNext($event)\"\n (keydown.arrowup)=\"highlightPrevious($event)\">\n @for (option of options; track $index; let i = $index) {\n <div class=\"daff-select__option\"\n [class.selected]=\"value === option\"\n [class.highlighted]=\"highlighted === i\"\n (click)=\"selectOption(option)\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate?.templateRef\"\n [ngTemplateOutletContext]=\"{\n isSelected: value === option,\n isHighlighted: highlighted === i,\n option\n }\">\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n","import { DaffSelectOptionDirective } from './option/option.directive';\nimport { DaffSelectComponent } from './select/select.component';\n\nexport const DAFF_SELECT_COMPONENTS = <const> [\n DaffSelectComponent,\n DaffSelectOptionDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|