carbon-components-angular 5.72.2 → 5.72.4

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 (141) hide show
  1. package/combobox/combobox.component.d.ts +1 -1
  2. package/datepicker/datepicker.component.d.ts +1 -1
  3. package/docs/documentation/components/ComboBox.html +49 -49
  4. package/docs/documentation/components/DatePicker.html +34 -34
  5. package/docs/documentation/components/Dropdown.html +161 -160
  6. package/docs/documentation/components/ProgressIndicator.html +13 -9
  7. package/docs/documentation/components/Toast.html +5 -5
  8. package/docs/documentation/coverage.html +36 -0
  9. package/docs/documentation/interfaces/ActionableContent.html +2 -2
  10. package/docs/documentation/interfaces/NotificationAction.html +2 -2
  11. package/docs/documentation/interfaces/NotificationContent.html +2 -2
  12. package/docs/documentation/interfaces/NotificationLink.html +2 -2
  13. package/docs/documentation/interfaces/ToastContent.html +14 -2
  14. package/docs/documentation/js/menu-wc_es5.js +1 -1
  15. package/docs/documentation/js/search/search_index.js +2 -2
  16. package/docs/documentation/miscellaneous/functions.html +257 -1
  17. package/docs/documentation/modules/CheckboxModule/dependencies.svg +42 -42
  18. package/docs/documentation/modules/CheckboxModule.html +42 -42
  19. package/docs/documentation/modules/CodeSnippetModule/dependencies.svg +4 -4
  20. package/docs/documentation/modules/CodeSnippetModule.html +4 -4
  21. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +6 -6
  22. package/docs/documentation/modules/ComboBoxModule.html +6 -6
  23. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  24. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  25. package/docs/documentation/modules/ContextMenuModule/dependencies.svg +67 -67
  26. package/docs/documentation/modules/ContextMenuModule.html +67 -67
  27. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +4 -4
  28. package/docs/documentation/modules/DatePickerInputModule.html +4 -4
  29. package/docs/documentation/modules/DatePickerModule/dependencies.svg +6 -6
  30. package/docs/documentation/modules/DatePickerModule.html +6 -6
  31. package/docs/documentation/modules/DialogModule/dependencies.svg +33 -33
  32. package/docs/documentation/modules/DialogModule.html +33 -33
  33. package/docs/documentation/modules/DocumentationModule/dependencies.svg +4 -4
  34. package/docs/documentation/modules/DocumentationModule.html +4 -4
  35. package/docs/documentation/modules/DropdownModule/dependencies.svg +68 -68
  36. package/docs/documentation/modules/DropdownModule.html +68 -68
  37. package/docs/documentation/modules/GridModule/dependencies.svg +64 -64
  38. package/docs/documentation/modules/GridModule.html +64 -64
  39. package/docs/documentation/modules/HeaderModule/dependencies.svg +4 -4
  40. package/docs/documentation/modules/HeaderModule.html +4 -4
  41. package/docs/documentation/modules/I18nModule/dependencies.svg +4 -4
  42. package/docs/documentation/modules/I18nModule.html +4 -4
  43. package/docs/documentation/modules/InputModule/dependencies.svg +4 -4
  44. package/docs/documentation/modules/InputModule.html +4 -4
  45. package/docs/documentation/modules/LayoutModule/dependencies.svg +4 -4
  46. package/docs/documentation/modules/LayoutModule.html +4 -4
  47. package/docs/documentation/modules/LinkModule/dependencies.svg +4 -4
  48. package/docs/documentation/modules/LinkModule.html +4 -4
  49. package/docs/documentation/modules/ListModule/dependencies.svg +4 -4
  50. package/docs/documentation/modules/ListModule.html +4 -4
  51. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  52. package/docs/documentation/modules/LoadingModule.html +4 -4
  53. package/docs/documentation/modules/MenuButtonModule/dependencies.svg +4 -4
  54. package/docs/documentation/modules/MenuButtonModule.html +4 -4
  55. package/docs/documentation/modules/ModalModule/dependencies.svg +116 -116
  56. package/docs/documentation/modules/ModalModule.html +116 -116
  57. package/docs/documentation/modules/NotificationModule/dependencies.svg +124 -124
  58. package/docs/documentation/modules/NotificationModule.html +124 -124
  59. package/docs/documentation/modules/PaginationModule/dependencies.svg +4 -4
  60. package/docs/documentation/modules/PaginationModule.html +4 -4
  61. package/docs/documentation/modules/PanelModule/dependencies.svg +36 -36
  62. package/docs/documentation/modules/PanelModule.html +36 -36
  63. package/docs/documentation/modules/ProgressBarModule/dependencies.svg +12 -12
  64. package/docs/documentation/modules/ProgressBarModule.html +12 -12
  65. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  66. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  67. package/docs/documentation/modules/RadioModule/dependencies.svg +47 -47
  68. package/docs/documentation/modules/RadioModule.html +47 -47
  69. package/docs/documentation/modules/SearchModule/dependencies.svg +45 -49
  70. package/docs/documentation/modules/SearchModule.html +45 -49
  71. package/docs/documentation/modules/SelectModule/dependencies.svg +58 -58
  72. package/docs/documentation/modules/SelectModule.html +58 -58
  73. package/docs/documentation/modules/SliderModule/dependencies.svg +46 -42
  74. package/docs/documentation/modules/SliderModule.html +46 -42
  75. package/docs/documentation/modules/StructuredListModule/dependencies.svg +69 -69
  76. package/docs/documentation/modules/StructuredListModule.html +69 -69
  77. package/docs/documentation/modules/TabsModule/dependencies.svg +41 -41
  78. package/docs/documentation/modules/TabsModule.html +41 -41
  79. package/docs/documentation/modules/TagModule/dependencies.svg +4 -4
  80. package/docs/documentation/modules/TagModule.html +4 -4
  81. package/docs/documentation/modules/ThemeModule/dependencies.svg +13 -13
  82. package/docs/documentation/modules/ThemeModule.html +13 -13
  83. package/docs/documentation/modules/TilesModule/dependencies.svg +108 -108
  84. package/docs/documentation/modules/TilesModule.html +108 -108
  85. package/docs/documentation/modules/TimePickerModule/dependencies.svg +45 -41
  86. package/docs/documentation/modules/TimePickerModule.html +45 -41
  87. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +4 -4
  88. package/docs/documentation/modules/TimePickerSelectModule.html +4 -4
  89. package/docs/documentation/modules/ToggleModule/dependencies.svg +37 -41
  90. package/docs/documentation/modules/ToggleModule.html +37 -41
  91. package/docs/documentation/modules/ToggletipModule/dependencies.svg +39 -39
  92. package/docs/documentation/modules/ToggletipModule.html +39 -39
  93. package/docs/documentation/modules/TooltipModule/dependencies.svg +4 -4
  94. package/docs/documentation/modules/TooltipModule.html +4 -4
  95. package/docs/documentation/modules/TreeviewModule/dependencies.svg +30 -30
  96. package/docs/documentation/modules/TreeviewModule.html +30 -30
  97. package/docs/documentation.json +144 -649
  98. package/docs/storybook/{3224.14e2c79a.iframe.bundle.js → 3224.3c2075c3.iframe.bundle.js} +1 -1
  99. package/docs/storybook/{901.49ee92eb.iframe.bundle.js → 901.f208c589.iframe.bundle.js} +1 -1
  100. package/docs/storybook/{combobox-combobox-stories.e3d08f7d.iframe.bundle.js → combobox-combobox-stories.49ceebb5.iframe.bundle.js} +1 -1
  101. package/docs/storybook/{datepicker-datepicker-stories.559a71ec.iframe.bundle.js → datepicker-datepicker-stories.71ef84d0.iframe.bundle.js} +1 -1
  102. package/docs/storybook/iframe.html +12 -3
  103. package/docs/storybook/index.html +35 -39
  104. package/docs/storybook/main.ca0a416e.iframe.bundle.js +1 -0
  105. package/docs/storybook/{patterns-dialogs-modal-with-table-stories.b72796c6.iframe.bundle.js → patterns-dialogs-modal-with-table-stories.8acaa07a.iframe.bundle.js} +1 -1
  106. package/docs/storybook/{patterns-forms-multi-step-form-stories.2ea46e56.iframe.bundle.js → patterns-forms-multi-step-form-stories.495d62f5.iframe.bundle.js} +1 -1
  107. package/docs/storybook/{patterns-loading-large-loading-stories.e6ae3e31.iframe.bundle.js → patterns-loading-large-loading-stories.564e9ea6.iframe.bundle.js} +1 -1
  108. package/docs/storybook/{progress-indicator-progress-indicator-stories.dae29927.iframe.bundle.js → progress-indicator-progress-indicator-stories.f7da9e42.iframe.bundle.js} +1 -1
  109. package/docs/storybook/project.json +1 -1
  110. package/docs/storybook/{runtime~main.b11c471e.iframe.bundle.js → runtime~main.a709e446.iframe.bundle.js} +1 -1
  111. package/docs/storybook/sb-addons/essentials-controls-1/manager-bundle.js +31 -31
  112. package/dropdown/dropdown.component.d.ts +3 -3
  113. package/esm2020/combobox/combobox.component.mjs +5 -5
  114. package/esm2020/datepicker/datepicker.component.mjs +9 -9
  115. package/esm2020/dropdown/dropdown.component.mjs +13 -13
  116. package/esm2020/notification/notification-content.interface.mjs +1 -1
  117. package/esm2020/notification/toast.component.mjs +5 -5
  118. package/esm2020/progress-indicator/progress-indicator.component.mjs +8 -5
  119. package/fesm2015/carbon-components-angular-combobox.mjs +4 -4
  120. package/fesm2015/carbon-components-angular-combobox.mjs.map +1 -1
  121. package/fesm2015/carbon-components-angular-datepicker.mjs +8 -8
  122. package/fesm2015/carbon-components-angular-datepicker.mjs.map +1 -1
  123. package/fesm2015/carbon-components-angular-dropdown.mjs +12 -12
  124. package/fesm2015/carbon-components-angular-dropdown.mjs.map +1 -1
  125. package/fesm2015/carbon-components-angular-notification.mjs +4 -4
  126. package/fesm2015/carbon-components-angular-notification.mjs.map +1 -1
  127. package/fesm2015/carbon-components-angular-progress-indicator.mjs +7 -4
  128. package/fesm2015/carbon-components-angular-progress-indicator.mjs.map +1 -1
  129. package/fesm2020/carbon-components-angular-combobox.mjs +4 -4
  130. package/fesm2020/carbon-components-angular-combobox.mjs.map +1 -1
  131. package/fesm2020/carbon-components-angular-datepicker.mjs +8 -8
  132. package/fesm2020/carbon-components-angular-datepicker.mjs.map +1 -1
  133. package/fesm2020/carbon-components-angular-dropdown.mjs +12 -12
  134. package/fesm2020/carbon-components-angular-dropdown.mjs.map +1 -1
  135. package/fesm2020/carbon-components-angular-notification.mjs +4 -4
  136. package/fesm2020/carbon-components-angular-notification.mjs.map +1 -1
  137. package/fesm2020/carbon-components-angular-progress-indicator.mjs +7 -4
  138. package/fesm2020/carbon-components-angular-progress-indicator.mjs.map +1 -1
  139. package/notification/notification-content.interface.d.ts +2 -2
  140. package/package.json +1 -1
  141. package/docs/storybook/main.a1247bb8.iframe.bundle.js +0 -1
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[]).push([[9736],{"./src/ai-label/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{zb:()=>AILabelActions,UD:()=>AILabelComponent,q:()=>AILabelContent,uV:()=>AILabelModule});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs");let AILabelActions=class AILabelActions{constructor(){this.toggletipActions=!0,this.aiLabelActions=!0}};AILabelActions.propDecorators={toggletipActions:[{type:core.HostBinding,args:["class.cds--toggletip-actions"]}],aiLabelActions:[{type:core.HostBinding,args:["class.cds--ai-label-actions"]}]},AILabelActions=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelActions], [ibmAILabelActions]"})],AILabelActions);let AILabelContent=class AILabelContent{};AILabelContent=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelContent], [ibmAILabelContent]"})],AILabelContent);var popover=__webpack_require__("./src/popover/index.ts");let AILabelPopoverDirective=class AILabelPopoverDirective extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.highContrast=!0,this.dropShadow=!1}initializeReferences(){this.updateAlignmentClass(this._align),this.bindPopoverRefs(),this.handleChange(this.isOpen)}ngOnChanges(changes){const originalState=this.isOpen;this.handleChange(!1),changes.autoAlign&&!changes.autoAlign.firstChange&&(this.popoverContentRef?.setAttribute("style",""),this.bindPopoverRefs()),this.handleChange(originalState)}bindPopoverRefs(){const panel=this.elementRef.nativeElement.querySelector(":scope > span.cds--popover");panel&&(this.popoverContentRef=panel.querySelector(":scope > span.cds--popover-content"),this.caretRef=this.resolveCaretRef(panel))}resolveCaretRef(panel){return this.autoAlign?panel.querySelector("span.cds--popover-content > span.cds--popover-caret.cds--popover--auto-align"):panel.querySelector(":scope > span.cds--popover-caret")}};AILabelPopoverDirective.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],AILabelPopoverDirective=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelPopover]"})],AILabelPopoverDirective);let AILabelComponent=class AILabelComponent{constructor(elementRef){this.elementRef=elementRef,this.aiLabelClass=!0,this.caret=!0,this.dropShadow=!1,this.highContrast=!0,this.autoAlign=!1,this.isOpen=!1,this.onClose=new core.EventEmitter,this.onOpen=new core.EventEmitter,this.isOpenChange=new core.EventEmitter,this.id="ai-label-"+AILabelComponent.labelCounter++,this.aiText="AI",this.kind="default",this.size="xs",this.revertActive=!1,this.revertLabel="Revert to AI input",this.ariaLabel="Show information",this.revertClick=new core.EventEmitter,this.documentClick=this.handleOutsideClick.bind(this)}get revertClass(){return this.revertActive}get alignmentAxisOffset(){return["mini","2xs","xs"].includes(this.size)?-24:0}onPopoverIsOpenChange(open){this.isOpen=open,this.isOpenChange.emit(open)}get triggerClasses(){return{"cds--toggletip-button":!0,"cds--ai-label__button":!0,[`cds--ai-label__button--${this.size}`]:!0,[`cds--ai-label__button--${this.kind}`]:!0,"cds--ai-label__button--inline-with-content":"inline"===this.kind&&!!this.textLabel}}get computedAriaLabel(){const suffix="inline"===this.kind&&this.textLabel?this.textLabel:this.ariaLabel;return`${this.aiText} ${suffix}`}ngAfterViewInit(){this.isOpen&&document.addEventListener("click",this.documentClick)}ngOnChanges(changes){changes.revertActive&&!changes.revertActive.firstChange&&changes.revertActive.currentValue&&(this.isOpen=!1,document.removeEventListener("click",this.documentClick))}ngOnDestroy(){document.removeEventListener("click",this.documentClick)}onTriggerClick(event){const opening=!this.isOpen;opening?document.addEventListener("click",this.documentClick):document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(opening,event)}onRevertButtonClick(event){this.revertClick.emit(event)}hostkeys(event){this.isOpen&&"Escape"===event.key&&(event.stopPropagation(),document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(!1,event))}handleOutsideClick(event){this.elementRef.nativeElement.contains(event.target)||(this.aiLabelPopover?.handleChange(!1,event),document.removeEventListener("click",this.documentClick))}};AILabelComponent.labelCounter=0,AILabelComponent.ctorParameters=()=>[{type:core.ElementRef}],AILabelComponent.propDecorators={aiLabelClass:[{type:core.HostBinding,args:["class.cds--ai-label"]}],revertClass:[{type:core.HostBinding,args:["class.cds--ai-label--revert"]}],align:[{type:core.Input}],caret:[{type:core.Input}],dropShadow:[{type:core.Input}],highContrast:[{type:core.Input}],autoAlign:[{type:core.Input}],isOpen:[{type:core.Input}],onClose:[{type:core.Output}],onOpen:[{type:core.Output}],isOpenChange:[{type:core.Output}],id:[{type:core.Input}],aiText:[{type:core.Input}],textLabel:[{type:core.Input}],kind:[{type:core.Input}],size:[{type:core.Input}],revertActive:[{type:core.Input}],revertLabel:[{type:core.Input}],ariaLabel:[{type:core.Input}],revertClick:[{type:core.Output}],aiLabelPopover:[{type:core.ViewChild,args:["aiLabelPopoverHost",{read:AILabelPopoverDirective}]}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}]},AILabelComponent=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-ai-label, ibm-ai-label",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<ng-container *ngIf="!revertActive">\n\t\t\t<span\n\t\t\t\t#aiLabelPopoverHost\n\t\t\t\tcdsAILabelPopover\n\t\t\t\tclass="cds--toggletip"\n\t\t\t\t[isOpen]="isOpen"\n\t\t\t\t(isOpenChange)="onPopoverIsOpenChange($event)"\n\t\t\t\t(onOpen)="onOpen.emit($event)"\n\t\t\t\t(onClose)="onClose.emit($event)"\n\t\t\t\t[align]="align"\n\t\t\t\t[caret]="caret"\n\t\t\t\t[dropShadow]="dropShadow"\n\t\t\t\t[highContrast]="highContrast"\n\t\t\t\t[autoAlign]="autoAlign"\n\t\t\t\t[alignmentAxisOffset]="alignmentAxisOffset">\n\t\t\t\t<button\n\t\t\t\t\ttype="button"\n\t\t\t\t\t[attr.aria-label]="computedAriaLabel"\n\t\t\t\t\t[attr.aria-expanded]="isOpen"\n\t\t\t\t\t[attr.aria-controls]="id"\n\t\t\t\t\t[ngClass]="triggerClasses"\n\t\t\t\t\t(click)="onTriggerClick($event)">\n\t\t\t\t\t<span class="cds--ai-label__text">{{aiText}}</span>\n\t\t\t\t\t<span *ngIf="kind === \'inline\' && textLabel" class="cds--ai-label__additional-text">{{textLabel}}</span>\n\t\t\t\t</button>\n\n\t\t\t\t<span\n\t\t\t\t\t[id]="id"\n\t\t\t\t\tclass="cds--popover"\n\t\t\t\t\taria-live="polite">\n\t\t\t\t\t<span class="cds--popover-content cds--ai-label-content">\n\t\t\t\t\t\t<div class="cds--toggletip-content">\n\t\t\t\t\t\t\t<ng-content></ng-content>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</ng-container>\n\n\t\t<cds-icon-button\n\t\t\t*ngIf="revertActive"\n\t\t\tkind="ghost"\n\t\t\tsize="sm"\n\t\t\t[description]="revertLabel"\n\t\t\t[autoAlign]="autoAlign"\n\t\t\t[buttonAttributes]="{ \'aria-label\': revertLabel }"\n\t\t\t(click)="onRevertButtonClick($event)">\n\t\t\t<svg cdsIcon="undo" size="16"></svg>\n\t\t</cds-icon-button>\n\t'})],AILabelComponent);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs"),src_button=__webpack_require__("./src/button/index.ts"),icon=__webpack_require__("./src/icon/index.ts");let AILabelModule=class AILabelModule{};AILabelModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[AILabelComponent,AILabelPopoverDirective,AILabelContent,AILabelActions],exports:[AILabelComponent,AILabelContent,AILabelActions],imports:[common.CommonModule,src_button.hJ,icon.QX,popover.UU]})],AILabelModule)},"./src/placeholder/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{Qq:()=>PlaceholderModule,Q_:()=>PlaceholderService});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs");let PlaceholderService=class PlaceholderService{constructor(){this.viewContainerRef=null,this.viewContainerMap=new Map}registerViewContainerRef(vcRef,id){id?this.viewContainerMap.set(id,vcRef):this.viewContainerRef=vcRef}createComponent(component,injector,id,environment){return id?this.viewContainerMap.has(id)?this.viewContainerMap.get(id).createComponent(component,{index:this.viewContainerMap.size,injector}):void console.error(`No view container with id ${id} found`):this.viewContainerRef?this.viewContainerRef.createComponent(component,{index:this.viewContainerRef.length,injector,environmentInjector:environment}):void console.error("No view container defined! Likely due to a missing `cds-placeholder`")}destroyComponent(component){component.destroy()}hasComponentRef(component,id){return id?!(this.viewContainerMap.get(id).indexOf(component.hostView)<0):!(this.viewContainerRef.indexOf(component.hostView)<0)}hasPlaceholderRef(id){return id?this.viewContainerMap.has(id):!!this.viewContainerRef}appendElement(element,id){return id?this.viewContainerMap.get(id).element.nativeElement.appendChild(element):this.viewContainerRef.element.nativeElement.appendChild(element)}removeElement(element,id){return id?this.viewContainerMap.get(id).element.nativeElement.removeChild(element):this.viewContainerRef.element.nativeElement.removeChild(element)}hasElement(element,id){return id?this.viewContainerMap.get(id).element.nativeElement.contains(element):this.viewContainerRef.element.nativeElement.contains(element)}};PlaceholderService=(0,tslib_es6.gn)([(0,core.Injectable)()],PlaceholderService);let Placeholder=class Placeholder{constructor(placeholderService){this.placeholderService=placeholderService}ngOnInit(){this.placeholderService.registerViewContainerRef(this.viewContainerRef)}};Placeholder.ctorParameters=()=>[{type:PlaceholderService}],Placeholder.propDecorators={id:[{type:core.Input}],viewContainerRef:[{type:core.ViewChild,args:["placeholder",{read:core.ViewContainerRef,static:!0}]}]},Placeholder=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-placeholder, ibm-placeholder",template:"<div #placeholder></div>"})],Placeholder);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");const PLACEHOLDER_SERVICE_PROVIDER={provide:PlaceholderService,deps:[[new core.Optional,new core.SkipSelf,PlaceholderService]],useFactory:function PLACEHOLDER_SERVICE_PROVIDER_FACTORY(parentService){return parentService||new PlaceholderService}};let PlaceholderModule=class PlaceholderModule{};PlaceholderModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[Placeholder],exports:[Placeholder],providers:[PLACEHOLDER_SERVICE_PROVIDER],imports:[common.CommonModule]})],PlaceholderModule)},"./src/combobox/combobox.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,BasicMax:()=>BasicMax,Dynamic:()=>Dynamic,Fluid:()=>Fluid,MockQuerySearch:()=>MockQuerySearch,Multiselect:()=>Multiselect,ReactiveForms:()=>ReactiveForms,__namedExportsOrder:()=>__namedExportsOrder,default:()=>combobox_stories,filterableWithAILabel:()=>filterableWithAILabel,withAILabel:()=>withAILabel});var fesm2020_forms=__webpack_require__("./node_modules/@angular/forms/fesm2020/forms.mjs"),dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),dropdown=__webpack_require__("./src/dropdown/index.ts"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),utils=__webpack_require__("./src/utils/index.ts"),i18n=__webpack_require__("./src/i18n/index.ts");let ComboBox=class ComboBox{constructor(elementRef,dropdownService,i18n){this.elementRef=elementRef,this.dropdownService=dropdownService,this.i18n=i18n,this.id="combobox-"+ComboBox.comboBoxCount++,this.labelId="combobox-label-"+ComboBox.comboBoxCount++,this.items=[],this.type="single",this.size="md",this.hideLabel=!1,this.appendInline=null,this.invalid=!1,this.warn=!1,this.maxLength=null,this.theme="dark",this.selectionFeedback="top-after-reopen",this.autocomplete="list",this.disabled=!1,this.readonly=!1,this.fluid=!1,this.selected=new core.EventEmitter,this.submit=new core.EventEmitter,this.close=new core.EventEmitter,this.search=new core.EventEmitter,this.clear=new core.EventEmitter,this.hostClass=!0,this.open=!1,this.showClearButton=!1,this.pills=[],this.selectedValue="",this.outsideClick=this._outsideClick.bind(this),this.keyboardNav=this._keyboardNav.bind(this),this._dropUp=!1,this.noop=this._noop.bind(this),this.onTouchedCallback=this._noop,this.propagateChangeCallback=this._noop,this._placeholder=this.i18n.getOverridable("COMBOBOX.PLACEHOLDER"),this._closeMenuAria=this.i18n.getOverridable("COMBOBOX.A11Y.CLOSE_MENU"),this._openMenuAria=this.i18n.getOverridable("COMBOBOX.A11Y.OPEN_MENU"),this._clearSelectionsTitle=this.i18n.getOverridable("COMBOBOX.CLEAR_SELECTIONS"),this._clearSelectionsAria=this.i18n.getOverridable("COMBOBOX.A11Y.CLEAR_SELECTIONS"),this._clearSelectionTitle=this.i18n.getOverridable("COMBOBOX.CLEAR_SELECTED"),this._clearSelectionAria=this.i18n.getOverridable("COMBOBOX.A11Y.CLEAR_SELECTED"),this._isFocused=!1,this._isUsingNgControl=!1}set placeholder(value){this._placeholder.override(value)}get placeholder(){return this._placeholder.value}set openMenuAria(value){this._openMenuAria.override(value)}get openMenuAria(){return this._openMenuAria.value}set closeMenuAria(value){this._closeMenuAria.override(value)}get closeMenuAria(){return this._closeMenuAria.value}set clearSelectionsTitle(value){this._clearSelectionsTitle.override(value)}get clearSelectionsTitle(){return this._clearSelectionsTitle.value}set clearSelectionsAria(value){this._clearSelectionsAria.override(value)}get clearSelectionsAria(){return this._clearSelectionsAria.value}set clearSelectionTitle(value){this._clearSelectionTitle.override(value)}get clearSelectionTitle(){return this._clearSelectionTitle.value}set clearSelectionAria(value){this._clearSelectionAria.override(value)}get clearSelectionAria(){return this._clearSelectionAria.value}ngOnChanges(changes){changes.items&&(this.view.items=changes.items.currentValue,this.updateSelected(),("multi"===this.type||"single"===this.type&&!this.selectedValue)&&this.onSearch(this.input.nativeElement.value,!1))}ngAfterContentInit(){if(this.view){this.view.type=this.type;const isUpdate=event=>event&&event.isUpdate;this.view.select.subscribe((event=>{if(Array.isArray(event)){if(this.updatePills(),!isUpdate(event)){if(this.itemValueKey&&this.view.getSelected()){const values=this.view.getSelected().map((item=>item[this.itemValueKey]));this._propagateChange(values)}else this._propagateChange(this.view.getSelected());this.selected.emit(event)}}else event.item&&event.item.selected?(this.showClearButton=!0,this.selectedValue=event.item.content,isUpdate(event)||(this.itemValueKey?this._propagateChange(event.item[this.itemValueKey]):this._propagateChange(event.item))):(this.selectedValue="",isUpdate(event)||this._propagateChange(null)),isUpdate(event)?this._isUsingNgControl&&this.writeValue(this._writtenValue):(this.elementRef.nativeElement.querySelector("input").focus(),this.view.filterBy(""),this.selected.emit(event.item),this.closeDropdown())})),setTimeout((()=>{this.updateSelected()})),this.view.blurIntent.pipe((0,filter.h)((v=>"top"===v))).subscribe((()=>{this.elementRef.nativeElement.querySelector(".cds--text-input").focus()}))}}ngAfterViewInit(){null===this.appendInline&&(0,utils.OQ)(this.elementRef.nativeElement)?this.appendInline=!1:null===this.appendInline&&(this.appendInline=!0)}ngOnDestroy(){this.appendInline||this._appendToDropdown()}hostkeys(ev){"Escape"===ev.key?this.closeDropdown():"ArrowDown"!==ev.key||this.dropdownMenu&&this.dropdownMenu.nativeElement.contains(ev.target)||(ev.preventDefault(),this.openDropdown(),setTimeout((()=>{this.view.initFocus()}),0)),this.open&&"Tab"===ev.key&&(this.dropdownMenu.nativeElement.contains(ev.target)||ev.target===this.input.nativeElement)&&this.closeDropdown(),this.open&&"Tab"===ev.key&&ev.shiftKey&&this.closeDropdown()}_noop(){}writeValue(value){if(this._writtenValue=value,"single"===this.type){if(this.itemValueKey){const newValue=Object.assign({},this.view.getListItems().find((item=>item[this.itemValueKey]===value)));newValue.selected=!0,this.view.propagateSelected([newValue])}else this.view.propagateSelected([value||""]);this.showClearButton=!(!value||!this.view.getSelected().length)}else if(this.itemValueKey){let newValues=[];for(const v of value??[])for(const item of this.view.getListItems())item[this.itemValueKey]===v&&newValues.push(Object.assign({},item,{selected:!0}));this.view.propagateSelected(newValues)}else this.view.propagateSelected(value||[""]);this.updateSelected()}_propagateChange(value){this._writtenValue=value,this.propagateChangeCallback(value)}onBlur(){this.onTouchedCallback()}registerOnChange(fn){this._isUsingNgControl=!0,this.propagateChangeCallback=fn}registerOnTouched(fn){this.onTouchedCallback=fn}setDisabledState(isDisabled){this.disabled=isDisabled}updatePills(){this.pills=this.view.getSelected()||[],this.checkForReorder()}clearSelected(event){this.items=this.items.map((item=>(item.disabled||(item.selected=!1),item))),this.view.propagateSelected([]),this.updatePills();const selected=this.view.getSelected();if(this.itemValueKey&&selected){const values=selected.map((item=>item[this.itemValueKey]));this._propagateChange(values)}else this._propagateChange(selected);this.selected.emit(selected),this.clear.emit(event)}closeDropdown(){this.open=!1,this.checkForReorder(),this.close.emit(),this.appendInline||this._appendToDropdown(),document.removeEventListener("click",this.outsideClick,!0)}openDropdown(){this.disabled||this.readonly||(this.open=!0,this._dropUp=!1,this.appendInline||this._appendToBody(),document.addEventListener("click",this.outsideClick,!0),setTimeout((()=>{null!==this.dropUp&&void 0!==this.dropUp||(this._dropUp=this._shouldDropUp())}),0))}toggleDropdown(){this.open?this.closeDropdown():this.openDropdown()}onSearch(searchString,shouldEmitSearch=!0){if(shouldEmitSearch&&this.search.emit(searchString),this.showClearButton=!!searchString,this.view.filterBy(searchString),""!==searchString?this.open||this.openDropdown():(this.selectedValue="","multi"!==this.type||"top"!==this.selectionFeedback&&"top-after-reopen"!==this.selectionFeedback||this.view.reorderSelected()),"single"===this.type){if(!this.view.getListItems().some((item=>item.content.toLowerCase().includes(searchString.toLowerCase())))){const selected=this.view.getSelected();selected&&selected[0]||this.view.filterBy(searchString)}}}onSubmit(event){this.submit.emit({items:this.view.getListItems(),index:0,value:{content:event.target.value,selected:!1}})}clearInput(event){event.stopPropagation(),event.preventDefault(),this.disabled||this.readonly||("single"===this.type&&(this.clearSelected(event),this.closeDropdown()),this.selectedValue="",this.input.nativeElement.value="",this.showClearButton=!1,this.input.nativeElement.focus(),this.onSearch(this.input.nativeElement.value))}isTemplate(value){return value instanceof core.TemplateRef}_keyboardNav(event){"Escape"===event.key&&this.open&&event.stopImmediatePropagation(),"Escape"===event.key?(event.preventDefault(),this.closeDropdown(),this.input.nativeElement.focus()):this.open&&"Tab"===event.key&&(this.input.nativeElement.focus(),this.input.nativeElement.dispatchEvent(new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,key:"Tab"})),this.closeDropdown())}_appendToBody(){this.dropdownService.appendToBody(this.listbox.nativeElement,this.dropdownMenu.nativeElement,`${this.elementRef.nativeElement.className}${this.open?" cds--list-box--expanded":""}`),this.dropdownMenu.nativeElement.addEventListener("keydown",this.keyboardNav,!0)}_appendToDropdown(){this.dropdownService.appendToDropdown(this.elementRef.nativeElement),this.dropdownMenu.nativeElement.removeEventListener("keydown",this.keyboardNav,!0)}_shouldDropUp(){const menu=this.dropdownMenu&&this.dropdownMenu.nativeElement.querySelector(".cds--list-box__menu"),menuRect=menu&&menu.getBoundingClientRect();if(menu&&menuRect){return(0,utils.O3)(menu).reduce(((shouldDropUp,parent)=>{const parentRect=parent.getBoundingClientRect(),isBelowParent=!(menuRect.bottom<=parentRect.bottom);return shouldDropUp||isBelowParent}),!1)}return!1}_outsideClick(event){this.elementRef.nativeElement.contains(event.target)||this.dropdownMenu.nativeElement.contains(event.target)||this.closeDropdown()}handleFocus(event){this._isFocused="focus"===event.type}updateSelected(){const selected=this.view.getSelected();if("multi"===this.type)this.updatePills();else if(selected){const value=selected[0]?selected[0].content:"";selected[0]&&selected[0];this.selectedValue=value,this.showClearButton=!!value}}checkForReorder(){const topAfterReopen=!this.open&&"top-after-reopen"===this.selectionFeedback;"multi"!==this.type||!topAfterReopen&&"top"!==this.selectionFeedback||this.view.reorderSelected(!0)}};ComboBox.comboBoxCount=0,ComboBox.ctorParameters=()=>[{type:core.ElementRef},{type:dropdown.Vn},{type:i18n.oc}],ComboBox.propDecorators={placeholder:[{type:core.Input}],openMenuAria:[{type:core.Input}],closeMenuAria:[{type:core.Input}],clearSelectionsTitle:[{type:core.Input}],clearSelectionsAria:[{type:core.Input}],clearSelectionTitle:[{type:core.Input}],clearSelectionAria:[{type:core.Input}],id:[{type:core.Input}],labelId:[{type:core.Input}],items:[{type:core.Input}],type:[{type:core.Input}],size:[{type:core.Input}],itemValueKey:[{type:core.Input}],label:[{type:core.Input}],hideLabel:[{type:core.Input}],helperText:[{type:core.Input}],decorator:[{type:core.Input}],appendInline:[{type:core.Input}],invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],maxLength:[{type:core.Input}],theme:[{type:core.Input}],selectionFeedback:[{type:core.Input}],autocomplete:[{type:core.Input}],dropUp:[{type:core.Input}],disabled:[{type:core.Input}],readonly:[{type:core.Input}],fluid:[{type:core.Input}],selected:[{type:core.Output}],submit:[{type:core.Output}],close:[{type:core.Output}],search:[{type:core.Output}],clear:[{type:core.Output}],view:[{type:core.ContentChild,args:[dropdown.jq,{static:!0}]}],dropdownMenu:[{type:core.ViewChild,args:["dropdownMenu"]}],input:[{type:core.ViewChild,args:["input",{static:!0}]}],listbox:[{type:core.ViewChild,args:["listbox",{static:!0}]}],hostClass:[{type:core.HostBinding,args:["class.cds--list-box__wrapper"]}],hostkeys:[{type:core.HostListener,args:["keydown",["$event"]]}]},ComboBox=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-combo-box, ibm-combo-box",template:'\n\t\t<div\n\t\t\tclass="cds--list-box__wrapper"\n\t\t\t[ngClass]="{\n\t\t\t\t\'cds--list-box__wrapper--fluid\': fluid,\n\t\t\t\t\'cds--list-box__wrapper--fluid--invalid\': fluid && invalid,\n\t\t\t\t\'cds--list-box__wrapper--fluid--focus\': fluid && _isFocused,\n\t\t\t\t\'cds--list-box__wrapper--decorator\': !!decorator\n\t\t\t}">\n\t\t\t<label\n\t\t\t\t*ngIf="label"\n\t\t\t\t[for]="id"\n\t\t\t\t[id]="labelId"\n\t\t\t\tclass="cds--label"\n\t\t\t\t[ngClass]="{\n\t\t\t\t\t\'cds--label--disabled\': disabled,\n\t\t\t\t\t\'cds--visually-hidden\': hideLabel\n\t\t\t\t}">\n\t\t\t\t<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>\n\t\t\t</label>\n\t\t\t<div\n\t\t\t\t#listbox\n\t\t\t\t[ngClass]="{\n\t\t\t\t\t\'cds--multi-select cds--multi-select--filterable\': type === \'multi\',\n\t\t\t\t\t\'cds--list-box--light\': theme === \'light\',\n\t\t\t\t\t\'cds--list-box--expanded\': open,\n\t\t\t\t\t\'cds--list-box--sm\': size === \'sm\',\n\t\t\t\t\t\'cds--list-box--md\': size === \'md\',\n\t\t\t\t\t\'cds--list-box--lg\': size === \'lg\',\n\t\t\t\t\t\'cds--list-box--disabled\': disabled,\n\t\t\t\t\t\'cds--combo-box--readonly\': readonly,\n\t\t\t\t\t\'cds--combo-box--warning cds--list-box--warning\': warn,\n\t\t\t\t\t\'cds--list-box--invalid\': invalid\n\t\t\t\t}"\n\t\t\t\tclass="cds--list-box cds--combo-box"\n\t\t\t\t[attr.data-invalid]="(invalid ? true : null)">\n\t\t\t\t<div\n\t\t\t\t\tclass="cds--list-box__field"\n\t\t\t\t\t(click)="toggleDropdown()"\n\t\t\t\t\t(blur)="onBlur()">\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf="type === \'multi\' && pills.length > 0"\n\t\t\t\t\t\tclass="cds--tag cds--tag--filter cds--tag--high-contrast"\n\t\t\t\t\t\t[ngClass]="{\'cds--tag--disabled\': disabled || readonly}">\n\t\t\t\t\t\t<span class="cds--tag__label">{{ pills.length }}</span>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\t\t(click)="clearSelected($event)"\n\t\t\t\t\t\t\t(blur)="onBlur()"\n\t\t\t\t\t\t\t(keydown.enter)="clearSelected($event)"\n\t\t\t\t\t\t\tclass="cds--tag__close-icon"\n\t\t\t\t\t\t\ttabindex="0"\n\t\t\t\t\t\t\t[title]="clearSelectionsTitle"\n\t\t\t\t\t\t\t[disabled]="disabled || readonly"\n\t\t\t\t\t\t\t[attr.aria-label]="clearSelectionAria">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable="false"\n\t\t\t\t\t\t\t\tpreserveAspectRatio="xMidYMid meet"\n\t\t\t\t\t\t\t\tstyle="will-change: transform;"\n\t\t\t\t\t\t\t\trole="img"\n\t\t\t\t\t\t\t\txmlns="http://www.w3.org/2000/svg"\n\t\t\t\t\t\t\t\twidth="16"\n\t\t\t\t\t\t\t\theight="16"\n\t\t\t\t\t\t\t\tviewBox="0 0 16 16"\n\t\t\t\t\t\t\t\taria-hidden="true">\n\t\t\t\t\t\t\t\t<path d="M12 4.7l-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8z"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#input\n\t\t\t\t\t\ttype="text"\n\t\t\t\t\t\tautocomplete="off"\n\t\t\t\t\t\trole="combobox"\n\t\t\t\t\t\t[disabled]="disabled"\n\t\t\t\t\t\t[readOnly]="readonly"\n\t\t\t\t\t\t(input)="onSearch($event.target.value)"\n\t\t\t\t\t\t(focus)="fluid ? handleFocus($event) : null"\n\t\t\t\t\t\t(blur)="fluid ? handleFocus($event) : onBlur()"\n\t\t\t\t\t\t(keydown.enter)="onSubmit($event)"\n\t\t\t\t\t\t[value]="selectedValue"\n\t\t\t\t\t\tclass="cds--text-input"\n\t\t\t\t\t\t[ngClass]="{\'cds--text-input--empty\': !showClearButton}"\n\t\t\t\t\t\ttabindex="0"\n\t\t\t\t\t\t[id]="id"\n\t\t\t\t\t\t[attr.aria-labelledby]="labelId"\n\t\t\t\t\t\t[attr.aria-expanded]="open"\n\t\t\t\t\t\taria-haspopup="listbox"\n\t\t\t\t\t\t[attr.maxlength]="maxLength"\n\t\t\t\t\t\t[attr.aria-controls]="open ? view?.listId : null"\n\t\t\t\t\t\t[attr.aria-autocomplete]="autocomplete"\n\t\t\t\t\t\t[placeholder]="placeholder"/>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf="invalid"\n\t\t\t\t\t\tcdsIcon="warning--filled"\n\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\tclass="cds--list-box__invalid-icon">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf="!invalid && warn"\n\t\t\t\t\t\tcdsIcon="warning--alt--filled"\n\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\tclass="cds--list-box__invalid-icon cds--list-box__invalid-icon--warning">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf="showClearButton"\n\t\t\t\t\t\trole="button"\n\t\t\t\t\t\tclass="cds--list-box__selection"\n\t\t\t\t\t\ttabindex="0"\n\t\t\t\t\t\t[attr.aria-label]="clearSelectionAria"\n\t\t\t\t\t\t[title]="clearSelectionTitle"\n\t\t\t\t\t\t(keyup.enter)="clearInput($event)"\n\t\t\t\t\t\t(click)="clearInput($event)"\n\t\t\t\t\t\t(blur)="onBlur()">\n\t\t\t\t\t\t<svg cdsIcon="close" size="16"></svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\trole="button"\n\t\t\t\t\t\tclass="cds--list-box__menu-icon"\n\t\t\t\t\t\ttabindex="-1"\n\t\t\t\t\t\t[title]="open ? closeMenuAria : openMenuAria"\n\t\t\t\t\t\t[attr.aria-label]="open ? closeMenuAria : openMenuAria"\n\t\t\t\t\t\t[ngClass]="{\'cds--list-box__menu-icon--open\': open}">\n\t\t\t\t\t\t<svg cdsIcon="chevron--down" size="16"></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<ng-container *ngIf="decorator">\n\t\t\t\t\t<div class="cds--list-box__inner-wrapper--decorator">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]="decorator"></ng-template>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-container>\n\t\t\t\t<div\n\t\t\t\t\t#dropdownMenu\n\t\t\t\t\t[ngClass]="{\n\t\t\t\t\t\t\'cds--list-box--up\': this.dropUp !== null && this.dropUp !== undefined ? dropUp : _dropUp\n\t\t\t\t\t}">\n\t\t\t\t\t<ng-content *ngIf="open"></ng-content>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<hr *ngIf="fluid" class="cds--list-box__divider" />\n\t\t\t<div\n\t\t\t\t*ngIf="helperText && !invalid && !warn && !fluid"\n\t\t\t\tclass="cds--form__helper-text"\n\t\t\t\t[ngClass]="{\'cds--form__helper-text--disabled\': disabled}">\n\t\t\t\t<ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf="invalid" class="cds--form-requirement">\n\t\t\t\t<ng-container *ngIf="!isTemplate(invalidText)">{{ invalidText }}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf="!invalid && warn" class="cds--form-requirement">\n\t\t\t\t<ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t',providers:[{provide:fesm2020_forms.JU,useExisting:ComboBox,multi:!0}]})],ComboBox);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs"),icon=__webpack_require__("./src/icon/index.ts");let ComboBoxModule=class ComboBoxModule{};ComboBoxModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[ComboBox],exports:[ComboBox,dropdown.kW],imports:[common.CommonModule,dropdown.kW,i18n.LU,utils.As,icon.QX],providers:[dropdown.Vn]})],ComboBoxModule);let DynamicListComboBox=class DynamicListComboBox{constructor(){this.items=[{content:"one"},{content:"two"},{content:"three"},{content:"four"}]}updateSelected(event){this.items.forEach((item=>{event.some((selectedItem=>selectedItem.content===item.content))?item.selected=!0:item.selected=!1}))}ngAfterViewInit(){setTimeout((()=>{const newItems=JSON.parse(JSON.stringify(this.items));newItems.push({content:`New ${newItems.length}`}),this.items=newItems}),4e3)}};DynamicListComboBox=(0,tslib_es6.gn)([(0,core.Component)({selector:"app-dynamic-list-combobox",template:'\n\t\t<cds-combo-box\n\t\t\t[(items)]="items"\n\t\t\titemValueKey="content"\n\t\t\ttype="multi"\n\t\t\t(selected)="updateSelected($event)">\n\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t</cds-combo-box>\n\t'})],DynamicListComboBox);let MockQueryCombobox=class MockQueryCombobox{constructor(){this.filterItems=[]}onSearch(){setTimeout((()=>{const array=[{content:`Random ${Math.random()}`},{content:`Random ${Math.random()}`},{content:`Random ${Math.random()}`},{content:`Random ${Math.random()}`}];this.currentlySelected&&array.push(this.currentlySelected),this.filterItems=array}),1e3)}selected(event){Array.isArray(event)&&!event.length?this.currentlySelected=void 0:this.currentlySelected=event}};MockQueryCombobox=(0,tslib_es6.gn)([(0,core.Component)({selector:"app-mock-query-search",template:'\n\t\t<cds-combo-box\n\t\t\tappendInline="true"\n\t\t\t[items]="filterItems"\n\t\t\titemValueKey="content"\n\t\t\t(search)="onSearch($event)"\n\t\t\t(selected)="selected($event)">\n\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t</cds-combo-box>\n\t'})],MockQueryCombobox);var isEqual=__webpack_require__("./node_modules/lodash-es/isEqual.js");let ReactiveFormsCombobox=class ReactiveFormsCombobox{constructor(fb){this.fb=fb,this.invalid=!1,this.invalidText="",this.warn=!1,this.warnText="",this.label="",this.helperText="",this.size="md",this.theme="dark",this.itemValueKey="",this._items=[]}set items(newItems){newItems.length||(newItems=[]),(0,isEqual.Z)(this._items,newItems)||(this._items=newItems)}set disabled(isDisabled){this.sampleForm&&(isDisabled?this.sampleForm.disable():this.sampleForm.enable())}ngOnInit(){this.sampleForm=this.fb.group({combobox:new fesm2020_forms.NI,multibox:new fesm2020_forms.NI}),this.sampleForm.get("combobox")?.setValue("four"),this.sampleForm.get("multibox")?.setValue(["four","two"])}};ReactiveFormsCombobox.ctorParameters=()=>[{type:fesm2020_forms.qu}],ReactiveFormsCombobox.propDecorators={invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],label:[{type:core.Input}],helperText:[{type:core.Input}],size:[{type:core.Input}],theme:[{type:core.Input}],itemValueKey:[{type:core.Input}],items:[{type:core.Input}],disabled:[{type:core.Input}]},ReactiveFormsCombobox=(0,tslib_es6.gn)([(0,core.Component)({selector:"app-reactive-combobox",template:'\n\t\t<form [formGroup]="sampleForm" (ngSubmit)="onSubmit(sampleForm)">\n\t\t\t<cds-combo-box\n\t\t\t\tformControlName="combobox"\n\t\t\t\t[size]="size"\n\t\t\t\t[label]="label"\n\t\t\t\t[helperText]="helperText"\n\t\t\t\t[itemValueKey]="itemValueKey"\n\t\t\t\t[theme]="theme"\n\t\t\t\t[invalid]="invalid"\n\t\t\t\t[invalidText]="invalidText"\n\t\t\t\t[warn]="warn"\n\t\t\t\t[warnText]="warnText"\n\t\t\t\t[items]="_items">\n\t\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t\t</cds-combo-box>\n\t\t\tselected: {{ sampleForm.get("combobox").value | json }}\n\t\t\t<cds-combo-box\n\t\t\t\tstyle="margin-top: 40px"\n\t\t\t\tformControlName="multibox"\n\t\t\t\t[label]="label"\n\t\t\t\t[size]="size"\n\t\t\t\t[itemValueKey]="itemValueKey"\n\t\t\t\t[helperText]="helperText"\n\t\t\t\ttype="multi"\n\t\t\t\t[invalid]="invalid"\n\t\t\t\t[invalidText]="invalidText"\n\t\t\t\t[warn]="warn"\n\t\t\t\t[warnText]="warnText"\n\t\t\t\t[items]="_items">\n\t\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t\t</cds-combo-box>\n\t\t\tselected: {{ sampleForm.get("multibox").value | json }}\n\t\t</form>\n\t'})],ReactiveFormsCombobox);var ai_label=__webpack_require__("./src/ai-label/index.ts"),src_button=__webpack_require__("./src/button/index.ts"),ai_label_story_shared=__webpack_require__("./src/storybook/ai-label-story-shared.ts");const combobox_stories={title:"Components/Combobox",decorators:[(0,dist.moduleMetadata)({declarations:[DynamicListComboBox,ReactiveFormsCombobox,MockQueryCombobox],imports:[fesm2020_forms.u5,fesm2020_forms.UX,ComboBoxModule,ai_label.uV,src_button.hJ,icon.QX]})],args:{label:"Label",hideLabel:!1,helperText:"Optional helper text",disabled:!1,readonly:!1,invalid:!1,invalidText:"A valid value is required",warn:!1,warnText:"This is a warning",items:[{content:"one"},{content:"two"},{content:"three"},{content:"four"},{content:"five"},{content:"six"},{content:"seven"},{content:"eight"},{content:"nine"},{content:"ten"}],appendInline:!1,dropUp:!1,selectionFeedback:"top-after-reopen",size:"md",theme:"dark",fluid:!1,itemValueKey:"content"},argTypes:{size:{options:["sm","md","lg"],control:"radio"},theme:{options:["light","dark"],control:"radio"},maxLength:{control:!1},type:{control:!1},selected:{action:"Selection changed!"},submit:{action:"Submit"},search:{action:"Search"},clear:{action:"Clear!"}},parameters:{layout:"centered"},component:ComboBox},Template=args=>({props:args,template:'\n <cds-combo-box\n [(ngModel)]="model"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [size]="size"\n [appendInline]="appendInline"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <span>{{model | json}}</span>\n '}),Basic=Template.bind({});Basic.argTypes={items:{controls:!1}};const BasicMax=(args=>({props:args,template:"\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n "})).bind({});BasicMax.storyName="Basic with max length",BasicMax.args={maxLength:4},BasicMax.argTypes={maxLength:{control:"number"}};const Dynamic=(args=>({props:args,template:"\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n "})).bind({});Dynamic.storyName="Dynamically added list items",Dynamic.parameters={controls:{disable:!0}};const Fluid=Template.bind({});Fluid.args={fluid:!0};const Multiselect=(args=>({props:args,template:'\n <cds-combo-box\n [invalid]="invalid"\n [invalidText]="invalidText"\n [label]="label"\n [hideLabel]="hideLabel"\n [warn]="warn"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [helperText]="helperText"\n [appendInline]="false"\n [items]="items"\n [theme]="theme"\n [selectionFeedback]="selectionFeedback"\n [dropUp]="dropUp"\n [appendInline]="appendInline"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n type="multi"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n '})).bind({});Multiselect.argTypes={selectionFeedback:"top-after-reopen"};const ReactiveForms=(args=>({props:args,template:'\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-reactive-combobox.component.ts\n --\x3e\n <app-reactive-combobox\n [disabled]="disabled"\n [invalid]="invalid"\n [size]="size"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [itemValueKey]="itemValueKey">\n </app-reactive-combobox>\n '})).bind({}),MockQuerySearch=(args=>({props:args,template:"\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-mock-query-search.component.ts\n --\x3e\n <app-mock-query-search></app-mock-query-search>\n "})).bind({});MockQuerySearch.parameters={controls:{disable:!0}};const withAILabelTemplate=args=>({props:args,styles:ai_label_story_shared.J6,template:'\n <div style="width: 400px">\n <cds-combo-box\n [(ngModel)]="model"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [decorator]="decoratorTpl"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </div>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n '+ai_label_story_shared.Ag+"\n </cds-ai-label>\n </ng-template>\n "}),withAILabel=withAILabelTemplate.bind({}),filterableWithAILabel=withAILabelTemplate.bind({});filterableWithAILabel.storyName="Filterable with AI label",Basic.parameters={...Basic.parameters,docs:{...Basic.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-combo-box\n [(ngModel)]="model"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [size]="size"\n [appendInline]="appendInline"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <span>{{model | json}}</span>\n `\n})',...Basic.parameters?.docs?.source}}},BasicMax.parameters={...BasicMax.parameters,docs:{...BasicMax.parameters?.docs,source:{originalSource:"args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n `\n})",...BasicMax.parameters?.docs?.source}}},Dynamic.parameters={...Dynamic.parameters,docs:{...Dynamic.parameters?.docs,source:{originalSource:"args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n `\n})",...Dynamic.parameters?.docs?.source}}},Fluid.parameters={...Fluid.parameters,docs:{...Fluid.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-combo-box\n [(ngModel)]="model"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [size]="size"\n [appendInline]="appendInline"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <span>{{model | json}}</span>\n `\n})',...Fluid.parameters?.docs?.source}}},Multiselect.parameters={...Multiselect.parameters,docs:{...Multiselect.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-combo-box\n [invalid]="invalid"\n [invalidText]="invalidText"\n [label]="label"\n [hideLabel]="hideLabel"\n [warn]="warn"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [helperText]="helperText"\n [appendInline]="false"\n [items]="items"\n [theme]="theme"\n [selectionFeedback]="selectionFeedback"\n [dropUp]="dropUp"\n [appendInline]="appendInline"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n type="multi"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n `\n})',...Multiselect.parameters?.docs?.source}}},ReactiveForms.parameters={...ReactiveForms.parameters,docs:{...ReactiveForms.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-reactive-combobox.component.ts\n --\x3e\n <app-reactive-combobox\n [disabled]="disabled"\n [invalid]="invalid"\n [size]="size"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [itemValueKey]="itemValueKey">\n </app-reactive-combobox>\n `\n})',...ReactiveForms.parameters?.docs?.source}}},MockQuerySearch.parameters={...MockQuerySearch.parameters,docs:{...MockQuerySearch.parameters?.docs,source:{originalSource:"args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-mock-query-search.component.ts\n --\x3e\n <app-mock-query-search></app-mock-query-search>\n `\n})",...MockQuerySearch.parameters?.docs?.source}}},withAILabel.parameters={...withAILabel.parameters,docs:{...withAILabel.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n styles: AI_LABEL_STORY_STYLES,\n template: `\n <div style="width: 400px">\n <cds-combo-box\n [(ngModel)]="model"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [decorator]="decoratorTpl"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </div>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n ` + AI_LABEL_INNER + `\n </cds-ai-label>\n </ng-template>\n `\n})',...withAILabel.parameters?.docs?.source}}},filterableWithAILabel.parameters={...filterableWithAILabel.parameters,docs:{...filterableWithAILabel.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n styles: AI_LABEL_STORY_STYLES,\n template: `\n <div style="width: 400px">\n <cds-combo-box\n [(ngModel)]="model"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [decorator]="decoratorTpl"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </div>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n ` + AI_LABEL_INNER + `\n </cds-ai-label>\n </ng-template>\n `\n})',...filterableWithAILabel.parameters?.docs?.source}}};const __namedExportsOrder=["Basic","BasicMax","Dynamic","Fluid","Multiselect","ReactiveForms","MockQuerySearch","withAILabel","filterableWithAILabel"]}}]);
1
+ "use strict";(self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[]).push([[9736],{"./src/ai-label/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{zb:()=>AILabelActions,UD:()=>AILabelComponent,q:()=>AILabelContent,uV:()=>AILabelModule});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs");let AILabelActions=class AILabelActions{constructor(){this.toggletipActions=!0,this.aiLabelActions=!0}};AILabelActions.propDecorators={toggletipActions:[{type:core.HostBinding,args:["class.cds--toggletip-actions"]}],aiLabelActions:[{type:core.HostBinding,args:["class.cds--ai-label-actions"]}]},AILabelActions=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelActions], [ibmAILabelActions]"})],AILabelActions);let AILabelContent=class AILabelContent{};AILabelContent=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelContent], [ibmAILabelContent]"})],AILabelContent);var popover=__webpack_require__("./src/popover/index.ts");let AILabelPopoverDirective=class AILabelPopoverDirective extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.highContrast=!0,this.dropShadow=!1}initializeReferences(){this.updateAlignmentClass(this._align),this.bindPopoverRefs(),this.handleChange(this.isOpen)}ngOnChanges(changes){const originalState=this.isOpen;this.handleChange(!1),changes.autoAlign&&!changes.autoAlign.firstChange&&(this.popoverContentRef?.setAttribute("style",""),this.bindPopoverRefs()),this.handleChange(originalState)}bindPopoverRefs(){const panel=this.elementRef.nativeElement.querySelector(":scope > span.cds--popover");panel&&(this.popoverContentRef=panel.querySelector(":scope > span.cds--popover-content"),this.caretRef=this.resolveCaretRef(panel))}resolveCaretRef(panel){return this.autoAlign?panel.querySelector("span.cds--popover-content > span.cds--popover-caret.cds--popover--auto-align"):panel.querySelector(":scope > span.cds--popover-caret")}};AILabelPopoverDirective.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],AILabelPopoverDirective=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelPopover]"})],AILabelPopoverDirective);let AILabelComponent=class AILabelComponent{constructor(elementRef){this.elementRef=elementRef,this.aiLabelClass=!0,this.caret=!0,this.dropShadow=!1,this.highContrast=!0,this.autoAlign=!1,this.isOpen=!1,this.onClose=new core.EventEmitter,this.onOpen=new core.EventEmitter,this.isOpenChange=new core.EventEmitter,this.id="ai-label-"+AILabelComponent.labelCounter++,this.aiText="AI",this.kind="default",this.size="xs",this.revertActive=!1,this.revertLabel="Revert to AI input",this.ariaLabel="Show information",this.revertClick=new core.EventEmitter,this.documentClick=this.handleOutsideClick.bind(this)}get revertClass(){return this.revertActive}get alignmentAxisOffset(){return["mini","2xs","xs"].includes(this.size)?-24:0}onPopoverIsOpenChange(open){this.isOpen=open,this.isOpenChange.emit(open)}get triggerClasses(){return{"cds--toggletip-button":!0,"cds--ai-label__button":!0,[`cds--ai-label__button--${this.size}`]:!0,[`cds--ai-label__button--${this.kind}`]:!0,"cds--ai-label__button--inline-with-content":"inline"===this.kind&&!!this.textLabel}}get computedAriaLabel(){const suffix="inline"===this.kind&&this.textLabel?this.textLabel:this.ariaLabel;return`${this.aiText} ${suffix}`}ngAfterViewInit(){this.isOpen&&document.addEventListener("click",this.documentClick)}ngOnChanges(changes){changes.revertActive&&!changes.revertActive.firstChange&&changes.revertActive.currentValue&&(this.isOpen=!1,document.removeEventListener("click",this.documentClick))}ngOnDestroy(){document.removeEventListener("click",this.documentClick)}onTriggerClick(event){const opening=!this.isOpen;opening?document.addEventListener("click",this.documentClick):document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(opening,event)}onRevertButtonClick(event){this.revertClick.emit(event)}hostkeys(event){this.isOpen&&"Escape"===event.key&&(event.stopPropagation(),document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(!1,event))}handleOutsideClick(event){this.elementRef.nativeElement.contains(event.target)||(this.aiLabelPopover?.handleChange(!1,event),document.removeEventListener("click",this.documentClick))}};AILabelComponent.labelCounter=0,AILabelComponent.ctorParameters=()=>[{type:core.ElementRef}],AILabelComponent.propDecorators={aiLabelClass:[{type:core.HostBinding,args:["class.cds--ai-label"]}],revertClass:[{type:core.HostBinding,args:["class.cds--ai-label--revert"]}],align:[{type:core.Input}],caret:[{type:core.Input}],dropShadow:[{type:core.Input}],highContrast:[{type:core.Input}],autoAlign:[{type:core.Input}],isOpen:[{type:core.Input}],onClose:[{type:core.Output}],onOpen:[{type:core.Output}],isOpenChange:[{type:core.Output}],id:[{type:core.Input}],aiText:[{type:core.Input}],textLabel:[{type:core.Input}],kind:[{type:core.Input}],size:[{type:core.Input}],revertActive:[{type:core.Input}],revertLabel:[{type:core.Input}],ariaLabel:[{type:core.Input}],revertClick:[{type:core.Output}],aiLabelPopover:[{type:core.ViewChild,args:["aiLabelPopoverHost",{read:AILabelPopoverDirective}]}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}]},AILabelComponent=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-ai-label, ibm-ai-label",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<ng-container *ngIf="!revertActive">\n\t\t\t<span\n\t\t\t\t#aiLabelPopoverHost\n\t\t\t\tcdsAILabelPopover\n\t\t\t\tclass="cds--toggletip"\n\t\t\t\t[isOpen]="isOpen"\n\t\t\t\t(isOpenChange)="onPopoverIsOpenChange($event)"\n\t\t\t\t(onOpen)="onOpen.emit($event)"\n\t\t\t\t(onClose)="onClose.emit($event)"\n\t\t\t\t[align]="align"\n\t\t\t\t[caret]="caret"\n\t\t\t\t[dropShadow]="dropShadow"\n\t\t\t\t[highContrast]="highContrast"\n\t\t\t\t[autoAlign]="autoAlign"\n\t\t\t\t[alignmentAxisOffset]="alignmentAxisOffset">\n\t\t\t\t<button\n\t\t\t\t\ttype="button"\n\t\t\t\t\t[attr.aria-label]="computedAriaLabel"\n\t\t\t\t\t[attr.aria-expanded]="isOpen"\n\t\t\t\t\t[attr.aria-controls]="id"\n\t\t\t\t\t[ngClass]="triggerClasses"\n\t\t\t\t\t(click)="onTriggerClick($event)">\n\t\t\t\t\t<span class="cds--ai-label__text">{{aiText}}</span>\n\t\t\t\t\t<span *ngIf="kind === \'inline\' && textLabel" class="cds--ai-label__additional-text">{{textLabel}}</span>\n\t\t\t\t</button>\n\n\t\t\t\t<span\n\t\t\t\t\t[id]="id"\n\t\t\t\t\tclass="cds--popover"\n\t\t\t\t\taria-live="polite">\n\t\t\t\t\t<span class="cds--popover-content cds--ai-label-content">\n\t\t\t\t\t\t<div class="cds--toggletip-content">\n\t\t\t\t\t\t\t<ng-content></ng-content>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</ng-container>\n\n\t\t<cds-icon-button\n\t\t\t*ngIf="revertActive"\n\t\t\tkind="ghost"\n\t\t\tsize="sm"\n\t\t\t[description]="revertLabel"\n\t\t\t[autoAlign]="autoAlign"\n\t\t\t[buttonAttributes]="{ \'aria-label\': revertLabel }"\n\t\t\t(click)="onRevertButtonClick($event)">\n\t\t\t<svg cdsIcon="undo" size="16"></svg>\n\t\t</cds-icon-button>\n\t'})],AILabelComponent);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs"),src_button=__webpack_require__("./src/button/index.ts"),icon=__webpack_require__("./src/icon/index.ts");let AILabelModule=class AILabelModule{};AILabelModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[AILabelComponent,AILabelPopoverDirective,AILabelContent,AILabelActions],exports:[AILabelComponent,AILabelContent,AILabelActions],imports:[common.CommonModule,src_button.hJ,icon.QX,popover.UU]})],AILabelModule)},"./src/placeholder/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{Qq:()=>PlaceholderModule,Q_:()=>PlaceholderService});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs");let PlaceholderService=class PlaceholderService{constructor(){this.viewContainerRef=null,this.viewContainerMap=new Map}registerViewContainerRef(vcRef,id){id?this.viewContainerMap.set(id,vcRef):this.viewContainerRef=vcRef}createComponent(component,injector,id,environment){return id?this.viewContainerMap.has(id)?this.viewContainerMap.get(id).createComponent(component,{index:this.viewContainerMap.size,injector}):void console.error(`No view container with id ${id} found`):this.viewContainerRef?this.viewContainerRef.createComponent(component,{index:this.viewContainerRef.length,injector,environmentInjector:environment}):void console.error("No view container defined! Likely due to a missing `cds-placeholder`")}destroyComponent(component){component.destroy()}hasComponentRef(component,id){return id?!(this.viewContainerMap.get(id).indexOf(component.hostView)<0):!(this.viewContainerRef.indexOf(component.hostView)<0)}hasPlaceholderRef(id){return id?this.viewContainerMap.has(id):!!this.viewContainerRef}appendElement(element,id){return id?this.viewContainerMap.get(id).element.nativeElement.appendChild(element):this.viewContainerRef.element.nativeElement.appendChild(element)}removeElement(element,id){return id?this.viewContainerMap.get(id).element.nativeElement.removeChild(element):this.viewContainerRef.element.nativeElement.removeChild(element)}hasElement(element,id){return id?this.viewContainerMap.get(id).element.nativeElement.contains(element):this.viewContainerRef.element.nativeElement.contains(element)}};PlaceholderService=(0,tslib_es6.gn)([(0,core.Injectable)()],PlaceholderService);let Placeholder=class Placeholder{constructor(placeholderService){this.placeholderService=placeholderService}ngOnInit(){this.placeholderService.registerViewContainerRef(this.viewContainerRef)}};Placeholder.ctorParameters=()=>[{type:PlaceholderService}],Placeholder.propDecorators={id:[{type:core.Input}],viewContainerRef:[{type:core.ViewChild,args:["placeholder",{read:core.ViewContainerRef,static:!0}]}]},Placeholder=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-placeholder, ibm-placeholder",template:"<div #placeholder></div>"})],Placeholder);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");const PLACEHOLDER_SERVICE_PROVIDER={provide:PlaceholderService,deps:[[new core.Optional,new core.SkipSelf,PlaceholderService]],useFactory:function PLACEHOLDER_SERVICE_PROVIDER_FACTORY(parentService){return parentService||new PlaceholderService}};let PlaceholderModule=class PlaceholderModule{};PlaceholderModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[Placeholder],exports:[Placeholder],providers:[PLACEHOLDER_SERVICE_PROVIDER],imports:[common.CommonModule]})],PlaceholderModule)},"./src/combobox/combobox.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,BasicMax:()=>BasicMax,Dynamic:()=>Dynamic,Fluid:()=>Fluid,MockQuerySearch:()=>MockQuerySearch,Multiselect:()=>Multiselect,ReactiveForms:()=>ReactiveForms,__namedExportsOrder:()=>__namedExportsOrder,default:()=>combobox_stories,filterableWithAILabel:()=>filterableWithAILabel,withAILabel:()=>withAILabel});var fesm2020_forms=__webpack_require__("./node_modules/@angular/forms/fesm2020/forms.mjs"),dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),dropdown=__webpack_require__("./src/dropdown/index.ts"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),utils=__webpack_require__("./src/utils/index.ts"),i18n=__webpack_require__("./src/i18n/index.ts");let ComboBox=class ComboBox{constructor(elementRef,dropdownService,i18n){this.elementRef=elementRef,this.dropdownService=dropdownService,this.i18n=i18n,this.id="combobox-"+ComboBox.comboBoxCount++,this.labelId="combobox-label-"+ComboBox.comboBoxCount++,this.items=[],this.type="single",this.size="md",this.hideLabel=!1,this.appendInline=null,this.invalid=!1,this.warn=!1,this.maxLength=null,this.theme="dark",this.selectionFeedback="top-after-reopen",this.autocomplete="list",this.disabled=!1,this.readonly=!1,this.fluid=!1,this.selected=new core.EventEmitter,this.submit=new core.EventEmitter,this.close=new core.EventEmitter,this.search=new core.EventEmitter,this.clear=new core.EventEmitter,this.hostClass=!0,this.open=!1,this.showClearButton=!1,this.pills=[],this.selectedValue="",this.outsideClick=this._outsideClick.bind(this),this.keyboardNav=this._keyboardNav.bind(this),this._dropUp=!1,this.noop=this._noop.bind(this),this.onTouchedCallback=this._noop,this.propagateChangeCallback=this._noop,this._placeholder=this.i18n.getOverridable("COMBOBOX.PLACEHOLDER"),this._closeMenuAria=this.i18n.getOverridable("COMBOBOX.A11Y.CLOSE_MENU"),this._openMenuAria=this.i18n.getOverridable("COMBOBOX.A11Y.OPEN_MENU"),this._clearSelectionsTitle=this.i18n.getOverridable("COMBOBOX.CLEAR_SELECTIONS"),this._clearSelectionsAria=this.i18n.getOverridable("COMBOBOX.A11Y.CLEAR_SELECTIONS"),this._clearSelectionTitle=this.i18n.getOverridable("COMBOBOX.CLEAR_SELECTED"),this._clearSelectionAria=this.i18n.getOverridable("COMBOBOX.A11Y.CLEAR_SELECTED"),this._isFocused=!1,this._isUsingNgControl=!1}set placeholder(value){this._placeholder.override(value)}get placeholder(){return this._placeholder.value}set openMenuAria(value){this._openMenuAria.override(value)}get openMenuAria(){return this._openMenuAria.value}set closeMenuAria(value){this._closeMenuAria.override(value)}get closeMenuAria(){return this._closeMenuAria.value}set clearSelectionsTitle(value){this._clearSelectionsTitle.override(value)}get clearSelectionsTitle(){return this._clearSelectionsTitle.value}set clearSelectionsAria(value){this._clearSelectionsAria.override(value)}get clearSelectionsAria(){return this._clearSelectionsAria.value}set clearSelectionTitle(value){this._clearSelectionTitle.override(value)}get clearSelectionTitle(){return this._clearSelectionTitle.value}set clearSelectionAria(value){this._clearSelectionAria.override(value)}get clearSelectionAria(){return this._clearSelectionAria.value}ngOnChanges(changes){changes.items&&(this.view.items=changes.items.currentValue,this.updateSelected(),("multi"===this.type||"single"===this.type&&!this.selectedValue)&&this.onSearch(this.input.nativeElement.value,!1))}ngAfterContentInit(){if(this.view){this.view.type=this.type;const isUpdate=event=>event&&event.isUpdate;this.view.select.subscribe((event=>{if(Array.isArray(event)){if(this.updatePills(),!isUpdate(event)){if(this.itemValueKey&&this.view.getSelected()){const values=this.view.getSelected().map((item=>item[this.itemValueKey]));this._propagateChange(values)}else this._propagateChange(this.view.getSelected());this.selected.emit(event)}}else event.item&&event.item.selected?(this.showClearButton=!0,this.selectedValue=event.item.content,isUpdate(event)||(this.itemValueKey?this._propagateChange(event.item[this.itemValueKey]):this._propagateChange(event.item))):(this.selectedValue="",isUpdate(event)||this._propagateChange(null)),isUpdate(event)?this._isUsingNgControl&&this.writeValue(this._writtenValue):(this.elementRef.nativeElement.querySelector("input").focus(),this.view.filterBy(""),this.selected.emit(event.item),this.closeDropdown())})),setTimeout((()=>{this.updateSelected()})),this.view.blurIntent.pipe((0,filter.h)((v=>"top"===v))).subscribe((()=>{this.elementRef.nativeElement.querySelector(".cds--text-input").focus()}))}}ngAfterViewInit(){null===this.appendInline&&(0,utils.OQ)(this.elementRef.nativeElement)?this.appendInline=!1:null===this.appendInline&&(this.appendInline=!0)}ngOnDestroy(){this.appendInline||this._appendToDropdown()}hostkeys(ev){"Escape"===ev.key?this.closeDropdown():"ArrowDown"!==ev.key||this.dropdownMenu&&this.dropdownMenu.nativeElement.contains(ev.target)||(ev.preventDefault(),this.openDropdown(),setTimeout((()=>{this.view.initFocus()}),0)),this.open&&"Tab"===ev.key&&(this.dropdownMenu.nativeElement.contains(ev.target)||ev.target===this.input.nativeElement)&&this.closeDropdown(),this.open&&"Tab"===ev.key&&ev.shiftKey&&this.closeDropdown()}_noop(){}writeValue(value){if(this._writtenValue=value,"single"===this.type){if(this.itemValueKey){const newValue=Object.assign({},this.view.getListItems().find((item=>item[this.itemValueKey]===value)));newValue.selected=!0,this.view.propagateSelected([newValue])}else this.view.propagateSelected([value||""]);this.showClearButton=!(!value||!this.view.getSelected().length)}else if(this.itemValueKey){let newValues=[];for(const v of value??[])for(const item of this.view.getListItems())item[this.itemValueKey]===v&&newValues.push(Object.assign({},item,{selected:!0}));this.view.propagateSelected(newValues)}else this.view.propagateSelected(value||[""]);this.updateSelected()}onBlur(){this.onTouchedCallback()}registerOnChange(fn){this._isUsingNgControl=!0,this.propagateChangeCallback=fn}registerOnTouched(fn){this.onTouchedCallback=fn}setDisabledState(isDisabled){this.disabled=isDisabled}updatePills(){this.pills=this.view.getSelected()||[],this.checkForReorder()}clearSelected(event){this.items=this.items.map((item=>(item.disabled||(item.selected=!1),item))),this.view.propagateSelected([]),this.updatePills();const selected=this.view.getSelected();if(this.itemValueKey&&selected){const values=selected.map((item=>item[this.itemValueKey]));this._propagateChange(values)}else this._propagateChange(selected);this.selected.emit(selected),this.clear.emit(event)}closeDropdown(){this.open=!1,this.checkForReorder(),this.close.emit(),this.appendInline||this._appendToDropdown(),document.removeEventListener("click",this.outsideClick,!0)}openDropdown(){this.disabled||this.readonly||(this.open=!0,this._dropUp=!1,this.appendInline||this._appendToBody(),document.addEventListener("click",this.outsideClick,!0),setTimeout((()=>{null!==this.dropUp&&void 0!==this.dropUp||(this._dropUp=this._shouldDropUp())}),0))}toggleDropdown(){this.open?this.closeDropdown():this.openDropdown()}onSearch(searchString,shouldEmitSearch=!0){if(shouldEmitSearch&&this.search.emit(searchString),this.showClearButton=!!searchString,this.view.filterBy(searchString),""!==searchString?this.open||this.openDropdown():(this.selectedValue="","multi"!==this.type||"top"!==this.selectionFeedback&&"top-after-reopen"!==this.selectionFeedback||this.view.reorderSelected()),"single"===this.type){if(!this.view.getListItems().some((item=>item.content.toLowerCase().includes(searchString.toLowerCase())))){const selected=this.view.getSelected();selected&&selected[0]||this.view.filterBy(searchString)}}}onSubmit(event){this.submit.emit({items:this.view.getListItems(),index:0,value:{content:event.target.value,selected:!1}})}clearInput(event){event.stopPropagation(),event.preventDefault(),this.disabled||this.readonly||("single"===this.type&&(this.clearSelected(event),this.closeDropdown()),this.selectedValue="",this.input.nativeElement.value="",this.showClearButton=!1,this.input.nativeElement.focus(),this.onSearch(this.input.nativeElement.value))}isTemplate(value){return value instanceof core.TemplateRef}_keyboardNav(event){"Escape"===event.key&&this.open&&event.stopImmediatePropagation(),"Escape"===event.key?(event.preventDefault(),this.closeDropdown(),this.input.nativeElement.focus()):this.open&&"Tab"===event.key&&(this.input.nativeElement.focus(),this.input.nativeElement.dispatchEvent(new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,key:"Tab"})),this.closeDropdown())}_appendToBody(){this.dropdownService.appendToBody(this.listbox.nativeElement,this.dropdownMenu.nativeElement,`${this.elementRef.nativeElement.className}${this.open?" cds--list-box--expanded":""}`),this.dropdownMenu.nativeElement.addEventListener("keydown",this.keyboardNav,!0)}_appendToDropdown(){this.dropdownService.appendToDropdown(this.elementRef.nativeElement),this.dropdownMenu.nativeElement.removeEventListener("keydown",this.keyboardNav,!0)}_shouldDropUp(){const menu=this.dropdownMenu&&this.dropdownMenu.nativeElement.querySelector(".cds--list-box__menu"),menuRect=menu&&menu.getBoundingClientRect();if(menu&&menuRect){return(0,utils.O3)(menu).reduce(((shouldDropUp,parent)=>{const parentRect=parent.getBoundingClientRect(),isBelowParent=!(menuRect.bottom<=parentRect.bottom);return shouldDropUp||isBelowParent}),!1)}return!1}_outsideClick(event){this.elementRef.nativeElement.contains(event.target)||this.dropdownMenu.nativeElement.contains(event.target)||this.closeDropdown()}handleFocus(event){this._isFocused="focus"===event.type}updateSelected(){const selected=this.view.getSelected();if("multi"===this.type)this.updatePills();else if(selected){const value=selected[0]?selected[0].content:"";selected[0]&&selected[0];this.selectedValue=value,this.showClearButton=!!value}}checkForReorder(){const topAfterReopen=!this.open&&"top-after-reopen"===this.selectionFeedback;"multi"!==this.type||!topAfterReopen&&"top"!==this.selectionFeedback||this.view.reorderSelected(!0)}_propagateChange(value){this._writtenValue=value,this.propagateChangeCallback(value)}};ComboBox.comboBoxCount=0,ComboBox.ctorParameters=()=>[{type:core.ElementRef},{type:dropdown.Vn},{type:i18n.oc}],ComboBox.propDecorators={placeholder:[{type:core.Input}],openMenuAria:[{type:core.Input}],closeMenuAria:[{type:core.Input}],clearSelectionsTitle:[{type:core.Input}],clearSelectionsAria:[{type:core.Input}],clearSelectionTitle:[{type:core.Input}],clearSelectionAria:[{type:core.Input}],id:[{type:core.Input}],labelId:[{type:core.Input}],items:[{type:core.Input}],type:[{type:core.Input}],size:[{type:core.Input}],itemValueKey:[{type:core.Input}],label:[{type:core.Input}],hideLabel:[{type:core.Input}],helperText:[{type:core.Input}],decorator:[{type:core.Input}],appendInline:[{type:core.Input}],invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],maxLength:[{type:core.Input}],theme:[{type:core.Input}],selectionFeedback:[{type:core.Input}],autocomplete:[{type:core.Input}],dropUp:[{type:core.Input}],disabled:[{type:core.Input}],readonly:[{type:core.Input}],fluid:[{type:core.Input}],selected:[{type:core.Output}],submit:[{type:core.Output}],close:[{type:core.Output}],search:[{type:core.Output}],clear:[{type:core.Output}],view:[{type:core.ContentChild,args:[dropdown.jq,{static:!0}]}],dropdownMenu:[{type:core.ViewChild,args:["dropdownMenu"]}],input:[{type:core.ViewChild,args:["input",{static:!0}]}],listbox:[{type:core.ViewChild,args:["listbox",{static:!0}]}],hostClass:[{type:core.HostBinding,args:["class.cds--list-box__wrapper"]}],hostkeys:[{type:core.HostListener,args:["keydown",["$event"]]}]},ComboBox=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-combo-box, ibm-combo-box",template:'\n\t\t<div\n\t\t\tclass="cds--list-box__wrapper"\n\t\t\t[ngClass]="{\n\t\t\t\t\'cds--list-box__wrapper--fluid\': fluid,\n\t\t\t\t\'cds--list-box__wrapper--fluid--invalid\': fluid && invalid,\n\t\t\t\t\'cds--list-box__wrapper--fluid--focus\': fluid && _isFocused,\n\t\t\t\t\'cds--list-box__wrapper--decorator\': !!decorator\n\t\t\t}">\n\t\t\t<label\n\t\t\t\t*ngIf="label"\n\t\t\t\t[for]="id"\n\t\t\t\t[id]="labelId"\n\t\t\t\tclass="cds--label"\n\t\t\t\t[ngClass]="{\n\t\t\t\t\t\'cds--label--disabled\': disabled,\n\t\t\t\t\t\'cds--visually-hidden\': hideLabel\n\t\t\t\t}">\n\t\t\t\t<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>\n\t\t\t</label>\n\t\t\t<div\n\t\t\t\t#listbox\n\t\t\t\t[ngClass]="{\n\t\t\t\t\t\'cds--multi-select cds--multi-select--filterable\': type === \'multi\',\n\t\t\t\t\t\'cds--list-box--light\': theme === \'light\',\n\t\t\t\t\t\'cds--list-box--expanded\': open,\n\t\t\t\t\t\'cds--list-box--sm\': size === \'sm\',\n\t\t\t\t\t\'cds--list-box--md\': size === \'md\',\n\t\t\t\t\t\'cds--list-box--lg\': size === \'lg\',\n\t\t\t\t\t\'cds--list-box--disabled\': disabled,\n\t\t\t\t\t\'cds--combo-box--readonly\': readonly,\n\t\t\t\t\t\'cds--combo-box--warning cds--list-box--warning\': warn,\n\t\t\t\t\t\'cds--list-box--invalid\': invalid\n\t\t\t\t}"\n\t\t\t\tclass="cds--list-box cds--combo-box"\n\t\t\t\t[attr.data-invalid]="(invalid ? true : null)">\n\t\t\t\t<div\n\t\t\t\t\tclass="cds--list-box__field"\n\t\t\t\t\t(click)="toggleDropdown()"\n\t\t\t\t\t(blur)="onBlur()">\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf="type === \'multi\' && pills.length > 0"\n\t\t\t\t\t\tclass="cds--tag cds--tag--filter cds--tag--high-contrast"\n\t\t\t\t\t\t[ngClass]="{\'cds--tag--disabled\': disabled || readonly}">\n\t\t\t\t\t\t<span class="cds--tag__label">{{ pills.length }}</span>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\t\t(click)="clearSelected($event)"\n\t\t\t\t\t\t\t(blur)="onBlur()"\n\t\t\t\t\t\t\t(keydown.enter)="clearSelected($event)"\n\t\t\t\t\t\t\tclass="cds--tag__close-icon"\n\t\t\t\t\t\t\ttabindex="0"\n\t\t\t\t\t\t\t[title]="clearSelectionsTitle"\n\t\t\t\t\t\t\t[disabled]="disabled || readonly"\n\t\t\t\t\t\t\t[attr.aria-label]="clearSelectionAria">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable="false"\n\t\t\t\t\t\t\t\tpreserveAspectRatio="xMidYMid meet"\n\t\t\t\t\t\t\t\tstyle="will-change: transform;"\n\t\t\t\t\t\t\t\trole="img"\n\t\t\t\t\t\t\t\txmlns="http://www.w3.org/2000/svg"\n\t\t\t\t\t\t\t\twidth="16"\n\t\t\t\t\t\t\t\theight="16"\n\t\t\t\t\t\t\t\tviewBox="0 0 16 16"\n\t\t\t\t\t\t\t\taria-hidden="true">\n\t\t\t\t\t\t\t\t<path d="M12 4.7l-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8z"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#input\n\t\t\t\t\t\ttype="text"\n\t\t\t\t\t\tautocomplete="off"\n\t\t\t\t\t\trole="combobox"\n\t\t\t\t\t\t[disabled]="disabled"\n\t\t\t\t\t\t[readOnly]="readonly"\n\t\t\t\t\t\t(input)="onSearch($event.target.value)"\n\t\t\t\t\t\t(focus)="fluid ? handleFocus($event) : null"\n\t\t\t\t\t\t(blur)="fluid ? handleFocus($event) : onBlur()"\n\t\t\t\t\t\t(keydown.enter)="onSubmit($event)"\n\t\t\t\t\t\t[value]="selectedValue"\n\t\t\t\t\t\tclass="cds--text-input"\n\t\t\t\t\t\t[ngClass]="{\'cds--text-input--empty\': !showClearButton}"\n\t\t\t\t\t\ttabindex="0"\n\t\t\t\t\t\t[id]="id"\n\t\t\t\t\t\t[attr.aria-labelledby]="labelId"\n\t\t\t\t\t\t[attr.aria-expanded]="open"\n\t\t\t\t\t\taria-haspopup="listbox"\n\t\t\t\t\t\t[attr.maxlength]="maxLength"\n\t\t\t\t\t\t[attr.aria-controls]="open ? view?.listId : null"\n\t\t\t\t\t\t[attr.aria-autocomplete]="autocomplete"\n\t\t\t\t\t\t[placeholder]="placeholder"/>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf="invalid"\n\t\t\t\t\t\tcdsIcon="warning--filled"\n\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\tclass="cds--list-box__invalid-icon">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf="!invalid && warn"\n\t\t\t\t\t\tcdsIcon="warning--alt--filled"\n\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\tclass="cds--list-box__invalid-icon cds--list-box__invalid-icon--warning">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf="showClearButton"\n\t\t\t\t\t\trole="button"\n\t\t\t\t\t\tclass="cds--list-box__selection"\n\t\t\t\t\t\ttabindex="0"\n\t\t\t\t\t\t[attr.aria-label]="clearSelectionAria"\n\t\t\t\t\t\t[title]="clearSelectionTitle"\n\t\t\t\t\t\t(keyup.enter)="clearInput($event)"\n\t\t\t\t\t\t(click)="clearInput($event)"\n\t\t\t\t\t\t(blur)="onBlur()">\n\t\t\t\t\t\t<svg cdsIcon="close" size="16"></svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype="button"\n\t\t\t\t\t\trole="button"\n\t\t\t\t\t\tclass="cds--list-box__menu-icon"\n\t\t\t\t\t\ttabindex="-1"\n\t\t\t\t\t\t[title]="open ? closeMenuAria : openMenuAria"\n\t\t\t\t\t\t[attr.aria-label]="open ? closeMenuAria : openMenuAria"\n\t\t\t\t\t\t[ngClass]="{\'cds--list-box__menu-icon--open\': open}">\n\t\t\t\t\t\t<svg cdsIcon="chevron--down" size="16"></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<ng-container *ngIf="decorator">\n\t\t\t\t\t<div class="cds--list-box__inner-wrapper--decorator">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]="decorator"></ng-template>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-container>\n\t\t\t\t<div\n\t\t\t\t\t#dropdownMenu\n\t\t\t\t\t[ngClass]="{\n\t\t\t\t\t\t\'cds--list-box--up\': this.dropUp !== null && this.dropUp !== undefined ? dropUp : _dropUp\n\t\t\t\t\t}">\n\t\t\t\t\t<ng-content *ngIf="open"></ng-content>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<hr *ngIf="fluid" class="cds--list-box__divider" />\n\t\t\t<div\n\t\t\t\t*ngIf="helperText && !invalid && !warn && !fluid"\n\t\t\t\tclass="cds--form__helper-text"\n\t\t\t\t[ngClass]="{\'cds--form__helper-text--disabled\': disabled}">\n\t\t\t\t<ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf="invalid" class="cds--form-requirement">\n\t\t\t\t<ng-container *ngIf="!isTemplate(invalidText)">{{ invalidText }}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf="!invalid && warn" class="cds--form-requirement">\n\t\t\t\t<ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t',providers:[{provide:fesm2020_forms.JU,useExisting:ComboBox,multi:!0}]})],ComboBox);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs"),icon=__webpack_require__("./src/icon/index.ts");let ComboBoxModule=class ComboBoxModule{};ComboBoxModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[ComboBox],exports:[ComboBox,dropdown.kW],imports:[common.CommonModule,dropdown.kW,i18n.LU,utils.As,icon.QX],providers:[dropdown.Vn]})],ComboBoxModule);let DynamicListComboBox=class DynamicListComboBox{constructor(){this.items=[{content:"one"},{content:"two"},{content:"three"},{content:"four"}]}updateSelected(event){this.items.forEach((item=>{event.some((selectedItem=>selectedItem.content===item.content))?item.selected=!0:item.selected=!1}))}ngAfterViewInit(){setTimeout((()=>{const newItems=JSON.parse(JSON.stringify(this.items));newItems.push({content:`New ${newItems.length}`}),this.items=newItems}),4e3)}};DynamicListComboBox=(0,tslib_es6.gn)([(0,core.Component)({selector:"app-dynamic-list-combobox",template:'\n\t\t<cds-combo-box\n\t\t\t[(items)]="items"\n\t\t\titemValueKey="content"\n\t\t\ttype="multi"\n\t\t\t(selected)="updateSelected($event)">\n\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t</cds-combo-box>\n\t'})],DynamicListComboBox);let MockQueryCombobox=class MockQueryCombobox{constructor(){this.filterItems=[]}onSearch(){setTimeout((()=>{const array=[{content:`Random ${Math.random()}`},{content:`Random ${Math.random()}`},{content:`Random ${Math.random()}`},{content:`Random ${Math.random()}`}];this.currentlySelected&&array.push(this.currentlySelected),this.filterItems=array}),1e3)}selected(event){Array.isArray(event)&&!event.length?this.currentlySelected=void 0:this.currentlySelected=event}};MockQueryCombobox=(0,tslib_es6.gn)([(0,core.Component)({selector:"app-mock-query-search",template:'\n\t\t<cds-combo-box\n\t\t\tappendInline="true"\n\t\t\t[items]="filterItems"\n\t\t\titemValueKey="content"\n\t\t\t(search)="onSearch($event)"\n\t\t\t(selected)="selected($event)">\n\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t</cds-combo-box>\n\t'})],MockQueryCombobox);var isEqual=__webpack_require__("./node_modules/lodash-es/isEqual.js");let ReactiveFormsCombobox=class ReactiveFormsCombobox{constructor(fb){this.fb=fb,this.invalid=!1,this.invalidText="",this.warn=!1,this.warnText="",this.label="",this.helperText="",this.size="md",this.theme="dark",this.itemValueKey="",this._items=[]}set items(newItems){newItems.length||(newItems=[]),(0,isEqual.Z)(this._items,newItems)||(this._items=newItems)}set disabled(isDisabled){this.sampleForm&&(isDisabled?this.sampleForm.disable():this.sampleForm.enable())}ngOnInit(){this.sampleForm=this.fb.group({combobox:new fesm2020_forms.NI,multibox:new fesm2020_forms.NI}),this.sampleForm.get("combobox")?.setValue("four"),this.sampleForm.get("multibox")?.setValue(["four","two"])}};ReactiveFormsCombobox.ctorParameters=()=>[{type:fesm2020_forms.qu}],ReactiveFormsCombobox.propDecorators={invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],label:[{type:core.Input}],helperText:[{type:core.Input}],size:[{type:core.Input}],theme:[{type:core.Input}],itemValueKey:[{type:core.Input}],items:[{type:core.Input}],disabled:[{type:core.Input}]},ReactiveFormsCombobox=(0,tslib_es6.gn)([(0,core.Component)({selector:"app-reactive-combobox",template:'\n\t\t<form [formGroup]="sampleForm" (ngSubmit)="onSubmit(sampleForm)">\n\t\t\t<cds-combo-box\n\t\t\t\tformControlName="combobox"\n\t\t\t\t[size]="size"\n\t\t\t\t[label]="label"\n\t\t\t\t[helperText]="helperText"\n\t\t\t\t[itemValueKey]="itemValueKey"\n\t\t\t\t[theme]="theme"\n\t\t\t\t[invalid]="invalid"\n\t\t\t\t[invalidText]="invalidText"\n\t\t\t\t[warn]="warn"\n\t\t\t\t[warnText]="warnText"\n\t\t\t\t[items]="_items">\n\t\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t\t</cds-combo-box>\n\t\t\tselected: {{ sampleForm.get("combobox").value | json }}\n\t\t\t<cds-combo-box\n\t\t\t\tstyle="margin-top: 40px"\n\t\t\t\tformControlName="multibox"\n\t\t\t\t[label]="label"\n\t\t\t\t[size]="size"\n\t\t\t\t[itemValueKey]="itemValueKey"\n\t\t\t\t[helperText]="helperText"\n\t\t\t\ttype="multi"\n\t\t\t\t[invalid]="invalid"\n\t\t\t\t[invalidText]="invalidText"\n\t\t\t\t[warn]="warn"\n\t\t\t\t[warnText]="warnText"\n\t\t\t\t[items]="_items">\n\t\t\t\t<cds-dropdown-list></cds-dropdown-list>\n\t\t\t</cds-combo-box>\n\t\t\tselected: {{ sampleForm.get("multibox").value | json }}\n\t\t</form>\n\t'})],ReactiveFormsCombobox);var ai_label=__webpack_require__("./src/ai-label/index.ts"),src_button=__webpack_require__("./src/button/index.ts"),ai_label_story_shared=__webpack_require__("./src/storybook/ai-label-story-shared.ts");const combobox_stories={title:"Components/Combobox",decorators:[(0,dist.moduleMetadata)({declarations:[DynamicListComboBox,ReactiveFormsCombobox,MockQueryCombobox],imports:[fesm2020_forms.u5,fesm2020_forms.UX,ComboBoxModule,ai_label.uV,src_button.hJ,icon.QX]})],args:{label:"Label",hideLabel:!1,helperText:"Optional helper text",disabled:!1,readonly:!1,invalid:!1,invalidText:"A valid value is required",warn:!1,warnText:"This is a warning",items:[{content:"one"},{content:"two"},{content:"three"},{content:"four"},{content:"five"},{content:"six"},{content:"seven"},{content:"eight"},{content:"nine"},{content:"ten"}],appendInline:!1,dropUp:!1,selectionFeedback:"top-after-reopen",size:"md",theme:"dark",fluid:!1,itemValueKey:"content"},argTypes:{size:{options:["sm","md","lg"],control:"radio"},theme:{options:["light","dark"],control:"radio"},maxLength:{control:!1},type:{control:!1},selected:{action:"Selection changed!"},submit:{action:"Submit"},search:{action:"Search"},clear:{action:"Clear!"}},parameters:{layout:"centered"},component:ComboBox},Template=args=>({props:args,template:'\n <cds-combo-box\n [(ngModel)]="model"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [size]="size"\n [appendInline]="appendInline"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <span>{{model | json}}</span>\n '}),Basic=Template.bind({});Basic.argTypes={items:{controls:!1}};const BasicMax=(args=>({props:args,template:"\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n "})).bind({});BasicMax.storyName="Basic with max length",BasicMax.args={maxLength:4},BasicMax.argTypes={maxLength:{control:"number"}};const Dynamic=(args=>({props:args,template:"\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n "})).bind({});Dynamic.storyName="Dynamically added list items",Dynamic.parameters={controls:{disable:!0}};const Fluid=Template.bind({});Fluid.args={fluid:!0};const Multiselect=(args=>({props:args,template:'\n <cds-combo-box\n [invalid]="invalid"\n [invalidText]="invalidText"\n [label]="label"\n [hideLabel]="hideLabel"\n [warn]="warn"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [helperText]="helperText"\n [appendInline]="false"\n [items]="items"\n [theme]="theme"\n [selectionFeedback]="selectionFeedback"\n [dropUp]="dropUp"\n [appendInline]="appendInline"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n type="multi"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n '})).bind({});Multiselect.argTypes={selectionFeedback:"top-after-reopen"};const ReactiveForms=(args=>({props:args,template:'\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-reactive-combobox.component.ts\n --\x3e\n <app-reactive-combobox\n [disabled]="disabled"\n [invalid]="invalid"\n [size]="size"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [itemValueKey]="itemValueKey">\n </app-reactive-combobox>\n '})).bind({}),MockQuerySearch=(args=>({props:args,template:"\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-mock-query-search.component.ts\n --\x3e\n <app-mock-query-search></app-mock-query-search>\n "})).bind({});MockQuerySearch.parameters={controls:{disable:!0}};const withAILabelTemplate=args=>({props:args,styles:ai_label_story_shared.J6,template:'\n <div style="width: 400px">\n <cds-combo-box\n [(ngModel)]="model"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [decorator]="decoratorTpl"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </div>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n '+ai_label_story_shared.Ag+"\n </cds-ai-label>\n </ng-template>\n "}),withAILabel=withAILabelTemplate.bind({}),filterableWithAILabel=withAILabelTemplate.bind({});filterableWithAILabel.storyName="Filterable with AI label",Basic.parameters={...Basic.parameters,docs:{...Basic.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-combo-box\n [(ngModel)]="model"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [size]="size"\n [appendInline]="appendInline"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <span>{{model | json}}</span>\n `\n})',...Basic.parameters?.docs?.source}}},BasicMax.parameters={...BasicMax.parameters,docs:{...BasicMax.parameters?.docs,source:{originalSource:"args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n `\n})",...BasicMax.parameters?.docs?.source}}},Dynamic.parameters={...Dynamic.parameters,docs:{...Dynamic.parameters?.docs,source:{originalSource:"args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-dynamic-list-combobox.component.ts\n --\x3e\n <app-dynamic-list-combobox></app-dynamic-list-combobox>\n `\n})",...Dynamic.parameters?.docs?.source}}},Fluid.parameters={...Fluid.parameters,docs:{...Fluid.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-combo-box\n [(ngModel)]="model"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [size]="size"\n [appendInline]="appendInline"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <span>{{model | json}}</span>\n `\n})',...Fluid.parameters?.docs?.source}}},Multiselect.parameters={...Multiselect.parameters,docs:{...Multiselect.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-combo-box\n [invalid]="invalid"\n [invalidText]="invalidText"\n [label]="label"\n [hideLabel]="hideLabel"\n [warn]="warn"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [helperText]="helperText"\n [appendInline]="false"\n [items]="items"\n [theme]="theme"\n [selectionFeedback]="selectionFeedback"\n [dropUp]="dropUp"\n [appendInline]="appendInline"\n [fluid]="fluid"\n [itemValueKey]="itemValueKey"\n type="multi"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n `\n})',...Multiselect.parameters?.docs?.source}}},ReactiveForms.parameters={...ReactiveForms.parameters,docs:{...ReactiveForms.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-reactive-combobox.component.ts\n --\x3e\n <app-reactive-combobox\n [disabled]="disabled"\n [invalid]="invalid"\n [size]="size"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [itemValueKey]="itemValueKey">\n </app-reactive-combobox>\n `\n})',...ReactiveForms.parameters?.docs?.source}}},MockQuerySearch.parameters={...MockQuerySearch.parameters,docs:{...MockQuerySearch.parameters?.docs,source:{originalSource:"args => ({\n props: args,\n template: `\n \x3c!--\n app-* components are for demo purposes only.\n You can create your own implementation by using the component source found at:\n https://github.com/IBM/carbon-components-angular/tree/master/src/combobox/stories/app-mock-query-search.component.ts\n --\x3e\n <app-mock-query-search></app-mock-query-search>\n `\n})",...MockQuerySearch.parameters?.docs?.source}}},withAILabel.parameters={...withAILabel.parameters,docs:{...withAILabel.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n styles: AI_LABEL_STORY_STYLES,\n template: `\n <div style="width: 400px">\n <cds-combo-box\n [(ngModel)]="model"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [decorator]="decoratorTpl"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </div>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n ` + AI_LABEL_INNER + `\n </cds-ai-label>\n </ng-template>\n `\n})',...withAILabel.parameters?.docs?.source}}},filterableWithAILabel.parameters={...filterableWithAILabel.parameters,docs:{...filterableWithAILabel.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n styles: AI_LABEL_STORY_STYLES,\n template: `\n <div style="width: 400px">\n <cds-combo-box\n [(ngModel)]="model"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [label]="label"\n [hideLabel]="hideLabel"\n [helperText]="helperText"\n [items]="items"\n [theme]="theme"\n [dropUp]="dropUp"\n [fluid]="fluid"\n [decorator]="decoratorTpl"\n [itemValueKey]="itemValueKey"\n (selected)="selected($event)"\n (submit)="submit($event)"\n (search)="search($event)"\n (clear)="clear($event)">\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </div>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n ` + AI_LABEL_INNER + `\n </cds-ai-label>\n </ng-template>\n `\n})',...filterableWithAILabel.parameters?.docs?.source}}};const __namedExportsOrder=["Basic","BasicMax","Dynamic","Fluid","Multiselect","ReactiveForms","MockQuerySearch","withAILabel","filterableWithAILabel"]}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[]).push([[6663],{"./src/ai-label/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{zb:()=>AILabelActions,UD:()=>AILabelComponent,q:()=>AILabelContent,uV:()=>AILabelModule});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs");let AILabelActions=class AILabelActions{constructor(){this.toggletipActions=!0,this.aiLabelActions=!0}};AILabelActions.propDecorators={toggletipActions:[{type:core.HostBinding,args:["class.cds--toggletip-actions"]}],aiLabelActions:[{type:core.HostBinding,args:["class.cds--ai-label-actions"]}]},AILabelActions=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelActions], [ibmAILabelActions]"})],AILabelActions);let AILabelContent=class AILabelContent{};AILabelContent=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelContent], [ibmAILabelContent]"})],AILabelContent);var popover=__webpack_require__("./src/popover/index.ts");let AILabelPopoverDirective=class AILabelPopoverDirective extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.highContrast=!0,this.dropShadow=!1}initializeReferences(){this.updateAlignmentClass(this._align),this.bindPopoverRefs(),this.handleChange(this.isOpen)}ngOnChanges(changes){const originalState=this.isOpen;this.handleChange(!1),changes.autoAlign&&!changes.autoAlign.firstChange&&(this.popoverContentRef?.setAttribute("style",""),this.bindPopoverRefs()),this.handleChange(originalState)}bindPopoverRefs(){const panel=this.elementRef.nativeElement.querySelector(":scope > span.cds--popover");panel&&(this.popoverContentRef=panel.querySelector(":scope > span.cds--popover-content"),this.caretRef=this.resolveCaretRef(panel))}resolveCaretRef(panel){return this.autoAlign?panel.querySelector("span.cds--popover-content > span.cds--popover-caret.cds--popover--auto-align"):panel.querySelector(":scope > span.cds--popover-caret")}};AILabelPopoverDirective.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],AILabelPopoverDirective=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelPopover]"})],AILabelPopoverDirective);let AILabelComponent=class AILabelComponent{constructor(elementRef){this.elementRef=elementRef,this.aiLabelClass=!0,this.caret=!0,this.dropShadow=!1,this.highContrast=!0,this.autoAlign=!1,this.isOpen=!1,this.onClose=new core.EventEmitter,this.onOpen=new core.EventEmitter,this.isOpenChange=new core.EventEmitter,this.id="ai-label-"+AILabelComponent.labelCounter++,this.aiText="AI",this.kind="default",this.size="xs",this.revertActive=!1,this.revertLabel="Revert to AI input",this.ariaLabel="Show information",this.revertClick=new core.EventEmitter,this.documentClick=this.handleOutsideClick.bind(this)}get revertClass(){return this.revertActive}get alignmentAxisOffset(){return["mini","2xs","xs"].includes(this.size)?-24:0}onPopoverIsOpenChange(open){this.isOpen=open,this.isOpenChange.emit(open)}get triggerClasses(){return{"cds--toggletip-button":!0,"cds--ai-label__button":!0,[`cds--ai-label__button--${this.size}`]:!0,[`cds--ai-label__button--${this.kind}`]:!0,"cds--ai-label__button--inline-with-content":"inline"===this.kind&&!!this.textLabel}}get computedAriaLabel(){const suffix="inline"===this.kind&&this.textLabel?this.textLabel:this.ariaLabel;return`${this.aiText} ${suffix}`}ngAfterViewInit(){this.isOpen&&document.addEventListener("click",this.documentClick)}ngOnChanges(changes){changes.revertActive&&!changes.revertActive.firstChange&&changes.revertActive.currentValue&&(this.isOpen=!1,document.removeEventListener("click",this.documentClick))}ngOnDestroy(){document.removeEventListener("click",this.documentClick)}onTriggerClick(event){const opening=!this.isOpen;opening?document.addEventListener("click",this.documentClick):document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(opening,event)}onRevertButtonClick(event){this.revertClick.emit(event)}hostkeys(event){this.isOpen&&"Escape"===event.key&&(event.stopPropagation(),document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(!1,event))}handleOutsideClick(event){this.elementRef.nativeElement.contains(event.target)||(this.aiLabelPopover?.handleChange(!1,event),document.removeEventListener("click",this.documentClick))}};AILabelComponent.labelCounter=0,AILabelComponent.ctorParameters=()=>[{type:core.ElementRef}],AILabelComponent.propDecorators={aiLabelClass:[{type:core.HostBinding,args:["class.cds--ai-label"]}],revertClass:[{type:core.HostBinding,args:["class.cds--ai-label--revert"]}],align:[{type:core.Input}],caret:[{type:core.Input}],dropShadow:[{type:core.Input}],highContrast:[{type:core.Input}],autoAlign:[{type:core.Input}],isOpen:[{type:core.Input}],onClose:[{type:core.Output}],onOpen:[{type:core.Output}],isOpenChange:[{type:core.Output}],id:[{type:core.Input}],aiText:[{type:core.Input}],textLabel:[{type:core.Input}],kind:[{type:core.Input}],size:[{type:core.Input}],revertActive:[{type:core.Input}],revertLabel:[{type:core.Input}],ariaLabel:[{type:core.Input}],revertClick:[{type:core.Output}],aiLabelPopover:[{type:core.ViewChild,args:["aiLabelPopoverHost",{read:AILabelPopoverDirective}]}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}]},AILabelComponent=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-ai-label, ibm-ai-label",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<ng-container *ngIf="!revertActive">\n\t\t\t<span\n\t\t\t\t#aiLabelPopoverHost\n\t\t\t\tcdsAILabelPopover\n\t\t\t\tclass="cds--toggletip"\n\t\t\t\t[isOpen]="isOpen"\n\t\t\t\t(isOpenChange)="onPopoverIsOpenChange($event)"\n\t\t\t\t(onOpen)="onOpen.emit($event)"\n\t\t\t\t(onClose)="onClose.emit($event)"\n\t\t\t\t[align]="align"\n\t\t\t\t[caret]="caret"\n\t\t\t\t[dropShadow]="dropShadow"\n\t\t\t\t[highContrast]="highContrast"\n\t\t\t\t[autoAlign]="autoAlign"\n\t\t\t\t[alignmentAxisOffset]="alignmentAxisOffset">\n\t\t\t\t<button\n\t\t\t\t\ttype="button"\n\t\t\t\t\t[attr.aria-label]="computedAriaLabel"\n\t\t\t\t\t[attr.aria-expanded]="isOpen"\n\t\t\t\t\t[attr.aria-controls]="id"\n\t\t\t\t\t[ngClass]="triggerClasses"\n\t\t\t\t\t(click)="onTriggerClick($event)">\n\t\t\t\t\t<span class="cds--ai-label__text">{{aiText}}</span>\n\t\t\t\t\t<span *ngIf="kind === \'inline\' && textLabel" class="cds--ai-label__additional-text">{{textLabel}}</span>\n\t\t\t\t</button>\n\n\t\t\t\t<span\n\t\t\t\t\t[id]="id"\n\t\t\t\t\tclass="cds--popover"\n\t\t\t\t\taria-live="polite">\n\t\t\t\t\t<span class="cds--popover-content cds--ai-label-content">\n\t\t\t\t\t\t<div class="cds--toggletip-content">\n\t\t\t\t\t\t\t<ng-content></ng-content>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</ng-container>\n\n\t\t<cds-icon-button\n\t\t\t*ngIf="revertActive"\n\t\t\tkind="ghost"\n\t\t\tsize="sm"\n\t\t\t[description]="revertLabel"\n\t\t\t[autoAlign]="autoAlign"\n\t\t\t[buttonAttributes]="{ \'aria-label\': revertLabel }"\n\t\t\t(click)="onRevertButtonClick($event)">\n\t\t\t<svg cdsIcon="undo" size="16"></svg>\n\t\t</cds-icon-button>\n\t'})],AILabelComponent);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs"),src_button=__webpack_require__("./src/button/index.ts"),icon=__webpack_require__("./src/icon/index.ts");let AILabelModule=class AILabelModule{};AILabelModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[AILabelComponent,AILabelPopoverDirective,AILabelContent,AILabelActions],exports:[AILabelComponent,AILabelContent,AILabelActions],imports:[common.CommonModule,src_button.hJ,icon.QX,popover.UU]})],AILabelModule)},"./src/datepicker/datepicker.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,Range:()=>Range,Single:()=>Single,Skeleton:()=>Skeleton,__namedExportsOrder:()=>__namedExportsOrder,default:()=>datepicker_stories,withAILabel:()=>withAILabel});var dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),rangePlugin=__webpack_require__("./node_modules/flatpickr/dist/plugins/rangePlugin.js"),rangePlugin_default=__webpack_require__.n(rangePlugin),esm=__webpack_require__("./node_modules/flatpickr/dist/esm/index.js"),fesm2020_forms=__webpack_require__("./node_modules/@angular/forms/fesm2020/forms.mjs");const monthToStr=(monthNumber,shorthand,locale)=>locale.months[shorthand?"shorthand":"longhand"][monthNumber],config_selectorFlatpickrMonthYearContainer=".flatpickr-current-month",config_selectorFlatpickrYearContainer=".numInputWrapper",config_classFlatpickrCurrentMonth="cur-month",config_shorthand=!1,carbonFlatpickrMonthSelectPlugin=fp=>{const updateCurrentMonth=()=>{if(!fp.yearElements)return;const monthStr=monthToStr(fp.currentMonth,!0===config_shorthand,fp.l10n);fp.yearElements.forEach((elem=>{const currentMonthContainer=elem.closest(config_selectorFlatpickrMonthYearContainer);Array.prototype.forEach.call(currentMonthContainer.querySelectorAll(".cur-month"),(monthElement=>{monthElement.textContent=monthStr}))}))};return{onMonthChange:updateCurrentMonth,onValueUpdate:updateCurrentMonth,onOpen:updateCurrentMonth,onReady:[()=>{fp.monthElements&&fp.yearElements&&(fp.monthElements.forEach((elem=>{elem.parentNode&&elem.parentNode.removeChild(elem)})),fp.monthElements.splice(0,fp.monthElements.length,...fp.monthElements.map((()=>{const monthElement=fp._createElement("span",config_classFlatpickrCurrentMonth);return monthElement.textContent=monthToStr(fp.currentMonth,!0===config_shorthand,fp.l10n),fp.yearElements[0].closest(config_selectorFlatpickrMonthYearContainer).insertBefore(monthElement,fp.yearElements[0].closest(config_selectorFlatpickrYearContainer)),monthElement}))))},updateCurrentMonth,()=>{fp.loadedPlugins.push("carbonFlatpickrMonthSelectPlugin")}]}};var l10n=__webpack_require__("./node_modules/flatpickr/dist/l10n/index.js"),l10n_default=__webpack_require__.n(l10n),i18n=__webpack_require__("./src/i18n/index.ts");l10n_default()?.default.en?.weekdays&&(l10n_default().default.en.weekdays.shorthand=l10n_default().default.en.weekdays.longhand.map((day=>"Thursday"===day?"Th":day.charAt(0))));let DatePicker=class DatePicker{constructor(elementRef,i18n){this.elementRef=elementRef,this.i18n=i18n,this.range=!1,this.dateFormat="m/d/Y",this.language="en",this.placeholder="mm/dd/yyyy",this.ariaLabel="calendar container",this.inputPattern="^\\d{1,2}/\\d{1,2}/\\d{4}$",this.id="datepicker-"+DatePicker.datePickerCount++,this.theme="dark",this.disabled=!1,this.readonly=!1,this.invalid=!1,this.warn=!1,this.size="md",this.rangeInvalid=!1,this.rangeWarn=!1,this.skeleton=!1,this.plugins=[],this.valueChange=new core.EventEmitter,this.onClose=new core.EventEmitter,this._value=[],this._flatpickrOptions={allowInput:!0},this.flatpickrBaseOptions={mode:"single",dateFormat:"m/d/Y",plugins:this.plugins,onOpen:()=>{this.updateClassNames(),this.updateAttributes(),this.updateCalendarListeners()},onClose:date=>{if(this.range&&this.flatpickrInstance){const inputValue=this.input.input.nativeElement.value,rangeInputValue=this.rangeInput.input.nativeElement.value;if(inputValue||rangeInputValue){const parseDate=date=>this.flatpickrInstance.parseDate(date,this.dateFormat);this.setDateValues([parseDate(inputValue),parseDate(rangeInputValue||inputValue)]),this.doSelect(this.flatpickrInstance.selectedDates)}}this.onClose.emit(date)},onDayCreate:(_dObj,_dStr,_fp,dayElem)=>{dayElem.classList.add("cds--date-picker__day")},nextArrow:this.rightArrowHTML(),prevArrow:this.leftArrowHTML(),value:this.value},this.flatpickrInstance=null,this.onTouched=()=>{},this.propagateChange=_=>{},this.preventCalendarClose=event=>event.stopPropagation()}set value(v){v||(v=[]),this._value=v}get value(){return this._value}set flatpickrOptions(options){this._flatpickrOptions=Object.assign({},this._flatpickrOptions,options)}get flatpickrOptions(){const plugins=[...this.plugins,carbonFlatpickrMonthSelectPlugin];return this.range&&plugins.push(rangePlugin_default()({input:`#${this.id}-rangeInput`,position:"left"})),Object.assign({},this._flatpickrOptions,this.flatpickrBaseOptions,{mode:this.range?"range":"single",plugins,dateFormat:this.dateFormat,locale:l10n_default()?.default[this.language]||l10n_default()[this.language],clickOpens:!this.readonly})}ngOnInit(){"en"!==this.i18n.getLocale()&&this.i18n.getLocaleObservable().subscribe((locale=>{this.language=locale,this.resetFlatpickrInstance()}))}ngOnChanges(changes){const flatpickrChangeKeys=["range","dateFormat","language","id","value","plugins","flatpickrOptions","readonly"];Object.keys(changes).some((key=>flatpickrChangeKeys.includes(key)))&&this.resetFlatpickrInstance(changes.value)}ngAfterViewInit(){this.skeleton||(this.input.input.nativeElement.value=this._value[0]??"",this.range&&(this.rangeInput.input.nativeElement.value=this._value[1]??"")),setTimeout((()=>{this.addInputListeners()}),0)}ngAfterViewChecked(){this.isFlatpickrLoaded()||(this.flatpickrInstance=(0,esm.Z)(`#${this.id}-input`,this.flatpickrOptions),this.isFlatpickrLoaded()&&this.value.length>0&&this.setDateValues(this.value))}onFocus(){if(this.range)if(this.rangeInput.input.nativeElement===document.activeElement&&this.flatpickrInstance.selectedDates[1]){const currentMonth=this.flatpickrInstance.selectedDates[1].getMonth();this.flatpickrInstance.changeMonth(currentMonth,!1)}else if(this.input.input.nativeElement===document.activeElement&&this.flatpickrInstance.selectedDates[0]){const currentMonth=this.flatpickrInstance.selectedDates[0].getMonth();this.flatpickrInstance.changeMonth(currentMonth,!1)}}onFocusOut(){this.onTouched()}writeValue(value){this.value=value,setTimeout((()=>{this.isFlatpickrLoaded()&&this.flatpickrInstance.config&&this.setDateValues(this.value)}))}setDisabledState(isDisabled){this.disabled=isDisabled}registerOnChange(fn){this.propagateChange=fn}registerOnTouched(fn){this.onTouched=fn}ngOnDestroy(){this.isFlatpickrLoaded()&&this.flatpickrInstance.destroy()}onValueChange(event){if(this.isFlatpickrLoaded()){const date=this.flatpickrInstance.parseDate(event,this.dateFormat);this.range?this.setDateValues([date,this.flatpickrInstance.selectedDates[1]]):this.setDateValues([date]),this.doSelect(this.flatpickrInstance.selectedDates)}}onRangeValueChange(event){if(this.isFlatpickrLoaded()&&this.flatpickrInstance.isOpen){const date=this.flatpickrInstance.parseDate(event,this.dateFormat);this.setDateValues([this.flatpickrInstance.selectedDates[0],date]),this.doSelect(this.flatpickrInstance.selectedDates)}}openCalendar(datepickerInput,event){if(!this.readonly&&!this.skeleton)if(this.isDecoratorClick(event))this.isFlatpickrLoaded()&&this.flatpickrInstance.isOpen&&this.flatpickrInstance.close();else if(this.range){if(datepickerInput.input.nativeElement.click(),datepickerInput===this.input&&this.flatpickrInstance.selectedDates[0]){const currentMonth=this.flatpickrInstance.selectedDates[0].getMonth();this.flatpickrInstance.currentYear=this.flatpickrInstance.selectedDates[0].getFullYear(),this.flatpickrInstance.changeMonth(currentMonth,!1)}}else this.flatpickrInstance.open()}isDecoratorClick(event){if(!event?.target)return!1;const t=event.target;return null!=(t instanceof Element?t:t.parentElement)?.closest(".cds--date-picker-input-inner-wrapper--decorator")}updateCalendarListeners(){const calendarContainer=document.querySelectorAll(".flatpickr-calendar");Array.from(calendarContainer).forEach((calendar=>{calendar.removeEventListener("click",this.preventCalendarClose),calendar.addEventListener("click",this.preventCalendarClose)}))}addInputListeners(){if(!this.isFlatpickrLoaded())return;const addFocusCalendarListener=element=>{element.addEventListener("keydown",(event=>{if(!this.readonly&&("Escape"===event.key&&this.flatpickrInstance.close(),"ArrowDown"===event.key)){this.flatpickrInstance.isOpen||this.flatpickrInstance.open();const calendarContainer=this.flatpickrInstance.calendarContainer,dayElement=calendarContainer&&calendarContainer.querySelector(".flatpickr-day[tabindex]"),selectedDateElem=calendarContainer&&calendarContainer.querySelector(".selected"),todayDateElem=calendarContainer&&calendarContainer.querySelector(".today");dayElement&&((todayDateElem||selectedDateElem||dayElement).focus(),document.activeElement!==dayElement&&this.flatpickrInstance.selectedDateElem&&this.flatpickrInstance.selectedDateElem.focus())}}))};this.input&&this.input.input&&addFocusCalendarListener(this.input.input.nativeElement),this.rangeInput&&this.rangeInput.input&&addFocusCalendarListener(this.rangeInput.input.nativeElement)}resetFlatpickrInstance(newDates){if(this.isFlatpickrLoaded()){let dates=this.flatpickrInstance.selectedDates;newDates&&this.didDateValueChange(newDates.currentValue,newDates.previousValue)&&(dates=newDates.currentValue),this.flatpickrInstance=(0,esm.Z)(`#${this.id}-input`,this.flatpickrOptions),this.setDateValues(dates)}}updateClassNames(){if(!this.elementRef)return;const calendarContainer=document.querySelectorAll(".flatpickr-calendar"),monthContainer=document.querySelectorAll(".flatpickr-month"),weekdaysContainer=document.querySelectorAll(".flatpickr-weekdays"),weekdayContainer=document.querySelectorAll(".flatpickr-weekday"),daysContainer=document.querySelectorAll(".flatpickr-days"),dayContainer=document.querySelectorAll(".flatpickr-day"),addClassIfNotExists=(classname,elementList)=>{Array.from(elementList).forEach((element=>{element.classList.contains(classname)||element.classList.add(classname)}))};addClassIfNotExists("cds--date-picker__calendar",calendarContainer),addClassIfNotExists("cds--date-picker__month",monthContainer),addClassIfNotExists("cds--date-picker__weekdays",weekdaysContainer),addClassIfNotExists("cds--date-picker__days",daysContainer),Array.from(weekdayContainer).forEach((element=>{element.innerHTML=element.innerHTML.replace(/\s+/g,""),element.classList.add("cds--date-picker__weekday")})),Array.from(dayContainer).forEach((element=>{element.setAttribute("role","button"),element.classList.add("cds--date-picker__day"),this.value&&(element.classList.contains("today")&&this.value.length>0?element.classList.add("no-border"):element.classList.contains("today")&&0===this.value.length&&element.classList.remove("no-border"))}))}updateAttributes(){const calendarContainer=document.querySelectorAll(".flatpickr-calendar");Array.from(calendarContainer).forEach((calendar=>{calendar.setAttribute("role","application"),calendar.setAttribute("aria-label",this.ariaLabel)}))}setDateValues(dates){if(this.isFlatpickrLoaded()){const singleInput=this.elementRef.nativeElement.querySelector(`#${this.id}-input`),rangeInput=this.elementRef.nativeElement.querySelector(`#${this.id}-rangeInput`);let shouldRefocusDateElement=this.flatpickrInstance.selectedDateElem===document.activeElement;this.flatpickrInstance.setDate(dates),shouldRefocusDateElement&&this.flatpickrInstance.selectedDateElem.focus();let singleDate="";if("string"==typeof this.flatpickrInstance.selectedDates[0]?(singleDate=this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[0],this.dateFormat),singleDate=this.flatpickrInstance.formatDate(singleDate,this.dateFormat)):this.flatpickrInstance.selectedDates[0]&&(singleDate=this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[0],this.dateFormat)),rangeInput){let rangeDate="";"string"==typeof this.flatpickrInstance.selectedDates[1]?(rangeDate=this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[1].toString(),this.dateFormat),rangeDate=this.flatpickrInstance.formatDate(rangeDate,this.dateFormat)):this.flatpickrInstance.selectedDates[1]&&(rangeDate=this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[1],this.dateFormat)),setTimeout((()=>{rangeInput.value=rangeDate,singleInput.value=singleDate}))}}}doSelect(selectedValue){if(this.range&&this.flatpickrInstance.selectedDates[0]){const currentMonth=this.flatpickrInstance.selectedDates[0].getMonth();let shouldRefocusDateElement=this.flatpickrInstance.selectedDateElem===document.activeElement;this.flatpickrInstance.changeMonth(currentMonth,!1),shouldRefocusDateElement&&this.flatpickrInstance.selectedDateElem.focus()}this.valueChange.emit(selectedValue),this.propagateChange(selectedValue)}didDateValueChange(currentValue,previousValue){return currentValue[0]!==previousValue[0]||currentValue[1]!==previousValue[1]}isFlatpickrLoaded(){return!!this.flatpickrInstance&&!!this.flatpickrInstance.setDate}rightArrowHTML(){return'\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>'}leftArrowHTML(){return'\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>'}};DatePicker.datePickerCount=0,DatePicker.ctorParameters=()=>[{type:core.ElementRef},{type:i18n.oc}],DatePicker.propDecorators={range:[{type:core.Input}],dateFormat:[{type:core.Input}],language:[{type:core.Input}],label:[{type:core.Input}],helperText:[{type:core.Input}],decorator:[{type:core.Input}],rangeDecorator:[{type:core.Input}],rangeHelperText:[{type:core.Input}],rangeLabel:[{type:core.Input}],placeholder:[{type:core.Input}],ariaLabel:[{type:core.Input}],inputPattern:[{type:core.Input}],id:[{type:core.Input}],value:[{type:core.Input}],theme:[{type:core.Input}],disabled:[{type:core.Input}],readonly:[{type:core.Input}],invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],size:[{type:core.Input}],rangeInvalid:[{type:core.Input}],rangeInvalidText:[{type:core.Input}],rangeWarn:[{type:core.Input}],rangeWarnText:[{type:core.Input}],skeleton:[{type:core.Input}],plugins:[{type:core.Input}],flatpickrOptions:[{type:core.Input}],input:[{type:core.ViewChild,args:["input",{static:!0}]}],rangeInput:[{type:core.ViewChild,args:["rangeInput"]}],valueChange:[{type:core.Output}],onClose:[{type:core.Output}],onFocus:[{type:core.HostListener,args:["focusin"]}],onFocusOut:[{type:core.HostListener,args:["focusout"]}]},DatePicker=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-date-picker, ibm-date-picker",template:'\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[readonly]="readonly"\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[decorator]="decorator"\n\t\t\t\t\t(valueChange)="onValueChange($event)"\n\t\t\t\t\t(click)="openCalendar(input, $event)">\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[readonly]="readonly"\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[decorator]="rangeDecorator"\n\t\t\t\t\t(valueChange)="onRangeValueChange($event)"\n\t\t\t\t\t(click)="openCalendar(rangeInput, $event)">\n\t\t\t\t</cds-date-picker-input>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t',providers:[{provide:fesm2020_forms.JU,useExisting:DatePicker,multi:!0}],encapsulation:core.ViewEncapsulation.None})],DatePicker);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");let DatePickerInput=class DatePickerInput{constructor(elementRef){this.elementRef=elementRef,this.type="simple",this.id="datepicker-"+DatePickerInput.datePickerCount++,this.hasIcon=!1,this.placeholder="mm/dd/yyyy",this.pattern="^\\d{1,2}/\\d{1,2}/\\d{4}$",this.valueChange=new core.EventEmitter,this.theme="dark",this.disabled=!1,this.readonly=!1,this.invalid=!1,this.warn=!1,this.skeleton=!1,this.value="",this.size="md",this.onTouched=()=>{},this.propagateChange=_=>{}}onChange(event){this.value=event.target.value,this.valueChange.emit(this.value),this.propagateChange(this.value),this.onTouched()}writeValue(value){this.value=value}registerOnChange(fn){this.propagateChange=fn}registerOnTouched(fn){this.onTouched=fn}isTemplate(value){return value instanceof core.TemplateRef}};DatePickerInput.datePickerCount=0,DatePickerInput.ctorParameters=()=>[{type:core.ElementRef}],DatePickerInput.propDecorators={type:[{type:core.Input}],id:[{type:core.Input}],hasIcon:[{type:core.Input}],label:[{type:core.Input}],placeholder:[{type:core.Input}],pattern:[{type:core.Input}],valueChange:[{type:core.Output}],theme:[{type:core.Input}],disabled:[{type:core.Input}],readonly:[{type:core.Input}],invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],helperText:[{type:core.Input}],decorator:[{type:core.Input}],skeleton:[{type:core.Input}],value:[{type:core.Input}],size:[{type:core.Input}],input:[{type:core.ViewChild,args:["input"]}]},DatePickerInput=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-date-picker-input, ibm-date-picker-input",template:'\n\t<div class="cds--form-item">\n\t\t<div class="cds--date-picker"\n\t\t\t[ngClass]="{\n\t\t\t\t\'cds--date-picker--simple\' : type === \'simple\',\n\t\t\t\t\'cds--date-picker--single\' : type === \'single\',\n\t\t\t\t\'cds--date-picker--range\' : type === \'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\x3c!-- Skeleton structure --\x3e\n\t\t\t\t<ng-container *ngIf="skeleton">\n\t\t\t\t\t<span class="cds--label cds--skeleton"></span>\n\t\t\t\t\t<div class="cds--date-picker__input cds--skeleton"></div>\n\t\t\t\t</ng-container>\n\t\t\t\t<label\n\t\t\t\t\t*ngIf="label && !skeleton"\n\t\t\t\t\t[for]="id"\n\t\t\t\t\tclass="cds--label"\n\t\t\t\t\t[ngClass]="{\'cds--label--disabled\': disabled}">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>\n\t\t\t\t</label>\n\t\t\t\t<div class="cds--date-picker-input__wrapper"\n\t\t\t\t\t*ngIf="!skeleton"\n\t\t\t\t\t[ngClass]="{\n\t\t\t\t\t\t\'cds--date-picker-input__wrapper--invalid\': invalid,\n\t\t\t\t\t\t\'cds--date-picker-input__wrapper--warn\': warn,\n\t\t\t\t\t\t\'cds--date-picker-input__wrapper--decorator\': !!decorator\n\t\t\t\t\t}">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t#input\n\t\t\t\t\t\t\tautocomplete="off"\n\t\t\t\t\t\t\ttype="text"\n\t\t\t\t\t\t\tclass="cds--date-picker__input"\n\t\t\t\t\t\t\t[ngClass]="{\n\t\t\t\t\t\t\t\t\'cds--date-picker__input--sm\': size === \'sm\',\n\t\t\t\t\t\t\t\t\'cds--date-picker__input--md\': size === \'md\',\n\t\t\t\t\t\t\t\t\'cds--date-picker__input--lg\': size === \'lg\'\n\t\t\t\t\t\t\t}"\n\t\t\t\t\t\t\t[attr.data-invalid]="invalid ? true : undefined"\n\t\t\t\t\t\t\t[value]="value"\n\t\t\t\t\t\t\t[pattern]="pattern"\n\t\t\t\t\t\t\t[placeholder]="placeholder"\n\t\t\t\t\t\t\t[id]="id"\n\t\t\t\t\t\t\t[disabled]="disabled"\n\t\t\t\t\t\t\t[readonly]="readonly"\n\t\t\t\t\t\t\t(change)="onChange($event)"/>\n\t\t\t\t\t\t<ng-container *ngIf="decorator">\n\t\t\t\t\t\t\t<div class="cds--date-picker-input-inner-wrapper--decorator">\n\t\t\t\t\t\t\t\t<ng-template [ngTemplateOutlet]="decorator"></ng-template>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf="type !== \'simple\' && !warn && !invalid"\n\t\t\t\t\t\t\tcdsIcon="calendar"\n\t\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\t\tclass="cds--date-picker__icon">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf="invalid"\n\t\t\t\t\t\t\tclass="cds--date-picker__icon cds--date-picker__icon--invalid"\n\t\t\t\t\t\t\tcdsIcon="warning--filled"\n\t\t\t\t\t\t\tsize="16">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf="!invalid && warn"\n\t\t\t\t\t\t\tcdsIcon="warning--alt--filled"\n\t\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\t\tclass="cds--date-picker__icon cds--date-picker__icon--warn">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t*ngIf="helperText && !invalid && !warn"\n\t\t\t\t\tclass="cds--form__helper-text"\n\t\t\t\t\t[ngClass]="{\'cds--form__helper-text--disabled\': disabled}">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div *ngIf="invalid" class="cds--form-requirement">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div *ngIf="!invalid && warn" class="cds--form-requirement">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n</div>\n\t',providers:[{provide:fesm2020_forms.JU,useExisting:DatePickerInput,multi:!0}]})],DatePickerInput);var icon=__webpack_require__("./src/icon/index.ts");let DatePickerInputModule=class DatePickerInputModule{};DatePickerInputModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[DatePickerInput],exports:[DatePickerInput],imports:[common.CommonModule,icon.QX]})],DatePickerInputModule);var utils=__webpack_require__("./src/utils/index.ts");let DatePickerModule=class DatePickerModule{};DatePickerModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[DatePicker],exports:[DatePicker,DatePickerInputModule],imports:[common.CommonModule,DatePickerInputModule,utils.As,i18n.LU]})],DatePickerModule);var ai_label=__webpack_require__("./src/ai-label/index.ts"),src_button=__webpack_require__("./src/button/index.ts"),ai_label_story_shared=__webpack_require__("./src/storybook/ai-label-story-shared.ts");const datepicker_stories={title:"Components/Date Picker",decorators:[(0,dist.moduleMetadata)({imports:[DatePickerModule,ai_label.uV,src_button.hJ,icon.QX]})],args:{label:"Label text",placeholder:"mm/dd/yyyy",invalidText:"Invalid date format",invalid:!1,warnText:"This is a warning",warn:!1,disabled:!1,readonly:!1,language:"en",theme:"dark",size:"md"},argTypes:{theme:{options:["light","dark"],control:"radio"},size:{options:["sm","md","lg"],control:"radio"},valueChange:{action:"Date changed!"}},component:DatePicker},Basic=(args=>({props:args,template:'\n <cds-date-picker-input\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n (valueChange)="valueChange($event)">\n </cds-date-picker-input>\n '})).bind({}),withAILabel=(args=>({props:args,styles:ai_label_story_shared.J6,template:'\n <cds-date-picker\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [type]="\'single\'"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [decorator]="decoratorTpl"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n '+ai_label_story_shared.Ag+"\n </cds-ai-label>\n </ng-template>\n "})).bind({}),Single=(args=>({props:args,template:'\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n id="initial-value-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [value]="value"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n '})).bind({});Single.args={dateFormat:"m/d/y",language:"en"},Single.argTypes={language:{options:["en","de","fi","ja","zh","es","fr","it","ko","pt"],control:"select"}};const Range=(args=>({props:args,template:'\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n id="initial-value-range-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeInvalid]="invalid"\n [rangeInvalidText]="invalidText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n [value]="value"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n [language]="language"\n [placeholder]="placeholder"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeWarn]="warn"\n [rangeWarnText]="warnText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n '})).bind({});Range.args={dateFormat:"d/m/Y",value:["02/11/24","08/11/24"],language:"en",flatpickrOptions:{minDate:new Date("11/01/24"),maxDate:new Date("11/30/24")}},Range.argTypes={language:{options:["en","de","fi","ja","zh","es","fr","it","ko","pt"],control:"select"}};const Skeleton=(args=>({props:args,template:'\n <cds-date-picker\n range="true"\n skeleton="true">\n </cds-date-picker>\n '})).bind({});Basic.parameters={...Basic.parameters,docs:{...Basic.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-date-picker-input\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n (valueChange)="valueChange($event)">\n </cds-date-picker-input>\n `\n})',...Basic.parameters?.docs?.source}}},withAILabel.parameters={...withAILabel.parameters,docs:{...withAILabel.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n styles: AI_LABEL_STORY_STYLES,\n template: `\n <cds-date-picker\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [type]="\'single\'"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [decorator]="decoratorTpl"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n ` + AI_LABEL_INNER + `\n </cds-ai-label>\n </ng-template>\n `\n})',...withAILabel.parameters?.docs?.source}}},Single.parameters={...Single.parameters,docs:{...Single.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n id="initial-value-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [value]="value"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n `\n})',...Single.parameters?.docs?.source}}},Range.parameters={...Range.parameters,docs:{...Range.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n id="initial-value-range-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeInvalid]="invalid"\n [rangeInvalidText]="invalidText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n [value]="value"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n [language]="language"\n [placeholder]="placeholder"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeWarn]="warn"\n [rangeWarnText]="warnText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n `\n})',...Range.parameters?.docs?.source}}},Skeleton.parameters={...Skeleton.parameters,docs:{...Skeleton.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-date-picker\n range="true"\n skeleton="true">\n </cds-date-picker>\n `\n})',...Skeleton.parameters?.docs?.source}}};const __namedExportsOrder=["Basic","withAILabel","Single","Range","Skeleton"]}}]);
1
+ "use strict";(self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[]).push([[6663],{"./src/ai-label/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{zb:()=>AILabelActions,UD:()=>AILabelComponent,q:()=>AILabelContent,uV:()=>AILabelModule});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs");let AILabelActions=class AILabelActions{constructor(){this.toggletipActions=!0,this.aiLabelActions=!0}};AILabelActions.propDecorators={toggletipActions:[{type:core.HostBinding,args:["class.cds--toggletip-actions"]}],aiLabelActions:[{type:core.HostBinding,args:["class.cds--ai-label-actions"]}]},AILabelActions=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelActions], [ibmAILabelActions]"})],AILabelActions);let AILabelContent=class AILabelContent{};AILabelContent=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelContent], [ibmAILabelContent]"})],AILabelContent);var popover=__webpack_require__("./src/popover/index.ts");let AILabelPopoverDirective=class AILabelPopoverDirective extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.highContrast=!0,this.dropShadow=!1}initializeReferences(){this.updateAlignmentClass(this._align),this.bindPopoverRefs(),this.handleChange(this.isOpen)}ngOnChanges(changes){const originalState=this.isOpen;this.handleChange(!1),changes.autoAlign&&!changes.autoAlign.firstChange&&(this.popoverContentRef?.setAttribute("style",""),this.bindPopoverRefs()),this.handleChange(originalState)}bindPopoverRefs(){const panel=this.elementRef.nativeElement.querySelector(":scope > span.cds--popover");panel&&(this.popoverContentRef=panel.querySelector(":scope > span.cds--popover-content"),this.caretRef=this.resolveCaretRef(panel))}resolveCaretRef(panel){return this.autoAlign?panel.querySelector("span.cds--popover-content > span.cds--popover-caret.cds--popover--auto-align"):panel.querySelector(":scope > span.cds--popover-caret")}};AILabelPopoverDirective.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],AILabelPopoverDirective=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsAILabelPopover]"})],AILabelPopoverDirective);let AILabelComponent=class AILabelComponent{constructor(elementRef){this.elementRef=elementRef,this.aiLabelClass=!0,this.caret=!0,this.dropShadow=!1,this.highContrast=!0,this.autoAlign=!1,this.isOpen=!1,this.onClose=new core.EventEmitter,this.onOpen=new core.EventEmitter,this.isOpenChange=new core.EventEmitter,this.id="ai-label-"+AILabelComponent.labelCounter++,this.aiText="AI",this.kind="default",this.size="xs",this.revertActive=!1,this.revertLabel="Revert to AI input",this.ariaLabel="Show information",this.revertClick=new core.EventEmitter,this.documentClick=this.handleOutsideClick.bind(this)}get revertClass(){return this.revertActive}get alignmentAxisOffset(){return["mini","2xs","xs"].includes(this.size)?-24:0}onPopoverIsOpenChange(open){this.isOpen=open,this.isOpenChange.emit(open)}get triggerClasses(){return{"cds--toggletip-button":!0,"cds--ai-label__button":!0,[`cds--ai-label__button--${this.size}`]:!0,[`cds--ai-label__button--${this.kind}`]:!0,"cds--ai-label__button--inline-with-content":"inline"===this.kind&&!!this.textLabel}}get computedAriaLabel(){const suffix="inline"===this.kind&&this.textLabel?this.textLabel:this.ariaLabel;return`${this.aiText} ${suffix}`}ngAfterViewInit(){this.isOpen&&document.addEventListener("click",this.documentClick)}ngOnChanges(changes){changes.revertActive&&!changes.revertActive.firstChange&&changes.revertActive.currentValue&&(this.isOpen=!1,document.removeEventListener("click",this.documentClick))}ngOnDestroy(){document.removeEventListener("click",this.documentClick)}onTriggerClick(event){const opening=!this.isOpen;opening?document.addEventListener("click",this.documentClick):document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(opening,event)}onRevertButtonClick(event){this.revertClick.emit(event)}hostkeys(event){this.isOpen&&"Escape"===event.key&&(event.stopPropagation(),document.removeEventListener("click",this.documentClick),this.aiLabelPopover?.handleChange(!1,event))}handleOutsideClick(event){this.elementRef.nativeElement.contains(event.target)||(this.aiLabelPopover?.handleChange(!1,event),document.removeEventListener("click",this.documentClick))}};AILabelComponent.labelCounter=0,AILabelComponent.ctorParameters=()=>[{type:core.ElementRef}],AILabelComponent.propDecorators={aiLabelClass:[{type:core.HostBinding,args:["class.cds--ai-label"]}],revertClass:[{type:core.HostBinding,args:["class.cds--ai-label--revert"]}],align:[{type:core.Input}],caret:[{type:core.Input}],dropShadow:[{type:core.Input}],highContrast:[{type:core.Input}],autoAlign:[{type:core.Input}],isOpen:[{type:core.Input}],onClose:[{type:core.Output}],onOpen:[{type:core.Output}],isOpenChange:[{type:core.Output}],id:[{type:core.Input}],aiText:[{type:core.Input}],textLabel:[{type:core.Input}],kind:[{type:core.Input}],size:[{type:core.Input}],revertActive:[{type:core.Input}],revertLabel:[{type:core.Input}],ariaLabel:[{type:core.Input}],revertClick:[{type:core.Output}],aiLabelPopover:[{type:core.ViewChild,args:["aiLabelPopoverHost",{read:AILabelPopoverDirective}]}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}]},AILabelComponent=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-ai-label, ibm-ai-label",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<ng-container *ngIf="!revertActive">\n\t\t\t<span\n\t\t\t\t#aiLabelPopoverHost\n\t\t\t\tcdsAILabelPopover\n\t\t\t\tclass="cds--toggletip"\n\t\t\t\t[isOpen]="isOpen"\n\t\t\t\t(isOpenChange)="onPopoverIsOpenChange($event)"\n\t\t\t\t(onOpen)="onOpen.emit($event)"\n\t\t\t\t(onClose)="onClose.emit($event)"\n\t\t\t\t[align]="align"\n\t\t\t\t[caret]="caret"\n\t\t\t\t[dropShadow]="dropShadow"\n\t\t\t\t[highContrast]="highContrast"\n\t\t\t\t[autoAlign]="autoAlign"\n\t\t\t\t[alignmentAxisOffset]="alignmentAxisOffset">\n\t\t\t\t<button\n\t\t\t\t\ttype="button"\n\t\t\t\t\t[attr.aria-label]="computedAriaLabel"\n\t\t\t\t\t[attr.aria-expanded]="isOpen"\n\t\t\t\t\t[attr.aria-controls]="id"\n\t\t\t\t\t[ngClass]="triggerClasses"\n\t\t\t\t\t(click)="onTriggerClick($event)">\n\t\t\t\t\t<span class="cds--ai-label__text">{{aiText}}</span>\n\t\t\t\t\t<span *ngIf="kind === \'inline\' && textLabel" class="cds--ai-label__additional-text">{{textLabel}}</span>\n\t\t\t\t</button>\n\n\t\t\t\t<span\n\t\t\t\t\t[id]="id"\n\t\t\t\t\tclass="cds--popover"\n\t\t\t\t\taria-live="polite">\n\t\t\t\t\t<span class="cds--popover-content cds--ai-label-content">\n\t\t\t\t\t\t<div class="cds--toggletip-content">\n\t\t\t\t\t\t\t<ng-content></ng-content>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</ng-container>\n\n\t\t<cds-icon-button\n\t\t\t*ngIf="revertActive"\n\t\t\tkind="ghost"\n\t\t\tsize="sm"\n\t\t\t[description]="revertLabel"\n\t\t\t[autoAlign]="autoAlign"\n\t\t\t[buttonAttributes]="{ \'aria-label\': revertLabel }"\n\t\t\t(click)="onRevertButtonClick($event)">\n\t\t\t<svg cdsIcon="undo" size="16"></svg>\n\t\t</cds-icon-button>\n\t'})],AILabelComponent);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs"),src_button=__webpack_require__("./src/button/index.ts"),icon=__webpack_require__("./src/icon/index.ts");let AILabelModule=class AILabelModule{};AILabelModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[AILabelComponent,AILabelPopoverDirective,AILabelContent,AILabelActions],exports:[AILabelComponent,AILabelContent,AILabelActions],imports:[common.CommonModule,src_button.hJ,icon.QX,popover.UU]})],AILabelModule)},"./src/datepicker/datepicker.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,Range:()=>Range,Single:()=>Single,Skeleton:()=>Skeleton,__namedExportsOrder:()=>__namedExportsOrder,default:()=>datepicker_stories,withAILabel:()=>withAILabel});var dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),rangePlugin=__webpack_require__("./node_modules/flatpickr/dist/plugins/rangePlugin.js"),rangePlugin_default=__webpack_require__.n(rangePlugin),esm=__webpack_require__("./node_modules/flatpickr/dist/esm/index.js"),fesm2020_forms=__webpack_require__("./node_modules/@angular/forms/fesm2020/forms.mjs");const monthToStr=(monthNumber,shorthand,locale)=>locale.months[shorthand?"shorthand":"longhand"][monthNumber],config_selectorFlatpickrMonthYearContainer=".flatpickr-current-month",config_selectorFlatpickrYearContainer=".numInputWrapper",config_classFlatpickrCurrentMonth="cur-month",config_shorthand=!1,carbonFlatpickrMonthSelectPlugin=fp=>{const updateCurrentMonth=()=>{if(!fp.yearElements)return;const monthStr=monthToStr(fp.currentMonth,!0===config_shorthand,fp.l10n);fp.yearElements.forEach((elem=>{const currentMonthContainer=elem.closest(config_selectorFlatpickrMonthYearContainer);Array.prototype.forEach.call(currentMonthContainer.querySelectorAll(".cur-month"),(monthElement=>{monthElement.textContent=monthStr}))}))};return{onMonthChange:updateCurrentMonth,onValueUpdate:updateCurrentMonth,onOpen:updateCurrentMonth,onReady:[()=>{fp.monthElements&&fp.yearElements&&(fp.monthElements.forEach((elem=>{elem.parentNode&&elem.parentNode.removeChild(elem)})),fp.monthElements.splice(0,fp.monthElements.length,...fp.monthElements.map((()=>{const monthElement=fp._createElement("span",config_classFlatpickrCurrentMonth);return monthElement.textContent=monthToStr(fp.currentMonth,!0===config_shorthand,fp.l10n),fp.yearElements[0].closest(config_selectorFlatpickrMonthYearContainer).insertBefore(monthElement,fp.yearElements[0].closest(config_selectorFlatpickrYearContainer)),monthElement}))))},updateCurrentMonth,()=>{fp.loadedPlugins.push("carbonFlatpickrMonthSelectPlugin")}]}};var l10n=__webpack_require__("./node_modules/flatpickr/dist/l10n/index.js"),l10n_default=__webpack_require__.n(l10n),i18n=__webpack_require__("./src/i18n/index.ts");l10n_default()?.default.en?.weekdays&&(l10n_default().default.en.weekdays.shorthand=l10n_default().default.en.weekdays.longhand.map((day=>"Thursday"===day?"Th":day.charAt(0))));let DatePicker=class DatePicker{constructor(elementRef,i18n){this.elementRef=elementRef,this.i18n=i18n,this.range=!1,this.dateFormat="m/d/Y",this.language="en",this.placeholder="mm/dd/yyyy",this.ariaLabel="calendar container",this.inputPattern="^\\d{1,2}/\\d{1,2}/\\d{4}$",this.id="datepicker-"+DatePicker.datePickerCount++,this.theme="dark",this.disabled=!1,this.readonly=!1,this.invalid=!1,this.warn=!1,this.size="md",this.rangeInvalid=!1,this.rangeWarn=!1,this.skeleton=!1,this.plugins=[],this.valueChange=new core.EventEmitter,this.onClose=new core.EventEmitter,this._value=[],this._flatpickrOptions={allowInput:!0},this.flatpickrBaseOptions={mode:"single",dateFormat:"m/d/Y",plugins:this.plugins,onOpen:()=>{this.updateClassNames(),this.updateAttributes(),this.updateCalendarListeners()},onClose:date=>{if(this.range&&this.flatpickrInstance){const inputValue=this.input.input.nativeElement.value,rangeInputValue=this.rangeInput.input.nativeElement.value;if(inputValue||rangeInputValue){const parseDate=date=>this.flatpickrInstance.parseDate(date,this.dateFormat);this.setDateValues([parseDate(inputValue),parseDate(rangeInputValue||inputValue)]),this.doSelect(this.flatpickrInstance.selectedDates)}}this.onClose.emit(date)},onDayCreate:(_dObj,_dStr,_fp,dayElem)=>{dayElem.classList.add("cds--date-picker__day")},nextArrow:this.rightArrowHTML(),prevArrow:this.leftArrowHTML(),value:this.value},this.flatpickrInstance=null,this.onTouched=()=>{},this.propagateChange=_=>{},this.preventCalendarClose=event=>event.stopPropagation()}set value(v){v||(v=[]),this._value=v}get value(){return this._value}set flatpickrOptions(options){this._flatpickrOptions=Object.assign({},this._flatpickrOptions,options)}get flatpickrOptions(){const plugins=[...this.plugins,carbonFlatpickrMonthSelectPlugin];return this.range&&plugins.push(rangePlugin_default()({input:`#${this.id}-rangeInput`,position:"left"})),Object.assign({},this._flatpickrOptions,this.flatpickrBaseOptions,{mode:this.range?"range":"single",plugins,dateFormat:this.dateFormat,locale:l10n_default()?.default[this.language]||l10n_default()[this.language],clickOpens:!this.readonly})}ngOnInit(){"en"!==this.i18n.getLocale()&&this.i18n.getLocaleObservable().subscribe((locale=>{this.language=locale,this.resetFlatpickrInstance()}))}ngOnChanges(changes){const flatpickrChangeKeys=["range","dateFormat","language","id","value","plugins","flatpickrOptions","readonly"];Object.keys(changes).some((key=>flatpickrChangeKeys.includes(key)))&&this.resetFlatpickrInstance(changes.value)}ngAfterViewInit(){this.skeleton||(this.input.input.nativeElement.value=this._value[0]??"",this.range&&(this.rangeInput.input.nativeElement.value=this._value[1]??"")),setTimeout((()=>{this.addInputListeners()}),0)}ngAfterViewChecked(){this.isFlatpickrLoaded()||(this.flatpickrInstance=(0,esm.Z)(`#${this.id}-input`,this.flatpickrOptions),this.isFlatpickrLoaded()&&this.value.length>0&&this.setDateValues(this.value))}onFocus(){if(this.range)if(this.rangeInput.input.nativeElement===document.activeElement&&this.flatpickrInstance.selectedDates[1]){const currentMonth=this.flatpickrInstance.selectedDates[1].getMonth();this.flatpickrInstance.changeMonth(currentMonth,!1)}else if(this.input.input.nativeElement===document.activeElement&&this.flatpickrInstance.selectedDates[0]){const currentMonth=this.flatpickrInstance.selectedDates[0].getMonth();this.flatpickrInstance.changeMonth(currentMonth,!1)}}onFocusOut(){this.onTouched()}writeValue(value){this.value=value,setTimeout((()=>{this.isFlatpickrLoaded()&&this.flatpickrInstance.config&&this.setDateValues(this.value)}))}setDisabledState(isDisabled){this.disabled=isDisabled}registerOnChange(fn){this.propagateChange=fn}registerOnTouched(fn){this.onTouched=fn}ngOnDestroy(){this.isFlatpickrLoaded()&&this.flatpickrInstance.destroy()}onValueChange(event){if(this.isFlatpickrLoaded()){const date=this.flatpickrInstance.parseDate(event,this.dateFormat);this.range?this.setDateValues([date,this.flatpickrInstance.selectedDates[1]]):this.setDateValues([date]),this.doSelect(this.flatpickrInstance.selectedDates)}}onRangeValueChange(event){if(this.isFlatpickrLoaded()&&this.flatpickrInstance.isOpen){const date=this.flatpickrInstance.parseDate(event,this.dateFormat);this.setDateValues([this.flatpickrInstance.selectedDates[0],date]),this.doSelect(this.flatpickrInstance.selectedDates)}}openCalendar(datepickerInput,event){if(!this.readonly&&!this.skeleton)if(this.isDecoratorClick(event))this.isFlatpickrLoaded()&&this.flatpickrInstance.isOpen&&this.flatpickrInstance.close();else if(this.range){if(datepickerInput.input.nativeElement.click(),datepickerInput===this.input&&this.flatpickrInstance.selectedDates[0]){const currentMonth=this.flatpickrInstance.selectedDates[0].getMonth();this.flatpickrInstance.currentYear=this.flatpickrInstance.selectedDates[0].getFullYear(),this.flatpickrInstance.changeMonth(currentMonth,!1)}}else this.flatpickrInstance.open()}updateCalendarListeners(){const calendarContainer=document.querySelectorAll(".flatpickr-calendar");Array.from(calendarContainer).forEach((calendar=>{calendar.removeEventListener("click",this.preventCalendarClose),calendar.addEventListener("click",this.preventCalendarClose)}))}addInputListeners(){if(!this.isFlatpickrLoaded())return;const addFocusCalendarListener=element=>{element.addEventListener("keydown",(event=>{if(!this.readonly&&("Escape"===event.key&&this.flatpickrInstance.close(),"ArrowDown"===event.key)){this.flatpickrInstance.isOpen||this.flatpickrInstance.open();const calendarContainer=this.flatpickrInstance.calendarContainer,dayElement=calendarContainer&&calendarContainer.querySelector(".flatpickr-day[tabindex]"),selectedDateElem=calendarContainer&&calendarContainer.querySelector(".selected"),todayDateElem=calendarContainer&&calendarContainer.querySelector(".today");dayElement&&((todayDateElem||selectedDateElem||dayElement).focus(),document.activeElement!==dayElement&&this.flatpickrInstance.selectedDateElem&&this.flatpickrInstance.selectedDateElem.focus())}}))};this.input&&this.input.input&&addFocusCalendarListener(this.input.input.nativeElement),this.rangeInput&&this.rangeInput.input&&addFocusCalendarListener(this.rangeInput.input.nativeElement)}resetFlatpickrInstance(newDates){if(this.isFlatpickrLoaded()){let dates=this.flatpickrInstance.selectedDates;newDates&&this.didDateValueChange(newDates.currentValue,newDates.previousValue)&&(dates=newDates.currentValue),this.flatpickrInstance=(0,esm.Z)(`#${this.id}-input`,this.flatpickrOptions),this.setDateValues(dates)}}updateClassNames(){if(!this.elementRef)return;const calendarContainer=document.querySelectorAll(".flatpickr-calendar"),monthContainer=document.querySelectorAll(".flatpickr-month"),weekdaysContainer=document.querySelectorAll(".flatpickr-weekdays"),weekdayContainer=document.querySelectorAll(".flatpickr-weekday"),daysContainer=document.querySelectorAll(".flatpickr-days"),dayContainer=document.querySelectorAll(".flatpickr-day"),addClassIfNotExists=(classname,elementList)=>{Array.from(elementList).forEach((element=>{element.classList.contains(classname)||element.classList.add(classname)}))};addClassIfNotExists("cds--date-picker__calendar",calendarContainer),addClassIfNotExists("cds--date-picker__month",monthContainer),addClassIfNotExists("cds--date-picker__weekdays",weekdaysContainer),addClassIfNotExists("cds--date-picker__days",daysContainer),Array.from(weekdayContainer).forEach((element=>{element.innerHTML=element.innerHTML.replace(/\s+/g,""),element.classList.add("cds--date-picker__weekday")})),Array.from(dayContainer).forEach((element=>{element.setAttribute("role","button"),element.classList.add("cds--date-picker__day"),this.value&&(element.classList.contains("today")&&this.value.length>0?element.classList.add("no-border"):element.classList.contains("today")&&0===this.value.length&&element.classList.remove("no-border"))}))}updateAttributes(){const calendarContainer=document.querySelectorAll(".flatpickr-calendar");Array.from(calendarContainer).forEach((calendar=>{calendar.setAttribute("role","application"),calendar.setAttribute("aria-label",this.ariaLabel)}))}setDateValues(dates){if(this.isFlatpickrLoaded()){const singleInput=this.elementRef.nativeElement.querySelector(`#${this.id}-input`),rangeInput=this.elementRef.nativeElement.querySelector(`#${this.id}-rangeInput`);let shouldRefocusDateElement=this.flatpickrInstance.selectedDateElem===document.activeElement;this.flatpickrInstance.setDate(dates),shouldRefocusDateElement&&this.flatpickrInstance.selectedDateElem.focus();let singleDate="";if("string"==typeof this.flatpickrInstance.selectedDates[0]?(singleDate=this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[0],this.dateFormat),singleDate=this.flatpickrInstance.formatDate(singleDate,this.dateFormat)):this.flatpickrInstance.selectedDates[0]&&(singleDate=this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[0],this.dateFormat)),rangeInput){let rangeDate="";"string"==typeof this.flatpickrInstance.selectedDates[1]?(rangeDate=this.flatpickrInstance.parseDate(this.flatpickrInstance.selectedDates[1].toString(),this.dateFormat),rangeDate=this.flatpickrInstance.formatDate(rangeDate,this.dateFormat)):this.flatpickrInstance.selectedDates[1]&&(rangeDate=this.flatpickrInstance.formatDate(this.flatpickrInstance.selectedDates[1],this.dateFormat)),setTimeout((()=>{rangeInput.value=rangeDate,singleInput.value=singleDate}))}}}doSelect(selectedValue){if(this.range&&this.flatpickrInstance.selectedDates[0]){const currentMonth=this.flatpickrInstance.selectedDates[0].getMonth();let shouldRefocusDateElement=this.flatpickrInstance.selectedDateElem===document.activeElement;this.flatpickrInstance.changeMonth(currentMonth,!1),shouldRefocusDateElement&&this.flatpickrInstance.selectedDateElem.focus()}this.valueChange.emit(selectedValue),this.propagateChange(selectedValue)}didDateValueChange(currentValue,previousValue){return currentValue[0]!==previousValue[0]||currentValue[1]!==previousValue[1]}isFlatpickrLoaded(){return!!this.flatpickrInstance&&!!this.flatpickrInstance.setDate}rightArrowHTML(){return'\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>'}leftArrowHTML(){return'\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>'}isDecoratorClick(event){if(!event?.target)return!1;const t=event.target;return null!=(t instanceof Element?t:t.parentElement)?.closest(".cds--date-picker-input-inner-wrapper--decorator")}};DatePicker.datePickerCount=0,DatePicker.ctorParameters=()=>[{type:core.ElementRef},{type:i18n.oc}],DatePicker.propDecorators={range:[{type:core.Input}],dateFormat:[{type:core.Input}],language:[{type:core.Input}],label:[{type:core.Input}],helperText:[{type:core.Input}],decorator:[{type:core.Input}],rangeDecorator:[{type:core.Input}],rangeHelperText:[{type:core.Input}],rangeLabel:[{type:core.Input}],placeholder:[{type:core.Input}],ariaLabel:[{type:core.Input}],inputPattern:[{type:core.Input}],id:[{type:core.Input}],value:[{type:core.Input}],theme:[{type:core.Input}],disabled:[{type:core.Input}],readonly:[{type:core.Input}],invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],size:[{type:core.Input}],rangeInvalid:[{type:core.Input}],rangeInvalidText:[{type:core.Input}],rangeWarn:[{type:core.Input}],rangeWarnText:[{type:core.Input}],skeleton:[{type:core.Input}],plugins:[{type:core.Input}],flatpickrOptions:[{type:core.Input}],input:[{type:core.ViewChild,args:["input",{static:!0}]}],rangeInput:[{type:core.ViewChild,args:["rangeInput"]}],valueChange:[{type:core.Output}],onClose:[{type:core.Output}],onFocus:[{type:core.HostListener,args:["focusin"]}],onFocusOut:[{type:core.HostListener,args:["focusout"]}]},DatePicker=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-date-picker, ibm-date-picker",template:'\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[readonly]="readonly"\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[decorator]="decorator"\n\t\t\t\t\t(valueChange)="onValueChange($event)"\n\t\t\t\t\t(click)="openCalendar(input, $event)">\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[readonly]="readonly"\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[decorator]="rangeDecorator"\n\t\t\t\t\t(valueChange)="onRangeValueChange($event)"\n\t\t\t\t\t(click)="openCalendar(rangeInput, $event)">\n\t\t\t\t</cds-date-picker-input>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t',providers:[{provide:fesm2020_forms.JU,useExisting:DatePicker,multi:!0}],encapsulation:core.ViewEncapsulation.None})],DatePicker);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");let DatePickerInput=class DatePickerInput{constructor(elementRef){this.elementRef=elementRef,this.type="simple",this.id="datepicker-"+DatePickerInput.datePickerCount++,this.hasIcon=!1,this.placeholder="mm/dd/yyyy",this.pattern="^\\d{1,2}/\\d{1,2}/\\d{4}$",this.valueChange=new core.EventEmitter,this.theme="dark",this.disabled=!1,this.readonly=!1,this.invalid=!1,this.warn=!1,this.skeleton=!1,this.value="",this.size="md",this.onTouched=()=>{},this.propagateChange=_=>{}}onChange(event){this.value=event.target.value,this.valueChange.emit(this.value),this.propagateChange(this.value),this.onTouched()}writeValue(value){this.value=value}registerOnChange(fn){this.propagateChange=fn}registerOnTouched(fn){this.onTouched=fn}isTemplate(value){return value instanceof core.TemplateRef}};DatePickerInput.datePickerCount=0,DatePickerInput.ctorParameters=()=>[{type:core.ElementRef}],DatePickerInput.propDecorators={type:[{type:core.Input}],id:[{type:core.Input}],hasIcon:[{type:core.Input}],label:[{type:core.Input}],placeholder:[{type:core.Input}],pattern:[{type:core.Input}],valueChange:[{type:core.Output}],theme:[{type:core.Input}],disabled:[{type:core.Input}],readonly:[{type:core.Input}],invalid:[{type:core.Input}],invalidText:[{type:core.Input}],warn:[{type:core.Input}],warnText:[{type:core.Input}],helperText:[{type:core.Input}],decorator:[{type:core.Input}],skeleton:[{type:core.Input}],value:[{type:core.Input}],size:[{type:core.Input}],input:[{type:core.ViewChild,args:["input"]}]},DatePickerInput=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-date-picker-input, ibm-date-picker-input",template:'\n\t<div class="cds--form-item">\n\t\t<div class="cds--date-picker"\n\t\t\t[ngClass]="{\n\t\t\t\t\'cds--date-picker--simple\' : type === \'simple\',\n\t\t\t\t\'cds--date-picker--single\' : type === \'single\',\n\t\t\t\t\'cds--date-picker--range\' : type === \'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\x3c!-- Skeleton structure --\x3e\n\t\t\t\t<ng-container *ngIf="skeleton">\n\t\t\t\t\t<span class="cds--label cds--skeleton"></span>\n\t\t\t\t\t<div class="cds--date-picker__input cds--skeleton"></div>\n\t\t\t\t</ng-container>\n\t\t\t\t<label\n\t\t\t\t\t*ngIf="label && !skeleton"\n\t\t\t\t\t[for]="id"\n\t\t\t\t\tclass="cds--label"\n\t\t\t\t\t[ngClass]="{\'cds--label--disabled\': disabled}">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>\n\t\t\t\t</label>\n\t\t\t\t<div class="cds--date-picker-input__wrapper"\n\t\t\t\t\t*ngIf="!skeleton"\n\t\t\t\t\t[ngClass]="{\n\t\t\t\t\t\t\'cds--date-picker-input__wrapper--invalid\': invalid,\n\t\t\t\t\t\t\'cds--date-picker-input__wrapper--warn\': warn,\n\t\t\t\t\t\t\'cds--date-picker-input__wrapper--decorator\': !!decorator\n\t\t\t\t\t}">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t#input\n\t\t\t\t\t\t\tautocomplete="off"\n\t\t\t\t\t\t\ttype="text"\n\t\t\t\t\t\t\tclass="cds--date-picker__input"\n\t\t\t\t\t\t\t[ngClass]="{\n\t\t\t\t\t\t\t\t\'cds--date-picker__input--sm\': size === \'sm\',\n\t\t\t\t\t\t\t\t\'cds--date-picker__input--md\': size === \'md\',\n\t\t\t\t\t\t\t\t\'cds--date-picker__input--lg\': size === \'lg\'\n\t\t\t\t\t\t\t}"\n\t\t\t\t\t\t\t[attr.data-invalid]="invalid ? true : undefined"\n\t\t\t\t\t\t\t[value]="value"\n\t\t\t\t\t\t\t[pattern]="pattern"\n\t\t\t\t\t\t\t[placeholder]="placeholder"\n\t\t\t\t\t\t\t[id]="id"\n\t\t\t\t\t\t\t[disabled]="disabled"\n\t\t\t\t\t\t\t[readonly]="readonly"\n\t\t\t\t\t\t\t(change)="onChange($event)"/>\n\t\t\t\t\t\t<ng-container *ngIf="decorator">\n\t\t\t\t\t\t\t<div class="cds--date-picker-input-inner-wrapper--decorator">\n\t\t\t\t\t\t\t\t<ng-template [ngTemplateOutlet]="decorator"></ng-template>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf="type !== \'simple\' && !warn && !invalid"\n\t\t\t\t\t\t\tcdsIcon="calendar"\n\t\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\t\tclass="cds--date-picker__icon">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf="invalid"\n\t\t\t\t\t\t\tclass="cds--date-picker__icon cds--date-picker__icon--invalid"\n\t\t\t\t\t\t\tcdsIcon="warning--filled"\n\t\t\t\t\t\t\tsize="16">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf="!invalid && warn"\n\t\t\t\t\t\t\tcdsIcon="warning--alt--filled"\n\t\t\t\t\t\t\tsize="16"\n\t\t\t\t\t\t\tclass="cds--date-picker__icon cds--date-picker__icon--warn">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t*ngIf="helperText && !invalid && !warn"\n\t\t\t\t\tclass="cds--form__helper-text"\n\t\t\t\t\t[ngClass]="{\'cds--form__helper-text--disabled\': disabled}">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div *ngIf="invalid" class="cds--form-requirement">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div *ngIf="!invalid && warn" class="cds--form-requirement">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n</div>\n\t',providers:[{provide:fesm2020_forms.JU,useExisting:DatePickerInput,multi:!0}]})],DatePickerInput);var icon=__webpack_require__("./src/icon/index.ts");let DatePickerInputModule=class DatePickerInputModule{};DatePickerInputModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[DatePickerInput],exports:[DatePickerInput],imports:[common.CommonModule,icon.QX]})],DatePickerInputModule);var utils=__webpack_require__("./src/utils/index.ts");let DatePickerModule=class DatePickerModule{};DatePickerModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[DatePicker],exports:[DatePicker,DatePickerInputModule],imports:[common.CommonModule,DatePickerInputModule,utils.As,i18n.LU]})],DatePickerModule);var ai_label=__webpack_require__("./src/ai-label/index.ts"),src_button=__webpack_require__("./src/button/index.ts"),ai_label_story_shared=__webpack_require__("./src/storybook/ai-label-story-shared.ts");const datepicker_stories={title:"Components/Date Picker",decorators:[(0,dist.moduleMetadata)({imports:[DatePickerModule,ai_label.uV,src_button.hJ,icon.QX]})],args:{label:"Label text",placeholder:"mm/dd/yyyy",invalidText:"Invalid date format",invalid:!1,warnText:"This is a warning",warn:!1,disabled:!1,readonly:!1,language:"en",theme:"dark",size:"md"},argTypes:{theme:{options:["light","dark"],control:"radio"},size:{options:["sm","md","lg"],control:"radio"},valueChange:{action:"Date changed!"}},component:DatePicker},Basic=(args=>({props:args,template:'\n <cds-date-picker-input\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n (valueChange)="valueChange($event)">\n </cds-date-picker-input>\n '})).bind({}),withAILabel=(args=>({props:args,styles:ai_label_story_shared.J6,template:'\n <cds-date-picker\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [type]="\'single\'"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [decorator]="decoratorTpl"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n '+ai_label_story_shared.Ag+"\n </cds-ai-label>\n </ng-template>\n "})).bind({}),Single=(args=>({props:args,template:'\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n id="initial-value-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [value]="value"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n '})).bind({});Single.args={dateFormat:"m/d/y",language:"en"},Single.argTypes={language:{options:["en","de","fi","ja","zh","es","fr","it","ko","pt"],control:"select"}};const Range=(args=>({props:args,template:'\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n id="initial-value-range-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeInvalid]="invalid"\n [rangeInvalidText]="invalidText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n [value]="value"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n [language]="language"\n [placeholder]="placeholder"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeWarn]="warn"\n [rangeWarnText]="warnText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n '})).bind({});Range.args={dateFormat:"d/m/Y",value:["02/11/24","08/11/24"],language:"en",flatpickrOptions:{minDate:new Date("11/01/24"),maxDate:new Date("11/30/24")}},Range.argTypes={language:{options:["en","de","fi","ja","zh","es","fr","it","ko","pt"],control:"select"}};const Skeleton=(args=>({props:args,template:'\n <cds-date-picker\n range="true"\n skeleton="true">\n </cds-date-picker>\n '})).bind({});Basic.parameters={...Basic.parameters,docs:{...Basic.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-date-picker-input\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n (valueChange)="valueChange($event)">\n </cds-date-picker-input>\n `\n})',...Basic.parameters?.docs?.source}}},withAILabel.parameters={...withAILabel.parameters,docs:{...withAILabel.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n styles: AI_LABEL_STORY_STYLES,\n template: `\n <cds-date-picker\n [theme]="theme"\n [label]="label"\n [placeholder]="placeholder"\n [disabled]="disabled"\n [readonly]="readonly"\n [size]="size"\n [type]="\'single\'"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [decorator]="decoratorTpl"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <ng-template #decoratorTpl>\n <cds-ai-label\n class="ai-label-container"\n kind="default"\n size="mini"\n [autoAlign]="true"\n aiText="AI"\n ariaLabel="Show information">\n ` + AI_LABEL_INNER + `\n </cds-ai-label>\n </ng-template>\n `\n})',...withAILabel.parameters?.docs?.source}}},Single.parameters={...Single.parameters,docs:{...Single.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n id="initial-value-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [value]="value"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [placeholder]="placeholder"\n [language]="language"\n [size]="size"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [dateFormat]="dateFormat"\n (valueChange)="valueChange($event)">\n </cds-date-picker>\n `\n})',...Single.parameters?.docs?.source}}},Range.parameters={...Range.parameters,docs:{...Range.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <p>With initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n id="initial-value-range-datepicker"\n [placeholder]="placeholder"\n [language]="language"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeInvalid]="invalid"\n [rangeInvalidText]="invalidText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n [value]="value"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n <p style="margin-top: 20px;">Without initial value</p>\n <cds-date-picker\n [label]="label"\n [rangeLabel]="label"\n [size]="size"\n range="true"\n [language]="language"\n [placeholder]="placeholder"\n [theme]="theme"\n [disabled]="disabled"\n [readonly]="readonly"\n [invalid]="invalid"\n [invalidText]="invalidText"\n [warn]="warn"\n [warnText]="warnText"\n [rangeWarn]="warn"\n [rangeWarnText]="warnText"\n [dateFormat]="dateFormat"\n [flatpickrOptions]="flatpickrOptions"\n (valueChange)="valueChange($event)"\n [helperText]="helperText">\n </cds-date-picker>\n `\n})',...Range.parameters?.docs?.source}}},Skeleton.parameters={...Skeleton.parameters,docs:{...Skeleton.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-date-picker\n range="true"\n skeleton="true">\n </cds-date-picker>\n `\n})',...Skeleton.parameters?.docs?.source}}};const __namedExportsOrder=["Basic","withAILabel","Single","Range","Skeleton"]}}]);
@@ -318,7 +318,16 @@
318
318
  } catch (e) {
319
319
  // eslint-disable-next-line no-console
320
320
  console.warn('unable to connect to top frame for connecting dev tools');
321
- }</script><link href="main.css" rel="stylesheet"><style>#storybook-root[hidden],
321
+ }</script><script type="text/javascript">if (window.self === window.top) {
322
+ window._ibmAnalytics = {"settings":{"name":"CarbonAngularStorybook","isSpa":true,"tealiumProfileName":"ibm-web-app"},"onLoad":[["ibmStats.pageview",[]]]};
323
+ window.digitalData = {"page":{"pageInfo":{"ibm":{"siteId":"IBM_CarbonAngularStorybook"}},"category":{"primaryCategory":"PC100"}}};
324
+
325
+ var ibmCommonScript = document.createElement("script");
326
+ ibmCommonScript.type = "text/javascript";
327
+ ibmCommonScript.async = true;
328
+ ibmCommonScript.src = "https://1.www.s81c.com/common/stats/ibm-common.js";
329
+ document.head.appendChild(ibmCommonScript);
330
+ }</script><link href="main.css" rel="stylesheet"><style>#storybook-root[hidden],
322
331
  #storybook-docs[hidden] {
323
332
  display: none !important;
324
333
  }</style></head><body><div class="sb-preparing-story sb-wrapper"><div class="sb-loader"></div></div><div class="sb-preparing-docs sb-wrapper"><div class="sb-previewBlock"><div class="sb-previewBlock_header"><div class="sb-previewBlock_icon"></div><div class="sb-previewBlock_icon"></div><div class="sb-previewBlock_icon"></div><div class="sb-previewBlock_icon"></div></div><div class="sb-previewBlock_body"><div class="sb-loader"></div></div></div><table aria-hidden="true" class="sb-argstableBlock"><thead class="sb-argstableBlock-head"><tr><th><span>Name</span></th><th><span>Description</span></th><th><span>Default</span></th><th><span>Control</span></th></tr></thead><tbody class="sb-argstableBlock-body"><tr><td><span>propertyName</span><span title="Required">*</span></td><td><div><span>This is a short description</span></div><div class="sb-argstableBlock-summary"><div><span class="sb-argstableBlock-code">summary</span></div></div></td><td><div><span class="sb-argstableBlock-code">defaultValue</span></div></td><td><button>Set string</button></td></tr><tr><td><span>propertyName</span><span>*</span></td><td><div><span>This is a short description</span></div><div class="sb-argstableBlock-summary"><div><span class="sb-argstableBlock-code">summary</span></div></div></td><td><div><span class="sb-argstableBlock-code">defaultValue</span></div></td><td><button>Set string</button></td></tr><tr><td><span>propertyName</span><span>*</span></td><td><div><span>This is a short description</span></div><div class="sb-argstableBlock-summary"><div><span class="sb-argstableBlock-code">summary</span></div></div></td><td><div><span class="sb-argstableBlock-code">defaultValue</span></div></td><td><button>Set string</button></td></tr></tbody></table></div><div class="sb-nopreview sb-wrapper"><div class="sb-nopreview_main"><h1 class="sb-nopreview_heading sb-heading">No Preview</h1><p>Sorry, but you either have no stories or none are selected somehow.</p><ul><li>Please check the Storybook config.</li><li>Try reloading the page.</li></ul><p>If the problem persists, check the browser console, or the terminal you've run Storybook from.</p></div></div><div class="sb-errordisplay sb-wrapper"><pre id="error-message" class="sb-heading"></pre><pre class="sb-errordisplay_code"><code id="error-stack"></code></pre></div><div id="storybook-root"></div><div id="storybook-docs"></div><script>window['CONFIG_TYPE'] = "PRODUCTION";
@@ -348,8 +357,8 @@
348
357
  window['DOCS_OPTIONS'] = {"defaultName":"Docs","autodocs":true};</script><script type="module">import './sb-preview/runtime.js';
349
358
 
350
359
 
351
- import './runtime~main.b11c471e.iframe.bundle.js';
360
+ import './runtime~main.a709e446.iframe.bundle.js';
352
361
 
353
362
  import './5478.9ea1aa7a.iframe.bundle.js';
354
363
 
355
- import './main.a1247bb8.iframe.bundle.js';</script></body></html>
364
+ import './main.ca0a416e.iframe.bundle.js';</script></body></html>