carbon-components-angular 5.21.0 → 5.22.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.
Files changed (73) hide show
  1. package/datepicker/datepicker.component.d.ts +4 -39
  2. package/docs/documentation/components/DatePicker.html +108 -103
  3. package/docs/documentation/components/SideNav.html +59 -15
  4. package/docs/documentation/components/SideNavItem.html +123 -44
  5. package/docs/documentation/components/SideNavMenu.html +67 -25
  6. package/docs/documentation/coverage.html +10 -10
  7. package/docs/documentation/js/menu-wc.js +3 -3
  8. package/docs/documentation/js/menu-wc_es5.js +1 -1
  9. package/docs/documentation/js/search/search_index.js +2 -2
  10. package/docs/documentation/modules/SideNavModule.html +2 -1
  11. package/docs/documentation/modules/ThemeModule/dependencies.svg +15 -15
  12. package/docs/documentation/modules/ThemeModule.html +15 -15
  13. package/docs/documentation/modules/TilesModule/dependencies.svg +99 -99
  14. package/docs/documentation/modules/TilesModule.html +99 -99
  15. package/docs/documentation/modules/TimePickerModule/dependencies.svg +4 -4
  16. package/docs/documentation/modules/TimePickerModule.html +4 -4
  17. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +45 -49
  18. package/docs/documentation/modules/TimePickerSelectModule.html +45 -49
  19. package/docs/documentation/modules/ToggleModule/dependencies.svg +26 -26
  20. package/docs/documentation/modules/ToggleModule.html +26 -26
  21. package/docs/documentation/modules/TooltipModule/dependencies.svg +29 -29
  22. package/docs/documentation/modules/TooltipModule.html +29 -29
  23. package/docs/documentation/modules/TreeviewModule/dependencies.svg +36 -36
  24. package/docs/documentation/modules/TreeviewModule.html +36 -36
  25. package/docs/documentation.json +225 -132
  26. package/docs/storybook/{1325.5502bfb0.iframe.bundle.js → 1325.3c39c950.iframe.bundle.js} +1 -1
  27. package/docs/storybook/3348.4c108918.iframe.bundle.js +1 -0
  28. package/docs/storybook/{checkbox-checkbox-stories.ea872c08.iframe.bundle.js → checkbox-checkbox-stories.3aeae19d.iframe.bundle.js} +1 -1
  29. package/docs/storybook/{content-switcher-content-switcher-stories.2f8cdd41.iframe.bundle.js → content-switcher-content-switcher-stories.8f3aa078.iframe.bundle.js} +1 -1
  30. package/docs/storybook/{grid-css-grid-stories.f5c396e2.iframe.bundle.js → grid-css-grid-stories.c703f9de.iframe.bundle.js} +1 -1
  31. package/docs/storybook/{grid-grid-stories.0b935617.iframe.bundle.js → grid-grid-stories.f7a88c02.iframe.bundle.js} +1 -1
  32. package/docs/storybook/iframe.html +2 -2
  33. package/docs/storybook/index.json +1 -1
  34. package/docs/storybook/{layer-layer-stories.8fdeec80.iframe.bundle.js → layer-layer-stories.9fc41371.iframe.bundle.js} +1 -1
  35. package/docs/storybook/{layout-stack-stories.e9f0fa18.iframe.bundle.js → layout-stack-stories.799a681c.iframe.bundle.js} +1 -1
  36. package/docs/storybook/{link-link-stories.23f8a587.iframe.bundle.js → link-link-stories.9e3dd976.iframe.bundle.js} +1 -1
  37. package/docs/storybook/{list-list-stories.79350958.iframe.bundle.js → list-list-stories.e906cf67.iframe.bundle.js} +1 -1
  38. package/docs/storybook/{loading-loading-stories.9594d513.iframe.bundle.js → loading-loading-stories.261bc118.iframe.bundle.js} +1 -1
  39. package/docs/storybook/main.d4ed0d37.iframe.bundle.js +1 -0
  40. package/docs/storybook/{popover-popover-stories.e8d6e7c9.iframe.bundle.js → popover-popover-stories.cc1684df.iframe.bundle.js} +1 -1
  41. package/docs/storybook/project.json +1 -1
  42. package/docs/storybook/{runtime~main.386e82b8.iframe.bundle.js → runtime~main.2883decf.iframe.bundle.js} +1 -1
  43. package/docs/storybook/{skeleton-skeleton-stories.48ffb189.iframe.bundle.js → skeleton-skeleton-stories.77f9485f.iframe.bundle.js} +1 -1
  44. package/docs/storybook/{slider-slider-stories.f608c3ca.iframe.bundle.js → slider-slider-stories.0a70e102.iframe.bundle.js} +1 -1
  45. package/docs/storybook/stories.json +1 -1
  46. package/docs/storybook/tabs-tabs-stories.183f4129.iframe.bundle.js +1 -0
  47. package/docs/storybook/{theme-theme-stories.781e4fdc.iframe.bundle.js → theme-theme-stories.66e1727e.iframe.bundle.js} +1 -1
  48. package/docs/storybook/{toggle-toggle-stories.7b2e3bc9.iframe.bundle.js → toggle-toggle-stories.def6c644.iframe.bundle.js} +1 -1
  49. package/docs/storybook/toggletip-toggletip-stories.22e37008.iframe.bundle.js +1 -0
  50. package/docs/storybook/{tooltip-definition-tooptip-stories.57864d79.iframe.bundle.js → tooltip-definition-tooptip-stories.2e1a211c.iframe.bundle.js} +1 -1
  51. package/docs/storybook/{tooltip-tooltip-stories.b15c3310.iframe.bundle.js → tooltip-tooltip-stories.6a4a1383.iframe.bundle.js} +1 -1
  52. package/docs/storybook/ui-shell-ui-shell-stories.a1fb87a2.iframe.bundle.js +1 -0
  53. package/esm2020/datepicker/datepicker.component.mjs +1 -1
  54. package/esm2020/ui-shell/sidenav/sidenav-item.component.mjs +55 -19
  55. package/esm2020/ui-shell/sidenav/sidenav-menu.component.mjs +11 -3
  56. package/esm2020/ui-shell/sidenav/sidenav.component.mjs +13 -3
  57. package/esm2020/ui-shell/sidenav/sidenav.module.mjs +5 -4
  58. package/fesm2015/carbon-components-angular-datepicker.mjs.map +1 -1
  59. package/fesm2015/carbon-components-angular-ui-shell.mjs +79 -25
  60. package/fesm2015/carbon-components-angular-ui-shell.mjs.map +1 -1
  61. package/fesm2020/carbon-components-angular-datepicker.mjs.map +1 -1
  62. package/fesm2020/carbon-components-angular-ui-shell.mjs +79 -25
  63. package/fesm2020/carbon-components-angular-ui-shell.mjs.map +1 -1
  64. package/package.json +1 -1
  65. package/ui-shell/sidenav/sidenav-item.component.d.ts +8 -4
  66. package/ui-shell/sidenav/sidenav-menu.component.d.ts +6 -2
  67. package/ui-shell/sidenav/sidenav.component.d.ts +5 -1
  68. package/ui-shell/sidenav/sidenav.module.d.ts +2 -1
  69. package/docs/storybook/3348.35ca85d6.iframe.bundle.js +0 -1
  70. package/docs/storybook/main.11f564c6.iframe.bundle.js +0 -1
  71. package/docs/storybook/tabs-tabs-stories.db9e209e.iframe.bundle.js +0 -1
  72. package/docs/storybook/toggletip-toggletip-stories.1da8eaf1.iframe.bundle.js +0 -1
  73. package/docs/storybook/ui-shell-ui-shell-stories.70551d65.iframe.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-datepicker.mjs","sources":["../../src/datepicker/carbon-flatpickr-month-select.ts","../../src/datepicker/datepicker.component.ts","../../src/datepicker/datepicker.module.ts","../../src/datepicker/carbon-components-angular-datepicker.ts"],"sourcesContent":["/**\n * This is from carbon-components.\n * We need it to format the month select according to specs.\n * Carbon currently doesn't expose this as a seperate package,\n * and we don't import the carbon-components js (on purpose)\n * so some copy pasta is required\n *\n * ref: https://github.com/carbon-design-system/carbon/blob/\n * \tf06f38f0c2ef624e409a3d5711e897a79f4c88fc/packages/components/src/components/date-picker/date-picker.js#L52-L123\n */\n\nconst monthToStr = (monthNumber, shorthand, locale) =>\n\tlocale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\n\nconst config = {\n\tselectorInit: \"[data-date-picker]\",\n\tselectorDatePickerInput: \"[data-date-picker-input]\",\n\tselectorDatePickerInputFrom: \"[data-date-picker-input-from]\",\n\tselectorDatePickerInputTo: \"[data-date-picker-input-to]\",\n\tselectorDatePickerIcon: \"[data-date-picker-icon]\",\n\tselectorFlatpickrMonthYearContainer: \".flatpickr-current-month\",\n\tselectorFlatpickrYearContainer: \".numInputWrapper\",\n\tselectorFlatpickrCurrentMonth: \".cur-month\",\n\tclassCalendarContainer: `cds--date-picker__calendar`,\n\tclassMonth: `cds--date-picker__month`,\n\tclassWeekdays: `cds--date-picker__weekdays`,\n\tclassDays: `cds--date-picker__days`,\n\tclassWeekday: `cds--date-picker__weekday`,\n\tclassDay: `cds--date-picker__day`,\n\tclassFocused: `cds--focused`,\n\tclassVisuallyHidden: `cds--visually-hidden`,\n\tclassFlatpickrCurrentMonth: \"cur-month\",\n\tattribType: \"data-date-picker-type\",\n\tdateFormat: \"m/d/Y\",\n\tshorthand: false\n};\n\nexport const carbonFlatpickrMonthSelectPlugin = fp => {\n\tconst setupElements = () => {\n\t\tif (!fp.monthElements || !fp.yearElements) {\n\t\t\treturn;\n\t\t}\n\t\tfp.monthElements.forEach(elem => {\n\t\t\tif (!elem.parentNode) { return; }\n\t\t\telem.parentNode.removeChild(elem);\n\t\t});\n\t\tfp.monthElements.splice(\n\t\t\t0,\n\t\t\tfp.monthElements.length,\n\t\t\t...fp.monthElements.map(() => {\n\t\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\t\tconst monthElement = fp._createElement(\n\t\t\t\t\t\"span\",\n\t\t\t\t\tconfig.classFlatpickrCurrentMonth\n\t\t\t\t);\n\t\t\t\tmonthElement.textContent = monthToStr(\n\t\t\t\t\tfp.currentMonth,\n\t\t\t\t\tconfig.shorthand === true,\n\t\t\t\t\tfp.l10n\n\t\t\t\t);\n\t\t\t\tfp.yearElements[0]\n\t\t\t\t\t.closest(config.selectorFlatpickrMonthYearContainer)\n\t\t\t\t\t.insertBefore(\n\t\t\t\t\t\tmonthElement,\n\t\t\t\t\t\tfp.yearElements[0].closest(config.selectorFlatpickrYearContainer)\n\t\t\t\t\t);\n\t\t\t\treturn monthElement;\n\t\t\t})\n\t\t);\n\t};\n\tconst updateCurrentMonth = () => {\n\t\tif (!fp.yearElements) {\n\t\t\treturn;\n\t\t}\n\t\tconst monthStr = monthToStr(\n\t\t\tfp.currentMonth,\n\t\t\tconfig.shorthand === true,\n\t\t\tfp.l10n\n\t\t);\n\t\tfp.yearElements.forEach(elem => {\n\t\t\tconst currentMonthContainer = elem.closest(\n\t\t\t\tconfig.selectorFlatpickrMonthYearContainer\n\t\t\t);\n\t\t\tArray.prototype.forEach.call(\n\t\t\t\tcurrentMonthContainer.querySelectorAll(\".cur-month\"),\n\t\t\t\tmonthElement => {\n\t\t\t\t\tmonthElement.textContent = monthStr;\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t};\n\n\tconst register = () => {\n\t\tfp.loadedPlugins.push(\"carbonFlatpickrMonthSelectPlugin\");\n\t};\n\n\treturn {\n\t\tonMonthChange: updateCurrentMonth,\n\t\tonValueUpdate: updateCurrentMonth,\n\t\tonOpen: updateCurrentMonth,\n\t\tonReady: [setupElements, updateCurrentMonth, register]\n\t};\n};\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tViewEncapsulation,\n\tElementRef,\n\tOnDestroy,\n\tHostListener,\n\tTemplateRef,\n\tOnChanges,\n\tSimpleChanges,\n\tAfterViewChecked,\n\tAfterViewInit,\n\tViewChild,\n\tOnInit,\n\tSimpleChange\n} from \"@angular/core\";\nimport rangePlugin from \"flatpickr/dist/plugins/rangePlugin\";\nimport flatpickr from \"flatpickr\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { carbonFlatpickrMonthSelectPlugin } from \"./carbon-flatpickr-month-select\";\nimport * as languages from \"flatpickr/dist/l10n/index\";\nimport { DatePickerInput } from \"carbon-components-angular/datepicker-input\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Due to type error, we have to use square brackets property accessor\n * There is a webpack issue when attempting to access exported languages from flatpickr l10n Angular 14+ apps\n * languages.default[locale] fails in app consuming CCA library but passes in test\n * languages.default.default[locale] fails in test but works in app consuming CCA library.\n *\n * To please both scenarios, we are adding a condition to prevent tests from failing\n */\nif (languages.default?.default[\"en\"]?.weekdays) {\n\t(languages.default.default[\"en\"].weekdays.shorthand as string[]) = languages.default.default[\"en\"].weekdays.longhand.map(day => {\n\t\tif (day === \"Thursday\") {\n\t\t\treturn \"Th\";\n\t\t}\n\t\treturn day.charAt(0);\n\t});\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { DatePickerModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-date-picker--single)\n */\n@Component({\n\tselector: \"cds-date-picker, ibm-date-picker\",\n\ttemplate: `\n\t<div class=\"cds--form-item\">\n\t\t<div\n\t\t\tclass=\"cds--date-picker\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--date-picker--range' : range,\n\t\t\t\t'cds--date-picker--single' : !range,\n\t\t\t\t'cds--date-picker--light' : theme === 'light',\n\t\t\t\t'cds--skeleton' : skeleton\n\t\t\t}\">\n\t\t\t<div class=\"cds--date-picker-container\">\n\t\t\t\t<cds-date-picker-input\n\t\t\t\t\t#input\n\t\t\t\t\t[label]=\"label\"\n\t\t\t\t\t[placeholder]=\"placeholder\"\n\t\t\t\t\t[pattern]=\"inputPattern\"\n\t\t\t\t\t[id]=\"id + '-input'\"\n\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t[type]=\"(range ? 'range' : 'single')\"\n\t\t\t\t\t[hasIcon]=\"(range ? false : true)\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t[invalid]=\"invalid\"\n\t\t\t\t\t[invalidText]=\"invalidText\"\n\t\t\t\t\t[warn]=\"warn\"\n\t\t\t\t\t[warnText]=\"warnText\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[helperText]=\"helperText\"\n\t\t\t\t\t(valueChange)=\"onValueChange($event)\"\n\t\t\t\t\t(click)=\"openCalendar(input)\">\n\t\t\t\t</cds-date-picker-input>\n\t\t\t</div>\n\n\t\t\t<div *ngIf=\"range\" class=\"cds--date-picker-container\">\n\t\t\t\t<cds-date-picker-input\n\t\t\t\t\t#rangeInput\n\t\t\t\t\t[label]=\"rangeLabel\"\n\t\t\t\t\t[placeholder]=\"placeholder\"\n\t\t\t\t\t[pattern]=\"inputPattern\"\n\t\t\t\t\t[id]=\"id + '-rangeInput'\"\n\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t[type]=\"(range ? 'range' : 'single')\"\n\t\t\t\t\t[hasIcon]=\"(range ? true : null)\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t[invalid]=\"rangeInvalid\"\n\t\t\t\t\t[invalidText]=\"rangeInvalidText\"\n\t\t\t\t\t[warn]=\"rangeWarn\"\n\t\t\t\t\t[warnText]=\"rangeWarnText\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[helperText]=\"rangeHelperText\"\n\t\t\t\t\t(valueChange)=\"onRangeValueChange($event)\"\n\t\t\t\t\t(click)=\"openCalendar(rangeInput)\">\n\t\t\t\t</cds-date-picker-input>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: DatePicker,\n\t\t\tmulti: true\n\t\t}\n\t],\n\tencapsulation: ViewEncapsulation.None\n})\nexport class DatePicker implements\n\tOnInit,\n\tOnDestroy,\n\tOnChanges,\n\tAfterViewChecked,\n\tAfterViewInit {\n\tprivate static datePickerCount = 0;\n\n\t/**\n\t * Select calendar range mode\n\t */\n\t@Input() range = false;\n\n\t/**\n\t * Format of date\n\t *\n\t * For reference: https://flatpickr.js.org/formatting/\n\t */\n\t@Input() dateFormat = \"m/d/Y\";\n\n\t/**\n\t * Language of the flatpickr calendar.\n\t *\n\t * For reference of the possible locales:\n\t * https://github.com/flatpickr/flatpickr/blob/master/src/l10n/index.ts\n\t */\n\t@Input() language = \"en\";\n\n\t@Input() label: string | TemplateRef<any>;\n\t@Input() helperText: string | TemplateRef<any>;\n\t@Input() rangeHelperText: string | TemplateRef<any>;\n\t@Input() rangeLabel: string;\n\n\t@Input() placeholder = \"mm/dd/yyyy\";\n\n\t/**\n\t * Aria label added to datepicker's calendar container.\n\t */\n\t@Input() ariaLabel = \"calendar container\";\n\n\t/**\n\t * The pattern for the underlying input element\n\t */\n\t@Input() inputPattern = \"^\\\\d{1,2}/\\\\d{1,2}/\\\\d{4}$\";\n\n\t@Input() id = `datepicker-${DatePicker.datePickerCount++}`;\n\n\t@Input() set value(v: (Date | string)[]) {\n\t\tif (!v) {\n\t\t\tv = [];\n\t\t}\n\t\tthis._value = v;\n\t}\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * Set to `\"light\"` to apply the light style\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` to display the invalid state.\n\t */\n\t@Input() invalid = false;\n\t/**\n\t * Value displayed if datepicker is in an invalid state.\n\t */\n\t@Input() invalidText: string | TemplateRef<any>;\n\t/**\n\t * Set to `true` to show a warning (contents set by warningText)\n\t */\n\t@Input() warn = false;\n\t/**\n\t * Sets the warning text\n\t */\n\t@Input() warnText: string | TemplateRef<any>;\n\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Set to `true` to display the invalid state for the second datepicker input.\n\t */\n\t@Input() rangeInvalid = false;\n\t/**\n\t * Value displayed if the second datepicker input is in an invalid state.\n\t */\n\t@Input() rangeInvalidText: string | TemplateRef<any>;\n\t/**\n\t * Set to `true` to show a warning in the second datepicker input (contents set by rangeWarningText)\n\t */\n\t@Input() rangeWarn = false;\n\t/**\n\t * Sets the warning text for the second datepicker input\n\t */\n\t@Input() rangeWarnText: string | TemplateRef<any>;\n\n\t@Input() skeleton = false;\n\n\t@Input() plugins = [];\n\n\t@Input()\n\tset flatpickrOptions(options) {\n\t\tthis._flatpickrOptions = Object.assign({}, this._flatpickrOptions, options);\n\t}\n\tget flatpickrOptions() {\n\t\tconst plugins = [...this.plugins, carbonFlatpickrMonthSelectPlugin];\n\t\tif (this.range) {\n\t\t\tplugins.push(rangePlugin({ input: `#${this.id}-rangeInput`, position: \"left\" }));\n\t\t}\n\t\treturn Object.assign({}, this._flatpickrOptions, this.flatpickrBaseOptions, {\n\t\t\tmode: this.range ? \"range\" : \"single\",\n\t\t\tplugins,\n\t\t\tdateFormat: this.dateFormat,\n\t\t\tlocale: languages.default?.default[this.language] || languages.default[this.language]\n\t\t});\n\t}\n\n\t@ViewChild(\"input\", { static: true }) input: DatePickerInput;\n\t@ViewChild(\"rangeInput\") rangeInput: DatePickerInput;\n\n\t@Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n\t/**\n\t * We are overriding onClose event even if users pass it via flatpickr options\n\t * Emits an event when date picker closes\n\t */\n\t@Output() onClose: EventEmitter<any> = new EventEmitter();\n\n\tprotected _value = [];\n\n\tprotected _flatpickrOptions = {\n\t\tallowInput: true\n\t};\n\n\tprotected flatpickrBaseOptions = {\n\t\tmode: \"single\",\n\t\tdateFormat: \"m/d/Y\",\n\t\tplugins: this.plugins,\n\t\tonOpen: () => {\n\t\t\tthis.updateClassNames();\n\t\t\tthis.updateAttributes();\n\t\t\tthis.updateCalendarListeners();\n\t\t},\n\t\tonClose: (date) => {\n\t\t\t// This makes sure that the `flatpickrInstance selectedDates` are in sync with the values of\n\t\t\t// the inputs when the calendar closes.\n\t\t\tif (this.range && this.flatpickrInstance) {\n\t\t\t\tif (this.flatpickrInstance.selectedDates.length !== 2) {\n\t\t\t\t\t// we could `this.flatpickrInstance.clear()` but it insists on opening the second picker\n\t\t\t\t\t// in some cases, so instead we do this\n\t\t\t\t\tthis.setDateValues([]);\n\t\t\t\t\tthis.doSelect([]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst inputValue = this.input.input.nativeElement.value;\n\t\t\t\tconst rangeInputValue = this.rangeInput.input.nativeElement.value;\n\t\t\t\tif (inputValue || rangeInputValue) {\n\t\t\t\t\tconst parseDate = (date: string) => this.flatpickrInstance.parseDate(date, this.dateFormat);\n\t\t\t\t\tthis.setDateValues([parseDate(inputValue), parseDate(rangeInputValue)]);\n\t\t\t\t\tthis.doSelect(this.flatpickrInstance.selectedDates);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onClose.emit(date);\n\t\t},\n\t\tonDayCreate: (_dObj, _dStr, _fp, dayElem) => {\n\t\t\tdayElem.classList.add(\"cds--date-picker__day\");\n\t\t},\n\t\tnextArrow: this.rightArrowHTML(),\n\t\tprevArrow: this.leftArrowHTML(),\n\t\tvalue: this.value\n\t};\n\n\tprotected flatpickrInstance = null;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected i18n: I18n\n\t) { }\n\n\tngOnInit() {\n\t\t// if i18n is set to anything other than en we'll want to change the language\n\t\t// otherwise we'll just use the local setting\n\t\tif (this.i18n.getLocale() !== \"en\") {\n\t\t\tthis.i18n.getLocaleObservable().subscribe(locale => {\n\t\t\t\tthis.language = locale;\n\t\t\t\tthis.resetFlatpickrInstance();\n\t\t\t});\n\t\t}\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\t// Reset the flatpickr instance on input changes that affect flatpickr.\n\t\tconst flatpickrChangeKeys = [\n\t\t\t\"range\",\n\t\t\t\"dateFormat\",\n\t\t\t\"language\",\n\t\t\t\"id\",\n\t\t\t\"value\",\n\t\t\t\"plugins\",\n\t\t\t\"flatpickrOptions\"\n\t\t];\n\t\tconst changeKeys = Object.keys(changes);\n\t\tif (changeKeys.some(key => flatpickrChangeKeys.includes(key))) {\n\t\t\tthis.resetFlatpickrInstance(changes.value);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.addInputListeners();\n\t\t}, 0);\n\t}\n\n\t// because the actual view may be delayed in loading (think projection into a tab pane)\n\t// and because we rely on a library that operates outside the Angular view of the world\n\t// we need to keep trying to load the library, until the relevant DOM is actually live\n\tngAfterViewChecked() {\n\t\tif (!this.isFlatpickrLoaded()) {\n\t\t\t// @ts-ignore ts is unhappy with the below call to `flatpickr`\n\t\t\tthis.flatpickrInstance = flatpickr(`#${this.id}-input`, this.flatpickrOptions);\n\t\t\t// if (and only if) the initialization succeeded, we can set the date values\n\t\t\tif (this.isFlatpickrLoaded()) {\n\t\t\t\tif (this.value.length > 0) {\n\t\t\t\t\tthis.setDateValues(this.value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener(\"focusin\")\n\tonFocus() {\n\t\t// Updates the month manually when calendar mode is range because month\n\t\t// will not update properly without manually updating them on focus.\n\t\tif (this.range) {\n\t\t\tif (this.rangeInput.input.nativeElement === document.activeElement && this.flatpickrInstance.selectedDates[1]) {\n\t\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[1].getMonth();\n\t\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\t\t\t} else if (this.input.input.nativeElement === document.activeElement && this.flatpickrInstance.selectedDates[0]) {\n\t\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[0].getMonth();\n\t\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener(\"focusout\")\n\tonFocusOut() {\n\t\tthis.onTouched();\n\t}\n\n\t/**\n\t * Writes a value from the model to the component. Expects the value to be `null` or `(Date | string)[]`\n\t * @param value value received from the model\n\t */\n\twriteValue(value: (Date | string)[]) {\n\t\tthis.value = value;\n\t\tsetTimeout(() => {\n\t\t\tif (this.isFlatpickrLoaded() && this.flatpickrInstance.config) {\n\t\t\t\tthis.setDateValues(this.value);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * `ControlValueAccessor` method to programmatically disable the DatePicker.\n\t *\n\t * ex: `this.formGroup.get(\"myDatePicker\").disable();`\n\t *\n\t * @param isDisabled `true` to disable the DatePicker\n\t */\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tregisterOnChange(fn: any) {\n\t\tthis.propagateChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any) {\n\t\tthis.onTouched = fn;\n\t}\n\n\tonTouched: () => any = () => { };\n\n\tpropagateChange = (_: any) => { };\n\n\t/**\n\t * Cleans up our flatpickr instance\n\t */\n\tngOnDestroy() {\n\t\tif (!this.isFlatpickrLoaded()) { return; }\n\t\tthis.flatpickrInstance.destroy();\n\t}\n\n\t/**\n\t * Handles the `valueChange` event from the primary/single input\n\t */\n\tonValueChange(event: string) {\n\t\tif (this.isFlatpickrLoaded()) {\n\t\t\tconst date = this.flatpickrInstance.parseDate(event, this.dateFormat);\n\t\t\tif (this.range) {\n\t\t\t\tthis.setDateValues([date, this.flatpickrInstance.selectedDates[1]]);\n\t\t\t} else {\n\t\t\t\tthis.setDateValues([date]);\n\t\t\t}\n\t\t\tthis.doSelect(this.flatpickrInstance.selectedDates);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the `valueChange` event from the range input\n\t */\n\tonRangeValueChange(event: string) {\n\t\tif (this.isFlatpickrLoaded() && this.flatpickrInstance.isOpen) {\n\t\t\tconst date = this.flatpickrInstance.parseDate(event, this.dateFormat);\n\t\t\tthis.setDateValues([this.flatpickrInstance.selectedDates[0], date]);\n\t\t\tthis.doSelect(this.flatpickrInstance.selectedDates);\n\t\t}\n\t}\n\n\t/**\n\t * Handles opening the calendar \"properly\" when the calendar icon is clicked.\n\t */\n\topenCalendar(datepickerInput: DatePickerInput) {\n\t\tif (this.range) {\n\t\t\tdatepickerInput.input.nativeElement.click();\n\n\t\t\t// If the first input's calendar icon is clicked when calendar is in range mode, then\n\t\t\t// the month and year needs to be manually changed to the current selected month and\n\t\t\t// year otherwise the calendar view will not be updated upon opening.\n\t\t\tif (datepickerInput === this.input && this.flatpickrInstance.selectedDates[0]) {\n\t\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[0].getMonth();\n\n\t\t\t\tthis.flatpickrInstance.currentYear = this.flatpickrInstance.selectedDates[0].getFullYear();\n\t\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\t\t\t}\n\t\t} else {\n\t\t\t// Single-mode flatpickr handles mousedown but not click, so nativeElement.click() won't\n\t\t\t// work when the calendar icon is clicked. In this case we simply use flatpickr.open().\n\t\t\tthis.flatpickrInstance.open();\n\t\t}\n\t}\n\n\tprotected updateCalendarListeners() {\n\t\tconst calendarContainer = document.querySelectorAll(\".flatpickr-calendar\");\n\t\tArray.from(calendarContainer).forEach(calendar => {\n\t\t\tcalendar.removeEventListener(\"click\", this.preventCalendarClose);\n\t\t\tcalendar.addEventListener(\"click\", this.preventCalendarClose);\n\t\t});\n\t}\n\n\t/**\n\t * Handles the initialization of event listeners for the datepicker input and range input fields.\n\t */\n\tprotected addInputListeners() {\n\t\tif (!this.isFlatpickrLoaded()) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Allows focus transition from the datepicker input or range input field to\n\t\t// flatpickr calendar using a keyboard.\n\t\tconst addFocusCalendarListener = (element: HTMLInputElement) => {\n\t\t\telement.addEventListener(\"keydown\", (event: KeyboardEvent) => {\n\t\t\t\tif (event.key === \"Escape\") {\n\t\t\t\t\tthis.flatpickrInstance.close();\n\t\t\t\t}\n\t\t\t\tif (event.key === \"ArrowDown\") {\n\t\t\t\t\tif (!this.flatpickrInstance.isOpen) {\n\t\t\t\t\t\tthis.flatpickrInstance.open();\n\t\t\t\t\t}\n\n\t\t\t\t\tconst calendarContainer = this.flatpickrInstance.calendarContainer;\n\t\t\t\t\tconst dayElement = calendarContainer && calendarContainer.querySelector(\".flatpickr-day[tabindex]\");\n\n\t\t\t\t\tif (dayElement) {\n\t\t\t\t\t\tdayElement.focus();\n\n\t\t\t\t\t\t// If the user manually inputs a value into the date field and presses arrow down,\n\t\t\t\t\t\t// datepicker input onchange will be triggered when focus is removed from it and\n\t\t\t\t\t\t// `flatpickrInstance.setDate` and `flatpickrInstance.changeMonth` will be invoked\n\t\t\t\t\t\t// which will automatically change focus to the beginning of the document.\n\t\t\t\t\t\tif (document.activeElement !== dayElement && this.flatpickrInstance.selectedDateElem) {\n\t\t\t\t\t\t\tthis.flatpickrInstance.selectedDateElem.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tif (this.input && this.input.input) {\n\t\t\taddFocusCalendarListener(this.input.input.nativeElement);\n\t\t}\n\n\t\tif (this.rangeInput && this.rangeInput.input) {\n\t\t\taddFocusCalendarListener(this.rangeInput.input.nativeElement);\n\t\t}\n\t}\n\n\t/**\n\t * Resets the flatpickr instance while keeping the date values (or updating them if newDates is provided)\n\t *\n\t * Used to pick up input changes or locale changes.\n\t *\n\t * @param newDates An optional SimpleChange of date values\n\t */\n\tprotected resetFlatpickrInstance(newDates?: SimpleChange) {\n\t\tif (this.isFlatpickrLoaded()) {\n\t\t\tlet dates = this.flatpickrInstance.selectedDates;\n\t\t\tif (newDates && this.didDateValueChange(newDates.currentValue, newDates.previousValue)) {\n\t\t\t\tdates = newDates.currentValue;\n\t\t\t}\n\t\t\t// only reset the flatpickr instance on Input changes\n\t\t\t// @ts-ignore ts is unhappy with the below call to `flatpickr`\n\t\t\tthis.flatpickrInstance = flatpickr(`#${this.id}-input`, this.flatpickrOptions);\n\t\t\tthis.setDateValues(dates);\n\t\t}\n\t}\n\n\t/**\n\t * Carbon uses a number of specific classnames for parts of the flatpickr - this idempotent method applies them if needed.\n\t */\n\tprotected updateClassNames() {\n\t\tif (!this.elementRef) { return; }\n\t\t// get all the possible flatpickrs in the document - we need to add classes to (potentially) all of them\n\t\tconst calendarContainer = document.querySelectorAll(\".flatpickr-calendar\");\n\t\tconst monthContainer = document.querySelectorAll(\".flatpickr-month\");\n\t\tconst weekdaysContainer = document.querySelectorAll(\".flatpickr-weekdays\");\n\t\tconst weekdayContainer = document.querySelectorAll(\".flatpickr-weekday\");\n\t\tconst daysContainer = document.querySelectorAll(\".flatpickr-days\");\n\t\tconst dayContainer = document.querySelectorAll(\".flatpickr-day\");\n\n\t\t// add classes to lists of elements\n\t\tconst addClassIfNotExists = (classname: string, elementList: NodeListOf<Element>) => {\n\t\t\tArray.from(elementList).forEach(element => {\n\t\t\t\tif (!element.classList.contains(classname)) {\n\t\t\t\t\telement.classList.add(classname);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// add classes (but only if they don't exist, small perf win)\n\t\taddClassIfNotExists(\"cds--date-picker__calendar\", calendarContainer);\n\t\taddClassIfNotExists(\"cds--date-picker__month\", monthContainer);\n\t\taddClassIfNotExists(\"cds--date-picker__weekdays\", weekdaysContainer);\n\t\taddClassIfNotExists(\"cds--date-picker__days\", daysContainer);\n\n\t\t// add weekday classes and format the text\n\t\tArray.from(weekdayContainer).forEach(element => {\n\t\t\telement.innerHTML = element.innerHTML.replace(/\\s+/g, \"\");\n\t\t\telement.classList.add(\"cds--date-picker__weekday\");\n\t\t});\n\n\t\t// add day classes and special case the \"today\" element based on `this.value`\n\t\tArray.from(dayContainer).forEach(element => {\n\t\t\telement.classList.add(\"cds--date-picker__day\");\n\t\t\tif (!this.value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (element.classList.contains(\"today\") && this.value.length > 0) {\n\t\t\t\telement.classList.add(\"no-border\");\n\t\t\t} else if (element.classList.contains(\"today\") && this.value.length === 0) {\n\t\t\t\telement.classList.remove(\"no-border\");\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected updateAttributes() {\n\t\tconst calendarContainer = document.querySelectorAll(\".flatpickr-calendar\");\n\t\tArray.from(calendarContainer).forEach(calendar => {\n\t\t\tcalendar.setAttribute(\"role\", \"region\");\n\t\t\tcalendar.setAttribute(\"aria-label\", this.ariaLabel);\n\t\t});\n\t}\n\n\t/**\n\t * Applies the given date value array to both the flatpickr instance and the `input`(s)\n\t * @param dates the date values to apply\n\t */\n\tprotected setDateValues(dates: (Date | string)[]) {\n\t\tif (this.isFlatpickrLoaded()) {\n\t\t\tconst singleInput = this.elementRef.nativeElement.querySelector(`#${this.id}-input`);\n\t\t\tconst rangeInput = this.elementRef.nativeElement.querySelector(`#${this.id}-rangeInput`);\n\n\t\t\t// `flatpickrInstance.setDate` removes the focus on the selected date element and will\n\t\t\t// automatically change focus to the beginning of the document. If a selected date is\n\t\t\t// focused before `flatpickrInstance.setDate` is invoked then it should remain focused.\n\t\t\tlet shouldRefocusDateElement = this.flatpickrInstance.selectedDateElem === document.activeElement;\n\n\t\t\t// set the date on the instance\n\t\t\tthis.flatpickrInstance.setDate(dates);\n\n\t\t\tif (shouldRefocusDateElement) {\n\t\t\t\tthis.flatpickrInstance.selectedDateElem.focus();\n\t\t\t}\n\n\t\t\t// we can either set a date value or an empty string, so we start with an empty string\n\t\t\tlet singleDate = \"\";\n\t\t\t// if date is a string, parse and format\n\t\t\tif (typeof this.flatpickrInstance.selectedDates[0] === \"string\") {\n\t\t\t\tsingleDate = this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[0], this.dateFormat);\n\t\t\t\tsingleDate = this.flatpickrInstance.formatDate(singleDate, this.dateFormat);\n\t\t\t// if date is not a string we can assume it's a Date and we should format\n\t\t\t} else if (!!this.flatpickrInstance.selectedDates[0]) {\n\t\t\t\tsingleDate = this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[0], this.dateFormat);\n\t\t\t}\n\n\t\t\tif (rangeInput) {\n\t\t\t\t// we can either set a date value or an empty string, so we start with an empty string\n\t\t\t\tlet rangeDate = \"\";\n\t\t\t\t// if date is a string, parse and format\n\t\t\t\tif (typeof this.flatpickrInstance.selectedDates[1] === \"string\") {\n\t\t\t\t\trangeDate = this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[1].toString(), this.dateFormat);\n\t\t\t\t\trangeDate = this.flatpickrInstance.formatDate(rangeDate, this.dateFormat);\n\t\t\t\t// if date is not a string we can assume it's a Date and we should format\n\t\t\t\t} else if (!!this.flatpickrInstance.selectedDates[1]) {\n\t\t\t\t\trangeDate = this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[1], this.dateFormat);\n\t\t\t\t}\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t// apply the values\n\t\t\t\t\trangeInput.value = rangeDate;\n\t\t\t\t\tsingleInput.value = singleDate;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected preventCalendarClose = event => event.stopPropagation();\n\n\tprotected doSelect(selectedValue: (Date | string)[]) {\n\t\t// In range mode, if a date is selected from the first calendar that is from the previous month,\n\t\t// the month will not be updated on the calendar until the calendar is re-opened.\n\t\t// This will make sure the calendar is updated with the correct month.\n\t\tif (this.range && this.flatpickrInstance.selectedDates[0]) {\n\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[0].getMonth();\n\n\t\t\t// `flatpickrInstance.changeMonth` removes the focus on the selected date element and will\n\t\t\t// automatically change focus to the beginning of the document. If a selected date is\n\t\t\t// focused before `flatpickrInstance.changeMonth` is invoked then it should remain focused.\n\t\t\tlet shouldRefocusDateElement = this.flatpickrInstance.selectedDateElem === document.activeElement;\n\n\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\n\t\t\tif (shouldRefocusDateElement) {\n\t\t\t\tthis.flatpickrInstance.selectedDateElem.focus();\n\t\t\t}\n\n\t\t}\n\t\tthis.valueChange.emit(selectedValue);\n\t\tthis.propagateChange(selectedValue);\n\t}\n\n\tprotected didDateValueChange(currentValue, previousValue) {\n\t\treturn currentValue[0] !== previousValue[0] || currentValue[1] !== previousValue[1];\n\t}\n\n\t/**\n\t * More advanced checking of the loaded state of flatpickr\n\t */\n\tprotected isFlatpickrLoaded() {\n\t\t// cast the instance to a boolean, and some method that has to exist for the library to be loaded in this case `setDate`\n\t\treturn !!this.flatpickrInstance && !!this.flatpickrInstance.setDate;\n\t}\n\n\t/**\n\t * Right arrow HTML passed to flatpickr\n\t */\n\tprotected rightArrowHTML() {\n\t\treturn `\n\t\t\t<svg width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\">\n\t\t\t\t<polygon points=\"11,8 6,13 5.3,12.3 9.6,8 5.3,3.7 6,3 \"/>\n\t\t\t\t<rect width=\"16\" height=\"16\" style=\"fill:none\" />\n\t\t\t</svg>`;\n\t}\n\n\t/**\n\t * Left arrow HTML passed to flatpickr\n\t */\n\tprotected leftArrowHTML() {\n\t\treturn `\n\t\t\t<svg width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\">\n\t\t\t\t<polygon points=\"5,8 10,3 10.7,3.7 6.4,8 10.7,12.3 10,13 \"/>\n\t\t\t\t<rect width=\"16\" height=\"16\" style=\"fill:none\" />\n\t\t\t</svg>`;\n\t}\n}\n","import { DatePickerInputModule } from \"carbon-components-angular/datepicker-input\";\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DatePicker } from \"./datepicker.component\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\n\n@NgModule({\n\tdeclarations: [\n\t\tDatePicker\n\t],\n\texports: [\n\t\tDatePicker,\n\t\tDatePickerInputModule\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tDatePickerInputModule,\n\t\tUtilsModule,\n\t\tI18nModule\n\t]\n})\nexport class DatePickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-datepicker.mjs","sources":["../../src/datepicker/carbon-flatpickr-month-select.ts","../../src/datepicker/datepicker.component.ts","../../src/datepicker/datepicker.module.ts","../../src/datepicker/carbon-components-angular-datepicker.ts"],"sourcesContent":["/**\n * This is from carbon-components.\n * We need it to format the month select according to specs.\n * Carbon currently doesn't expose this as a seperate package,\n * and we don't import the carbon-components js (on purpose)\n * so some copy pasta is required\n *\n * ref: https://github.com/carbon-design-system/carbon/blob/\n * \tf06f38f0c2ef624e409a3d5711e897a79f4c88fc/packages/components/src/components/date-picker/date-picker.js#L52-L123\n */\n\nconst monthToStr = (monthNumber, shorthand, locale) =>\n\tlocale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\n\nconst config = {\n\tselectorInit: \"[data-date-picker]\",\n\tselectorDatePickerInput: \"[data-date-picker-input]\",\n\tselectorDatePickerInputFrom: \"[data-date-picker-input-from]\",\n\tselectorDatePickerInputTo: \"[data-date-picker-input-to]\",\n\tselectorDatePickerIcon: \"[data-date-picker-icon]\",\n\tselectorFlatpickrMonthYearContainer: \".flatpickr-current-month\",\n\tselectorFlatpickrYearContainer: \".numInputWrapper\",\n\tselectorFlatpickrCurrentMonth: \".cur-month\",\n\tclassCalendarContainer: `cds--date-picker__calendar`,\n\tclassMonth: `cds--date-picker__month`,\n\tclassWeekdays: `cds--date-picker__weekdays`,\n\tclassDays: `cds--date-picker__days`,\n\tclassWeekday: `cds--date-picker__weekday`,\n\tclassDay: `cds--date-picker__day`,\n\tclassFocused: `cds--focused`,\n\tclassVisuallyHidden: `cds--visually-hidden`,\n\tclassFlatpickrCurrentMonth: \"cur-month\",\n\tattribType: \"data-date-picker-type\",\n\tdateFormat: \"m/d/Y\",\n\tshorthand: false\n};\n\nexport const carbonFlatpickrMonthSelectPlugin = fp => {\n\tconst setupElements = () => {\n\t\tif (!fp.monthElements || !fp.yearElements) {\n\t\t\treturn;\n\t\t}\n\t\tfp.monthElements.forEach(elem => {\n\t\t\tif (!elem.parentNode) { return; }\n\t\t\telem.parentNode.removeChild(elem);\n\t\t});\n\t\tfp.monthElements.splice(\n\t\t\t0,\n\t\t\tfp.monthElements.length,\n\t\t\t...fp.monthElements.map(() => {\n\t\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\t\tconst monthElement = fp._createElement(\n\t\t\t\t\t\"span\",\n\t\t\t\t\tconfig.classFlatpickrCurrentMonth\n\t\t\t\t);\n\t\t\t\tmonthElement.textContent = monthToStr(\n\t\t\t\t\tfp.currentMonth,\n\t\t\t\t\tconfig.shorthand === true,\n\t\t\t\t\tfp.l10n\n\t\t\t\t);\n\t\t\t\tfp.yearElements[0]\n\t\t\t\t\t.closest(config.selectorFlatpickrMonthYearContainer)\n\t\t\t\t\t.insertBefore(\n\t\t\t\t\t\tmonthElement,\n\t\t\t\t\t\tfp.yearElements[0].closest(config.selectorFlatpickrYearContainer)\n\t\t\t\t\t);\n\t\t\t\treturn monthElement;\n\t\t\t})\n\t\t);\n\t};\n\tconst updateCurrentMonth = () => {\n\t\tif (!fp.yearElements) {\n\t\t\treturn;\n\t\t}\n\t\tconst monthStr = monthToStr(\n\t\t\tfp.currentMonth,\n\t\t\tconfig.shorthand === true,\n\t\t\tfp.l10n\n\t\t);\n\t\tfp.yearElements.forEach(elem => {\n\t\t\tconst currentMonthContainer = elem.closest(\n\t\t\t\tconfig.selectorFlatpickrMonthYearContainer\n\t\t\t);\n\t\t\tArray.prototype.forEach.call(\n\t\t\t\tcurrentMonthContainer.querySelectorAll(\".cur-month\"),\n\t\t\t\tmonthElement => {\n\t\t\t\t\tmonthElement.textContent = monthStr;\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t};\n\n\tconst register = () => {\n\t\tfp.loadedPlugins.push(\"carbonFlatpickrMonthSelectPlugin\");\n\t};\n\n\treturn {\n\t\tonMonthChange: updateCurrentMonth,\n\t\tonValueUpdate: updateCurrentMonth,\n\t\tonOpen: updateCurrentMonth,\n\t\tonReady: [setupElements, updateCurrentMonth, register]\n\t};\n};\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tViewEncapsulation,\n\tElementRef,\n\tOnDestroy,\n\tHostListener,\n\tTemplateRef,\n\tOnChanges,\n\tSimpleChanges,\n\tAfterViewChecked,\n\tAfterViewInit,\n\tViewChild,\n\tOnInit,\n\tSimpleChange\n} from \"@angular/core\";\nimport rangePlugin from \"flatpickr/dist/plugins/rangePlugin\";\nimport flatpickr from \"flatpickr\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { carbonFlatpickrMonthSelectPlugin } from \"./carbon-flatpickr-month-select\";\nimport * as languages from \"flatpickr/dist/l10n/index\";\nimport { Options } from \"flatpickr/dist/types/options\";\nimport { DatePickerInput } from \"carbon-components-angular/datepicker-input\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Due to type error, we have to use square brackets property accessor\n * There is a webpack issue when attempting to access exported languages from flatpickr l10n Angular 14+ apps\n * languages.default[locale] fails in app consuming CCA library but passes in test\n * languages.default.default[locale] fails in test but works in app consuming CCA library.\n *\n * To please both scenarios, we are adding a condition to prevent tests from failing\n */\nif (languages.default?.default[\"en\"]?.weekdays) {\n\t(languages.default.default[\"en\"].weekdays.shorthand as string[]) = languages.default.default[\"en\"].weekdays.longhand.map(day => {\n\t\tif (day === \"Thursday\") {\n\t\t\treturn \"Th\";\n\t\t}\n\t\treturn day.charAt(0);\n\t});\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { DatePickerModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-date-picker--single)\n */\n@Component({\n\tselector: \"cds-date-picker, ibm-date-picker\",\n\ttemplate: `\n\t<div class=\"cds--form-item\">\n\t\t<div\n\t\t\tclass=\"cds--date-picker\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--date-picker--range' : range,\n\t\t\t\t'cds--date-picker--single' : !range,\n\t\t\t\t'cds--date-picker--light' : theme === 'light',\n\t\t\t\t'cds--skeleton' : skeleton\n\t\t\t}\">\n\t\t\t<div class=\"cds--date-picker-container\">\n\t\t\t\t<cds-date-picker-input\n\t\t\t\t\t#input\n\t\t\t\t\t[label]=\"label\"\n\t\t\t\t\t[placeholder]=\"placeholder\"\n\t\t\t\t\t[pattern]=\"inputPattern\"\n\t\t\t\t\t[id]=\"id + '-input'\"\n\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t[type]=\"(range ? 'range' : 'single')\"\n\t\t\t\t\t[hasIcon]=\"(range ? false : true)\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t[invalid]=\"invalid\"\n\t\t\t\t\t[invalidText]=\"invalidText\"\n\t\t\t\t\t[warn]=\"warn\"\n\t\t\t\t\t[warnText]=\"warnText\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[helperText]=\"helperText\"\n\t\t\t\t\t(valueChange)=\"onValueChange($event)\"\n\t\t\t\t\t(click)=\"openCalendar(input)\">\n\t\t\t\t</cds-date-picker-input>\n\t\t\t</div>\n\n\t\t\t<div *ngIf=\"range\" class=\"cds--date-picker-container\">\n\t\t\t\t<cds-date-picker-input\n\t\t\t\t\t#rangeInput\n\t\t\t\t\t[label]=\"rangeLabel\"\n\t\t\t\t\t[placeholder]=\"placeholder\"\n\t\t\t\t\t[pattern]=\"inputPattern\"\n\t\t\t\t\t[id]=\"id + '-rangeInput'\"\n\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t[type]=\"(range ? 'range' : 'single')\"\n\t\t\t\t\t[hasIcon]=\"(range ? true : null)\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t[invalid]=\"rangeInvalid\"\n\t\t\t\t\t[invalidText]=\"rangeInvalidText\"\n\t\t\t\t\t[warn]=\"rangeWarn\"\n\t\t\t\t\t[warnText]=\"rangeWarnText\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[helperText]=\"rangeHelperText\"\n\t\t\t\t\t(valueChange)=\"onRangeValueChange($event)\"\n\t\t\t\t\t(click)=\"openCalendar(rangeInput)\">\n\t\t\t\t</cds-date-picker-input>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: DatePicker,\n\t\t\tmulti: true\n\t\t}\n\t],\n\tencapsulation: ViewEncapsulation.None\n})\nexport class DatePicker implements\n\tOnInit,\n\tOnDestroy,\n\tOnChanges,\n\tAfterViewChecked,\n\tAfterViewInit {\n\tprivate static datePickerCount = 0;\n\n\t/**\n\t * Select calendar range mode\n\t */\n\t@Input() range = false;\n\n\t/**\n\t * Format of date\n\t *\n\t * For reference: https://flatpickr.js.org/formatting/\n\t */\n\t@Input() dateFormat = \"m/d/Y\";\n\n\t/**\n\t * Language of the flatpickr calendar.\n\t *\n\t * For reference of the possible locales:\n\t * https://github.com/flatpickr/flatpickr/blob/master/src/l10n/index.ts\n\t */\n\t@Input() language = \"en\";\n\n\t@Input() label: string | TemplateRef<any>;\n\t@Input() helperText: string | TemplateRef<any>;\n\t@Input() rangeHelperText: string | TemplateRef<any>;\n\t@Input() rangeLabel: string;\n\n\t@Input() placeholder = \"mm/dd/yyyy\";\n\n\t/**\n\t * Aria label added to datepicker's calendar container.\n\t */\n\t@Input() ariaLabel = \"calendar container\";\n\n\t/**\n\t * The pattern for the underlying input element\n\t */\n\t@Input() inputPattern = \"^\\\\d{1,2}/\\\\d{1,2}/\\\\d{4}$\";\n\n\t@Input() id = `datepicker-${DatePicker.datePickerCount++}`;\n\n\t@Input() set value(v: (Date | string)[]) {\n\t\tif (!v) {\n\t\t\tv = [];\n\t\t}\n\t\tthis._value = v;\n\t}\n\n\tget value() {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * Set to `\"light\"` to apply the light style\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` to display the invalid state.\n\t */\n\t@Input() invalid = false;\n\t/**\n\t * Value displayed if datepicker is in an invalid state.\n\t */\n\t@Input() invalidText: string | TemplateRef<any>;\n\t/**\n\t * Set to `true` to show a warning (contents set by warningText)\n\t */\n\t@Input() warn = false;\n\t/**\n\t * Sets the warning text\n\t */\n\t@Input() warnText: string | TemplateRef<any>;\n\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Set to `true` to display the invalid state for the second datepicker input.\n\t */\n\t@Input() rangeInvalid = false;\n\t/**\n\t * Value displayed if the second datepicker input is in an invalid state.\n\t */\n\t@Input() rangeInvalidText: string | TemplateRef<any>;\n\t/**\n\t * Set to `true` to show a warning in the second datepicker input (contents set by rangeWarningText)\n\t */\n\t@Input() rangeWarn = false;\n\t/**\n\t * Sets the warning text for the second datepicker input\n\t */\n\t@Input() rangeWarnText: string | TemplateRef<any>;\n\n\t@Input() skeleton = false;\n\n\t@Input() plugins = [];\n\n\t@Input()\n\tset flatpickrOptions(options: Partial<Options>) {\n\t\tthis._flatpickrOptions = Object.assign({}, this._flatpickrOptions, options);\n\t}\n\tget flatpickrOptions(): Partial<Options> {\n\t\tconst plugins = [...this.plugins, carbonFlatpickrMonthSelectPlugin];\n\t\tif (this.range) {\n\t\t\tplugins.push(rangePlugin({ input: `#${this.id}-rangeInput`, position: \"left\" }));\n\t\t}\n\t\treturn Object.assign({}, this._flatpickrOptions, this.flatpickrBaseOptions, {\n\t\t\tmode: this.range ? \"range\" : \"single\",\n\t\t\tplugins,\n\t\t\tdateFormat: this.dateFormat,\n\t\t\tlocale: languages.default?.default[this.language] || languages.default[this.language]\n\t\t});\n\t}\n\n\t@ViewChild(\"input\", { static: true }) input: DatePickerInput;\n\t@ViewChild(\"rangeInput\") rangeInput: DatePickerInput;\n\n\t@Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n\t/**\n\t * We are overriding onClose event even if users pass it via flatpickr options\n\t * Emits an event when date picker closes\n\t */\n\t@Output() onClose: EventEmitter<any> = new EventEmitter();\n\n\tprotected _value = [];\n\n\tprotected _flatpickrOptions: Partial<Options> = {\n\t\tallowInput: true\n\t};\n\n\tprotected flatpickrBaseOptions = {\n\t\tmode: \"single\",\n\t\tdateFormat: \"m/d/Y\",\n\t\tplugins: this.plugins,\n\t\tonOpen: () => {\n\t\t\tthis.updateClassNames();\n\t\t\tthis.updateAttributes();\n\t\t\tthis.updateCalendarListeners();\n\t\t},\n\t\tonClose: (date) => {\n\t\t\t// This makes sure that the `flatpickrInstance selectedDates` are in sync with the values of\n\t\t\t// the inputs when the calendar closes.\n\t\t\tif (this.range && this.flatpickrInstance) {\n\t\t\t\tif (this.flatpickrInstance.selectedDates.length !== 2) {\n\t\t\t\t\t// we could `this.flatpickrInstance.clear()` but it insists on opening the second picker\n\t\t\t\t\t// in some cases, so instead we do this\n\t\t\t\t\tthis.setDateValues([]);\n\t\t\t\t\tthis.doSelect([]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst inputValue = this.input.input.nativeElement.value;\n\t\t\t\tconst rangeInputValue = this.rangeInput.input.nativeElement.value;\n\t\t\t\tif (inputValue || rangeInputValue) {\n\t\t\t\t\tconst parseDate = (date: string) => this.flatpickrInstance.parseDate(date, this.dateFormat);\n\t\t\t\t\tthis.setDateValues([parseDate(inputValue), parseDate(rangeInputValue)]);\n\t\t\t\t\tthis.doSelect(this.flatpickrInstance.selectedDates);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.onClose.emit(date);\n\t\t},\n\t\tonDayCreate: (_dObj, _dStr, _fp, dayElem) => {\n\t\t\tdayElem.classList.add(\"cds--date-picker__day\");\n\t\t},\n\t\tnextArrow: this.rightArrowHTML(),\n\t\tprevArrow: this.leftArrowHTML(),\n\t\tvalue: this.value\n\t};\n\n\tprotected flatpickrInstance = null;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected i18n: I18n\n\t) { }\n\n\tngOnInit() {\n\t\t// if i18n is set to anything other than en we'll want to change the language\n\t\t// otherwise we'll just use the local setting\n\t\tif (this.i18n.getLocale() !== \"en\") {\n\t\t\tthis.i18n.getLocaleObservable().subscribe(locale => {\n\t\t\t\tthis.language = locale;\n\t\t\t\tthis.resetFlatpickrInstance();\n\t\t\t});\n\t\t}\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\t// Reset the flatpickr instance on input changes that affect flatpickr.\n\t\tconst flatpickrChangeKeys = [\n\t\t\t\"range\",\n\t\t\t\"dateFormat\",\n\t\t\t\"language\",\n\t\t\t\"id\",\n\t\t\t\"value\",\n\t\t\t\"plugins\",\n\t\t\t\"flatpickrOptions\"\n\t\t];\n\t\tconst changeKeys = Object.keys(changes);\n\t\tif (changeKeys.some(key => flatpickrChangeKeys.includes(key))) {\n\t\t\tthis.resetFlatpickrInstance(changes.value);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.addInputListeners();\n\t\t}, 0);\n\t}\n\n\t// because the actual view may be delayed in loading (think projection into a tab pane)\n\t// and because we rely on a library that operates outside the Angular view of the world\n\t// we need to keep trying to load the library, until the relevant DOM is actually live\n\tngAfterViewChecked() {\n\t\tif (!this.isFlatpickrLoaded()) {\n\t\t\t// @ts-ignore ts is unhappy with the below call to `flatpickr`\n\t\t\tthis.flatpickrInstance = flatpickr(`#${this.id}-input`, this.flatpickrOptions);\n\t\t\t// if (and only if) the initialization succeeded, we can set the date values\n\t\t\tif (this.isFlatpickrLoaded()) {\n\t\t\t\tif (this.value.length > 0) {\n\t\t\t\t\tthis.setDateValues(this.value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener(\"focusin\")\n\tonFocus() {\n\t\t// Updates the month manually when calendar mode is range because month\n\t\t// will not update properly without manually updating them on focus.\n\t\tif (this.range) {\n\t\t\tif (this.rangeInput.input.nativeElement === document.activeElement && this.flatpickrInstance.selectedDates[1]) {\n\t\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[1].getMonth();\n\t\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\t\t\t} else if (this.input.input.nativeElement === document.activeElement && this.flatpickrInstance.selectedDates[0]) {\n\t\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[0].getMonth();\n\t\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener(\"focusout\")\n\tonFocusOut() {\n\t\tthis.onTouched();\n\t}\n\n\t/**\n\t * Writes a value from the model to the component. Expects the value to be `null` or `(Date | string)[]`\n\t * @param value value received from the model\n\t */\n\twriteValue(value: (Date | string)[]) {\n\t\tthis.value = value;\n\t\tsetTimeout(() => {\n\t\t\tif (this.isFlatpickrLoaded() && this.flatpickrInstance.config) {\n\t\t\t\tthis.setDateValues(this.value);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * `ControlValueAccessor` method to programmatically disable the DatePicker.\n\t *\n\t * ex: `this.formGroup.get(\"myDatePicker\").disable();`\n\t *\n\t * @param isDisabled `true` to disable the DatePicker\n\t */\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tregisterOnChange(fn: any) {\n\t\tthis.propagateChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any) {\n\t\tthis.onTouched = fn;\n\t}\n\n\tonTouched: () => any = () => { };\n\n\tpropagateChange = (_: any) => { };\n\n\t/**\n\t * Cleans up our flatpickr instance\n\t */\n\tngOnDestroy() {\n\t\tif (!this.isFlatpickrLoaded()) { return; }\n\t\tthis.flatpickrInstance.destroy();\n\t}\n\n\t/**\n\t * Handles the `valueChange` event from the primary/single input\n\t */\n\tonValueChange(event: string) {\n\t\tif (this.isFlatpickrLoaded()) {\n\t\t\tconst date = this.flatpickrInstance.parseDate(event, this.dateFormat);\n\t\t\tif (this.range) {\n\t\t\t\tthis.setDateValues([date, this.flatpickrInstance.selectedDates[1]]);\n\t\t\t} else {\n\t\t\t\tthis.setDateValues([date]);\n\t\t\t}\n\t\t\tthis.doSelect(this.flatpickrInstance.selectedDates);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the `valueChange` event from the range input\n\t */\n\tonRangeValueChange(event: string) {\n\t\tif (this.isFlatpickrLoaded() && this.flatpickrInstance.isOpen) {\n\t\t\tconst date = this.flatpickrInstance.parseDate(event, this.dateFormat);\n\t\t\tthis.setDateValues([this.flatpickrInstance.selectedDates[0], date]);\n\t\t\tthis.doSelect(this.flatpickrInstance.selectedDates);\n\t\t}\n\t}\n\n\t/**\n\t * Handles opening the calendar \"properly\" when the calendar icon is clicked.\n\t */\n\topenCalendar(datepickerInput: DatePickerInput) {\n\t\tif (this.range) {\n\t\t\tdatepickerInput.input.nativeElement.click();\n\n\t\t\t// If the first input's calendar icon is clicked when calendar is in range mode, then\n\t\t\t// the month and year needs to be manually changed to the current selected month and\n\t\t\t// year otherwise the calendar view will not be updated upon opening.\n\t\t\tif (datepickerInput === this.input && this.flatpickrInstance.selectedDates[0]) {\n\t\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[0].getMonth();\n\n\t\t\t\tthis.flatpickrInstance.currentYear = this.flatpickrInstance.selectedDates[0].getFullYear();\n\t\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\t\t\t}\n\t\t} else {\n\t\t\t// Single-mode flatpickr handles mousedown but not click, so nativeElement.click() won't\n\t\t\t// work when the calendar icon is clicked. In this case we simply use flatpickr.open().\n\t\t\tthis.flatpickrInstance.open();\n\t\t}\n\t}\n\n\tprotected updateCalendarListeners() {\n\t\tconst calendarContainer = document.querySelectorAll(\".flatpickr-calendar\");\n\t\tArray.from(calendarContainer).forEach(calendar => {\n\t\t\tcalendar.removeEventListener(\"click\", this.preventCalendarClose);\n\t\t\tcalendar.addEventListener(\"click\", this.preventCalendarClose);\n\t\t});\n\t}\n\n\t/**\n\t * Handles the initialization of event listeners for the datepicker input and range input fields.\n\t */\n\tprotected addInputListeners() {\n\t\tif (!this.isFlatpickrLoaded()) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Allows focus transition from the datepicker input or range input field to\n\t\t// flatpickr calendar using a keyboard.\n\t\tconst addFocusCalendarListener = (element: HTMLInputElement) => {\n\t\t\telement.addEventListener(\"keydown\", (event: KeyboardEvent) => {\n\t\t\t\tif (event.key === \"Escape\") {\n\t\t\t\t\tthis.flatpickrInstance.close();\n\t\t\t\t}\n\t\t\t\tif (event.key === \"ArrowDown\") {\n\t\t\t\t\tif (!this.flatpickrInstance.isOpen) {\n\t\t\t\t\t\tthis.flatpickrInstance.open();\n\t\t\t\t\t}\n\n\t\t\t\t\tconst calendarContainer = this.flatpickrInstance.calendarContainer;\n\t\t\t\t\tconst dayElement = calendarContainer && calendarContainer.querySelector(\".flatpickr-day[tabindex]\");\n\n\t\t\t\t\tif (dayElement) {\n\t\t\t\t\t\tdayElement.focus();\n\n\t\t\t\t\t\t// If the user manually inputs a value into the date field and presses arrow down,\n\t\t\t\t\t\t// datepicker input onchange will be triggered when focus is removed from it and\n\t\t\t\t\t\t// `flatpickrInstance.setDate` and `flatpickrInstance.changeMonth` will be invoked\n\t\t\t\t\t\t// which will automatically change focus to the beginning of the document.\n\t\t\t\t\t\tif (document.activeElement !== dayElement && this.flatpickrInstance.selectedDateElem) {\n\t\t\t\t\t\t\tthis.flatpickrInstance.selectedDateElem.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tif (this.input && this.input.input) {\n\t\t\taddFocusCalendarListener(this.input.input.nativeElement);\n\t\t}\n\n\t\tif (this.rangeInput && this.rangeInput.input) {\n\t\t\taddFocusCalendarListener(this.rangeInput.input.nativeElement);\n\t\t}\n\t}\n\n\t/**\n\t * Resets the flatpickr instance while keeping the date values (or updating them if newDates is provided)\n\t *\n\t * Used to pick up input changes or locale changes.\n\t *\n\t * @param newDates An optional SimpleChange of date values\n\t */\n\tprotected resetFlatpickrInstance(newDates?: SimpleChange) {\n\t\tif (this.isFlatpickrLoaded()) {\n\t\t\tlet dates = this.flatpickrInstance.selectedDates;\n\t\t\tif (newDates && this.didDateValueChange(newDates.currentValue, newDates.previousValue)) {\n\t\t\t\tdates = newDates.currentValue;\n\t\t\t}\n\t\t\t// only reset the flatpickr instance on Input changes\n\t\t\t// @ts-ignore ts is unhappy with the below call to `flatpickr`\n\t\t\tthis.flatpickrInstance = flatpickr(`#${this.id}-input`, this.flatpickrOptions);\n\t\t\tthis.setDateValues(dates);\n\t\t}\n\t}\n\n\t/**\n\t * Carbon uses a number of specific classnames for parts of the flatpickr - this idempotent method applies them if needed.\n\t */\n\tprotected updateClassNames() {\n\t\tif (!this.elementRef) { return; }\n\t\t// get all the possible flatpickrs in the document - we need to add classes to (potentially) all of them\n\t\tconst calendarContainer = document.querySelectorAll(\".flatpickr-calendar\");\n\t\tconst monthContainer = document.querySelectorAll(\".flatpickr-month\");\n\t\tconst weekdaysContainer = document.querySelectorAll(\".flatpickr-weekdays\");\n\t\tconst weekdayContainer = document.querySelectorAll(\".flatpickr-weekday\");\n\t\tconst daysContainer = document.querySelectorAll(\".flatpickr-days\");\n\t\tconst dayContainer = document.querySelectorAll(\".flatpickr-day\");\n\n\t\t// add classes to lists of elements\n\t\tconst addClassIfNotExists = (classname: string, elementList: NodeListOf<Element>) => {\n\t\t\tArray.from(elementList).forEach(element => {\n\t\t\t\tif (!element.classList.contains(classname)) {\n\t\t\t\t\telement.classList.add(classname);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// add classes (but only if they don't exist, small perf win)\n\t\taddClassIfNotExists(\"cds--date-picker__calendar\", calendarContainer);\n\t\taddClassIfNotExists(\"cds--date-picker__month\", monthContainer);\n\t\taddClassIfNotExists(\"cds--date-picker__weekdays\", weekdaysContainer);\n\t\taddClassIfNotExists(\"cds--date-picker__days\", daysContainer);\n\n\t\t// add weekday classes and format the text\n\t\tArray.from(weekdayContainer).forEach(element => {\n\t\t\telement.innerHTML = element.innerHTML.replace(/\\s+/g, \"\");\n\t\t\telement.classList.add(\"cds--date-picker__weekday\");\n\t\t});\n\n\t\t// add day classes and special case the \"today\" element based on `this.value`\n\t\tArray.from(dayContainer).forEach(element => {\n\t\t\telement.classList.add(\"cds--date-picker__day\");\n\t\t\tif (!this.value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (element.classList.contains(\"today\") && this.value.length > 0) {\n\t\t\t\telement.classList.add(\"no-border\");\n\t\t\t} else if (element.classList.contains(\"today\") && this.value.length === 0) {\n\t\t\t\telement.classList.remove(\"no-border\");\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected updateAttributes() {\n\t\tconst calendarContainer = document.querySelectorAll(\".flatpickr-calendar\");\n\t\tArray.from(calendarContainer).forEach(calendar => {\n\t\t\tcalendar.setAttribute(\"role\", \"region\");\n\t\t\tcalendar.setAttribute(\"aria-label\", this.ariaLabel);\n\t\t});\n\t}\n\n\t/**\n\t * Applies the given date value array to both the flatpickr instance and the `input`(s)\n\t * @param dates the date values to apply\n\t */\n\tprotected setDateValues(dates: (Date | string)[]) {\n\t\tif (this.isFlatpickrLoaded()) {\n\t\t\tconst singleInput = this.elementRef.nativeElement.querySelector(`#${this.id}-input`);\n\t\t\tconst rangeInput = this.elementRef.nativeElement.querySelector(`#${this.id}-rangeInput`);\n\n\t\t\t// `flatpickrInstance.setDate` removes the focus on the selected date element and will\n\t\t\t// automatically change focus to the beginning of the document. If a selected date is\n\t\t\t// focused before `flatpickrInstance.setDate` is invoked then it should remain focused.\n\t\t\tlet shouldRefocusDateElement = this.flatpickrInstance.selectedDateElem === document.activeElement;\n\n\t\t\t// set the date on the instance\n\t\t\tthis.flatpickrInstance.setDate(dates);\n\n\t\t\tif (shouldRefocusDateElement) {\n\t\t\t\tthis.flatpickrInstance.selectedDateElem.focus();\n\t\t\t}\n\n\t\t\t// we can either set a date value or an empty string, so we start with an empty string\n\t\t\tlet singleDate = \"\";\n\t\t\t// if date is a string, parse and format\n\t\t\tif (typeof this.flatpickrInstance.selectedDates[0] === \"string\") {\n\t\t\t\tsingleDate = this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[0], this.dateFormat);\n\t\t\t\tsingleDate = this.flatpickrInstance.formatDate(singleDate, this.dateFormat);\n\t\t\t// if date is not a string we can assume it's a Date and we should format\n\t\t\t} else if (!!this.flatpickrInstance.selectedDates[0]) {\n\t\t\t\tsingleDate = this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[0], this.dateFormat);\n\t\t\t}\n\n\t\t\tif (rangeInput) {\n\t\t\t\t// we can either set a date value or an empty string, so we start with an empty string\n\t\t\t\tlet rangeDate = \"\";\n\t\t\t\t// if date is a string, parse and format\n\t\t\t\tif (typeof this.flatpickrInstance.selectedDates[1] === \"string\") {\n\t\t\t\t\trangeDate = this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[1].toString(), this.dateFormat);\n\t\t\t\t\trangeDate = this.flatpickrInstance.formatDate(rangeDate, this.dateFormat);\n\t\t\t\t// if date is not a string we can assume it's a Date and we should format\n\t\t\t\t} else if (!!this.flatpickrInstance.selectedDates[1]) {\n\t\t\t\t\trangeDate = this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[1], this.dateFormat);\n\t\t\t\t}\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t// apply the values\n\t\t\t\t\trangeInput.value = rangeDate;\n\t\t\t\t\tsingleInput.value = singleDate;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected preventCalendarClose = event => event.stopPropagation();\n\n\tprotected doSelect(selectedValue: (Date | string)[]) {\n\t\t// In range mode, if a date is selected from the first calendar that is from the previous month,\n\t\t// the month will not be updated on the calendar until the calendar is re-opened.\n\t\t// This will make sure the calendar is updated with the correct month.\n\t\tif (this.range && this.flatpickrInstance.selectedDates[0]) {\n\t\t\tconst currentMonth = this.flatpickrInstance.selectedDates[0].getMonth();\n\n\t\t\t// `flatpickrInstance.changeMonth` removes the focus on the selected date element and will\n\t\t\t// automatically change focus to the beginning of the document. If a selected date is\n\t\t\t// focused before `flatpickrInstance.changeMonth` is invoked then it should remain focused.\n\t\t\tlet shouldRefocusDateElement = this.flatpickrInstance.selectedDateElem === document.activeElement;\n\n\t\t\tthis.flatpickrInstance.changeMonth(currentMonth, false);\n\n\t\t\tif (shouldRefocusDateElement) {\n\t\t\t\tthis.flatpickrInstance.selectedDateElem.focus();\n\t\t\t}\n\n\t\t}\n\t\tthis.valueChange.emit(selectedValue);\n\t\tthis.propagateChange(selectedValue);\n\t}\n\n\tprotected didDateValueChange(currentValue, previousValue) {\n\t\treturn currentValue[0] !== previousValue[0] || currentValue[1] !== previousValue[1];\n\t}\n\n\t/**\n\t * More advanced checking of the loaded state of flatpickr\n\t */\n\tprotected isFlatpickrLoaded() {\n\t\t// cast the instance to a boolean, and some method that has to exist for the library to be loaded in this case `setDate`\n\t\treturn !!this.flatpickrInstance && !!this.flatpickrInstance.setDate;\n\t}\n\n\t/**\n\t * Right arrow HTML passed to flatpickr\n\t */\n\tprotected rightArrowHTML() {\n\t\treturn `\n\t\t\t<svg width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\">\n\t\t\t\t<polygon points=\"11,8 6,13 5.3,12.3 9.6,8 5.3,3.7 6,3 \"/>\n\t\t\t\t<rect width=\"16\" height=\"16\" style=\"fill:none\" />\n\t\t\t</svg>`;\n\t}\n\n\t/**\n\t * Left arrow HTML passed to flatpickr\n\t */\n\tprotected leftArrowHTML() {\n\t\treturn `\n\t\t\t<svg width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\">\n\t\t\t\t<polygon points=\"5,8 10,3 10.7,3.7 6.4,8 10.7,12.3 10,13 \"/>\n\t\t\t\t<rect width=\"16\" height=\"16\" style=\"fill:none\" />\n\t\t\t</svg>`;\n\t}\n}\n","import { DatePickerInputModule } from \"carbon-components-angular/datepicker-input\";\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DatePicker } from \"./datepicker.component\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\n\n@NgModule({\n\tdeclarations: [\n\t\tDatePicker\n\t],\n\texports: [\n\t\tDatePicker,\n\t\tDatePickerInputModule\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tDatePickerInputModule,\n\t\tUtilsModule,\n\t\tI18nModule\n\t]\n})\nexport class DatePickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -727,6 +727,10 @@ class SideNavItem {
727
727
  constructor(domSanitizer, router) {
728
728
  this.domSanitizer = domSanitizer;
729
729
  this.router = router;
730
+ /**
731
+ * Use the routerLink attribute on <a> tag for navigation instead of using event handlers
732
+ */
733
+ this.useRouter = true;
730
734
  /**
731
735
  * Toggles the active (current page) state for the link.
732
736
  */
@@ -780,43 +784,73 @@ class SideNavItem {
780
784
  }
781
785
  }
782
786
  SideNavItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavItem, deps: [{ token: i1$1.DomSanitizer }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
783
- SideNavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: { href: "href", active: "active", route: "route", isSubMenu: "isSubMenu", routeExtras: "routeExtras", title: "title" }, outputs: { navigation: "navigation", selected: "selected" }, host: { properties: { "class.cds--side-nav__item": "this.sideNav", "class.cds--side-nav__menu-item": "this.menuItem", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: `
784
- <a
785
- class="cds--side-nav__link"
786
- [ngClass]="{
787
+ SideNavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: { href: "href", useRouter: "useRouter", active: "active", route: "route", isSubMenu: "isSubMenu", routeExtras: "routeExtras", title: "title" }, outputs: { navigation: "navigation", selected: "selected" }, host: { properties: { "class.cds--side-nav__item": "this.sideNav", "class.cds--side-nav__menu-item": "this.menuItem", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: `
788
+ <a *ngIf="!useRouter; else sidenavItemRouterTpl"
789
+ class="cds--side-nav__link"
790
+ [ngClass]="{
787
791
  'cds--side-nav__item--active': active
788
792
  }"
789
- [href]="href"
790
- [attr.aria-current]="(active ? 'page' : null)"
791
- [attr.title]="title ? title : null"
792
- (click)="navigate($event)">
793
+ [href]="href"
794
+ [attr.aria-current]="(active ? 'page' : null)"
795
+ [attr.title]="title ? title : null"
796
+ (click)="navigate($event)">
797
+ <ng-template [ngTemplateOutlet]="sidenavItemContentTpl"></ng-template>
798
+ </a>
799
+
800
+ <ng-template #sidenavItemRouterTpl>
801
+ <a
802
+ [routerLink]="route"
803
+ routerLinkActive="cds--side-nav__item--active"
804
+ ariaCurrentWhenActive="page"
805
+ [attr.title]="title ? title : null"
806
+ class="cds--side-nav__link">
807
+ <ng-template [ngTemplateOutlet]="sidenavItemContentTpl"></ng-template>
808
+ </a>
809
+ </ng-template>
810
+
811
+ <ng-template #sidenavItemContentTpl>
793
812
  <div *ngIf="!isSubMenu" class="cds--side-nav__icon">
794
813
  <ng-content select="svg, [icon]"></ng-content>
795
814
  </div>
796
815
  <span class="cds--side-nav__link-text">
797
816
  <ng-content></ng-content>
798
817
  </span>
799
- </a>
800
- `, isInline: true, styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
818
+ </ng-template>
819
+ `, isInline: true, styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
801
820
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavItem, decorators: [{
802
821
  type: Component,
803
822
  args: [{ selector: "cds-sidenav-item, ibm-sidenav-item", template: `
804
- <a
805
- class="cds--side-nav__link"
806
- [ngClass]="{
823
+ <a *ngIf="!useRouter; else sidenavItemRouterTpl"
824
+ class="cds--side-nav__link"
825
+ [ngClass]="{
807
826
  'cds--side-nav__item--active': active
808
827
  }"
809
- [href]="href"
810
- [attr.aria-current]="(active ? 'page' : null)"
811
- [attr.title]="title ? title : null"
812
- (click)="navigate($event)">
828
+ [href]="href"
829
+ [attr.aria-current]="(active ? 'page' : null)"
830
+ [attr.title]="title ? title : null"
831
+ (click)="navigate($event)">
832
+ <ng-template [ngTemplateOutlet]="sidenavItemContentTpl"></ng-template>
833
+ </a>
834
+
835
+ <ng-template #sidenavItemRouterTpl>
836
+ <a
837
+ [routerLink]="route"
838
+ routerLinkActive="cds--side-nav__item--active"
839
+ ariaCurrentWhenActive="page"
840
+ [attr.title]="title ? title : null"
841
+ class="cds--side-nav__link">
842
+ <ng-template [ngTemplateOutlet]="sidenavItemContentTpl"></ng-template>
843
+ </a>
844
+ </ng-template>
845
+
846
+ <ng-template #sidenavItemContentTpl>
813
847
  <div *ngIf="!isSubMenu" class="cds--side-nav__icon">
814
848
  <ng-content select="svg, [icon]"></ng-content>
815
849
  </div>
816
850
  <span class="cds--side-nav__link-text">
817
851
  <ng-content></ng-content>
818
852
  </span>
819
- </a>
853
+ </ng-template>
820
854
  `, styles: [":host{display:list-item}\n"] }]
821
855
  }], ctorParameters: function () {
822
856
  return [{ type: i1$1.DomSanitizer }, { type: i2.Router, decorators: [{
@@ -824,6 +858,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
824
858
  }] }];
825
859
  }, propDecorators: { href: [{
826
860
  type: Input
861
+ }], useRouter: [{
862
+ type: Input
827
863
  }], sideNav: [{
828
864
  type: HostBinding,
829
865
  args: ["class.cds--side-nav__item"]
@@ -857,6 +893,10 @@ class SideNavMenu {
857
893
  this.navItem = true;
858
894
  this.navItemIcon = true;
859
895
  this.role = "listitem";
896
+ /**
897
+ * Use the routerLink attribute on <a> tag for navigation instead of using event handlers
898
+ */
899
+ this.useRouter = false;
860
900
  /**
861
901
  * Controls the visibility of the child `SideNavItem`s
862
902
  */
@@ -904,7 +944,7 @@ class SideNavMenu {
904
944
  }
905
945
  }
906
946
  SideNavMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
907
- SideNavMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideNavMenu, selector: "cds-sidenav-menu, ibm-sidenav-menu", inputs: { title: "title", expanded: "expanded", hasActiveChild: "hasActiveChild", menuItems: "menuItems" }, host: { properties: { "class.cds--side-nav__item": "this.navItem", "class.cds--side-nav__item--icon": "this.navItemIcon", "class.cds--side-nav__item--active": "this.navItemActive", "attr.role": "this.role" } }, queries: [{ propertyName: "sidenavItems", predicate: SideNavItem }], ngImport: i0, template: `
947
+ SideNavMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideNavMenu, selector: "cds-sidenav-menu, ibm-sidenav-menu", inputs: { useRouter: "useRouter", title: "title", expanded: "expanded", hasActiveChild: "hasActiveChild", menuItems: "menuItems" }, host: { properties: { "class.cds--side-nav__item": "this.navItem", "class.cds--side-nav__item--icon": "this.navItemIcon", "class.cds--side-nav__item--active": "this.navItemActive", "attr.role": "this.role" } }, queries: [{ propertyName: "sidenavItems", predicate: SideNavItem }], ngImport: i0, template: `
908
948
  <button
909
949
  (click)="toggle()"
910
950
  class="cds--side-nav__submenu"
@@ -936,12 +976,13 @@ SideNavMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
936
976
  [href]="menuItem.href"
937
977
  [route]="menuItem.route"
938
978
  [routeExtras]="menuItem.routeExtras"
979
+ [useRouter]="useRouter"
939
980
  [isSubMenu]="true">
940
981
  {{ menuItem.content }}
941
982
  </cds-sidenav-item>
942
983
  </ng-container>
943
984
  </div>
944
- `, isInline: true, dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: ["href", "active", "route", "isSubMenu", "routeExtras", "title"], outputs: ["navigation", "selected"] }] });
985
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: ["href", "useRouter", "active", "route", "isSubMenu", "routeExtras", "title"], outputs: ["navigation", "selected"] }] });
945
986
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavMenu, decorators: [{
946
987
  type: Component,
947
988
  args: [{
@@ -978,6 +1019,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
978
1019
  [href]="menuItem.href"
979
1020
  [route]="menuItem.route"
980
1021
  [routeExtras]="menuItem.routeExtras"
1022
+ [useRouter]="useRouter"
981
1023
  [isSubMenu]="true">
982
1024
  {{ menuItem.content }}
983
1025
  </cds-sidenav-item>
@@ -997,6 +1039,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
997
1039
  }], role: [{
998
1040
  type: HostBinding,
999
1041
  args: ["attr.role"]
1042
+ }], useRouter: [{
1043
+ type: Input
1000
1044
  }], title: [{
1001
1045
  type: Input
1002
1046
  }], expanded: [{
@@ -1031,13 +1075,17 @@ class SideNav {
1031
1075
  this.rail = false;
1032
1076
  this.ux = true;
1033
1077
  this.allowExpansion = false;
1078
+ /**
1079
+ * Use the routerLink attribute on <a> tag for navigation instead of using event handlers
1080
+ */
1081
+ this.useRouter = false;
1034
1082
  }
1035
1083
  toggle() {
1036
1084
  this.expanded = !this.expanded;
1037
1085
  }
1038
1086
  }
1039
1087
  SideNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNav, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component });
1040
- SideNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideNav, selector: "cds-sidenav, ibm-sidenav", inputs: { ariaLabel: "ariaLabel", expanded: "expanded", hidden: "hidden", rail: "rail", allowExpansion: "allowExpansion", navigationItems: "navigationItems" }, host: { properties: { "class.cds--side-nav": "this.hostClass", "class.cds--side-nav--expanded": "this.expanded", "class.cds--side-nav--hidden": "this.hidden", "class.cds--side-nav--rail": "this.rail", "class.cds--side-nav__navigation": "this.ux" } }, ngImport: i0, template: `
1088
+ SideNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideNav, selector: "cds-sidenav, ibm-sidenav", inputs: { ariaLabel: "ariaLabel", expanded: "expanded", hidden: "hidden", rail: "rail", allowExpansion: "allowExpansion", navigationItems: "navigationItems", useRouter: "useRouter" }, host: { properties: { "class.cds--side-nav": "this.hostClass", "class.cds--side-nav--expanded": "this.expanded", "class.cds--side-nav--hidden": "this.hidden", "class.cds--side-nav--rail": "this.rail", "class.cds--side-nav__navigation": "this.ux" } }, ngImport: i0, template: `
1041
1089
  <nav class="cds--side-nav__items" [attr.aria-label]="ariaLabel">
1042
1090
  <ng-content select="cds-sidenav-header,ibm-sidenav-header"></ng-content>
1043
1091
  <div role="list">
@@ -1048,12 +1096,14 @@ SideNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3
1048
1096
  [href]="navigationItem.href"
1049
1097
  [route]="navigationItem.route"
1050
1098
  [routeExtras]="navigationItem.routeExtras"
1099
+ [useRouter]="useRouter"
1051
1100
  [title]="navigationItem.title">
1052
1101
  {{ navigationItem.content }}
1053
1102
  </cds-sidenav-item>
1054
1103
  <cds-sidenav-menu
1055
1104
  *ngIf="navigationItem.type === 'menu'"
1056
1105
  [title]="navigationItem.title"
1106
+ [useRouter]="useRouter"
1057
1107
  [menuItems]="navigationItem.menuItems">
1058
1108
  </cds-sidenav-menu>
1059
1109
  </ng-container>
@@ -1099,7 +1149,7 @@ SideNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3
1099
1149
  </button>
1100
1150
  </footer>
1101
1151
  </nav>
1102
- `, isInline: true, dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: ["href", "active", "route", "isSubMenu", "routeExtras", "title"], outputs: ["navigation", "selected"] }, { kind: "component", type: SideNavMenu, selector: "cds-sidenav-menu, ibm-sidenav-menu", inputs: ["title", "expanded", "hasActiveChild", "menuItems"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
1152
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: ["href", "useRouter", "active", "route", "isSubMenu", "routeExtras", "title"], outputs: ["navigation", "selected"] }, { kind: "component", type: SideNavMenu, selector: "cds-sidenav-menu, ibm-sidenav-menu", inputs: ["useRouter", "title", "expanded", "hasActiveChild", "menuItems"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
1103
1153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNav, decorators: [{
1104
1154
  type: Component,
1105
1155
  args: [{
@@ -1115,12 +1165,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1115
1165
  [href]="navigationItem.href"
1116
1166
  [route]="navigationItem.route"
1117
1167
  [routeExtras]="navigationItem.routeExtras"
1168
+ [useRouter]="useRouter"
1118
1169
  [title]="navigationItem.title">
1119
1170
  {{ navigationItem.content }}
1120
1171
  </cds-sidenav-item>
1121
1172
  <cds-sidenav-menu
1122
1173
  *ngIf="navigationItem.type === 'menu'"
1123
1174
  [title]="navigationItem.title"
1175
+ [useRouter]="useRouter"
1124
1176
  [menuItems]="navigationItem.menuItems">
1125
1177
  </cds-sidenav-menu>
1126
1178
  </ng-container>
@@ -1196,6 +1248,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1196
1248
  type: Input
1197
1249
  }], navigationItems: [{
1198
1250
  type: Input
1251
+ }], useRouter: [{
1252
+ type: Input
1199
1253
  }] } });
1200
1254
 
1201
1255
  class SideNavModule {
@@ -1203,10 +1257,10 @@ class SideNavModule {
1203
1257
  SideNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1204
1258
  SideNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SideNavModule, declarations: [SideNav,
1205
1259
  SideNavItem,
1206
- SideNavMenu], imports: [CommonModule, I18nModule], exports: [SideNav,
1260
+ SideNavMenu], imports: [CommonModule, I18nModule, RouterModule], exports: [SideNav,
1207
1261
  SideNavItem,
1208
1262
  SideNavMenu] });
1209
- SideNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavModule, imports: [CommonModule, I18nModule] });
1263
+ SideNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavModule, imports: [CommonModule, I18nModule, RouterModule] });
1210
1264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideNavModule, decorators: [{
1211
1265
  type: NgModule,
1212
1266
  args: [{
@@ -1215,7 +1269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1215
1269
  SideNavItem,
1216
1270
  SideNavMenu
1217
1271
  ],
1218
- imports: [CommonModule, I18nModule],
1272
+ imports: [CommonModule, I18nModule, RouterModule],
1219
1273
  exports: [
1220
1274
  SideNav,
1221
1275
  SideNavItem,