carbon-components-angular 5.46.0 → 5.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/breadcrumb/breadcrumb.component.d.ts +6 -1
  2. package/breadcrumb/breadcrumb.module.d.ts +5 -3
  3. package/dialog/dialog.module.d.ts +3 -1
  4. package/dialog/overflow-menu/overflow-menu.component.d.ts +4 -2
  5. package/docs/documentation/components/Breadcrumb.html +113 -29
  6. package/docs/documentation/components/OverflowMenu.html +453 -48
  7. package/docs/documentation/coverage.html +7 -7
  8. package/docs/documentation/graph/dependencies.svg +2559 -2535
  9. package/docs/documentation/js/menu-wc.js +12 -12
  10. package/docs/documentation/js/menu-wc_es5.js +1 -1
  11. package/docs/documentation/js/search/search_index.js +2 -2
  12. package/docs/documentation/modules/BreadcrumbModule/dependencies.svg +76 -52
  13. package/docs/documentation/modules/BreadcrumbModule.html +87 -53
  14. package/docs/documentation/modules/CodeSnippetModule/dependencies.svg +4 -4
  15. package/docs/documentation/modules/CodeSnippetModule.html +4 -4
  16. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  17. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  18. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +4 -4
  19. package/docs/documentation/modules/DatePickerInputModule.html +4 -4
  20. package/docs/documentation/modules/DatePickerModule/dependencies.svg +38 -38
  21. package/docs/documentation/modules/DatePickerModule.html +38 -38
  22. package/docs/documentation/modules/DialogModule/dependencies.svg +150 -126
  23. package/docs/documentation/modules/DialogModule.html +161 -127
  24. package/docs/documentation/modules/FileUploaderModule/dependencies.svg +34 -34
  25. package/docs/documentation/modules/FileUploaderModule.html +34 -34
  26. package/docs/documentation/modules/InlineLoadingModule/dependencies.svg +4 -4
  27. package/docs/documentation/modules/InlineLoadingModule.html +4 -4
  28. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  29. package/docs/documentation/modules/LoadingModule.html +4 -4
  30. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  31. package/docs/documentation/modules/NFormsModule.html +4 -4
  32. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  33. package/docs/documentation/modules/NumberModule.html +4 -4
  34. package/docs/documentation/modules/PanelModule/dependencies.svg +36 -36
  35. package/docs/documentation/modules/PanelModule.html +36 -36
  36. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  37. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  38. package/docs/documentation/modules/RadioModule/dependencies.svg +37 -37
  39. package/docs/documentation/modules/RadioModule.html +37 -37
  40. package/docs/documentation/modules/SearchModule/dependencies.svg +4 -4
  41. package/docs/documentation/modules/SearchModule.html +4 -4
  42. package/docs/documentation/modules/TableModule/dependencies.svg +4 -4
  43. package/docs/documentation/modules/TableModule.html +4 -4
  44. package/docs/documentation/modules/TabsModule/dependencies.svg +4 -4
  45. package/docs/documentation/modules/TabsModule.html +4 -4
  46. package/docs/documentation/modules/TagModule/dependencies.svg +29 -29
  47. package/docs/documentation/modules/TagModule.html +29 -29
  48. package/docs/documentation/modules/ThemeModule/dependencies.svg +4 -4
  49. package/docs/documentation/modules/ThemeModule.html +4 -4
  50. package/docs/documentation/modules/TilesModule/dependencies.svg +100 -100
  51. package/docs/documentation/modules/TilesModule.html +100 -100
  52. package/docs/documentation/modules/TimePickerModule/dependencies.svg +44 -40
  53. package/docs/documentation/modules/TimePickerModule.html +44 -40
  54. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +30 -30
  55. package/docs/documentation/modules/TimePickerSelectModule.html +30 -30
  56. package/docs/documentation/modules/ToggleModule/dependencies.svg +4 -4
  57. package/docs/documentation/modules/ToggleModule.html +4 -4
  58. package/docs/documentation/modules/ToggletipModule/dependencies.svg +39 -39
  59. package/docs/documentation/modules/ToggletipModule.html +39 -39
  60. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  61. package/docs/documentation/modules/TooltipModule.html +28 -28
  62. package/docs/documentation/modules/TreeviewModule/dependencies.svg +7 -7
  63. package/docs/documentation/modules/TreeviewModule.html +7 -7
  64. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  65. package/docs/documentation/modules/UIShellModule.html +4 -4
  66. package/docs/documentation/overview.html +2559 -2535
  67. package/docs/documentation.json +202 -47
  68. package/docs/storybook/1345.e54b0c87.iframe.bundle.js +1 -0
  69. package/docs/storybook/7141.259796ae.iframe.bundle.js +1 -0
  70. package/docs/storybook/{7773.6c3cf943.iframe.bundle.js → 7773.cac12c93.iframe.bundle.js} +1 -1
  71. package/docs/storybook/901.22b316ed.iframe.bundle.js +1 -0
  72. package/docs/storybook/9115.84219de9.iframe.bundle.js +1 -0
  73. package/docs/storybook/breadcrumb-breadcrumb-stories.17ad5997.iframe.bundle.js +1 -0
  74. package/docs/storybook/contained-list-contained-list-stories.3c337840.iframe.bundle.js +1 -0
  75. package/docs/storybook/dialog-overflow-menu-overflow-menu-stories.a7b8273a.iframe.bundle.js +1 -0
  76. package/docs/storybook/iframe.html +2 -2
  77. package/docs/storybook/input-input-stories.fa251a40.iframe.bundle.js +1 -0
  78. package/docs/storybook/input-password-stories.def6cbdf.iframe.bundle.js +1 -0
  79. package/docs/storybook/input-textarea-stories.425449a3.iframe.bundle.js +1 -0
  80. package/docs/storybook/main.2e884cfb.iframe.bundle.js +1 -0
  81. package/docs/storybook/modal-modal-stories.5772b01f.iframe.bundle.js +1 -0
  82. package/docs/storybook/pagination-pagination-nav-stories.ace8938b.iframe.bundle.js +1 -0
  83. package/docs/storybook/pagination-pagination-stories.796bfce4.iframe.bundle.js +1 -0
  84. package/docs/storybook/patterns-forms-multi-step-form-stories.2693c87c.iframe.bundle.js +1 -0
  85. package/docs/storybook/patterns-loading-large-loading-stories.a879e04d.iframe.bundle.js +1 -0
  86. package/docs/storybook/project.json +1 -1
  87. package/docs/storybook/{runtime~main.5b8b90c1.iframe.bundle.js → runtime~main.00a784a8.iframe.bundle.js} +1 -1
  88. package/esm2020/breadcrumb/breadcrumb.component.mjs +30 -6
  89. package/esm2020/breadcrumb/breadcrumb.module.mjs +12 -4
  90. package/esm2020/dialog/dialog.module.mjs +12 -4
  91. package/esm2020/dialog/overflow-menu/overflow-menu.component.mjs +72 -37
  92. package/esm2020/i18n/en.mjs +5 -3
  93. package/fesm2015/carbon-components-angular-breadcrumb.mjs +39 -7
  94. package/fesm2015/carbon-components-angular-breadcrumb.mjs.map +1 -1
  95. package/fesm2015/carbon-components-angular-dialog.mjs +80 -38
  96. package/fesm2015/carbon-components-angular-dialog.mjs.map +1 -1
  97. package/fesm2015/carbon-components-angular-i18n.mjs +4 -2
  98. package/fesm2015/carbon-components-angular-i18n.mjs.map +1 -1
  99. package/fesm2020/carbon-components-angular-breadcrumb.mjs +39 -7
  100. package/fesm2020/carbon-components-angular-breadcrumb.mjs.map +1 -1
  101. package/fesm2020/carbon-components-angular-dialog.mjs +80 -38
  102. package/fesm2020/carbon-components-angular-dialog.mjs.map +1 -1
  103. package/fesm2020/carbon-components-angular-i18n.mjs +4 -2
  104. package/fesm2020/carbon-components-angular-i18n.mjs.map +1 -1
  105. package/i18n/en.d.ts +2 -0
  106. package/i18n/i18n.service.d.ts +10 -4
  107. package/package.json +1 -1
  108. package/docs/storybook/1345.ec2701f8.iframe.bundle.js +0 -1
  109. package/docs/storybook/901.eac9ade7.iframe.bundle.js +0 -1
  110. package/docs/storybook/9115.1d90f93b.iframe.bundle.js +0 -1
  111. package/docs/storybook/breadcrumb-breadcrumb-stories.8a783f18.iframe.bundle.js +0 -1
  112. package/docs/storybook/contained-list-contained-list-stories.d80e2b46.iframe.bundle.js +0 -1
  113. package/docs/storybook/dialog-overflow-menu-overflow-menu-stories.e0a259e0.iframe.bundle.js +0 -1
  114. package/docs/storybook/input-input-stories.8154d597.iframe.bundle.js +0 -1
  115. package/docs/storybook/input-password-stories.33a92ba2.iframe.bundle.js +0 -1
  116. package/docs/storybook/input-textarea-stories.f6532f41.iframe.bundle.js +0 -1
  117. package/docs/storybook/main.3a7cdf77.iframe.bundle.js +0 -1
  118. package/docs/storybook/modal-modal-stories.eca6c3e9.iframe.bundle.js +0 -1
  119. package/docs/storybook/pagination-pagination-nav-stories.ad4e83e9.iframe.bundle.js +0 -1
  120. package/docs/storybook/pagination-pagination-stories.05ab4dd7.iframe.bundle.js +0 -1
  121. package/docs/storybook/patterns-forms-multi-step-form-stories.22da53c6.iframe.bundle.js +0 -1
  122. package/docs/storybook/patterns-loading-large-loading-stories.699b1e1b.iframe.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-dialog.mjs","sources":["../../src/dialog/dialog-config.interface.ts","../../src/dialog/dialog.service.ts","../../src/dialog/dialog.component.ts","../../src/dialog/dialog.directive.ts","../../src/dialog/overflow-menu/overflow-menu-pane.component.ts","../../src/dialog/overflow-menu/overflow-menu-custom-pane.component.ts","../../src/dialog/overflow-menu/overflow-menu.directive.ts","../../src/dialog/overflow-menu/overflow-menu.component.ts","../../src/dialog/overflow-menu/overflow-menu-option.component.ts","../../src/dialog/dialog.module.ts","../../src/dialog/carbon-components-angular-dialog.ts"],"sourcesContent":["import { ElementRef, TemplateRef } from \"@angular/core\";\n\n/**\n * An enum of the various reasons a dialog may close. For use with `CloseMeta` and `shouldClose`\n *\n * It's expected that `interaction` will be a common closure reason.\n */\nexport enum CloseReasons {\n\t/**\n\t * For when the component is closed by being destroyed\n\t */\n\tdestroyed,\n\t/**\n\t * For use in cases where the dialog closes for programmatic reasons other than destruction\n\t */\n\tprogrammatic,\n\t/**\n\t * interaction reasons will also provide a target for the interaction\n\t */\n\tinteraction,\n\t/**\n\t * For use in cases where the dialog closes due to being hidden\n\t */\n\thidden\n}\n\n/**\n * Interface representing various metadata that can be passed to `shouldClose` and the `close` event\n */\nexport interface CloseMeta {\n\treason: CloseReasons;\n\ttarget?: EventTarget;\n}\n\n/**\n * Data structure for definig properties of a `Dialog` component.\n **/\nexport interface DialogConfig {\n\t/**\n\t * Title for the `Dialog` header.\n\t */\n\ttitle?: string;\n\t/**\n\t * Body content for the `Dialog`.\n\t */\n\tcontent: string | TemplateRef<any>;\n\t/**\n\t * Parameter for triggering `Dialog` display.\n\t */\n\ttrigger?: \"click\" | \"hover\" | \"mouseenter\";\n\t/**\n\t * Parameter for triggering the `Dialog` close event.\n\t */\n\tcloseTrigger?: \"mouseout\" | \"mouseleave\";\n\t/**\n\t * Callback to control the closing behaviour. return `true` to close, and `false` to prevent closing\n\t */\n\tshouldClose?: (meta?: CloseMeta) => boolean;\n\t/**\n\t * If true the dialog will close when hidden (by scrolling or otherwise going out of the viewport)\n\t * If false the dialog will stay open until explicitly closed\n\t * When true this closure method can be picked up via `CloseReasons.hidden`\n\t */\n\tcloseWhenHidden?: boolean;\n\t/**\n\t * Parameter defining the placement in which the `Dialog` appears.\n\t */\n\tplacement?: string;\n\t/**\n\t * Used to set the offset of the `Dialog` relative to the content it\n\t * is associated to.\n\t */\n\tgap?: number;\n\t/**\n\t * Reference to the Parent element that links the `Dialog`.\n\t */\n\tparentRef?: ElementRef;\n\t/**\n\t * Set to `true` to open the dialog next to the triggering component\n\t */\n\tappendInline?: boolean;\n\t/**\n\t * Config object passed to the rendered component. (Optional)\n\t */\n\tdata?: Object;\n\t/**\n\t * Additional arbitrary properties (mostly for internal/extended component use)\n\t */\n\t[propName: string]: any;\n\t/**\n\t * Classes to add to the dialog container\n\t */\n\twrapperClass?: string;\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\toffset?: { x: number, y: number };\n\t/**\n\t * This prevents the dialog from being toggled\n\t */\n\tdisabled?: boolean;\n}\n","import {\n\tInjector,\n\tComponentRef,\n\tInjectable,\n\tViewContainerRef\n} from \"@angular/core\";\nimport { CloseReasons, DialogConfig } from \"./dialog-config.interface\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { Dialog } from \"./dialog.component\";\nimport { tabbableSelector } from \"carbon-components-angular/common\";\n\n/**\n * `Dialog` object to be injected into other components.\n */\n@Injectable()\nexport class DialogService {\n\t/**\n\t * Used in `singletonClickListen`, don't count on its existence and values.\n\t */\n\tprotected static listeningForBodyClicks = false;\n\n\t/**\n\t * A set of all known dialog components\n\t */\n\tprotected static dialogRefs = new Set<ComponentRef<Dialog>>();\n\n\t/**\n\t * Closes all known `Dialog`s. Does not focus any previous elements, since we can't know which would be correct\n\t */\n\tpublic static closeAll() {\n\t\tDialogService.dialogRefs.forEach(ref => ref.instance.doClose({\n\t\t\treason: CloseReasons.programmatic\n\t\t}));\n\t\tDialogService.dialogRefs.clear();\n\t}\n\n\t/**\n\t * Creates an instance of `DialogService`.\n\t */\n\tconstructor(protected injector: Injector, protected placeholderService: PlaceholderService) {}\n\n\t/**\n\t * If `dialogRef` is defined, the Dialog is already open. If\n\t * `dialogRef` is undefined, we create the `Dialog` component and reference to it.\n\t * A subscription is created to track if the `Dialog` should close.\n\t *\n\t * @param viewContainer a `ViewContainerRef` to instantiate the component against.\n\t * May be `null` if an `cds-placeholder` exists and `dialogConfig.appendInline` is false\n\t * @param dialogConfig the `DialogConfig` for the component\n\t */\n\topen(viewContainer: ViewContainerRef, dialogConfig: DialogConfig, component: any) {\n\t\tif (!component) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet dialogRef;\n\t\tif (dialogConfig.appendInline) {\n\t\t\t// add our component to the view\n\t\t\tdialogRef = viewContainer.createComponent(component, { index: 0, injector: this.injector });\n\t\t} else if (!this.placeholderService.hasPlaceholderRef()) {\n\t\t\tdialogRef = viewContainer.createComponent(component, { index: 0, injector: this.injector });\n\t\t\tif (dialogRef) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\twindow.document.querySelector(\"body\").appendChild(dialogRef.location.nativeElement);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tdialogRef = this.placeholderService.createComponent(component, this.injector);\n\t\t}\n\n\t\t// keep track of all initialized dialogs\n\t\tDialogService.dialogRefs.add(dialogRef);\n\n\t\t// initialize some extra options\n\t\tdialogConfig[\"previouslyFocusedElement\"] = document.activeElement;\n\t\tdialogRef.instance.dialogConfig = dialogConfig;\n\n\t\tdialogRef.instance.elementRef.nativeElement.focus();\n\n\t\treturn dialogRef as ComponentRef<Dialog>;\n\t}\n\n\t/**\n\t * On close of `Dialog` item, sets focus back to previous item, unsets\n\t * the current `dialogRef` item. Unsubscribes to the event of `Dialog` close.\n\t *\n\t * @param dialogRef the dialogRef to close\n\t */\n\tclose(dialogRef: ComponentRef<Dialog>) {\n\t\t// to handle the case where we have a null `this.dialogRef`\n\t\tif (!dialogRef) { return; }\n\n\t\tconst elementToFocus = dialogRef.instance.dialogConfig[\"previouslyFocusedElement\"];\n\n\t\tdialogRef.destroy();\n\n\t\t// update the globally tracked dialogRefs\n\t\tif (DialogService.dialogRefs.has(dialogRef)) {\n\t\t\tDialogService.dialogRefs.delete(dialogRef);\n\t\t}\n\n\t\t// Keeps the focus on the dialog trigger if there are no focusable elements. Change focus to previously focused element\n\t\t// if there are focusable elements in the dialog.\n\t\tif (!dialogRef.location.nativeElement.querySelectorAll(tabbableSelector)) {\n\t\t\telementToFocus.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Fix for safari hijacking clicks.\n\t *\n\t * Runs on `ngOnInit` of every dialog. Ensures we don't have multiple listeners\n\t * because having many of them could degrade performance in certain cases (and is\n\t * not necessary for our use case)\n\t *\n\t * This is an internally used function, can change at any point (even get removed)\n\t * and changes to it won't be considered a breaking change. Use at your own risk.\n\t */\n\tsingletonClickListen() {\n\t\tif (!DialogService.listeningForBodyClicks) {\n\t\t\tdocument.body.firstElementChild.addEventListener(\"click\", () => null, true);\n\t\t\tDialogService.listeningForBodyClicks = true;\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tViewChild,\n\tOnInit,\n\tAfterViewInit,\n\tOnDestroy,\n\tHostListener,\n\tOptional\n} from \"@angular/core\";\nimport {\n\tObservable,\n\tSubscription\n} from \"rxjs\";\n// the AbsolutePosition is required to import the declaration correctly\nimport Position, { position, AbsolutePosition, Positions } from \"@carbon/utils-position\";\nimport { cycleTabs, getFocusElementList } from \"carbon-components-angular/common\";\nimport { CloseMeta, CloseReasons, DialogConfig } from \"./dialog-config.interface\";\nimport { AnimationFrameService, ElementService } from \"carbon-components-angular/utils\";\n\n/**\n * Implements a `Dialog` that can be positioned anywhere on the page.\n * Used to implement a popover or tooltip.\n */\n@Component({\n\tselector: \"cds-dialog, ibm-dialog\",\n\ttemplate: \"\"\n})\nexport class Dialog implements OnInit, AfterViewInit, OnDestroy {\n\t/**\n\t * Emits event that handles the closing of a `Dialog` object.\n\t */\n\t@Output() close: EventEmitter<CloseMeta> = new EventEmitter();\n\t/**\n\t * Receives `DialogConfig` interface object with properties of `Dialog`\n\t * explicitly defined.\n\t */\n\t@Input() dialogConfig: DialogConfig;\n\t/**\n\t * Maintains a reference to the view DOM element of the `Dialog`.\n\t */\n\t@ViewChild(\"dialog\") dialog: ElementRef;\n\n\t/**\n\t * Stores the data received from `dialogConfig`.\n\t */\n\tpublic data = {};\n\n\t/**\n\t * The placement of the `Dialog` is received from the `Position` service.\n\t */\n\tpublic placement: string;\n\n\tprotected visibilitySubscription = new Subscription();\n\n\tprotected animationFrameSubscription = new Subscription();\n\n\t/**\n\t * Handles offsetting the `Dialog` item based on the defined position\n\t * to not obscure the content beneath.\n\t */\n\tprotected addGap = {\n\t\t\"left\": pos => position.addOffset(pos, 0, -this.dialogConfig.gap),\n\t\t\"right\": pos => position.addOffset(pos, 0, this.dialogConfig.gap),\n\t\t\"top\": pos => position.addOffset(pos, -this.dialogConfig.gap),\n\t\t\"bottom\": pos => position.addOffset(pos, this.dialogConfig.gap),\n\t\t\"left-bottom\": pos => position.addOffset(pos, 0, -this.dialogConfig.gap),\n\t\t\"right-bottom\": pos => position.addOffset(pos, 0, this.dialogConfig.gap)\n\t};\n\n\t/**\n\t * Extra placements. Child classes can add to this for use in `placeDialog`.\n\t */\n\tprotected placements: Positions = {};\n\n\t/**\n\t * Creates an instance of `Dialog`.\n\t * @param elementRef\n\t * @param elementService\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected elementService: ElementService,\n\t\t@Optional() protected animationFrameService: AnimationFrameService = null\n\t) {}\n\n\t/**\n\t * Initialize the `Dialog`, set the placement and gap, and add a `Subscription` to resize events.\n\t */\n\tngOnInit() {\n\t\tthis.placement = this.dialogConfig.placement.split(\",\")[0];\n\t\tthis.data = this.dialogConfig.data;\n\n\t\t// run any additional initialization code that consuming classes may have\n\t\tthis.onDialogInit();\n\t}\n\n\t/**\n\t * After the DOM is ready, focus is set and dialog is placed\n\t * in respect to the parent element.\n\t */\n\tngAfterViewInit() {\n\t\tconst dialogElement = this.dialog.nativeElement;\n\t\t// split the wrapper class list and apply separately to avoid IE\n\t\t// 1. throwing an error due to assigning a readonly property (classList)\n\t\t// 2. throwing a SyntaxError due to passing an empty string to `add`\n\t\tif (this.dialogConfig.wrapperClass) {\n\t\t\tfor (const extraClass of this.dialogConfig.wrapperClass.split(\" \")) {\n\t\t\t\tdialogElement.classList.add(extraClass);\n\t\t\t}\n\t\t}\n\n\t\t// only focus the dialog if there are focusable elements within the dialog\n\t\tif (getFocusElementList(this.dialog.nativeElement).length > 0) {\n\t\t\tdialogElement.focus();\n\t\t}\n\n\t\tconst parentElement = this.dialogConfig.parentRef.nativeElement;\n\n\t\tif (this.animationFrameService) {\n\t\t\tthis.animationFrameSubscription = this.animationFrameService.tick.subscribe(() => {\n\t\t\t\tthis.placeDialog();\n\t\t\t});\n\t\t}\n\n\t\tif (this.dialogConfig.closeWhenHidden) {\n\t\t\tthis.visibilitySubscription = this.elementService\n\t\t\t\t.visibility(parentElement, parentElement)\n\t\t\t\t.subscribe(value => {\n\t\t\t\t\tthis.placeDialog();\n\t\t\t\t\tif (!value.visible) {\n\t\t\t\t\t\tthis.doClose({\n\t\t\t\t\t\t\treason: CloseReasons.hidden\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tthis.placeDialog();\n\t\t// run afterDialogViewInit on the next tick\n\t\tsetTimeout(() => this.afterDialogViewInit());\n\t}\n\n\t/**\n\t * Empty method to be overridden by consuming classes to run any additional initialization code.\n\t */\n\tonDialogInit() {}\n\n\t/**\n\t * Empty method to be overridden by consuming classes to run any additional initialization code after the view is available.\n\t * NOTE: this does _not_ guarantee the dialog will be positioned, simply that it will exist in the DOM\n\t */\n\tafterDialogViewInit() {}\n\n\t/**\n\t * Uses the position service to position the `Dialog` in screen space\n\t */\n\tplaceDialog(): void {\n\t\tconst positionService = new Position(this.placements);\n\t\t// helper to find the position based on the current/given environment\n\t\tconst findPosition = (reference, target, placement) => {\n\t\t\tlet pos;\n\t\t\tif (this.dialogConfig.appendInline) {\n\t\t\t\tpos = this.addGap[placement](positionService.findRelative(reference, target, placement));\n\t\t\t} else {\n\t\t\t\tpos = this.addGap[placement](positionService.findAbsolute(reference, target, placement));\n\t\t\t}\n\n\t\t\tif (this.dialogConfig.offset) {\n\t\t\t\t// Apply vertical and horizontal offsets given through the dialogConfig\n\t\t\t\tpos.top = pos.top + this.dialogConfig.offset.y;\n\t\t\t\tpos.left = pos.left + this.dialogConfig.offset.x;\n\t\t\t}\n\n\t\t\treturn pos;\n\t\t};\n\n\t\tlet parentEl = this.dialogConfig.parentRef.nativeElement;\n\t\tlet el = this.dialog.nativeElement;\n\t\tlet dialogPlacement = this.placement;\n\n\t\t// split always returns an array, so we can just use the auto position logic\n\t\t// for single positions too\n\t\tconst placements = this.dialogConfig.placement.split(\",\");\n\n\t\t// find the best placement\n\t\tdialogPlacement = positionService.findBestPlacement(parentEl, el, placements);\n\n\t\t// calculate the final position\n\t\tconst pos = findPosition(parentEl, el, dialogPlacement);\n\n\t\t// update the element\n\t\tpositionService.setElement(el, pos);\n\t\tsetTimeout(() => { this.placement = dialogPlacement; });\n\t}\n\n\t/**\n\t * Sets up a KeyboardEvent to close `Dialog` with Escape key.\n\t * @param event\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\tescapeClose(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase \"Escape\": {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tthis.doClose({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"Tab\": {\n\t\t\t\tcycleTabs(event, this.elementRef.nativeElement);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets up a event Listener to close `Dialog` if click event occurs outside\n\t * `Dialog` object.\n\t * @param event\n\t */\n\t@HostListener(\"document:click\", [\"$event\"])\n\tclickClose(event) {\n\t\tif (!this.elementRef.nativeElement.contains(event.target)\n\t\t\t&& !this.dialogConfig.parentRef.nativeElement.contains(event.target) ) {\n\t\t\tthis.doClose({\n\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\ttarget: event.target\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Closes `Dialog` object by emitting the close event upwards to parents.\n\t */\n\tpublic doClose(meta: CloseMeta = { reason: CloseReasons.interaction }) {\n\t\tthis.close.emit(meta);\n\t}\n\n\t/**\n\t * At destruction of component, `Dialog` unsubscribes from all the subscriptions.\n\t */\n\tngOnDestroy() {\n\t\tthis.visibilitySubscription.unsubscribe();\n\t\tif (this.animationFrameSubscription) {\n\t\t\tthis.animationFrameSubscription.unsubscribe();\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tOnInit,\n\tOnDestroy,\n\tElementRef,\n\tTemplateRef,\n\tViewContainerRef,\n\tOnChanges,\n\tHostBinding,\n\tSimpleChanges,\n\tComponentRef\n} from \"@angular/core\";\nimport { DialogService } from \"./dialog.service\";\nimport { CloseMeta, CloseReasons, DialogConfig } from \"./dialog-config.interface\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { Dialog } from \"./dialog.component\";\n\n/**\n * A generic directive that can be inherited from to create dialogs (for example, a tooltip or popover)\n *\n * This class contains the relevant initialization code, specific templates, options, and additional inputs\n * should be specified in the derived class.\n *\n * NOTE: All child classes should add `DialogService` as a provider, otherwise they will lose context that\n * the service relies on.\n */\n@Directive({\n\tselector: \"[cdsDialog], [ibmDialog]\",\n\texportAs: \"dialog\",\n\tproviders: [\n\t\tDialogService\n\t]\n})\nexport class DialogDirective implements OnInit, OnDestroy, OnChanges {\n\tstatic dialogCounter = 0;\n\t/**\n\t * Title for the dialog\n\t */\n\t@Input() title = \"\";\n\t/**\n\t * @deprecated as of v5, use `cdsDialog` instead\n\t * Dialog body content.\n\t */\n\t@Input() set ibmDialog(body: string | TemplateRef<any>) {\n\t\tthis.cdsDialog = body;\n\t}\n\n\t@Input() cdsDialog: string | TemplateRef<any>;\n\t/**\n\t * Defines how the Dialog is triggered.(Hover and click behave the same on mobile - both respond to a single tap).\n\t * Do not add focusable elements if trigger is `hover` or `mouseenter`.\n\t */\n\t@Input() trigger: \"click\" | \"hover\" | \"mouseenter\" = \"click\";\n\t/**\n\t * Defines how the Dialog close event is triggered.\n\t *\n\t * [See here](https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseleave_event)\n\t * for more on the difference between `mouseleave` and `mouseout`.\n\t *\n\t * Defaults to `click` when `trigger` is set to `click`.\n\t */\n\t@Input() closeTrigger: \"mouseout\" | \"mouseleave\" = \"mouseleave\";\n\t/**\n\t * Placement of the dialog, usually relative to the element the directive is on.\n\t */\n\t@Input() placement = \"left\";\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\t@Input() offset: { x: number, y: number };\n\t/**\n\t * Classes to add to the dialog container\n\t */\n\t@Input() wrapperClass: string;\n\t/**\n\t * Spacing between the dialog and it's triggering element\n\t */\n\t@Input() gap = 0;\n\t/**\n\t * Set to `true` to open the dialog next to the triggering component\n\t */\n\t@Input() appendInline = false;\n\t/**\n\t * Optional data for templates\n\t */\n\t@Input() data = {};\n\n\t@Input() @HostBinding(\"attr.aria-expanded\") isOpen = false;\n\t/**\n\t * This prevents the dialog from being toggled\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * This input allows explicit control over how the dialog should close\n\t */\n\t@Input() shouldClose: (meta: CloseMeta) => boolean;\n\t/**\n\t * Config object passed to the rendered component\n\t */\n\tdialogConfig: DialogConfig;\n\t/**\n\t * Emits an event when the dialog is closed\n\t */\n\t@Output() onClose: EventEmitter<any> = new EventEmitter();\n\t/**\n\t * Emits an event when the dialog is opened\n\t */\n\t@Output() onOpen: EventEmitter<any> = new EventEmitter();\n\t/**\n\t * Emits an event when the state of `isOpen` changes. Allows `isOpen` to be double bound\n\t */\n\t@Output() isOpenChange = new EventEmitter<boolean>();\n\n\t@HostBinding(\"attr.role\") role = \"button\";\n\t@HostBinding(\"attr.aria-haspopup\") hasPopup = true;\n\t@HostBinding(\"attr.aria-owns\") get ariaOwns(): string {\n\t\treturn this.isOpen ? this.dialogConfig.compID : null;\n\t}\n\n\t/**\n\t * Keeps a reference to the currently opened dialog\n\t */\n\tprotected dialogRef: ComponentRef<Dialog>;\n\n\t/**\n\t * Creates an instance of DialogDirective.\n\t * @param elementRef\n\t * @param viewContainerRef\n\t * @param dialogService\n\t * @param eventService\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected viewContainerRef: ViewContainerRef,\n\t\tprotected dialogService: DialogService,\n\t\tprotected eventService: EventService\n\t) {}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\t// set the config object (this can [and should!] be added to in child classes depending on what they need)\n\t\tthis.dialogConfig = {\n\t\t\ttitle: this.title,\n\t\t\tcontent: this.cdsDialog,\n\t\t\tplacement: this.placement,\n\t\t\tparentRef: this.elementRef,\n\t\t\tgap: this.gap,\n\t\t\ttrigger: this.trigger,\n\t\t\tcloseTrigger: this.closeTrigger,\n\t\t\tshouldClose: this.shouldClose || (() => true),\n\t\t\tappendInline: this.appendInline,\n\t\t\twrapperClass: this.wrapperClass,\n\t\t\tdata: this.data,\n\t\t\toffset: this.offset,\n\t\t\tdisabled: this.disabled\n\t\t};\n\n\t\tif (changes.isOpen) {\n\t\t\tif (changes.isOpen.currentValue) {\n\t\t\t\tthis.open();\n\t\t\t} else if (!changes.isOpen.firstChange) {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.programmatic\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Run any code a child class may need.\n\t\tthis.onDialogChanges(changes);\n\t\tthis.updateConfig();\n\t}\n\n\t/**\n\t * Sets the config object and binds events for hovering or clicking before\n\t * running code from child class.\n\t */\n\tngOnInit() {\n\t\t// fix for safari hijacking clicks\n\t\tthis.dialogService.singletonClickListen();\n\n\t\tconst element = this.elementRef.nativeElement;\n\n\t\tthis.eventService.on(element, \"keydown\", (event: KeyboardEvent) => {\n\t\t\tif (event.target === this.dialogConfig.parentRef.nativeElement &&\n\t\t\t\t(event.key === \"Tab\" || event.key === \"Tab\" && event.shiftKey) ||\n\t\t\t\tevent.key === \"Escape\") {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// bind events for hovering or clicking the host\n\t\tif (this.trigger === \"hover\" || this.trigger === \"mouseenter\") {\n\t\t\tthis.eventService.on(element, \"mouseenter\", this.open.bind(this));\n\t\t\tthis.eventService.on(element, this.closeTrigger, (event) => {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.eventService.on(element, \"focus\", this.open.bind(this));\n\t\t\tthis.eventService.on(element, \"blur\", (event) => {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tthis.eventService.on(element, \"click\", (event) => {\n\t\t\t\tthis.toggle({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.eventService.on(element, \"keydown\", (event: KeyboardEvent) => {\n\t\t\t\tif (event.key === \"Enter\" || event.key === \" \") {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.open();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tDialogDirective.dialogCounter++;\n\t\tthis.dialogConfig.compID = \"dialog-\" + DialogDirective.dialogCounter;\n\n\t\t// run any code a child class may need\n\t\tthis.onDialogInit();\n\t\tthis.updateConfig();\n\t}\n\n\t/**\n\t * When the host dies, kill the popover.\n\t * - Useful for use in a modal or similar.\n\t */\n\tngOnDestroy() {\n\t\tthis.close({\n\t\t\treason: CloseReasons.destroyed\n\t\t});\n\t}\n\n\t/**\n\t * Helper method to call dialogService 'open'.\n\t * - Enforce accessibility by updating an aria attr for nativeElement.\n\t */\n\topen(component?) {\n\t\t// don't allow dialogs to be opened if they're already open\n\t\tif (this.dialogRef || this.disabled) { return; }\n\n\t\t// actually open the dialog, emit events, and set the open state\n\t\tthis.dialogRef = this.dialogService.open(this.viewContainerRef, this.dialogConfig, component);\n\t\tthis.isOpen = true;\n\t\tthis.onOpen.emit();\n\t\tthis.isOpenChange.emit(true);\n\n\t\t// Handles emitting all the close events to clean everything up\n\t\t// Also enforce accessibility on close by updating an aria attr on the nativeElement.\n\t\tthis.dialogRef.instance.close.subscribe((meta: CloseMeta) => {\n\t\t\tif (!this.dialogRef) { return; }\n\t\t\tif (this.dialogConfig.shouldClose && this.dialogConfig.shouldClose(meta)) {\n\t\t\t\t// close the dialog, emit events, and clear out the open states\n\t\t\t\tthis.dialogService.close(this.dialogRef);\n\t\t\t\tthis.dialogRef = null;\n\t\t\t\tthis.isOpen = false;\n\t\t\t\tthis.onClose.emit();\n\t\t\t\tthis.isOpenChange.emit(false);\n\t\t\t}\n\t\t});\n\n\t\treturn this.dialogRef;\n\t}\n\n\t/**\n\t * Helper method to toggle the open state of the dialog\n\t */\n\ttoggle(meta: CloseMeta = { reason: CloseReasons.interaction }) {\n\t\tif (!this.isOpen) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\tthis.close(meta);\n\t\t}\n\t}\n\n\t/**\n\t * Helper method to close the dialogRef.\n\t */\n\tclose(meta: CloseMeta = { reason: CloseReasons.interaction }) {\n\t\tif (this.dialogRef) {\n\t\t\tthis.dialogRef.instance.doClose(meta);\n\t\t}\n\t}\n\n\t/**\n\t * Empty method for child classes to override and specify additional init steps.\n\t * Run after DialogDirective completes it's ngOnInit.\n\t */\n\tprotected onDialogInit() {}\n\n\t/**\n\t * Empty method for child to override and specify additional on changes steps.\n\t * run after DialogDirective completes it's ngOnChanges.\n\t */\n\tprotected onDialogChanges(_changes: SimpleChanges) {}\n\n\tprotected updateConfig() {}\n}\n","import {\n\tComponent,\n\tHostListener,\n\tElementRef,\n\tAfterViewInit,\n\tOptional\n} from \"@angular/core\";\nimport { Dialog } from \"../dialog.component\";\nimport { position } from \"@carbon/utils-position\";\nimport { isFocusInLastItem, isFocusInFirstItem } from \"carbon-components-angular/common\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { ExperimentalService } from \"carbon-components-angular/experimental\";\nimport { AnimationFrameService, ElementService } from \"carbon-components-angular/utils\";\nimport { CloseReasons } from \"../dialog-config.interface\";\nimport { closestAttr } from \"carbon-components-angular/utils\";\n\n/**\n * Extend the `Dialog` component to create an overflow menu.\n *\n * Not used directly. See overflow-menu.component and overflow-menu.directive for more\n */\n@Component({\n\tselector: \"cds-overflow-menu-pane, ibm-overflow-menu-pane\",\n\ttemplate: `\n\t\t<ul\n\t\t\t[attr.id]=\"dialogConfig.compID\"\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\"\n\t\t\t[attr.data-floating-menu-direction]=\"placement ? placement : null\"\n\t\t\t[ngClass]=\"{'cds--overflow-menu--flip': dialogConfig.flip}\"\n\t\t\trole=\"menu\"\n\t\t\t#dialog\n\t\t\tclass=\"cds--overflow-menu-options cds--overflow-menu-options--open\"\n\t\t\t(click)=\"onClose($event)\"\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\">\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"dialogConfig.content\"\n\t\t\t\t[ngTemplateOutletContext]=\"{overflowMenu: this}\">\n\t\t\t</ng-template>\n\t\t</ul>\n\t`\n})\nexport class OverflowMenuPane extends Dialog implements AfterViewInit {\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected i18n: I18n,\n\t\tprotected experimental: ExperimentalService,\n\t\t@Optional() protected animationFrameService: AnimationFrameService = null,\n\t\t// mark `elementService` as optional since making it mandatory would be a breaking change\n\t\t@Optional() protected elementService: ElementService = null) {\n\t\tsuper(elementRef, elementService, animationFrameService);\n\t}\n\n\tonDialogInit() {\n\t\tconst positionOverflowMenu = pos => {\n\t\t\tlet offset;\n\t\t\t/*\n\t\t\t* 20 is half the width of the overflow menu trigger element.\n\t\t\t* we also move the element by half of it's own width, since\n\t\t\t* position service will try and center everything\n\t\t\t*/\n\t\t\tconst closestRel = closestAttr(\"position\", [\"relative\", \"fixed\", \"absolute\"], this.elementRef.nativeElement);\n\t\t\tconst topFix = closestRel ? closestRel.getBoundingClientRect().top * -1 : 0;\n\t\t\tconst leftFix = closestRel ? closestRel.getBoundingClientRect().left * -1 : 0;\n\n\t\t\toffset = Math.round(this.dialog.nativeElement.offsetWidth / 2) - 20;\n\t\t\tif (this.dialogConfig.flip) {\n\t\t\t\treturn position.addOffset(pos, topFix, (-offset + leftFix));\n\t\t\t}\n\t\t\treturn position.addOffset(pos, topFix, (offset + leftFix));\n\t\t};\n\n\t\tthis.addGap[\"bottom\"] = positionOverflowMenu;\n\n\t\tthis.addGap[\"top\"] = positionOverflowMenu;\n\n\t\tif (!this.dialogConfig.menuLabel) {\n\t\t\tthis.dialogConfig.menuLabel = this.i18n.get().OVERFLOW_MENU.OVERFLOW;\n\t\t}\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tconst listItems = this.listItems();\n\n\t\tswitch (event.key) {\n\t\t\tcase \"ArrowDown\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (!isFocusInLastItem(event, listItems)) {\n\t\t\t\t\tconst index = listItems.findIndex(item => item === event.target);\n\t\t\t\t\tlistItems[index + 1].focus();\n\t\t\t\t} else {\n\t\t\t\t\tlistItems[0].focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (!isFocusInFirstItem(event, listItems)) {\n\t\t\t\t\tconst index = listItems.findIndex(item => item === event.target);\n\t\t\t\t\tlistItems[index - 1].focus();\n\t\t\t\t} else {\n\t\t\t\t\tlistItems[listItems.length - 1].focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"Home\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tlistItems[0].focus();\n\t\t\t\tbreak;\n\n\t\t\tcase \"End\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tlistItems[listItems.length - 1].focus();\n\t\t\t\tbreak;\n\n\t\t\tcase \"Escape\":\n\t\t\tcase \"Tab\":\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tthis.doClose({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tdefault: break;\n\t\t}\n\t}\n\n\tonClose(event) {\n\t\tthis.doClose({\n\t\t\treason: CloseReasons.interaction,\n\t\t\ttarget: event.target\n\t\t});\n\t}\n\n\tafterDialogViewInit() {\n\t\tconst focusElementList = this.listItems();\n\t\tfocusElementList.forEach(button => {\n\t\t\t// Allows user to set tabindex to 0.\n\t\t\tif (button.getAttribute(\"tabindex\") === null) {\n\t\t\t\tbutton.tabIndex = -1;\n\t\t\t}\n\t\t});\n\t\tif (focusElementList[0]) {\n\t\t\tfocusElementList[0].tabIndex = 0;\n\t\t\tfocusElementList[0].focus();\n\t\t}\n\t}\n\n\tprotected listItems() {\n\t\tconst selector = \".cds--overflow-menu-options__option:not([disabled]) .cds--overflow-menu-options__btn\";\n\t\treturn Array.from<HTMLElement>(this.elementRef.nativeElement.querySelectorAll(selector));\n\t}\n}\n","import { AfterViewInit, Component, ElementRef, Optional } from \"@angular/core\";\nimport { position } from \"@carbon/utils-position\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { AnimationFrameService, ElementService } from \"carbon-components-angular/utils\";\nimport { closestAttr } from \"carbon-components-angular/utils\";\nimport { CloseReasons } from \"../dialog-config.interface\";\nimport { Dialog } from \"../dialog.component\";\n\n/**\n * @deprecated as of v5\n * Use Toggletip or Popover components instead\n */\n@Component({\n\tselector: \"cds-overflow-custom-menu-pane, ibm-overflow-custom-menu-pane\",\n\ttemplate: `\n\t\t<div\n\t\t\t[attr.id]=\"dialogConfig.compID\"\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\"\n\t\t\t[attr.data-floating-menu-direction]=\"placement ? placement : null\"\n\t\t\t[ngClass]=\"{'cds--overflow-menu--flip': dialogConfig.flip}\"\n\t\t\tclass=\"cds--overflow-menu-options cds--overflow-menu-options--open\"\n\t\t\trole=\"menu\"\n\t\t\t(click)=\"onClick($event)\"\n\t\t\t#dialog\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\">\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"dialogConfig.content\"\n\t\t\t\t[ngTemplateOutletContext]=\"{overflowMenu: this}\">\n\t\t\t</ng-template>\n\t\t</div>\n\t`\n})\nexport class OverflowMenuCustomPane extends Dialog implements AfterViewInit {\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected i18n: I18n,\n\t\t@Optional() protected animationFrameService: AnimationFrameService = null,\n\t\t// mark `elementService` as optional since making it mandatory would be a breaking change\n\t\t@Optional() protected elementService: ElementService = null\n\t) {\n\t\tsuper(elementRef, elementService, animationFrameService);\n\t}\n\n\tonClick(event) {\n\t\tthis.doClose({\n\t\t\treason: CloseReasons.interaction,\n\t\t\ttarget: event.target\n\t\t});\n\t}\n\n\tonDialogInit() {\n\t\tconst positionOverflowMenu = pos => {\n\t\t\tlet offset;\n\t\t\t/*\n\t\t\t* 20 is half the width of the overflow menu trigger element.\n\t\t\t* we also move the element by half of it's own width, since\n\t\t\t* position service will try and center everything\n\t\t\t*/\n\t\t\tconst closestRel = closestAttr(\"position\", [\"relative\", \"fixed\", \"absolute\"], this.elementRef.nativeElement);\n\t\t\tconst topFix = closestRel ? closestRel.getBoundingClientRect().top * -1 : 0;\n\t\t\tconst leftFix = closestRel ? closestRel.getBoundingClientRect().left * -1 : 0;\n\n\t\t\toffset = Math.round(this.dialog.nativeElement.offsetWidth / 2) - 20;\n\t\t\tif (this.dialogConfig.flip) {\n\t\t\t\treturn position.addOffset(pos, topFix, (-offset + leftFix));\n\t\t\t}\n\t\t\treturn position.addOffset(pos, topFix, (offset + leftFix));\n\t\t};\n\n\t\tthis.addGap[\"bottom\"] = positionOverflowMenu;\n\n\t\tthis.addGap[\"top\"] = positionOverflowMenu;\n\n\t\tif (!this.dialogConfig.menuLabel) {\n\t\t\tthis.dialogConfig.menuLabel = this.i18n.get().OVERFLOW_MENU.OVERFLOW;\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tViewContainerRef,\n\tInput,\n\tTemplateRef,\n\tHostListener\n} from \"@angular/core\";\nimport { DialogDirective } from \"../dialog.directive\";\nimport { DialogService } from \"../dialog.service\";\nimport { OverflowMenuPane } from \"./overflow-menu-pane.component\";\nimport { OverflowMenuCustomPane } from \"./overflow-menu-custom-pane.component\";\nimport { EventService } from \"carbon-components-angular/utils\";\n\n\n/**\n * Directive for extending `Dialog` to create overflow menus.\n *\n * class: OverflowMenuDirective (extends DialogDirective)\n *\n *\n * selector: `cdsOverflowMenu`\n *\n *\n * ```html\n * <div [cdsOverflowMenu]=\"templateRef\"></div>\n * <ng-template #templateRef>\n * \t<!-- overflow menu options here -->\n * </ng-template>\n * ```\n *\n * ```html\n * <div [cdsOverflowMenu]=\"templateRef\" [customPane]=\"true\"></div>\n * <ng-template #templateRef>\n * <!-- custom content goes here -->\n * </ng-template>\n * ```\n */\n@Directive({\n\tselector: \"[cdsOverflowMenu], [ibmOverflowMenu]\",\n\texportAs: \"overflowMenu\",\n\tproviders: [\n\t\tDialogService\n\t]\n})\nexport class OverflowMenuDirective extends DialogDirective {\n\t/**\n\t * @deprecated as of v5\n\t * Takes a template ref of `OverflowMenuOptions`s\n\t */\n\t@Input() set ibmOverflowMenu(template: TemplateRef<any>) {\n\t\tthis.cdsOverflowMenu = template;\n\t}\n\n\t@Input() cdsOverflowMenu: TemplateRef<any>;\n\t/**\n\t * Controls wether the overflow menu is flipped\n\t */\n\t@Input() flip = false;\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\t@Input() offset: { x: number, y: number };\n\t/**\n\t * Classes to add to the dialog container\n\t */\n\t@Input() wrapperClass = \"\";\n\t/**\n\t * Set to true to for custom content\n\t */\n\t@Input() customPane = false;\n\n\t/**\n\t * Creates an instance of `OverflowMenuDirective`.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected viewContainerRef: ViewContainerRef,\n\t\tprotected dialogService: DialogService,\n\t\tprotected eventService: EventService\n\t) {\n\t\tsuper(elementRef, viewContainerRef, dialogService, eventService);\n\t}\n\n\tupdateConfig() {\n\t\tthis.dialogConfig.content = this.cdsOverflowMenu;\n\t\tthis.dialogConfig.flip = this.flip;\n\t\tthis.dialogConfig.offset = this.offset;\n\t\tthis.dialogConfig.wrapperClass = this.wrapperClass;\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase \"Enter\":\n\t\t\tcase \" \":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\topen() {\n\t\treturn super.open(this.customPane ? OverflowMenuCustomPane : OverflowMenuPane);\n\t}\n}\n","import {\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\tTemplateRef,\n\tViewEncapsulation\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { OverflowMenuDirective } from \"./overflow-menu.directive\";\n\n/**\n * The OverFlow menu component encapsulates the OverFlowMenu directive, and the menu iconography into one convienent component.\n *\n * Get started with importing the module:\n *\n * ```typescript\n * import { DialogModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-overflow-menu>\n *\t<cds-overflow-menu-option>Option 1</cds-overflow-menu-option>\n *\t<cds-overflow-menu-option>Option 2</cds-overflow-menu-option>\n * </cds-overflow-menu>\n * ```\n *\n * [See demo](../../?path=/story/components-overflow-menu--basic)\n */\n@Component({\n\tselector: \"cds-overflow-menu, ibm-overflow-menu\",\n\ttemplate: `\n\t\t<button\n\t\t\t[cdsOverflowMenu]=\"options\"\n\t\t\t[ngClass]=\"{'cds--overflow-menu--open': open}\"\n\t\t\tclass=\"cds--overflow-menu {{triggerClass}}\"\n\t\t\t[attr.aria-label]=\"buttonLabel\"\n\t\t\t[flip]=\"flip\"\n\t\t\t[isOpen]=\"open\"\n\t\t\t(isOpenChange)=\"handleOpenChange($event)\"\n\t\t\t[offset]=\"offset\"\n\t\t\t[wrapperClass]=\"wrapperClass\"\n\t\t\taria-haspopup=\"true\"\n\t\t\tclass=\"cds--overflow-menu\"\n\t\t\ttype=\"button\"\n\t\t\t[placement]=\"placement\">\n\t\t\t<ng-template *ngIf=\"customTrigger; else defaultIcon\" [ngTemplateOutlet]=\"customTrigger\"></ng-template>\n\t\t</button>\n\t\t<ng-template #options>\n\t\t\t<ng-content></ng-content>\n\t\t</ng-template>\n\t\t<ng-template #defaultIcon>\n\t\t\t<svg cdsIcon=\"overflow-menu--vertical\" size=\"16\" class=\"cds--overflow-menu__icon\"></svg>\n\t\t</ng-template>\n\t`,\n\tstyles: [`\n\t\t.cds--overflow-menu--open {\n\t\t\topacity: 1\n\t\t}\n\n\t\t/*\n\t\tRotate the overflow menu container as well as the icon, since\n\t\twe calculate our menu position based on the container, not the icon.\n\t\t*/\n\t\t.cds--data-table-v2 .cds--overflow-menu {\n\t\t\ttransform: rotate(90deg);\n\t\t}\n\n\t\t.cds--data-table-v2 .cds--overflow-menu__icon {\n\t\t\ttransform: rotate(180deg);\n\t\t}\n\t`],\n\tencapsulation: ViewEncapsulation.None\n})\nexport class OverflowMenu {\n\t@Input() buttonLabel = this.i18n.get().OVERFLOW_MENU.OVERFLOW;\n\n\t@Input() flip = false;\n\n\t@Input() placement: \"bottom\" | \"top\" = \"bottom\";\n\n\t@Input() open = false;\n\n\t@Output() openChange = new EventEmitter<boolean>();\n\t/**\n\t * Sets the custom overflow menu trigger\n\t */\n\t@Input() customTrigger: TemplateRef<any>;\n\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\t@Input() offset: { x: number, y: number };\n\n\t@Input() wrapperClass = \"\";\n\n\t/**\n\t * This appends additional classes to the overflow trigger/button.\n\t */\n\t@Input() triggerClass = \"\";\n\n\t@ContentChild(OverflowMenuDirective) overflowMenuDirective: OverflowMenuDirective;\n\n\tconstructor(protected elementRef: ElementRef, protected i18n: I18n) {}\n\n\thandleOpenChange(event: boolean) {\n\t\tthis.open = event;\n\t\tthis.openChange.emit(event);\n\t}\n}\n","import {\n\tHostBinding,\n\tComponent,\n\tInput,\n\tElementRef,\n\tOutput,\n\tEventEmitter,\n\tAfterViewInit\n} from \"@angular/core\";\n\n/**\n * Available HTML anchor targets\n */\nexport enum Target {\n\tself = \"_self\",\n\tblank = \"_blank\",\n\tparent = \"_parent\",\n\ttop = \"_top\"\n}\n\n/**\n * Security HTML anchor rel when target is set\n */\nconst REL = \"noreferrer noopener\";\n\n/**\n * `OverflowMenuOption` represents a single option in an overflow menu\n *\n * Presently it has three possible states - normal, disabled, and danger:\n * ```\n * <cds-overflow-menu-option>Simple option</cds-overflow-menu-option>\n * <cds-overflow-menu-option disabled=\"true\">Disabled</cds-overflow-menu-option>\n * <cds-overflow-menu-option type=\"danger\">Danger option</cds-overflow-menu-option>\n * ```\n *\n * For content that expands beyond the overflow menu `OverflowMenuOption` automatically adds a title attribute.\n */\n@Component({\n\tselector: \"cds-overflow-menu-option, ibm-overflow-menu-option\",\n\ttemplate: `\n\t\t<button\n\t\t\t*ngIf=\"!href\"\n\t\t\tclass=\"cds--overflow-menu-options__btn {{innerClass}}\"\n\t\t\trole=\"menuitem\"\n\t\t\t[tabindex]=\"tabIndex\"\n\t\t\t(focus)=\"onFocus()\"\n\t\t\t(blur)=\"onBlur()\"\n\t\t\t(click)=\"onClick()\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[attr.title]=\"title\">\n\t\t\t<ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\n\t\t</button>\n\n\t\t<a\n\t\t\t*ngIf=\"href\"\n\t\t\tclass=\"cds--overflow-menu-options__btn {{innerClass}}\"\n\t\t\trole=\"menuitem\"\n\t\t\t[tabindex]=\"tabIndex\"\n\t\t\t(focus)=\"onFocus()\"\n\t\t\t(blur)=\"onBlur()\"\n\t\t\t(click)=\"onClick()\"\n\t\t\t[attr.disabled]=\"disabled\"\n\t\t\t[href]=\"href\"\n\t\t\t[attr.target]=\"target\"\n\t\t\t[attr.rel]=\"rel\"\n\t\t\t[attr.title]=\"title\">\n\t\t\t<ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\n\t\t</a>\n\n\t\t<ng-template #tempOutlet>\n\t\t\t<div class=\"cds--overflow-menu-options__option-content\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</div>\n\t\t</ng-template>\n\t`\n})\nexport class OverflowMenuOption implements AfterViewInit {\n\t@HostBinding(\"class.cds--overflow-menu-options__option\") optionClass = true;\n\t@HostBinding(\"attr.role\") role = \"presentation\";\n\n\t@HostBinding(\"class.cds--overflow-menu-options__option--danger\")\n\tpublic get isDanger(): Boolean {\n\t\treturn this.type === \"danger\";\n\t}\n\n\t@HostBinding(\"class.cds--overflow-menu-options__option--disabled\")\n\tpublic get isDisabled(): Boolean {\n\t\treturn this.disabled;\n\t}\n\t/**\n\t * Set to `true` to display a dividing line above this option\n\t */\n\t@HostBinding(\"class.cds--overflow-menu--divider\") @Input() divider = false;\n\t/**\n\t * toggles between `normal` and `danger` states\n\t */\n\t@Input() type: \"normal\" | \"danger\" = \"normal\";\n\t/**\n\t * disable/enable interactions\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * If it's an anchor, this is its location\n\t */\n\t@Input() href: string;\n\t/**\n\t * Allows to add a target to the anchor\n\t */\n\t@Input() set target(value: Target) {\n\t\tif (!Object.values(Target).includes(value)) {\n\t\t\tconsole.warn(\n`\\`target\\` must have one of the following values: ${Object.values(Target).join(\", \")}.\nPlease use the \\`Target\\` enum exported by carbon-components-angular`);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._target = value;\n\t}\n\t/**\n\t * Apply a custom class to the inner button/anchor\n\t */\n\t@Input() innerClass = \"\";\n\n\tget target() {\n\t\treturn this._target;\n\t}\n\t/**\n\t * rel only returns its value if target is defined\n\t */\n\tget rel() {\n\t\treturn this._target ? REL : null;\n\t}\n\n\t@Output() selected: EventEmitter<any> = new EventEmitter();\n\n\tpublic tabIndex = -1;\n\t// note: title must be a real attribute (i.e. not a getter) as of Angular@6 due to\n\t// change after checked errors\n\tpublic title = null;\n\n\tprotected _target: Target;\n\n\tconstructor(protected elementRef: ElementRef) {}\n\n\tonClick() {\n\t\tthis.selected.emit();\n\t}\n\n\tonFocus() {\n\t\tsetTimeout(() => this.tabIndex = 0);\n\t}\n\n\tonBlur() {\n\t\tsetTimeout(() => this.tabIndex = -1);\n\t}\n\n\tngAfterViewInit() {\n\t\tconst button = this.elementRef.nativeElement.querySelector(\"button, a\");\n\t\tconst textContainer = button.querySelector(\".cds--overflow-menu-options__option-content\");\n\t\tif (textContainer.scrollWidth > textContainer.offsetWidth) {\n\t\t\tthis.title = button.textContent;\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { DialogService } from \"./dialog.service\";\nimport { Dialog } from \"./dialog.component\";\nimport { DialogDirective } from \"./dialog.directive\";\n\nimport { OverflowMenu } from \"./overflow-menu/overflow-menu.component\";\nimport { OverflowMenuPane } from \"./overflow-menu/overflow-menu-pane.component\";\nimport { OverflowMenuCustomPane } from \"./overflow-menu/overflow-menu-custom-pane.component\";\nimport { OverflowMenuDirective } from \"./overflow-menu/overflow-menu.directive\";\nimport { OverflowMenuOption } from \"./overflow-menu/overflow-menu-option.component\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { PlaceholderModule } from \"carbon-components-angular/placeholder\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tDialog,\n\t\tOverflowMenu,\n\t\tOverflowMenuPane,\n\t\tOverflowMenuCustomPane,\n\t\tDialogDirective,\n\t\tOverflowMenuDirective,\n\t\tOverflowMenuOption\n\t],\n\texports: [\n\t\tDialog,\n\t\tOverflowMenu,\n\t\tOverflowMenuPane,\n\t\tOverflowMenuCustomPane,\n\t\tDialogDirective,\n\t\tOverflowMenuDirective,\n\t\tOverflowMenuOption\n\t],\n\tproviders: [ DialogService ],\n\timports: [\n\t\tCommonModule,\n\t\tI18nModule,\n\t\tPlaceholderModule,\n\t\tExperimentalModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t]\n})\nexport class DialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DialogService","i2","i3","i4","i4.OverflowMenuDirective"],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-dialog.mjs","sources":["../../src/dialog/dialog-config.interface.ts","../../src/dialog/dialog.service.ts","../../src/dialog/dialog.component.ts","../../src/dialog/dialog.directive.ts","../../src/dialog/overflow-menu/overflow-menu-pane.component.ts","../../src/dialog/overflow-menu/overflow-menu-custom-pane.component.ts","../../src/dialog/overflow-menu/overflow-menu.directive.ts","../../src/dialog/overflow-menu/overflow-menu.component.ts","../../src/dialog/overflow-menu/overflow-menu-option.component.ts","../../src/dialog/dialog.module.ts","../../src/dialog/carbon-components-angular-dialog.ts"],"sourcesContent":["import { ElementRef, TemplateRef } from \"@angular/core\";\n\n/**\n * An enum of the various reasons a dialog may close. For use with `CloseMeta` and `shouldClose`\n *\n * It's expected that `interaction` will be a common closure reason.\n */\nexport enum CloseReasons {\n\t/**\n\t * For when the component is closed by being destroyed\n\t */\n\tdestroyed,\n\t/**\n\t * For use in cases where the dialog closes for programmatic reasons other than destruction\n\t */\n\tprogrammatic,\n\t/**\n\t * interaction reasons will also provide a target for the interaction\n\t */\n\tinteraction,\n\t/**\n\t * For use in cases where the dialog closes due to being hidden\n\t */\n\thidden\n}\n\n/**\n * Interface representing various metadata that can be passed to `shouldClose` and the `close` event\n */\nexport interface CloseMeta {\n\treason: CloseReasons;\n\ttarget?: EventTarget;\n}\n\n/**\n * Data structure for definig properties of a `Dialog` component.\n **/\nexport interface DialogConfig {\n\t/**\n\t * Title for the `Dialog` header.\n\t */\n\ttitle?: string;\n\t/**\n\t * Body content for the `Dialog`.\n\t */\n\tcontent: string | TemplateRef<any>;\n\t/**\n\t * Parameter for triggering `Dialog` display.\n\t */\n\ttrigger?: \"click\" | \"hover\" | \"mouseenter\";\n\t/**\n\t * Parameter for triggering the `Dialog` close event.\n\t */\n\tcloseTrigger?: \"mouseout\" | \"mouseleave\";\n\t/**\n\t * Callback to control the closing behaviour. return `true` to close, and `false` to prevent closing\n\t */\n\tshouldClose?: (meta?: CloseMeta) => boolean;\n\t/**\n\t * If true the dialog will close when hidden (by scrolling or otherwise going out of the viewport)\n\t * If false the dialog will stay open until explicitly closed\n\t * When true this closure method can be picked up via `CloseReasons.hidden`\n\t */\n\tcloseWhenHidden?: boolean;\n\t/**\n\t * Parameter defining the placement in which the `Dialog` appears.\n\t */\n\tplacement?: string;\n\t/**\n\t * Used to set the offset of the `Dialog` relative to the content it\n\t * is associated to.\n\t */\n\tgap?: number;\n\t/**\n\t * Reference to the Parent element that links the `Dialog`.\n\t */\n\tparentRef?: ElementRef;\n\t/**\n\t * Set to `true` to open the dialog next to the triggering component\n\t */\n\tappendInline?: boolean;\n\t/**\n\t * Config object passed to the rendered component. (Optional)\n\t */\n\tdata?: Object;\n\t/**\n\t * Additional arbitrary properties (mostly for internal/extended component use)\n\t */\n\t[propName: string]: any;\n\t/**\n\t * Classes to add to the dialog container\n\t */\n\twrapperClass?: string;\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\toffset?: { x: number, y: number };\n\t/**\n\t * This prevents the dialog from being toggled\n\t */\n\tdisabled?: boolean;\n}\n","import {\n\tInjector,\n\tComponentRef,\n\tInjectable,\n\tViewContainerRef\n} from \"@angular/core\";\nimport { CloseReasons, DialogConfig } from \"./dialog-config.interface\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { Dialog } from \"./dialog.component\";\nimport { tabbableSelector } from \"carbon-components-angular/common\";\n\n/**\n * `Dialog` object to be injected into other components.\n */\n@Injectable()\nexport class DialogService {\n\t/**\n\t * Used in `singletonClickListen`, don't count on its existence and values.\n\t */\n\tprotected static listeningForBodyClicks = false;\n\n\t/**\n\t * A set of all known dialog components\n\t */\n\tprotected static dialogRefs = new Set<ComponentRef<Dialog>>();\n\n\t/**\n\t * Closes all known `Dialog`s. Does not focus any previous elements, since we can't know which would be correct\n\t */\n\tpublic static closeAll() {\n\t\tDialogService.dialogRefs.forEach(ref => ref.instance.doClose({\n\t\t\treason: CloseReasons.programmatic\n\t\t}));\n\t\tDialogService.dialogRefs.clear();\n\t}\n\n\t/**\n\t * Creates an instance of `DialogService`.\n\t */\n\tconstructor(protected injector: Injector, protected placeholderService: PlaceholderService) {}\n\n\t/**\n\t * If `dialogRef` is defined, the Dialog is already open. If\n\t * `dialogRef` is undefined, we create the `Dialog` component and reference to it.\n\t * A subscription is created to track if the `Dialog` should close.\n\t *\n\t * @param viewContainer a `ViewContainerRef` to instantiate the component against.\n\t * May be `null` if an `cds-placeholder` exists and `dialogConfig.appendInline` is false\n\t * @param dialogConfig the `DialogConfig` for the component\n\t */\n\topen(viewContainer: ViewContainerRef, dialogConfig: DialogConfig, component: any) {\n\t\tif (!component) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet dialogRef;\n\t\tif (dialogConfig.appendInline) {\n\t\t\t// add our component to the view\n\t\t\tdialogRef = viewContainer.createComponent(component, { index: 0, injector: this.injector });\n\t\t} else if (!this.placeholderService.hasPlaceholderRef()) {\n\t\t\tdialogRef = viewContainer.createComponent(component, { index: 0, injector: this.injector });\n\t\t\tif (dialogRef) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\twindow.document.querySelector(\"body\").appendChild(dialogRef.location.nativeElement);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tdialogRef = this.placeholderService.createComponent(component, this.injector);\n\t\t}\n\n\t\t// keep track of all initialized dialogs\n\t\tDialogService.dialogRefs.add(dialogRef);\n\n\t\t// initialize some extra options\n\t\tdialogConfig[\"previouslyFocusedElement\"] = document.activeElement;\n\t\tdialogRef.instance.dialogConfig = dialogConfig;\n\n\t\tdialogRef.instance.elementRef.nativeElement.focus();\n\n\t\treturn dialogRef as ComponentRef<Dialog>;\n\t}\n\n\t/**\n\t * On close of `Dialog` item, sets focus back to previous item, unsets\n\t * the current `dialogRef` item. Unsubscribes to the event of `Dialog` close.\n\t *\n\t * @param dialogRef the dialogRef to close\n\t */\n\tclose(dialogRef: ComponentRef<Dialog>) {\n\t\t// to handle the case where we have a null `this.dialogRef`\n\t\tif (!dialogRef) { return; }\n\n\t\tconst elementToFocus = dialogRef.instance.dialogConfig[\"previouslyFocusedElement\"];\n\n\t\tdialogRef.destroy();\n\n\t\t// update the globally tracked dialogRefs\n\t\tif (DialogService.dialogRefs.has(dialogRef)) {\n\t\t\tDialogService.dialogRefs.delete(dialogRef);\n\t\t}\n\n\t\t// Keeps the focus on the dialog trigger if there are no focusable elements. Change focus to previously focused element\n\t\t// if there are focusable elements in the dialog.\n\t\tif (!dialogRef.location.nativeElement.querySelectorAll(tabbableSelector)) {\n\t\t\telementToFocus.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Fix for safari hijacking clicks.\n\t *\n\t * Runs on `ngOnInit` of every dialog. Ensures we don't have multiple listeners\n\t * because having many of them could degrade performance in certain cases (and is\n\t * not necessary for our use case)\n\t *\n\t * This is an internally used function, can change at any point (even get removed)\n\t * and changes to it won't be considered a breaking change. Use at your own risk.\n\t */\n\tsingletonClickListen() {\n\t\tif (!DialogService.listeningForBodyClicks) {\n\t\t\tdocument.body.firstElementChild.addEventListener(\"click\", () => null, true);\n\t\t\tDialogService.listeningForBodyClicks = true;\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tViewChild,\n\tOnInit,\n\tAfterViewInit,\n\tOnDestroy,\n\tHostListener,\n\tOptional\n} from \"@angular/core\";\nimport {\n\tObservable,\n\tSubscription\n} from \"rxjs\";\n// the AbsolutePosition is required to import the declaration correctly\nimport Position, { position, AbsolutePosition, Positions } from \"@carbon/utils-position\";\nimport { cycleTabs, getFocusElementList } from \"carbon-components-angular/common\";\nimport { CloseMeta, CloseReasons, DialogConfig } from \"./dialog-config.interface\";\nimport { AnimationFrameService, ElementService } from \"carbon-components-angular/utils\";\n\n/**\n * Implements a `Dialog` that can be positioned anywhere on the page.\n * Used to implement a popover or tooltip.\n */\n@Component({\n\tselector: \"cds-dialog, ibm-dialog\",\n\ttemplate: \"\"\n})\nexport class Dialog implements OnInit, AfterViewInit, OnDestroy {\n\t/**\n\t * Emits event that handles the closing of a `Dialog` object.\n\t */\n\t@Output() close: EventEmitter<CloseMeta> = new EventEmitter();\n\t/**\n\t * Receives `DialogConfig` interface object with properties of `Dialog`\n\t * explicitly defined.\n\t */\n\t@Input() dialogConfig: DialogConfig;\n\t/**\n\t * Maintains a reference to the view DOM element of the `Dialog`.\n\t */\n\t@ViewChild(\"dialog\") dialog: ElementRef;\n\n\t/**\n\t * Stores the data received from `dialogConfig`.\n\t */\n\tpublic data = {};\n\n\t/**\n\t * The placement of the `Dialog` is received from the `Position` service.\n\t */\n\tpublic placement: string;\n\n\tprotected visibilitySubscription = new Subscription();\n\n\tprotected animationFrameSubscription = new Subscription();\n\n\t/**\n\t * Handles offsetting the `Dialog` item based on the defined position\n\t * to not obscure the content beneath.\n\t */\n\tprotected addGap = {\n\t\t\"left\": pos => position.addOffset(pos, 0, -this.dialogConfig.gap),\n\t\t\"right\": pos => position.addOffset(pos, 0, this.dialogConfig.gap),\n\t\t\"top\": pos => position.addOffset(pos, -this.dialogConfig.gap),\n\t\t\"bottom\": pos => position.addOffset(pos, this.dialogConfig.gap),\n\t\t\"left-bottom\": pos => position.addOffset(pos, 0, -this.dialogConfig.gap),\n\t\t\"right-bottom\": pos => position.addOffset(pos, 0, this.dialogConfig.gap)\n\t};\n\n\t/**\n\t * Extra placements. Child classes can add to this for use in `placeDialog`.\n\t */\n\tprotected placements: Positions = {};\n\n\t/**\n\t * Creates an instance of `Dialog`.\n\t * @param elementRef\n\t * @param elementService\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected elementService: ElementService,\n\t\t@Optional() protected animationFrameService: AnimationFrameService = null\n\t) {}\n\n\t/**\n\t * Initialize the `Dialog`, set the placement and gap, and add a `Subscription` to resize events.\n\t */\n\tngOnInit() {\n\t\tthis.placement = this.dialogConfig.placement.split(\",\")[0];\n\t\tthis.data = this.dialogConfig.data;\n\n\t\t// run any additional initialization code that consuming classes may have\n\t\tthis.onDialogInit();\n\t}\n\n\t/**\n\t * After the DOM is ready, focus is set and dialog is placed\n\t * in respect to the parent element.\n\t */\n\tngAfterViewInit() {\n\t\tconst dialogElement = this.dialog.nativeElement;\n\t\t// split the wrapper class list and apply separately to avoid IE\n\t\t// 1. throwing an error due to assigning a readonly property (classList)\n\t\t// 2. throwing a SyntaxError due to passing an empty string to `add`\n\t\tif (this.dialogConfig.wrapperClass) {\n\t\t\tfor (const extraClass of this.dialogConfig.wrapperClass.split(\" \")) {\n\t\t\t\tdialogElement.classList.add(extraClass);\n\t\t\t}\n\t\t}\n\n\t\t// only focus the dialog if there are focusable elements within the dialog\n\t\tif (getFocusElementList(this.dialog.nativeElement).length > 0) {\n\t\t\tdialogElement.focus();\n\t\t}\n\n\t\tconst parentElement = this.dialogConfig.parentRef.nativeElement;\n\n\t\tif (this.animationFrameService) {\n\t\t\tthis.animationFrameSubscription = this.animationFrameService.tick.subscribe(() => {\n\t\t\t\tthis.placeDialog();\n\t\t\t});\n\t\t}\n\n\t\tif (this.dialogConfig.closeWhenHidden) {\n\t\t\tthis.visibilitySubscription = this.elementService\n\t\t\t\t.visibility(parentElement, parentElement)\n\t\t\t\t.subscribe(value => {\n\t\t\t\t\tthis.placeDialog();\n\t\t\t\t\tif (!value.visible) {\n\t\t\t\t\t\tthis.doClose({\n\t\t\t\t\t\t\treason: CloseReasons.hidden\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tthis.placeDialog();\n\t\t// run afterDialogViewInit on the next tick\n\t\tsetTimeout(() => this.afterDialogViewInit());\n\t}\n\n\t/**\n\t * Empty method to be overridden by consuming classes to run any additional initialization code.\n\t */\n\tonDialogInit() {}\n\n\t/**\n\t * Empty method to be overridden by consuming classes to run any additional initialization code after the view is available.\n\t * NOTE: this does _not_ guarantee the dialog will be positioned, simply that it will exist in the DOM\n\t */\n\tafterDialogViewInit() {}\n\n\t/**\n\t * Uses the position service to position the `Dialog` in screen space\n\t */\n\tplaceDialog(): void {\n\t\tconst positionService = new Position(this.placements);\n\t\t// helper to find the position based on the current/given environment\n\t\tconst findPosition = (reference, target, placement) => {\n\t\t\tlet pos;\n\t\t\tif (this.dialogConfig.appendInline) {\n\t\t\t\tpos = this.addGap[placement](positionService.findRelative(reference, target, placement));\n\t\t\t} else {\n\t\t\t\tpos = this.addGap[placement](positionService.findAbsolute(reference, target, placement));\n\t\t\t}\n\n\t\t\tif (this.dialogConfig.offset) {\n\t\t\t\t// Apply vertical and horizontal offsets given through the dialogConfig\n\t\t\t\tpos.top = pos.top + this.dialogConfig.offset.y;\n\t\t\t\tpos.left = pos.left + this.dialogConfig.offset.x;\n\t\t\t}\n\n\t\t\treturn pos;\n\t\t};\n\n\t\tlet parentEl = this.dialogConfig.parentRef.nativeElement;\n\t\tlet el = this.dialog.nativeElement;\n\t\tlet dialogPlacement = this.placement;\n\n\t\t// split always returns an array, so we can just use the auto position logic\n\t\t// for single positions too\n\t\tconst placements = this.dialogConfig.placement.split(\",\");\n\n\t\t// find the best placement\n\t\tdialogPlacement = positionService.findBestPlacement(parentEl, el, placements);\n\n\t\t// calculate the final position\n\t\tconst pos = findPosition(parentEl, el, dialogPlacement);\n\n\t\t// update the element\n\t\tpositionService.setElement(el, pos);\n\t\tsetTimeout(() => { this.placement = dialogPlacement; });\n\t}\n\n\t/**\n\t * Sets up a KeyboardEvent to close `Dialog` with Escape key.\n\t * @param event\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\tescapeClose(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase \"Escape\": {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tthis.doClose({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"Tab\": {\n\t\t\t\tcycleTabs(event, this.elementRef.nativeElement);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets up a event Listener to close `Dialog` if click event occurs outside\n\t * `Dialog` object.\n\t * @param event\n\t */\n\t@HostListener(\"document:click\", [\"$event\"])\n\tclickClose(event) {\n\t\tif (!this.elementRef.nativeElement.contains(event.target)\n\t\t\t&& !this.dialogConfig.parentRef.nativeElement.contains(event.target) ) {\n\t\t\tthis.doClose({\n\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\ttarget: event.target\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Closes `Dialog` object by emitting the close event upwards to parents.\n\t */\n\tpublic doClose(meta: CloseMeta = { reason: CloseReasons.interaction }) {\n\t\tthis.close.emit(meta);\n\t}\n\n\t/**\n\t * At destruction of component, `Dialog` unsubscribes from all the subscriptions.\n\t */\n\tngOnDestroy() {\n\t\tthis.visibilitySubscription.unsubscribe();\n\t\tif (this.animationFrameSubscription) {\n\t\t\tthis.animationFrameSubscription.unsubscribe();\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tOnInit,\n\tOnDestroy,\n\tElementRef,\n\tTemplateRef,\n\tViewContainerRef,\n\tOnChanges,\n\tHostBinding,\n\tSimpleChanges,\n\tComponentRef\n} from \"@angular/core\";\nimport { DialogService } from \"./dialog.service\";\nimport { CloseMeta, CloseReasons, DialogConfig } from \"./dialog-config.interface\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { Dialog } from \"./dialog.component\";\n\n/**\n * A generic directive that can be inherited from to create dialogs (for example, a tooltip or popover)\n *\n * This class contains the relevant initialization code, specific templates, options, and additional inputs\n * should be specified in the derived class.\n *\n * NOTE: All child classes should add `DialogService` as a provider, otherwise they will lose context that\n * the service relies on.\n */\n@Directive({\n\tselector: \"[cdsDialog], [ibmDialog]\",\n\texportAs: \"dialog\",\n\tproviders: [\n\t\tDialogService\n\t]\n})\nexport class DialogDirective implements OnInit, OnDestroy, OnChanges {\n\tstatic dialogCounter = 0;\n\t/**\n\t * Title for the dialog\n\t */\n\t@Input() title = \"\";\n\t/**\n\t * @deprecated as of v5, use `cdsDialog` instead\n\t * Dialog body content.\n\t */\n\t@Input() set ibmDialog(body: string | TemplateRef<any>) {\n\t\tthis.cdsDialog = body;\n\t}\n\n\t@Input() cdsDialog: string | TemplateRef<any>;\n\t/**\n\t * Defines how the Dialog is triggered.(Hover and click behave the same on mobile - both respond to a single tap).\n\t * Do not add focusable elements if trigger is `hover` or `mouseenter`.\n\t */\n\t@Input() trigger: \"click\" | \"hover\" | \"mouseenter\" = \"click\";\n\t/**\n\t * Defines how the Dialog close event is triggered.\n\t *\n\t * [See here](https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseleave_event)\n\t * for more on the difference between `mouseleave` and `mouseout`.\n\t *\n\t * Defaults to `click` when `trigger` is set to `click`.\n\t */\n\t@Input() closeTrigger: \"mouseout\" | \"mouseleave\" = \"mouseleave\";\n\t/**\n\t * Placement of the dialog, usually relative to the element the directive is on.\n\t */\n\t@Input() placement = \"left\";\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\t@Input() offset: { x: number, y: number };\n\t/**\n\t * Classes to add to the dialog container\n\t */\n\t@Input() wrapperClass: string;\n\t/**\n\t * Spacing between the dialog and it's triggering element\n\t */\n\t@Input() gap = 0;\n\t/**\n\t * Set to `true` to open the dialog next to the triggering component\n\t */\n\t@Input() appendInline = false;\n\t/**\n\t * Optional data for templates\n\t */\n\t@Input() data = {};\n\n\t@Input() @HostBinding(\"attr.aria-expanded\") isOpen = false;\n\t/**\n\t * This prevents the dialog from being toggled\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * This input allows explicit control over how the dialog should close\n\t */\n\t@Input() shouldClose: (meta: CloseMeta) => boolean;\n\t/**\n\t * Config object passed to the rendered component\n\t */\n\tdialogConfig: DialogConfig;\n\t/**\n\t * Emits an event when the dialog is closed\n\t */\n\t@Output() onClose: EventEmitter<any> = new EventEmitter();\n\t/**\n\t * Emits an event when the dialog is opened\n\t */\n\t@Output() onOpen: EventEmitter<any> = new EventEmitter();\n\t/**\n\t * Emits an event when the state of `isOpen` changes. Allows `isOpen` to be double bound\n\t */\n\t@Output() isOpenChange = new EventEmitter<boolean>();\n\n\t@HostBinding(\"attr.role\") role = \"button\";\n\t@HostBinding(\"attr.aria-haspopup\") hasPopup = true;\n\t@HostBinding(\"attr.aria-owns\") get ariaOwns(): string {\n\t\treturn this.isOpen ? this.dialogConfig.compID : null;\n\t}\n\n\t/**\n\t * Keeps a reference to the currently opened dialog\n\t */\n\tprotected dialogRef: ComponentRef<Dialog>;\n\n\t/**\n\t * Creates an instance of DialogDirective.\n\t * @param elementRef\n\t * @param viewContainerRef\n\t * @param dialogService\n\t * @param eventService\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected viewContainerRef: ViewContainerRef,\n\t\tprotected dialogService: DialogService,\n\t\tprotected eventService: EventService\n\t) {}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\t// set the config object (this can [and should!] be added to in child classes depending on what they need)\n\t\tthis.dialogConfig = {\n\t\t\ttitle: this.title,\n\t\t\tcontent: this.cdsDialog,\n\t\t\tplacement: this.placement,\n\t\t\tparentRef: this.elementRef,\n\t\t\tgap: this.gap,\n\t\t\ttrigger: this.trigger,\n\t\t\tcloseTrigger: this.closeTrigger,\n\t\t\tshouldClose: this.shouldClose || (() => true),\n\t\t\tappendInline: this.appendInline,\n\t\t\twrapperClass: this.wrapperClass,\n\t\t\tdata: this.data,\n\t\t\toffset: this.offset,\n\t\t\tdisabled: this.disabled\n\t\t};\n\n\t\tif (changes.isOpen) {\n\t\t\tif (changes.isOpen.currentValue) {\n\t\t\t\tthis.open();\n\t\t\t} else if (!changes.isOpen.firstChange) {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.programmatic\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Run any code a child class may need.\n\t\tthis.onDialogChanges(changes);\n\t\tthis.updateConfig();\n\t}\n\n\t/**\n\t * Sets the config object and binds events for hovering or clicking before\n\t * running code from child class.\n\t */\n\tngOnInit() {\n\t\t// fix for safari hijacking clicks\n\t\tthis.dialogService.singletonClickListen();\n\n\t\tconst element = this.elementRef.nativeElement;\n\n\t\tthis.eventService.on(element, \"keydown\", (event: KeyboardEvent) => {\n\t\t\tif (event.target === this.dialogConfig.parentRef.nativeElement &&\n\t\t\t\t(event.key === \"Tab\" || event.key === \"Tab\" && event.shiftKey) ||\n\t\t\t\tevent.key === \"Escape\") {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// bind events for hovering or clicking the host\n\t\tif (this.trigger === \"hover\" || this.trigger === \"mouseenter\") {\n\t\t\tthis.eventService.on(element, \"mouseenter\", this.open.bind(this));\n\t\t\tthis.eventService.on(element, this.closeTrigger, (event) => {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.eventService.on(element, \"focus\", this.open.bind(this));\n\t\t\tthis.eventService.on(element, \"blur\", (event) => {\n\t\t\t\tthis.close({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tthis.eventService.on(element, \"click\", (event) => {\n\t\t\t\tthis.toggle({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.eventService.on(element, \"keydown\", (event: KeyboardEvent) => {\n\t\t\t\tif (event.key === \"Enter\" || event.key === \" \") {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.open();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tDialogDirective.dialogCounter++;\n\t\tthis.dialogConfig.compID = \"dialog-\" + DialogDirective.dialogCounter;\n\n\t\t// run any code a child class may need\n\t\tthis.onDialogInit();\n\t\tthis.updateConfig();\n\t}\n\n\t/**\n\t * When the host dies, kill the popover.\n\t * - Useful for use in a modal or similar.\n\t */\n\tngOnDestroy() {\n\t\tthis.close({\n\t\t\treason: CloseReasons.destroyed\n\t\t});\n\t}\n\n\t/**\n\t * Helper method to call dialogService 'open'.\n\t * - Enforce accessibility by updating an aria attr for nativeElement.\n\t */\n\topen(component?) {\n\t\t// don't allow dialogs to be opened if they're already open\n\t\tif (this.dialogRef || this.disabled) { return; }\n\n\t\t// actually open the dialog, emit events, and set the open state\n\t\tthis.dialogRef = this.dialogService.open(this.viewContainerRef, this.dialogConfig, component);\n\t\tthis.isOpen = true;\n\t\tthis.onOpen.emit();\n\t\tthis.isOpenChange.emit(true);\n\n\t\t// Handles emitting all the close events to clean everything up\n\t\t// Also enforce accessibility on close by updating an aria attr on the nativeElement.\n\t\tthis.dialogRef.instance.close.subscribe((meta: CloseMeta) => {\n\t\t\tif (!this.dialogRef) { return; }\n\t\t\tif (this.dialogConfig.shouldClose && this.dialogConfig.shouldClose(meta)) {\n\t\t\t\t// close the dialog, emit events, and clear out the open states\n\t\t\t\tthis.dialogService.close(this.dialogRef);\n\t\t\t\tthis.dialogRef = null;\n\t\t\t\tthis.isOpen = false;\n\t\t\t\tthis.onClose.emit();\n\t\t\t\tthis.isOpenChange.emit(false);\n\t\t\t}\n\t\t});\n\n\t\treturn this.dialogRef;\n\t}\n\n\t/**\n\t * Helper method to toggle the open state of the dialog\n\t */\n\ttoggle(meta: CloseMeta = { reason: CloseReasons.interaction }) {\n\t\tif (!this.isOpen) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\tthis.close(meta);\n\t\t}\n\t}\n\n\t/**\n\t * Helper method to close the dialogRef.\n\t */\n\tclose(meta: CloseMeta = { reason: CloseReasons.interaction }) {\n\t\tif (this.dialogRef) {\n\t\t\tthis.dialogRef.instance.doClose(meta);\n\t\t}\n\t}\n\n\t/**\n\t * Empty method for child classes to override and specify additional init steps.\n\t * Run after DialogDirective completes it's ngOnInit.\n\t */\n\tprotected onDialogInit() {}\n\n\t/**\n\t * Empty method for child to override and specify additional on changes steps.\n\t * run after DialogDirective completes it's ngOnChanges.\n\t */\n\tprotected onDialogChanges(_changes: SimpleChanges) {}\n\n\tprotected updateConfig() {}\n}\n","import {\n\tComponent,\n\tHostListener,\n\tElementRef,\n\tAfterViewInit,\n\tOptional\n} from \"@angular/core\";\nimport { Dialog } from \"../dialog.component\";\nimport { position } from \"@carbon/utils-position\";\nimport { isFocusInLastItem, isFocusInFirstItem } from \"carbon-components-angular/common\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { ExperimentalService } from \"carbon-components-angular/experimental\";\nimport { AnimationFrameService, ElementService } from \"carbon-components-angular/utils\";\nimport { CloseReasons } from \"../dialog-config.interface\";\nimport { closestAttr } from \"carbon-components-angular/utils\";\n\n/**\n * Extend the `Dialog` component to create an overflow menu.\n *\n * Not used directly. See overflow-menu.component and overflow-menu.directive for more\n */\n@Component({\n\tselector: \"cds-overflow-menu-pane, ibm-overflow-menu-pane\",\n\ttemplate: `\n\t\t<ul\n\t\t\t[attr.id]=\"dialogConfig.compID\"\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\"\n\t\t\t[attr.data-floating-menu-direction]=\"placement ? placement : null\"\n\t\t\t[ngClass]=\"{'cds--overflow-menu--flip': dialogConfig.flip}\"\n\t\t\trole=\"menu\"\n\t\t\t#dialog\n\t\t\tclass=\"cds--overflow-menu-options cds--overflow-menu-options--open\"\n\t\t\t(click)=\"onClose($event)\"\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\">\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"dialogConfig.content\"\n\t\t\t\t[ngTemplateOutletContext]=\"{overflowMenu: this}\">\n\t\t\t</ng-template>\n\t\t</ul>\n\t`\n})\nexport class OverflowMenuPane extends Dialog implements AfterViewInit {\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected i18n: I18n,\n\t\tprotected experimental: ExperimentalService,\n\t\t@Optional() protected animationFrameService: AnimationFrameService = null,\n\t\t// mark `elementService` as optional since making it mandatory would be a breaking change\n\t\t@Optional() protected elementService: ElementService = null) {\n\t\tsuper(elementRef, elementService, animationFrameService);\n\t}\n\n\tonDialogInit() {\n\t\tconst positionOverflowMenu = pos => {\n\t\t\tlet offset;\n\t\t\t/*\n\t\t\t* 20 is half the width of the overflow menu trigger element.\n\t\t\t* we also move the element by half of it's own width, since\n\t\t\t* position service will try and center everything\n\t\t\t*/\n\t\t\tconst closestRel = closestAttr(\"position\", [\"relative\", \"fixed\", \"absolute\"], this.elementRef.nativeElement);\n\t\t\tconst topFix = closestRel ? closestRel.getBoundingClientRect().top * -1 : 0;\n\t\t\tconst leftFix = closestRel ? closestRel.getBoundingClientRect().left * -1 : 0;\n\n\t\t\toffset = Math.round(this.dialog.nativeElement.offsetWidth / 2) - 20;\n\t\t\tif (this.dialogConfig.flip) {\n\t\t\t\treturn position.addOffset(pos, topFix, (-offset + leftFix));\n\t\t\t}\n\t\t\treturn position.addOffset(pos, topFix, (offset + leftFix));\n\t\t};\n\n\t\tthis.addGap[\"bottom\"] = positionOverflowMenu;\n\n\t\tthis.addGap[\"top\"] = positionOverflowMenu;\n\n\t\tif (!this.dialogConfig.menuLabel) {\n\t\t\tthis.dialogConfig.menuLabel = this.i18n.get().OVERFLOW_MENU.OVERFLOW;\n\t\t}\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tconst listItems = this.listItems();\n\n\t\tswitch (event.key) {\n\t\t\tcase \"ArrowDown\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (!isFocusInLastItem(event, listItems)) {\n\t\t\t\t\tconst index = listItems.findIndex(item => item === event.target);\n\t\t\t\t\tlistItems[index + 1].focus();\n\t\t\t\t} else {\n\t\t\t\t\tlistItems[0].focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (!isFocusInFirstItem(event, listItems)) {\n\t\t\t\t\tconst index = listItems.findIndex(item => item === event.target);\n\t\t\t\t\tlistItems[index - 1].focus();\n\t\t\t\t} else {\n\t\t\t\t\tlistItems[listItems.length - 1].focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"Home\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tlistItems[0].focus();\n\t\t\t\tbreak;\n\n\t\t\tcase \"End\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tlistItems[listItems.length - 1].focus();\n\t\t\t\tbreak;\n\n\t\t\tcase \"Escape\":\n\t\t\tcase \"Tab\":\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tthis.doClose({\n\t\t\t\t\treason: CloseReasons.interaction,\n\t\t\t\t\ttarget: event.target\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tdefault: break;\n\t\t}\n\t}\n\n\tonClose(event) {\n\t\tthis.doClose({\n\t\t\treason: CloseReasons.interaction,\n\t\t\ttarget: event.target\n\t\t});\n\t}\n\n\tafterDialogViewInit() {\n\t\tconst focusElementList = this.listItems();\n\t\tfocusElementList.forEach(button => {\n\t\t\t// Allows user to set tabindex to 0.\n\t\t\tif (button.getAttribute(\"tabindex\") === null) {\n\t\t\t\tbutton.tabIndex = -1;\n\t\t\t}\n\t\t});\n\t\tif (focusElementList[0]) {\n\t\t\tfocusElementList[0].tabIndex = 0;\n\t\t\tfocusElementList[0].focus();\n\t\t}\n\t}\n\n\tprotected listItems() {\n\t\tconst selector = \".cds--overflow-menu-options__option:not([disabled]) .cds--overflow-menu-options__btn\";\n\t\treturn Array.from<HTMLElement>(this.elementRef.nativeElement.querySelectorAll(selector));\n\t}\n}\n","import { AfterViewInit, Component, ElementRef, Optional } from \"@angular/core\";\nimport { position } from \"@carbon/utils-position\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { AnimationFrameService, ElementService } from \"carbon-components-angular/utils\";\nimport { closestAttr } from \"carbon-components-angular/utils\";\nimport { CloseReasons } from \"../dialog-config.interface\";\nimport { Dialog } from \"../dialog.component\";\n\n/**\n * @deprecated as of v5\n * Use Toggletip or Popover components instead\n */\n@Component({\n\tselector: \"cds-overflow-custom-menu-pane, ibm-overflow-custom-menu-pane\",\n\ttemplate: `\n\t\t<div\n\t\t\t[attr.id]=\"dialogConfig.compID\"\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\"\n\t\t\t[attr.data-floating-menu-direction]=\"placement ? placement : null\"\n\t\t\t[ngClass]=\"{'cds--overflow-menu--flip': dialogConfig.flip}\"\n\t\t\tclass=\"cds--overflow-menu-options cds--overflow-menu-options--open\"\n\t\t\trole=\"menu\"\n\t\t\t(click)=\"onClick($event)\"\n\t\t\t#dialog\n\t\t\t[attr.aria-label]=\"dialogConfig.menuLabel\">\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"dialogConfig.content\"\n\t\t\t\t[ngTemplateOutletContext]=\"{overflowMenu: this}\">\n\t\t\t</ng-template>\n\t\t</div>\n\t`\n})\nexport class OverflowMenuCustomPane extends Dialog implements AfterViewInit {\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected i18n: I18n,\n\t\t@Optional() protected animationFrameService: AnimationFrameService = null,\n\t\t// mark `elementService` as optional since making it mandatory would be a breaking change\n\t\t@Optional() protected elementService: ElementService = null\n\t) {\n\t\tsuper(elementRef, elementService, animationFrameService);\n\t}\n\n\tonClick(event) {\n\t\tthis.doClose({\n\t\t\treason: CloseReasons.interaction,\n\t\t\ttarget: event.target\n\t\t});\n\t}\n\n\tonDialogInit() {\n\t\tconst positionOverflowMenu = pos => {\n\t\t\tlet offset;\n\t\t\t/*\n\t\t\t* 20 is half the width of the overflow menu trigger element.\n\t\t\t* we also move the element by half of it's own width, since\n\t\t\t* position service will try and center everything\n\t\t\t*/\n\t\t\tconst closestRel = closestAttr(\"position\", [\"relative\", \"fixed\", \"absolute\"], this.elementRef.nativeElement);\n\t\t\tconst topFix = closestRel ? closestRel.getBoundingClientRect().top * -1 : 0;\n\t\t\tconst leftFix = closestRel ? closestRel.getBoundingClientRect().left * -1 : 0;\n\n\t\t\toffset = Math.round(this.dialog.nativeElement.offsetWidth / 2) - 20;\n\t\t\tif (this.dialogConfig.flip) {\n\t\t\t\treturn position.addOffset(pos, topFix, (-offset + leftFix));\n\t\t\t}\n\t\t\treturn position.addOffset(pos, topFix, (offset + leftFix));\n\t\t};\n\n\t\tthis.addGap[\"bottom\"] = positionOverflowMenu;\n\n\t\tthis.addGap[\"top\"] = positionOverflowMenu;\n\n\t\tif (!this.dialogConfig.menuLabel) {\n\t\t\tthis.dialogConfig.menuLabel = this.i18n.get().OVERFLOW_MENU.OVERFLOW;\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tViewContainerRef,\n\tInput,\n\tTemplateRef,\n\tHostListener\n} from \"@angular/core\";\nimport { DialogDirective } from \"../dialog.directive\";\nimport { DialogService } from \"../dialog.service\";\nimport { OverflowMenuPane } from \"./overflow-menu-pane.component\";\nimport { OverflowMenuCustomPane } from \"./overflow-menu-custom-pane.component\";\nimport { EventService } from \"carbon-components-angular/utils\";\n\n\n/**\n * Directive for extending `Dialog` to create overflow menus.\n *\n * class: OverflowMenuDirective (extends DialogDirective)\n *\n *\n * selector: `cdsOverflowMenu`\n *\n *\n * ```html\n * <div [cdsOverflowMenu]=\"templateRef\"></div>\n * <ng-template #templateRef>\n * \t<!-- overflow menu options here -->\n * </ng-template>\n * ```\n *\n * ```html\n * <div [cdsOverflowMenu]=\"templateRef\" [customPane]=\"true\"></div>\n * <ng-template #templateRef>\n * <!-- custom content goes here -->\n * </ng-template>\n * ```\n */\n@Directive({\n\tselector: \"[cdsOverflowMenu], [ibmOverflowMenu]\",\n\texportAs: \"overflowMenu\",\n\tproviders: [\n\t\tDialogService\n\t]\n})\nexport class OverflowMenuDirective extends DialogDirective {\n\t/**\n\t * @deprecated as of v5\n\t * Takes a template ref of `OverflowMenuOptions`s\n\t */\n\t@Input() set ibmOverflowMenu(template: TemplateRef<any>) {\n\t\tthis.cdsOverflowMenu = template;\n\t}\n\n\t@Input() cdsOverflowMenu: TemplateRef<any>;\n\t/**\n\t * Controls wether the overflow menu is flipped\n\t */\n\t@Input() flip = false;\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\t@Input() offset: { x: number, y: number };\n\t/**\n\t * Classes to add to the dialog container\n\t */\n\t@Input() wrapperClass = \"\";\n\t/**\n\t * Set to true to for custom content\n\t */\n\t@Input() customPane = false;\n\n\t/**\n\t * Creates an instance of `OverflowMenuDirective`.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected viewContainerRef: ViewContainerRef,\n\t\tprotected dialogService: DialogService,\n\t\tprotected eventService: EventService\n\t) {\n\t\tsuper(elementRef, viewContainerRef, dialogService, eventService);\n\t}\n\n\tupdateConfig() {\n\t\tthis.dialogConfig.content = this.cdsOverflowMenu;\n\t\tthis.dialogConfig.flip = this.flip;\n\t\tthis.dialogConfig.offset = this.offset;\n\t\tthis.dialogConfig.wrapperClass = this.wrapperClass;\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase \"Enter\":\n\t\t\tcase \" \":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\topen() {\n\t\treturn super.open(this.customPane ? OverflowMenuCustomPane : OverflowMenuPane);\n\t}\n}\n","import {\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\tTemplateRef,\n\tViewEncapsulation\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { OverflowMenuDirective } from \"./overflow-menu.directive\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\n/**\n * The OverFlow menu component encapsulates the OverFlowMenu directive, and the menu iconography into one convienent component.\n *\n * Get started with importing the module:\n *\n * ```typescript\n * import { DialogModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-overflow-menu>\n *\t<cds-overflow-menu-option>Option 1</cds-overflow-menu-option>\n *\t<cds-overflow-menu-option>Option 2</cds-overflow-menu-option>\n * </cds-overflow-menu>\n * ```\n *\n * [See demo](../../?path=/story/components-overflow-menu--basic)\n */\n@Component({\n\tselector: \"cds-overflow-menu, ibm-overflow-menu\",\n\ttemplate: `\n\t\t<cds-tooltip\n\t\t\tclass=\"cds--icon-tooltip\"\n\t\t\t[description]=\"description\"\n\t\t\t[caret]=\"caret\"\n\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t[highContrast]=\"highContrast\"\n\t\t\t[isOpen]=\"isOpen\"\n\t\t\t[align]=\"align\"\n\t\t\t[autoAlign]=\"autoAlign\"\n\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t[leaveDelayMs]=\"leaveDelayMs\">\n\t\t\t<button\n\t\t\t\tcdsButton=\"ghost\"\n\t\t\t\t[cdsOverflowMenu]=\"options\"\n\t\t\t\t[ngClass]=\"{'cds--overflow-menu--open': open}\"\n\t\t\t\tclass=\"cds--overflow-menu {{triggerClass}}\"\n\t\t\t\t[iconOnly]=\"true\"\n\t\t\t\t[attr.aria-label]=\"buttonLabel\"\n\t\t\t\t[flip]=\"flip\"\n\t\t\t\t[isOpen]=\"open\"\n\t\t\t\t(isOpenChange)=\"handleOpenChange($event)\"\n\t\t\t\t[offset]=\"offset\"\n\t\t\t\t[wrapperClass]=\"wrapperClass\"\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t[placement]=\"placement\">\n\t\t\t\t<ng-template *ngIf=\"customTrigger; else defaultIcon\" [ngTemplateOutlet]=\"customTrigger\"></ng-template>\n\t\t\t</button>\n\t\t</cds-tooltip>\n\n\t\t<ng-template #options>\n\t\t\t<ng-content></ng-content>\n\t\t</ng-template>\n\t\t<ng-template #defaultIcon>\n\t\t\t<svg cdsIcon=\"overflow-menu--vertical\" size=\"16\" class=\"cds--overflow-menu__icon\"></svg>\n\t\t</ng-template>\n\t`,\n\tstyles: [`\n\t\t.cds--overflow-menu--open {\n\t\t\topacity: 1\n\t\t}\n\n\t\t/*\n\t\tRotate the overflow menu container as well as the icon, since\n\t\twe calculate our menu position based on the container, not the icon.\n\t\t*/\n\t\t.cds--data-table-v2 .cds--overflow-menu {\n\t\t\ttransform: rotate(90deg);\n\t\t}\n\n\t\t.cds--data-table-v2 .cds--overflow-menu__icon {\n\t\t\ttransform: rotate(180deg);\n\t\t}\n\t`],\n\tencapsulation: ViewEncapsulation.None\n})\nexport class OverflowMenu extends BaseIconButton {\n\t@Input() buttonLabel = this.i18n.get().OVERFLOW_MENU.OVERFLOW;\n\n\t@Input() description = this.i18n.get().OVERFLOW_MENU.ICON_DESCRIPTION;\n\n\t@Input() flip = false;\n\n\t@Input() placement: \"bottom\" | \"top\" = \"bottom\";\n\n\t@Input() open = false;\n\n\t@Output() openChange = new EventEmitter<boolean>();\n\t/**\n\t * Sets the custom overflow menu trigger\n\t */\n\t@Input() customTrigger: TemplateRef<any>;\n\n\t/**\n\t * This specifies any vertical and horizontal offset for the position of the dialog\n\t */\n\t@Input() offset: { x: number, y: number };\n\n\t@Input() wrapperClass = \"\";\n\n\t/**\n\t * This appends additional classes to the overflow trigger/button.\n\t */\n\t@Input() triggerClass = \"\";\n\n\t@ContentChild(OverflowMenuDirective) overflowMenuDirective: OverflowMenuDirective;\n\n\tconstructor(protected elementRef: ElementRef, protected i18n: I18n) {\n\t\tsuper();\n\t}\n\n\thandleOpenChange(event: boolean) {\n\t\tthis.open = event;\n\t\tthis.openChange.emit(event);\n\t}\n}\n","import {\n\tHostBinding,\n\tComponent,\n\tInput,\n\tElementRef,\n\tOutput,\n\tEventEmitter,\n\tAfterViewInit\n} from \"@angular/core\";\n\n/**\n * Available HTML anchor targets\n */\nexport enum Target {\n\tself = \"_self\",\n\tblank = \"_blank\",\n\tparent = \"_parent\",\n\ttop = \"_top\"\n}\n\n/**\n * Security HTML anchor rel when target is set\n */\nconst REL = \"noreferrer noopener\";\n\n/**\n * `OverflowMenuOption` represents a single option in an overflow menu\n *\n * Presently it has three possible states - normal, disabled, and danger:\n * ```\n * <cds-overflow-menu-option>Simple option</cds-overflow-menu-option>\n * <cds-overflow-menu-option disabled=\"true\">Disabled</cds-overflow-menu-option>\n * <cds-overflow-menu-option type=\"danger\">Danger option</cds-overflow-menu-option>\n * ```\n *\n * For content that expands beyond the overflow menu `OverflowMenuOption` automatically adds a title attribute.\n */\n@Component({\n\tselector: \"cds-overflow-menu-option, ibm-overflow-menu-option\",\n\ttemplate: `\n\t\t<button\n\t\t\t*ngIf=\"!href\"\n\t\t\tclass=\"cds--overflow-menu-options__btn {{innerClass}}\"\n\t\t\trole=\"menuitem\"\n\t\t\t[tabindex]=\"tabIndex\"\n\t\t\t(focus)=\"onFocus()\"\n\t\t\t(blur)=\"onBlur()\"\n\t\t\t(click)=\"onClick()\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[attr.title]=\"title\">\n\t\t\t<ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\n\t\t</button>\n\n\t\t<a\n\t\t\t*ngIf=\"href\"\n\t\t\tclass=\"cds--overflow-menu-options__btn {{innerClass}}\"\n\t\t\trole=\"menuitem\"\n\t\t\t[tabindex]=\"tabIndex\"\n\t\t\t(focus)=\"onFocus()\"\n\t\t\t(blur)=\"onBlur()\"\n\t\t\t(click)=\"onClick()\"\n\t\t\t[attr.disabled]=\"disabled\"\n\t\t\t[href]=\"href\"\n\t\t\t[attr.target]=\"target\"\n\t\t\t[attr.rel]=\"rel\"\n\t\t\t[attr.title]=\"title\">\n\t\t\t<ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\n\t\t</a>\n\n\t\t<ng-template #tempOutlet>\n\t\t\t<div class=\"cds--overflow-menu-options__option-content\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</div>\n\t\t</ng-template>\n\t`\n})\nexport class OverflowMenuOption implements AfterViewInit {\n\t@HostBinding(\"class.cds--overflow-menu-options__option\") optionClass = true;\n\t@HostBinding(\"attr.role\") role = \"presentation\";\n\n\t@HostBinding(\"class.cds--overflow-menu-options__option--danger\")\n\tpublic get isDanger(): Boolean {\n\t\treturn this.type === \"danger\";\n\t}\n\n\t@HostBinding(\"class.cds--overflow-menu-options__option--disabled\")\n\tpublic get isDisabled(): Boolean {\n\t\treturn this.disabled;\n\t}\n\t/**\n\t * Set to `true` to display a dividing line above this option\n\t */\n\t@HostBinding(\"class.cds--overflow-menu--divider\") @Input() divider = false;\n\t/**\n\t * toggles between `normal` and `danger` states\n\t */\n\t@Input() type: \"normal\" | \"danger\" = \"normal\";\n\t/**\n\t * disable/enable interactions\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * If it's an anchor, this is its location\n\t */\n\t@Input() href: string;\n\t/**\n\t * Allows to add a target to the anchor\n\t */\n\t@Input() set target(value: Target) {\n\t\tif (!Object.values(Target).includes(value)) {\n\t\t\tconsole.warn(\n`\\`target\\` must have one of the following values: ${Object.values(Target).join(\", \")}.\nPlease use the \\`Target\\` enum exported by carbon-components-angular`);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._target = value;\n\t}\n\t/**\n\t * Apply a custom class to the inner button/anchor\n\t */\n\t@Input() innerClass = \"\";\n\n\tget target() {\n\t\treturn this._target;\n\t}\n\t/**\n\t * rel only returns its value if target is defined\n\t */\n\tget rel() {\n\t\treturn this._target ? REL : null;\n\t}\n\n\t@Output() selected: EventEmitter<any> = new EventEmitter();\n\n\tpublic tabIndex = -1;\n\t// note: title must be a real attribute (i.e. not a getter) as of Angular@6 due to\n\t// change after checked errors\n\tpublic title = null;\n\n\tprotected _target: Target;\n\n\tconstructor(protected elementRef: ElementRef) {}\n\n\tonClick() {\n\t\tthis.selected.emit();\n\t}\n\n\tonFocus() {\n\t\tsetTimeout(() => this.tabIndex = 0);\n\t}\n\n\tonBlur() {\n\t\tsetTimeout(() => this.tabIndex = -1);\n\t}\n\n\tngAfterViewInit() {\n\t\tconst button = this.elementRef.nativeElement.querySelector(\"button, a\");\n\t\tconst textContainer = button.querySelector(\".cds--overflow-menu-options__option-content\");\n\t\tif (textContainer.scrollWidth > textContainer.offsetWidth) {\n\t\t\tthis.title = button.textContent;\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { DialogService } from \"./dialog.service\";\nimport { Dialog } from \"./dialog.component\";\nimport { DialogDirective } from \"./dialog.directive\";\n\nimport { OverflowMenu } from \"./overflow-menu/overflow-menu.component\";\nimport { OverflowMenuPane } from \"./overflow-menu/overflow-menu-pane.component\";\nimport { OverflowMenuCustomPane } from \"./overflow-menu/overflow-menu-custom-pane.component\";\nimport { OverflowMenuDirective } from \"./overflow-menu/overflow-menu.directive\";\nimport { OverflowMenuOption } from \"./overflow-menu/overflow-menu-option.component\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { PlaceholderModule } from \"carbon-components-angular/placeholder\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { TooltipModule } from \"carbon-components-angular/tooltip\";\n\n@NgModule({\n\tdeclarations: [\n\t\tDialog,\n\t\tOverflowMenu,\n\t\tOverflowMenuPane,\n\t\tOverflowMenuCustomPane,\n\t\tDialogDirective,\n\t\tOverflowMenuDirective,\n\t\tOverflowMenuOption\n\t],\n\texports: [\n\t\tDialog,\n\t\tOverflowMenu,\n\t\tOverflowMenuPane,\n\t\tOverflowMenuCustomPane,\n\t\tDialogDirective,\n\t\tOverflowMenuDirective,\n\t\tOverflowMenuOption\n\t],\n\tproviders: [ DialogService ],\n\timports: [\n\t\tCommonModule,\n\t\tI18nModule,\n\t\tPlaceholderModule,\n\t\tExperimentalModule,\n\t\tUtilsModule,\n\t\tIconModule,\n\t\tButtonModule,\n\t\tTooltipModule\n\t]\n})\nexport class DialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DialogService","i2","i3","i4","i6.OverflowMenuDirective"],"mappings":"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"}
@@ -6,7 +6,8 @@ import { merge } from 'carbon-components-angular/utils';
6
6
 
7
7
  var EN = {
8
8
  "BREADCRUMB": {
9
- "LABEL": "Breadcrumb"
9
+ "LABEL": "Breadcrumb",
10
+ "OVERFLOW_MENU_DESCRIPTION": "Options"
10
11
  },
11
12
  "CODE_SNIPPET": {
12
13
  "CODE_SNIPPET_TEXT": "Code Snippet Text",
@@ -60,7 +61,8 @@ var EN = {
60
61
  "DECREMENT": "Decrement value"
61
62
  },
62
63
  "OVERFLOW_MENU": {
63
- "OVERFLOW": "Overflow"
64
+ "OVERFLOW": "Overflow",
65
+ "ICON_DESCRIPTION": "Options"
64
66
  },
65
67
  "SEARCH": {
66
68
  "LABEL": "Search",
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-i18n.mjs","sources":["../../src/i18n/en.ts","../../src/i18n/i18n.service.ts","../../src/i18n/replace.pipe.ts","../../src/i18n/i18n.module.ts","../../src/i18n/carbon-components-angular-i18n.ts"],"sourcesContent":["export default {\n\t\"BREADCRUMB\": {\n\t\t\"LABEL\": \"Breadcrumb\"\n\t},\n\t\"CODE_SNIPPET\": {\n\t\t\"CODE_SNIPPET_TEXT\": \"Code Snippet Text\",\n\t\t\"SHOW_MORE\": \"Show more\",\n\t\t\"SHOW_LESS\": \"Show less\",\n\t\t\"SHOW_MORE_ICON\": \"Show more icon\",\n\t\t\"COPY_CODE\": \"Copy code\",\n\t\t\"COPIED\": \"Copied!\"\n\t},\n\t\"COMBOBOX\": {\n\t\t\"PLACEHOLDER\": \"Filter...\",\n\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\"CLEAR_SELECTED\": \"Clear selected item\",\n\t\t\"A11Y\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\",\n\t\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\t\"CLEAR_SELECTED\": \"Clear Selection\"\n\t\t}\n\t},\n\t\"DROPDOWN\": {\n\t\t\"OPEN\": \"Open menu\",\n\t\t\"SELECTED\": \"Selected\",\n\t\t\"CLEAR\": \"Clear all selected items\",\n\t\t\"FILTER\": {\n\t\t\t\"SELECTED_ONLY\": \"Show selected only\",\n\t\t\t\"SEARCH\": \"Search\",\n\t\t\t\"NO_RESULTS\": \"No search results\",\n\t\t\t\"RESET_SEARCH\": \"Reset search\"\n\t\t}\n\t},\n\t\"DROPDOWN_LIST\": {\n\t\t\"LABEL\": \"Listbox\"\n\t},\n\t\"FILE_UPLOADER\": {\n\t\t\"CHECKMARK\": \"Checkmark\",\n\t\t\"OPEN\": \"Add file\",\n\t\t\"REMOVE_BUTTON\": \"Close button\"\n\t},\n\t\"LOADING\": {\n\t\t\"TITLE\": \"Loading\"\n\t},\n\t\"MODAL\": {\n\t\t\"CLOSE\": \"Close modal\"\n\t},\n\t\"NOTIFICATION\": {\n\t\t\"CLOSE_BUTTON\": \"Close alert notification\"\n\t},\n\t\"NUMBER\": {\n\t\t\"INCREMENT\": \"Increment value\",\n\t\t\"DECREMENT\": \"Decrement value\"\n\t},\n\t\"OVERFLOW_MENU\": {\n\t\t\"OVERFLOW\": \"Overflow\"\n\t},\n\t\"SEARCH\": {\n\t\t\"LABEL\": \"Search\",\n\t\t\"PLACEHOLDER\": \"Search\",\n\t\t\"CLEAR_BUTTON\": \"Clear search input\"\n\t},\n\t\"PAGINATION\": {\n\t\t\"ITEMS_PER_PAGE\": \"Items per page:\",\n\t\t\"OPEN_LIST_OF_OPTIONS\": \"Open list of options\",\n\t\t\"BACKWARD\": \"Backward\",\n\t\t\"FORWARD\": \"Forward\",\n\t\t\"TOTAL_ITEMS_UNKNOWN\": \"{{start}}-{{end}} items\",\n\t\t\"TOTAL_ITEMS\": \"{{start}}-{{end}} of {{total}} items\",\n\t\t\"TOTAL_ITEM\": \"{{start}}-{{end}} of {{total}} item\",\n\t\t\"PAGE\": \"page\",\n\t\t\"OF_LAST_PAGES\": \"of {{last}} pages\",\n\t\t\"OF_LAST_PAGE\": \"of {{last}} page\",\n\t\t\"NEXT\": \"Next\",\n\t\t\"PREVIOUS\": \"Previous\",\n\t\t\"SELECT_ARIA\": \"Select page number\"\n\t},\n\t\"PROGRESS_INDICATOR\": {\n\t\t\"CURRENT\": \"Current\",\n\t\t\"INCOMPLETE\": \"Incomplete\",\n\t\t\"COMPLETE\": \"Complete\",\n\t\t\"INVALID\": \"Invalid\"\n\t},\n\t\"TABLE\": {\n\t\t\"FILTER\": \"Filter\",\n\t\t\"END_OF_DATA\": \"You've reached the end of your content\",\n\t\t\"SCROLL_TOP\": \"Scroll to top\",\n\t\t\"CHECKBOX_HEADER\": \"Select all rows\",\n\t\t\"CHECKBOX_ROW\": \"Select {{value}}\",\n\t\t\"EXPAND_BUTTON\": \"Expand row\",\n\t\t\"EXPAND_ALL_BUTTON\": \"Expand all rows\",\n\t\t\"SORT_DESCENDING\": \"Sort rows by this header in descending order\",\n\t\t\"SORT_ASCENDING\": \"Sort rows by this header in ascending order\",\n\t\t\"ROW\": \"row\"\n\t},\n\t\"TABLE_TOOLBAR\": {\n\t\t\"ACTION_BAR\": \"Table action bar\",\n\t\t\"BATCH_TEXT\": \"\",\n\t\t\"BATCH_TEXT_SINGLE\": \"1 item selected\",\n\t\t\"BATCH_TEXT_MULTIPLE\": \"{{count}} items selected\",\n\t\t\"CANCEL\": \"Cancel\"\n\t},\n\t\"TABS\": {\n\t\t\"BUTTON_ARIA_LEFT\": \"Go to the previous tab\",\n\t\t\"BUTTON_ARIA_RIGHT\": \"Go to the next tab\",\n\t\t\"HEADER_ARIA_LABEL\": \"List of tabs\"\n\t},\n\t\"TILES\": {\n\t\t\"TILE\": \"tile\",\n\t\t\"EXPAND\": \"Expand\",\n\t\t\"COLLAPSE\": \"Collapse\"\n\t},\n\t\"TOGGLE\": {\n\t\t\"OFF\": \"Off\",\n\t\t\"ON\": \"On\"\n\t},\n\t\"UI_SHELL\": {\n\t\t\"SKIP_TO\": \"Skip to content\",\n\t\t\"HEADER\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\"\n\t\t},\n\t\t\"SIDE_NAV\": {\n\t\t\t\"TOGGLE_OPEN\": \"Open\",\n\t\t\t\"TOGGLE_CLOSE\": \"Close\"\n\t\t}\n\t}\n};\n","import { Injectable } from \"@angular/core\";\nimport {\n\tBehaviorSubject,\n\tObservable,\n\tisObservable,\n\tiif,\n\tSubscription\n} from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { merge } from \"carbon-components-angular/utils\";\n\nimport EN from \"./en\";\n\n/**\n * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n *\n * The keys specify the variable name in the string.\n *\n * Example:\n * ```typescript\n * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n *\n * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n * ```\n *\n * Produces: `\"test asdf\"`\n *\n * @param subject the translation to replace variables on\n * @param variables object of variables to replace\n */\nexport const replace = (subject, variables) => subject.pipe(\n\tmap<string, void>(str => {\n\t\tconst keys = Object.keys(variables);\n\t\tfor (const key of keys) {\n\t\t\tconst value = variables[key];\n\t\t\tstr = str.replace(new RegExp(`{{\\\\s*${key}\\\\s*}}`, \"g\"), value);\n\t\t}\n\t\treturn str;\n\t})\n);\n\n/**\n * Represents an \"overridable\" translation value.\n *\n * Largely an internal usecase. There are situations where we want an `Observable` that\n * can emit events from a centralized source **OR** an `Observable` that will emit events\n * from a component local source. The key example being on/off text in a `Toggle` - In some cases\n * we want the `Toggle` to use `I18n`s global translations, but in others we'd prefer to use a local\n * override. We don't ever need to return to a non-overridden state, but we do need the ability to\n * switch _to_ an overridden sate.\n */\nexport class Overridable {\n\t/**\n\t * The raw value of the translation. Defaults to the string value, but will return the value passed to `override`\n\t *\n\t * @readonly\n\t */\n\tpublic get value(): string | Observable<string> {\n\t\treturn this._value;\n\t}\n\n\tpublic set value(v: string | Observable<string>) {\n\t\tthis.override(v);\n\t}\n\n\t/**\n\t * The translation subject. Returns either a stream of overridden values, or our base translation values.\n\t *\n\t * @readonly\n\t */\n\tpublic get subject(): Observable<string> {\n\t\t/**\n\t\t * since inputs are bound on template instantiation (and thusly will always have _some_ value)\n\t\t * We can use a simple boolean and the `iif` function to determine which subject to return on subscription\n\t\t */\n\t\treturn iif(() => this.isOverridden, this.$override, this.baseTranslation);\n\t}\n\n\t/**\n\t * Overridden value. Accessed by the readonly getter `value` and set through `override`\n\t */\n\tprotected _value: string | Observable<string>;\n\t/**\n\t * Subject of overridden values. Initialized with our default value.\n\t */\n\tprotected $override: BehaviorSubject<string>;\n\t/**\n\t * Our base non-overridden translation.\n\t */\n\tprotected baseTranslation: Observable<string> = this.i18n.get(this.path);\n\n\t/**\n\t * Subscription to the observable provided as an override (if any)\n\t */\n\tprotected subscription: Subscription;\n\t/**\n\t * A boolean to flip between overridden and non-overridden states.\n\t */\n\tprotected isOverridden = false;\n\n\tconstructor(protected path: string, protected i18n: I18n) {\n\t\t/**\n\t\t * ensure `$override` is initialized with the correct default value\n\t\t * in some cases `_value` can get changed for an `Observable` before `$override` is created\n\t\t */\n\t\tconst value = this.i18n.getValueFromPath(this.path) as string;\n\t\tthis.$override = new BehaviorSubject<string>(value);\n\t\tthis._value = value;\n\t}\n\t/**\n\t * Takes a string or an `Observable` that emits strings.\n\t * Overrides the value provided by the `I18n` service.\n\t */\n\toverride(value: string | Observable<string>) {\n\t\tthis.isOverridden = true;\n\t\t// To ensure that there are not multiple subscriptions created for the same observable, we\n\t\t// unsubscribe if a subscription already exists for an observable before creating a new one.\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.unsubscribe();\n\t\t\tthis.subscription = null;\n\t\t}\n\n\t\tthis._value = value;\n\n\t\tif (isObservable(value)) {\n\t\t\tthis.subscription = value.subscribe(v => {\n\t\t\t\tthis.$override.next(v);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.$override.next(value);\n\t\t}\n\t}\n}\n\n/**\n * An object of strings, should follow the same format as src/i18n/en.json\n */\nexport type TranslationStrings = { [key: string]: string };\n\n\n/**\n * The I18n service is a minimal internal singleton service used to supply our components with translated strings.\n *\n * All the components that support I18n also support directly passed strings.\n * Usage of I18n is optional, and it is not recommended for application use (libraries like ngx-translate\n * are a better choice)\n *\n */\n@Injectable()\nexport class I18n {\n\tprotected translationStrings = EN;\n\n\tprotected translations = new Map();\n\n\tprotected locale = new BehaviorSubject(\"en\");\n\n\t/**\n\t * Sets the locale and optionally the translation strings. Locale is used by components that\n\t * are already locale aware (datepicker for example) while the translation strings are used\n\t * for components that are not.\n\t *\n\t * Locales set here will override locales/languages set in components\n\t * @param language an ISO 639-1 language code - https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n\t * @param strings an object of strings, optional\n\t */\n\tpublic setLocale(language: string, strings?: TranslationStrings) {\n\t\tthis.locale.next(language);\n\t\tif (strings) {\n\t\t\tthis.set(strings);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current locale\n\t */\n\tpublic getLocale() {\n\t\treturn this.locale.value;\n\t}\n\n\t/**\n\t * Returns an observable that resolves to the current locale, and will update when changed\n\t */\n\tpublic getLocaleObservable() {\n\t\treturn this.locale.asObservable();\n\t}\n\n\t/**\n\t * Set/update the translations from an object. Also notifies all participating components of the update.\n\t *\n\t * @param strings an object of strings, should follow the same format as src/i18n/en.json\n\t */\n\tpublic set(strings: TranslationStrings) {\n\t\tthis.translationStrings = merge({}, EN, strings);\n\t\t// iterate over all our tracked translations and update each observable\n\t\tconst translations = Array.from(this.translations);\n\t\tfor (const [path, subject] of translations) {\n\t\t\tsubject.next(this.getValueFromPath(path));\n\t\t}\n\t}\n\n\t/**\n\t * When a path is specified returns an observable that will resolve to the translation string value.\n\t *\n\t * Returns the full translations object if path is not specified.\n\t *\n\t * @param path optional, looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic get(path?: string): any {\n\t\tif (!path) {\n\t\t\treturn this.translationStrings;\n\t\t}\n\t\treturn this.getSubject(path);\n\t}\n\n\t/**\n\t * Returns all descendents of some path fragment as an object.\n\t *\n\t * @param partialPath a path fragment, for example `\"NOTIFICATION\"`\n\t */\n\tpublic getMultiple(partialPath: string): { [key: string]: Observable<string> } {\n\t\tconst values = this.getValueFromPath(partialPath);\n\t\tconst subjects = {};\n\t\tfor (const key of Object.keys(values)) {\n\t\t\tif (values[key] === Object(values[key])) {\n\t\t\t\tsubjects[key] = this.getMultiple(`${partialPath}.${key}`);\n\t\t\t} else {\n\t\t\t\tsubjects[key] = this.getSubject(`${partialPath}.${key}`);\n\t\t\t}\n\t\t}\n\t\treturn subjects;\n\t}\n\n\t/**\n\t * Returns an instance of `Overridable` that can be used to optionally override the value provided by `I18n`\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getOverridable(path: string) {\n\t\treturn new Overridable(path, this);\n\t}\n\n\t/**\n\t * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n\t *\n\t * The keys specify the variable name in the string.\n\t *\n\t * Example:\n\t * ```\n\t * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n\t *\n\t * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n\t * ```\n\t *\n\t * Produces: `\"test asdf\"`\n\t *\n\t * @param subject the translation to replace variables on\n\t * @param variables object of variables to replace\n\t */\n\tpublic replace(subject: Observable<string>, variables: { [key: string]: string }) {\n\t\treturn replace(subject, variables);\n\t}\n\n\t/**\n\t * Trys to resolve a value from the provided path.\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getValueFromPath(path): string | { [key: string]: string } {\n\t\tlet value = this.translationStrings;\n\t\tfor (const segment of path.split(\".\")) {\n\t\t\tif (value[segment] !== undefined && value[segment] !== null) {\n\t\t\t\tvalue = value[segment];\n\t\t\t} else {\n\t\t\t\tthrow new Error(`no key ${segment} at ${path}`);\n\t\t\t}\n\t\t}\n\t\treturn value as any;\n\t}\n\n\t/**\n\t * Helper method that returns an observable from the internal cache based on the path\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tprotected getSubject(path: string): Observable<string> {\n\t\ttry {\n\t\t\t// we run this here to validate the path exists before adding it to the translation map\n\t\t\tconst value = this.getValueFromPath(path) as string;\n\t\t\tif (this.translations.has(path)) {\n\t\t\t\treturn this.translations.get(path);\n\t\t\t}\n\t\t\tconst translation = new BehaviorSubject(value);\n\t\t\tthis.translations.set(path, translation);\n\t\t\treturn translation;\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { replace } from \"./i18n.service\";\n\n@Pipe({\n\tname: \"i18nReplace\"\n})\nexport class ReplacePipe implements PipeTransform {\n\ttransform(value, variables) {\n\t\treturn replace(value, variables);\n\t}\n}\n","import { NgModule, SkipSelf, Optional } from \"@angular/core\";\n\nimport { I18n } from \"./i18n.service\";\nimport { ReplacePipe } from \"./replace.pipe\";\n\n// either provides a new instance of I18n, or returns the parent\nexport function I18N_SERVICE_PROVIDER_FACTORY(parentService: I18n) {\n\treturn parentService || new I18n();\n}\n\n// I18n should provide a single instance of itself to ensure that translations are consistent through the app\nexport const I18N_SERVICE_PROVIDER = {\n\tprovide: I18n,\n\tdeps: [[new Optional(), new SkipSelf(), I18n]],\n\tuseFactory: I18N_SERVICE_PROVIDER_FACTORY\n};\n\n@NgModule({\n\tdeclarations: [ReplacePipe],\n\texports: [ReplacePipe],\n\tproviders: [\n\t\tI18n,\n\t\tI18N_SERVICE_PROVIDER\n\t]\n})\nexport class I18nModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-i18n.mjs","sources":["../../src/i18n/en.ts","../../src/i18n/i18n.service.ts","../../src/i18n/replace.pipe.ts","../../src/i18n/i18n.module.ts","../../src/i18n/carbon-components-angular-i18n.ts"],"sourcesContent":["export default {\n\t\"BREADCRUMB\": {\n\t\t\"LABEL\": \"Breadcrumb\",\n\t\t\"OVERFLOW_MENU_DESCRIPTION\": \"Options\"\n\t},\n\t\"CODE_SNIPPET\": {\n\t\t\"CODE_SNIPPET_TEXT\": \"Code Snippet Text\",\n\t\t\"SHOW_MORE\": \"Show more\",\n\t\t\"SHOW_LESS\": \"Show less\",\n\t\t\"SHOW_MORE_ICON\": \"Show more icon\",\n\t\t\"COPY_CODE\": \"Copy code\",\n\t\t\"COPIED\": \"Copied!\"\n\t},\n\t\"COMBOBOX\": {\n\t\t\"PLACEHOLDER\": \"Filter...\",\n\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\"CLEAR_SELECTED\": \"Clear selected item\",\n\t\t\"A11Y\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\",\n\t\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\t\"CLEAR_SELECTED\": \"Clear Selection\"\n\t\t}\n\t},\n\t\"DROPDOWN\": {\n\t\t\"OPEN\": \"Open menu\",\n\t\t\"SELECTED\": \"Selected\",\n\t\t\"CLEAR\": \"Clear all selected items\",\n\t\t\"FILTER\": {\n\t\t\t\"SELECTED_ONLY\": \"Show selected only\",\n\t\t\t\"SEARCH\": \"Search\",\n\t\t\t\"NO_RESULTS\": \"No search results\",\n\t\t\t\"RESET_SEARCH\": \"Reset search\"\n\t\t}\n\t},\n\t\"DROPDOWN_LIST\": {\n\t\t\"LABEL\": \"Listbox\"\n\t},\n\t\"FILE_UPLOADER\": {\n\t\t\"CHECKMARK\": \"Checkmark\",\n\t\t\"OPEN\": \"Add file\",\n\t\t\"REMOVE_BUTTON\": \"Close button\"\n\t},\n\t\"LOADING\": {\n\t\t\"TITLE\": \"Loading\"\n\t},\n\t\"MODAL\": {\n\t\t\"CLOSE\": \"Close modal\"\n\t},\n\t\"NOTIFICATION\": {\n\t\t\"CLOSE_BUTTON\": \"Close alert notification\"\n\t},\n\t\"NUMBER\": {\n\t\t\"INCREMENT\": \"Increment value\",\n\t\t\"DECREMENT\": \"Decrement value\"\n\t},\n\t\"OVERFLOW_MENU\": {\n\t\t\"OVERFLOW\": \"Overflow\",\n\t\t\"ICON_DESCRIPTION\": \"Options\"\n\t},\n\t\"SEARCH\": {\n\t\t\"LABEL\": \"Search\",\n\t\t\"PLACEHOLDER\": \"Search\",\n\t\t\"CLEAR_BUTTON\": \"Clear search input\"\n\t},\n\t\"PAGINATION\": {\n\t\t\"ITEMS_PER_PAGE\": \"Items per page:\",\n\t\t\"OPEN_LIST_OF_OPTIONS\": \"Open list of options\",\n\t\t\"BACKWARD\": \"Backward\",\n\t\t\"FORWARD\": \"Forward\",\n\t\t\"TOTAL_ITEMS_UNKNOWN\": \"{{start}}-{{end}} items\",\n\t\t\"TOTAL_ITEMS\": \"{{start}}-{{end}} of {{total}} items\",\n\t\t\"TOTAL_ITEM\": \"{{start}}-{{end}} of {{total}} item\",\n\t\t\"PAGE\": \"page\",\n\t\t\"OF_LAST_PAGES\": \"of {{last}} pages\",\n\t\t\"OF_LAST_PAGE\": \"of {{last}} page\",\n\t\t\"NEXT\": \"Next\",\n\t\t\"PREVIOUS\": \"Previous\",\n\t\t\"SELECT_ARIA\": \"Select page number\"\n\t},\n\t\"PROGRESS_INDICATOR\": {\n\t\t\"CURRENT\": \"Current\",\n\t\t\"INCOMPLETE\": \"Incomplete\",\n\t\t\"COMPLETE\": \"Complete\",\n\t\t\"INVALID\": \"Invalid\"\n\t},\n\t\"TABLE\": {\n\t\t\"FILTER\": \"Filter\",\n\t\t\"END_OF_DATA\": \"You've reached the end of your content\",\n\t\t\"SCROLL_TOP\": \"Scroll to top\",\n\t\t\"CHECKBOX_HEADER\": \"Select all rows\",\n\t\t\"CHECKBOX_ROW\": \"Select {{value}}\",\n\t\t\"EXPAND_BUTTON\": \"Expand row\",\n\t\t\"EXPAND_ALL_BUTTON\": \"Expand all rows\",\n\t\t\"SORT_DESCENDING\": \"Sort rows by this header in descending order\",\n\t\t\"SORT_ASCENDING\": \"Sort rows by this header in ascending order\",\n\t\t\"ROW\": \"row\"\n\t},\n\t\"TABLE_TOOLBAR\": {\n\t\t\"ACTION_BAR\": \"Table action bar\",\n\t\t\"BATCH_TEXT\": \"\",\n\t\t\"BATCH_TEXT_SINGLE\": \"1 item selected\",\n\t\t\"BATCH_TEXT_MULTIPLE\": \"{{count}} items selected\",\n\t\t\"CANCEL\": \"Cancel\"\n\t},\n\t\"TABS\": {\n\t\t\"BUTTON_ARIA_LEFT\": \"Go to the previous tab\",\n\t\t\"BUTTON_ARIA_RIGHT\": \"Go to the next tab\",\n\t\t\"HEADER_ARIA_LABEL\": \"List of tabs\"\n\t},\n\t\"TILES\": {\n\t\t\"TILE\": \"tile\",\n\t\t\"EXPAND\": \"Expand\",\n\t\t\"COLLAPSE\": \"Collapse\"\n\t},\n\t\"TOGGLE\": {\n\t\t\"OFF\": \"Off\",\n\t\t\"ON\": \"On\"\n\t},\n\t\"UI_SHELL\": {\n\t\t\"SKIP_TO\": \"Skip to content\",\n\t\t\"HEADER\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\"\n\t\t},\n\t\t\"SIDE_NAV\": {\n\t\t\t\"TOGGLE_OPEN\": \"Open\",\n\t\t\t\"TOGGLE_CLOSE\": \"Close\"\n\t\t}\n\t}\n};\n","import { Injectable } from \"@angular/core\";\nimport {\n\tBehaviorSubject,\n\tObservable,\n\tisObservable,\n\tiif,\n\tSubscription\n} from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { merge } from \"carbon-components-angular/utils\";\n\nimport EN from \"./en\";\n\n/**\n * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n *\n * The keys specify the variable name in the string.\n *\n * Example:\n * ```typescript\n * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n *\n * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n * ```\n *\n * Produces: `\"test asdf\"`\n *\n * @param subject the translation to replace variables on\n * @param variables object of variables to replace\n */\nexport const replace = (subject, variables) => subject.pipe(\n\tmap<string, void>(str => {\n\t\tconst keys = Object.keys(variables);\n\t\tfor (const key of keys) {\n\t\t\tconst value = variables[key];\n\t\t\tstr = str.replace(new RegExp(`{{\\\\s*${key}\\\\s*}}`, \"g\"), value);\n\t\t}\n\t\treturn str;\n\t})\n);\n\n/**\n * Represents an \"overridable\" translation value.\n *\n * Largely an internal usecase. There are situations where we want an `Observable` that\n * can emit events from a centralized source **OR** an `Observable` that will emit events\n * from a component local source. The key example being on/off text in a `Toggle` - In some cases\n * we want the `Toggle` to use `I18n`s global translations, but in others we'd prefer to use a local\n * override. We don't ever need to return to a non-overridden state, but we do need the ability to\n * switch _to_ an overridden sate.\n */\nexport class Overridable {\n\t/**\n\t * The raw value of the translation. Defaults to the string value, but will return the value passed to `override`\n\t *\n\t * @readonly\n\t */\n\tpublic get value(): string | Observable<string> {\n\t\treturn this._value;\n\t}\n\n\tpublic set value(v: string | Observable<string>) {\n\t\tthis.override(v);\n\t}\n\n\t/**\n\t * The translation subject. Returns either a stream of overridden values, or our base translation values.\n\t *\n\t * @readonly\n\t */\n\tpublic get subject(): Observable<string> {\n\t\t/**\n\t\t * since inputs are bound on template instantiation (and thusly will always have _some_ value)\n\t\t * We can use a simple boolean and the `iif` function to determine which subject to return on subscription\n\t\t */\n\t\treturn iif(() => this.isOverridden, this.$override, this.baseTranslation);\n\t}\n\n\t/**\n\t * Overridden value. Accessed by the readonly getter `value` and set through `override`\n\t */\n\tprotected _value: string | Observable<string>;\n\t/**\n\t * Subject of overridden values. Initialized with our default value.\n\t */\n\tprotected $override: BehaviorSubject<string>;\n\t/**\n\t * Our base non-overridden translation.\n\t */\n\tprotected baseTranslation: Observable<string> = this.i18n.get(this.path);\n\n\t/**\n\t * Subscription to the observable provided as an override (if any)\n\t */\n\tprotected subscription: Subscription;\n\t/**\n\t * A boolean to flip between overridden and non-overridden states.\n\t */\n\tprotected isOverridden = false;\n\n\tconstructor(protected path: string, protected i18n: I18n) {\n\t\t/**\n\t\t * ensure `$override` is initialized with the correct default value\n\t\t * in some cases `_value` can get changed for an `Observable` before `$override` is created\n\t\t */\n\t\tconst value = this.i18n.getValueFromPath(this.path) as string;\n\t\tthis.$override = new BehaviorSubject<string>(value);\n\t\tthis._value = value;\n\t}\n\t/**\n\t * Takes a string or an `Observable` that emits strings.\n\t * Overrides the value provided by the `I18n` service.\n\t */\n\toverride(value: string | Observable<string>) {\n\t\tthis.isOverridden = true;\n\t\t// To ensure that there are not multiple subscriptions created for the same observable, we\n\t\t// unsubscribe if a subscription already exists for an observable before creating a new one.\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.unsubscribe();\n\t\t\tthis.subscription = null;\n\t\t}\n\n\t\tthis._value = value;\n\n\t\tif (isObservable(value)) {\n\t\t\tthis.subscription = value.subscribe(v => {\n\t\t\t\tthis.$override.next(v);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.$override.next(value);\n\t\t}\n\t}\n}\n\n/**\n * An object of strings, should follow the same format as src/i18n/en.json\n */\nexport type TranslationStrings = { [key: string]: string };\n\n\n/**\n * The I18n service is a minimal internal singleton service used to supply our components with translated strings.\n *\n * All the components that support I18n also support directly passed strings.\n * Usage of I18n is optional, and it is not recommended for application use (libraries like ngx-translate\n * are a better choice)\n *\n */\n@Injectable()\nexport class I18n {\n\tprotected translationStrings = EN;\n\n\tprotected translations = new Map();\n\n\tprotected locale = new BehaviorSubject(\"en\");\n\n\t/**\n\t * Sets the locale and optionally the translation strings. Locale is used by components that\n\t * are already locale aware (datepicker for example) while the translation strings are used\n\t * for components that are not.\n\t *\n\t * Locales set here will override locales/languages set in components\n\t * @param language an ISO 639-1 language code - https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n\t * @param strings an object of strings, optional\n\t */\n\tpublic setLocale(language: string, strings?: TranslationStrings) {\n\t\tthis.locale.next(language);\n\t\tif (strings) {\n\t\t\tthis.set(strings);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current locale\n\t */\n\tpublic getLocale() {\n\t\treturn this.locale.value;\n\t}\n\n\t/**\n\t * Returns an observable that resolves to the current locale, and will update when changed\n\t */\n\tpublic getLocaleObservable() {\n\t\treturn this.locale.asObservable();\n\t}\n\n\t/**\n\t * Set/update the translations from an object. Also notifies all participating components of the update.\n\t *\n\t * @param strings an object of strings, should follow the same format as src/i18n/en.json\n\t */\n\tpublic set(strings: TranslationStrings) {\n\t\tthis.translationStrings = merge({}, EN, strings);\n\t\t// iterate over all our tracked translations and update each observable\n\t\tconst translations = Array.from(this.translations);\n\t\tfor (const [path, subject] of translations) {\n\t\t\tsubject.next(this.getValueFromPath(path));\n\t\t}\n\t}\n\n\t/**\n\t * When a path is specified returns an observable that will resolve to the translation string value.\n\t *\n\t * Returns the full translations object if path is not specified.\n\t *\n\t * @param path optional, looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic get(path?: string): any {\n\t\tif (!path) {\n\t\t\treturn this.translationStrings;\n\t\t}\n\t\treturn this.getSubject(path);\n\t}\n\n\t/**\n\t * Returns all descendents of some path fragment as an object.\n\t *\n\t * @param partialPath a path fragment, for example `\"NOTIFICATION\"`\n\t */\n\tpublic getMultiple(partialPath: string): { [key: string]: Observable<string> } {\n\t\tconst values = this.getValueFromPath(partialPath);\n\t\tconst subjects = {};\n\t\tfor (const key of Object.keys(values)) {\n\t\t\tif (values[key] === Object(values[key])) {\n\t\t\t\tsubjects[key] = this.getMultiple(`${partialPath}.${key}`);\n\t\t\t} else {\n\t\t\t\tsubjects[key] = this.getSubject(`${partialPath}.${key}`);\n\t\t\t}\n\t\t}\n\t\treturn subjects;\n\t}\n\n\t/**\n\t * Returns an instance of `Overridable` that can be used to optionally override the value provided by `I18n`\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getOverridable(path: string) {\n\t\treturn new Overridable(path, this);\n\t}\n\n\t/**\n\t * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n\t *\n\t * The keys specify the variable name in the string.\n\t *\n\t * Example:\n\t * ```\n\t * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n\t *\n\t * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n\t * ```\n\t *\n\t * Produces: `\"test asdf\"`\n\t *\n\t * @param subject the translation to replace variables on\n\t * @param variables object of variables to replace\n\t */\n\tpublic replace(subject: Observable<string>, variables: { [key: string]: string }) {\n\t\treturn replace(subject, variables);\n\t}\n\n\t/**\n\t * Trys to resolve a value from the provided path.\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getValueFromPath(path): string | { [key: string]: string } {\n\t\tlet value = this.translationStrings;\n\t\tfor (const segment of path.split(\".\")) {\n\t\t\tif (value[segment] !== undefined && value[segment] !== null) {\n\t\t\t\tvalue = value[segment];\n\t\t\t} else {\n\t\t\t\tthrow new Error(`no key ${segment} at ${path}`);\n\t\t\t}\n\t\t}\n\t\treturn value as any;\n\t}\n\n\t/**\n\t * Helper method that returns an observable from the internal cache based on the path\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tprotected getSubject(path: string): Observable<string> {\n\t\ttry {\n\t\t\t// we run this here to validate the path exists before adding it to the translation map\n\t\t\tconst value = this.getValueFromPath(path) as string;\n\t\t\tif (this.translations.has(path)) {\n\t\t\t\treturn this.translations.get(path);\n\t\t\t}\n\t\t\tconst translation = new BehaviorSubject(value);\n\t\t\tthis.translations.set(path, translation);\n\t\t\treturn translation;\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { replace } from \"./i18n.service\";\n\n@Pipe({\n\tname: \"i18nReplace\"\n})\nexport class ReplacePipe implements PipeTransform {\n\ttransform(value, variables) {\n\t\treturn replace(value, variables);\n\t}\n}\n","import { NgModule, SkipSelf, Optional } from \"@angular/core\";\n\nimport { I18n } from \"./i18n.service\";\nimport { ReplacePipe } from \"./replace.pipe\";\n\n// either provides a new instance of I18n, or returns the parent\nexport function I18N_SERVICE_PROVIDER_FACTORY(parentService: I18n) {\n\treturn parentService || new I18n();\n}\n\n// I18n should provide a single instance of itself to ensure that translations are consistent through the app\nexport const I18N_SERVICE_PROVIDER = {\n\tprovide: I18n,\n\tdeps: [[new Optional(), new SkipSelf(), I18n]],\n\tuseFactory: I18N_SERVICE_PROVIDER_FACTORY\n};\n\n@NgModule({\n\tdeclarations: [ReplacePipe],\n\texports: [ReplacePipe],\n\tproviders: [\n\t\tI18n,\n\t\tI18N_SERVICE_PROVIDER\n\t]\n})\nexport class I18nModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/i18n/en.d.ts CHANGED
@@ -21,6 +21,7 @@
21
21
  declare const _default: {
22
22
  BREADCRUMB: {
23
23
  LABEL: string;
24
+ OVERFLOW_MENU_DESCRIPTION: string;
24
25
  };
25
26
  CODE_SNIPPET: {
26
27
  CODE_SNIPPET_TEXT: string;
@@ -75,6 +76,7 @@ declare const _default: {
75
76
  };
76
77
  OVERFLOW_MENU: {
77
78
  OVERFLOW: string;
79
+ ICON_DESCRIPTION: string;
78
80
  };
79
81
  SEARCH: {
80
82
  LABEL: string;
@@ -109,6 +109,7 @@ export declare class I18n {
109
109
  protected translationStrings: {
110
110
  BREADCRUMB: {
111
111
  LABEL: string;
112
+ OVERFLOW_MENU_DESCRIPTION: string;
112
113
  };
113
114
  CODE_SNIPPET: {
114
115
  CODE_SNIPPET_TEXT: string;
@@ -163,6 +164,7 @@ export declare class I18n {
163
164
  };
164
165
  OVERFLOW_MENU: {
165
166
  OVERFLOW: string;
167
+ ICON_DESCRIPTION: string;
166
168
  };
167
169
  SEARCH: {
168
170
  LABEL: string;
@@ -180,7 +182,11 @@ export declare class I18n {
180
182
  PAGE: string;
181
183
  OF_LAST_PAGES: string;
182
184
  OF_LAST_PAGE: string;
183
- NEXT: string;
185
+ NEXT: string; /**
186
+ * The translation subject. Returns either a stream of overridden values, or our base translation values.
187
+ *
188
+ * @readonly
189
+ */
184
190
  PREVIOUS: string;
185
191
  SELECT_ARIA: string;
186
192
  };
@@ -205,11 +211,11 @@ export declare class I18n {
205
211
  TABLE_TOOLBAR: {
206
212
  ACTION_BAR: string;
207
213
  BATCH_TEXT: string;
208
- BATCH_TEXT_SINGLE: string;
209
- BATCH_TEXT_MULTIPLE: string;
210
- CANCEL: string; /**
214
+ BATCH_TEXT_SINGLE: string; /**
211
215
  * Our base non-overridden translation.
212
216
  */
217
+ BATCH_TEXT_MULTIPLE: string;
218
+ CANCEL: string;
213
219
  };
214
220
  TABS: {
215
221
  BUTTON_ARIA_LEFT: string;