UNPKG

carbon-components-angular

Version:
1 lines 3.19 MB
(self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[]).push([[179],{"./.storybook/preview.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{parameters:()=>parameters});var es=__webpack_require__("./node_modules/@carbon/layout/es/index.js"),angular=__webpack_require__("./node_modules/@storybook/addon-docs/angular/index.js");const documentation_namespaceObject=JSON.parse('{"qc":[{"name":"ReplacePipe","id":"pipe-ReplacePipe-af180d25771e8bd0dadcbf002491aeb14ddd48c08d7a94be8b2d3eee8393f755526f7dd4584df386e7bb460a49e4039336574a1c5e6123cd87fd191a600ff39b","file":"src/i18n/replace.pipe.ts","type":"pipe","deprecated":false,"deprecationMessage":"","description":"","rawdescription":"\\n","properties":[],"methods":[{"name":"transform","args":[{"name":"value","type":"","deprecated":false,"deprecationMessage":""},{"name":"variables","type":"","deprecated":false,"deprecationMessage":""}],"optional":false,"returnType":"any","typeParameters":[],"line":8,"deprecated":false,"deprecationMessage":"","jsdoctags":[{"name":"value","type":"","deprecated":false,"deprecationMessage":"","tagName":{"text":"param"}},{"name":"variables","type":"","deprecated":false,"deprecationMessage":"","tagName":{"text":"param"}}]}],"standalone":false,"ngname":"i18nReplace","sourceCode":"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"}],"eq":[{"name":"ActionableContent","id":"interface-ActionableContent-1e6a0d1f177d4ea78a97cdf66c1ab84910c5ffe5331a4e85a112f2426a6a73d2ffb92831d54dc953f511f39496ccfbc691a60a13597c3eb31b601738df0cfaf3","file":"src/notification/notification-content.interface.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"import { Subject } from \\"rxjs\\";\\nimport { TemplateRef } from \\"@angular/core\\";\\n\\nexport type NotificationType = \\"error\\" | \\"info\\" | \\"info-square\\" | \\"success\\" | \\"warning\\" | \\"warning-alt\\";\\nexport type NotificationVariants = \\"inline\\" | \\"toast\\";\\n\\nexport interface NotificationContent {\\n\\t[key: string]: any;\\n\\ttype: NotificationType;\\n\\ttitle: string;\\n\\ttarget?: string;\\n\\tduration?: number;\\n\\tsmart?: boolean;\\n\\tcloseLabel?: any;\\n\\tmessage?: string;\\n\\tshowClose?: boolean;\\n\\tlowContrast?: boolean;\\n\\ttemplate?: TemplateRef<any>;\\n}\\n\\nexport interface ActionableContent extends NotificationContent {\\n\\tactionsTemplate?: TemplateRef<any>;\\n\\tactions?: NotificationAction[];\\n\\tlinks?: NotificationLink[];\\n\\tvariant?: NotificationVariants;\\n}\\n\\nexport interface ToastContent extends NotificationContent {\\n\\tsubtitle: string;\\n\\tcaption: string;\\n}\\n\\nexport interface NotificationAction {\\n\\ttext: string;\\n\\tclick: Subject<{ event: Event, action: any }> | ((event: { event: Event, action: any }) => any);\\n\\t[key: string]: any;\\n}\\n\\nexport interface NotificationLink {\\n\\ttext: string;\\n\\thref: string;\\n}\\n","properties":[{"name":"actions","deprecated":false,"deprecationMessage":"","type":"NotificationAction[]","optional":true,"description":"","line":23},{"name":"actionsTemplate","deprecated":false,"deprecationMessage":"","type":"TemplateRef<any>","optional":true,"description":"","line":22},{"name":"links","deprecated":false,"deprecationMessage":"","type":"NotificationLink[]","optional":true,"description":"","line":24},{"name":"variant","deprecated":false,"deprecationMessage":"","type":"NotificationVariants","optional":true,"description":"","line":25}],"indexSignatures":[],"kind":171,"methods":[],"extends":["NotificationContent"]},{"name":"AlertModalData","id":"interface-AlertModalData-89b613a70b4a567cdfbde1b5723d43a05d54fd0b1ff69c173e9562ef34090a33b30ebd57e9cdd3d66b1a5c52d0768b8aa79dbb3ac2b99784307291bcba149369","file":"src/modal/alert-modal.interface.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"export enum AlertModalType {\\n\\tdefault = \\"default\\",\\n\\tdanger = \\"danger\\"\\n}\\n\\nexport interface AlertModalData {\\n\\t/**\\n\\t * type of the modal\\n\\t */\\n\\ttype?: AlertModalType;\\n\\t/**\\n\\t * Additional label shown over the modal\\n\\t */\\n\\tlabel?: string;\\n\\t/**\\n\\t * Primary title for the modal\\n\\t */\\n\\ttitle?: string;\\n\\t/**\\n\\t * Content for the modal body, could include HTML tags\\n\\t */\\n\\tcontent?: string;\\n\\t/**\\n\\t * Size of the modal to display.\\n\\t */\\n\\tsize?: \\"xs\\" | \\"sm\\" | \\"md\\" | \\"lg\\";\\n\\t/**\\n\\t * Array of `ModalButton`s\\n\\t */\\n\\tbuttons?: Array<ModalButton>;\\n\\t/**\\n\\t * Specify whether the modal contains scrolling content. This property overrides the automatic detection\\n\\t * of the existence of scrolling content. Set this property to `true` to force overflow indicator to\\n\\t * show up or to `false` to force overflow indicator to disappear.\\n\\t * It is set to `null` by default which indicates not to override automatic detection.\\n\\t */\\n\\thasScrollingContent?: boolean;\\n\\t/**\\n\\t * Callback for non-specific close events. `return false;` to prevent the modal from closing\\n\\t * Property trigger has a value of `overlay` or `close`\\n\\t */\\n\\tclose?: (trigger?: \\"overlay\\" | \\"close\\") => boolean;\\n\\t/**\\n\\t * Set to `false` to hide the header\'s close button.\\n\\t */\\n\\tshowCloseButton?: boolean;\\n}\\n\\nexport enum ModalButtonType {\\n\\tprimary = \\"primary\\",\\n\\tsecondary = \\"secondary\\",\\n\\ttertiary = \\"tertiary\\",\\n\\tghost = \\"ghost\\",\\n\\tdanger = \\"danger\\",\\n\\tdanger_primary = \\"danger--primary\\"\\n}\\n\\nexport interface ModalButton {\\n\\t/**\\n\\t * Display value of the button\\n\\t */\\n\\ttext: string;\\n\\t/**\\n\\t * Optional unique ID for the button\\n\\t */\\n\\tid?: string;\\n\\t/**\\n\\t * Button type\\n\\t */\\n\\ttype?: ModalButtonType;\\n\\t/**\\n\\t * Callback for the button `click` event\\n\\t */\\n\\tclick?: Function;\\n}\\n","properties":[{"name":"buttons","deprecated":false,"deprecationMessage":"","type":"Array<ModalButton>","optional":true,"description":"<p>Array of <code>ModalButton</code>s</p>\\n","line":30,"rawdescription":"\\n\\nArray of `ModalButton`s\\n"},{"name":"close","deprecated":false,"deprecationMessage":"","type":"function","optional":true,"description":"<p>Callback for non-specific close events. <code>return false;</code> to prevent the modal from closing\\nProperty trigger has a value of <code>overlay</code> or <code>close</code></p>\\n","line":42,"rawdescription":"\\n\\nCallback for non-specific close events. `return false;` to prevent the modal from closing\\nProperty trigger has a value of `overlay` or `close`\\n"},{"name":"content","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>Content for the modal body, could include HTML tags</p>\\n","line":22,"rawdescription":"\\n\\nContent for the modal body, could include HTML tags\\n"},{"name":"hasScrollingContent","deprecated":false,"deprecationMessage":"","type":"boolean","optional":true,"description":"<p>Specify whether the modal contains scrolling content. This property overrides the automatic detection\\nof the existence of scrolling content. Set this property to <code>true</code> to force overflow indicator to\\nshow up or to <code>false</code> to force overflow indicator to disappear.\\nIt is set to <code>null</code> by default which indicates not to override automatic detection.</p>\\n","line":37,"rawdescription":"\\n\\nSpecify whether the modal contains scrolling content. This property overrides the automatic detection\\nof the existence of scrolling content. Set this property to `true` to force overflow indicator to\\nshow up or to `false` to force overflow indicator to disappear.\\nIt is set to `null` by default which indicates not to override automatic detection.\\n"},{"name":"label","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>Additional label shown over the modal</p>\\n","line":14,"rawdescription":"\\n\\nAdditional label shown over the modal\\n"},{"name":"showCloseButton","deprecated":false,"deprecationMessage":"","type":"boolean","optional":true,"description":"<p>Set to <code>false</code> to hide the header&#39;s close button.</p>\\n","line":46,"rawdescription":"\\n\\nSet to `false` to hide the header\'s close button.\\n"},{"name":"size","deprecated":false,"deprecationMessage":"","type":"\\"xs\\" | \\"sm\\" | \\"md\\" | \\"lg\\"","optional":true,"description":"<p>Size of the modal to display.</p>\\n","line":26,"rawdescription":"\\n\\nSize of the modal to display.\\n"},{"name":"title","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>Primary title for the modal</p>\\n","line":18,"rawdescription":"\\n\\nPrimary title for the modal\\n"},{"name":"type","deprecated":false,"deprecationMessage":"","type":"AlertModalType","optional":true,"description":"<p>type of the modal</p>\\n","line":10,"rawdescription":"\\n\\ntype of the modal\\n"}],"indexSignatures":[],"kind":171,"methods":[],"extends":[]},{"name":"BreadcrumbItem","id":"interface-BreadcrumbItem-e31ff11233b8b02008eb253010fa50595f44bf0755705690464dd53b5010cce9dc70fcdf91f07647c399a419c98223f9acfa13f42418ba0c60f45c16a8ffd88a","file":"src/breadcrumb/breadcrumb-item.interface.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"import { TemplateRef } from \\"@angular/core\\";\\n\\n/**\\n * A structure that represents a breadcrumb item.\\n */\\nexport interface BreadcrumbItem {\\n\\t/**\\n\\t * Content to be displayed in the breadcrumb item.\\n\\t */\\n\\tcontent: string;\\n\\t/**\\n\\t * Href for the breadcrumb item.\\n\\t */\\n\\thref?: string;\\n\\t/**\\n\\t * Array of commands to send to the router when the link is activated\\n\\t * See: https://angular.io/api/router/Router#navigate\\n\\t */\\n\\troute?: any[];\\n\\t/**\\n\\t * Router options. Used in conjunction with `route`\\n\\t * See: https://angular.io/api/router/Router#navigate\\n\\t */\\n\\trouteExtras?: any;\\n\\t/**\\n\\t * Optional `TemplateRef` for the breadcrumb item. Receives the content as an `$implicit` template variable\\n\\t */\\n\\ttemplate?: TemplateRef<any>;\\n\\t/**\\n\\t * aria-current for the breadcrumb item.\\n\\t */\\n\\tariaCurrent?: string;\\n\\t/**\\n\\t * Sets the current class for the breadcrumb item.\\n\\t */\\n\\tcurrent?: boolean;\\n}\\n","properties":[{"name":"ariaCurrent","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>aria-current for the breadcrumb item.</p>\\n","line":32,"rawdescription":"\\n\\naria-current for the breadcrumb item.\\n"},{"name":"content","deprecated":false,"deprecationMessage":"","type":"string","optional":false,"description":"<p>Content to be displayed in the breadcrumb item.</p>\\n","line":10,"rawdescription":"\\n\\nContent to be displayed in the breadcrumb item.\\n"},{"name":"current","deprecated":false,"deprecationMessage":"","type":"boolean","optional":true,"description":"<p>Sets the current class for the breadcrumb item.</p>\\n","line":36,"rawdescription":"\\n\\nSets the current class for the breadcrumb item.\\n"},{"name":"href","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>Href for the breadcrumb item.</p>\\n","line":14,"rawdescription":"\\n\\nHref for the breadcrumb item.\\n"},{"name":"route","deprecated":false,"deprecationMessage":"","type":"any[]","optional":true,"description":"<p>Array of commands to send to the router when the link is activated\\nSee: <a href=\\"https://angular.io/api/router/Router#navigate\\">https://angular.io/api/router/Router#navigate</a></p>\\n","line":19,"rawdescription":"\\n\\nArray of commands to send to the router when the link is activated\\nSee: https://angular.io/api/router/Router#navigate\\n"},{"name":"routeExtras","deprecated":false,"deprecationMessage":"","type":"any","optional":true,"description":"<p>Router options. Used in conjunction with <code>route</code>\\nSee: <a href=\\"https://angular.io/api/router/Router#navigate\\">https://angular.io/api/router/Router#navigate</a></p>\\n","line":24,"rawdescription":"\\n\\nRouter options. Used in conjunction with `route`\\nSee: https://angular.io/api/router/Router#navigate\\n"},{"name":"template","deprecated":false,"deprecationMessage":"","type":"TemplateRef<any>","optional":true,"description":"<p>Optional <code>TemplateRef</code> for the breadcrumb item. Receives the content as an <code>$implicit</code> template variable</p>\\n","line":28,"rawdescription":"\\n\\nOptional `TemplateRef` for the breadcrumb item. Receives the content as an `$implicit` template variable\\n"}],"indexSignatures":[],"kind":171,"description":"<p>A structure that represents a breadcrumb item.</p>\\n","rawdescription":"\\n\\nA structure that represents a breadcrumb item.\\n","methods":[],"extends":[]},{"name":"CloseMeta","id":"interface-CloseMeta-aa4ccbe5ac7f0c088c23f7030f0e80b6df1f15a896569560a9894c55fe3826cde419fb4a9a0a69fbe0bb63d7dab9007b383d7bcb048884fa67e9290ed759a73b","file":"src/dialog/dialog-config.interface.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"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","properties":[{"name":"reason","deprecated":false,"deprecationMessage":"","type":"CloseReasons","optional":false,"description":"","line":31},{"name":"target","deprecated":false,"deprecationMessage":"","type":"EventTarget","optional":true,"description":"","line":32}],"indexSignatures":[],"kind":171,"description":"<p>Interface representing various metadata that can be passed to <code>shouldClose</code> and the <code>close</code> event</p>\\n","rawdescription":"\\n\\nInterface representing various metadata that can be passed to `shouldClose` and the `close` event\\n","methods":[],"extends":[]},{"name":"DataGridPosition","id":"interface-DataGridPosition-1a07e40000ad0a03c69bfa750d2a244b531aa250bce669da5c76033e397d939a6f0b83c8e636808892ee31e7b389748f2b48e5521973de9e6b9b1c2c05d2fabe","file":"src/table/data-grid-interaction-model.class.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"import {\\n\\tBehaviorSubject,\\n\\tObservable,\\n\\tcombineLatest\\n} from \\"rxjs\\";\\nimport { map } from \\"rxjs/operators\\";\\nimport { TableAdapter } from \\"./table-adapter.class\\";\\nimport { tabbableSelectorIgnoreTabIndex, getFocusElementList } from \\"carbon-components-angular/common\\";\\n\\n/**\\n * The current and previous position in the grid.\\n *\\n * `current` and `previous` are tuples that follow the `[row, column]` convention.\\n */\\nexport interface DataGridPosition {\\n\\tcurrent: [number, number];\\n\\tprevious: [number, number];\\n}\\n\\n/**\\n * `DataGridInteractionModel` provides centralized control over arbitrary 2d grids, following the w3 specs.\\n *\\n * Refs:\\n * - https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html\\n * - https://www.w3.org/TR/wai-aria-practices/#grid\\n *\\n * Example usage (taken from `table.component`):\\n```typescript\\n// a standard HTML table\\nconst table = this.elementRef.nativeElement.querySelector(\\"table\\") as HTMLTableElement;\\n\\n// `TableDomAdapter` implements `TableAdapter` and provides a consistent interface to query rows and columns in a table\\nconst tableAdapter = new TableDomAdapter(table);\\n\\n// the keydown events that we\'ll use for keyboard navigation of the table\\nconst keydownEventStream = fromEvent<KeyboardEvent>(table, \\"keydown\\");\\n\\n// the click events we\'ll use to ensure focus is updated correctly on click\\nconst clickEventStream = fromEvent<MouseEvent>(table, \\"click\\");\\n\\n// the `DataGridInteractionModel` instance!\\nthis.interactionModel = new DataGridInteractionModel(keydownEventStream, clickEventStream, tableAdapter);\\n\\n// subscribe to the combined position updates\\nthis.interactionModel.position.subscribe(event => {\\n\\tconst [currentRow, currentColumn] = event.current;\\n\\tconst [previousRow, previousColumn] = event.previous;\\n\\n\\t// query the TableAdapter for the cell at the current row and column ...\\n\\tconst currentElement = tableAdapter.getCell(currentRow, currentColumn);\\n\\t// ... and make it focusable it\\n\\tTable.setTabIndex(currentElement, 0);\\n\\n\\t// if the model has just initialized don\'t focus or reset anything\\n\\tif (previousRow === -1 || previousColumn === -1) { return; }\\n\\n\\t// query the TableAdapter for the cell at the previous row and column ...\\n\\tconst previousElement = tableAdapter.getCell(previousRow, previousColumn);\\n\\t// ... and make it unfocusable (now there is only a single focusable cell)\\n\\tTable.setTabIndex(previousElement, -1);\\n\\n\\t// finally, focus the current cell (skipped during initilzation)\\n\\tTable.focus(currentElement);\\n});\\n```\\n */\\nexport class DataGridInteractionModel {\\n\\t/**\\n\\t * An Observable that provides an aggregated view of the `rowIndex` and `columnIndex` Observables\\n\\t */\\n\\treadonly position: Observable<DataGridPosition>;\\n\\t/**\\n\\t * An Observable that provides the current and previous row indexes.\\n\\t */\\n\\treadonly rowIndex: Observable<{ current: number, previous: number }>;\\n\\t/**\\n\\t * An Observable that provides the current and previous column indexes.\\n\\t */\\n\\treadonly columnIndex: Observable<{ current: number, previous: number }>;\\n\\n\\t/**\\n\\t * Internal subject to handle changes in row\\n\\t */\\n\\tprotected rowSubject = new BehaviorSubject({ current: 0, previous: -1 });\\n\\t/**\\n\\t * Internal subject to handle changes in column\\n\\t */\\n\\tprotected columnSubject = new BehaviorSubject({ current: 0, previous: -1 });\\n\\n\\t/**\\n\\t * The latest value emitted by the rowSubject\\n\\t */\\n\\tprotected get currentRow() {\\n\\t\\treturn this.rowSubject.getValue().current;\\n\\t}\\n\\n\\t/**\\n\\t * The latest value emitted by the columnSubject\\n\\t */\\n\\tprotected get currentColumn() {\\n\\t\\treturn this.columnSubject.getValue().current;\\n\\t}\\n\\n\\t/**\\n\\t * The last column as reported by the adapter\\n\\t */\\n\\tprotected get lastColumn() {\\n\\t\\treturn this.tableAdapter.lastColumnIndex;\\n\\t}\\n\\n\\t/**\\n\\t * The last row as reported by the adapter\\n\\t */\\n\\tprotected get lastRow() {\\n\\t\\treturn this.tableAdapter.lastRowIndex;\\n\\t}\\n\\n\\t/**\\n\\t * `DataGridInteractionModel` requires knowledge of events, and a representation of your table/grid to be useful.\\n\\t *\\n\\t * @param keyboardEventStream an Observable of KeyboardEvents. Should be scoped to the table container.\\n\\t * @param clickEventStream an Observable of ClickEvents. should only include clicks that take action on items known by the TableAdapter\\n\\t * @param tableAdapter an instance of a concrete class that implements TableAdapter. The standard carbon table uses TableDomAdapter\\n\\t */\\n\\tconstructor(\\n\\t\\tprotected keyboardEventStream: Observable<KeyboardEvent>,\\n\\t\\tprotected clickEventStream: Observable<MouseEvent>,\\n\\t\\tprotected tableAdapter: TableAdapter\\n\\t) {\\n\\t\\tthis.rowIndex = this.rowSubject.asObservable();\\n\\t\\tthis.columnIndex = this.columnSubject.asObservable();\\n\\t\\tthis.position = combineLatest(this.rowIndex, this.columnIndex).pipe(map(positions => {\\n\\t\\t\\tconst [row, column] = positions;\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tcurrent: [row.current, column.current],\\n\\t\\t\\t\\tprevious: [row.previous, column.previous]\\n\\t\\t\\t};\\n\\t\\t})) as Observable<DataGridPosition>;\\n\\t\\tthis.keyboardEventStream.subscribe(this.handleKeyboardEvent.bind(this));\\n\\t\\tthis.clickEventStream.subscribe(this.handleClickEvent.bind(this));\\n\\t}\\n\\n\\t/**\\n\\t * Handles moving the position according to the w3 datagrid navigation specs\\n\\t *\\n\\t * Refs:\\n\\t * - https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html\\n\\t * - https://www.w3.org/TR/wai-aria-practices/#grid\\n\\t *\\n\\t * @param event the KeyboardEvent to handle\\n\\t */\\n\\thandleKeyboardEvent(event: KeyboardEvent) {\\n\\t\\tconst currentCell = this.tableAdapter.getCell(this.currentRow, this.currentColumn);\\n\\t\\tlet currentColumn = this.tableAdapter.findColumnIndex(currentCell);\\n\\t\\tlet currentRow = this.tableAdapter.findRowIndex(currentCell);\\n\\n\\t\\tswitch (event.key) {\\n\\t\\t\\tcase \\"ArrowRight\\":\\n\\t\\t\\t\\tevent.preventDefault();\\n\\t\\t\\t\\t// add the colspan since findColumnIndex will return the\\n\\t\\t\\t\\t// first column containing the cell (of N columns it may span)\\n\\t\\t\\t\\t// and we want to navigate to the next \\"real\\" column\\n\\t\\t\\t\\tthis.goToColumn(currentColumn + currentCell.colSpan);\\n\\t\\t\\t\\tbreak;\\n\\t\\t\\tcase \\"ArrowLeft\\":\\n\\t\\t\\t\\tevent.preventDefault();\\n\\t\\t\\t\\t// we only ever need to subtract 1 from the column, since findColumnIndex returns the\\n\\t\\t\\t\\t// first of N columns containing the cell\\n\\t\\t\\t\\tthis.goToColumn(currentColumn - 1);\\n\\t\\t\\t\\tbreak;\\n\\t\\t\\tcase \\"ArrowDown\\":\\n\\t\\t\\t\\tevent.preventDefault();\\n\\t\\t\\t\\tthis.goToRow(currentRow + currentCell.rowSpan);\\n\\t\\t\\t\\tbreak;\\n\\t\\t\\tcase \\"ArrowUp\\":\\n\\t\\t\\t\\tevent.preventDefault();\\n\\t\\t\\t\\tthis.goToRow(currentRow - 1);\\n\\t\\t\\t\\tbreak;\\n\\t\\t\\tcase \\"Home\\":\\n\\t\\t\\t\\tevent.preventDefault();\\n\\t\\t\\t\\tif (event.ctrlKey) {\\n\\t\\t\\t\\t\\tthis.goTo({row: 0, column: 0});\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tthis.goToColumn(0);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tbreak;\\n\\t\\t\\tcase \\"End\\":\\n\\t\\t\\t\\tevent.preventDefault();\\n\\t\\t\\t\\tif (event.ctrlKey) {\\n\\t\\t\\t\\t\\tthis.goTo({ row: this.lastRow, column: this.lastColumn });\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tthis.goToColumn(this.lastColumn);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tbreak;\\n\\t\\t}\\n\\t}\\n\\n\\t/**\\n\\t * Handles moving the position to the clicked cell\\n\\t *\\n\\t * @param event the MouseEvent to handle\\n\\t */\\n\\thandleClickEvent(event: MouseEvent) {\\n\\t\\tconst cell = (event.target as HTMLElement).closest(\\"td, th\\") as HTMLTableCellElement;\\n\\t\\tconst [rowIndex, cellIndex] = this.tableAdapter.findIndex(cell);\\n\\t\\tthis.goTo({ row: rowIndex, column: cellIndex });\\n\\t}\\n\\n\\t/**\\n\\t * Jump to a specific column without changing the row\\n\\t *\\n\\t * @param index column to jump to\\n\\t */\\n\\tgoToColumn(index: number) {\\n\\t\\tif (index > this.lastColumn || index < 0) { return; }\\n\\t\\tthis.goTo({ row: this.currentRow, column: index});\\n\\t}\\n\\n\\t/**\\n\\t * Jump to a specific row without changing the column\\n\\t *\\n\\t * @param index row to jump to\\n\\t */\\n\\tgoToRow(index: number) {\\n\\t\\tif (index > this.lastRow || index < 0) { return; }\\n\\t\\tthis.goTo({row: index, column: this.currentColumn});\\n\\t}\\n\\n\\t/**\\n\\t * Jump to the specified row and column\\n\\t *\\n\\t * @param param0 an object that contains `row` and `column` properties\\n\\t */\\n\\tgoTo({row, column}) {\\n\\t\\tthis.rowSubject.next({ current: row, previous: this.currentRow });\\n\\t\\tthis.columnSubject.next({ current: column, previous: this.currentColumn });\\n\\t}\\n\\n\\t/**\\n\\t * Convenience method to reset the tab indexes on a standard carbon table.\\n\\t * For custom tables you may want to reset the indexes manually and simply call `.reset()`\\n\\t */\\n\\tresetTabIndexes(newTabIndex = -1) {\\n\\t\\tfor (let i = 0; i < this.tableAdapter.lastRowIndex; i++) {\\n\\t\\t\\tconst row = this.tableAdapter.getRow(i) as HTMLTableRowElement;\\n\\t\\t\\tfor (const cell of Array.from(row.cells)) {\\n\\t\\t\\t\\tconst tabbableElements = getFocusElementList(cell, tabbableSelectorIgnoreTabIndex);\\n\\t\\t\\t\\ttabbableElements.forEach((node: HTMLElement) => node.tabIndex = newTabIndex);\\n\\t\\t\\t\\tcell.tabIndex = newTabIndex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\tthis.reset();\\n\\t}\\n\\n\\t/**\\n\\t * Resets the models focus position\\n\\t */\\n\\treset() {\\n\\t\\tthis.rowSubject.next({ current: 0, previous: -1 });\\n\\t\\tthis.columnSubject.next({ current: 0, previous: -1 });\\n\\t}\\n}\\n","properties":[{"name":"current","deprecated":false,"deprecationMessage":"","type":"[number, number]","optional":false,"description":"","line":16},{"name":"previous","deprecated":false,"deprecationMessage":"","type":"[number, number]","optional":false,"description":"","line":17}],"indexSignatures":[],"kind":171,"description":"<p>The current and previous position in the grid.</p>\\n<p><code>current</code> and <code>previous</code> are tuples that follow the <code>[row, column]</code> convention.</p>\\n","rawdescription":"\\n\\nThe current and previous position in the grid.\\n\\n`current` and `previous` are tuples that follow the `[row, column]` convention.\\n","methods":[],"extends":[]},{"name":"DialogConfig","id":"interface-DialogConfig-aa4ccbe5ac7f0c088c23f7030f0e80b6df1f15a896569560a9894c55fe3826cde419fb4a9a0a69fbe0bb63d7dab9007b383d7bcb048884fa67e9290ed759a73b","file":"src/dialog/dialog-config.interface.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"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","properties":[{"name":"appendInline","deprecated":false,"deprecationMessage":"","type":"boolean","optional":true,"description":"<p>Set to <code>true</code> to open the dialog next to the triggering component</p>\\n","line":81,"rawdescription":"\\n\\nSet to `true` to open the dialog next to the triggering component\\n"},{"name":"closeTrigger","deprecated":false,"deprecationMessage":"","type":"\\"mouseout\\" | \\"mouseleave\\"","optional":true,"description":"<p>Parameter for triggering the <code>Dialog</code> close event.</p>\\n","line":54,"rawdescription":"\\n\\nParameter for triggering the `Dialog` close event.\\n"},{"name":"closeWhenHidden","deprecated":false,"deprecationMessage":"","type":"boolean","optional":true,"description":"<p>If true the dialog will close when hidden (by scrolling or otherwise going out of the viewport)\\nIf false the dialog will stay open until explicitly closed\\nWhen true this closure method can be picked up via <code>CloseReasons.hidden</code></p>\\n","line":64,"rawdescription":"\\n\\nIf true the dialog will close when hidden (by scrolling or otherwise going out of the viewport)\\nIf false the dialog will stay open until explicitly closed\\nWhen true this closure method can be picked up via `CloseReasons.hidden`\\n"},{"name":"content","deprecated":false,"deprecationMessage":"","type":"string | TemplateRef<any>","optional":false,"description":"<p>Body content for the <code>Dialog</code>.</p>\\n","line":46,"rawdescription":"\\n\\nBody content for the `Dialog`.\\n"},{"name":"data","deprecated":false,"deprecationMessage":"","type":"Object","optional":true,"description":"<p>Config object passed to the rendered component. (Optional)</p>\\n","line":85,"rawdescription":"\\n\\nConfig object passed to the rendered component. (Optional)\\n"},{"name":"disabled","deprecated":false,"deprecationMessage":"","type":"boolean","optional":true,"description":"<p>This prevents the dialog from being toggled</p>\\n","line":101,"rawdescription":"\\n\\nThis prevents the dialog from being toggled\\n"},{"name":"gap","deprecated":false,"deprecationMessage":"","type":"number","optional":true,"description":"<p>Used to set the offset of the <code>Dialog</code> relative to the content it\\nis associated to.</p>\\n","line":73,"rawdescription":"\\n\\nUsed to set the offset of the `Dialog` relative to the content it\\nis associated to.\\n"},{"name":"offset","deprecated":false,"deprecationMessage":"","type":"literal type","optional":true,"description":"<p>This specifies any vertical and horizontal offset for the position of the dialog</p>\\n","line":97,"rawdescription":"\\n\\nThis specifies any vertical and horizontal offset for the position of the dialog\\n"},{"name":"parentRef","deprecated":false,"deprecationMessage":"","type":"ElementRef","optional":true,"description":"<p>Reference to the Parent element that links the <code>Dialog</code>.</p>\\n","line":77,"rawdescription":"\\n\\nReference to the Parent element that links the `Dialog`.\\n"},{"name":"placement","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>Parameter defining the placement in which the <code>Dialog</code> appears.</p>\\n","line":68,"rawdescription":"\\n\\nParameter defining the placement in which the `Dialog` appears.\\n"},{"name":"shouldClose","deprecated":false,"deprecationMessage":"","type":"function","optional":true,"description":"<p>Callback to control the closing behaviour. return <code>true</code> to close, and <code>false</code> to prevent closing</p>\\n","line":58,"rawdescription":"\\n\\nCallback to control the closing behaviour. return `true` to close, and `false` to prevent closing\\n"},{"name":"title","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>Title for the <code>Dialog</code> header.</p>\\n","line":42,"rawdescription":"\\n\\nTitle for the `Dialog` header.\\n"},{"name":"trigger","deprecated":false,"deprecationMessage":"","type":"\\"click\\" | \\"hover\\" | \\"mouseenter\\"","optional":true,"description":"<p>Parameter for triggering <code>Dialog</code> display.</p>\\n","line":50,"rawdescription":"\\n\\nParameter for triggering `Dialog` display.\\n"},{"name":"wrapperClass","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"<p>Classes to add to the dialog container</p>\\n","line":93,"rawdescription":"\\n\\nClasses to add to the dialog container\\n"}],"indexSignatures":[{"id":"index-declaration-aa4ccbe5ac7f0c088c23f7030f0e80b6df1f15a896569560a9894c55fe3826cde419fb4a9a0a69fbe0bb63d7dab9007b383d7bcb048884fa67e9290ed759a73b","args":[{"name":"propName","type":"string","deprecated":false,"deprecationMessage":""}],"returnType":"any","line":85,"deprecated":false,"deprecationMessage":"","rawdescription":"\\n\\nAdditional arbitrary properties (mostly for internal/extended component use)\\n","description":"<p>Additional arbitrary properties (mostly for internal/extended component use)</p>\\n"}],"kind":171,"description":"<p>Data structure for definig properties of a <code>Dialog</code> component.</p>\\n","rawdescription":"\\n\\nData structure for definig properties of a `Dialog` component.\\n","methods":[],"extends":[]},{"name":"ElementVisibilityEvent","id":"interface-ElementVisibilityEvent-0869a864b16f2fcbf727f5059bc8605c8378298f548b9a0af4bc27ffc739342f292f48d978c1fab46941fda6e1c027e181daad245a164eee8538dfb60e016f2e","file":"src/utils/element.types.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"export interface ElementVisibilityEvent {\\n\\tvisible: boolean;\\n}\\n","properties":[{"name":"visible","deprecated":false,"deprecationMessage":"","type":"boolean","optional":false,"description":"","line":2}],"indexSignatures":[],"kind":171,"methods":[],"extends":[]},{"name":"ExpandableTileTranslations","id":"interface-ExpandableTileTranslations-4e3f205f1d28aed7b4db46864b34a465540c07c6010cf5057e03b8fc995cbcc2b274cec35bc6fe12509329d79b8660765740d78f8ffeaea1b931a941b7752077","file":"src/tiles/expandable-tile.component.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"import {\\n\\tComponent,\\n\\tInput,\\n\\tElementRef,\\n\\tAfterViewInit,\\n\\tViewChild\\n} from \\"@angular/core\\";\\nimport { I18n } from \\"carbon-components-angular/i18n\\";\\nimport { merge } from \\"carbon-components-angular/utils\\";\\n\\nexport interface ExpandableTileTranslations {\\n\\tEXPAND: string;\\n\\tCOLLAPSE: string;\\n}\\n\\n/**\\n * Get started with importing the module:\\n *\\n * ```typescript\\n * import { TilesModule } from \'carbon-components-angular\';\\n * ```\\n *\\n * [See demo](../../?path=/story/components-tiles-expandable--basic)\\n */\\n@Component({\\n\\tselector: \\"cds-expandable-tile, ibm-expandable-tile\\",\\n\\ttemplate: `\\n\\t\\t<button\\n\\t\\t\\t*ngIf=\\"!interactive\\"\\n\\t\\t\\tclass=\\"cds--tile cds--tile--expandable\\"\\n\\t\\t\\t[ngClass]=\\"{\\n\\t\\t\\t\\t\'cds--tile--is-expanded\' : expanded,\\n\\t\\t\\t\\t\'cds--tile--light\': theme === \'light\'\\n\\t\\t\\t}\\"\\n\\t\\t\\t[ngStyle]=\\"{\'max-height\': expandedHeight + \'px\'}\\"\\n\\t\\t\\ttype=\\"button\\"\\n\\t\\t\\t(click)=\\"onClick()\\"\\n\\t\\t\\t[attr.aria-expanded]=\\"expanded\\"\\n\\t\\t\\t[attr.title]=\\"(expanded ? collapse.subject : expand.subject) | async\\">\\n\\t\\t\\t\\t<ng-container *ngTemplateOutlet=\\"expandableTileContent\\"></ng-container>\\n\\t\\t</button>\\n\\n\\t\\t<div\\n\\t\\t\\t*ngIf=\\"interactive\\"\\n\\t\\t\\tclass=\\"cds--tile cds--tile--expandable cds--tile--expandable--interactive\\"\\n\\t\\t\\t[ngClass]=\\"{\\n\\t\\t\\t\\t\'cds--tile--is-expanded\' : expanded,\\n\\t\\t\\t\\t\'cds--tile--light\': theme === \'light\'\\n\\t\\t\\t}\\"\\n\\t\\t\\t[ngStyle]=\\"{\'max-height\': expandedHeight + \'px\'}\\"\\n\\t\\t\\t[attr.title]=\\"(expanded ? collapse.subject : expand.subject) | async\\">\\n\\t\\t\\t<ng-container *ngTemplateOutlet=\\"expandableTileContent\\"></ng-container>\\n\\t\\t</div>\\n\\n\\t\\t<ng-template #chevronIcon>\\n\\t\\t\\t<svg cdsIcon=\\"chevron--down\\" size=\\"16\\"></svg>\\n\\t\\t</ng-template>\\n\\n\\t\\t<ng-template #expandableTileContent>\\n\\t\\t\\t<div #container>\\n\\t\\t\\t\\t<div class=\\"cds--tile-content\\">\\n\\t\\t\\t\\t\\t<ng-content select=\\"[cdsAboveFold],[ibmAboveFold],.cds--tile-content__above-the-fold\\"></ng-content>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div *ngIf=\\"!interactive\\" class=\\"cds--tile__chevron\\">\\n\\t\\t\\t\\t\\t<ng-container *ngTemplateOutlet=\\"chevronIcon\\"></ng-container>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<button\\n\\t\\t\\t\\t\\t*ngIf=\\"interactive\\"\\n\\t\\t\\t\\t\\tclass=\\"cds--tile__chevron cds--tile__chevron--interactive\\"\\n\\t\\t\\t\\t\\ttype=\\"button\\"\\n\\t\\t\\t\\t\\t(click)=\\"onClick()\\"\\n\\t\\t\\t\\t\\t[attr.aria-expanded]=\\"expanded\\"\\n\\t\\t\\t\\t\\t[attr.aria-label]=\\"(expanded ? collapse.subject : expand.subject) | async\\">\\n\\t\\t\\t\\t\\t<ng-container *ngTemplateOutlet=\\"chevronIcon\\"></ng-container>\\n\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t<div class=\\"cds--tile-content\\">\\n\\t\\t\\t\\t\\t<ng-content select=\\"[cdsBelowFold],[ibmBelowFold],.cds--tile-content__below-the-fold\\"></ng-content>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\t\\t</ng-template>\\n\\t`\\n})\\nexport class ExpandableTile implements AfterViewInit {\\n\\t/**\\n\\t * @deprecated since v5 - Use `cdsLayer` directive instead\\n\\t * Set to `\\"light\\"` to apply the light style\\n\\t */\\n\\t@Input() theme: \\"light\\" | \\"dark\\" = \\"dark\\";\\n\\n\\t/**\\n\\t * Controls the expanded state\\n\\t */\\n\\t@Input() expanded = false;\\n\\t/**\\n\\t * Controls the interactive state\\n\\t */\\n\\t@Input() interactive = false;\\n\\t/**\\n\\t * Expects an object that contains some or all of:\\n\\t * ```\\n\\t * {\\n\\t *\\t\\t\\"EXPAND\\": \\"Expand\\",\\n\\t *\\t\\t\\"COLLAPSE\\": \\"Collapse\\",\\n\\t * }\\n\\t * ```\\n\\t */\\n\\t@Input()\\n\\tset translations(value: ExpandableTileTranslations) {\\n\\t\\tconst valueWithDefaults = merge(this.i18n.getMultiple(\\"TILES\\"), value);\\n\\t\\tthis.expand.override(valueWithDefaults.EXPAND);\\n\\t\\tthis.collapse.override(valueWithDefaults.COLLAPSE);\\n\\t}\\n\\n\\t@ViewChild(\\"container\\") tileContainer: ElementRef;\\n\\n\\ttileMaxHeight = 0;\\n\\tcurrentExpandedHeight = 0;\\n\\n\\texpand = this.i18n.getOverridable(\\"TILES.EXPAND\\");\\n\\tcollapse = this.i18n.getOverridable(\\"TILES.COLLAPSE\\");\\n\\n\\tconstructor(protected i18n: I18n, protected element: ElementRef) {}\\n\\n\\tngAfterViewInit() {\\n\\t\\tthis.updateMaxHeight();\\n\\t}\\n\\n\\tget expandedHeight() {\\n\\t\\tconst tile = this.element.nativeElement.querySelector(\\".cds--tile\\");\\n\\t\\tconst tilePadding\\n\\t\\t\\t= parseInt(getComputedStyle(tile).paddingBottom, 10) + parseInt(getComputedStyle(tile).paddingTop, 10);\\n\\t\\tconst expandedHeight = this.tileMaxHeight + tilePadding;\\n\\t\\tif (!isNaN(expandedHeight)) {\\n\\t\\t\\tthis.currentExpandedHeight = expandedHeight;\\n\\t\\t}\\n\\t\\treturn this.currentExpandedHeight;\\n\\t}\\n\\n\\tupdateMaxHeight() {\\n\\t\\tif (this.expanded) {\\n\\t\\t\\tthis.tileMaxHeight = this.tileContainer.nativeElement.getBoundingClientRect().height;\\n\\t\\t} else {\\n\\t\\t\\tthis.tileMaxHeight = this.element.nativeElement.querySelector(\\".cds--tile-content__above-the-fold\\").getBoundingClientRect().height;\\n\\t\\t}\\n\\t}\\n\\n\\tonClick() {\\n\\t\\tthis.expanded = !this.expanded;\\n\\t\\tthis.updateMaxHeight();\\n\\t}\\n}\\n","properties":[{"name":"COLLAPSE","deprecated":false,"deprecationMessage":"","type":"string","optional":false,"description":"","line":13},{"name":"EXPAND","deprecated":false,"deprecationMessage":"","type":"string","optional":false,"description":"","line":12}],"indexSignatures":[],"kind":171,"methods":[],"extends":[]},{"name":"Experiment","id":"interface-Experiment-82a0b5e260a0a5c514fbf5d0b4d0d9563d0ae9b88079eb7de33612da6cd6c4fff6fea8e240e5f363b9561f05c42868abfc6d6996341d705065246a5dfc477611","file":"src/experimental/experimental.service.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"import { Injectable } from \\"@angular/core\\";\\n\\n/**\\n * Represents options for an experiment. The only required property is `enabled`, however other options may be supplied.\\n */\\nexport interface Experiment {\\n\\tenabled: boolean;\\n\\t[key: string]: any;\\n}\\n\\n@Injectable()\\nexport class ExperimentalService {\\n\\t/**\\n\\t * Map to hold all our experiments\\n\\t */\\n\\tprivate experiments = new Map<string, Experiment>();\\n\\n\\t/**\\n\\t * Adds an experiment if it doesn\'t exist.\\n\\t */\\n\\taddExperiment(name: string, options: Experiment = {enabled: false}) {\\n\\t\\tif (!this.experiments.has(name)) {\\n\\t\\t\\tthis.experiments.set(name, options);\\n\\t\\t}\\n\\t}\\n\\n\\t/**\\n\\t * Enables an experiment by name\\n\\t * @param name name of the experiment to enable\\n\\t */\\n\\tenableExperiment(name: string) {\\n\\t\\tconst experiment = this.getExperiment(name);\\n\\t\\texperiment.enabled = true;\\n\\t}\\n\\n\\t/**\\n\\t * Disables an experiment by name\\n\\t * @param name name of the experiment to disable\\n\\t */\\n\\tdisableExperiment(name: string) {\\n\\t\\tconst experiment = this.getExperiment(name);\\n\\t\\texperiment.enabled = false;\\n\\t}\\n\\n\\t/**\\n\\t * Get the options for an experiment by name\\n\\t * @param name name of experiment to get\\n\\t */\\n\\tgetExperiment(name: string): Experiment {\\n\\t\\tif (!this.experiments.has(name)) {\\n\\t\\t\\tthis.addExperiment(name);\\n\\t\\t\\treturn this.getExperiment(name);\\n\\t\\t}\\n\\n\\t\\treturn this.experiments.get(name);\\n\\t}\\n\\n\\t/**\\n\\t * Get an array of tuples representing an experiment and it\'s options\\n\\t */\\n\\tgetExperiments(): Array<[string, Experiment]> {\\n\\t\\treturn Array.from(this.experiments.entries());\\n\\t}\\n}\\n","properties":[{"name":"enabled","deprecated":false,"deprecationMessage":"","type":"boolean","optional":false,"description":"","line":7}],"indexSignatures":[{"id":"index-declaration-82a0b5e260a0a5c514fbf5d0b4d0d9563d0ae9b88079eb7de33612da6cd6c4fff6fea8e240e5f363b9561f05c42868abfc6d6996341d705065246a5dfc477611","args":[{"name":"key","type":"string","deprecated":false,"deprecationMessage":""}],"returnType":"any","line":7,"deprecated":false,"deprecationMessage":""}],"kind":181,"description":"<p>Represents options for an experiment. The only required property is <code>enabled</code>, however other options may be supplied.</p>\\n","rawdescription":"\\n\\nRepresents options for an experiment. The only required property is `enabled`, however other options may be supplied.\\n","methods":[],"extends":[]},{"name":"FileItem","id":"interface-FileItem-85a77a2e47c8c04c21863430991f105803538d13bbf0d649992a83205090f0ffc24b888b51fea0ee724e3b165b3ed466744e44fcc5cbfcacf4a270481f25c698","file":"src/file-uploader/file-item.interface.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"export interface FileItem {\\n\\tfile: File;\\n\\tstate: \\"edit\\" | \\"upload\\" | \\"complete\\";\\n\\tuploaded: boolean;\\n\\tinvalid?: boolean;\\n\\tinvalidTitle?: string;\\n\\tinvalidText?: string;\\n}\\n","properties":[{"name":"file","deprecated":false,"deprecationMessage":"","type":"File","optional":false,"description":"","line":2},{"name":"invalid","deprecated":false,"deprecationMessage":"","type":"boolean","optional":true,"description":"","line":5},{"name":"invalidText","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"","line":7},{"name":"invalidTitle","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"","line":6},{"name":"state","deprecated":false,"deprecationMessage":"","type":"\\"edit\\" | \\"upload\\" | \\"complete\\"","optional":false,"description":"","line":3},{"name":"uploaded","deprecated":false,"deprecationMessage":"","type":"boolean","optional":false,"description":"","line":4}],"indexSignatures":[],"kind":171,"methods":[],"extends":[]},{"name":"HeaderItemInterface","id":"interface-HeaderItemInterface-30fb4c9b64de9b11fb7b28ddd3ee5e0fdba54a86d7277c8e757682aab1502c23396a9910e3513f9594ec08cb97a0954e1d45eed5fd6101d57dd431c31fbfcab0","file":"src/ui-shell/header/header-navigation-items.interface.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"export interface NavigationItem {\\n\\ttype: \\"menu\\" | \\"item\\";\\n\\ttitle?: string;\\n\\thref?: string;\\n\\ttrigger?: \\"click\\" | \\"mouseover\\";\\n\\troute?: any[];\\n\\trouteExtras?: any[];\\n\\tcontent?: string;\\n\\tisCurrentPage?: boolean;\\n\\tmenuItems?: HeaderItemInterface[];\\n}\\n\\nexport interface HeaderItemInterface {\\n\\thref?: string;\\n\\troute?: any[];\\n\\trouteExtras?: any[];\\n\\tcontent?: string;\\n}\\n","properties":[{"name":"content","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"","line":21},{"name":"href","deprecated":false,"deprecationMessage":"","type":"string","optional":true,"description":"","line":18},{"name":"route","deprecated":false,"deprecationMessage":"","type":"any[]","optional":true,"description":"","line":19},{"name":"routeExtras","deprecated":false,"deprecationMessage":"","type":"any[]","optional":true,"description":"","line":20}],"indexSignatures":[],"kind":171,"methods":[],"extends":[]},{"name":"IconDescriptor","id":"interface-IconDescriptor-0861b3eb36724a76df3e7d36355d9baf12d8b0948124d6bfd2346ebf0827b8e42bcf6aede53032288b068531cc61ed998aab8aa8605fd3d1a432db051131b35a","file":"src/icon/icon.service.ts","deprecated":false,"deprecationMessage":"","type":"interface","sourceCode":"import { Injectable } from \\"@angular/core\\";\\nimport { toString } from \\"@carbon/icon-helpers\\";\\n\\n// icon imports\\nimport {\\n\\tAdd16,\\n\\tCalendar16,\\n\\tCaretDown16,\\n\\tCaretLeft16,\\n\\tCaretRight16,\\n\\tCaretUp16,\\n\\tCheckmark16,\\n\\tCheckmarkFilled16,\\n\\tCheckmarkOutline16,\\n\\tChevronDown16,\\n\\tChevronRight16,\\n\\tClose16,\\n\\tCopy16,\\n\\tDownload16,\\n\\tErrorFilled16,\\n\\tInformationFilled16,\\n\\tMenu16,\\n\\tOverflowMenuVertical16,\\n\\tSave16,\\n\\tSettings16,\\n\\tTrashCan16,\\n\\tWarning16,\\n\\tWarningFilled16\\n} from \\"@carbon/icons\\";\\n\\n/**\\n * An object that represents a parsed icon\\n */\\nexport interface IconDescriptor {\\n\\t/**\\n\\t * The element to render. For the root this is `svg`\\n\\t */\\n\\telem: string;\\n\\t/**\\n\\t * An object of attributes to apply to the element.\\n\\t *\\n\\t * The type here is non-exhaustive.\\n\\t */\\n\\tat