carbon-components-angular 5.20.0 → 5.20.2

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 (86) hide show
  1. package/README.md +9 -0
  2. package/docs/documentation/components/CodeSnippet.html +81 -71
  3. package/docs/documentation/components/Search.html +76 -65
  4. package/docs/documentation/components/TableRadio.html +1 -1
  5. package/docs/documentation/components/TableToolbarSearch.html +44 -44
  6. package/docs/documentation/dependencies.html +2 -2
  7. package/docs/documentation/index.html +7 -0
  8. package/docs/documentation/js/search/search_index.js +2 -2
  9. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  10. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  11. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  12. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  13. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +7 -7
  14. package/docs/documentation/modules/DatePickerInputModule.html +7 -7
  15. package/docs/documentation/modules/DatePickerModule/dependencies.svg +53 -57
  16. package/docs/documentation/modules/DatePickerModule.html +53 -57
  17. package/docs/documentation/modules/DialogModule/dependencies.svg +34 -34
  18. package/docs/documentation/modules/DialogModule.html +34 -34
  19. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  20. package/docs/documentation/modules/GridModule.html +60 -60
  21. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  22. package/docs/documentation/modules/LoadingModule.html +4 -4
  23. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  24. package/docs/documentation/modules/NFormsModule.html +4 -4
  25. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  26. package/docs/documentation/modules/NumberModule.html +4 -4
  27. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  28. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  29. package/docs/documentation/modules/RadioModule/dependencies.svg +4 -4
  30. package/docs/documentation/modules/RadioModule.html +4 -4
  31. package/docs/documentation/modules/SearchModule/dependencies.svg +4 -4
  32. package/docs/documentation/modules/SearchModule.html +4 -4
  33. package/docs/documentation/modules/SelectModule/dependencies.svg +58 -58
  34. package/docs/documentation/modules/SelectModule.html +58 -58
  35. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  36. package/docs/documentation/modules/SliderModule.html +4 -4
  37. package/docs/documentation/modules/StructuredListModule/dependencies.svg +66 -66
  38. package/docs/documentation/modules/StructuredListModule.html +66 -66
  39. package/docs/documentation/modules/TabsModule/dependencies.svg +69 -69
  40. package/docs/documentation/modules/TabsModule.html +69 -69
  41. package/docs/documentation/modules/TagModule/dependencies.svg +4 -4
  42. package/docs/documentation/modules/TagModule.html +4 -4
  43. package/docs/documentation/modules/ThemeModule/dependencies.svg +13 -13
  44. package/docs/documentation/modules/ThemeModule.html +13 -13
  45. package/docs/documentation/modules/TilesModule/dependencies.svg +83 -83
  46. package/docs/documentation/modules/TilesModule.html +83 -83
  47. package/docs/documentation/modules/TimePickerModule/dependencies.svg +20 -20
  48. package/docs/documentation/modules/TimePickerModule.html +20 -20
  49. package/docs/documentation/modules/ToggleModule/dependencies.svg +27 -27
  50. package/docs/documentation/modules/ToggleModule.html +27 -27
  51. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  52. package/docs/documentation/modules/ToggletipModule.html +4 -4
  53. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  54. package/docs/documentation/modules/TooltipModule.html +28 -28
  55. package/docs/documentation/modules/TreeviewModule/dependencies.svg +34 -34
  56. package/docs/documentation/modules/TreeviewModule.html +34 -34
  57. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  58. package/docs/documentation/modules/UIShellModule.html +4 -4
  59. package/docs/documentation.json +178 -178
  60. package/docs/storybook/5868.f5a4be2e.iframe.bundle.js +1 -0
  61. package/docs/storybook/{code-snippet-code-snippet-stories.5c727944.iframe.bundle.js → code-snippet-code-snippet-stories.d9a3162d.iframe.bundle.js} +1 -1
  62. package/docs/storybook/{contained-list-contained-list-stories.f8fd4e51.iframe.bundle.js → contained-list-contained-list-stories.2887855a.iframe.bundle.js} +1 -1
  63. package/docs/storybook/iframe.html +2 -2
  64. package/docs/storybook/index.html +27 -0
  65. package/docs/storybook/main.053e39e2.iframe.bundle.js +1 -0
  66. package/docs/storybook/project.json +1 -1
  67. package/docs/storybook/{runtime~main.3b1ae09e.iframe.bundle.js → runtime~main.4d2d3399.iframe.bundle.js} +1 -1
  68. package/docs/storybook/{search-search-stories.c716e8fe.iframe.bundle.js → search-search-stories.fac60ec0.iframe.bundle.js} +1 -1
  69. package/docs/storybook/ui-shell-ui-shell-stories.70551d65.iframe.bundle.js +1 -0
  70. package/esm2020/code-snippet/code-snippet.component.mjs +27 -18
  71. package/esm2020/search/search.component.mjs +13 -3
  72. package/esm2020/table/cell/table-radio.component.mjs +1 -1
  73. package/fesm2015/carbon-components-angular-code-snippet.mjs +26 -17
  74. package/fesm2015/carbon-components-angular-code-snippet.mjs.map +1 -1
  75. package/fesm2015/carbon-components-angular-search.mjs +12 -2
  76. package/fesm2015/carbon-components-angular-search.mjs.map +1 -1
  77. package/fesm2015/carbon-components-angular-table.mjs.map +1 -1
  78. package/fesm2020/carbon-components-angular-code-snippet.mjs +26 -17
  79. package/fesm2020/carbon-components-angular-code-snippet.mjs.map +1 -1
  80. package/fesm2020/carbon-components-angular-search.mjs +12 -2
  81. package/fesm2020/carbon-components-angular-search.mjs.map +1 -1
  82. package/fesm2020/carbon-components-angular-table.mjs.map +1 -1
  83. package/package.json +1 -1
  84. package/docs/storybook/5868.6cf155a6.iframe.bundle.js +0 -1
  85. package/docs/storybook/main.aec7fc6c.iframe.bundle.js +0 -1
  86. package/docs/storybook/ui-shell-ui-shell-stories.caec4727.iframe.bundle.js +0 -1
@@ -118,6 +118,9 @@ class CodeSnippet extends BaseIconButton {
118
118
  return this.theme === "light";
119
119
  }
120
120
  handleScroll() {
121
+ if (this.skeleton) {
122
+ return;
123
+ }
121
124
  let ref;
122
125
  switch (this.display) {
123
126
  case "multi":
@@ -143,7 +146,7 @@ class CodeSnippet extends BaseIconButton {
143
146
  onCopyButtonClicked() {
144
147
  if (!this.disabled) {
145
148
  window.navigator.clipboard
146
- .writeText(this.code.nativeElement.innerText || this.code.nativeElement.textContent).then(() => {
149
+ .writeText(this.code).then(() => {
147
150
  this.showFeedback = true;
148
151
  this.animating = true;
149
152
  setTimeout(() => {
@@ -155,6 +158,10 @@ class CodeSnippet extends BaseIconButton {
155
158
  }
156
159
  ngOnInit() {
157
160
  this.calculateContainerHeight();
161
+ }
162
+ ngAfterViewInit() {
163
+ this.canExpand();
164
+ this.handleScroll();
158
165
  if (window) {
159
166
  this.eventService.on(window, "resize", () => {
160
167
  this.canExpand();
@@ -162,14 +169,8 @@ class CodeSnippet extends BaseIconButton {
162
169
  });
163
170
  }
164
171
  }
165
- ngAfterViewInit() {
166
- setTimeout(() => {
167
- this.canExpand();
168
- this.handleScroll();
169
- });
170
- }
171
172
  calculateContainerHeight() {
172
- if (this.display === "multi") {
173
+ if (this.display === "multi" && !this.skeleton) {
173
174
  this.styles = {};
174
175
  if (this.expanded) {
175
176
  if (this.maxExpandedNumberOfRows > 0) {
@@ -190,7 +191,7 @@ class CodeSnippet extends BaseIconButton {
190
191
  }
191
192
  }
192
193
  canExpand() {
193
- if (this.display === "multi") {
194
+ if (this.display === "multi" && !this.skeleton) {
194
195
  const height = this.codeContent.nativeElement.getBoundingClientRect().height;
195
196
  if (this.maxCollapsedNumberOfRows > 0 &&
196
197
  (this.maxExpandedNumberOfRows <= 0 ||
@@ -221,7 +222,9 @@ CodeSnippet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
221
222
  [ngClass]="{
222
223
  'cds--snippet--light': theme === 'light'
223
224
  }">
224
- <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
225
+ <code #code>
226
+ <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
227
+ </code>
225
228
  </span>
226
229
  </ng-template>
227
230
  </ng-container>
@@ -246,7 +249,7 @@ CodeSnippet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
246
249
  <pre
247
250
  #codeContent
248
251
  *ngIf="!skeleton"
249
- (scroll)="(display === 'multi' ? handleScroll() : null)"><ng-container *ngTemplateOutlet="codeTemplate"></ng-container></pre>
252
+ (scroll)="(display === 'multi' ? handleScroll() : null)"><code #code><ng-container *ngTemplateOutlet="codeTemplate"></ng-container></code></pre>
250
253
  </div>
251
254
  <div *ngIf="hasLeft" class="cds--snippet__overflow-indicator--left"></div>
252
255
  <div *ngIf="hasRight" class="cds--snippet__overflow-indicator--right"></div>
@@ -292,7 +295,9 @@ CodeSnippet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
292
295
  'tabindex': '0'
293
296
  }">
294
297
  <ng-container *ngIf="display === 'inline'">
295
- <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
298
+ <code #code>
299
+ <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
300
+ </code>
296
301
  </ng-container>
297
302
  <ng-container *ngIf="display !== 'inline'">
298
303
  <svg cdsIcon="copy" size="16" class="cds--snippet__icon"></svg>
@@ -301,7 +306,7 @@ CodeSnippet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
301
306
  </ng-template>
302
307
 
303
308
  <ng-template #codeTemplate>
304
- <code #code><ng-content></ng-content></code>
309
+ <ng-content></ng-content>
305
310
  </ng-template>
306
311
  `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] });
307
312
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CodeSnippet, decorators: [{
@@ -319,7 +324,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
319
324
  [ngClass]="{
320
325
  'cds--snippet--light': theme === 'light'
321
326
  }">
322
- <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
327
+ <code #code>
328
+ <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
329
+ </code>
323
330
  </span>
324
331
  </ng-template>
325
332
  </ng-container>
@@ -344,7 +351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
344
351
  <pre
345
352
  #codeContent
346
353
  *ngIf="!skeleton"
347
- (scroll)="(display === 'multi' ? handleScroll() : null)"><ng-container *ngTemplateOutlet="codeTemplate"></ng-container></pre>
354
+ (scroll)="(display === 'multi' ? handleScroll() : null)"><code #code><ng-container *ngTemplateOutlet="codeTemplate"></ng-container></code></pre>
348
355
  </div>
349
356
  <div *ngIf="hasLeft" class="cds--snippet__overflow-indicator--left"></div>
350
357
  <div *ngIf="hasRight" class="cds--snippet__overflow-indicator--right"></div>
@@ -390,7 +397,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
390
397
  'tabindex': '0'
391
398
  }">
392
399
  <ng-container *ngIf="display === 'inline'">
393
- <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
400
+ <code #code>
401
+ <ng-container *ngTemplateOutlet="codeTemplate"></ng-container>
402
+ </code>
394
403
  </ng-container>
395
404
  <ng-container *ngIf="display !== 'inline'">
396
405
  <svg cdsIcon="copy" size="16" class="cds--snippet__icon"></svg>
@@ -399,7 +408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
399
408
  </ng-template>
400
409
 
401
410
  <ng-template #codeTemplate>
402
- <code #code><ng-content></ng-content></code>
411
+ <ng-content></ng-content>
403
412
  </ng-template>
404
413
  `
405
414
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-code-snippet.mjs","sources":["../../src/code-snippet/code-snippet.component.ts","../../src/code-snippet/code-snippet.module.ts","../../src/code-snippet/carbon-components-angular-code-snippet.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tViewChild,\n\tAfterViewInit,\n\tOnInit\n} from \"@angular/core\";\n\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\nexport enum SnippetType {\n\tsingle = \"single\",\n\tmulti = \"multi\",\n\tinline = \"inline\"\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { CodeSnippetModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-code-snippet>Code</cds-code-snippet>\n * ```\n *\n * [See demo](../../?path=/story/components-code-snippet--basic)\n */\n@Component({\n\tselector: \"cds-code-snippet, ibm-code-snippet\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"display === 'inline'; else notInline\">\n\t\t\t<ng-container *ngIf=\"!hideCopyButton; else noBtnInline\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<ng-template #noBtnInline>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cds--snippet cds--snippet--inline cds--snippet--no-copy\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--snippet--light': theme === 'light'\n\t\t\t\t\t}\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t</span>\n\t\t\t</ng-template>\n\t\t</ng-container>\n\n\t\t<ng-template #notInline>\n\t\t\t<div\n\t\t\t\t#codeContainer\n\t\t\t\tclass=\"cds--snippet-container\"\n\t\t\t\t[attr.aria-label]=\"translations.CODE_SNIPPET_TEXT\"\n\t\t\t\t[attr.tabindex]=\"display === 'single' && !disabled ? '0' : null\"\n\t\t\t\t[attr.role]=\"display==='single' ? 'textarea' : null\"\n\t\t\t\t[ngStyle]=\"styles\"\n\t\t\t\t(scroll)=\"(display === 'single' ? handleScroll() : null)\">\n\t\t\t\t<ng-container *ngIf=\"skeleton\">\n\t\t\t\t\t<span *ngIf=\"display === 'single'; else multiSkeleton\"></span>\n\t\t\t\t\t<ng-template #multiSkeleton>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</ng-container>\n\t\t\t\t<pre\n\t\t\t\t\t#codeContent\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\t(scroll)=\"(display === 'multi' ? handleScroll() : null)\"><ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container></pre>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"hasLeft\" class=\"cds--snippet__overflow-indicator--left\"></div>\n\t\t\t<div *ngIf=\"hasRight\" class=\"cds--snippet__overflow-indicator--right\"></div>\n\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t<button\n\t\t\t\t*ngIf=\"isExpandable\"\n\t\t\t\tclass=\"cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand\"\n\t\t\t\t(click)=\"toggleSnippetExpansion()\"\n\t\t\t\ttype=\"button\">\n\t\t\t\t<span class=\"cds--snippet-btn--text\">{{expanded ? translations.SHOW_LESS : translations.SHOW_MORE}}</span>\n\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\" class=\"cds--icon-chevron--down\" [attr.aria-label]=\"translations.SHOW_MORE_ICON\"></svg>\n\t\t\t</button>\n\t\t</ng-template>\n\n\t\t<ng-template #buttonTemplate>\n\t\t\t<cds-icon-button\n\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t[description]=\"showFeedback ? feedbackText : copyButtonDescription\"\n\t\t\t\t[align]=\"align\"\n\t\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t\t[caret]=\"caret\"\n\t\t\t\t[highContrast]=\"highContrast\"\n\t\t\t\t[isOpen]=\"isOpen\"\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tkind=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(click)=\"onCopyButtonClicked($event)\"\n\t\t\t\t[buttonNgClass]=\"{\n\t\t\t\t\t'cds--snippet--light': theme === 'light',\n\t\t\t\t\t'cds--snippet--inline': display === 'inline',\n\t\t\t\t\t'cds--btn--icon-only': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn--animating': animating,\n\t\t\t\t\t'cds--copy-btn--fade-in': showFeedback,\n\t\t\t\t\t'cds--copy-btn--fade-out': !showFeedback && animating,\n\t\t\t\t\t'cds--snippet cds--copy': true\n\t\t\t\t}\"\n\t\t\t\t[buttonAttributes]=\"{\n\t\t\t\t\t'aria-label': translations.COPY_CODE,\n\t\t\t\t\t'aria-live': 'polite',\n\t\t\t\t\t'tabindex': '0'\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"display === 'inline'\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t</ng-container>\n\t\t\t\t<ng-container *ngIf=\"display !== 'inline'\">\n\t\t\t\t\t<svg cdsIcon=\"copy\" size=\"16\" class=\"cds--snippet__icon\"></svg>\n\t\t\t\t</ng-container>\n\t\t\t</cds-icon-button>\n\t\t</ng-template>\n\n\t\t<ng-template #codeTemplate>\n\t\t\t<code #code><ng-content></ng-content></code>\n\t\t</ng-template>\n\t`\n})\nexport class CodeSnippet extends BaseIconButton implements OnInit, AfterViewInit {\n\t@HostBinding(\"class.cds--snippet\") get snippetClass() {\n\t\treturn this.display !== SnippetType.inline;\n\t}\n\t@HostBinding(\"class.cds--snippet--single\") get snippetSingleClass() {\n\t\treturn this.display === SnippetType.single;\n\t}\n\t@HostBinding(\"class.cds--snippet--multi\") get snippetMultiClass() {\n\t\treturn this.display === SnippetType.multi;\n\t}\n\t@HostBinding(\"class.cds--snippet--disabled\") get snippetDisabledClass() {\n\t\treturn this.display !== \"inline\" && this.disabled;\n\t}\n\t@HostBinding(\"class.cds--snippet--light\") get snippetInlineLightClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\n\treadonly rowHeightInPixel: number = 16;\n\n\t/**\n\t * It can be `\"single\"`, `\"multi\"` or `\"inline\"`\n\t */\n\t@Input() display: SnippetType = SnippetType.single;\n\t@Input() translations = this.i18n.get().CODE_SNIPPET;\n\t/**\n\t * copy button description to show on hover\n\t */\n\t@Input() copyButtonDescription: string;\n\t/**\n\t * Set to `true` to hide copy button\n\t */\n\t@Input() hideCopyButton = false;\n\t/**\n\t * Set to `true` to disable the code snippet\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Specify the max number of rows to show when collapsed\n\t * Default is `15`\n\t */\n\t@Input() maxCollapsedNumberOfRows = 15;\n\t/**\n\t * Specify the min number of rows to show when collapsed\n\t * Default is `3`\n\t */\n\t@Input() minCollapsedNumberOfRows = 3;\n\t/**\n\t * Specify the max number of rows to show when expanded\n\t * Default is `0`, hence all content will be visible when expanded\n\t */\n\t@Input() maxExpandedNumberOfRows = 0;\n\t/**\n\t * Specify the min number of rows to show when expanded\n\t * Default is `16`, hence height of expanded row will be 16 * rowHeightInPixel (16) = 256px\n\t */\n\t@Input() minExpandedNumberOfRows = 16;\n\t/**\n\t * Set to `true` to wrap the text\n\t */\n\t@HostBinding(\"class.cds--snippet--wraptext\") @Input() wrapText = false;\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\t/**\n\t * Text displayed in the tooltip when user clicks button to copy code.\n\t */\n\t@Input() feedbackText = this.translations.COPIED;\n\t/**\n\t * Time in miliseconds to keep the feedback tooltip displayed.\n\t * Defaults to 2 seconds\n\t */\n\t@Input() feedbackTimeout = 2000;\n\n\t@HostBinding(\"class.cds--snippet--expand\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\tstyles: any = {};\n\n\t@ViewChild(\"code\") code;\n\t@ViewChild(\"codeContent\") codeContent;\n\t@ViewChild(\"codeContainer\") codeContainer;\n\n\tshowFeedback = false;\n\tanimating = false;\n\thasExpandButton = null;\n\tisExpandable = false;\n\thasRightOverflow = false;\n\n\thasRight = false;\n\thasLeft = false;\n\n\t/**\n\t * Creates an instance of CodeSnippet.\n\t */\n\tconstructor(protected i18n: I18n, protected eventService: EventService) {\n\t\tsuper();\n\t\tthis.dropShadow = false;\n\t}\n\n\thandleScroll() {\n\t\tlet ref;\n\t\tswitch (this.display) {\n\t\t\tcase \"multi\":\n\t\t\t\tref = this.codeContent.nativeElement;\n\t\t\t\tbreak;\n\t\t\tcase \"single\":\n\t\t\t\tref = this.codeContainer.nativeElement;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t\tif (ref) {\n\t\t\tconst {\n\t\t\t\tscrollWidth,\n\t\t\t\tclientWidth,\n\t\t\t\tscrollLeft\n\t\t\t} = ref;\n\t\t\tconst horizontalOverflow = scrollWidth > clientWidth;\n\t\t\tthis.hasLeft = horizontalOverflow && !!scrollLeft;\n\t\t\tthis.hasRight = horizontalOverflow && scrollLeft + clientWidth !== scrollWidth;\n\t\t}\n\t}\n\n\ttoggleSnippetExpansion() {\n\t\tthis.expanded = !this.expanded;\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tonCopyButtonClicked() {\n\t\tif (!this.disabled) {\n\t\t\twindow.navigator.clipboard\n\t\t\t\t.writeText(this.code.nativeElement.innerText || this.code.nativeElement.textContent).then(() => {\n\t\t\t\t\tthis.showFeedback = true;\n\t\t\t\t\tthis.animating = true;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.showFeedback = false;\n\t\t\t\t\t\tthis.animating = false;\n\t\t\t\t\t}, this.feedbackTimeout);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.calculateContainerHeight();\n\t\tif (window) {\n\t\t\tthis.eventService.on(window as any, \"resize\", () => {\n\t\t\t\tthis.canExpand();\n\t\t\t\tthis.handleScroll();\n\t\t\t});\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.canExpand();\n\t\t\tthis.handleScroll();\n\t\t});\n\t}\n\n\tcalculateContainerHeight() {\n\t\tif (this.display === \"multi\") {\n\t\t\tthis.styles = {};\n\t\t\tif (this.expanded) {\n\t\t\t\tif (this.maxExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.maxCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected canExpand() {\n\t\tif (this.display === \"multi\") {\n\t\t\tconst height = this.codeContent.nativeElement.getBoundingClientRect().height;\n\t\t\tif (\n\t\t\t\tthis.maxCollapsedNumberOfRows > 0 &&\n\t\t\t\t(this.maxExpandedNumberOfRows <= 0 ||\n\t\t\t\t\tthis.maxExpandedNumberOfRows > this.maxCollapsedNumberOfRows) &&\n\t\t\t\theight > this.maxCollapsedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = true;\n\t\t\t} else {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.expanded &&\n\t\t\t\tthis.minExpandedNumberOfRows > 0 &&\n\t\t\t\theight <= this.minExpandedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\n\n// imports\nimport { CodeSnippet } from \"./code-snippet.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tCodeSnippet\n\t],\n\texports: [\n\t\tCodeSnippet\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t]\n})\nexport class CodeSnippetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;IAaY,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACtB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AAClB,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAED;;;;;;;;;;;;AAYG;AAkGG,MAAO,WAAY,SAAQ,cAAc,CAAA;AA4F9C;;AAEG;IACH,WAAsB,CAAA,IAAU,EAAY,YAA0B,EAAA;AACrE,QAAA,KAAK,EAAE,CAAC;QADa,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;QAAY,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QA9E7D,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAEvC;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAgB,WAAW,CAAC,MAAM,CAAC;QAC1C,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;AAKrD;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAChC;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC1B;;;AAGG;QACM,IAAwB,CAAA,wBAAA,GAAG,EAAE,CAAC;AACvC;;;AAGG;QACM,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;AACtC;;;AAGG;QACM,IAAuB,CAAA,uBAAA,GAAG,CAAC,CAAC;AACrC;;;AAGG;QACM,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;AACtC;;AAEG;QACmD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACvE;;;AAGG;QACM,IAAK,CAAA,KAAA,GAAqB,MAAM,CAAC;AAC1C;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACjD;;;AAGG;QACM,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QAEoB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAC9D,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;QAMjB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAEzB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAOf,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACxB;AAjGD,IAAA,IAAuC,YAAY,GAAA;AAClD,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,MAAM,CAAC;KAC3C;AACD,IAAA,IAA+C,kBAAkB,GAAA;AAChE,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,MAAM,CAAC;KAC3C;AACD,IAAA,IAA8C,iBAAiB,GAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC;KAC1C;AACD,IAAA,IAAiD,oBAAoB,GAAA;QACpE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;KAClD;AACD,IAAA,IAA8C,uBAAuB,GAAA;AACpE,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;KAC9B;IAqFD,YAAY,GAAA;AACX,QAAA,IAAI,GAAG,CAAC;QACR,QAAQ,IAAI,CAAC,OAAO;AACnB,YAAA,KAAK,OAAO;AACX,gBAAA,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;gBACrC,MAAM;AACP,YAAA,KAAK,QAAQ;AACZ,gBAAA,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;gBACvC,MAAM;AACP,YAAA;gBACC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,GAAG,EAAE;YACR,MAAM,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,GAAG,GAAG,CAAC;AACR,YAAA,MAAM,kBAAkB,GAAG,WAAW,GAAG,WAAW,CAAC;YACrD,IAAI,CAAC,OAAO,GAAG,kBAAkB,IAAI,CAAC,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,QAAQ,GAAG,kBAAkB,IAAI,UAAU,GAAG,WAAW,KAAK,WAAW,CAAC;AAC/E,SAAA;KACD;IAED,sBAAsB,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,wBAAwB,EAAE,CAAC;KAChC;IAED,mBAAmB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,CAAC,SAAS,CAAC,SAAS;iBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAK;AAC9F,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,UAAU,CAAC,MAAK;AACf,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,iBAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1B,aAAC,CAAC,CAAC;AACJ,SAAA;KACD;IAED,QAAQ,GAAA;QACP,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,QAAA,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAa,EAAE,QAAQ,EAAE,MAAK;gBAClD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,aAAC,CAAC,CAAC;AACH,SAAA;KACD;IAED,eAAe,GAAA;QACd,UAAU,CAAC,MAAK;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAC,CAAC,CAAC;KACH;IAED,wBAAwB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,uBAAuB,GAAG,CAAC,EAAE;AACrC,oBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC;AACxF,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,uBAAuB,GAAG,CAAC,EAAE;AACrC,oBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC;AACxF,iBAAA;AACD,aAAA;AAAM,iBAAA;AACN,gBAAA,IAAI,IAAI,CAAC,wBAAwB,GAAG,CAAC,EAAE;AACtC,oBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC;AACzF,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,wBAAwB,GAAG,CAAC,EAAE;AACtC,oBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC;AACzF,iBAAA;AACD,aAAA;AACD,SAAA;KACD;IAES,SAAS,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;AAC7E,YAAA,IACC,IAAI,CAAC,wBAAwB,GAAG,CAAC;AACjC,iBAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC;AACjC,oBAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAC9D,MAAM,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,EAC7D;AACD,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,aAAA;AAAM,iBAAA;AACN,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,aAAA;YAED,IACC,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,uBAAuB,GAAG,CAAC;gBAChC,MAAM,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAC7D;AACD,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,aAAA;AACD,SAAA;KACD;;wGA3MW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EA/Fb,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,2BAAA,EAAA,2BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,WAAW,EAAA,UAAA,EAAA,CAAA;kBAjGvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FT,CAAA,CAAA;AACD,iBAAA,CAAA;sHAEuC,YAAY,EAAA,CAAA;sBAAlD,WAAW;uBAAC,oBAAoB,CAAA;gBAGc,kBAAkB,EAAA,CAAA;sBAAhE,WAAW;uBAAC,4BAA4B,CAAA;gBAGK,iBAAiB,EAAA,CAAA;sBAA9D,WAAW;uBAAC,2BAA2B,CAAA;gBAGS,oBAAoB,EAAA,CAAA;sBAApE,WAAW;uBAAC,8BAA8B,CAAA;gBAGG,uBAAuB,EAAA,CAAA;sBAApE,WAAW;uBAAC,2BAA2B,CAAA;gBAS/B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAIG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBAKG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBAKG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAKG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAIgD,QAAQ,EAAA,CAAA;sBAA7D,WAAW;uBAAC,8BAA8B,CAAA;;sBAAG,KAAK;gBAK1C,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAE8C,QAAQ,EAAA,CAAA;sBAA3D,WAAW;uBAAC,4BAA4B,CAAA;;sBAAG,KAAK;gBACJ,QAAQ,EAAA,CAAA;sBAApD,WAAW;uBAAC,qBAAqB,CAAA;;sBAAG,KAAK;gBAGvB,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;gBACS,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBACI,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;;;AClN3B;MA0Ba,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAjB,iBAAiB,EAAA,YAAA,EAAA,CAb5B,WAAW,CAAA,EAAA,OAAA,EAAA,CAMX,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,WAAW;AACX,QAAA,UAAU,aAPV,WAAW,CAAA,EAAA,CAAA,CAAA;AAUA,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAP5B,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,WAAW;QACX,UAAU,CAAA,EAAA,CAAA,CAAA;2FAGC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE;wBACb,WAAW;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,WAAW;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,YAAY;wBACZ,YAAY;wBACZ,UAAU;wBACV,WAAW;wBACX,UAAU;AACV,qBAAA;AACD,iBAAA,CAAA;;;ACzBD;;AAEG;;;;"}
1
+ {"version":3,"file":"carbon-components-angular-code-snippet.mjs","sources":["../../src/code-snippet/code-snippet.component.ts","../../src/code-snippet/code-snippet.module.ts","../../src/code-snippet/carbon-components-angular-code-snippet.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tViewChild,\n\tAfterViewInit,\n\tOnInit\n} from \"@angular/core\";\n\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\nexport enum SnippetType {\n\tsingle = \"single\",\n\tmulti = \"multi\",\n\tinline = \"inline\"\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { CodeSnippetModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-code-snippet>Code</cds-code-snippet>\n * ```\n *\n * [See demo](../../?path=/story/components-code-snippet--basic)\n */\n@Component({\n\tselector: \"cds-code-snippet, ibm-code-snippet\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"display === 'inline'; else notInline\">\n\t\t\t<ng-container *ngIf=\"!hideCopyButton; else noBtnInline\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<ng-template #noBtnInline>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cds--snippet cds--snippet--inline cds--snippet--no-copy\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--snippet--light': theme === 'light'\n\t\t\t\t\t}\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</span>\n\t\t\t</ng-template>\n\t\t</ng-container>\n\n\t\t<ng-template #notInline>\n\t\t\t<div\n\t\t\t\t#codeContainer\n\t\t\t\tclass=\"cds--snippet-container\"\n\t\t\t\t[attr.aria-label]=\"translations.CODE_SNIPPET_TEXT\"\n\t\t\t\t[attr.tabindex]=\"display === 'single' && !disabled ? '0' : null\"\n\t\t\t\t[attr.role]=\"display==='single' ? 'textarea' : null\"\n\t\t\t\t[ngStyle]=\"styles\"\n\t\t\t\t(scroll)=\"(display === 'single' ? handleScroll() : null)\">\n\t\t\t\t<ng-container *ngIf=\"skeleton\">\n\t\t\t\t\t<span *ngIf=\"display === 'single'; else multiSkeleton\"></span>\n\t\t\t\t\t<ng-template #multiSkeleton>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</ng-container>\n\t\t\t\t<pre\n\t\t\t\t\t#codeContent\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\t(scroll)=\"(display === 'multi' ? handleScroll() : null)\"><code #code><ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container></code></pre>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"hasLeft\" class=\"cds--snippet__overflow-indicator--left\"></div>\n\t\t\t<div *ngIf=\"hasRight\" class=\"cds--snippet__overflow-indicator--right\"></div>\n\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t<button\n\t\t\t\t*ngIf=\"isExpandable\"\n\t\t\t\tclass=\"cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand\"\n\t\t\t\t(click)=\"toggleSnippetExpansion()\"\n\t\t\t\ttype=\"button\">\n\t\t\t\t<span class=\"cds--snippet-btn--text\">{{expanded ? translations.SHOW_LESS : translations.SHOW_MORE}}</span>\n\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\" class=\"cds--icon-chevron--down\" [attr.aria-label]=\"translations.SHOW_MORE_ICON\"></svg>\n\t\t\t</button>\n\t\t</ng-template>\n\n\t\t<ng-template #buttonTemplate>\n\t\t\t<cds-icon-button\n\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t[description]=\"showFeedback ? feedbackText : copyButtonDescription\"\n\t\t\t\t[align]=\"align\"\n\t\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t\t[caret]=\"caret\"\n\t\t\t\t[highContrast]=\"highContrast\"\n\t\t\t\t[isOpen]=\"isOpen\"\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tkind=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(click)=\"onCopyButtonClicked($event)\"\n\t\t\t\t[buttonNgClass]=\"{\n\t\t\t\t\t'cds--snippet--light': theme === 'light',\n\t\t\t\t\t'cds--snippet--inline': display === 'inline',\n\t\t\t\t\t'cds--btn--icon-only': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn--animating': animating,\n\t\t\t\t\t'cds--copy-btn--fade-in': showFeedback,\n\t\t\t\t\t'cds--copy-btn--fade-out': !showFeedback && animating,\n\t\t\t\t\t'cds--snippet cds--copy': true\n\t\t\t\t}\"\n\t\t\t\t[buttonAttributes]=\"{\n\t\t\t\t\t'aria-label': translations.COPY_CODE,\n\t\t\t\t\t'aria-live': 'polite',\n\t\t\t\t\t'tabindex': '0'\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"display === 'inline'\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</ng-container>\n\t\t\t\t<ng-container *ngIf=\"display !== 'inline'\">\n\t\t\t\t\t<svg cdsIcon=\"copy\" size=\"16\" class=\"cds--snippet__icon\"></svg>\n\t\t\t\t</ng-container>\n\t\t\t</cds-icon-button>\n\t\t</ng-template>\n\n\t\t<ng-template #codeTemplate>\n\t\t\t<ng-content></ng-content>\n\t\t</ng-template>\n\t`\n})\nexport class CodeSnippet extends BaseIconButton implements OnInit, AfterViewInit {\n\t@HostBinding(\"class.cds--snippet\") get snippetClass() {\n\t\treturn this.display !== SnippetType.inline;\n\t}\n\t@HostBinding(\"class.cds--snippet--single\") get snippetSingleClass() {\n\t\treturn this.display === SnippetType.single;\n\t}\n\t@HostBinding(\"class.cds--snippet--multi\") get snippetMultiClass() {\n\t\treturn this.display === SnippetType.multi;\n\t}\n\t@HostBinding(\"class.cds--snippet--disabled\") get snippetDisabledClass() {\n\t\treturn this.display !== \"inline\" && this.disabled;\n\t}\n\t@HostBinding(\"class.cds--snippet--light\") get snippetInlineLightClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\n\treadonly rowHeightInPixel: number = 16;\n\n\t/**\n\t * It can be `\"single\"`, `\"multi\"` or `\"inline\"`\n\t */\n\t@Input() display: SnippetType = SnippetType.single;\n\t@Input() translations = this.i18n.get().CODE_SNIPPET;\n\t/**\n\t * copy button description to show on hover\n\t */\n\t@Input() copyButtonDescription: string;\n\t/**\n\t * Set to `true` to hide copy button\n\t */\n\t@Input() hideCopyButton = false;\n\t/**\n\t * Set to `true` to disable the code snippet\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Specify the max number of rows to show when collapsed\n\t * Default is `15`\n\t */\n\t@Input() maxCollapsedNumberOfRows = 15;\n\t/**\n\t * Specify the min number of rows to show when collapsed\n\t * Default is `3`\n\t */\n\t@Input() minCollapsedNumberOfRows = 3;\n\t/**\n\t * Specify the max number of rows to show when expanded\n\t * Default is `0`, hence all content will be visible when expanded\n\t */\n\t@Input() maxExpandedNumberOfRows = 0;\n\t/**\n\t * Specify the min number of rows to show when expanded\n\t * Default is `16`, hence height of expanded row will be 16 * rowHeightInPixel (16) = 256px\n\t */\n\t@Input() minExpandedNumberOfRows = 16;\n\t/**\n\t * Set to `true` to wrap the text\n\t */\n\t@HostBinding(\"class.cds--snippet--wraptext\") @Input() wrapText = false;\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\t/**\n\t * Text displayed in the tooltip when user clicks button to copy code.\n\t */\n\t@Input() feedbackText = this.translations.COPIED;\n\t/**\n\t * Time in miliseconds to keep the feedback tooltip displayed.\n\t * Defaults to 2 seconds\n\t */\n\t@Input() feedbackTimeout = 2000;\n\n\t@HostBinding(\"class.cds--snippet--expand\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\tstyles: any = {};\n\n\t@ViewChild(\"code\") code;\n\t@ViewChild(\"codeContent\") codeContent;\n\t@ViewChild(\"codeContainer\") codeContainer;\n\n\tshowFeedback = false;\n\tanimating = false;\n\thasExpandButton = null;\n\tisExpandable = false;\n\thasRightOverflow = false;\n\n\thasRight = false;\n\thasLeft = false;\n\n\t/**\n\t * Creates an instance of CodeSnippet.\n\t */\n\tconstructor(protected i18n: I18n, protected eventService: EventService) {\n\t\tsuper();\n\t\tthis.dropShadow = false;\n\t}\n\n\thandleScroll() {\n\t\tif (this.skeleton) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet ref;\n\t\tswitch (this.display) {\n\t\t\tcase \"multi\":\n\t\t\t\tref = this.codeContent.nativeElement;\n\t\t\t\tbreak;\n\t\t\tcase \"single\":\n\t\t\t\tref = this.codeContainer.nativeElement;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t\tif (ref) {\n\t\t\tconst {\n\t\t\t\tscrollWidth,\n\t\t\t\tclientWidth,\n\t\t\t\tscrollLeft\n\t\t\t} = ref;\n\t\t\tconst horizontalOverflow = scrollWidth > clientWidth;\n\t\t\tthis.hasLeft = horizontalOverflow && !!scrollLeft;\n\t\t\tthis.hasRight = horizontalOverflow && scrollLeft + clientWidth !== scrollWidth;\n\t\t}\n\t}\n\n\ttoggleSnippetExpansion() {\n\t\tthis.expanded = !this.expanded;\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tonCopyButtonClicked() {\n\t\tif (!this.disabled) {\n\t\t\twindow.navigator.clipboard\n\t\t\t\t.writeText(this.code).then(() => {\n\t\t\t\t\tthis.showFeedback = true;\n\t\t\t\t\tthis.animating = true;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.showFeedback = false;\n\t\t\t\t\t\tthis.animating = false;\n\t\t\t\t\t}, this.feedbackTimeout);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.canExpand();\n\t\tthis.handleScroll();\n\t\tif (window) {\n\t\t\tthis.eventService.on(window as any, \"resize\", () => {\n\t\t\t\tthis.canExpand();\n\t\t\t\tthis.handleScroll();\n\t\t\t});\n\t\t}\n\t}\n\n\tcalculateContainerHeight() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tthis.styles = {};\n\t\t\tif (this.expanded) {\n\t\t\t\tif (this.maxExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.maxCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected canExpand() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tconst height = this.codeContent.nativeElement.getBoundingClientRect().height;\n\t\t\tif (\n\t\t\t\tthis.maxCollapsedNumberOfRows > 0 &&\n\t\t\t\t(this.maxExpandedNumberOfRows <= 0 ||\n\t\t\t\t\tthis.maxExpandedNumberOfRows > this.maxCollapsedNumberOfRows) &&\n\t\t\t\theight > this.maxCollapsedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = true;\n\t\t\t} else {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.expanded &&\n\t\t\t\tthis.minExpandedNumberOfRows > 0 &&\n\t\t\t\theight <= this.minExpandedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\n\n// imports\nimport { CodeSnippet } from \"./code-snippet.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tCodeSnippet\n\t],\n\texports: [\n\t\tCodeSnippet\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t]\n})\nexport class CodeSnippetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -115,7 +115,9 @@ class Search {
115
115
  this.propagateChange = (_) => { };
116
116
  Search.searchCount++;
117
117
  }
118
- get containerClass() { return !(this.toolbar || this.expandable); }
118
+ get containerClass() {
119
+ return !(this.toolbar || this.expandable);
120
+ }
119
121
  /**
120
122
  * This is the initial value set to the component
121
123
  * @param value The input value.
@@ -173,12 +175,20 @@ class Search {
173
175
  keyDown(event) {
174
176
  if (this.toolbar || this.expandable) {
175
177
  if (event.key === "Escape") {
176
- this.active = false;
178
+ if (this.value === "") {
179
+ this.active = false;
180
+ this.open.emit(this.active);
181
+ }
177
182
  }
178
183
  else if (event.key === "Enter") {
179
184
  this.openSearch();
180
185
  }
181
186
  }
187
+ if (event.key === "Escape") {
188
+ if (this.value !== "") {
189
+ this.clearSearch();
190
+ }
191
+ }
182
192
  }
183
193
  focusOut(event) {
184
194
  this.onTouched();
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-search.mjs","sources":["../../src/search/search.component.ts","../../src/search/search.component.html","../../src/search/search.module.ts","../../src/search/carbon-components-angular-search.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tEventEmitter,\n\tOutput,\n\tHostBinding,\n\tElementRef,\n\tHostListener,\n\tViewChild\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { SearchModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-search--basic)\n */\n@Component({\n\tselector: \"cds-search, ibm-search\",\n\ttemplateUrl: \"search.component.html\",\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: Search,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class Search implements ControlValueAccessor {\n\t/**\n\t * Variable used for creating unique ids for search components.\n\t */\n\tstatic searchCount = 0;\n\n\t@HostBinding(\"class.cds--form-item\") get containerClass() { return !(this.toolbar || this.expandable); }\n\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * `light` or `dark` search theme.\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\n\t/**\n\t * Size of the search field.\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n\t/**\n\t * Set to `true` for a disabled search input.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` for a toolbar search component.\n\t */\n\t@Input() toolbar = false;\n\t/**\n\t * Set to `true` to make the search component expandable.\n\t * `expandable` would override `toolbar` property behaviours.\n\t */\n\t@Input() expandable = false;\n\t/**\n\t * Set to `true` for a loading search component.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * Set to `true` to expand the toolbar search component.\n\t */\n\t@Input() active = false;\n\t/**\n\t * Specifies whether the search component is used in the table toolbar.\n\t */\n\t@Input() tableSearch = false;\n\t/**\n\t * Sets the name attribute on the `input` element.\n\t */\n\t@Input() name: string;\n\t/**\n\t * The unique id for the search component.\n\t */\n\t@Input() id = `search-${Search.searchCount}`;\n\t/**\n\t * Reflects the required attribute of the `input` element.\n\t */\n\t@Input() required: boolean;\n\t/**\n\t * Sets the value attribute on the `input` element.\n\t */\n\t@Input() value = \"\";\n\t/**\n\t * Sets the autocomplete attribute on the `input` element.\n\t * For reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#Values\n\t */\n\t@Input() autocomplete = \"on\";\n\t/**\n\t * Sets the text inside the `label` tag.\n\t */\n\t@Input() label = this.i18n.get().SEARCH.LABEL;\n\t/**\n\t * Sets the placeholder attribute on the `input` element.\n\t */\n\t@Input() placeholder = this.i18n.get().SEARCH.PLACEHOLDER;\n\t/**\n\t * Used to set the `title` attribute of the clear button.\n\t */\n\t@Input() clearButtonTitle = this.i18n.get().SEARCH.CLEAR_BUTTON;\n\t/**\n\t * Title for the search trigger\n\t */\n\t@Input() searchTitle = \"\";\n\t/**\n\t * Sets the aria label on the `div` element with the `search` role.\n\t */\n\t@Input() ariaLabel: string;\n\t/**\n\t * Emits an event when value is changed.\n\t */\n\t@Output() valueChange = new EventEmitter<string>();\n\t@Output() open = new EventEmitter<boolean>();\n\t/**\n\t * Emits an event when the clear button is clicked.\n\t */\n\t@Output() clear = new EventEmitter();\n\t/**\n\t * Emits an event on enter.\n\t */\n\t@Output() search = new EventEmitter<string>();\n\n\t@ViewChild(\"input\") inputRef: ElementRef;\n\n\t/**\n\t * Sets `true` when composing text via IME.\n\t */\n\tprotected isComposing = false;\n\n\t/**\n\t * Creates an instance of `Search`.\n\t * @param i18n The i18n translations.\n\t */\n\tconstructor(protected elementRef: ElementRef, protected i18n: I18n) {\n\t\tSearch.searchCount++;\n\t}\n\n\t/**\n\t * This is the initial value set to the component\n\t * @param value The input value.\n\t */\n\tpublic writeValue(value: any) {\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * Sets a method in order to propagate changes back to the form.\n\t */\n\tpublic registerOnChange(fn: any) {\n\t\tthis.propagateChange = fn;\n\t}\n\n\t/**\n\t * Registers a callback to be triggered when the control has been touched.\n\t * @param fn Callback to be triggered when the search input is touched.\n\t */\n\tpublic registerOnTouched(fn: any) {\n\t\tthis.onTouched = fn;\n\t}\n\n\t/**\n\t * Called when search input is blurred. Needed to properly implement `ControlValueAccessor`.\n\t */\n\tonTouched: () => any = () => {};\n\n\t/**\n\t * Method set in `registerOnChange` to propagate changes back to the form.\n\t */\n\tpropagateChange = (_: any) => {};\n\n\t/**\n\t * Called when text is written in the input.\n\t * @param search The input text.\n\t */\n\tonSearch(search: string) {\n\t\tif (this.isComposing) { // check for IME use\n\t\t\treturn;\n\t\t}\n\t\tthis.value = search;\n\t\tthis.doValueChange();\n\t}\n\n\t/**\n\t * Called on enter.\n\t */\n\tonEnter() {\n\t\tthis.search.emit(this.value);\n\t}\n\n\t/**\n\t * Called when clear button is clicked.\n\t */\n\tclearSearch(): void {\n\t\tthis.value = \"\";\n\t\tthis.clear.emit();\n\t\tthis.propagateChange(this.value);\n\t}\n\n\tdoValueChange() {\n\t\tthis.valueChange.emit(this.value);\n\t\tthis.propagateChange(this.value);\n\t}\n\n\topenSearch() {\n\t\tthis.active = true;\n\t\tthis.open.emit(this.active);\n\t\tsetTimeout(() => this.inputRef.nativeElement.focus());\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\tkeyDown(event: KeyboardEvent) {\n\t\tif (this.toolbar || this.expandable) {\n\t\t\tif (event.key === \"Escape\") {\n\t\t\t\tthis.active = false;\n\t\t\t} else if (event.key === \"Enter\") {\n\t\t\t\tthis.openSearch();\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener(\"focusout\", [\"$event\"])\n\tfocusOut(event) {\n\t\tthis.onTouched();\n\t\tif ((this.expandable || this.toolbar) &&\n\t\t\tthis.inputRef &&\n\t\t\tthis.inputRef.nativeElement.value === \"\" &&\n\t\t\t!(this.elementRef.nativeElement as HTMLElement).contains(event.relatedTarget)) {\n\t\t\tthis.active = false;\n\t\t\tthis.open.emit(this.active);\n\t\t}\n\t}\n\n\t@HostListener(\"focusin\", [\"$event\"])\n\tfocusIn(event) {\n\t\tthis.onTouched();\n\t\t// set input focus if search icon get focus from tab key press event.\n\t\tif ((this.expandable || this.toolbar) &&\n\t\t\tthis.inputRef && !event.relatedTarget &&\n\t\t\t!(this.elementRef.nativeElement as HTMLElement).contains(event.relatedTarget) ) {\n\t\t\tthis.openSearch();\n\t\t}\n\t}\n\n\t/**\n\t * Called when using IME composition.\n\t */\n\t@HostListener(\"compositionstart\", [\"$event\"])\n\tcompositionStart(event) {\n\t\tthis.isComposing = true;\n\t}\n\n\t/**\n\t * Called when IME composition finishes.\n\t */\n\t@HostListener(\"compositionend\", [\"$event\"])\n\tcompositionEnd(event) {\n\t\tthis.isComposing = false;\n\t\tthis.onSearch(this.value + event.data);\n\t}\n}\n","<div\n\tclass=\"cds--search\"\n\t[ngClass]=\"{\n\t\t'cds--search--sm': size === 'sm',\n\t\t'cds--search--md': size === 'md',\n\t\t'cds--search--lg': size === 'lg',\n\t\t'cds--search--light': theme === 'light',\n\t\t'cds--skeleton': skeleton,\n\t\t'cds--search--expandable': expandable && !tableSearch,\n\t\t'cds--search--expanded': expandable && !tableSearch && active,\n\t\t'cds--toolbar-search': toolbar && !expandable,\n\t\t'cds--toolbar-search--active': toolbar && !expandable && active,\n\t\t'cds--toolbar-search-container-persistent': tableSearch && !expandable,\n\t\t'cds--toolbar-search-container-expandable': tableSearch && expandable,\n\t\t'cds--toolbar-search-container-active': tableSearch && expandable && active\n\t}\"\n\trole=\"search\"\n\t[attr.aria-label]=\"ariaLabel\"\n\t(click)=\"openSearch()\">\n\t<label class=\"cds--label\" [for]=\"id\">{{label}}</label>\n\n\t<div *ngIf=\"skeleton; else enableInput\" class=\"cds--search-input\"></div>\n\t<ng-template #enableInput>\n\t\t<input\n\t\t\t#input\n\t\t\tclass=\"cds--search-input\"\n\t\t\t[type]=\"tableSearch || !toolbar ? 'text' : 'search'\"\n\t\t\t[id]=\"id\"\n\t\t\t[value]=\"value\"\n\t\t\t[autocomplete]=\"autocomplete\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[required]=\"required\"\n\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t(keyup.enter)=\"onEnter()\"/>\n\t\t<button\n\t\t\t*ngIf=\"!tableSearch && toolbar\"\n\t\t\tclass=\"cds--toolbar-search__btn\"\n\t\t\t(click)=\"openSearch()\"\n\t\t\taria-label=\"Open search\">\n\t\t\t<svg cdsIcon=\"search\" size=\"16\" class=\"cds--search-magnifier-icon\"></svg>\n\t\t</button>\n\t\t<svg\n\t\t\tcdsIcon=\"search\"\n\t\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\t\tclass=\"cds--search-magnifier-icon\"\n\t\t\tsize=\"16\">\n\t\t</svg>\n\t</ng-template>\n\n\t<button\n\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\tclass=\"cds--search-close\"\n\t\t[ngClass]=\"{\n\t\t\t'cds--search-close--hidden': !value || value.length === 0\n\t\t}\"\n\t\t[title]=\"clearButtonTitle\"\n\t\t(click)=\"clearSearch()\">\n\t\t<span class=\"cds--visually-hidden\">{{ clearButtonTitle }}</span>\n\t\t<svg cdsIcon=\"close\" size=\"16\"></svg>\n\t</button>\n</div>\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { Search } from \"./search.component\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tSearch\n\t],\n\texports: [\n\t\tSearch\n\t],\n\timports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tI18nModule,\n\t\tIconModule\n\t]\n})\nexport class SearchModule { }\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-search.mjs","sources":["../../src/search/search.component.ts","../../src/search/search.component.html","../../src/search/search.module.ts","../../src/search/carbon-components-angular-search.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tEventEmitter,\n\tOutput,\n\tHostBinding,\n\tElementRef,\n\tHostListener,\n\tViewChild\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { SearchModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-search--basic)\n */\n@Component({\n\tselector: \"cds-search, ibm-search\",\n\ttemplateUrl: \"search.component.html\",\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: Search,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class Search implements ControlValueAccessor {\n\t/**\n\t * Variable used for creating unique ids for search components.\n\t */\n\tstatic searchCount = 0;\n\n\t@HostBinding(\"class.cds--form-item\") get containerClass() {\n\t\treturn !(this.toolbar || this.expandable);\n\t}\n\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * `light` or `dark` search theme.\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\n\t/**\n\t * Size of the search field.\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\n\t/**\n\t * Set to `true` for a disabled search input.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` for a toolbar search component.\n\t */\n\t@Input() toolbar = false;\n\t/**\n\t * Set to `true` to make the search component expandable.\n\t * `expandable` would override `toolbar` property behaviours.\n\t */\n\t@Input() expandable = false;\n\t/**\n\t * Set to `true` for a loading search component.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * Set to `true` to expand the toolbar search component.\n\t */\n\t@Input() active = false;\n\t/**\n\t * Specifies whether the search component is used in the table toolbar.\n\t */\n\t@Input() tableSearch = false;\n\t/**\n\t * Sets the name attribute on the `input` element.\n\t */\n\t@Input() name: string;\n\t/**\n\t * The unique id for the search component.\n\t */\n\t@Input() id = `search-${Search.searchCount}`;\n\t/**\n\t * Reflects the required attribute of the `input` element.\n\t */\n\t@Input() required: boolean;\n\t/**\n\t * Sets the value attribute on the `input` element.\n\t */\n\t@Input() value = \"\";\n\t/**\n\t * Sets the autocomplete attribute on the `input` element.\n\t * For reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#Values\n\t */\n\t@Input() autocomplete = \"on\";\n\t/**\n\t * Sets the text inside the `label` tag.\n\t */\n\t@Input() label = this.i18n.get().SEARCH.LABEL;\n\t/**\n\t * Sets the placeholder attribute on the `input` element.\n\t */\n\t@Input() placeholder = this.i18n.get().SEARCH.PLACEHOLDER;\n\t/**\n\t * Used to set the `title` attribute of the clear button.\n\t */\n\t@Input() clearButtonTitle = this.i18n.get().SEARCH.CLEAR_BUTTON;\n\t/**\n\t * Title for the search trigger\n\t */\n\t@Input() searchTitle = \"\";\n\t/**\n\t * Sets the aria label on the `div` element with the `search` role.\n\t */\n\t@Input() ariaLabel: string;\n\t/**\n\t * Emits an event when value is changed.\n\t */\n\t@Output() valueChange = new EventEmitter<string>();\n\t@Output() open = new EventEmitter<boolean>();\n\t/**\n\t * Emits an event when the clear button is clicked.\n\t */\n\t@Output() clear = new EventEmitter();\n\t/**\n\t * Emits an event on enter.\n\t */\n\t@Output() search = new EventEmitter<string>();\n\n\t@ViewChild(\"input\") inputRef: ElementRef;\n\n\t/**\n\t * Sets `true` when composing text via IME.\n\t */\n\tprotected isComposing = false;\n\n\t/**\n\t * Creates an instance of `Search`.\n\t * @param i18n The i18n translations.\n\t */\n\tconstructor(protected elementRef: ElementRef, protected i18n: I18n) {\n\t\tSearch.searchCount++;\n\t}\n\n\t/**\n\t * This is the initial value set to the component\n\t * @param value The input value.\n\t */\n\tpublic writeValue(value: any) {\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * Sets a method in order to propagate changes back to the form.\n\t */\n\tpublic registerOnChange(fn: any) {\n\t\tthis.propagateChange = fn;\n\t}\n\n\t/**\n\t * Registers a callback to be triggered when the control has been touched.\n\t * @param fn Callback to be triggered when the search input is touched.\n\t */\n\tpublic registerOnTouched(fn: any) {\n\t\tthis.onTouched = fn;\n\t}\n\n\t/**\n\t * Called when search input is blurred. Needed to properly implement `ControlValueAccessor`.\n\t */\n\tonTouched: () => any = () => {};\n\n\t/**\n\t * Method set in `registerOnChange` to propagate changes back to the form.\n\t */\n\tpropagateChange = (_: any) => {};\n\n\t/**\n\t * Called when text is written in the input.\n\t * @param search The input text.\n\t */\n\tonSearch(search: string) {\n\t\tif (this.isComposing) { // check for IME use\n\t\t\treturn;\n\t\t}\n\t\tthis.value = search;\n\t\tthis.doValueChange();\n\t}\n\n\t/**\n\t * Called on enter.\n\t */\n\tonEnter() {\n\t\tthis.search.emit(this.value);\n\t}\n\n\t/**\n\t * Called when clear button is clicked.\n\t */\n\tclearSearch(): void {\n\t\tthis.value = \"\";\n\t\tthis.clear.emit();\n\t\tthis.propagateChange(this.value);\n\t}\n\n\tdoValueChange() {\n\t\tthis.valueChange.emit(this.value);\n\t\tthis.propagateChange(this.value);\n\t}\n\n\topenSearch() {\n\t\tthis.active = true;\n\t\tthis.open.emit(this.active);\n\t\tsetTimeout(() => this.inputRef.nativeElement.focus());\n\t}\n\n\t@HostListener(\"keydown\", [\"$event\"])\n\tkeyDown(event: KeyboardEvent) {\n\t\tif (this.toolbar || this.expandable) {\n\t\t\tif (event.key === \"Escape\") {\n\t\t\t\tif (this.value === \"\") {\n\t\t\t\t\tthis.active = false;\n\t\t\t\t\tthis.open.emit(this.active);\n\t\t\t\t}\n\t\t\t} else if (event.key === \"Enter\") {\n\t\t\t\tthis.openSearch();\n\t\t\t}\n\t\t}\n\n\t\tif (event.key === \"Escape\") {\n\t\t\tif (this.value !== \"\") {\n\t\t\t\tthis.clearSearch();\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener(\"focusout\", [\"$event\"])\n\tfocusOut(event) {\n\t\tthis.onTouched();\n\t\tif ((this.expandable || this.toolbar) &&\n\t\t\tthis.inputRef &&\n\t\t\tthis.inputRef.nativeElement.value === \"\" &&\n\t\t\t!(this.elementRef.nativeElement as HTMLElement).contains(event.relatedTarget)) {\n\t\t\tthis.active = false;\n\t\t\tthis.open.emit(this.active);\n\t\t}\n\t}\n\n\t@HostListener(\"focusin\", [\"$event\"])\n\tfocusIn(event) {\n\t\tthis.onTouched();\n\t\t// set input focus if search icon get focus from tab key press event.\n\t\tif ((this.expandable || this.toolbar) &&\n\t\t\tthis.inputRef && !event.relatedTarget &&\n\t\t\t!(this.elementRef.nativeElement as HTMLElement).contains(event.relatedTarget) ) {\n\t\t\tthis.openSearch();\n\t\t}\n\t}\n\n\t/**\n\t * Called when using IME composition.\n\t */\n\t@HostListener(\"compositionstart\", [\"$event\"])\n\tcompositionStart(event) {\n\t\tthis.isComposing = true;\n\t}\n\n\t/**\n\t * Called when IME composition finishes.\n\t */\n\t@HostListener(\"compositionend\", [\"$event\"])\n\tcompositionEnd(event) {\n\t\tthis.isComposing = false;\n\t\tthis.onSearch(this.value + event.data);\n\t}\n}\n","<div\n\tclass=\"cds--search\"\n\t[ngClass]=\"{\n\t\t'cds--search--sm': size === 'sm',\n\t\t'cds--search--md': size === 'md',\n\t\t'cds--search--lg': size === 'lg',\n\t\t'cds--search--light': theme === 'light',\n\t\t'cds--skeleton': skeleton,\n\t\t'cds--search--expandable': expandable && !tableSearch,\n\t\t'cds--search--expanded': expandable && !tableSearch && active,\n\t\t'cds--toolbar-search': toolbar && !expandable,\n\t\t'cds--toolbar-search--active': toolbar && !expandable && active,\n\t\t'cds--toolbar-search-container-persistent': tableSearch && !expandable,\n\t\t'cds--toolbar-search-container-expandable': tableSearch && expandable,\n\t\t'cds--toolbar-search-container-active': tableSearch && expandable && active\n\t}\"\n\trole=\"search\"\n\t[attr.aria-label]=\"ariaLabel\"\n\t(click)=\"openSearch()\">\n\t<label class=\"cds--label\" [for]=\"id\">{{label}}</label>\n\n\t<div *ngIf=\"skeleton; else enableInput\" class=\"cds--search-input\"></div>\n\t<ng-template #enableInput>\n\t\t<input\n\t\t\t#input\n\t\t\tclass=\"cds--search-input\"\n\t\t\t[type]=\"tableSearch || !toolbar ? 'text' : 'search'\"\n\t\t\t[id]=\"id\"\n\t\t\t[value]=\"value\"\n\t\t\t[autocomplete]=\"autocomplete\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[required]=\"required\"\n\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t(keyup.enter)=\"onEnter()\"/>\n\t\t<button\n\t\t\t*ngIf=\"!tableSearch && toolbar\"\n\t\t\tclass=\"cds--toolbar-search__btn\"\n\t\t\t(click)=\"openSearch()\"\n\t\t\taria-label=\"Open search\">\n\t\t\t<svg cdsIcon=\"search\" size=\"16\" class=\"cds--search-magnifier-icon\"></svg>\n\t\t</button>\n\t\t<svg\n\t\t\tcdsIcon=\"search\"\n\t\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\t\tclass=\"cds--search-magnifier-icon\"\n\t\t\tsize=\"16\">\n\t\t</svg>\n\t</ng-template>\n\n\t<button\n\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\tclass=\"cds--search-close\"\n\t\t[ngClass]=\"{\n\t\t\t'cds--search-close--hidden': !value || value.length === 0\n\t\t}\"\n\t\t[title]=\"clearButtonTitle\"\n\t\t(click)=\"clearSearch()\">\n\t\t<span class=\"cds--visually-hidden\">{{ clearButtonTitle }}</span>\n\t\t<svg cdsIcon=\"close\" size=\"16\"></svg>\n\t</button>\n</div>\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { Search } from \"./search.component\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tSearch\n\t],\n\texports: [\n\t\tSearch\n\t],\n\timports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tI18nModule,\n\t\tIconModule\n\t]\n})\nexport class SearchModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}