@fundamental-ngx/core 0.43.9 → 0.43.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/date-picker/date-picker.component.d.ts +2 -0
- package/datetime-picker/datetime-picker.component.d.ts +2 -0
- package/dialog/base/dialog-base.service.d.ts +4 -3
- package/dialog/dialog-container/dialog-container.component.d.ts +12 -11
- package/dialog/index.d.ts +11 -10
- package/dialog/utils/dialog-container.model.d.ts +4 -0
- package/esm2020/busy-indicator/busy-indicator.component.mjs +3 -3
- package/esm2020/date-picker/date-picker.component.mjs +8 -8
- package/esm2020/datetime-picker/datetime-picker.component.mjs +8 -7
- package/esm2020/dialog/base/dialog-base.service.mjs +8 -3
- package/esm2020/dialog/dialog-container/dialog-container.component.mjs +23 -23
- package/esm2020/dialog/index.mjs +12 -11
- package/esm2020/dialog/utils/dialog-container.model.mjs +2 -0
- package/esm2020/form/form-message/popover-form-message.service.mjs +2 -12
- package/esm2020/message-box/message-box-container/message-box-container.component.mjs +23 -24
- package/esm2020/multi-input/multi-input.component.mjs +76 -56
- package/esm2020/multi-input/multi-input.module.mjs +17 -14
- package/esm2020/multi-input/pair-selection.model.mjs +38 -0
- package/esm2020/popover/popover-body/popover-body.component.mjs +3 -3
- package/esm2020/popover/popover-service/popover.service.mjs +9 -2
- package/esm2020/time-picker/time-picker.component.mjs +19 -20
- package/esm2020/token/token.component.mjs +4 -3
- package/esm2020/token/tokenizer.component.mjs +32 -13
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-date-picker.mjs +6 -6
- package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +6 -6
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dialog.mjs +189 -184
- package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-form.mjs +1 -10
- package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-message-box.mjs +20 -20
- package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +158 -100
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-popover.mjs +10 -3
- package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-time-picker.mjs +14 -16
- package/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-token.mjs +29 -9
- package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-date-picker.mjs +6 -6
- package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +6 -5
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dialog.mjs +188 -183
- package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-form.mjs +1 -10
- package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-message-box.mjs +20 -20
- package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +158 -98
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-popover.mjs +10 -3
- package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-time-picker.mjs +15 -16
- package/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-token.mjs +29 -9
- package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
- package/form/form-message/popover-form-message.service.d.ts +3 -7
- package/fundamental-ngx-core-v0.43.11.tgz +0 -0
- package/message-box/message-box-container/message-box-container.component.d.ts +12 -13
- package/multi-input/multi-input.component.d.ts +30 -21
- package/multi-input/multi-input.module.d.ts +2 -1
- package/multi-input/pair-selection.model.d.ts +19 -0
- package/package.json +3 -3
- package/popover/popover-service/popover.service.d.ts +1 -1
- package/schematics/add-dependencies/index.js +4 -4
- package/time-picker/time-picker.component.d.ts +17 -15
- package/token/tokenizer.component.d.ts +10 -2
- package/fundamental-ngx-core-v0.43.9.tgz +0 -0
|
@@ -39,7 +39,7 @@ BusyIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
39
39
|
provide: FD_BUSY_INDICATOR_COMPONENT,
|
|
40
40
|
useExisting: BusyIndicatorComponent
|
|
41
41
|
}
|
|
42
|
-
], viewQueries: [{ propertyName: "fakeFocusElement", first: true, predicate: ["fakeFocusElement"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-container *ngIf=\"loading\">\n <div\n #busyIndicator\n class=\"fd-busy-indicator\"\n [class.fd-busy-indicator--l]=\"size === 'l'\"\n [class.fd-busy-indicator--m]=\"size === 'm'\"\n [class.fd-busy-indicator--s]=\"size === 's'\"\n
|
|
42
|
+
], viewQueries: [{ propertyName: "fakeFocusElement", first: true, predicate: ["fakeFocusElement"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-container *ngIf=\"loading\">\n <div\n #busyIndicator\n class=\"fd-busy-indicator\"\n [class.fd-busy-indicator--l]=\"size === 'l'\"\n [class.fd-busy-indicator--m]=\"size === 'm'\"\n [class.fd-busy-indicator--s]=\"size === 's'\"\n >\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n </div>\n\n <span *ngIf=\"label\" class=\"fd-busy-indicator-extended__label\">{{ label }}</span>\n\n <div class=\"fd-busy-indicator__overlay\"></div>\n\n <div #fakeFocusElement tabindex=\"0\" aria-hidden=\"true\" (focusin)=\"fakeElementFocusHandler($event)\"></div>\n</ng-container>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-busy-indicator{--Dot_Color:var(--fdBusy_Indicator_Dot_Color);--Dot_Size:.5rem;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:0;font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative;text-align:center}.fd-busy-indicator--contrast{--Dot_Color:var(--fdBusy_Indicator_Dot_Contrast_Color)}.fd-busy-indicator--m{--Dot_Size:1rem}.fd-busy-indicator--l{--Dot_Size:2rem}.fd-busy-indicator:after,.fd-busy-indicator:before{box-sizing:inherit;font-size:inherit}.fd-busy-indicator-extended{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:flex;flex-direction:column;justify-content:center}.fd-busy-indicator-extended.fd-busy-indicator-extended--message-toast{-webkit-box-shadow:var(--sapContent_Shadow2);background-color:var(--sapPageFooter_Background);box-shadow:var(--sapContent_Shadow2);max-width:23.125rem;text-shadow:var(--sapContent_TextShadow);width:23.125rem}.fd-busy-indicator-extended__label{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:1rem 0 0;padding:0;text-align:center}.fd-busy-indicator-extended__label:after,.fd-busy-indicator-extended__label:before{box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle{-webkit-box-sizing:border-box;animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;background-color:currentColor;border:0;border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--Dot_Size);line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative;width:var(--Dot_Size)}.fd-busy-indicator__circle:after,.fd-busy-indicator__circle:before{box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle:nth-child(2){animation-delay:.2s}.fd-busy-indicator__circle:nth-child(3){animation-delay:.4s}@keyframes grow{0%,50%,to{transform:scale(.5)}25%{transform:scale(1)}}*+.fd-busy-indicator,*+.fd-busy-indicator+.fd-busy-indicator-extended__label{white-space:nowrap;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}*+.fd-busy-indicator+.fd-busy-indicator-extended__label{z-index:2;transform:translate(-50%,50%)!important}.fd-busy-indicator:first-child~.fd-busy-indicator__overlay{background-color:transparent}.fd-busy-indicator{z-index:2}.fd-busy-indicator__container{display:block;position:relative}.fd-busy-indicator__container:focus{outline-width:var(--sapContent_FocusWidth, .0625rem);outline-color:var(--sapContent_FocusColor, #000);outline-style:var(--sapContent_FocusStyle, dotted)}.fd-busy-indicator__container[tabindex=\"-1\"]{outline:none}.fd-busy-indicator__container--inline{display:inline-block}.fd-busy-indicator__overlay{position:absolute;inset:0;z-index:1;background-color:var(--sapBaseColor);opacity:.72}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
43
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BusyIndicatorComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{ selector: 'fd-busy-indicator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -56,7 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
56
56
|
'[attr.title]': 'title',
|
|
57
57
|
'[class.fd-busy-indicator__container]': 'true',
|
|
58
58
|
'[class.fd-busy-indicator__container--inline]': '!block'
|
|
59
|
-
}, template: "<ng-content></ng-content>\n\n<ng-container *ngIf=\"loading\">\n <div\n #busyIndicator\n class=\"fd-busy-indicator\"\n [class.fd-busy-indicator--l]=\"size === 'l'\"\n [class.fd-busy-indicator--m]=\"size === 'm'\"\n [class.fd-busy-indicator--s]=\"size === 's'\"\n
|
|
59
|
+
}, template: "<ng-content></ng-content>\n\n<ng-container *ngIf=\"loading\">\n <div\n #busyIndicator\n class=\"fd-busy-indicator\"\n [class.fd-busy-indicator--l]=\"size === 'l'\"\n [class.fd-busy-indicator--m]=\"size === 'm'\"\n [class.fd-busy-indicator--s]=\"size === 's'\"\n >\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n </div>\n\n <span *ngIf=\"label\" class=\"fd-busy-indicator-extended__label\">{{ label }}</span>\n\n <div class=\"fd-busy-indicator__overlay\"></div>\n\n <div #fakeFocusElement tabindex=\"0\" aria-hidden=\"true\" (focusin)=\"fakeElementFocusHandler($event)\"></div>\n</ng-container>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-busy-indicator{--Dot_Color:var(--fdBusy_Indicator_Dot_Color);--Dot_Size:.5rem;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:0;font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative;text-align:center}.fd-busy-indicator--contrast{--Dot_Color:var(--fdBusy_Indicator_Dot_Contrast_Color)}.fd-busy-indicator--m{--Dot_Size:1rem}.fd-busy-indicator--l{--Dot_Size:2rem}.fd-busy-indicator:after,.fd-busy-indicator:before{box-sizing:inherit;font-size:inherit}.fd-busy-indicator-extended{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:flex;flex-direction:column;justify-content:center}.fd-busy-indicator-extended.fd-busy-indicator-extended--message-toast{-webkit-box-shadow:var(--sapContent_Shadow2);background-color:var(--sapPageFooter_Background);box-shadow:var(--sapContent_Shadow2);max-width:23.125rem;text-shadow:var(--sapContent_TextShadow);width:23.125rem}.fd-busy-indicator-extended__label{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:1rem 0 0;padding:0;text-align:center}.fd-busy-indicator-extended__label:after,.fd-busy-indicator-extended__label:before{box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle{-webkit-box-sizing:border-box;animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;background-color:currentColor;border:0;border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);color:var(--Dot_Color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--Dot_Size);line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative;width:var(--Dot_Size)}.fd-busy-indicator__circle:after,.fd-busy-indicator__circle:before{box-sizing:inherit;font-size:inherit}.fd-busy-indicator__circle:nth-child(2){animation-delay:.2s}.fd-busy-indicator__circle:nth-child(3){animation-delay:.4s}@keyframes grow{0%,50%,to{transform:scale(.5)}25%{transform:scale(1)}}*+.fd-busy-indicator,*+.fd-busy-indicator+.fd-busy-indicator-extended__label{white-space:nowrap;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}*+.fd-busy-indicator+.fd-busy-indicator-extended__label{z-index:2;transform:translate(-50%,50%)!important}.fd-busy-indicator:first-child~.fd-busy-indicator__overlay{background-color:transparent}.fd-busy-indicator{z-index:2}.fd-busy-indicator__container{display:block;position:relative}.fd-busy-indicator__container:focus{outline-width:var(--sapContent_FocusWidth, .0625rem);outline-color:var(--sapContent_FocusColor, #000);outline-style:var(--sapContent_FocusStyle, dotted)}.fd-busy-indicator__container[tabindex=\"-1\"]{outline:none}.fd-busy-indicator__container--inline{display:inline-block}.fd-busy-indicator__overlay{position:absolute;inset:0;z-index:1;background-color:var(--sapBaseColor);opacity:.72}\n"] }]
|
|
60
60
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { loading: [{
|
|
61
61
|
type: Input
|
|
62
62
|
}], size: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-busy-indicator.mjs","sources":["../../../../libs/core/src/lib/busy-indicator/tokens.ts","../../../../libs/core/src/lib/busy-indicator/busy-indicator.component.ts","../../../../libs/core/src/lib/busy-indicator/busy-indicator.component.html","../../../../libs/core/src/lib/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.ts","../../../../libs/core/src/lib/busy-indicator/busy-indicator.module.ts","../../../../libs/core/src/lib/busy-indicator/fundamental-ngx-core-busy-indicator.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_BUSY_INDICATOR_COMPONENT = new InjectionToken('FdBusyIndicatorComponent');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { TAB } from '@angular/cdk/keycodes';\nimport { FD_BUSY_INDICATOR_COMPONENT } from './tokens';\n\nexport type BusyIndicatorSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'fd-busy-indicator',\n templateUrl: './busy-indicator.component.html',\n styleUrls: ['./busy-indicator.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_BUSY_INDICATOR_COMPONENT,\n useExisting: BusyIndicatorComponent\n }\n ],\n host: {\n '[attr.role]': \"loading ? 'progressbar' : 'presentation'\",\n '[attr.tabindex]': 'loading ? 0 : -1',\n '[attr.aria-busy]': 'loading',\n '[attr.aria-live]': 'ariaLive',\n '[attr.aria-label]': 'ariaLabel',\n '[attr.title]': 'title',\n '[class.fd-busy-indicator__container]': 'true',\n '[class.fd-busy-indicator__container--inline]': '!block'\n }\n})\nexport class BusyIndicatorComponent {\n /** Whether to display the loading indicator animation. */\n @Input()\n loading: boolean;\n\n /** The size of the loading indicator, default will be medium */\n @Input()\n size: BusyIndicatorSize = 'm';\n\n /** Whether to use loader as block element */\n @Input()\n block = false;\n\n /** Aria label attribute value. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** title attribute value for tooltip. */\n @Input()\n title: string;\n\n /** add loading label value */\n @Input()\n label: string;\n\n /** Aria live attribute value. */\n @Input()\n ariaLive: Nullable<'assertive' | 'polite' | 'off'> = 'polite';\n\n /** @hidden */\n @ViewChild('fakeFocusElement')\n fakeFocusElement: ElementRef;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden If focus escapes busy container focus element after wrapped content */\n @HostListener('keydown', ['$event'])\n hostFocusChangeHandler(event: KeyboardEvent): void {\n if (this.loading && KeyUtil.isKeyCode(event, TAB) && !event.shiftKey) {\n this.fakeFocusElement.nativeElement.focus();\n }\n }\n\n /** @hidden If busy container is navigated as \"previous focusable element\",\n * focus busy indicator to prevent from focusing wrapped content */\n fakeElementFocusHandler(event: FocusEvent): void {\n if (this.loading && event.relatedTarget !== this._elementRef.nativeElement) {\n event.stopPropagation();\n this._elementRef.nativeElement.focus();\n }\n }\n}\n","<ng-content></ng-content>\n\n<ng-container *ngIf=\"loading\">\n <div\n #busyIndicator\n class=\"fd-busy-indicator\"\n [class.fd-busy-indicator--l]=\"size === 'l'\"\n [class.fd-busy-indicator--m]=\"size === 'm'\"\n [class.fd-busy-indicator--s]=\"size === 's'\"\n [class.fd-busy-indicator--absolute]=\"busyIndicator?.previousElementSibling\"\n >\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n </div>\n\n <span *ngIf=\"label\" class=\"fd-busy-indicator-extended__label\">{{ label }}</span>\n\n <div\n class=\"fd-busy-indicator__overlay\"\n [class.fd-busy-indicator__overlay--transparent]=\"!busyIndicator?.previousElementSibling\"\n ></div>\n\n <div #fakeFocusElement tabindex=\"0\" aria-hidden=\"true\" (focusin)=\"fakeElementFocusHandler($event)\"></div>\n</ng-container>\n","import { AfterContentInit, ContentChild, Directive, ElementRef } from '@angular/core';\nimport { BusyIndicatorComponent } from '../busy-indicator.component';\nimport { FD_BUSY_INDICATOR_COMPONENT } from '../tokens';\n\nconst messageToastClass = 'fd-message-toast';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-busy-indicator-extended]'\n})\nexport class BusyIndicatorExtendedDirective implements AfterContentInit {\n /** @hidden */\n @ContentChild(FD_BUSY_INDICATOR_COMPONENT)\n busyIndicator: BusyIndicatorComponent;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._appendCssToParent();\n }\n\n /** @hidden */\n private _appendCssToParent(): void {\n const hasLabel = this.busyIndicator.label;\n if (!hasLabel) {\n return;\n }\n const classList = this.elementRef.nativeElement.parentElement?.classList;\n if (classList) {\n classList.add('fd-busy-indicator-extended');\n if (classList.contains(messageToastClass)) {\n classList.add('fd-busy-indicator-extended--message-toast');\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BusyIndicatorComponent } from './busy-indicator.component';\nimport { BusyIndicatorExtendedDirective } from './busy-indicator-extended/busy-indicator-extended.directive';\n\n@NgModule({\n declarations: [BusyIndicatorComponent, BusyIndicatorExtendedDirective],\n exports: [BusyIndicatorComponent, BusyIndicatorExtendedDirective],\n imports: [CommonModule]\n})\nexport class BusyIndicatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-busy-indicator.mjs","sources":["../../../../libs/core/src/lib/busy-indicator/tokens.ts","../../../../libs/core/src/lib/busy-indicator/busy-indicator.component.ts","../../../../libs/core/src/lib/busy-indicator/busy-indicator.component.html","../../../../libs/core/src/lib/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.ts","../../../../libs/core/src/lib/busy-indicator/busy-indicator.module.ts","../../../../libs/core/src/lib/busy-indicator/fundamental-ngx-core-busy-indicator.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_BUSY_INDICATOR_COMPONENT = new InjectionToken('FdBusyIndicatorComponent');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { TAB } from '@angular/cdk/keycodes';\nimport { FD_BUSY_INDICATOR_COMPONENT } from './tokens';\n\nexport type BusyIndicatorSize = 's' | 'm' | 'l';\n\n@Component({\n selector: 'fd-busy-indicator',\n templateUrl: './busy-indicator.component.html',\n styleUrls: ['./busy-indicator.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_BUSY_INDICATOR_COMPONENT,\n useExisting: BusyIndicatorComponent\n }\n ],\n host: {\n '[attr.role]': \"loading ? 'progressbar' : 'presentation'\",\n '[attr.tabindex]': 'loading ? 0 : -1',\n '[attr.aria-busy]': 'loading',\n '[attr.aria-live]': 'ariaLive',\n '[attr.aria-label]': 'ariaLabel',\n '[attr.title]': 'title',\n '[class.fd-busy-indicator__container]': 'true',\n '[class.fd-busy-indicator__container--inline]': '!block'\n }\n})\nexport class BusyIndicatorComponent {\n /** Whether to display the loading indicator animation. */\n @Input()\n loading: boolean;\n\n /** The size of the loading indicator, default will be medium */\n @Input()\n size: BusyIndicatorSize = 'm';\n\n /** Whether to use loader as block element */\n @Input()\n block = false;\n\n /** Aria label attribute value. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** title attribute value for tooltip. */\n @Input()\n title: string;\n\n /** add loading label value */\n @Input()\n label: string;\n\n /** Aria live attribute value. */\n @Input()\n ariaLive: Nullable<'assertive' | 'polite' | 'off'> = 'polite';\n\n /** @hidden */\n @ViewChild('fakeFocusElement')\n fakeFocusElement: ElementRef;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden If focus escapes busy container focus element after wrapped content */\n @HostListener('keydown', ['$event'])\n hostFocusChangeHandler(event: KeyboardEvent): void {\n if (this.loading && KeyUtil.isKeyCode(event, TAB) && !event.shiftKey) {\n this.fakeFocusElement.nativeElement.focus();\n }\n }\n\n /** @hidden If busy container is navigated as \"previous focusable element\",\n * focus busy indicator to prevent from focusing wrapped content */\n fakeElementFocusHandler(event: FocusEvent): void {\n if (this.loading && event.relatedTarget !== this._elementRef.nativeElement) {\n event.stopPropagation();\n this._elementRef.nativeElement.focus();\n }\n }\n}\n","<ng-content></ng-content>\n\n<ng-container *ngIf=\"loading\">\n <div\n #busyIndicator\n class=\"fd-busy-indicator\"\n [class.fd-busy-indicator--l]=\"size === 'l'\"\n [class.fd-busy-indicator--m]=\"size === 'm'\"\n [class.fd-busy-indicator--s]=\"size === 's'\"\n >\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n <div class=\"fd-busy-indicator__circle\"></div>\n </div>\n\n <span *ngIf=\"label\" class=\"fd-busy-indicator-extended__label\">{{ label }}</span>\n\n <div class=\"fd-busy-indicator__overlay\"></div>\n\n <div #fakeFocusElement tabindex=\"0\" aria-hidden=\"true\" (focusin)=\"fakeElementFocusHandler($event)\"></div>\n</ng-container>\n","import { AfterContentInit, ContentChild, Directive, ElementRef } from '@angular/core';\nimport { BusyIndicatorComponent } from '../busy-indicator.component';\nimport { FD_BUSY_INDICATOR_COMPONENT } from '../tokens';\n\nconst messageToastClass = 'fd-message-toast';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-busy-indicator-extended]'\n})\nexport class BusyIndicatorExtendedDirective implements AfterContentInit {\n /** @hidden */\n @ContentChild(FD_BUSY_INDICATOR_COMPONENT)\n busyIndicator: BusyIndicatorComponent;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._appendCssToParent();\n }\n\n /** @hidden */\n private _appendCssToParent(): void {\n const hasLabel = this.busyIndicator.label;\n if (!hasLabel) {\n return;\n }\n const classList = this.elementRef.nativeElement.parentElement?.classList;\n if (classList) {\n classList.add('fd-busy-indicator-extended');\n if (classList.contains(messageToastClass)) {\n classList.add('fd-busy-indicator-extended--message-toast');\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BusyIndicatorComponent } from './busy-indicator.component';\nimport { BusyIndicatorExtendedDirective } from './busy-indicator-extended/busy-indicator-extended.directive';\n\n@NgModule({\n declarations: [BusyIndicatorComponent, BusyIndicatorExtendedDirective],\n exports: [BusyIndicatorComponent, BusyIndicatorExtendedDirective],\n imports: [CommonModule]\n})\nexport class BusyIndicatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,6 @@ class DatePickerComponent {
|
|
|
48
48
|
/** Text displayed in message */
|
|
49
49
|
set message(message) {
|
|
50
50
|
this._message = message;
|
|
51
|
-
this._popoverFormMessage.message = message;
|
|
52
51
|
}
|
|
53
52
|
/** The trigger events that will open/close the message box.
|
|
54
53
|
* Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */
|
|
@@ -63,7 +62,6 @@ class DatePickerComponent {
|
|
|
63
62
|
*/
|
|
64
63
|
set state(state) {
|
|
65
64
|
this._state = state || 'default';
|
|
66
|
-
this._popoverFormMessage.messageType = state || 'default';
|
|
67
65
|
}
|
|
68
66
|
/** @hidden */
|
|
69
67
|
get state() {
|
|
@@ -612,9 +610,8 @@ class DatePickerComponent {
|
|
|
612
610
|
/** @hidden */
|
|
613
611
|
_InitialiseVariablesInMessageService() {
|
|
614
612
|
this._popoverFormMessage.init(this._inputGroupElement);
|
|
615
|
-
this._popoverFormMessage.message = this._message || '';
|
|
616
613
|
this._popoverFormMessage.triggers = this._messageTriggers;
|
|
617
|
-
this._popoverFormMessage.
|
|
614
|
+
this._popoverFormMessage.message = this._messagePopoverTemplate;
|
|
618
615
|
}
|
|
619
616
|
/** @hidden */
|
|
620
617
|
_setOpenState(isOpen) {
|
|
@@ -640,7 +637,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
640
637
|
registerFormItemControl(DatePickerComponent),
|
|
641
638
|
PopoverFormMessageService,
|
|
642
639
|
PopoverService
|
|
643
|
-
], viewQueries: [{ propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }, { propertyName: "_calendars", predicate: CalendarComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <
|
|
640
|
+
], viewQueries: [{ propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }, { propertyName: "_messagePopoverTemplate", first: true, predicate: ["popoverMessageTemplate"], descendants: true }, { propertyName: "_calendars", predicate: CalendarComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <ng-template [ngTemplateOutlet]=\"popoverMessageTemplate\"></ng-template>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n\n<ng-template #popoverMessageTemplate>\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n</ng-template>\n", styles: [".fd-date-picker-custom{display:inline-block}.fd-date-picker-custom fd-popover{display:block}.fd-date-picker-custom fd-calendar{border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i5.CalendarComponent, selector: "fd-calendar", inputs: ["selectedDate", "markWeekends", "showWeekNumbers", "mobileLandscape", "mobilePortrait", "selectedRangeDate", "activeView", "startingDayOfWeek", "calType", "id", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "rangeHoverEffect", "previousButtonDisableFunction", "nextButtonDisableFunction", "escapeFocusFunction", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["activeViewChange", "selectedDateChange", "selectedRangeDateChange", "isValidDateChange", "closeCalendar", "closeClicked"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i7.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i9.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i9.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i9.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
644
641
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
645
642
|
type: Component,
|
|
646
643
|
args: [{ selector: 'fd-date-picker', host: {
|
|
@@ -661,7 +658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
661
658
|
registerFormItemControl(DatePickerComponent),
|
|
662
659
|
PopoverFormMessageService,
|
|
663
660
|
PopoverService
|
|
664
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <
|
|
661
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <ng-template [ngTemplateOutlet]=\"popoverMessageTemplate\"></ng-template>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n\n<ng-template #popoverMessageTemplate>\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n</ng-template>\n", styles: [".fd-date-picker-custom{display:inline-block}.fd-date-picker-custom fd-popover{display:block}.fd-date-picker-custom fd-calendar{border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem)}\n"] }]
|
|
665
662
|
}], ctorParameters: function () {
|
|
666
663
|
return [{ type: i0.ChangeDetectorRef }, { type: i1.DatetimeAdapter, decorators: [{
|
|
667
664
|
type: Optional
|
|
@@ -768,6 +765,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
768
765
|
}], _inputElement: [{
|
|
769
766
|
type: ViewChild,
|
|
770
767
|
args: [InputGroupInputDirective, { read: ElementRef }]
|
|
768
|
+
}], _messagePopoverTemplate: [{
|
|
769
|
+
type: ViewChild,
|
|
770
|
+
args: ['popoverMessageTemplate']
|
|
771
771
|
}], disableFunction: [{
|
|
772
772
|
type: Input
|
|
773
773
|
}], disableRangeStartFunction: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-date-picker.mjs","sources":["../../../../libs/core/src/lib/date-picker/errors.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.html","../../../../libs/core/src/lib/date-picker/deprecated-date-picker-compact.directive.ts","../../../../libs/core/src/lib/date-picker/date-picker.module.ts","../../../../libs/core/src/lib/date-picker/fundamental-ngx-core-date-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdDatePicker: No provider found for ${provider}. You must import one of the following ` +\n `modules at your application root: FdDatetimeModule, or provide a ` +\n `custom implementation.`\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';\nimport {\n CalendarComponent,\n CalendarType,\n CalendarYearGrid,\n DateRange,\n DaysOfWeek,\n FdCalendarView,\n NavigationButtonDisableFunction\n} from '@fundamental-ngx/core/calendar';\nimport { DATE_TIME_FORMATS, DatetimeAdapter, DateTimeFormats } from '@fundamental-ngx/core/datetime';\nimport { FormItemControl, PopoverFormMessageService, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nlet datePickerCounter = 0;\n\n/**\n * The datetime picker component is an opinionated composition of the fd-popover and\n * fd-calendar components to accomplish the UI pattern for picking a date.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-date-picker [(ngModel)]=\"date\"></fd-date-picker>\n * ```\n *\n */\n@Component({\n selector: 'fd-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n '[class.fd-date-picker]': 'true',\n '[class.fd-date-picker-custom]': 'inline'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n registerFormItemControl(DatePickerComponent),\n PopoverFormMessageService,\n PopoverService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatePickerComponent<D>\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator, FormItemControl\n{\n /** The type of calendar, 'single' for single date selection or 'range' for a range of dates. */\n @Input()\n type: CalendarType = 'single';\n\n /** Date picker input placeholder string */\n @Input()\n placeholder = '';\n\n /** ID attribute for input element inside DatePicker component */\n @Input()\n inputId: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n this._popoverFormMessage.message = message;\n }\n\n /** @hidden */\n _message: string | null = null;\n\n /** The trigger events that will open/close the message box.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /** The currently selected CalendarDay model */\n @Input()\n selectedDate: Nullable<D>;\n\n /** The currently selected FdDates model start and end in range mode. */\n @Input()\n selectedRangeDate: DateRange<D> = { start: null, end: null };\n\n /** The day of the week the calendar should start on. 1 represents Sunday, 2 is Monday, 3 is Tuesday, and so on. */\n @Input()\n startingDayOfWeek: DaysOfWeek;\n\n /**\n * Whether user wants to mark day cells on hover.\n * Works only on range mode, when start date is selected on Day View.\n */\n @Input()\n rangeHoverEffect = false;\n\n /** Whether to validate the date picker input. */\n @Input()\n useValidation = true;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateRangeInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the button to show/hide the calendar.\n */\n @Input()\n displayCalendarToggleLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"success\" aria message.\n */\n @Input()\n valueStateSuccessMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"information\" aria message.\n */\n @Input()\n valueStateInformationMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"warning\" aria message.\n */\n @Input()\n valueStateWarningMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"error\" aria message.\n */\n @Input()\n valueStateErrorMessage: string;\n\n /** Whether a null input is considered valid. */\n @Input()\n allowNull = true;\n\n /** Actually shown active view one of 'day' | 'month' | 'year' in calendar component*/\n @Input()\n activeView: FdCalendarView = 'day';\n\n /**\n * The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n * bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end.\n */\n @Input()\n placement: Placement = 'bottom-start';\n\n /** The element to which the popover should be appended. */\n @Input()\n appendTo: ElementRef;\n\n /** Whether the date picker is disabled. */\n @Input()\n disabled: boolean;\n\n /** Defines if date picker should be closed after date choose */\n @Input()\n closeOnDateChoose = true;\n\n /** Enables Today-Selection-Button if true */\n @Input()\n showTodayButton = false;\n\n /** Label for Today-Selection-Button */\n @Input()\n todayButtonLabel = 'Today';\n\n /**\n * Function used to disable previous button in the calendar header.\n */\n @Input()\n previousButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * Function used to disable next button in the calendar header.\n */\n @Input()\n nextButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * The state of the form control - applies css classes.\n * Also, this is applied to message.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n set state(state: Nullable<FormStates>) {\n this._state = state || 'default';\n this._popoverFormMessage.messageType = state || 'default';\n }\n\n /** @hidden */\n get state(): FormStates {\n if (this._state == null && this.useValidation && this._isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n\n /** @hidden */\n private _state: FormStates = 'default';\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * Special days mark, it can be used by passing array of object with\n * Special day number, list 1-20 [class:`fd-calendar__special-day--{{number}}`] is available there:\n * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section\n * Rule accepts method with FdDate object as a parameter. ex:\n * `rule: (fdDate: FdDate) => fdDate.getDay() === 1`, which will mark all sundays as special day.\n */\n @Input()\n specialDaysRules: SpecialDayRule<D>[] = [];\n\n /**\n * Object to customize year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n yearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 5\n };\n\n /**\n * Object to customize aggregated year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n aggregatedYearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 3\n };\n\n /**\n * Whether user wants to mark sunday/saturday with `fd-calendar__item--weekend` class\n */\n @Input()\n markWeekends = true;\n\n /**\n * Whether user wants to show week numbers next to days\n */\n @Input()\n showWeekNumbers = true;\n\n /** Whether the date picker is open. Can be used through two-way binding. */\n @Input()\n set isOpen(value: boolean) {\n if (value === this._isOpen) {\n return;\n }\n this._isOpen = value;\n this._showPopoverContents = value;\n this._changeDetectionRef.detectChanges();\n }\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n /** @hidden */\n private _isOpen = false;\n\n /** Should date picker be inlined. */\n @Input()\n inline = true;\n\n /** aria-labelledby for element describing date-picker. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /**\n * Whether to recalculate value from the input as user types or on blur.\n * By default, updates the value as user types.\n * @default false\n */\n @Input()\n set processInputOnBlur(v: boolean) {\n this._processInputOnBlur = coerceBooleanProperty(v);\n }\n\n get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /**\n * Whether to prevent page scrolling when focusing date picker input field after calendar has been closed.\n */\n @Input()\n preventScrollOnFocus = false;\n\n /** @hidden */\n _processInputOnBlur = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n readonly isOpenChange = new EventEmitter<boolean>();\n\n /** Fired when a new date is selected. */\n @Output()\n readonly selectedDateChange = new EventEmitter<Nullable<D>>();\n\n /** Event thrown every time selected first or last date in range mode is changed */\n @Output()\n readonly selectedRangeDateChange = new EventEmitter<DateRange<D>>();\n\n /** Event thrown every time calendar active view is changed */\n @Output()\n readonly activeViewChange = new EventEmitter<FdCalendarView>();\n\n /** @hideen */\n @ViewChildren(CalendarComponent)\n private readonly _calendars: QueryList<CalendarComponent<D>>;\n\n /** @hidden */\n _calendarComponent: CalendarComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden The value of the input */\n _inputFieldDate: string | null = null;\n\n /** @hidden Whether the date input is invalid */\n _isInvalidDateInput = false;\n\n /** @hidden */\n _showPopoverContents = false;\n\n /** @hidden */\n readonly _formValueStateMessageId = `fd-date-picker-form-message-${datePickerCounter++}`;\n\n /** @hidden */\n private _calendarPendingDate: Nullable<D>;\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * Function used to disable certain dates in the calendar.\n * @param date date representation\n */\n @Input()\n disableFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range start selection.\n * @param date date representation\n */\n @Input()\n disableRangeStartFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range end selection.\n * @param date date representation\n */\n @Input()\n disableRangeEndFunction: (value: D) => boolean = () => false;\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched: any = () => {};\n\n /** @hidden */\n get _rangeDelimiter(): string {\n return this._dateTimeFormats.rangeDelimiter;\n }\n\n /**\n * Date input aria label based on type\n * @hidden\n */\n get _dateInputArialLabel(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? this.dateRangeInputLabel : this.dateInputLabel;\n }\n\n /**\n * Date input aria label key based on type\n * @hidden\n */\n get _dateInputArialLabelKey(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? 'coreDatePicker.dateRangeInputLabel' : 'coreDatePicker.dateInputLabel';\n }\n\n /** @hidden */\n constructor(\n private _changeDetectionRef: ChangeDetectorRef,\n // Use @Optional to avoid angular injection error message and throw our own which is more precise one\n @Optional() private _dateTimeAdapter: DatetimeAdapter<D>,\n @Optional() @Inject(DATE_TIME_FORMATS) private _dateTimeFormats: DateTimeFormats,\n private _popoverFormMessage: PopoverFormMessageService\n ) {\n if (!this._dateTimeAdapter) {\n throw createMissingDateImplementationError('DateTimeAdapter');\n }\n if (!this._dateTimeFormats) {\n throw createMissingDateImplementationError('DATE_TIME_FORMATS');\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._dateTimeAdapter.localeChanges.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\n this.formatInputDate(this.selectedDate);\n this._changeDetectionRef.detectChanges();\n });\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('isOpen' in changes) {\n this._showPopoverContents = this.isOpen;\n this._changeDetectionRef.detectChanges();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._InitialiseVariablesInMessageService();\n\n this._calendars.changes.pipe(startWith(null), takeUntil(this._onDestroy$)).subscribe(() => {\n const calendar = this._calendars.first;\n this._calendarComponent = calendar;\n setTimeout(() => {\n calendar?.setCurrentlyDisplayed(this._calendarPendingDate);\n calendar?.initialFocus();\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Method that handle calendar active view change and throws event.\n */\n public handleCalendarActiveViewChange(activeView: FdCalendarView): void {\n this.activeViewChange.emit(activeView);\n }\n\n /** @hidden */\n public closeFromCalendar(): void {\n if (this.type === 'single' && this.closeOnDateChoose) {\n this.onTouched();\n this.closeCalendar();\n }\n }\n\n /** Opens the calendar */\n openCalendar(): void {\n if (!this.disabled) {\n this._setOpenState(true);\n this._changeMessageVisibility();\n }\n }\n\n /** Toggles the calendar open or closed */\n public toggleCalendar(): void {\n this._setOpenState(!this.isOpen);\n if (!this.isOpen) {\n this.onTouched();\n }\n this._changeMessageVisibility();\n }\n\n /** Closes the calendar if it is open */\n public closeCalendar(): void {\n if (this.isOpen) {\n this._setOpenState(false);\n this._changeMessageVisibility();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected single date changed\n */\n public handleSingleDateChange(date: D): void {\n if (date) {\n this.selectedDate = date;\n this.selectedDateChange.emit(date);\n this.onChange(date);\n this.formatInputDate(date);\n this._isInvalidDateInput = !this.isModelValid();\n if (this.closeOnDateChoose && this.type === 'single') {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered date formatting in the date control\n */\n public formatInputDate(date: Nullable<D>): void {\n if (date) {\n this._inputFieldDate = this._formatDate(date);\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected range date changed\n */\n public handleRangeDateChange(dates: DateRange<D>): void {\n const startChanged = !this._dateTimeAdapter.datesEqual(dates.start, this.selectedRangeDate.start);\n const endChanged = !this._dateTimeAdapter.datesEqual(dates.end, this.selectedRangeDate.end);\n if (dates && (startChanged || endChanged)) {\n const shouldClose = this.closeOnDateChoose && dates.end !== null;\n this._inputFieldDate = this._formatDateRange(dates);\n this.selectedRangeDate = { start: dates.start, end: dates.end };\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n this._isInvalidDateInput = !this.isModelValid();\n if (shouldClose) {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when Today-Selection-Button clicked, it changes selected date or date range to today's date\n */\n onTodayButtonClick(): void {\n const todayDate = this._dateTimeAdapter.today();\n if (this.type === 'single') {\n this.handleSingleDateChange(todayDate);\n this.closeFromCalendar();\n } else if (this.type === 'range') {\n this.handleRangeDateChange({ start: todayDate, end: todayDate });\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when the text input is confirmed to ba changed, by clicking enter, or blur\n */\n public handleInputChange(strDate: string, isTypeEvent: boolean): void {\n if ((isTypeEvent && this.processInputOnBlur) || (!isTypeEvent && !this.processInputOnBlur)) {\n // if processInputOnBlur === true, ignore type event\n // if processInputOnBlur === false, ignore blur/enter event\n return;\n }\n this.dateStringUpdate(strDate);\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } | null {\n return this.isModelValid()\n ? null\n : {\n dateValidation: {\n valid: false\n }\n };\n }\n\n /** @hidden */\n registerOnChange(fn: (selected: any) => { void }): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Function that provides support for ControlValueAccessor that allows to use [(ngModel)] or forms\n */\n writeValue(selected: DateRange<D> | D | null): void {\n /** If written value is not defined, null, empty string */\n if (!selected) {\n this._inputFieldDate = '';\n this._refreshCurrentlyDisplayedCalendarDate(this._dateTimeAdapter.today());\n this.selectedRangeDate = { start: null, end: null };\n this.selectedDate = null;\n this._changeDetectionRef.detectChanges();\n return;\n }\n if (this.type === 'single') {\n /**\n * For single mode, if the date is invalid, model is changed, it refreshes currently\n * input field text, but it does not refresh currently displayed day\n */\n selected = this._parseDate(selected);\n this.selectedDate = selected;\n\n this._inputFieldDate = this._formatDate(selected);\n this._refreshCurrentlyDisplayedCalendarDate(selected);\n }\n if (this.type === 'range') {\n /**\n * For range mode, if the date is invalid, model is changed, but it does not refresh currently\n * displayed day view, or input field text\n */\n selected = selected as DateRange<D>;\n\n if (selected?.start) {\n this.selectedRangeDate = {\n start: this._parseDate(selected.start),\n end: this._parseDate(selected.end)\n };\n\n this._refreshCurrentlyDisplayedCalendarDate(selected.start);\n this._inputFieldDate = this._formatDateRange(selected);\n } else {\n this._inputFieldDate = '';\n }\n }\n this._isInvalidDateInput = !this.isModelValid();\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Method, which is responsible for transforming string to date, depending on type or\n * validation the results are different. It also changes to state of _isInvalidDateInput\n */\n dateStringUpdate(dateStr: string): void {\n this._inputFieldDate = dateStr;\n /** Case when there is single mode */\n if (this.type === 'single') {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedDate = null;\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedDate);\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n return;\n }\n const date = this._parseDate(dateStr);\n\n /** Check if dates are equal, if so, there is no need to make any changes */\n if (!this._dateTimeAdapter.datesEqual(date, this.selectedDate)) {\n this._isInvalidDateInput = !this._isSingleModelValid(date);\n\n /** Check if date is valid, if it's not, there is no need to refresh calendar */\n if (!this._isInvalidDateInput) {\n this._refreshCurrentlyDisplayedCalendarDate(date);\n }\n\n /**\n * Date in model is changed no matter if the parsed date from string is valid or not.\n */\n this.selectedDate = date;\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n }\n\n /** Case when there is range mode */\n } else {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedRangeDate = { start: null, end: null };\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n this.onChange(this.selectedRangeDate);\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n return;\n }\n const [startDateStr, endDateStr] = dateStr.split(this._rangeDelimiter);\n const startDate = this._parseDate(startDateStr);\n const endDate = this._parseDate(endDateStr);\n\n /**\n * Check if dates are equal, if dates are the same there is no need to make any changes\n * Date in model is changed no matter if the parsed dates from string are valid or not.\n */\n if (\n !this._dateTimeAdapter.datesEqual(startDate, this.selectedRangeDate.start) ||\n !this._dateTimeAdapter.datesEqual(endDate, this.selectedRangeDate.end)\n ) {\n let selectedRangeDate: DateRange<D> | null = null;\n\n /** If the end date is before the start date, there is need to replace them */\n if (\n this._dateTimeAdapter.isValid(startDate) &&\n this._dateTimeAdapter.isValid(endDate) &&\n this._dateTimeAdapter.compareDate(startDate, endDate) > 0\n ) {\n selectedRangeDate = { start: endDate, end: startDate };\n } else {\n selectedRangeDate = { start: startDate, end: endDate };\n }\n\n this._isInvalidDateInput = !this._isRangeModelValid(selectedRangeDate);\n\n /** Whole object is changed, even it's invalid */\n this.selectedRangeDate = selectedRangeDate;\n\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n\n /** Check if start date is valid, if it's not, there is no need o refresh calendar */\n if (this._isStartDateValid(this.selectedRangeDate.start)) {\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n }\n }\n }\n }\n\n /** Method that provides information if model selected date/dates have properly types and are valid */\n isModelValid(): boolean {\n if (this.type === 'single') {\n return this._isSingleModelValid(this.selectedDate);\n } else {\n return this._isRangeModelValid(this.selectedRangeDate);\n }\n }\n\n /** @hidden */\n _changeMessageVisibility(): void {\n if (this.isOpen) {\n this._popoverFormMessage.hide();\n } else {\n this._popoverFormMessage.show();\n }\n }\n\n /** @hidden */\n _onOpenStateChanged(isOpen: boolean): void {\n this.isOpenChange.emit(isOpen);\n this._changeMessageVisibility();\n // focus input control every time popup is closed\n if (!isOpen && this._inputElement) {\n this._inputElement.nativeElement.focus({\n preventScroll: this.preventScrollOnFocus\n });\n }\n }\n\n /** @hidden */\n _onBlur(event: FocusEvent): void {\n this.onTouched();\n this.handleInputChange((event.target as any).value, false);\n }\n\n /** Method that returns info if single model given is valid */\n private _isSingleModelValid(date: Nullable<D>): boolean {\n return (this._isDateValid(date) && !this.disableFunction(date)) || (!date && this.allowNull);\n }\n\n /** Method that returns info if range date model given is valid */\n private _isRangeModelValid(fdRangeDate: DateRange<D>): boolean {\n return (\n (fdRangeDate && this._isStartDateValid(fdRangeDate.start) && this._isEndDateValid(fdRangeDate.end)) ||\n (!fdRangeDate.start && !fdRangeDate.end && this.allowNull)\n );\n }\n\n /** Method that returns info if end date model given is valid */\n private _isEndDateValid(endDate: Nullable<D>): boolean {\n return this._isDateValid(endDate) && !this.disableRangeEndFunction(endDate);\n }\n\n /** Method that returns info if start date model given is valid */\n private _isStartDateValid(startDate: Nullable<D>): boolean {\n return this._isDateValid(startDate) && !this.disableRangeStartFunction(startDate);\n }\n\n /** Method that returns info if given date model is valid */\n private _isDateValid(date: Nullable<D>): date is D {\n return this._dateTimeAdapter.isValid(date);\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: Nullable<D>): void {\n this._calendarPendingDate = date;\n this._calendarComponent?.setCurrentlyDisplayed(date);\n }\n\n /** @hidden */\n private _formatDate(date: Nullable<D>): string {\n return this._dateTimeAdapter.format(date, this._dateTimeFormats.display.dateInput);\n }\n\n /** @hidden */\n private _parseDate(date: unknown): D | null {\n return this._dateTimeAdapter.parse(date, this._dateTimeFormats.parse.dateInput);\n }\n\n /** @hidden */\n private _formatDateRange(dateRange: DateRange<D>): string {\n const startDate = this._formatDate(dateRange.start);\n const endDate = this._formatDate(dateRange.end);\n return startDate + this._rangeDelimiter + endDate;\n }\n\n /** @hidden */\n private _InitialiseVariablesInMessageService(): void {\n this._popoverFormMessage.init(this._inputGroupElement);\n this._popoverFormMessage.message = this._message || '';\n this._popoverFormMessage.triggers = this._messageTriggers;\n this._popoverFormMessage.messageType = this._state;\n }\n\n /** @hidden */\n private _setOpenState(isOpen: boolean): void {\n this._showPopoverContents = isOpen;\n this._changeDetectionRef.detectChanges();\n this.isOpen = isOpen;\n this.isOpenChange.emit(this.isOpen);\n this._changeDetectionRef.detectChanges();\n }\n}\n","<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-date-picker[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedDatePickerCompactDirective)\n }\n ]\n})\nexport class DeprecatedDatePickerCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-date-picker');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { CalendarModule } from '@fundamental-ngx/core/calendar';\nimport { FormsModule } from '@angular/forms';\n\nimport { DatePickerComponent } from './date-picker.component';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FormMessageModule } from '@fundamental-ngx/core/form';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { DeprecatedDatePickerCompactDirective } from './deprecated-date-picker-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { BarModule } from '@fundamental-ngx/core/bar';\n\n@NgModule({\n declarations: [DatePickerComponent, DeprecatedDatePickerCompactDirective],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n I18nModule,\n CalendarModule,\n FormsModule,\n InputGroupModule,\n ButtonModule,\n FormMessageModule,\n BarModule,\n ContentDensityModule\n ],\n exports: [DatePickerComponent, DeprecatedDatePickerCompactDirective, ContentDensityModule]\n})\nexport class DatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACM,SAAU,oCAAoC,CAAC,QAAgB,EAAA;AACjE,IAAA,OAAO,KAAK,CACR,CAAuC,oCAAA,EAAA,QAAQ,CAAyC,uCAAA,CAAA;QACpF,CAAmE,iEAAA,CAAA;AACnE,QAAA,CAAA,sBAAA,CAAwB,CAC/B,CAAC;AACN;;ACqCA,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B;;;;;;;;;AASG;MA4BU,mBAAmB,CAAA;;IAoB5B,IACI,OAAO,CAAC,OAAe,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,OAAO,CAAC;KAC9C;AAKD;AACwF;IACxF,IACI,eAAe,CAAC,QAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;AACjC,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAChD;AA4HD;;;;AAIG;IACH,IACI,KAAK,CAAC,KAA2B,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,SAAS,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,KAAK,IAAI,SAAS,CAAC;KAC7D;;AAGD,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACvE,YAAA,OAAO,OAAO,CAAC;AAClB,SAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;;IAuDD,IACI,MAAM,CAAC,KAAc,EAAA;AACrB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;YACxB,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;KAC5C;AAED,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;AAaD;;;;AAIG;IACH,IACI,kBAAkB,CAAC,CAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;KACvD;AAED,IAAA,IAAI,kBAAkB,GAAA;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;;AA2FD,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;KAC/C;AAED;;;AAGG;AACH,IAAA,IAAI,oBAAoB,GAAA;;AAEpB,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC;KACjF;AAED;;;AAGG;AACH,IAAA,IAAI,uBAAuB,GAAA;;AAEvB,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,oCAAoC,GAAG,+BAA+B,CAAC;KACzG;;AAGD,IAAA,WAAA,CACY,mBAAsC;;IAE1B,gBAAoC,EACT,gBAAiC,EACxE,mBAA8C,EAAA;AAJ9C,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAmB;AAE1B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAoB;AACT,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAiB;AACxE,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAA2B;;AA9X1D,QAAA,IAAI,CAAA,IAAA,GAAiB,QAAQ,CAAC;;AAI9B,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;;AAQjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAUjB,QAAA,IAAQ,CAAA,QAAA,GAAkB,IAAI,CAAC;;QAW/B,IAAA,CAAA,gBAAgB,GAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;;AAQrD,QAAA,IAAiB,CAAA,iBAAA,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAM7D;;;AAGG;AAEH,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;;AAIzB,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;;AAqDrB,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;AAIjB,QAAA,IAAU,CAAA,UAAA,GAAmB,KAAK,CAAC;AAEnC;;;AAGG;AAEH,QAAA,IAAS,CAAA,SAAA,GAAc,cAAc,CAAC;;AAYtC,QAAA,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;;AAIzB,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;;AAIxB,QAAA,IAAgB,CAAA,gBAAA,GAAG,OAAO,CAAC;;AAkCnB,QAAA,IAAM,CAAA,MAAA,GAAe,SAAS,CAAC;AAEvC;;;AAGG;AAEH,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAEvB;;;;;;AAMG;AAEH,QAAA,IAAgB,CAAA,gBAAA,GAAwB,EAAE,CAAC;AAE3C;;;AAGG;QAEH,IAAA,CAAA,QAAQ,GAAqB;AACzB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;SACV,CAAC;AAEF;;;AAGG;QAEH,IAAA,CAAA,kBAAkB,GAAqB;AACnC,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;SACV,CAAC;AAEF;;AAEG;AAEH,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAEpB;;AAEG;AAEH,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;AAkBf,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;AAIxB,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AAoBd;;AAEG;AAEH,QAAA,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;;AAG7B,QAAA,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;;AAInB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;;AAI3C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAe,CAAC;;AAIrD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,YAAY,EAAgB,CAAC;;AAI3D,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAkB,CAAC;;AAkB/D,QAAA,IAAe,CAAA,eAAA,GAAkB,IAAI,CAAC;;AAGtC,QAAA,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;;AAG5B,QAAA,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;;AAGpB,QAAA,IAAA,CAAA,wBAAwB,GAAG,+BAA+B,iBAAiB,EAAE,EAAE,CAAC;;AAMxE,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;;AAG1D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AAE5C;;;AAGG;AAEH,QAAA,IAAA,CAAA,eAAe,GAA0B,MAAM,KAAK,CAAC;AAErD;;;AAGG;AAEH,QAAA,IAAA,CAAA,yBAAyB,GAA0B,MAAM,KAAK,CAAC;AAE/D;;;AAGG;AAEH,QAAA,IAAA,CAAA,uBAAuB,GAA0B,MAAM,KAAK,CAAC;;AAG7D,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAG,CAAC;;AAG1C,QAAA,IAAA,CAAA,SAAS,GAAQ,MAAK,GAAG,CAAC;AAiCtB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,MAAM,oCAAoC,CAAC,iBAAiB,CAAC,CAAC;AACjE,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,MAAM,oCAAoC,CAAC,mBAAmB,CAAC,CAAC;AACnE,SAAA;KACJ;;IAGD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACjF,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;AAC7C,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC;AACxC,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;AAC5C,SAAA;KACJ;;IAGD,eAAe,GAAA;QACX,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAE5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACtF,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACvC,YAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACnC,UAAU,CAAC,MAAK;gBACZ,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC3D,gBAAA,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,YAAY,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAED;;AAEG;AACI,IAAA,8BAA8B,CAAC,UAA0B,EAAA;AAC5D,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1C;;IAGM,iBAAiB,GAAA;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,EAAE,CAAC;AACxB,SAAA;KACJ;;IAGD,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACnC,SAAA;KACJ;;IAGM,cAAc,GAAA;QACjB,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,SAAS,EAAE,CAAC;AACpB,SAAA;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;;IAGM,aAAa,GAAA;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACnC,SAAA;KACJ;AAED;;;AAGG;AACI,IAAA,sBAAsB,CAAC,IAAO,EAAA;AACjC,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;AACxB,aAAA;AACJ,SAAA;KACJ;AAED;;;AAGG;AACI,IAAA,eAAe,CAAC,IAAiB,EAAA;AACpC,QAAA,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACjD,SAAA;KACJ;AAED;;;AAGG;AACI,IAAA,qBAAqB,CAAC,KAAmB,EAAA;AAC5C,QAAA,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClG,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC5F,QAAA,IAAI,KAAK,KAAK,YAAY,IAAI,UAAU,CAAC,EAAE;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC;YACjE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YAChE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAChD,YAAA,IAAI,WAAW,EAAE;gBACb,IAAI,CAAC,aAAa,EAAE,CAAC;AACxB,aAAA;AACJ,SAAA;KACJ;AAED;;;AAGG;IACH,kBAAkB,GAAA;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAChD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxB,YAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AACpE,SAAA;KACJ;AAED;;;AAGG;IACI,iBAAiB,CAAC,OAAe,EAAE,WAAoB,EAAA;AAC1D,QAAA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;;;YAGxF,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;AAED;;;AAGG;IACH,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,YAAY,EAAE;AACtB,cAAE,IAAI;AACN,cAAE;AACI,gBAAA,cAAc,EAAE;AACZ,oBAAA,KAAK,EAAE,KAAK;AACf,iBAAA;aACJ,CAAC;KACX;;AAGD,IAAA,gBAAgB,CAAC,EAA+B,EAAA;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;;AAGD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;KAC5C;AAED;;;AAGG;AACH,IAAA,UAAU,CAAC,QAAiC,EAAA;;QAExC,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3E,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACpD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO;AACV,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxB;;;AAGG;AACH,YAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YAE7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,sCAAsC,CAAC,QAAQ,CAAC,CAAC;AACzD,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACvB;;;AAGG;YACH,QAAQ,GAAG,QAAwB,CAAC;AAEpC,YAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,KAAK,EAAE;gBACjB,IAAI,CAAC,iBAAiB,GAAG;oBACrB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACtC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;iBACrC,CAAC;AAEF,gBAAA,IAAI,CAAC,sCAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC1D,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC7B,aAAA;AACJ,SAAA;QACD,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAChD,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;KAC5C;AAED;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,OAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;;AAE/B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE;AACV,gBAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/D,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChD,OAAO;AACV,aAAA;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;;AAGtC,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC5D,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;;AAG3D,gBAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3B,oBAAA,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC;AACrD,iBAAA;AAED;;AAEG;AACH,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnD,aAAA;;AAGJ,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,OAAO,EAAE;AACV,gBAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,gBAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBACpD,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC1E,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACtC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC1D,OAAO;AACV,aAAA;AACD,YAAA,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAE5C;;;AAGG;AACH,YAAA,IACI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC1E,gBAAA,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EACxE;gBACE,IAAI,iBAAiB,GAAwB,IAAI,CAAC;;AAGlD,gBAAA,IACI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;AACxC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;oBACtC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,EAC3D;oBACE,iBAAiB,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC1D,iBAAA;AAAM,qBAAA;oBACH,iBAAiB,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1D,iBAAA;gBAED,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;;AAGvE,gBAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;gBAE3C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1D,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;;gBAGtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;oBACtD,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC7E,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;;IAGD,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtD,SAAA;AAAM,aAAA;YACH,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1D,SAAA;KACJ;;IAGD,wBAAwB,GAAA;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;AACnC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;AACnC,SAAA;KACJ;;AAGD,IAAA,mBAAmB,CAAC,MAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,wBAAwB,EAAE,CAAC;;AAEhC,QAAA,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC;gBACnC,aAAa,EAAE,IAAI,CAAC,oBAAoB;AAC3C,aAAA,CAAC,CAAC;AACN,SAAA;KACJ;;AAGD,IAAA,OAAO,CAAC,KAAiB,EAAA;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,CAAE,KAAK,CAAC,MAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC9D;;AAGO,IAAA,mBAAmB,CAAC,IAAiB,EAAA;QACzC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;KAChG;;AAGO,IAAA,kBAAkB,CAAC,WAAyB,EAAA;QAChD,QACI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC;AAClG,aAAC,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,EAC5D;KACL;;AAGO,IAAA,eAAe,CAAC,OAAoB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;KAC/E;;AAGO,IAAA,iBAAiB,CAAC,SAAsB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;KACrF;;AAGO,IAAA,YAAY,CAAC,IAAiB,EAAA;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9C;;AAGO,IAAA,sCAAsC,CAAC,IAAiB,EAAA;;AAC5D,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,CAAA,EAAA,GAAA,IAAI,CAAC,kBAAkB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;KACxD;;AAGO,IAAA,WAAW,CAAC,IAAiB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACtF;;AAGO,IAAA,UAAU,CAAC,IAAa,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;KACnF;;AAGO,IAAA,gBAAgB,CAAC,SAAuB,EAAA;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAChD,QAAA,OAAO,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;KACrD;;IAGO,oCAAoC,GAAA;QACxC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;KACtD;;AAGO,IAAA,aAAa,CAAC,MAAe,EAAA;AACjC,QAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;AACnC,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;KAC5C;;AA/yBQ,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kGAkYJ,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAlYhC,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAlBjB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,aAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;AACD,QAAA;AACI,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,YAAA,KAAK,EAAE,IAAI;AACd,SAAA;QACD,uBAAuB,CAAC,mBAAmB,CAAC;QAC5C,yBAAyB;QACzB,cAAc;AACjB,KAAA,EAmTyC,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6DAIzC,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,UAAU,EAXzC,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAiB,qEC3XnC,81JAyGA,EAAA,MAAA,EAAA,CAAA,mNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDtBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA3B/B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGpB,IAAA,EAAA;AACF,wBAAA,QAAQ,EAAE,aAAa;AACvB,wBAAA,wBAAwB,EAAE,MAAM;AAChC,wBAAA,+BAA+B,EAAE,QAAQ;AAC5C,qBAAA,EACU,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACD,wBAAA;AACI,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;wBACD,uBAAuB,CAAqB,mBAAA,CAAA;wBAC5C,yBAAyB;wBACzB,cAAc;qBACjB,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,81JAAA,EAAA,MAAA,EAAA,CAAA,mNAAA,CAAA,EAAA,CAAA;;;8BAmY1C,QAAQ;;8BACR,QAAQ;;8BAAI,MAAM;+BAAC,iBAAiB,CAAA;;yBA7XzC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAYF,eAAe,EAAA,CAAA;sBADlB,KAAK;gBAWN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAQN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAQN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAQN,mBAAmB,EAAA,CAAA;sBADlB,KAAK;gBAQN,0BAA0B,EAAA,CAAA;sBADzB,KAAK;gBAQN,wBAAwB,EAAA,CAAA;sBADvB,KAAK;gBAQN,4BAA4B,EAAA,CAAA;sBAD3B,KAAK;gBAQN,wBAAwB,EAAA,CAAA;sBADvB,KAAK;gBAQN,sBAAsB,EAAA,CAAA;sBADrB,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAQN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAKN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAON,6BAA6B,EAAA,CAAA;sBAD5B,KAAK;gBAON,yBAAyB,EAAA,CAAA;sBADxB,KAAK;gBASF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAsBN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAWN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAQN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAWN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAUN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAON,eAAe,EAAA,CAAA;sBADd,KAAK;gBAKF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAmBN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBASF,kBAAkB,EAAA,CAAA;sBADrB,KAAK;gBAaN,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBAQG,YAAY,EAAA,CAAA;sBADpB,MAAM;gBAKE,kBAAkB,EAAA,CAAA;sBAD1B,MAAM;gBAKE,uBAAuB,EAAA,CAAA;sBAD/B,MAAM;gBAKE,gBAAgB,EAAA,CAAA;sBADxB,MAAM;gBAKU,UAAU,EAAA,CAAA;sBAD1B,YAAY;uBAAC,iBAAiB,CAAA;gBAQ/B,kBAAkB,EAAA,CAAA;sBADjB,SAAS;gBAAC,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAKtD,aAAa,EAAA,CAAA;sBADZ,SAAS;gBAAC,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBA6BzD,eAAe,EAAA,CAAA;sBADd,KAAK;gBAQN,yBAAyB,EAAA,CAAA;sBADxB,KAAK;gBAQN,uBAAuB,EAAA,CAAA;sBADtB,KAAK;;;AEnaJ,MAAO,oCAAqC,SAAQ,0BAA0B,CAAA;;AAEhF,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,gBAAgB,CAAC,CAAC;KAC3B;;iIAJQ,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAPlC,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oCAAoC,CAAC;AACtE,SAAA;KACJ,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAVhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,0CAA0C,CAAC;AACtE,yBAAA;AACJ,qBAAA;iBACJ,CAAA;;;MCqBY,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAhBV,YAAA,EAAA,CAAA,mBAAmB,EAAE,oCAAoC,aAEpE,YAAY;QACZ,UAAU;QACV,aAAa;QACb,UAAU;QACV,cAAc;QACd,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,iBAAiB;QACjB,SAAS;AACT,QAAA,oBAAoB,CAEd,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,oCAAoC,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAEhF,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAdrB,YAAY;QACZ,UAAU;QACV,aAAa;QACb,UAAU;QACV,cAAc;QACd,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,iBAAiB;QACjB,SAAS;AACT,QAAA,oBAAoB,EAE6C,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAEhF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAjB5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;AACzE,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,UAAU;wBACV,aAAa;wBACb,UAAU;wBACV,cAAc;wBACd,WAAW;wBACX,gBAAgB;wBAChB,YAAY;wBACZ,iBAAiB;wBACjB,SAAS;wBACT,oBAAoB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,oBAAoB,CAAC;iBAC7F,CAAA;;;AChCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-date-picker.mjs","sources":["../../../../libs/core/src/lib/date-picker/errors.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.html","../../../../libs/core/src/lib/date-picker/deprecated-date-picker-compact.directive.ts","../../../../libs/core/src/lib/date-picker/date-picker.module.ts","../../../../libs/core/src/lib/date-picker/fundamental-ngx-core-date-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdDatePicker: No provider found for ${provider}. You must import one of the following ` +\n `modules at your application root: FdDatetimeModule, or provide a ` +\n `custom implementation.`\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';\nimport {\n CalendarComponent,\n CalendarType,\n CalendarYearGrid,\n DateRange,\n DaysOfWeek,\n FdCalendarView,\n NavigationButtonDisableFunction\n} from '@fundamental-ngx/core/calendar';\nimport { DATE_TIME_FORMATS, DatetimeAdapter, DateTimeFormats } from '@fundamental-ngx/core/datetime';\nimport { FormItemControl, PopoverFormMessageService, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nlet datePickerCounter = 0;\n\n/**\n * The datetime picker component is an opinionated composition of the fd-popover and\n * fd-calendar components to accomplish the UI pattern for picking a date.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-date-picker [(ngModel)]=\"date\"></fd-date-picker>\n * ```\n *\n */\n@Component({\n selector: 'fd-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n '[class.fd-date-picker]': 'true',\n '[class.fd-date-picker-custom]': 'inline'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n registerFormItemControl(DatePickerComponent),\n PopoverFormMessageService,\n PopoverService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatePickerComponent<D>\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator, FormItemControl\n{\n /** The type of calendar, 'single' for single date selection or 'range' for a range of dates. */\n @Input()\n type: CalendarType = 'single';\n\n /** Date picker input placeholder string */\n @Input()\n placeholder = '';\n\n /** ID attribute for input element inside DatePicker component */\n @Input()\n inputId: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n }\n\n /** @hidden */\n _message: string | null = null;\n\n /** The trigger events that will open/close the message box.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /** The currently selected CalendarDay model */\n @Input()\n selectedDate: Nullable<D>;\n\n /** The currently selected FdDates model start and end in range mode. */\n @Input()\n selectedRangeDate: DateRange<D> = { start: null, end: null };\n\n /** The day of the week the calendar should start on. 1 represents Sunday, 2 is Monday, 3 is Tuesday, and so on. */\n @Input()\n startingDayOfWeek: DaysOfWeek;\n\n /**\n * Whether user wants to mark day cells on hover.\n * Works only on range mode, when start date is selected on Day View.\n */\n @Input()\n rangeHoverEffect = false;\n\n /** Whether to validate the date picker input. */\n @Input()\n useValidation = true;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateRangeInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the button to show/hide the calendar.\n */\n @Input()\n displayCalendarToggleLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"success\" aria message.\n */\n @Input()\n valueStateSuccessMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"information\" aria message.\n */\n @Input()\n valueStateInformationMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"warning\" aria message.\n */\n @Input()\n valueStateWarningMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"error\" aria message.\n */\n @Input()\n valueStateErrorMessage: string;\n\n /** Whether a null input is considered valid. */\n @Input()\n allowNull = true;\n\n /** Actually shown active view one of 'day' | 'month' | 'year' in calendar component*/\n @Input()\n activeView: FdCalendarView = 'day';\n\n /**\n * The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n * bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end.\n */\n @Input()\n placement: Placement = 'bottom-start';\n\n /** The element to which the popover should be appended. */\n @Input()\n appendTo: ElementRef;\n\n /** Whether the date picker is disabled. */\n @Input()\n disabled: boolean;\n\n /** Defines if date picker should be closed after date choose */\n @Input()\n closeOnDateChoose = true;\n\n /** Enables Today-Selection-Button if true */\n @Input()\n showTodayButton = false;\n\n /** Label for Today-Selection-Button */\n @Input()\n todayButtonLabel = 'Today';\n\n /**\n * Function used to disable previous button in the calendar header.\n */\n @Input()\n previousButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * Function used to disable next button in the calendar header.\n */\n @Input()\n nextButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * The state of the form control - applies css classes.\n * Also, this is applied to message.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n set state(state: Nullable<FormStates>) {\n this._state = state || 'default';\n }\n\n /** @hidden */\n get state(): FormStates {\n if (this._state == null && this.useValidation && this._isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n\n /** @hidden */\n private _state: FormStates = 'default';\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * Special days mark, it can be used by passing array of object with\n * Special day number, list 1-20 [class:`fd-calendar__special-day--{{number}}`] is available there:\n * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section\n * Rule accepts method with FdDate object as a parameter. ex:\n * `rule: (fdDate: FdDate) => fdDate.getDay() === 1`, which will mark all sundays as special day.\n */\n @Input()\n specialDaysRules: SpecialDayRule<D>[] = [];\n\n /**\n * Object to customize year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n yearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 5\n };\n\n /**\n * Object to customize aggregated year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n aggregatedYearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 3\n };\n\n /**\n * Whether user wants to mark sunday/saturday with `fd-calendar__item--weekend` class\n */\n @Input()\n markWeekends = true;\n\n /**\n * Whether user wants to show week numbers next to days\n */\n @Input()\n showWeekNumbers = true;\n\n /** Whether the date picker is open. Can be used through two-way binding. */\n @Input()\n set isOpen(value: boolean) {\n if (value === this._isOpen) {\n return;\n }\n this._isOpen = value;\n this._showPopoverContents = value;\n this._changeDetectionRef.detectChanges();\n }\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n /** @hidden */\n private _isOpen = false;\n\n /** Should date picker be inlined. */\n @Input()\n inline = true;\n\n /** aria-labelledby for element describing date-picker. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /**\n * Whether to recalculate value from the input as user types or on blur.\n * By default, updates the value as user types.\n * @default false\n */\n @Input()\n set processInputOnBlur(v: boolean) {\n this._processInputOnBlur = coerceBooleanProperty(v);\n }\n\n get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /**\n * Whether to prevent page scrolling when focusing date picker input field after calendar has been closed.\n */\n @Input()\n preventScrollOnFocus = false;\n\n /** @hidden */\n _processInputOnBlur = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n readonly isOpenChange = new EventEmitter<boolean>();\n\n /** Fired when a new date is selected. */\n @Output()\n readonly selectedDateChange = new EventEmitter<Nullable<D>>();\n\n /** Event thrown every time selected first or last date in range mode is changed */\n @Output()\n readonly selectedRangeDateChange = new EventEmitter<DateRange<D>>();\n\n /** Event thrown every time calendar active view is changed */\n @Output()\n readonly activeViewChange = new EventEmitter<FdCalendarView>();\n\n /** @hideen */\n @ViewChildren(CalendarComponent)\n private readonly _calendars: QueryList<CalendarComponent<D>>;\n\n /** @hidden */\n _calendarComponent: CalendarComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild('popoverMessageTemplate')\n private readonly _messagePopoverTemplate: TemplateRef<any>;\n\n /** @hidden The value of the input */\n _inputFieldDate: string | null = null;\n\n /** @hidden Whether the date input is invalid */\n _isInvalidDateInput = false;\n\n /** @hidden */\n _showPopoverContents = false;\n\n /** @hidden */\n readonly _formValueStateMessageId = `fd-date-picker-form-message-${datePickerCounter++}`;\n\n /** @hidden */\n private _calendarPendingDate: Nullable<D>;\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * Function used to disable certain dates in the calendar.\n * @param date date representation\n */\n @Input()\n disableFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range start selection.\n * @param date date representation\n */\n @Input()\n disableRangeStartFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range end selection.\n * @param date date representation\n */\n @Input()\n disableRangeEndFunction: (value: D) => boolean = () => false;\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched: any = () => {};\n\n /** @hidden */\n get _rangeDelimiter(): string {\n return this._dateTimeFormats.rangeDelimiter;\n }\n\n /**\n * Date input aria label based on type\n * @hidden\n */\n get _dateInputArialLabel(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? this.dateRangeInputLabel : this.dateInputLabel;\n }\n\n /**\n * Date input aria label key based on type\n * @hidden\n */\n get _dateInputArialLabelKey(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? 'coreDatePicker.dateRangeInputLabel' : 'coreDatePicker.dateInputLabel';\n }\n\n /** @hidden */\n constructor(\n private _changeDetectionRef: ChangeDetectorRef,\n // Use @Optional to avoid angular injection error message and throw our own which is more precise one\n @Optional() private _dateTimeAdapter: DatetimeAdapter<D>,\n @Optional() @Inject(DATE_TIME_FORMATS) private _dateTimeFormats: DateTimeFormats,\n private _popoverFormMessage: PopoverFormMessageService\n ) {\n if (!this._dateTimeAdapter) {\n throw createMissingDateImplementationError('DateTimeAdapter');\n }\n if (!this._dateTimeFormats) {\n throw createMissingDateImplementationError('DATE_TIME_FORMATS');\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._dateTimeAdapter.localeChanges.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\n this.formatInputDate(this.selectedDate);\n this._changeDetectionRef.detectChanges();\n });\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('isOpen' in changes) {\n this._showPopoverContents = this.isOpen;\n this._changeDetectionRef.detectChanges();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._InitialiseVariablesInMessageService();\n\n this._calendars.changes.pipe(startWith(null), takeUntil(this._onDestroy$)).subscribe(() => {\n const calendar = this._calendars.first;\n this._calendarComponent = calendar;\n setTimeout(() => {\n calendar?.setCurrentlyDisplayed(this._calendarPendingDate);\n calendar?.initialFocus();\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Method that handle calendar active view change and throws event.\n */\n public handleCalendarActiveViewChange(activeView: FdCalendarView): void {\n this.activeViewChange.emit(activeView);\n }\n\n /** @hidden */\n public closeFromCalendar(): void {\n if (this.type === 'single' && this.closeOnDateChoose) {\n this.onTouched();\n this.closeCalendar();\n }\n }\n\n /** Opens the calendar */\n openCalendar(): void {\n if (!this.disabled) {\n this._setOpenState(true);\n this._changeMessageVisibility();\n }\n }\n\n /** Toggles the calendar open or closed */\n public toggleCalendar(): void {\n this._setOpenState(!this.isOpen);\n if (!this.isOpen) {\n this.onTouched();\n }\n this._changeMessageVisibility();\n }\n\n /** Closes the calendar if it is open */\n public closeCalendar(): void {\n if (this.isOpen) {\n this._setOpenState(false);\n this._changeMessageVisibility();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected single date changed\n */\n public handleSingleDateChange(date: D): void {\n if (date) {\n this.selectedDate = date;\n this.selectedDateChange.emit(date);\n this.onChange(date);\n this.formatInputDate(date);\n this._isInvalidDateInput = !this.isModelValid();\n if (this.closeOnDateChoose && this.type === 'single') {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered date formatting in the date control\n */\n public formatInputDate(date: Nullable<D>): void {\n if (date) {\n this._inputFieldDate = this._formatDate(date);\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected range date changed\n */\n public handleRangeDateChange(dates: DateRange<D>): void {\n const startChanged = !this._dateTimeAdapter.datesEqual(dates.start, this.selectedRangeDate.start);\n const endChanged = !this._dateTimeAdapter.datesEqual(dates.end, this.selectedRangeDate.end);\n if (dates && (startChanged || endChanged)) {\n const shouldClose = this.closeOnDateChoose && dates.end !== null;\n this._inputFieldDate = this._formatDateRange(dates);\n this.selectedRangeDate = { start: dates.start, end: dates.end };\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n this._isInvalidDateInput = !this.isModelValid();\n if (shouldClose) {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when Today-Selection-Button clicked, it changes selected date or date range to today's date\n */\n onTodayButtonClick(): void {\n const todayDate = this._dateTimeAdapter.today();\n if (this.type === 'single') {\n this.handleSingleDateChange(todayDate);\n this.closeFromCalendar();\n } else if (this.type === 'range') {\n this.handleRangeDateChange({ start: todayDate, end: todayDate });\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when the text input is confirmed to ba changed, by clicking enter, or blur\n */\n public handleInputChange(strDate: string, isTypeEvent: boolean): void {\n if ((isTypeEvent && this.processInputOnBlur) || (!isTypeEvent && !this.processInputOnBlur)) {\n // if processInputOnBlur === true, ignore type event\n // if processInputOnBlur === false, ignore blur/enter event\n return;\n }\n this.dateStringUpdate(strDate);\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } | null {\n return this.isModelValid()\n ? null\n : {\n dateValidation: {\n valid: false\n }\n };\n }\n\n /** @hidden */\n registerOnChange(fn: (selected: any) => { void }): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Function that provides support for ControlValueAccessor that allows to use [(ngModel)] or forms\n */\n writeValue(selected: DateRange<D> | D | null): void {\n /** If written value is not defined, null, empty string */\n if (!selected) {\n this._inputFieldDate = '';\n this._refreshCurrentlyDisplayedCalendarDate(this._dateTimeAdapter.today());\n this.selectedRangeDate = { start: null, end: null };\n this.selectedDate = null;\n this._changeDetectionRef.detectChanges();\n return;\n }\n if (this.type === 'single') {\n /**\n * For single mode, if the date is invalid, model is changed, it refreshes currently\n * input field text, but it does not refresh currently displayed day\n */\n selected = this._parseDate(selected);\n this.selectedDate = selected;\n\n this._inputFieldDate = this._formatDate(selected);\n this._refreshCurrentlyDisplayedCalendarDate(selected);\n }\n if (this.type === 'range') {\n /**\n * For range mode, if the date is invalid, model is changed, but it does not refresh currently\n * displayed day view, or input field text\n */\n selected = selected as DateRange<D>;\n\n if (selected?.start) {\n this.selectedRangeDate = {\n start: this._parseDate(selected.start),\n end: this._parseDate(selected.end)\n };\n\n this._refreshCurrentlyDisplayedCalendarDate(selected.start);\n this._inputFieldDate = this._formatDateRange(selected);\n } else {\n this._inputFieldDate = '';\n }\n }\n this._isInvalidDateInput = !this.isModelValid();\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Method, which is responsible for transforming string to date, depending on type or\n * validation the results are different. It also changes to state of _isInvalidDateInput\n */\n dateStringUpdate(dateStr: string): void {\n this._inputFieldDate = dateStr;\n /** Case when there is single mode */\n if (this.type === 'single') {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedDate = null;\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedDate);\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n return;\n }\n const date = this._parseDate(dateStr);\n\n /** Check if dates are equal, if so, there is no need to make any changes */\n if (!this._dateTimeAdapter.datesEqual(date, this.selectedDate)) {\n this._isInvalidDateInput = !this._isSingleModelValid(date);\n\n /** Check if date is valid, if it's not, there is no need to refresh calendar */\n if (!this._isInvalidDateInput) {\n this._refreshCurrentlyDisplayedCalendarDate(date);\n }\n\n /**\n * Date in model is changed no matter if the parsed date from string is valid or not.\n */\n this.selectedDate = date;\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n }\n\n /** Case when there is range mode */\n } else {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedRangeDate = { start: null, end: null };\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n this.onChange(this.selectedRangeDate);\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n return;\n }\n const [startDateStr, endDateStr] = dateStr.split(this._rangeDelimiter);\n const startDate = this._parseDate(startDateStr);\n const endDate = this._parseDate(endDateStr);\n\n /**\n * Check if dates are equal, if dates are the same there is no need to make any changes\n * Date in model is changed no matter if the parsed dates from string are valid or not.\n */\n if (\n !this._dateTimeAdapter.datesEqual(startDate, this.selectedRangeDate.start) ||\n !this._dateTimeAdapter.datesEqual(endDate, this.selectedRangeDate.end)\n ) {\n let selectedRangeDate: DateRange<D> | null = null;\n\n /** If the end date is before the start date, there is need to replace them */\n if (\n this._dateTimeAdapter.isValid(startDate) &&\n this._dateTimeAdapter.isValid(endDate) &&\n this._dateTimeAdapter.compareDate(startDate, endDate) > 0\n ) {\n selectedRangeDate = { start: endDate, end: startDate };\n } else {\n selectedRangeDate = { start: startDate, end: endDate };\n }\n\n this._isInvalidDateInput = !this._isRangeModelValid(selectedRangeDate);\n\n /** Whole object is changed, even it's invalid */\n this.selectedRangeDate = selectedRangeDate;\n\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n\n /** Check if start date is valid, if it's not, there is no need o refresh calendar */\n if (this._isStartDateValid(this.selectedRangeDate.start)) {\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n }\n }\n }\n }\n\n /** Method that provides information if model selected date/dates have properly types and are valid */\n isModelValid(): boolean {\n if (this.type === 'single') {\n return this._isSingleModelValid(this.selectedDate);\n } else {\n return this._isRangeModelValid(this.selectedRangeDate);\n }\n }\n\n /** @hidden */\n _changeMessageVisibility(): void {\n if (this.isOpen) {\n this._popoverFormMessage.hide();\n } else {\n this._popoverFormMessage.show();\n }\n }\n\n /** @hidden */\n _onOpenStateChanged(isOpen: boolean): void {\n this.isOpenChange.emit(isOpen);\n this._changeMessageVisibility();\n // focus input control every time popup is closed\n if (!isOpen && this._inputElement) {\n this._inputElement.nativeElement.focus({\n preventScroll: this.preventScrollOnFocus\n });\n }\n }\n\n /** @hidden */\n _onBlur(event: FocusEvent): void {\n this.onTouched();\n this.handleInputChange((event.target as any).value, false);\n }\n\n /** Method that returns info if single model given is valid */\n private _isSingleModelValid(date: Nullable<D>): boolean {\n return (this._isDateValid(date) && !this.disableFunction(date)) || (!date && this.allowNull);\n }\n\n /** Method that returns info if range date model given is valid */\n private _isRangeModelValid(fdRangeDate: DateRange<D>): boolean {\n return (\n (fdRangeDate && this._isStartDateValid(fdRangeDate.start) && this._isEndDateValid(fdRangeDate.end)) ||\n (!fdRangeDate.start && !fdRangeDate.end && this.allowNull)\n );\n }\n\n /** Method that returns info if end date model given is valid */\n private _isEndDateValid(endDate: Nullable<D>): boolean {\n return this._isDateValid(endDate) && !this.disableRangeEndFunction(endDate);\n }\n\n /** Method that returns info if start date model given is valid */\n private _isStartDateValid(startDate: Nullable<D>): boolean {\n return this._isDateValid(startDate) && !this.disableRangeStartFunction(startDate);\n }\n\n /** Method that returns info if given date model is valid */\n private _isDateValid(date: Nullable<D>): date is D {\n return this._dateTimeAdapter.isValid(date);\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: Nullable<D>): void {\n this._calendarPendingDate = date;\n this._calendarComponent?.setCurrentlyDisplayed(date);\n }\n\n /** @hidden */\n private _formatDate(date: Nullable<D>): string {\n return this._dateTimeAdapter.format(date, this._dateTimeFormats.display.dateInput);\n }\n\n /** @hidden */\n private _parseDate(date: unknown): D | null {\n return this._dateTimeAdapter.parse(date, this._dateTimeFormats.parse.dateInput);\n }\n\n /** @hidden */\n private _formatDateRange(dateRange: DateRange<D>): string {\n const startDate = this._formatDate(dateRange.start);\n const endDate = this._formatDate(dateRange.end);\n return startDate + this._rangeDelimiter + endDate;\n }\n\n /** @hidden */\n private _InitialiseVariablesInMessageService(): void {\n this._popoverFormMessage.init(this._inputGroupElement);\n this._popoverFormMessage.triggers = this._messageTriggers;\n this._popoverFormMessage.message = this._messagePopoverTemplate;\n }\n\n /** @hidden */\n private _setOpenState(isOpen: boolean): void {\n this._showPopoverContents = isOpen;\n this._changeDetectionRef.detectChanges();\n this.isOpen = isOpen;\n this.isOpenChange.emit(this.isOpen);\n this._changeDetectionRef.detectChanges();\n }\n}\n","<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <ng-template [ngTemplateOutlet]=\"popoverMessageTemplate\"></ng-template>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n\n<ng-template #popoverMessageTemplate>\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n</ng-template>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-date-picker[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedDatePickerCompactDirective)\n }\n ]\n})\nexport class DeprecatedDatePickerCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-date-picker');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { CalendarModule } from '@fundamental-ngx/core/calendar';\nimport { FormsModule } from '@angular/forms';\n\nimport { DatePickerComponent } from './date-picker.component';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FormMessageModule } from '@fundamental-ngx/core/form';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { DeprecatedDatePickerCompactDirective } from './deprecated-date-picker-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { BarModule } from '@fundamental-ngx/core/bar';\n\n@NgModule({\n declarations: [DatePickerComponent, DeprecatedDatePickerCompactDirective],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n I18nModule,\n CalendarModule,\n FormsModule,\n InputGroupModule,\n ButtonModule,\n FormMessageModule,\n BarModule,\n ContentDensityModule\n ],\n exports: [DatePickerComponent, DeprecatedDatePickerCompactDirective, ContentDensityModule]\n})\nexport class DatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|