@ascentgl/ads-ui 21.86.0 → 21.88.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.
@@ -4011,11 +4011,11 @@ class AdsInputDropdownComponent extends AbstractInputComponent {
4011
4011
  }
4012
4012
  }
4013
4013
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsInputDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4014
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: AdsInputDropdownComponent, isStandalone: false, selector: "ads-input-dropdown", inputs: { maxlength: "maxlength", type: "type", pattern: "pattern", dropdownControl: "dropdownControl", dropdownId: "dropdownId", dropdownLabel: "dropdownLabel", dropdownPlaceholder: "dropdownPlaceholder", inputWidth: "inputWidth", dropdownWidth: "dropdownWidth", autoSelectSingleDropdownOption: "autoSelectSingleDropdownOption", options: "options", displayValueKey: "displayValueKey", hasEmptyValue: "hasEmptyValue", fitContent: "fitContent", mask: "mask", suffix: "suffix", prefix: "prefix", dropSpecialCharacters: "dropSpecialCharacters", thousandSeparator: "thousandSeparator", decimalMarker: "decimalMarker", outputTransformFn: "outputTransformFn", onBlur: "onBlur", showTooltip: "showTooltip", closeOnOutOfView: "closeOnOutOfView", outOfViewRootMargin: "outOfViewRootMargin" }, viewQueries: [{ propertyName: "dropdownComponent", first: true, predicate: AdsDropdownComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\n <div class=\"form-controls-wrapper\">\n <div\n class=\"text-box\"\n [ngClass]=\"{\n invalid: dropdownControl.invalid && dropdownControl.touched,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: inputWidth }\"\n >\n <ads-input\n [control]=\"valueControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [pattern]=\"pattern\"\n [label]=\"label\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [errorMessages]=\"errorMessages\"\n [showExclamationOnError]=\"showExclamationOnError\"\n [showClearButton]=\"showClearButton\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [thousandSeparator]=\"thousandSeparator\"\n [decimalMarker]=\"decimalMarker\"\n [outputTransformFn]=\"outputTransformFn\"\n [onBlur]=\"onBlur\"\n />\n </div>\n <div\n class=\"select-box\"\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\n [ngStyle]=\"{ width: dropdownWidth }\"\n >\n @if (isSingleOptionSelected) {\n <ads-input\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [id]=\"id\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n />\n } @else {\n <ads-dropdown\n [hasEmptyValue]=\"hasEmptyValue\"\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [id]=\"dropdownId\"\n [options]=\"options\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [displayValueKey]=\"displayValueKey\"\n [fitContent]=\"fitContent\"\n [showFooter]=\"false\"\n [checkSelected]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [showTooltip]=\"showTooltip\"\n [closeOnOutOfView]=\"closeOnOutOfView\"\n [outOfViewRootMargin]=\"outOfViewRootMargin\"\n />\n }\n </div>\n </div>\n <div class=\"footer-container\"\n [class.dynamic]=\"!isStaticFooter\"\n [class.has-content]=\"hasFooterContent()\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}.form-field-wrapper{display:flex;flex-direction:column}.form-field-wrapper .form-controls-wrapper{display:flex;width:100%}.form-field-wrapper .invalid ::ng-deep .mdc-text-field{border-color:var(--mat-form-field-filled-error-label-text-color)}.form-field-wrapper .invalid.text-box ::ng-deep .mdc-text-field{border-right-width:1px}.form-field-wrapper .invalid.select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent}.form-field-wrapper .select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent;border-top-left-radius:0;border-bottom-left-radius:0}.form-field-wrapper .text-box{z-index:1}.form-field-wrapper .text-box ::ng-deep .mdc-text-field{border-top-right-radius:0;border-bottom-right-radius:0}\n", ".footer-container{min-height:20px;overflow:hidden}.footer-container.dynamic{min-height:0;max-height:0;opacity:0;transition:max-height .3s ease-in-out,opacity .2s ease-in-out,min-height .3s ease-in-out}.footer-container.dynamic.has-content{min-height:20px;max-height:100px;opacity:1;transition:max-height .3s ease-in-out,opacity .3s ease-in-out .1s,min-height .3s ease-in-out}::ng-deep .mat-mdc-form-field{--mat-form-field-filled-input-text-placeholder-color: var(--color-medium) !important}::ng-deep .spinner{animation:spin 1s linear infinite;transform-origin:50% 50%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AdsInputComponent, selector: "ads-input", inputs: ["maxlength", "type", "pattern", "defaultValue", "isPasswordField", "showClockIcon", "mask", "suffix", "prefix", "dropSpecialCharacters", "thousandSeparator", "decimalMarker", "outputTransformFn", "matAutocomplete", "readOnly", "showSearchIcon", "onFocus", "onBlur", "rightHint"] }, { kind: "component", type: AdsDropdownComponent, selector: "ads-dropdown", inputs: ["displayValueFormatter", "mode", "hasEmptyValue", "checkSelected", "options", "optionTemplate", "triggerTemplate", "panelClass", "closeOnOutOfView", "outOfViewRootMargin"] }, { kind: "component", type: AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize", "href"] }, { kind: "component", type: AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
4014
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: AdsInputDropdownComponent, isStandalone: false, selector: "ads-input-dropdown", inputs: { maxlength: "maxlength", type: "type", pattern: "pattern", dropdownControl: "dropdownControl", dropdownId: "dropdownId", dropdownLabel: "dropdownLabel", dropdownPlaceholder: "dropdownPlaceholder", inputWidth: "inputWidth", dropdownWidth: "dropdownWidth", autoSelectSingleDropdownOption: "autoSelectSingleDropdownOption", options: "options", displayValueKey: "displayValueKey", hasEmptyValue: "hasEmptyValue", fitContent: "fitContent", mask: "mask", suffix: "suffix", prefix: "prefix", dropSpecialCharacters: "dropSpecialCharacters", thousandSeparator: "thousandSeparator", decimalMarker: "decimalMarker", outputTransformFn: "outputTransformFn", onBlur: "onBlur", showTooltip: "showTooltip", closeOnOutOfView: "closeOnOutOfView", outOfViewRootMargin: "outOfViewRootMargin" }, viewQueries: [{ propertyName: "dropdownComponent", first: true, predicate: AdsDropdownComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\n <div class=\"form-controls-wrapper\">\n <div\n class=\"text-box\"\n [ngClass]=\"{\n invalid: showValidationError && dropdownControl.invalid && dropdownControl.touched,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: inputWidth }\"\n >\n <ads-input\n [control]=\"valueControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [showValidationError]=\"showValidationError\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [pattern]=\"pattern\"\n [label]=\"label\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [errorMessages]=\"errorMessages\"\n [showExclamationOnError]=\"showExclamationOnError\"\n [showClearButton]=\"showClearButton\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [thousandSeparator]=\"thousandSeparator\"\n [decimalMarker]=\"decimalMarker\"\n [outputTransformFn]=\"outputTransformFn\"\n [onBlur]=\"onBlur\"\n />\n </div>\n <div\n class=\"select-box\"\n [ngClass]=\"{ invalid: showValidationError && valueControl.invalid && valueControl.touched }\"\n [ngStyle]=\"{ width: dropdownWidth }\"\n >\n @if (isSingleOptionSelected) {\n <ads-input\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [showValidationError]=\"showValidationError\"\n [id]=\"id\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n />\n } @else {\n <ads-dropdown\n [hasEmptyValue]=\"hasEmptyValue\"\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [showValidationError]=\"showValidationError\"\n [id]=\"dropdownId\"\n [options]=\"options\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [displayValueKey]=\"displayValueKey\"\n [fitContent]=\"fitContent\"\n [showFooter]=\"false\"\n [checkSelected]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [showTooltip]=\"showTooltip\"\n [closeOnOutOfView]=\"closeOnOutOfView\"\n [outOfViewRootMargin]=\"outOfViewRootMargin\"\n />\n }\n </div>\n </div>\n <div class=\"footer-container\"\n [class.dynamic]=\"!isStaticFooter\"\n [class.has-content]=\"hasFooterContent()\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}.form-field-wrapper{display:flex;flex-direction:column}.form-field-wrapper .form-controls-wrapper{display:flex;width:100%}.form-field-wrapper .invalid ::ng-deep .mdc-text-field{border-color:var(--mat-form-field-filled-error-label-text-color)}.form-field-wrapper .invalid.text-box ::ng-deep .mdc-text-field{border-right-width:1px}.form-field-wrapper .invalid.select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent}.form-field-wrapper .select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent;border-top-left-radius:0;border-bottom-left-radius:0}.form-field-wrapper .text-box{z-index:1}.form-field-wrapper .text-box ::ng-deep .mdc-text-field{border-top-right-radius:0;border-bottom-right-radius:0}\n", ".footer-container{min-height:20px;overflow:hidden}.footer-container.dynamic{min-height:0;max-height:0;opacity:0;transition:max-height .3s ease-in-out,opacity .2s ease-in-out,min-height .3s ease-in-out}.footer-container.dynamic.has-content{min-height:20px;max-height:100px;opacity:1;transition:max-height .3s ease-in-out,opacity .3s ease-in-out .1s,min-height .3s ease-in-out}::ng-deep .mat-mdc-form-field{--mat-form-field-filled-input-text-placeholder-color: var(--color-medium) !important}::ng-deep .spinner{animation:spin 1s linear infinite;transform-origin:50% 50%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AdsInputComponent, selector: "ads-input", inputs: ["maxlength", "type", "pattern", "defaultValue", "isPasswordField", "showClockIcon", "mask", "suffix", "prefix", "dropSpecialCharacters", "thousandSeparator", "decimalMarker", "outputTransformFn", "matAutocomplete", "readOnly", "showSearchIcon", "onFocus", "onBlur", "rightHint"] }, { kind: "component", type: AdsDropdownComponent, selector: "ads-dropdown", inputs: ["displayValueFormatter", "mode", "hasEmptyValue", "checkSelected", "options", "optionTemplate", "triggerTemplate", "panelClass", "closeOnOutOfView", "outOfViewRootMargin"] }, { kind: "component", type: AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize", "href"] }, { kind: "component", type: AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
4015
4015
  }
4016
4016
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AdsInputDropdownComponent, decorators: [{
4017
4017
  type: Component,
4018
- args: [{ selector: 'ads-input-dropdown', standalone: false, template: "<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\n <div class=\"form-controls-wrapper\">\n <div\n class=\"text-box\"\n [ngClass]=\"{\n invalid: dropdownControl.invalid && dropdownControl.touched,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: inputWidth }\"\n >\n <ads-input\n [control]=\"valueControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [pattern]=\"pattern\"\n [label]=\"label\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [errorMessages]=\"errorMessages\"\n [showExclamationOnError]=\"showExclamationOnError\"\n [showClearButton]=\"showClearButton\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [thousandSeparator]=\"thousandSeparator\"\n [decimalMarker]=\"decimalMarker\"\n [outputTransformFn]=\"outputTransformFn\"\n [onBlur]=\"onBlur\"\n />\n </div>\n <div\n class=\"select-box\"\n [ngClass]=\"{ invalid: valueControl.invalid && valueControl.touched }\"\n [ngStyle]=\"{ width: dropdownWidth }\"\n >\n @if (isSingleOptionSelected) {\n <ads-input\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [id]=\"id\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n />\n } @else {\n <ads-dropdown\n [hasEmptyValue]=\"hasEmptyValue\"\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [id]=\"dropdownId\"\n [options]=\"options\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [displayValueKey]=\"displayValueKey\"\n [fitContent]=\"fitContent\"\n [showFooter]=\"false\"\n [checkSelected]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [showTooltip]=\"showTooltip\"\n [closeOnOutOfView]=\"closeOnOutOfView\"\n [outOfViewRootMargin]=\"outOfViewRootMargin\"\n />\n }\n </div>\n </div>\n <div class=\"footer-container\"\n [class.dynamic]=\"!isStaticFooter\"\n [class.has-content]=\"hasFooterContent()\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}.form-field-wrapper{display:flex;flex-direction:column}.form-field-wrapper .form-controls-wrapper{display:flex;width:100%}.form-field-wrapper .invalid ::ng-deep .mdc-text-field{border-color:var(--mat-form-field-filled-error-label-text-color)}.form-field-wrapper .invalid.text-box ::ng-deep .mdc-text-field{border-right-width:1px}.form-field-wrapper .invalid.select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent}.form-field-wrapper .select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent;border-top-left-radius:0;border-bottom-left-radius:0}.form-field-wrapper .text-box{z-index:1}.form-field-wrapper .text-box ::ng-deep .mdc-text-field{border-top-right-radius:0;border-bottom-right-radius:0}\n", ".footer-container{min-height:20px;overflow:hidden}.footer-container.dynamic{min-height:0;max-height:0;opacity:0;transition:max-height .3s ease-in-out,opacity .2s ease-in-out,min-height .3s ease-in-out}.footer-container.dynamic.has-content{min-height:20px;max-height:100px;opacity:1;transition:max-height .3s ease-in-out,opacity .3s ease-in-out .1s,min-height .3s ease-in-out}::ng-deep .mat-mdc-form-field{--mat-form-field-filled-input-text-placeholder-color: var(--color-medium) !important}::ng-deep .spinner{animation:spin 1s linear infinite;transform-origin:50% 50%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
4018
+ args: [{ selector: 'ads-input-dropdown', standalone: false, template: "<div class=\"form-field-wrapper\" [ngStyle]=\"{ width: width }\">\n <div class=\"form-controls-wrapper\">\n <div\n class=\"text-box\"\n [ngClass]=\"{\n invalid: showValidationError && dropdownControl.invalid && dropdownControl.touched,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: inputWidth }\"\n >\n <ads-input\n [control]=\"valueControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [showValidationError]=\"showValidationError\"\n [maxlength]=\"maxlength\"\n [id]=\"id\"\n [pattern]=\"pattern\"\n [label]=\"label\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [errorMessages]=\"errorMessages\"\n [showExclamationOnError]=\"showExclamationOnError\"\n [showClearButton]=\"showClearButton\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [dropSpecialCharacters]=\"dropSpecialCharacters\"\n [thousandSeparator]=\"thousandSeparator\"\n [decimalMarker]=\"decimalMarker\"\n [outputTransformFn]=\"outputTransformFn\"\n [onBlur]=\"onBlur\"\n />\n </div>\n <div\n class=\"select-box\"\n [ngClass]=\"{ invalid: showValidationError && valueControl.invalid && valueControl.touched }\"\n [ngStyle]=\"{ width: dropdownWidth }\"\n >\n @if (isSingleOptionSelected) {\n <ads-input\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [showValidationError]=\"showValidationError\"\n [id]=\"id\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [showFooter]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [mask]=\"mask\"\n />\n } @else {\n <ads-dropdown\n [hasEmptyValue]=\"hasEmptyValue\"\n [control]=\"dropdownControl\"\n [skipValidationWhenEmpty]=\"skipValidationWhenEmpty\"\n [showValidationError]=\"showValidationError\"\n [id]=\"dropdownId\"\n [options]=\"options\"\n [label]=\"dropdownLabel\"\n [placeholder]=\"dropdownPlaceholder\"\n [immediateValidation]=\"immediateValidation\"\n [displayValueKey]=\"displayValueKey\"\n [fitContent]=\"fitContent\"\n [showFooter]=\"false\"\n [checkSelected]=\"false\"\n [size]=\"size\"\n [successMessage]=\"successMessage\"\n [showTooltip]=\"showTooltip\"\n [closeOnOutOfView]=\"closeOnOutOfView\"\n [outOfViewRootMargin]=\"outOfViewRootMargin\"\n />\n }\n </div>\n </div>\n <div class=\"footer-container\"\n [class.dynamic]=\"!isStaticFooter\"\n [class.has-content]=\"hasFooterContent()\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" [smallSize]=\"smallSize\" [href]=\"tooltipHref\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}.form-field-wrapper{display:flex;flex-direction:column}.form-field-wrapper .form-controls-wrapper{display:flex;width:100%}.form-field-wrapper .invalid ::ng-deep .mdc-text-field{border-color:var(--mat-form-field-filled-error-label-text-color)}.form-field-wrapper .invalid.text-box ::ng-deep .mdc-text-field{border-right-width:1px}.form-field-wrapper .invalid.select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent}.form-field-wrapper .select-box ::ng-deep .mdc-text-field{border-left-width:1px;border-left-color:transparent;border-top-left-radius:0;border-bottom-left-radius:0}.form-field-wrapper .text-box{z-index:1}.form-field-wrapper .text-box ::ng-deep .mdc-text-field{border-top-right-radius:0;border-bottom-right-radius:0}\n", ".footer-container{min-height:20px;overflow:hidden}.footer-container.dynamic{min-height:0;max-height:0;opacity:0;transition:max-height .3s ease-in-out,opacity .2s ease-in-out,min-height .3s ease-in-out}.footer-container.dynamic.has-content{min-height:20px;max-height:100px;opacity:1;transition:max-height .3s ease-in-out,opacity .3s ease-in-out .1s,min-height .3s ease-in-out}::ng-deep .mat-mdc-form-field{--mat-form-field-filled-input-text-placeholder-color: var(--color-medium) !important}::ng-deep .spinner{animation:spin 1s linear infinite;transform-origin:50% 50%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
4019
4019
  }], propDecorators: { maxlength: [{
4020
4020
  type: Input
4021
4021
  }], type: [{
@@ -7555,7 +7555,18 @@ class AdsColumnSortFilterMenuComponent {
7555
7555
  };
7556
7556
  });
7557
7557
  // Apply sort order to filter options (default: ascending)
7558
- if (this.config.filterOptionsSortOrder === 'desc') {
7558
+ const isDateSort = this.config.sortType === 'date';
7559
+ if (isDateSort) {
7560
+ // For date columns, sort by the raw value (ISO string or date-only string)
7561
+ // so that chronological order is preserved regardless of display format (e.g. MM/DD/YYYY).
7562
+ options.sort((a, b) => {
7563
+ const aTime = new Date(String(a.rawValue ?? '')).getTime();
7564
+ const bTime = new Date(String(b.rawValue ?? '')).getTime();
7565
+ const diff = aTime - bTime;
7566
+ return this.config.filterOptionsSortOrder === 'desc' ? -diff : diff;
7567
+ });
7568
+ }
7569
+ else if (this.config.filterOptionsSortOrder === 'desc') {
7559
7570
  options.sort((a, b) => b.label.localeCompare(a.label));
7560
7571
  }
7561
7572
  else {
@@ -7963,8 +7974,19 @@ class AdsFilterMenuComponent {
7963
7974
  const label = formatter ? formatter(rawValue) : String(rawValue ?? '');
7964
7975
  unsortedEntries.push([key, label]);
7965
7976
  });
7966
- // Sort entries by label according to filterOptionsSortOrder (default: ascending)
7967
- if (config.filterOptionsSortOrder === 'desc') {
7977
+ // Sort entries by label according to filterOptionsSortOrder (default: ascending).
7978
+ // For date columns, sort chronologically by the raw ISO key instead of the
7979
+ // formatted MM/DD/YYYY label (which would sort lexicographically and produce wrong order).
7980
+ const isDateSort = config.sortType === 'date';
7981
+ if (isDateSort) {
7982
+ unsortedEntries.sort((a, b) => {
7983
+ const aTime = new Date(a[0]).getTime();
7984
+ const bTime = new Date(b[0]).getTime();
7985
+ const diff = aTime - bTime;
7986
+ return config.filterOptionsSortOrder === 'desc' ? -diff : diff;
7987
+ });
7988
+ }
7989
+ else if (config.filterOptionsSortOrder === 'desc') {
7968
7990
  unsortedEntries.sort((a, b) => b[1].localeCompare(a[1]));
7969
7991
  }
7970
7992
  else {