@aurodesignsystem/auro-formkit 5.1.0-rc-1176.1 → 5.1.0-rc-1195.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/CHANGELOG.md +12 -1
- package/components/checkbox/demo/api.min.js +66 -2
- package/components/checkbox/demo/index.min.js +66 -2
- package/components/checkbox/dist/index.js +66 -2
- package/components/checkbox/dist/registered.js +66 -2
- package/components/combobox/demo/api.md +230 -38
- package/components/combobox/demo/api.min.js +155 -6
- package/components/combobox/demo/index.md +104 -0
- package/components/combobox/demo/index.min.js +155 -6
- package/components/combobox/dist/auro-combobox.d.ts +18 -1
- package/components/combobox/dist/index.js +155 -6
- package/components/combobox/dist/registered.js +155 -6
- package/components/counter/demo/api.min.js +69 -5
- package/components/counter/demo/index.min.js +69 -5
- package/components/counter/dist/index.js +69 -5
- package/components/counter/dist/registered.js +69 -5
- package/components/datepicker/demo/api.md +40 -0
- package/components/datepicker/demo/api.min.js +173 -10
- package/components/datepicker/demo/index.min.js +173 -10
- package/components/datepicker/dist/auro-calendar-cell.d.ts +6 -0
- package/components/datepicker/dist/auro-datepicker.d.ts +8 -0
- package/components/datepicker/dist/index.js +173 -10
- package/components/datepicker/dist/registered.js +173 -10
- package/components/input/demo/api.min.js +67 -3
- package/components/input/demo/index.min.js +67 -3
- package/components/input/dist/index.js +67 -3
- package/components/input/dist/registered.js +67 -3
- package/components/radio/demo/api.min.js +97 -5
- package/components/radio/demo/index.min.js +97 -5
- package/components/radio/dist/auro-radio-group.d.ts +14 -0
- package/components/radio/dist/index.js +97 -5
- package/components/radio/dist/registered.js +97 -5
- package/components/select/demo/api.min.js +67 -3
- package/components/select/demo/index.min.js +67 -3
- package/components/select/dist/index.js +67 -3
- package/components/select/dist/registered.js +67 -3
- package/package.json +1 -1
|
@@ -823,6 +823,52 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
823
823
|
message: e => e.getAttribute('setCustomValidityRangeUnderflow') || ''
|
|
824
824
|
}
|
|
825
825
|
]
|
|
826
|
+
},
|
|
827
|
+
combobox: {
|
|
828
|
+
filter: [
|
|
829
|
+
{
|
|
830
|
+
check: (e) => {
|
|
831
|
+
|
|
832
|
+
// Guard Clause: If the behavior is not 'filter', skip this validation
|
|
833
|
+
if (e.behavior !== 'filter') return false;
|
|
834
|
+
|
|
835
|
+
// Get the current input value
|
|
836
|
+
const currentInputValue = e.input.value;
|
|
837
|
+
|
|
838
|
+
// Skip validation if the input has no value
|
|
839
|
+
if (!currentInputValue) return false;
|
|
840
|
+
|
|
841
|
+
/**
|
|
842
|
+
* Let's check if the option selected and combobox value match.
|
|
843
|
+
*/
|
|
844
|
+
|
|
845
|
+
// Guard Clause: If there is no option selected fail the validation
|
|
846
|
+
if (!e.optionSelected) return true;
|
|
847
|
+
|
|
848
|
+
// Guard Clause: If there is no value fail the validation
|
|
849
|
+
if (!e.value) return true;
|
|
850
|
+
|
|
851
|
+
// Guard Clause: If the selected option's value doesn't match the input value fail the validation
|
|
852
|
+
if (e.optionSelected.value !== e.value) return true;
|
|
853
|
+
|
|
854
|
+
/**
|
|
855
|
+
* Now let's make sure the user hasn't change the value in the input after selecting an option.
|
|
856
|
+
* This is to make sure there's no user confusion if they select an option but then change the value to something else.
|
|
857
|
+
*/
|
|
858
|
+
|
|
859
|
+
// Guard Clause: If the current input value doesn't match the option selected value fail the validation
|
|
860
|
+
if (currentInputValue && currentInputValue !== e.optionSelected.value) return true;
|
|
861
|
+
|
|
862
|
+
// Guard Clause: If the current input value doesn't match the combobox value fail the validation
|
|
863
|
+
if (currentInputValue && currentInputValue !== e.value) return true;
|
|
864
|
+
|
|
865
|
+
// If all the checks passed the validation passes
|
|
866
|
+
return false;
|
|
867
|
+
},
|
|
868
|
+
validity: 'valueMissing',
|
|
869
|
+
message: e => e.getAttribute('setCustomValidityValueMissingFilter') || e.setCustomValidity || ''
|
|
870
|
+
}
|
|
871
|
+
]
|
|
826
872
|
}
|
|
827
873
|
};
|
|
828
874
|
|
|
@@ -831,6 +877,8 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
831
877
|
elementType = 'input';
|
|
832
878
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
|
|
833
879
|
elementType = 'counter';
|
|
880
|
+
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox')) {
|
|
881
|
+
elementType = 'combobox';
|
|
834
882
|
}
|
|
835
883
|
|
|
836
884
|
if (elementType) {
|
|
@@ -1017,6 +1065,15 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
1017
1065
|
}
|
|
1018
1066
|
}
|
|
1019
1067
|
|
|
1068
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
1069
|
+
|
|
1070
|
+
if (isCombobox) {
|
|
1071
|
+
|
|
1072
|
+
if (!elem.persistInput || elem.behavior === "filter") {
|
|
1073
|
+
hasValue = elem.input.value?.length > 0;
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1020
1077
|
if (!hasValue && elem.required && elem.touched) {
|
|
1021
1078
|
elem.validity = 'valueMissing';
|
|
1022
1079
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
@@ -1025,6 +1082,11 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
1025
1082
|
this.validateElementAttributes(elem);
|
|
1026
1083
|
} else if (hasValue && (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group'))) {
|
|
1027
1084
|
this.validateElementAttributes(elem);
|
|
1085
|
+
} else if (isCombobox) {
|
|
1086
|
+
this.validateElementAttributes(elem);
|
|
1087
|
+
|
|
1088
|
+
// Don't run extra validation for cases where the combobox is not being used as a filter
|
|
1089
|
+
validationShouldRun = elem.behavior !== 'filter';
|
|
1028
1090
|
}
|
|
1029
1091
|
}
|
|
1030
1092
|
|
|
@@ -1032,8 +1094,8 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
1032
1094
|
|
|
1033
1095
|
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
1034
1096
|
|
|
1035
|
-
// Don't reset combobox validity if
|
|
1036
|
-
if (!isCombobox || isCombobox && !elem.
|
|
1097
|
+
// Don't reset combobox validity if persistInput is set since we can't use the input value to validate
|
|
1098
|
+
if (!isCombobox || isCombobox && !elem.persistInput) {
|
|
1037
1099
|
|
|
1038
1100
|
// run validation on all inputs since we're going to use them to set the validity of this component
|
|
1039
1101
|
this.auroInputElements.forEach(input => input.validate());
|
|
@@ -1106,6 +1168,8 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
1106
1168
|
if (input.validationMessage.length > 0) {
|
|
1107
1169
|
elem.errorMessage = input.validationMessage;
|
|
1108
1170
|
}
|
|
1171
|
+
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
|
|
1172
|
+
elem.errorMessage = elem.input?.inputElement?.validationMessage;
|
|
1109
1173
|
} else if (this.inputElements?.length > 0 && elem.errorMessage === '') {
|
|
1110
1174
|
const firstInput = this.inputElements[0];
|
|
1111
1175
|
|
|
@@ -5335,7 +5399,7 @@ var emphasizedStyleCss = i$5`:host([layout*=emphasized][shape*=pill]:not([layout
|
|
|
5335
5399
|
|
|
5336
5400
|
var emphasizedColorCss = i$5`.layout-emphasized:focus-within,.layout-emphasized-left:focus-within,.layout-emphasized-right:focus-within{--auro-input-border-color: var(--ds-auro-input-border-color)}`;
|
|
5337
5401
|
|
|
5338
|
-
var snowflakeStyleCss = i$5`:root{--ds-advanced-color-button-flat-text: #676767;--ds-advanced-color-button-flat-text-disabled: #d0d0d0;--ds-advanced-color-button-flat-text-hover: #525252;--ds-advanced-color-button-flat-text-inverse: #ffffff;--ds-advanced-color-button-flat-text-inverse-disabled: #7e8894;--ds-advanced-color-button-flat-text-inverse-hover: #adadad;--ds-advanced-color-button-ghost-background-hover: rgba(0, 0, 0, 0.05);--ds-advanced-color-button-ghost-background-inverse-hover: rgba(255, 255, 255, 0.05);--ds-advanced-color-button-ghost-text: #01426a;--ds-advanced-color-button-ghost-text-disabled: #d0d0d0;--ds-advanced-color-button-ghost-text-inverse: #ffffff;--ds-advanced-color-button-ghost-text-inverse-disabled: #7e8894;--ds-advanced-color-button-primary-background: #01426a;--ds-advanced-color-button-primary-background-disabled: #acc9e2;--ds-advanced-color-button-primary-background-hover: #00274a;--ds-advanced-color-button-primary-background-inactive: #cfe0ef;--ds-advanced-color-button-primary-background-inactive-hover: #89b2d4;--ds-advanced-color-button-primary-background-inverse: #ffffff;--ds-advanced-color-button-primary-background-inverse-disabled: rgba(255, 255, 255, 0.75);--ds-advanced-color-button-primary-background-inverse-hover: #ebf3f9;--ds-advanced-color-button-primary-border: #01426a;--ds-advanced-color-button-primary-border-disabled: #acc9e2;--ds-advanced-color-button-primary-border-hover: #00274a;--ds-advanced-color-button-primary-border-inverse: #ffffff;--ds-advanced-color-button-primary-border-inverse-disabled: rgba(255, 255, 255, 0.75);--ds-advanced-color-button-primary-border-inverse-hover: #ebf3f9;--ds-advanced-color-button-primary-text: #ffffff;--ds-advanced-color-button-primary-text-disabled: #ffffff;--ds-advanced-color-button-primary-text-inverse: #01426a;--ds-advanced-color-button-secondary-background: #ffffff;--ds-advanced-color-button-secondary-background-disabled: #f7f7f7;--ds-advanced-color-button-secondary-background-hover: #f2f2f2;--ds-advanced-color-button-secondary-background-inverse-hover: rgba(255, 255, 255, 0.1);--ds-advanced-color-button-secondary-border: #01426a;--ds-advanced-color-button-secondary-border-hover: #00274a;--ds-advanced-color-button-secondary-border-disabled: #cfe0ef;--ds-advanced-color-button-secondary-border-inverse: #ffffff;--ds-advanced-color-button-secondary-border-inverse-disabled: #dddddd;--ds-advanced-color-button-secondary-text: #01426a;--ds-advanced-color-button-secondary-text-hover: #00274a;--ds-advanced-color-button-secondary-text-inverse: #ffffff;--ds-advanced-color-button-tertiary-background: rgba(0, 0, 0, 0.05);--ds-advanced-color-button-tertiary-background-hover: rgba(0, 0, 0, 0.1);--ds-advanced-color-button-tertiary-background-inverse: rgba(255, 255, 255, 0.05);--ds-advanced-color-button-tertiary-background-inverse-hover: rgba(255, 255, 255, 0.1);--ds-advanced-color-button-tertiary-text: #01426a;--ds-advanced-color-button-tertiary-text-hover: #00274a;--ds-advanced-color-button-tertiary-text-inverse: #ffffff;--ds-advanced-color-accents-accent1: #b2d583;--ds-advanced-color-accents-accent1-bold: #92c450;--ds-advanced-color-accents-accent1-muted: #deedca;--ds-advanced-color-accents-accent2: #fad362;--ds-advanced-color-accents-accent2-bold: #f2ba14;--ds-advanced-color-accents-accent2-muted: #fde398;--ds-advanced-color-accents-accent3: #63beff;--ds-advanced-color-accents-accent3-bold: #0074ca;--ds-advanced-color-accents-accent3-muted: #aedeff;--ds-advanced-color-accents-accent4: #feb17a;--ds-advanced-color-accents-accent4-bold: #fb7f24;--ds-advanced-color-accents-accent4-muted: #ffe2cf;--ds-advanced-color-accents-transparency: rgba(0, 0, 0, 0.1);--ds-advanced-color-accents-transparency-inverse: rgba(255, 255, 255, 0.2);--ds-advanced-color-avatar-gradient-bottom: #cfe0ef;--ds-advanced-color-avatar-gradient-top: #6899c6;--ds-advanced-color-boolean-disabled-inverse: #7e8894;--ds-advanced-color-boolean-error: #e31f26;--ds-advanced-color-boolean-error-hover: #b1161c;--ds-advanced-color-boolean-error-inverse: #f9a4a8;--ds-advanced-color-boolean-error-inverse-hover: #f15f65;--ds-advanced-color-boolean-indicator: #ffffff;--ds-advanced-color-boolean-indicator-inverse: #00274a;--ds-advanced-color-boolean-isfalse: #ffffff;--ds-advanced-color-boolean-isfalse-border: #585e67;--ds-advanced-color-boolean-isfalse-border-inverse: #ffffff;--ds-advanced-color-boolean-isfalse-hover: #f2f2f2;--ds-advanced-color-boolean-isfalse-inverse: rgba(255, 255, 255, 0.15);--ds-advanced-color-boolean-isfalse-inverse-hover: rgba(255, 255, 255, 0.2);--ds-advanced-color-boolean-istrue: #01426a;--ds-advanced-color-boolean-istrue-hover: #00274a;--ds-advanced-color-boolean-istrue-inverse: #ffffff;--ds-advanced-color-boolean-istrue-inverse-hover: rgba(255, 255, 255, 0.7);--ds-advanced-color-dropdown-emphasized-background: #00274A1a;--ds-advanced-color-dropdown-emphasized-background-hover: #00274A33;--ds-advanced-color-expanded-widget-background: #00274a;--ds-advanced-color-flightline-indicator: #00274a;--ds-advanced-color-flightline-line: #00274a;--ds-advanced-color-hyperlink-text: #2875b5;--ds-advanced-color-hyperlink-text-hover: #01426a;--ds-advanced-color-hyperlink-text-inverse: #ffffff;--ds-advanced-color-hyperlink-text-inverse-hover: #ebf3f9;--ds-advanced-color-shared-background: #ffffff;--ds-advanced-color-shared-background-inverse: rgba(255, 255, 255, 0.15);--ds-advanced-color-shared-background-inverse-disabled: rgba(255, 255, 255, 0.1);--ds-advanced-color-shared-background-inverse-hover: rgba(255, 255, 255, 0.2);--ds-advanced-color-shared-background-muted: #f7f7f7;--ds-advanced-color-shared-background-strong: #676767;--ds-advanced-color-shared-emphasized-background: rgba(1, 66, 106, 0.1);--ds-advanced-color-shared-emphasized-background-hover: rgba(1, 66, 106, 0.2);--ds-advanced-color-shared-scrim: rgba(0, 0, 0, 0.5);--ds-advanced-color-shared-text-accent: #2875b5;--ds-advanced-color-skeleton-background: #f7f8fa;--ds-advanced-color-skeleton-wave: #e4e8ec;--ds-advanced-color-state-background-disabled: #dddddd;--ds-advanced-color-state-background-hover: #f2f2f2;--ds-advanced-color-state-background-inverse-disabled: #7e8894;--ds-advanced-color-state-error-inverse: #f9a4a8;--ds-advanced-color-state-focused: #01426a;--ds-advanced-color-state-focused-inverse: #ffffff;--ds-advanced-color-state-selected: #01426a;--ds-advanced-color-state-selected-hover: #00274a;--ds-basic-color-border-bold: #585e67;--ds-basic-color-border-brand: #00274a;--ds-basic-color-border-default: #959595;--ds-basic-color-border-divider: rgba(0, 0, 0, 0.15);--ds-basic-color-border-divider-inverse: rgba(255, 255, 255, 0.4);--ds-basic-color-border-inverse: #ffffff;--ds-basic-color-border-subtle: #dddddd;--ds-basic-color-brand-primary: #01426a;--ds-basic-color-brand-primary-bold: #00274a;--ds-basic-color-brand-primary-muted: #ebf3f9;--ds-basic-color-brand-primary-subtle: #2875b5;--ds-basic-color-brand-secondary: #5de3f7;--ds-basic-color-brand-secondary-bold: #18c3dd;--ds-basic-color-brand-secondary-muted: #ebfafd;--ds-basic-color-brand-secondary-subtle: #b4eff9;--ds-basic-color-brand-tertiary: #a3cd6a;--ds-basic-color-brand-tertiary-bold: #7daf3b;--ds-basic-color-brand-tertiary-muted: #eaf3dd;--ds-basic-color-brand-tertiary-subtle: #c9e1a7;--ds-basic-color-fare-basiceconomy: #97eaf8;--ds-basic-color-fare-business: #01426a;--ds-basic-color-fare-economy: #0074ca;--ds-basic-color-fare-first: #00274a;--ds-basic-color-fare-premiumeconomy: #005154;--ds-basic-color-page-background-default: #ffffff;--ds-basic-color-page-background-utility: #ffffff;--ds-basic-color-status-default: #afb9c6;--ds-basic-color-status-error: #e31f26;--ds-basic-color-status-error-subtle: #fbc6c6;--ds-basic-color-status-info: #01426a;--ds-basic-color-status-info-subtle: #ebf3f9;--ds-basic-color-status-success: #447a1f;--ds-basic-color-status-success-subtle: #d6eac7;--ds-basic-color-status-warning: #fac200;--ds-basic-color-status-warning-subtle: #fff0b2;--ds-basic-color-surface-accent1: #5de3f7;--ds-basic-color-surface-accent1-muted: #ebfafd;--ds-basic-color-surface-accent1-subtle: #b4eff9;--ds-basic-color-surface-accent2: #a3cd6a;--ds-basic-color-surface-accent2-muted: #eaf3dd;--ds-basic-color-surface-default: #ffffff;--ds-basic-color-surface-inverse: #00274a;--ds-basic-color-surface-inverse-subtle: #2875b5;--ds-basic-color-surface-neutral-medium: #c5c5c5;--ds-basic-color-surface-neutral-subtle: #f7f7f7;--ds-basic-color-texticon-accent1: #265688;--ds-basic-color-texticon-default: #2a2a2a;--ds-basic-color-texticon-disabled: #d0d0d0;--ds-basic-color-texticon-inverse: #ffffff;--ds-basic-color-texticon-inverse-disabled: #7e8894;--ds-basic-color-texticon-inverse-muted: #ccd2db;--ds-basic-color-texticon-muted: #676767;--ds-basic-color-tier-program-loungetier-lounge: #01426a;--ds-basic-color-tier-program-loungetier-loungeplus: #53b390;--ds-basic-color-tier-program-loyaltytier-bronze: #d99f6d;--ds-basic-color-tier-program-loyaltytier-bronze-muted: #eed4be;--ds-basic-color-tier-program-loyaltytier-cobalt: #030772;--ds-basic-color-tier-program-loyaltytier-cobalt-muted: #a9b6d6;--ds-basic-color-tier-program-loyaltytier-copper: #cb7457;--ds-basic-color-tier-program-loyaltytier-copper-muted: #e7bfb1;--ds-basic-color-tier-program-loyaltytier-gold: #fbdc7a;--ds-basic-color-tier-program-loyaltytier-gold-muted: #fdefc4;--ds-basic-color-tier-program-loyaltytier-nickel: #abaab1;--ds-basic-color-tier-program-loyaltytier-nickel-muted: #e5e4e7;--ds-basic-color-tier-program-loyaltytier-platinum: #bcb8a4;--ds-basic-color-tier-program-loyaltytier-platinum-muted: #dad8cd;--ds-basic-color-tier-program-loyaltytier-silver: #e4e9ec;--ds-basic-color-tier-program-loyaltytier-silver-muted: #f9fafb;--ds-basic-color-tier-program-loyaltytier-titanium: #282828;--ds-basic-color-tier-program-loyaltytier-titanium-muted: #545454;--ds-basic-color-tier-program-oneworld-emerald: #139142;--ds-basic-color-tier-program-oneworld-ruby: #a41d4a;--ds-basic-color-tier-program-oneworld-sapphire: #015daa;--ds-basic-type-brand-family-primary: "AS Circular";--ds-basic-type-brand-family-secondary: "Good OT";--ds-basic-type-brand-line-height-primary: 1.3;--ds-basic-type-brand-line-height-secondary: 1;--ds-basic-type-brand-letter-spacing-primary: 0;--ds-basic-type-brand-letter-spacing-secondary: 0.05em;--ds-basic-type-brand-letter-spacing-tertiary: 0.10em;--ds-basic-type-family-accent: "Good OT";--ds-basic-type-family-accent-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-family-body: "AS Circular";--ds-basic-type-family-body-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-family-display: "AS Circular";--ds-basic-type-family-display-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-family-heading: "AS Circular";--ds-basic-type-family-heading-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-letter-spacing-accent: 0.05em;--ds-basic-type-letter-spacing-accent2: 0.10em;--ds-basic-type-letter-spacing-body: 0;--ds-basic-type-letter-spacing-display: 0;--ds-basic-type-letter-spacing-heading: 0;--ds-basic-type-line-height-accent: 1.3;--ds-basic-type-line-height-accent2: 1;--ds-basic-type-line-height-body: 1.625rem;--ds-basic-type-line-height-body2: 1.5rem;--ds-basic-type-line-height-body3: 1.25rem;--ds-basic-type-line-height-body4: 1rem;--ds-basic-type-line-height-body5: 0.875rem;--ds-basic-type-line-height-display: 1.3;--ds-basic-type-line-height-heading: 1.3;--ds-basic-type-weight-accent: 450;--ds-basic-type-weight-accent2: 500;--ds-basic-type-weight-body: 450;--ds-basic-type-weight-display: 300;--ds-basic-type-weight-heading: 300;--ds-basic-type-weight-heading2: 450}:host([layout*=snowflake]) .leftIndent{margin-left:var(--ds-size-200, 1rem)}:host([layout*=snowflake]) .rightIndent{margin-right:var(--ds-size-200, 1rem)}.layout-snowflake{display:flex;flex-direction:row;align-items:center;justify-content:center}.layout-snowflake label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-block-start:var(--ds-size-50, 0.25rem)}.layout-snowflake input{transition:all 1ms linear;text-align:center}.layout-snowflake .mainContent{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;overflow:hidden}.layout-snowflake .displayValue{display:none;width:100%}.layout-snowflake .displayValue.hasContent:is(.withValue):not(.hasFocus){display:block}.layout-snowflake .displayValueWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%}.layout-snowflake.withValue{justify-content:flex-start}.layout-snowflake:not(:focus-within):not(:is([validity]:not([validity=valid]))){--ds-auro-input-border-color: transparent}.layout-snowflake:focus-within{justify-content:flex-start}.layout-snowflake:focus-within .alertNotification{display:none}.layout-snowflake .accents{width:var(--ds-size-300, 1.5rem)}.layout-snowflake .accents.left{padding-left:var(--ds-size-200, 1rem)}.layout-snowflake .accents.right{padding-right:var(--ds-size-200, 1rem)}:host([layout*=snowflake]) .helpTextWrapper{text-align:center}`;
|
|
5402
|
+
var snowflakeStyleCss = i$5`:root{--ds-advanced-color-button-flat-text: #676767;--ds-advanced-color-button-flat-text-disabled: #d0d0d0;--ds-advanced-color-button-flat-text-hover: #525252;--ds-advanced-color-button-flat-text-inverse: #ffffff;--ds-advanced-color-button-flat-text-inverse-disabled: #7e8894;--ds-advanced-color-button-flat-text-inverse-hover: #adadad;--ds-advanced-color-button-ghost-background-hover: rgba(0, 0, 0, 0.05);--ds-advanced-color-button-ghost-background-inverse-hover: rgba(255, 255, 255, 0.05);--ds-advanced-color-button-ghost-text: #01426a;--ds-advanced-color-button-ghost-text-disabled: #d0d0d0;--ds-advanced-color-button-ghost-text-inverse: #ffffff;--ds-advanced-color-button-ghost-text-inverse-disabled: #7e8894;--ds-advanced-color-button-primary-background: #01426a;--ds-advanced-color-button-primary-background-disabled: #acc9e2;--ds-advanced-color-button-primary-background-hover: #00274a;--ds-advanced-color-button-primary-background-inactive: #cfe0ef;--ds-advanced-color-button-primary-background-inactive-hover: #89b2d4;--ds-advanced-color-button-primary-background-inverse: #ffffff;--ds-advanced-color-button-primary-background-inverse-disabled: rgba(255, 255, 255, 0.75);--ds-advanced-color-button-primary-background-inverse-hover: #ebf3f9;--ds-advanced-color-button-primary-border: #01426a;--ds-advanced-color-button-primary-border-disabled: #acc9e2;--ds-advanced-color-button-primary-border-hover: #00274a;--ds-advanced-color-button-primary-border-inverse: #ffffff;--ds-advanced-color-button-primary-border-inverse-disabled: rgba(255, 255, 255, 0.75);--ds-advanced-color-button-primary-border-inverse-hover: #ebf3f9;--ds-advanced-color-button-primary-text: #ffffff;--ds-advanced-color-button-primary-text-disabled: #ffffff;--ds-advanced-color-button-primary-text-inverse: #01426a;--ds-advanced-color-button-secondary-background: #ffffff;--ds-advanced-color-button-secondary-background-disabled: #f7f7f7;--ds-advanced-color-button-secondary-background-hover: #f2f2f2;--ds-advanced-color-button-secondary-background-inverse-hover: rgba(255, 255, 255, 0.1);--ds-advanced-color-button-secondary-border: #01426a;--ds-advanced-color-button-secondary-border-hover: #00274a;--ds-advanced-color-button-secondary-border-disabled: #cfe0ef;--ds-advanced-color-button-secondary-border-inverse: #ffffff;--ds-advanced-color-button-secondary-border-inverse-disabled: #dddddd;--ds-advanced-color-button-secondary-text: #01426a;--ds-advanced-color-button-secondary-text-hover: #00274a;--ds-advanced-color-button-secondary-text-inverse: #ffffff;--ds-advanced-color-button-tertiary-background: rgba(0, 0, 0, 0.05);--ds-advanced-color-button-tertiary-background-hover: rgba(0, 0, 0, 0.1);--ds-advanced-color-button-tertiary-background-inverse: rgba(255, 255, 255, 0.05);--ds-advanced-color-button-tertiary-background-inverse-hover: rgba(255, 255, 255, 0.1);--ds-advanced-color-button-tertiary-text: #01426a;--ds-advanced-color-button-tertiary-text-hover: #00274a;--ds-advanced-color-button-tertiary-text-inverse: #ffffff;--ds-advanced-color-accents-accent1: #b2d583;--ds-advanced-color-accents-accent1-bold: #92c450;--ds-advanced-color-accents-accent1-muted: #deedca;--ds-advanced-color-accents-accent2: #fad362;--ds-advanced-color-accents-accent2-bold: #f2ba14;--ds-advanced-color-accents-accent2-muted: #fde398;--ds-advanced-color-accents-accent3: #63beff;--ds-advanced-color-accents-accent3-bold: #0074ca;--ds-advanced-color-accents-accent3-muted: #aedeff;--ds-advanced-color-accents-accent4: #feb17a;--ds-advanced-color-accents-accent4-bold: #fb7f24;--ds-advanced-color-accents-accent4-muted: #ffe2cf;--ds-advanced-color-accents-transparency: rgba(0, 0, 0, 0.1);--ds-advanced-color-accents-transparency-inverse: rgba(255, 255, 255, 0.2);--ds-advanced-color-avatar-gradient-bottom: #cfe0ef;--ds-advanced-color-avatar-gradient-top: #6899c6;--ds-advanced-color-boolean-disabled-inverse: #7e8894;--ds-advanced-color-boolean-error: #e31f26;--ds-advanced-color-boolean-error-hover: #b1161c;--ds-advanced-color-boolean-error-inverse: #f9a4a8;--ds-advanced-color-boolean-error-inverse-hover: #f15f65;--ds-advanced-color-boolean-indicator: #ffffff;--ds-advanced-color-boolean-indicator-inverse: #00274a;--ds-advanced-color-boolean-isfalse: #ffffff;--ds-advanced-color-boolean-isfalse-border: #585e67;--ds-advanced-color-boolean-isfalse-border-inverse: #ffffff;--ds-advanced-color-boolean-isfalse-hover: #f2f2f2;--ds-advanced-color-boolean-isfalse-inverse: rgba(255, 255, 255, 0.15);--ds-advanced-color-boolean-isfalse-inverse-hover: rgba(255, 255, 255, 0.2);--ds-advanced-color-boolean-istrue: #01426a;--ds-advanced-color-boolean-istrue-hover: #00274a;--ds-advanced-color-boolean-istrue-inverse: #ffffff;--ds-advanced-color-boolean-istrue-inverse-hover: rgba(255, 255, 255, 0.7);--ds-advanced-color-dropdown-emphasized-background: #00274A1a;--ds-advanced-color-dropdown-emphasized-background-hover: #00274A33;--ds-advanced-color-expanded-widget-background: #00274a;--ds-advanced-color-flightline-indicator: #00274a;--ds-advanced-color-flightline-line: #00274a;--ds-advanced-color-hyperlink-text: #2875b5;--ds-advanced-color-hyperlink-text-hover: #01426a;--ds-advanced-color-hyperlink-text-inverse: #ffffff;--ds-advanced-color-hyperlink-text-inverse-hover: #ebf3f9;--ds-advanced-color-shared-background: #ffffff;--ds-advanced-color-shared-background-inverse: rgba(255, 255, 255, 0.15);--ds-advanced-color-shared-background-inverse-disabled: rgba(255, 255, 255, 0.1);--ds-advanced-color-shared-background-inverse-hover: rgba(255, 255, 255, 0.2);--ds-advanced-color-shared-background-muted: #f7f7f7;--ds-advanced-color-shared-background-strong: #676767;--ds-advanced-color-shared-emphasized-background: rgba(1, 66, 106, 0.1);--ds-advanced-color-shared-emphasized-background-hover: rgba(1, 66, 106, 0.2);--ds-advanced-color-shared-scrim: rgba(0, 0, 0, 0.5);--ds-advanced-color-shared-text-accent: #2875b5;--ds-advanced-color-skeleton-background: #f7f8fa;--ds-advanced-color-skeleton-wave: #e4e8ec;--ds-advanced-color-state-background-disabled: #dddddd;--ds-advanced-color-state-background-hover: #f2f2f2;--ds-advanced-color-state-background-inverse-disabled: #7e8894;--ds-advanced-color-state-error-inverse: #f9a4a8;--ds-advanced-color-state-focused: #01426a;--ds-advanced-color-state-focused-inverse: #ffffff;--ds-advanced-color-state-selected: #01426a;--ds-advanced-color-state-selected-hover: #00274a;--ds-basic-color-border-bold: #585e67;--ds-basic-color-border-brand: #00274a;--ds-basic-color-border-default: #959595;--ds-basic-color-border-divider: rgba(0, 0, 0, 0.15);--ds-basic-color-border-divider-inverse: rgba(255, 255, 255, 0.4);--ds-basic-color-border-inverse: #ffffff;--ds-basic-color-border-subtle: #dddddd;--ds-basic-color-brand-primary: #01426a;--ds-basic-color-brand-primary-bold: #00274a;--ds-basic-color-brand-primary-muted: #ebf3f9;--ds-basic-color-brand-primary-subtle: #2875b5;--ds-basic-color-brand-secondary: #5de3f7;--ds-basic-color-brand-secondary-bold: #18c3dd;--ds-basic-color-brand-secondary-muted: #ebfafd;--ds-basic-color-brand-secondary-subtle: #b4eff9;--ds-basic-color-brand-tertiary: #a3cd6a;--ds-basic-color-brand-tertiary-bold: #7daf3b;--ds-basic-color-brand-tertiary-muted: #eaf3dd;--ds-basic-color-brand-tertiary-subtle: #c9e1a7;--ds-basic-color-fare-basiceconomy: #97eaf8;--ds-basic-color-fare-business: #01426a;--ds-basic-color-fare-economy: #0074ca;--ds-basic-color-fare-first: #00274a;--ds-basic-color-fare-premiumeconomy: #005154;--ds-basic-color-page-background-default: #ffffff;--ds-basic-color-page-background-utility: #ffffff;--ds-basic-color-status-default: #afb9c6;--ds-basic-color-status-error: #e31f26;--ds-basic-color-status-error-subtle: #fbc6c6;--ds-basic-color-status-info: #01426a;--ds-basic-color-status-info-subtle: #ebf3f9;--ds-basic-color-status-success: #447a1f;--ds-basic-color-status-success-subtle: #d6eac7;--ds-basic-color-status-warning: #fac200;--ds-basic-color-status-warning-subtle: #fff0b2;--ds-basic-color-surface-accent1: #5de3f7;--ds-basic-color-surface-accent1-muted: #ebfafd;--ds-basic-color-surface-accent1-subtle: #b4eff9;--ds-basic-color-surface-accent2: #a3cd6a;--ds-basic-color-surface-accent2-muted: #eaf3dd;--ds-basic-color-surface-default: #ffffff;--ds-basic-color-surface-inverse: #00274a;--ds-basic-color-surface-inverse-subtle: #2875b5;--ds-basic-color-surface-neutral-medium: #c5c5c5;--ds-basic-color-surface-neutral-subtle: #f7f7f7;--ds-basic-color-texticon-accent1: #265688;--ds-basic-color-texticon-default: #2a2a2a;--ds-basic-color-texticon-disabled: #d0d0d0;--ds-basic-color-texticon-inverse: #ffffff;--ds-basic-color-texticon-inverse-disabled: #7e8894;--ds-basic-color-texticon-inverse-muted: #ccd2db;--ds-basic-color-texticon-muted: #676767;--ds-basic-color-tier-program-loungetier-lounge: #01426a;--ds-basic-color-tier-program-loungetier-loungeplus: #53b390;--ds-basic-color-tier-program-loyaltytier-bronze: #d99f6d;--ds-basic-color-tier-program-loyaltytier-bronze-muted: #eed4be;--ds-basic-color-tier-program-loyaltytier-cobalt: #030772;--ds-basic-color-tier-program-loyaltytier-cobalt-muted: #a9b6d6;--ds-basic-color-tier-program-loyaltytier-copper: #cb7457;--ds-basic-color-tier-program-loyaltytier-copper-muted: #e7bfb1;--ds-basic-color-tier-program-loyaltytier-gold: #fbdc7a;--ds-basic-color-tier-program-loyaltytier-gold-muted: #fdefc4;--ds-basic-color-tier-program-loyaltytier-nickel: #abaab1;--ds-basic-color-tier-program-loyaltytier-nickel-muted: #e5e4e7;--ds-basic-color-tier-program-loyaltytier-platinum: #bcb8a4;--ds-basic-color-tier-program-loyaltytier-platinum-muted: #dad8cd;--ds-basic-color-tier-program-loyaltytier-silver: #e4e9ec;--ds-basic-color-tier-program-loyaltytier-silver-muted: #f9fafb;--ds-basic-color-tier-program-loyaltytier-titanium: #282828;--ds-basic-color-tier-program-loyaltytier-titanium-muted: #545454;--ds-basic-color-tier-program-oneworld-emerald: #139142;--ds-basic-color-tier-program-oneworld-ruby: #a41d4a;--ds-basic-color-tier-program-oneworld-sapphire: #015daa;--ds-basic-type-brand-family-primary: "AS Circular";--ds-basic-type-brand-family-secondary: "Good OT";--ds-basic-type-brand-line-height-primary: 1.3;--ds-basic-type-brand-line-height-secondary: 1;--ds-basic-type-brand-letter-spacing-primary: 0;--ds-basic-type-brand-letter-spacing-secondary: 0.05em;--ds-basic-type-brand-letter-spacing-tertiary: 0.10em;--ds-basic-type-family-accent: "Good OT";--ds-basic-type-family-accent-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-family-body: "AS Circular";--ds-basic-type-family-body-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-family-display: "AS Circular";--ds-basic-type-family-display-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-family-heading: "AS Circular";--ds-basic-type-family-heading-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ds-basic-type-letter-spacing-accent: 0.05em;--ds-basic-type-letter-spacing-accent2: 0.10em;--ds-basic-type-letter-spacing-body: 0;--ds-basic-type-letter-spacing-display: 0;--ds-basic-type-letter-spacing-heading: 0;--ds-basic-type-line-height-accent: 1.3;--ds-basic-type-line-height-accent2: 1;--ds-basic-type-line-height-body: 1.625rem;--ds-basic-type-line-height-body2: 1.5rem;--ds-basic-type-line-height-body3: 1.25rem;--ds-basic-type-line-height-body4: 1rem;--ds-basic-type-line-height-body5: 0.875rem;--ds-basic-type-line-height-display: 1.3;--ds-basic-type-line-height-heading: 1.3;--ds-basic-type-weight-accent: 450;--ds-basic-type-weight-accent2: 500;--ds-basic-type-weight-body: 450;--ds-basic-type-weight-display: 300;--ds-basic-type-weight-heading: 300;--ds-basic-type-weight-heading2: 450}:host([layout*=snowflake]) .leftIndent{margin-left:var(--ds-size-200, 1rem)}:host([layout*=snowflake]) .rightIndent{margin-right:var(--ds-size-200, 1rem)}.layout-snowflake{display:flex;flex-direction:row;align-items:center;justify-content:center}.layout-snowflake label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-block-start:var(--ds-size-50, 0.25rem)}.layout-snowflake input{transition:all 1ms linear;text-align:center}.layout-snowflake .mainContent{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;overflow:hidden}.layout-snowflake .displayValue{display:none;width:100%}.layout-snowflake .displayValue.hasContent:is(.withValue):not(.hasFocus){display:block}.layout-snowflake .displayValueWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%}.layout-snowflake.withValue{justify-content:flex-start}.layout-snowflake.withValue:hover .alertNotification{display:none}.layout-snowflake:not(:focus-within):not(:is([validity]:not([validity=valid]))){--ds-auro-input-border-color: transparent}.layout-snowflake:focus-within{justify-content:flex-start}.layout-snowflake:focus-within .alertNotification{display:none}.layout-snowflake .accents{width:var(--ds-size-300, 1.5rem)}.layout-snowflake .accents.left{padding-left:var(--ds-size-200, 1rem)}.layout-snowflake .accents.right{padding-right:var(--ds-size-200, 1rem)}:host([layout*=snowflake]) .helpTextWrapper{text-align:center}`;
|
|
5339
5403
|
|
|
5340
5404
|
const watchedItems = new Set();
|
|
5341
5405
|
|
|
@@ -9892,6 +9956,52 @@ class AuroFormValidation {
|
|
|
9892
9956
|
message: e => e.getAttribute('setCustomValidityRangeUnderflow') || ''
|
|
9893
9957
|
}
|
|
9894
9958
|
]
|
|
9959
|
+
},
|
|
9960
|
+
combobox: {
|
|
9961
|
+
filter: [
|
|
9962
|
+
{
|
|
9963
|
+
check: (e) => {
|
|
9964
|
+
|
|
9965
|
+
// Guard Clause: If the behavior is not 'filter', skip this validation
|
|
9966
|
+
if (e.behavior !== 'filter') return false;
|
|
9967
|
+
|
|
9968
|
+
// Get the current input value
|
|
9969
|
+
const currentInputValue = e.input.value;
|
|
9970
|
+
|
|
9971
|
+
// Skip validation if the input has no value
|
|
9972
|
+
if (!currentInputValue) return false;
|
|
9973
|
+
|
|
9974
|
+
/**
|
|
9975
|
+
* Let's check if the option selected and combobox value match.
|
|
9976
|
+
*/
|
|
9977
|
+
|
|
9978
|
+
// Guard Clause: If there is no option selected fail the validation
|
|
9979
|
+
if (!e.optionSelected) return true;
|
|
9980
|
+
|
|
9981
|
+
// Guard Clause: If there is no value fail the validation
|
|
9982
|
+
if (!e.value) return true;
|
|
9983
|
+
|
|
9984
|
+
// Guard Clause: If the selected option's value doesn't match the input value fail the validation
|
|
9985
|
+
if (e.optionSelected.value !== e.value) return true;
|
|
9986
|
+
|
|
9987
|
+
/**
|
|
9988
|
+
* Now let's make sure the user hasn't change the value in the input after selecting an option.
|
|
9989
|
+
* This is to make sure there's no user confusion if they select an option but then change the value to something else.
|
|
9990
|
+
*/
|
|
9991
|
+
|
|
9992
|
+
// Guard Clause: If the current input value doesn't match the option selected value fail the validation
|
|
9993
|
+
if (currentInputValue && currentInputValue !== e.optionSelected.value) return true;
|
|
9994
|
+
|
|
9995
|
+
// Guard Clause: If the current input value doesn't match the combobox value fail the validation
|
|
9996
|
+
if (currentInputValue && currentInputValue !== e.value) return true;
|
|
9997
|
+
|
|
9998
|
+
// If all the checks passed the validation passes
|
|
9999
|
+
return false;
|
|
10000
|
+
},
|
|
10001
|
+
validity: 'valueMissing',
|
|
10002
|
+
message: e => e.getAttribute('setCustomValidityValueMissingFilter') || e.setCustomValidity || ''
|
|
10003
|
+
}
|
|
10004
|
+
]
|
|
9895
10005
|
}
|
|
9896
10006
|
};
|
|
9897
10007
|
|
|
@@ -9900,6 +10010,8 @@ class AuroFormValidation {
|
|
|
9900
10010
|
elementType = 'input';
|
|
9901
10011
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
|
|
9902
10012
|
elementType = 'counter';
|
|
10013
|
+
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox')) {
|
|
10014
|
+
elementType = 'combobox';
|
|
9903
10015
|
}
|
|
9904
10016
|
|
|
9905
10017
|
if (elementType) {
|
|
@@ -10086,6 +10198,15 @@ class AuroFormValidation {
|
|
|
10086
10198
|
}
|
|
10087
10199
|
}
|
|
10088
10200
|
|
|
10201
|
+
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
10202
|
+
|
|
10203
|
+
if (isCombobox) {
|
|
10204
|
+
|
|
10205
|
+
if (!elem.persistInput || elem.behavior === "filter") {
|
|
10206
|
+
hasValue = elem.input.value?.length > 0;
|
|
10207
|
+
}
|
|
10208
|
+
}
|
|
10209
|
+
|
|
10089
10210
|
if (!hasValue && elem.required && elem.touched) {
|
|
10090
10211
|
elem.validity = 'valueMissing';
|
|
10091
10212
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
@@ -10094,6 +10215,11 @@ class AuroFormValidation {
|
|
|
10094
10215
|
this.validateElementAttributes(elem);
|
|
10095
10216
|
} else if (hasValue && (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group'))) {
|
|
10096
10217
|
this.validateElementAttributes(elem);
|
|
10218
|
+
} else if (isCombobox) {
|
|
10219
|
+
this.validateElementAttributes(elem);
|
|
10220
|
+
|
|
10221
|
+
// Don't run extra validation for cases where the combobox is not being used as a filter
|
|
10222
|
+
validationShouldRun = elem.behavior !== 'filter';
|
|
10097
10223
|
}
|
|
10098
10224
|
}
|
|
10099
10225
|
|
|
@@ -10101,8 +10227,8 @@ class AuroFormValidation {
|
|
|
10101
10227
|
|
|
10102
10228
|
const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
|
|
10103
10229
|
|
|
10104
|
-
// Don't reset combobox validity if
|
|
10105
|
-
if (!isCombobox || isCombobox && !elem.
|
|
10230
|
+
// Don't reset combobox validity if persistInput is set since we can't use the input value to validate
|
|
10231
|
+
if (!isCombobox || isCombobox && !elem.persistInput) {
|
|
10106
10232
|
|
|
10107
10233
|
// run validation on all inputs since we're going to use them to set the validity of this component
|
|
10108
10234
|
this.auroInputElements.forEach(input => input.validate());
|
|
@@ -10175,6 +10301,8 @@ class AuroFormValidation {
|
|
|
10175
10301
|
if (input.validationMessage.length > 0) {
|
|
10176
10302
|
elem.errorMessage = input.validationMessage;
|
|
10177
10303
|
}
|
|
10304
|
+
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
|
|
10305
|
+
elem.errorMessage = elem.input?.inputElement?.validationMessage;
|
|
10178
10306
|
} else if (this.inputElements?.length > 0 && elem.errorMessage === '') {
|
|
10179
10307
|
const firstInput = this.inputElements[0];
|
|
10180
10308
|
|
|
@@ -13188,6 +13316,7 @@ class AuroCombobox extends AuroElement {
|
|
|
13188
13316
|
this.required = false;
|
|
13189
13317
|
this.value = undefined;
|
|
13190
13318
|
this.typedValue = undefined;
|
|
13319
|
+
this.behavior = "suggestion";
|
|
13191
13320
|
|
|
13192
13321
|
// Defaults that effect the overall layout of the combobox
|
|
13193
13322
|
this.checkmark = false;
|
|
@@ -13279,6 +13408,17 @@ class AuroCombobox extends AuroElement {
|
|
|
13279
13408
|
reflect: false
|
|
13280
13409
|
},
|
|
13281
13410
|
|
|
13411
|
+
/**
|
|
13412
|
+
* Sets the behavior of the combobox, "filter" or "suggestion".
|
|
13413
|
+
* "filter" requires the user to select an option from the menu.
|
|
13414
|
+
* "suggestion" allows the user to enter a value not present in the menu options.
|
|
13415
|
+
* @default suggestion
|
|
13416
|
+
*/
|
|
13417
|
+
behavior: {
|
|
13418
|
+
type: String,
|
|
13419
|
+
reflect: true
|
|
13420
|
+
},
|
|
13421
|
+
|
|
13282
13422
|
/**
|
|
13283
13423
|
* When attribute is present auro-menu will apply check marks to selected options.
|
|
13284
13424
|
*/
|
|
@@ -13355,7 +13495,7 @@ class AuroCombobox extends AuroElement {
|
|
|
13355
13495
|
},
|
|
13356
13496
|
|
|
13357
13497
|
/**
|
|
13358
|
-
* If set, combobox will not filter menuoptions based
|
|
13498
|
+
* If set, combobox will not filter menuoptions based on input.
|
|
13359
13499
|
*/
|
|
13360
13500
|
noFilter: {
|
|
13361
13501
|
type: Boolean,
|
|
@@ -13478,6 +13618,13 @@ class AuroCombobox extends AuroElement {
|
|
|
13478
13618
|
type: String
|
|
13479
13619
|
},
|
|
13480
13620
|
|
|
13621
|
+
/**
|
|
13622
|
+
* Custom help text message to display when validity = `valueMissing` due to the user not choosing a menu option when behavior = "filter".
|
|
13623
|
+
*/
|
|
13624
|
+
setCustomValidityValueMissingFilter: {
|
|
13625
|
+
type: String
|
|
13626
|
+
},
|
|
13627
|
+
|
|
13481
13628
|
/**
|
|
13482
13629
|
* Indicates whether the combobox is in a dirty state (has been interacted with).
|
|
13483
13630
|
* @type {boolean}
|
|
@@ -14133,6 +14280,8 @@ class AuroCombobox extends AuroElement {
|
|
|
14133
14280
|
this.addEventListener('auroFormElement-validated', (evt) => {
|
|
14134
14281
|
this.input.validity = evt.detail.validity;
|
|
14135
14282
|
this.input.errorMessage = evt.detail.message;
|
|
14283
|
+
this.validity = evt.detail.validity;
|
|
14284
|
+
this.errorMessage = evt.detail.message;
|
|
14136
14285
|
});
|
|
14137
14286
|
}
|
|
14138
14287
|
|
|
@@ -126,6 +126,9 @@ The `<auro-combobox>` element should be used in situations where users may:
|
|
|
126
126
|
</auro-combobox>
|
|
127
127
|
<!-- AURO-GENERATED-CONTENT:END -->
|
|
128
128
|
</div>
|
|
129
|
+
|
|
130
|
+
### Basic
|
|
131
|
+
|
|
129
132
|
<div class="exampleWrapper">
|
|
130
133
|
<!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/basic.html) -->
|
|
131
134
|
<!-- The below content is automatically added from ./../apiExamples/basic.html -->
|
|
@@ -201,6 +204,107 @@ The `<auro-combobox>` element should be used in situations where users may:
|
|
|
201
204
|
<!-- AURO-GENERATED-CONTENT:END -->
|
|
202
205
|
</auro-accordion>
|
|
203
206
|
|
|
207
|
+
### Behavior
|
|
208
|
+
|
|
209
|
+
There are two behaviors available for the combo box: suggestion and filter.
|
|
210
|
+
The default behavior is "suggestion".
|
|
211
|
+
|
|
212
|
+
#### Suggestion
|
|
213
|
+
|
|
214
|
+
With the suggestion behavior, the menu options are displayed to the user as suggestions, but the user may enter whatever value they like into the input
|
|
215
|
+
|
|
216
|
+
<div class="exampleWrapper">
|
|
217
|
+
<!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/suggestion.html) -->
|
|
218
|
+
<!-- The below content is automatically added from ./../apiExamples/suggestion.html -->
|
|
219
|
+
<auro-combobox behavior="suggestion">
|
|
220
|
+
<span slot="ariaLabel.bib.close">Close combobox</span>
|
|
221
|
+
<span slot="ariaLabel.input.clear">Clear All</span>
|
|
222
|
+
<span slot="bib.fullscreen.headline">Bib Header</span>
|
|
223
|
+
<span slot="label">Name</span>
|
|
224
|
+
<auro-menu>
|
|
225
|
+
<auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
|
|
226
|
+
<auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
|
|
227
|
+
<auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
|
|
228
|
+
<auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
|
|
229
|
+
<auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
|
|
230
|
+
<auro-menuoption static nomatch>No matching option</auro-menuoption>
|
|
231
|
+
</auro-menu>
|
|
232
|
+
</auro-combobox>
|
|
233
|
+
<!-- AURO-GENERATED-CONTENT:END -->
|
|
234
|
+
</div>
|
|
235
|
+
<auro-accordion alignRight>
|
|
236
|
+
<span slot="trigger">See code</span>
|
|
237
|
+
<!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/suggestion.html) -->
|
|
238
|
+
<!-- The below code snippet is automatically added from ./../apiExamples/suggestion.html -->
|
|
239
|
+
|
|
240
|
+
```html
|
|
241
|
+
<auro-combobox behavior="suggestion">
|
|
242
|
+
<span slot="ariaLabel.bib.close">Close combobox</span>
|
|
243
|
+
<span slot="ariaLabel.input.clear">Clear All</span>
|
|
244
|
+
<span slot="bib.fullscreen.headline">Bib Header</span>
|
|
245
|
+
<span slot="label">Name</span>
|
|
246
|
+
<auro-menu>
|
|
247
|
+
<auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
|
|
248
|
+
<auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
|
|
249
|
+
<auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
|
|
250
|
+
<auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
|
|
251
|
+
<auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
|
|
252
|
+
<auro-menuoption static nomatch>No matching option</auro-menuoption>
|
|
253
|
+
</auro-menu>
|
|
254
|
+
</auro-combobox>
|
|
255
|
+
```
|
|
256
|
+
<!-- AURO-GENERATED-CONTENT:END -->
|
|
257
|
+
</auro-accordion>
|
|
258
|
+
|
|
259
|
+
#### Filter
|
|
260
|
+
|
|
261
|
+
With the filter behavior, the menu options are displayed to the user, and the user is required to choose one of the menu options in order for the input to be considered valid.
|
|
262
|
+
|
|
263
|
+
The `setCustomValidityValueMissingFilter` attribute is also available to display a custom message to the user when this validation check fails.
|
|
264
|
+
|
|
265
|
+
<div class="exampleWrapper">
|
|
266
|
+
<!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/filter.html) -->
|
|
267
|
+
<!-- The below content is automatically added from ./../apiExamples/filter.html -->
|
|
268
|
+
<auro-combobox behavior="filter" setCustomValidityValueMissingFilter="Please select an option from the list">
|
|
269
|
+
<span slot="ariaLabel.bib.close">Close combobox</span>
|
|
270
|
+
<span slot="ariaLabel.input.clear">Clear All</span>
|
|
271
|
+
<span slot="bib.fullscreen.headline">Bib Header</span>
|
|
272
|
+
<span slot="label">Name</span>
|
|
273
|
+
<auro-menu>
|
|
274
|
+
<auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
|
|
275
|
+
<auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
|
|
276
|
+
<auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
|
|
277
|
+
<auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
|
|
278
|
+
<auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
|
|
279
|
+
<auro-menuoption static nomatch>No matching option</auro-menuoption>
|
|
280
|
+
</auro-menu>
|
|
281
|
+
</auro-combobox>
|
|
282
|
+
<!-- AURO-GENERATED-CONTENT:END -->
|
|
283
|
+
</div>
|
|
284
|
+
<auro-accordion alignRight>
|
|
285
|
+
<span slot="trigger">See code</span>
|
|
286
|
+
<!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/filter.html) -->
|
|
287
|
+
<!-- The below code snippet is automatically added from ./../apiExamples/filter.html -->
|
|
288
|
+
|
|
289
|
+
```html
|
|
290
|
+
<auro-combobox behavior="filter" setCustomValidityValueMissingFilter="Please select an option from the list">
|
|
291
|
+
<span slot="ariaLabel.bib.close">Close combobox</span>
|
|
292
|
+
<span slot="ariaLabel.input.clear">Clear All</span>
|
|
293
|
+
<span slot="bib.fullscreen.headline">Bib Header</span>
|
|
294
|
+
<span slot="label">Name</span>
|
|
295
|
+
<auro-menu>
|
|
296
|
+
<auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
|
|
297
|
+
<auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
|
|
298
|
+
<auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
|
|
299
|
+
<auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
|
|
300
|
+
<auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
|
|
301
|
+
<auro-menuoption static nomatch>No matching option</auro-menuoption>
|
|
302
|
+
</auro-menu>
|
|
303
|
+
</auro-combobox>
|
|
304
|
+
```
|
|
305
|
+
<!-- AURO-GENERATED-CONTENT:END -->
|
|
306
|
+
</auro-accordion>
|
|
307
|
+
|
|
204
308
|
### Airports example
|
|
205
309
|
|
|
206
310
|
<div class="exampleWrapper">
|