@testgorilla/tgo-ui 11.22.3 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +335 -229
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +547 -465
- package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +160 -75
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +678 -278
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +337 -274
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +351 -192
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +1950 -960
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +1206 -1044
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +328 -182
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +383 -203
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +553 -261
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +709 -739
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs +219 -184
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +515 -458
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +423 -162
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs +10784 -10996
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +810 -533
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs +473 -116
- package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +1149 -540
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +148 -84
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +239 -142
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +599 -467
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +126 -70
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +324 -329
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +969 -648
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +553 -419
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +847 -452
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +398 -302
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +162 -95
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +1825 -1795
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs +1018 -672
- package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +758 -368
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +204 -212
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +183 -48
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +243 -79
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +751 -361
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +1122 -385
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +689 -413
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +227 -92
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +174 -113
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +367 -165
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +253 -118
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +730 -444
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +533 -221
- package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs +274 -76
- package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +184 -124
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +1223 -574
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +249 -160
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +447 -439
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +226 -150
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +255 -67
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +205 -162
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +245 -153
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +274 -140
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs +319 -147
- package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +286 -84
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +660 -208
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +579 -320
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +419 -200
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +132 -80
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +741 -390
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +455 -329
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +543 -514
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +193 -104
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +760 -524
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +714 -415
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +847 -438
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +535 -275
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +316 -246
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +404 -284
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +664 -383
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +201 -112
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +1014 -458
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui.mjs +147 -155
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/mcp/catalog.json +1 -1
- package/package.json +16 -17
- package/projects/tgo-canopy-ui/theme/_palette.scss +23 -18
- package/types/testgorilla-tgo-ui-components-accordion.d.ts +214 -158
- package/types/testgorilla-tgo-ui-components-ai-audio-circle.d.ts +93 -69
- package/types/testgorilla-tgo-ui-components-ai-caveat.d.ts +37 -34
- package/types/testgorilla-tgo-ui-components-ai-feedback.d.ts +126 -86
- package/types/testgorilla-tgo-ui-components-alert-banner.d.ts +260 -185
- package/types/testgorilla-tgo-ui-components-audio-waveform.d.ts +96 -67
- package/types/testgorilla-tgo-ui-components-autocomplete-v2.d.ts +455 -256
- package/types/testgorilla-tgo-ui-components-autocomplete.d.ts +545 -390
- package/types/testgorilla-tgo-ui-components-avatar.d.ts +128 -102
- package/types/testgorilla-tgo-ui-components-badge.d.ts +191 -139
- package/types/testgorilla-tgo-ui-components-breadcrumb.d.ts +100 -62
- package/types/testgorilla-tgo-ui-components-button.d.ts +479 -340
- package/types/testgorilla-tgo-ui-components-card.d.ts +153 -114
- package/types/testgorilla-tgo-ui-components-checkbox.d.ts +299 -223
- package/types/testgorilla-tgo-ui-components-checklist.d.ts +149 -97
- package/types/testgorilla-tgo-ui-components-core.d.ts +307 -295
- package/types/testgorilla-tgo-ui-components-datepicker.d.ts +404 -299
- package/types/testgorilla-tgo-ui-components-device-control.d.ts +151 -81
- package/types/testgorilla-tgo-ui-components-dialog.d.ts +442 -329
- package/types/testgorilla-tgo-ui-components-divider.d.ts +64 -51
- package/types/testgorilla-tgo-ui-components-donut-chart.d.ts +41 -37
- package/types/testgorilla-tgo-ui-components-dropdown.d.ts +335 -241
- package/types/testgorilla-tgo-ui-components-elevation-shadow.d.ts +48 -43
- package/types/testgorilla-tgo-ui-components-empty-state.d.ts +317 -215
- package/types/testgorilla-tgo-ui-components-field.d.ts +559 -388
- package/types/testgorilla-tgo-ui-components-file-upload.d.ts +230 -168
- package/types/testgorilla-tgo-ui-components-filter-button.d.ts +263 -206
- package/types/testgorilla-tgo-ui-components-gaussian-chart.d.ts +107 -94
- package/types/testgorilla-tgo-ui-components-icon-label.d.ts +84 -61
- package/types/testgorilla-tgo-ui-components-icon.d.ts +137 -110
- package/types/testgorilla-tgo-ui-components-infinite-scroll-table.d.ts +429 -303
- package/types/testgorilla-tgo-ui-components-inline-field.d.ts +338 -254
- package/types/testgorilla-tgo-ui-components-logo.d.ts +119 -101
- package/types/testgorilla-tgo-ui-components-media-card.d.ts +51 -35
- package/types/testgorilla-tgo-ui-components-media-dialog.d.ts +40 -45
- package/types/testgorilla-tgo-ui-components-multi-input.d.ts +283 -194
- package/types/testgorilla-tgo-ui-components-navbar.d.ts +326 -208
- package/types/testgorilla-tgo-ui-components-overflow-menu.d.ts +276 -204
- package/types/testgorilla-tgo-ui-components-page-header.d.ts +67 -50
- package/types/testgorilla-tgo-ui-components-paginator.d.ts +103 -70
- package/types/testgorilla-tgo-ui-components-password-criteria.d.ts +67 -58
- package/types/testgorilla-tgo-ui-components-password-strength.d.ts +66 -57
- package/types/testgorilla-tgo-ui-components-phone-input.d.ts +217 -175
- package/types/testgorilla-tgo-ui-components-popover.d.ts +94 -53
- package/types/testgorilla-tgo-ui-components-popup-tip.d.ts +81 -44
- package/types/testgorilla-tgo-ui-components-progress-bar.d.ts +115 -84
- package/types/testgorilla-tgo-ui-components-prompt.d.ts +315 -219
- package/types/testgorilla-tgo-ui-components-radial-progress.d.ts +146 -107
- package/types/testgorilla-tgo-ui-components-radio-button.d.ts +296 -219
- package/types/testgorilla-tgo-ui-components-rating.d.ts +134 -95
- package/types/testgorilla-tgo-ui-components-scale-table.d.ts +67 -47
- package/types/testgorilla-tgo-ui-components-scale.d.ts +91 -66
- package/types/testgorilla-tgo-ui-components-segmented-bar.d.ts +118 -89
- package/types/testgorilla-tgo-ui-components-segmented-button.d.ts +107 -80
- package/types/testgorilla-tgo-ui-components-segmented-toggle.d.ts +138 -105
- package/types/testgorilla-tgo-ui-components-selectable-card.d.ts +90 -56
- package/types/testgorilla-tgo-ui-components-side-navigation.d.ts +183 -107
- package/types/testgorilla-tgo-ui-components-side-panel.d.ts +156 -145
- package/types/testgorilla-tgo-ui-components-side-sheet.d.ts +98 -89
- package/types/testgorilla-tgo-ui-components-skeleton.d.ts +50 -33
- package/types/testgorilla-tgo-ui-components-slider.d.ts +278 -198
- package/types/testgorilla-tgo-ui-components-snackbar.d.ts +211 -159
- package/types/testgorilla-tgo-ui-components-spider-chart.d.ts +140 -121
- package/types/testgorilla-tgo-ui-components-spinner.d.ts +93 -72
- package/types/testgorilla-tgo-ui-components-stepper.d.ts +480 -338
- package/types/testgorilla-tgo-ui-components-table.d.ts +280 -233
- package/types/testgorilla-tgo-ui-components-tabs.d.ts +282 -183
- package/types/testgorilla-tgo-ui-components-tag.d.ts +266 -193
- package/types/testgorilla-tgo-ui-components-toggle.d.ts +180 -132
- package/types/testgorilla-tgo-ui-components-tooltip.d.ts +142 -105
- package/types/testgorilla-tgo-ui-components-universal-skills.d.ts +165 -144
- package/types/testgorilla-tgo-ui-components-validation-error.d.ts +70 -51
- package/types/testgorilla-tgo-ui-components-write-with-ai.d.ts +210 -133
- package/types/testgorilla-tgo-ui.d.ts +52 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-datepicker.mjs","sources":["../../../components/datepicker/datepicker.service.ts","../../../components/datepicker/date-adapter.ts","../../../components/datepicker/no-date-format.directive.ts","../../../components/datepicker/datepicker.component.ts","../../../components/datepicker/datepicker.component.html","../../../components/datepicker/datepicker.component.module.ts","../../../components/datepicker/testgorilla-tgo-ui-components-datepicker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DatepickerService {\n #useBrowserTimezone = false;\n\n set useBrowserTimezone(value: boolean) {\n this.#useBrowserTimezone = value;\n }\n\n get useBrowserTimezone(): boolean {\n return this.#useBrowserTimezone;\n }\n}\n","import { formatDate } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { NativeDateAdapter } from '@angular/material/core';\n\nimport { DatepickerService } from './datepicker.service';\n\nexport const UI_DATE_FORMATS = {\n parse: {\n dateInput: { day: 'numeric', month: 'numeric', year: 'numeric' },\n },\n display: {\n dateInput: 'input',\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\n },\n};\n\n@Injectable()\nexport class UiDateAdapter extends NativeDateAdapter {\n readonly #datepickerService = inject(DatepickerService);\n\n constructor() {\n super();\n }\n\n override format(date: Date): string {\n if (!this.#datepickerService.useBrowserTimezone) {\n return formatDate(date, 'MM/dd/yyyy', 'en-US');\n }\n\n const locale = navigator.language;\n const options: Partial<Intl.DateTimeFormatOptions> = {\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n dateStyle: 'short',\n };\n\n return new Intl.DateTimeFormat(locale, options).format(date);\n }\n}\n","import { formatDate } from '@angular/common';\nimport { Directive, Injectable } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MatDateFormats, NativeDateAdapter } from '@angular/material/core';\n\n@Injectable()\nexport class CustomDateAdapter extends NativeDateAdapter {\n override format(date: Date): string {\n return formatDate(date, 'MM/yyyy', 'en-US');\n }\n}\n\nconst FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/YYYY',\n },\n display: {\n dateInput: 'MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector -- public directive selector; ui-prefix rename is breaking, deferred to the breaking-change MAJOR (see plan)\n selector: '[appNoDateFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDateAdapter,\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: FORMATS,\n },\n ],\n standalone: true,\n})\nexport class NoDateFormatDirective {}\n","import { NgClass, NgTemplateOutlet, AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewEncapsulation,\n OnInit,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NgControl,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport {\n MatDatepicker,\n MatDatepickerInput,\n MatDatepickerToggle,\n MatDatepickerToggleIcon,\n MatDateRangeInput,\n MatStartDate,\n MatEndDate,\n MatDateRangePicker,\n} from '@angular/material/datepicker';\nimport { MatFormField, MatLabel, MatSuffix, MatHint } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\n\nimport {\n ApplicationTheme,\n adjustLightness,\n UiTranslatePipe,\n HasValidationErrorPipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { IconComponent } from '@testgorilla/tgo-ui/components/icon';\nimport { ValidationErrorComponent } from '@testgorilla/tgo-ui/components/validation-error';\n\nimport { UI_DATE_FORMATS, UiDateAdapter } from './date-adapter';\nimport { DatepickerService } from './datepicker.service';\nimport { NoDateFormatDirective } from './no-date-format.directive';\n\n@Component({\n selector: 'ui-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: DateAdapter, useClass: UiDateAdapter },\n { provide: MAT_DATE_FORMATS, useValue: UI_DATE_FORMATS },\n ],\n imports: [\n MatFormField,\n NoDateFormatDirective,\n NgClass,\n MatLabel,\n NgTemplateOutlet,\n MatInput,\n MatDatepickerInput,\n MatDatepickerToggle,\n MatSuffix,\n IconComponent,\n MatDatepickerToggleIcon,\n MatDatepicker,\n MatHint,\n MatDateRangeInput,\n FormsModule,\n ReactiveFormsModule,\n MatStartDate,\n MatEndDate,\n MatDateRangePicker,\n ValidationErrorComponent,\n AsyncPipe,\n UiTranslatePipe,\n HasValidationErrorPipe,\n ],\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class DatepickerComponent implements OnChanges, ControlValueAccessor, DoCheck, OnInit {\n @HostBinding() class = 'ui-datepicker';\n\n /**\n * Form field label\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() fieldName?: string;\n\n /**\n * Input placeholder\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() placeholder? = '';\n\n @Input() testId: string | null = null;\n\n get rangeStartTestId(): string {\n return this.testId ? `${this.testId}-start` : 'datepicker-range-start';\n }\n\n get rangeEndTestId(): string {\n return this.testId ? `${this.testId}-end` : 'datepicker-range-end';\n }\n\n /**\n * Input id\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() value?: Array<Date | null> | Date;\n\n _errors: string[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() set errors(errors: string[]) {\n this._errors = errors?.filter(Boolean) ?? [];\n this.errorsLength = this.setErrorsLength();\n }\n\n /**\n * Determines if input is date range\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() isRange: boolean;\n\n /**\n * Determines if on blur of calendar and no end date is selected, set the end date as the start date\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() setSingleDateRangeOnBlur: boolean;\n\n /**\n * Determines if inner errors should be shown\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() showInnerErrors: boolean;\n\n /**\n * Determines inner errors message\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() innerErrorsMessage: string;\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() required: boolean;\n\n /**\n * Hint text\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() hintMessage: string;\n\n /**\n * Input is update only on blur\n *\n * @type {Boolean}\n * @memberof DatepickerComponent\n */\n @Input() updateOnBlur = false;\n\n /**\n * Show reserved content below form field\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() showBottomContent = true;\n\n /**\n * Set full width DatepickerComponent\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Set min date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() minDate: Date | undefined;\n\n /**\n * Set max date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() maxDate: Date | undefined;\n\n /**\n * Show and pick date without day\n * @default false\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() monthPicker = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DatepickerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Prevent user input\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() preventUserInput = false;\n\n /**\n * Color of the option hover.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() companyColor = '';\n\n /**\n * Use browser timezone\n * @type boolean\n * @memberof DatepickerComponent\n */\n @Input() set browserTimezone(value: boolean) {\n this.datepickerService.useBrowserTimezone = value;\n }\n\n /**\n * @ignore\n */\n onChange: (value: Date | Date[]) => void = () => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n /**\n * Event emitted when the value is change - when used outside of form\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Output() changed = new EventEmitter<Date | Date[]>();\n\n range = new FormGroup({\n start: new FormControl<Date | null>(null),\n end: new FormControl<Date | null>(null),\n });\n\n errorsLength: boolean;\n protected translationContext = 'DATEPICKER.';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl,\n private readonly datepickerService: DatepickerService\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n get hint(): string {\n if (this.hintMessage === undefined) {\n return this.isRange ? 'MM/DD/YYYY - MM/DD/YYYY' : this.monthPicker ? 'MM/YYYY' : 'MM/DD/YYYY';\n }\n\n return this.hintMessage;\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnInit() {\n document.body.setAttribute('theme', this.applicationTheme);\n this.setStyleVariable();\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(changes: SimpleChanges): void {\n if (this.isRange) {\n this.setRange();\n }\n if (changes['companyColor']) {\n this.setStyleVariable();\n }\n }\n\n // Set errors length for validation\n // Consider only those errors which are not empty\n setErrorsLength(): boolean {\n if (this._errors) {\n return this._errors.filter(err => Boolean(err)).length > 0 ? true : false;\n }\n return false;\n }\n\n onValueChange(value: Date | Date[]) {\n this.writeValue(value);\n this.errorsLength = this.setErrorsLength();\n if (!this.updateOnBlur) {\n this.onTouch();\n }\n this.onChange(value);\n this.changed.emit(value);\n }\n\n writeValue(value?: Date | Date[]): void {\n this.value = value;\n if (this.isRange) {\n this.setRange();\n }\n }\n\n registerOnChange(fn: (value: Date | Date[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n handleCloseRangePicker(): void {\n if (this.setSingleDateRangeOnBlur) {\n this.fillSingleDateRange(true);\n }\n }\n\n fillSingleDateRange(isStart: boolean): void {\n const { start, end } = this.range.controls;\n const sourceControl = isStart ? start : end;\n const targetControl = isStart ? end : start;\n\n if (sourceControl.value && !targetControl.value) {\n targetControl.setValue(sourceControl.value);\n this.dateRangeChange();\n }\n }\n\n dateRangeChange() {\n const start = this.range.controls.start.value ?? null;\n const end = this.range.controls.end.value ?? null;\n this.onValueChange([start ? new Date(start) : start, end ? new Date(end) : end] as Date[]);\n }\n\n setMonthAndYear(normalizedMonthAndYear: Date, datepicker: MatDatepicker<Date>) {\n const ctrlValue = (this.value as Date) || new Date();\n\n ctrlValue.setMonth(normalizedMonthAndYear.getMonth());\n ctrlValue.setFullYear(normalizedMonthAndYear.getFullYear());\n\n datepicker.close();\n\n this.onValueChange(new Date(ctrlValue));\n }\n\n private setRange() {\n if (Array.isArray(this.value)) {\n const [start, end] = this.value;\n\n if (start && String(this.range.controls.start.value) !== String(start)) {\n this.range.controls.start.setValue(new Date(start));\n }\n\n if (end && String(this.range.controls.end.value) !== String(end)) {\n this.range.controls.end.setValue(new Date(end));\n }\n }\n\n if (!this.value) {\n this.range.controls.start.setValue(null);\n this.range.controls.end.setValue(null);\n }\n }\n\n onInput(event: Event) {\n const target = event.target as EventTarget & { value: string };\n const [month, year] = target.value.split('/');\n const date = new Date().getDate();\n const fullDateString = `${month}/${date}/${year}`;\n const fullDate = new Date(fullDateString);\n this.onValueChange(fullDate);\n }\n\n private setStyleVariable() {\n const hover = this.companyColor ? adjustLightness(this.companyColor, 'hover') : '#FFF2FC';\n document.body.style.setProperty('--datepicker-hover-color', hover);\n document.body.style.setProperty('--datepicker-selected-color', `${this.companyColor || '#D410AA'}`);\n }\n}\n","@if (monthPicker) {\n <mat-form-field\n appNoDateFormat\n appearance=\"outline\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n @if (label) {\n <mat-label>\n <ng-container [ngTemplateOutlet]=\"labelTpl\"></ng-container>\n </mat-label>\n }\n\n <input\n [attr.data-testid]=\"testId ?? 'datepicker-input'\"\n matInput\n [id]=\"id!\"\n (blur)=\"onTouch()\"\n [placeholder]=\"placeholder!\"\n [matDatepicker]=\"dp\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [readonly]=\"preventUserInput\"\n (change)=\"onInput($event)\"\n (dateChange)=\"onValueChange($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"dp\">\n <ui-icon\n matDatepickerToggleIcon\n [applicationTheme]=\"applicationTheme\"\n name=\"Calendar\"\n size=\"24\"\n color=\"inherit\"\n ></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker\n panelClass=\"month-picker\"\n #dp\n startView=\"multi-year\"\n (monthSelected)=\"setMonthAndYear($event, dp)\"\n ></mat-datepicker>\n\n @if (hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))) {\n <mat-hint class=\"info\">{{ hint }} </mat-hint>\n }\n @if (errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))) {\n <mat-hint class=\"error\">\n <ng-container [ngTemplateOutlet]=\"hintsTpl\"></ng-container>\n </mat-hint>\n }\n </mat-form-field>\n} @else {\n @if (isRange) {\n <mat-form-field\n appearance=\"outline\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n class=\"range-datepicker\"\n >\n @if (label) {\n <mat-label>\n <ng-container [ngTemplateOutlet]=\"labelTpl\"></ng-container>\n </mat-label>\n }\n\n <mat-date-range-input [formGroup]=\"range\" [rangePicker]=\"rangePicker\" [min]=\"minDate\" [max]=\"maxDate\">\n <input\n [attr.data-testid]=\"rangeStartTestId\"\n matStartDate\n formControlName=\"start\"\n [placeholder]=\"translationContext + 'START_DATE' | uiTranslate | async\"\n (dateChange)=\"dateRangeChange()\"\n (blur)=\"setSingleDateRangeOnBlur && fillSingleDateRange(true)\"\n />\n <input\n [attr.data-testid]=\"rangeEndTestId\"\n matEndDate\n formControlName=\"end\"\n [placeholder]=\"translationContext + 'END_DATE' | uiTranslate | async\"\n (dateChange)=\"dateRangeChange()\"\n (blur)=\"setSingleDateRangeOnBlur && fillSingleDateRange(false)\"\n />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <ui-icon\n matDatepickerToggleIcon\n [applicationTheme]=\"applicationTheme\"\n name=\"Calendar\"\n size=\"24\"\n color=\"inherit\"\n ></ui-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #rangePicker (closed)=\"handleCloseRangePicker()\"></mat-date-range-picker>\n\n @if (\n hint &&\n !_errors &&\n !(ngControl?.touched && (ngControl?.errors | hasValidationError)) &&\n !(range?.invalid && showInnerErrors)\n ) {\n <mat-hint class=\"info\">{{ hint }} </mat-hint>\n }\n @if (\n errorsLength ||\n (ngControl?.touched && (ngControl?.errors | hasValidationError)) ||\n (range?.invalid && showInnerErrors)\n ) {\n <mat-hint class=\"error\">\n <ng-container [ngTemplateOutlet]=\"hintsTpl\"></ng-container>\n </mat-hint>\n }\n </mat-form-field>\n } @else {\n <mat-form-field\n appearance=\"outline\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n @if (label) {\n <mat-label>\n <ng-container [ngTemplateOutlet]=\"labelTpl\"></ng-container>\n </mat-label>\n }\n <input\n [attr.data-testid]=\"testId ?? 'datepicker-picker-input'\"\n matInput\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n (dateChange)=\"onValueChange($event.value)\"\n [id]=\"id!\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [readonly]=\"preventUserInput\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <ui-icon\n matDatepickerToggleIcon\n [applicationTheme]=\"applicationTheme\"\n name=\"Calendar\"\n size=\"24\"\n color=\"inherit\"\n ></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n\n @if (hint && !_errors && !(ngControl?.touched && (ngControl?.errors | hasValidationError))) {\n <mat-hint class=\"info\">{{ hint }} </mat-hint>\n }\n @if (errorsLength || (ngControl?.touched && (ngControl?.errors | hasValidationError))) {\n <mat-hint class=\"error\">\n <ng-container [ngTemplateOutlet]=\"hintsTpl\"></ng-container>\n </mat-hint>\n }\n </mat-form-field>\n }\n}\n\n<ng-template #labelTpl>{{ label + (required ? ' *' : '') }}</ng-template>\n<ng-template #hintsTpl>\n @if (errorsLength) {\n @for (error of _errors; track error) {\n <div class=\"errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n }\n }\n @if (ngControl && !hideBuiltInErrors) {\n <ui-validation-error [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\n }\n @if (showInnerErrors) {\n @if (isRange) {\n <div class=\"errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"innerErrorsMessage\"></span>\n </div>\n }\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { UiTranslatePipe, HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';\n\nimport { DatepickerComponent } from './datepicker.component';\nimport { NoDateFormatDirective } from './no-date-format.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n UiTranslatePipe,\n NoDateFormatDirective,\n HasValidationErrorPipe,\n ValidationErrorModule,\n DatepickerComponent,\n ],\n exports: [DatepickerComponent],\n})\nexport class DatepickerComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DatepickerService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-datepicker.mjs","names":["i2.DatepickerService"],"sources":["../../../components/datepicker/datepicker.service.ts","../../../components/datepicker/date-adapter.ts","../../../components/datepicker/no-date-format.directive.ts","../../../components/datepicker/datepicker.component.ts","../../../components/datepicker/datepicker.component.html","../../../components/datepicker/datepicker.component.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DatepickerService {\n #useBrowserTimezone = false;\n\n set useBrowserTimezone(value: boolean) {\n this.#useBrowserTimezone = value;\n }\n\n get useBrowserTimezone(): boolean {\n return this.#useBrowserTimezone;\n }\n}\n","import { formatDate } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { NativeDateAdapter } from '@angular/material/core';\n\nimport { DatepickerService } from './datepicker.service';\n\nexport const UI_DATE_FORMATS = {\n parse: {\n dateInput: { day: 'numeric', month: 'numeric', year: 'numeric' },\n },\n display: {\n dateInput: 'input',\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\n },\n};\n\n@Injectable()\nexport class UiDateAdapter extends NativeDateAdapter {\n readonly #datepickerService = inject(DatepickerService);\n\n constructor() {\n super();\n }\n\n override format(date: Date): string {\n if (!this.#datepickerService.useBrowserTimezone) {\n return formatDate(date, 'MM/dd/yyyy', 'en-US');\n }\n\n const locale = navigator.language;\n const options: Partial<Intl.DateTimeFormatOptions> = {\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n dateStyle: 'short',\n };\n\n return new Intl.DateTimeFormat(locale, options).format(date);\n }\n}\n","import { formatDate } from '@angular/common';\nimport { Directive, Injectable } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MatDateFormats, NativeDateAdapter } from '@angular/material/core';\n\n@Injectable()\nexport class CustomDateAdapter extends NativeDateAdapter {\n override format(date: Date): string {\n return formatDate(date, 'MM/yyyy', 'en-US');\n }\n}\n\nconst FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/YYYY',\n },\n display: {\n dateInput: 'MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector -- public directive selector; ui-prefix rename is breaking, deferred to the breaking-change MAJOR (see plan)\n selector: '[appNoDateFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: CustomDateAdapter,\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: FORMATS,\n },\n ],\n standalone: true,\n})\nexport class NoDateFormatDirective {}\n","import { NgClass, NgTemplateOutlet, AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewEncapsulation,\n OnInit,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NgControl,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport {\n MatDatepicker,\n MatDatepickerInput,\n MatDatepickerToggle,\n MatDatepickerToggleIcon,\n MatDateRangeInput,\n MatStartDate,\n MatEndDate,\n MatDateRangePicker,\n} from '@angular/material/datepicker';\nimport { MatFormField, MatLabel, MatSuffix, MatHint } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\n\nimport {\n ApplicationTheme,\n adjustLightness,\n UiTranslatePipe,\n HasValidationErrorPipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { IconComponent } from '@testgorilla/tgo-ui/components/icon';\nimport { ValidationErrorComponent } from '@testgorilla/tgo-ui/components/validation-error';\n\nimport { UI_DATE_FORMATS, UiDateAdapter } from './date-adapter';\nimport { DatepickerService } from './datepicker.service';\nimport { NoDateFormatDirective } from './no-date-format.directive';\n\n@Component({\n selector: 'ui-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: DateAdapter, useClass: UiDateAdapter },\n { provide: MAT_DATE_FORMATS, useValue: UI_DATE_FORMATS },\n ],\n imports: [\n MatFormField,\n NoDateFormatDirective,\n NgClass,\n MatLabel,\n NgTemplateOutlet,\n MatInput,\n MatDatepickerInput,\n MatDatepickerToggle,\n MatSuffix,\n IconComponent,\n MatDatepickerToggleIcon,\n MatDatepicker,\n MatHint,\n MatDateRangeInput,\n FormsModule,\n ReactiveFormsModule,\n MatStartDate,\n MatEndDate,\n MatDateRangePicker,\n ValidationErrorComponent,\n AsyncPipe,\n UiTranslatePipe,\n HasValidationErrorPipe,\n ],\n})\nexport class DatepickerComponent implements OnChanges, ControlValueAccessor, DoCheck, OnInit {\n @HostBinding() class = 'ui-datepicker';\n\n /**\n * Form field label\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() label? = '';\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() fieldName?: string;\n\n /**\n * Input placeholder\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() placeholder? = '';\n\n @Input() testId: string | null = null;\n\n get rangeStartTestId(): string {\n return this.testId ? `${this.testId}-start` : 'datepicker-range-start';\n }\n\n get rangeEndTestId(): string {\n return this.testId ? `${this.testId}-end` : 'datepicker-range-end';\n }\n\n /**\n * Input id\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() value?: Array<Date | null> | Date;\n\n _errors: string[];\n /**\n * Input field errors\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() set errors(errors: string[]) {\n this._errors = errors?.filter(Boolean) ?? [];\n this.errorsLength = this.setErrorsLength();\n }\n\n /**\n * Determines if input is date range\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() isRange: boolean;\n\n /**\n * Determines if on blur of calendar and no end date is selected, set the end date as the start date\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() setSingleDateRangeOnBlur: boolean;\n\n /**\n * Determines if inner errors should be shown\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() showInnerErrors: boolean;\n\n /**\n * Determines inner errors message\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() innerErrorsMessage: string;\n\n /**\n * Determines if input is disabled\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() disabled: boolean;\n\n /**\n * Input is required or not\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() required: boolean;\n\n /**\n * Hint text\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() hintMessage: string;\n\n /**\n * Input is update only on blur\n *\n * @type {Boolean}\n * @memberof DatepickerComponent\n */\n @Input() updateOnBlur = false;\n\n /**\n * Show reserved content below form field\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() showBottomContent = true;\n\n /**\n * Set full width DatepickerComponent\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() fullWidth = false;\n\n /**\n * Set min date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() minDate: Date | undefined;\n\n /**\n * Set max date for Datepicker\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Input() maxDate: Date | undefined;\n\n /**\n * Show and pick date without day\n * @default false\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() monthPicker = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DatepickerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in-build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DatepickerComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * Prevent user input\n *\n * @type {boolean}\n * @memberof DatepickerComponent\n */\n @Input() preventUserInput = false;\n\n /**\n * Color of the option hover.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DatepickerComponent\n */\n @Input() companyColor = '';\n\n /**\n * Use browser timezone\n * @type boolean\n * @memberof DatepickerComponent\n */\n @Input() set browserTimezone(value: boolean) {\n this.datepickerService.useBrowserTimezone = value;\n }\n\n /**\n * @ignore\n */\n onChange: (value: Date | Date[]) => void = () => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n /**\n * Event emitted when the value is change - when used outside of form\n *\n * @type {Date}\n * @memberof DatepickerComponent\n */\n @Output() changed = new EventEmitter<Date | Date[]>();\n\n range = new FormGroup({\n start: new FormControl<Date | null>(null),\n end: new FormControl<Date | null>(null),\n });\n\n errorsLength: boolean;\n protected translationContext = 'DATEPICKER.';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl,\n private readonly datepickerService: DatepickerService\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl !== null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n get hint(): string {\n if (this.hintMessage === undefined) {\n return this.isRange ? 'MM/DD/YYYY - MM/DD/YYYY' : this.monthPicker ? 'MM/YYYY' : 'MM/DD/YYYY';\n }\n\n return this.hintMessage;\n }\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit() {\n document.body.setAttribute('theme', this.applicationTheme);\n this.setStyleVariable();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.isRange) {\n this.setRange();\n }\n if (changes['companyColor']) {\n this.setStyleVariable();\n }\n }\n\n // Set errors length for validation\n // Consider only those errors which are not empty\n setErrorsLength(): boolean {\n if (this._errors) {\n return this._errors.filter(err => Boolean(err)).length > 0 ? true : false;\n }\n return false;\n }\n\n onValueChange(value: Date | Date[]) {\n this.writeValue(value);\n this.errorsLength = this.setErrorsLength();\n if (!this.updateOnBlur) {\n this.onTouch();\n }\n this.onChange(value);\n this.changed.emit(value);\n }\n\n writeValue(value?: Date | Date[]): void {\n this.value = value;\n if (this.isRange) {\n this.setRange();\n }\n }\n\n registerOnChange(fn: (value: Date | Date[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n handleCloseRangePicker(): void {\n if (this.setSingleDateRangeOnBlur) {\n this.fillSingleDateRange(true);\n }\n }\n\n fillSingleDateRange(isStart: boolean): void {\n const { start, end } = this.range.controls;\n const sourceControl = isStart ? start : end;\n const targetControl = isStart ? end : start;\n\n if (sourceControl.value && !targetControl.value) {\n targetControl.setValue(sourceControl.value);\n this.dateRangeChange();\n }\n }\n\n dateRangeChange() {\n const start = this.range.controls.start.value ?? null;\n const end = this.range.controls.end.value ?? null;\n this.onValueChange([start ? new Date(start) : start, end ? new Date(end) : end] as Date[]);\n }\n\n setMonthAndYear(normalizedMonthAndYear: Date, datepicker: MatDatepicker<Date>) {\n const ctrlValue = (this.value as Date) || new Date();\n\n ctrlValue.setMonth(normalizedMonthAndYear.getMonth());\n ctrlValue.setFullYear(normalizedMonthAndYear.getFullYear());\n\n datepicker.close();\n\n this.onValueChange(new Date(ctrlValue));\n }\n\n private setRange() {\n if (Array.isArray(this.value)) {\n const [start, end] = this.value;\n\n if (start && String(this.range.controls.start.value) !== String(start)) {\n this.range.controls.start.setValue(new Date(start));\n }\n\n if (end && String(this.range.controls.end.value) !== String(end)) {\n this.range.controls.end.setValue(new Date(end));\n }\n }\n\n if (!this.value) {\n this.range.controls.start.setValue(null);\n this.range.controls.end.setValue(null);\n }\n }\n\n onInput(event: Event) {\n const target = event.target as EventTarget & { value: string };\n const [month, year] = target.value.split('/');\n const date = new Date().getDate();\n const fullDateString = `${month}/${date}/${year}`;\n const fullDate = new Date(fullDateString);\n this.onValueChange(fullDate);\n }\n\n private setStyleVariable() {\n const hover = this.companyColor ? adjustLightness(this.companyColor, 'hover') : '#FFF2FC';\n document.body.style.setProperty('--datepicker-hover-color', hover);\n document.body.style.setProperty('--datepicker-selected-color', `${this.companyColor || '#D410AA'}`);\n }\n}\n","@if (monthPicker) {\n <mat-form-field\n appNoDateFormat\n appearance=\"outline\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n @if (label) {\n <mat-label>\n <ng-container [ngTemplateOutlet]=\"labelTpl\"></ng-container>\n </mat-label>\n }\n\n <input\n [attr.data-testid]=\"testId ?? 'datepicker-input'\"\n matInput\n [id]=\"id!\"\n (blur)=\"onTouch()\"\n [placeholder]=\"placeholder!\"\n [matDatepicker]=\"dp\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [readonly]=\"preventUserInput\"\n (change)=\"onInput($event)\"\n (dateChange)=\"onValueChange($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"dp\">\n <ui-icon\n matDatepickerToggleIcon\n [applicationTheme]=\"applicationTheme\"\n name=\"Calendar\"\n size=\"24\"\n color=\"inherit\"\n ></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker\n panelClass=\"month-picker\"\n #dp\n startView=\"multi-year\"\n (monthSelected)=\"setMonthAndYear($event, dp)\"\n ></mat-datepicker>\n\n @if (\n hint && !_errors && !(ngControl?.touched && ($safeNavigationMigration(ngControl?.errors) | hasValidationError))\n ) {\n <mat-hint class=\"info\">{{ hint }} </mat-hint>\n }\n @if (errorsLength || (ngControl?.touched && ($safeNavigationMigration(ngControl?.errors) | hasValidationError))) {\n <mat-hint class=\"error\">\n <ng-container [ngTemplateOutlet]=\"hintsTpl\"></ng-container>\n </mat-hint>\n }\n </mat-form-field>\n} @else {\n @if (isRange) {\n <mat-form-field\n appearance=\"outline\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n class=\"range-datepicker\"\n >\n @if (label) {\n <mat-label>\n <ng-container [ngTemplateOutlet]=\"labelTpl\"></ng-container>\n </mat-label>\n }\n\n <mat-date-range-input [formGroup]=\"range\" [rangePicker]=\"rangePicker\" [min]=\"minDate\" [max]=\"maxDate\">\n <input\n [attr.data-testid]=\"rangeStartTestId\"\n matStartDate\n formControlName=\"start\"\n [placeholder]=\"translationContext + 'START_DATE' | uiTranslate | async\"\n (dateChange)=\"dateRangeChange()\"\n (blur)=\"setSingleDateRangeOnBlur && fillSingleDateRange(true)\"\n />\n <input\n [attr.data-testid]=\"rangeEndTestId\"\n matEndDate\n formControlName=\"end\"\n [placeholder]=\"translationContext + 'END_DATE' | uiTranslate | async\"\n (dateChange)=\"dateRangeChange()\"\n (blur)=\"setSingleDateRangeOnBlur && fillSingleDateRange(false)\"\n />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <ui-icon\n matDatepickerToggleIcon\n [applicationTheme]=\"applicationTheme\"\n name=\"Calendar\"\n size=\"24\"\n color=\"inherit\"\n ></ui-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #rangePicker (closed)=\"handleCloseRangePicker()\"></mat-date-range-picker>\n\n @if (\n hint &&\n !_errors &&\n !(ngControl?.touched && ($safeNavigationMigration(ngControl?.errors) | hasValidationError)) &&\n !(range?.invalid && showInnerErrors)\n ) {\n <mat-hint class=\"info\">{{ hint }} </mat-hint>\n }\n @if (\n errorsLength ||\n (ngControl?.touched && ($safeNavigationMigration(ngControl?.errors) | hasValidationError)) ||\n (range?.invalid && showInnerErrors)\n ) {\n <mat-hint class=\"error\">\n <ng-container [ngTemplateOutlet]=\"hintsTpl\"></ng-container>\n </mat-hint>\n }\n </mat-form-field>\n } @else {\n <mat-form-field\n appearance=\"outline\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) ? 'warn' : 'accent'\"\n [ngClass]=\"{ 'hide-bottom-content': !showBottomContent, 'full-width': fullWidth }\"\n >\n @if (label) {\n <mat-label>\n <ng-container [ngTemplateOutlet]=\"labelTpl\"></ng-container>\n </mat-label>\n }\n <input\n [attr.data-testid]=\"testId ?? 'datepicker-picker-input'\"\n matInput\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n (dateChange)=\"onValueChange($event.value)\"\n [id]=\"id!\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n [readonly]=\"preventUserInput\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <ui-icon\n matDatepickerToggleIcon\n [applicationTheme]=\"applicationTheme\"\n name=\"Calendar\"\n size=\"24\"\n color=\"inherit\"\n ></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n\n @if (\n hint && !_errors && !(ngControl?.touched && ($safeNavigationMigration(ngControl?.errors) | hasValidationError))\n ) {\n <mat-hint class=\"info\">{{ hint }} </mat-hint>\n }\n @if (errorsLength || (ngControl?.touched && ($safeNavigationMigration(ngControl?.errors) | hasValidationError))) {\n <mat-hint class=\"error\">\n <ng-container [ngTemplateOutlet]=\"hintsTpl\"></ng-container>\n </mat-hint>\n }\n </mat-form-field>\n }\n}\n\n<ng-template #labelTpl>{{ label + (required ? ' *' : '') }}</ng-template>\n<ng-template #hintsTpl>\n @if (errorsLength) {\n @for (error of _errors; track error) {\n <div class=\"errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n }\n }\n @if (ngControl && !hideBuiltInErrors) {\n <ui-validation-error [ngControl]=\"ngControl\" [label]=\"hideLabelInErrors ? null : label\"></ui-validation-error>\n }\n @if (showInnerErrors) {\n @if (isRange) {\n <div class=\"errors\">\n <ui-icon [applicationTheme]=\"applicationTheme\" name=\"Error\"></ui-icon>\n <span [innerHTML]=\"innerErrorsMessage\"></span>\n </div>\n }\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { UiTranslatePipe, HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';\n\nimport { DatepickerComponent } from './datepicker.component';\nimport { NoDateFormatDirective } from './no-date-format.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n UiTranslatePipe,\n NoDateFormatDirective,\n HasValidationErrorPipe,\n ValidationErrorModule,\n DatepickerComponent,\n ],\n exports: [DatepickerComponent],\n})\nexport class DatepickerComponentModule {}\n"],"mappings":"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"}
|