@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
|
-
|
|
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
|
-
|
|
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 {
|