carbon-components-angular 5.56.2 → 5.56.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/docs/documentation/components/ComboBox.html +1 -1
  2. package/docs/documentation/components/Pagination.html +3 -3
  3. package/docs/documentation/directives/IconDirective.html +7 -6
  4. package/docs/documentation/interfaces/PaginationTranslations.html +1 -1
  5. package/docs/documentation/js/search/search_index.js +2 -2
  6. package/docs/documentation/modules/TilesModule/dependencies.svg +106 -106
  7. package/docs/documentation/modules/TilesModule.html +106 -106
  8. package/docs/documentation/modules/TimePickerModule/dependencies.svg +41 -45
  9. package/docs/documentation/modules/TimePickerModule.html +41 -45
  10. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +24 -24
  11. package/docs/documentation/modules/TimePickerSelectModule.html +24 -24
  12. package/docs/documentation/modules/ToggleModule/dependencies.svg +41 -45
  13. package/docs/documentation/modules/ToggleModule.html +41 -45
  14. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  15. package/docs/documentation/modules/ToggletipModule.html +4 -4
  16. package/docs/documentation/modules/TooltipModule/dependencies.svg +4 -4
  17. package/docs/documentation/modules/TooltipModule.html +4 -4
  18. package/docs/documentation/modules/TreeviewModule/dependencies.svg +36 -36
  19. package/docs/documentation/modules/TreeviewModule.html +36 -36
  20. package/docs/documentation.json +11 -11
  21. package/docs/storybook/1919.2a2b79ce.iframe.bundle.js +1 -0
  22. package/docs/storybook/7141.a08b411a.iframe.bundle.js +1 -0
  23. package/docs/storybook/{8341.d095fdee.iframe.bundle.js → 8341.8e19136f.iframe.bundle.js} +1 -1
  24. package/docs/storybook/9672.4c384e0d.iframe.bundle.js +1 -0
  25. package/docs/storybook/accordion-accordion-stories.75536b46.iframe.bundle.js +1 -0
  26. package/docs/storybook/button-button-set-stories.386c621a.iframe.bundle.js +1 -0
  27. package/docs/storybook/button-button-stories.585caa8e.iframe.bundle.js +1 -0
  28. package/docs/storybook/button-icon-button-stories.e0297847.iframe.bundle.js +1 -0
  29. package/docs/storybook/code-snippet-code-snippet-stories.07e87dc8.iframe.bundle.js +1 -0
  30. package/docs/storybook/combobox-combobox-stories.7419dc2f.iframe.bundle.js +1 -0
  31. package/docs/storybook/context-menu-context-menu-stories.7c62ce72.iframe.bundle.js +1 -0
  32. package/docs/storybook/datepicker-datepicker-stories.9d6520e8.iframe.bundle.js +1 -0
  33. package/docs/storybook/dropdown-dropdown-stories.b9550377.iframe.bundle.js +1 -0
  34. package/docs/storybook/icon-icon-stories.01483f14.iframe.bundle.js +1 -0
  35. package/docs/storybook/iframe.html +2 -2
  36. package/docs/storybook/index-stories.3c2dfd9a.iframe.bundle.js +1 -0
  37. package/docs/storybook/inline-loading-inline-loading-stories.3e44df84.iframe.bundle.js +1 -0
  38. package/docs/storybook/input-input-stories.91b3cf3f.iframe.bundle.js +1 -0
  39. package/docs/storybook/input-password-stories.84bacb0d.iframe.bundle.js +1 -0
  40. package/docs/storybook/input-textarea-stories.b8280606.iframe.bundle.js +1 -0
  41. package/docs/storybook/link-link-stories.d959ec78.iframe.bundle.js +1 -0
  42. package/docs/storybook/main.93a62a71.iframe.bundle.js +1 -0
  43. package/docs/storybook/number-input-number-stories.6575121c.iframe.bundle.js +1 -0
  44. package/docs/storybook/patterns-loading-large-loading-stories.14eab3d2.iframe.bundle.js +1 -0
  45. package/docs/storybook/progress-bar-progress-bar-stories.b009f3f0.iframe.bundle.js +1 -0
  46. package/docs/storybook/{7141.9d9ce230.iframe.bundle.js → progress-indicator-progress-indicator-stories.633e03cd.iframe.bundle.js} +1 -1
  47. package/docs/storybook/project.json +1 -1
  48. package/docs/storybook/radio-radio-stories.befaf83a.iframe.bundle.js +1 -0
  49. package/docs/storybook/{runtime~main.48ab60ff.iframe.bundle.js → runtime~main.f0dc5a47.iframe.bundle.js} +1 -1
  50. package/docs/storybook/search-search-stories.b0e346d3.iframe.bundle.js +1 -0
  51. package/docs/storybook/structured-list-structured-list-stories.01f1468d.iframe.bundle.js +1 -0
  52. package/docs/storybook/tag-tag-stories.c5c2cc86.iframe.bundle.js +1 -0
  53. package/docs/storybook/treeview-treeview-stories.be34c320.iframe.bundle.js +1 -0
  54. package/docs/storybook/ui-shell-ui-shell-stories.80c8e5a5.iframe.bundle.js +1 -0
  55. package/esm2020/combobox/combobox.component.mjs +2 -2
  56. package/esm2020/icon/icon.directive.mjs +4 -3
  57. package/esm2020/pagination/pagination.component.mjs +3 -3
  58. package/fesm2015/carbon-components-angular-combobox.mjs +1 -1
  59. package/fesm2015/carbon-components-angular-combobox.mjs.map +1 -1
  60. package/fesm2015/carbon-components-angular-icon.mjs +3 -2
  61. package/fesm2015/carbon-components-angular-icon.mjs.map +1 -1
  62. package/fesm2015/carbon-components-angular-pagination.mjs +2 -2
  63. package/fesm2015/carbon-components-angular-pagination.mjs.map +1 -1
  64. package/fesm2020/carbon-components-angular-combobox.mjs +1 -1
  65. package/fesm2020/carbon-components-angular-combobox.mjs.map +1 -1
  66. package/fesm2020/carbon-components-angular-icon.mjs +3 -2
  67. package/fesm2020/carbon-components-angular-icon.mjs.map +1 -1
  68. package/fesm2020/carbon-components-angular-pagination.mjs +2 -2
  69. package/fesm2020/carbon-components-angular-pagination.mjs.map +1 -1
  70. package/package.json +1 -1
  71. package/docs/storybook/1919.75654e64.iframe.bundle.js +0 -1
  72. package/docs/storybook/9672.a4277bf9.iframe.bundle.js +0 -1
  73. package/docs/storybook/accordion-accordion-stories.f0e7b598.iframe.bundle.js +0 -1
  74. package/docs/storybook/button-button-set-stories.1094a620.iframe.bundle.js +0 -1
  75. package/docs/storybook/button-button-stories.a0ff29b1.iframe.bundle.js +0 -1
  76. package/docs/storybook/button-icon-button-stories.db9a9ba5.iframe.bundle.js +0 -1
  77. package/docs/storybook/code-snippet-code-snippet-stories.cc0ddba0.iframe.bundle.js +0 -1
  78. package/docs/storybook/combobox-combobox-stories.2d3b97eb.iframe.bundle.js +0 -1
  79. package/docs/storybook/context-menu-context-menu-stories.431b9c7a.iframe.bundle.js +0 -1
  80. package/docs/storybook/datepicker-datepicker-stories.2f076085.iframe.bundle.js +0 -1
  81. package/docs/storybook/dropdown-dropdown-stories.0a8f052e.iframe.bundle.js +0 -1
  82. package/docs/storybook/icon-icon-stories.e234de11.iframe.bundle.js +0 -1
  83. package/docs/storybook/index-stories.69d5a816.iframe.bundle.js +0 -1
  84. package/docs/storybook/inline-loading-inline-loading-stories.fea34c40.iframe.bundle.js +0 -1
  85. package/docs/storybook/input-input-stories.68ee4653.iframe.bundle.js +0 -1
  86. package/docs/storybook/input-password-stories.3084ebfc.iframe.bundle.js +0 -1
  87. package/docs/storybook/input-textarea-stories.e3f84fc4.iframe.bundle.js +0 -1
  88. package/docs/storybook/link-link-stories.d436099f.iframe.bundle.js +0 -1
  89. package/docs/storybook/main.2e1da19e.iframe.bundle.js +0 -1
  90. package/docs/storybook/number-input-number-stories.1e4ea9f3.iframe.bundle.js +0 -1
  91. package/docs/storybook/patterns-loading-large-loading-stories.67f20584.iframe.bundle.js +0 -1
  92. package/docs/storybook/progress-bar-progress-bar-stories.9a58678a.iframe.bundle.js +0 -1
  93. package/docs/storybook/progress-indicator-progress-indicator-stories.981734fc.iframe.bundle.js +0 -1
  94. package/docs/storybook/radio-radio-stories.035c4409.iframe.bundle.js +0 -1
  95. package/docs/storybook/search-search-stories.6bd22f30.iframe.bundle.js +0 -1
  96. package/docs/storybook/structured-list-structured-list-stories.905f4b86.iframe.bundle.js +0 -1
  97. package/docs/storybook/tag-tag-stories.8b0e9efc.iframe.bundle.js +0 -1
  98. package/docs/storybook/treeview-treeview-stories.a7ea66bb.iframe.bundle.js +0 -1
  99. package/docs/storybook/ui-shell-ui-shell-stories.157336b4.iframe.bundle.js +0 -1
@@ -263,7 +263,7 @@ Pagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
263
263
  <option *ngFor="let page of pageOptions; let i = index;" class="cds--select-option" [value]="i + 1">{{i + 1}}</option>
264
264
  </select>
265
265
  <svg
266
- *ngIf="pageOptions.length <= 1000"
266
+ *ngIf="pageOptions.length <= pageSelectThreshold"
267
267
  cdsIcon="chevron--down"
268
268
  size="16"
269
269
  style="display: inherit;"
@@ -406,7 +406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
406
406
  <option *ngFor="let page of pageOptions; let i = index;" class="cds--select-option" [value]="i + 1">{{i + 1}}</option>
407
407
  </select>
408
408
  <svg
409
- *ngIf="pageOptions.length <= 1000"
409
+ *ngIf="pageOptions.length <= pageSelectThreshold"
410
410
  cdsIcon="chevron--down"
411
411
  size="16"
412
412
  style="display: inherit;"
@@ -480,4 +480,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
480
480
  }], selectPage: [{
481
481
  type: Output
482
482
  }] } });
483
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7QUFjeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUErSUgsTUFBTSxPQUFPLFVBQVU7SUE4SnRCLFlBQXNCLElBQVUsRUFBWSxZQUFpQztRQUF2RCxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksaUJBQVksR0FBWixZQUFZLENBQXFCO1FBM0o3RTs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFLMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ25DOztXQUVHO1FBQ00sa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUI7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFpQ3BDOzs7O1dBSUc7UUFDTSx3QkFBbUIsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5RDs7Ozs7V0FLRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBcUVsRCx5QkFBb0IsR0FBRyxvQ0FBb0MsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcsa0NBQWtDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXZGLHFCQUFnQixHQUFHLElBQUksQ0FBQyxJ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UUFBUTtzQkFBaEIsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFtQkYsWUFBWTtzQkFEZixLQUFLO2dCQW9CRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBUUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2luYXRpb25Nb2RlbCB9IGZyb20gXCIuL3BhZ2luYXRpb24tbW9kZWwuY2xhc3NcIjtcbmltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEkxOG4sIE92ZXJyaWRhYmxlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgRXhwZXJpbWVudGFsU2VydmljZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2V4cGVyaW1lbnRhbFwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci91dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25UcmFuc2xhdGlvbnMge1xuXHRJVEVNU19QRVJfUEFHRTogc3RyaW5nO1xuXHRPUEVOX0xJU1RfT0ZfT1BUSU9OUzogc3RyaW5nO1xuXHRCQUNLV0FSRDogc3RyaW5nO1xuXHRGT1JXQVJEOiBzdHJpbmc7XG5cdFRPVEFMX0lURU1TX1VOS05PV046IHN0cmluZztcblx0VE9UQUxfSVRFTVM6IHN0cmluZztcblx0VE9UQUxfSVRFTTogc3RyaW5nO1xuXHRPRl9MQVNUX1BBR0VTOiBzdHJpbmc7XG5cdE9GX0xBU1RfUEFHRTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZSBwYWdpbmF0aW9uIHdoZW4geW91IGhhdmUgbXVsdGlwbGUgcGFnZXMgb2YgZGF0YSB0byBoYW5kbGUuIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICpcdDxjZHMtcGFnaW5hdGlvbiBbbW9kZWxdPVwibW9kZWxcIiAoc2VsZWN0UGFnZSk9XCJzZWxlY3RQYWdlKCRldmVudClcIj48L2Nkcy1wYWdpbmF0aW9uPlxuICogYGBgXG4gKlxuICogSW4geW91ciBgc2VsZWN0UGFnZSgpYCBtZXRob2Qgc2V0IHRoZSBgbW9kZWwuY3VycmVudFBhZ2VgIHRvIHNlbGVjdGVkIHBhZ2UsIF9hZnRlcl9cbiAqIHlvdSBsb2FkIHRoZSBwYWdlLlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNlbGVjdFBhZ2UocGFnZSkge1xuICogXHQvLyAuLi4geW91ciBjb2RlIHRvIGxvYWQgdGhlIHBhZ2UgZ29lcyBoZXJlXG4gKlxuICogXHR0aGlzLm1vZGVsLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAqXG4gKiBcdC8vIC4uLiBhbnl0aGluZyB5b3Ugd2FudCB0byBkbyBhZnRlciBwYWdlIHNlbGVjdGlvbiBjaGFuZ2VzIGdvZXMgaGVyZVxuICogfVxuICogYGBgXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy1wYWdpbmF0aW9uLS1iYXNpYylcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1wYWdpbmF0aW9uLCBpYm0tcGFnaW5hdGlvblwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJjZHMtLXBhZ2luYXRpb25cIlxuXHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdCdjZHMtLXNrZWxldG9uJzogc2tlbGV0b25cblx0XHR9XCI+XG5cdFx0PCEtLSBsZWZ0IHNrZWxldG9uIGRpdiAtLT5cblx0XHQ8ZGl2ICpuZ0lmPVwic2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fbGVmdFwiPlxuXHRcdFx0PHAgY2xhc3M9XCJjZHMtLXNrZWxldG9uX190ZXh0XCIgc3R5bGU9XCJ3aWR0aDogNzBweFwiPjwvcD5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDM1cHhcIj48L3A+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiAxMDVweFwiPjwvcD5cblx0XHQ8L2Rpdj5cblxuXHRcdDxkaXYgKm5nSWY9XCIhc2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fbGVmdFwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdlSW5wdXRcIj5cblx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0XCIgW2Zvcl09XCJpdGVtc1BlclBhZ2VTZWxlY3RJZFwiPlxuXHRcdFx0XHRcdHt7aXRlbXNQZXJQYWdlVGV4dC5zdWJqZWN0IHwgYXN5bmN9fVxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdCBjZHMtLXNlbGVjdC0taW5saW5lIGNkcy0tc2VsZWN0X19pdGVtLWNvdW50XCJcblx0XHRcdFx0XHRbY2xhc3MuY2RzLS1zZWxlY3QtLWRpc2FibGVkXT1cInBhZ2VJbnB1dERpc2FibGVkXCI+XG5cdFx0XHRcdFx0PHNlbGVjdFxuXHRcdFx0XHRcdFx0W2lkXT1cIml0ZW1zUGVyUGFnZVNlbGVjdElkXCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwiaXRlbXNQZXJQYWdlXCJcblx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0XCI+XG5cdFx0XHRcdFx0XHQ8b3B0aW9uXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3Qtb3B0aW9uXCJcblx0XHRcdFx0XHRcdFx0Km5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtc1BlclBhZ2VPcHRpb25zXCJcblx0XHRcdFx0XHRcdFx0W3ZhbHVlXT1cIm9wdGlvblwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7IG9wdGlvbiB9fVxuXHRcdFx0XHRcdFx0PC9vcHRpb24+XG5cdFx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHRcdFx0PHN2Z1xuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZXZyb24tLWRvd25cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZGlzcGxheTogaW5oZXJpdFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0X19hcnJvd1wiXG5cdFx0XHRcdFx0XHRhcmlhLWhpZGRlbj1cInRydWVcIlxuXHRcdFx0XHRcdFx0W2F0dHIuYXJpYUxhYmVsXT1cIm9wdGlvbnNMaXN0VGV4dC5zdWJqZWN0IHwgYXN5bmNcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiB0b3RhbERhdGFMZW5ndGggPD0gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9faXRlbXMtY291bnRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbVRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOntzdGFydDogc3RhcnRJdGVtSW5kZXgsIGVuZDogZW5kSXRlbUluZGV4LCB0b3RhbDogdG90YWxEYXRhTGVuZ3RoIH0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgdG90YWxEYXRhTGVuZ3RoID4gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9faXRlbXMtY291bnRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbXNUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZTp7c3RhcnQ6IHN0YXJ0SXRlbUluZGV4LCBlbmQ6IGVuZEl0ZW1JbmRleCwgdG90YWw6IHRvdGFsRGF0YUxlbmd0aCB9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCJwYWdlc1Vua25vd25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dCBjZHMtLXBhZ2luYXRpb25fX2l0ZW1zLWNvdW50XCIgW25nU3R5bGVdPVwieydtYXJnaW4tbGVmdCc6IHNob3dQYWdlSW5wdXQgPyBudWxsIDogMH1cIj5cblx0XHRcdFx0e3t0b3RhbEl0ZW1zVW5rbm93blRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOntzdGFydDogc3RhcnRJdGVtSW5kZXgsIGVuZDogZW5kSXRlbUluZGV4IH0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0PC9kaXY+XG5cblx0XHQ8IS0tIHJpZ2h0IHNrZWxldG9uIGRpdiAtLT5cblx0XHQ8ZGl2ICpuZ0lmPVwic2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fcmlnaHRcIj5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDcwcHhcIj48L3A+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2ICpuZ0lmPVwiIXNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3JpZ2h0XCI+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cInBhZ2VzVW5rbm93blwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9fcGFnZS10ZXh0XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1BhZ2VJbnB1dFwiPnt7Y3VycmVudFBhZ2V9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR7e3BhZ2VUZXh0LnN1YmplY3QgfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1BhZ2VJbnB1dFwiPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdCBjZHMtLXNlbGVjdC0taW5saW5lIGNkcy0tc2VsZWN0X19wYWdlLW51bWJlclwiXG5cdFx0XHRcdFx0W2NsYXNzLmNkcy0tc2VsZWN0LS1kaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiPlxuXHRcdFx0XHRcdDxsYWJlbCBbZm9yXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIiBjbGFzcz1cImNkcy0tbGFiZWwgY2RzLS12aXN1YWxseS1oaWRkZW5cIj57e3BhZ2VUZXh0LnN1YmplY3QgfCBhc3luY319PC9sYWJlbD5cblx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoID4gcGFnZVNlbGVjdFRocmVzaG9sZFwiXG5cdFx0XHRcdFx0XHRzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDFyZW07IG1hcmdpbi1yaWdodDogMXJlbTtcIlxuXHRcdFx0XHRcdFx0W2lkXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIlxuXHRcdFx0XHRcdFx0dHlwZT1cIm51bWJlclwiXG5cdFx0XHRcdFx0XHRtaW49XCIxXCJcblx0XHRcdFx0XHRcdFttYXhdPVwicGFnZU9wdGlvbnMubGVuZ3RoXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIlxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50UGFnZVwiPlxuXHRcdFx0XHRcdDxzZWxlY3Rcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoIDw9IHBhZ2VTZWxlY3RUaHJlc2hvbGRcIlxuXHRcdFx0XHRcdFx0W2lkXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dFwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIlxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50UGFnZVwiPlxuXHRcdFx0XHRcdFx0PG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlT3B0aW9uczsgbGV0IGkgPSBpbmRleDtcIiBjbGFzcz1cImNkcy0tc2VsZWN0LW9wdGlvblwiIFt2YWx1ZV09XCJpICsgMVwiPnt7aSArIDF9fTwvb3B0aW9uPlxuXHRcdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoIDw9IDEwMDBcIlxuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZXZyb24tLWRvd25cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZGlzcGxheTogaW5oZXJpdDtcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdF9fYXJyb3dcIlxuXHRcdFx0XHRcdFx0W2F0dHIuYXJpYUxhYmVsXT1cIm9wdGlvbnNMaXN0VGV4dC5zdWJqZWN0IHwgYXN5bmNcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhcGFnZXNVbmtub3duICYmIGxhc3RQYWdlIDw9IDFcIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dQYWdlSW5wdXRcIj57e2N1cnJlbnRQYWdlfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0e3tvZkxhc3RQYWdlVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6IHtsYXN0OiBsYXN0UGFnZX0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgbGFzdFBhZ2UgPiAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UGFnZUlucHV0XCI+e3tjdXJyZW50UGFnZX19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdHt7b2ZMYXN0UGFnZXNUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZToge2xhc3Q6IGxhc3RQYWdlfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2NvbnRyb2wtYnV0dG9uc1wiPlxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0Y2RzQnV0dG9uPVwiZ2hvc3RcIlxuXHRcdFx0XHRcdGljb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2J1dHRvbiBjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tYmFja3dhcmRcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tbm8taW5kZXgnOiBjdXJyZW50UGFnZSA8PSAxIHx8IGRpc2FibGVkXG5cdFx0XHRcdFx0fVwiXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImJhY2t3YXJkVGV4dC5zdWJqZWN0IHwgYXN5bmNcIlxuXHRcdFx0XHRcdChjbGljayk9XCJzZWxlY3RQYWdlLmVtaXQocHJldmlvdXNQYWdlKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cIihjdXJyZW50UGFnZSA8PSAxIHx8IGRpc2FibGVkID8gdHJ1ZSA6IG51bGwpXCI+XG5cdFx0XHRcdFx0PHN2ZyBjZHNJY29uPVwiY2FyZXQtLWxlZnRcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXG5cdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRjZHNCdXR0b249XCJnaG9zdFwiXG5cdFx0XHRcdFx0aWNvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRjbGFzcz1cIlxuXHRcdFx0XHRcdFx0Y2RzLS1wYWdpbmF0aW9uX19idXR0b25cblx0XHRcdFx0XHRcdGNkcy0tcGFnaW5hdGlvbl9fYnV0dG9uLS1mb3J3YXJkXCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0XHQnY2RzLS1wYWdpbmF0aW9uX19idXR0b24tLW5vLWluZGV4JzogY3VycmVudFBhZ2UgPj0gbGFzdFBhZ2UgfHwgZGlzYWJsZWRcblx0XHRcdFx0XHR9XCJcblx0XHRcdFx0XHR0YWJpbmRleD1cIjBcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiZm9yd2FyZFRleHQuc3ViamVjdCB8IGFzeW5jXCJcblx0XHRcdFx0XHQoY2xpY2spPVwic2VsZWN0UGFnZS5lbWl0KG5leHRQYWdlKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cIihjdXJyZW50UGFnZSA+PSBsYXN0UGFnZSB8fCBkaXNhYmxlZCA/IHRydWUgOiBudWxsKVwiPlxuXHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNhcmV0LS1yaWdodFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbiB7XG5cdHN0YXRpYyBwYWdpbmF0aW9uQ291bnRlciA9IDA7XG5cblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBwYWdpbmF0aW9uIGNvbXBvbmVudC5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBgUGFnaW5hdGlvbk1vZGVsYCB3aXRoIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBwYWdlcyB5b3UncmUgY29udHJvbGxpbmcuXG5cdCAqL1xuXHRASW5wdXQoKSBtb2RlbDogUGFnaW5hdGlvbk1vZGVsO1xuXHQvKipcbiBcdCAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgYmFja3dhcmQvZm9yd2FyZCBidXR0b25zLlxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgc2VsZWN0IGJveCB0aGF0IGNoYW5nZXMgdGhlIHBhZ2UuXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlSW5wdXREaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogQ29udHJvbHMgd2V0aGVyIG9yIG5vdCB0byBzaG93IHRoZSBwYWdlIHNlbGVjdHNcblx0ICovXG5cdEBJbnB1dCgpIHNob3dQYWdlSW5wdXQgPSB0cnVlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBpZiB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGlzIHVua25vd24uXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlc1Vua25vd24gPSBmYWxzZTtcblx0QElucHV0KCkgcGFnZVNlbGVjdFRocmVzaG9sZCA9IDEwMDA7XG5cblx0LyoqXG5cdCAqIEV4cGVjdHMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgc29tZSBvciBhbGwgb2Y6XG5cdCAqIGBgYFxuXHQgKiB7XG5cdCAqXHRcdFwiSVRFTVNfUEVSX1BBR0VcIjogXCJJdGVtcyBwZXIgcGFnZTpcIixcblx0ICpcdFx0XCJPUEVOX0xJU1RfT0ZfT1BUSU9OU1wiOiBcIk9wZW4gbGlzdCBvZiBvcHRpb25zXCIsXG5cdCAqXHRcdFwiQkFDS1dBUkRcIjogXCJCYWNrd2FyZFwiLFxuXHQgKlx0XHRcIkZPUldBUkRcIjogXCJGb3J3YXJkXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVNfVU5LTk9XTlwiOiBcInt7c3RhcnR9fS17e2VuZH19IGl0ZW1zXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVNcIjogXCJ7e3N0YXJ0fX0te3tlbmR9fSBvZiB7e3RvdGFsfX0gaXRlbXNcIixcblx0ICpcdFx0XCJUT1RBTF9JVEVNXCI6IFwie3tzdGFydH19LXt7ZW5kfX0gb2Yge3t0b3RhbH19IGl0ZW1cIixcblx0ICpcdFx0XCJPRl9MQVNUX1BBR0VTXCI6IFwib2Yge3tsYXN0fX0gcGFnZXNcIixcblx0ICpcdFx0XCJPRl9MQVNUX1BBR0VcIjogXCJvZiB7e2xhc3R9fSBwYWdlXCJcblx0ICogfVxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgpXG5cdHNldCB0cmFuc2xhdGlvbnMgKHZhbHVlOiBQYWdpbmF0aW9uVHJhbnNsYXRpb25zKSB7XG5cdFx0Y29uc3QgdmFsdWVXaXRoRGVmYXVsdHMgPSBtZXJnZSh0aGlzLmkxOG4uZ2V0TXVsdGlwbGUoXCJQQUdJTkFUSU9OXCIpLCB2YWx1ZSk7XG5cdFx0dGhpcy5pdGVtc1BlclBhZ2VUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLklURU1TX1BFUl9QQUdFKTtcblx0XHR0aGlzLm9wdGlvbnNMaXN0VGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5PUEVOX0xJU1RfT0ZfT1BUSU9OUyk7XG5cdFx0dGhpcy5iYWNrd2FyZFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuQkFDS1dBUkQpO1xuXHRcdHRoaXMuZm9yd2FyZFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuRk9SV0FSRCk7XG5cdFx0dGhpcy50b3RhbEl0ZW1zVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5UT1RBTF9JVEVNUyk7XG5cdFx0dGhpcy50b3RhbEl0ZW1UZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlRPVEFMX0lURU0pO1xuXHRcdHRoaXMudG90YWxJdGVtc1Vua25vd25UZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlRPVEFMX0lURU1TX1VOS05PV04pO1xuXHRcdHRoaXMucGFnZVRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuUEFHRSk7XG5cdFx0dGhpcy5vZkxhc3RQYWdlc1RleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuT0ZfTEFTVF9QQUdFUyk7XG5cdFx0dGhpcy5vZkxhc3RQYWdlVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5PRl9MQVNUX1BBR0UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlIHNlbGVjdFxuXHQgKlxuXHQgKiBBIGRlZmF1bHQgYXJyYXkgb2Ygb3B0aW9ucyB3aWxsIGJlIGRlZmluZWQ6IFsxMCwgMjAsIDMwLCA0MCwgNTBdXG5cdCAqL1xuXHRASW5wdXQoKSBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwLCA0MCwgNTBdO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyB0aGUgbmV3IHBhZ2UgbnVtYmVyLlxuXHQgKlxuXHQgKiBZb3Ugc2hvdWxkIHRpZSBpbnRvIHRoaXMgYW5kIHVwZGF0ZSBgbW9kZWwuY3VycmVudFBhZ2VgIG9uY2UgdGhlIGZyZXNoXG5cdCAqIGRhdGEgaXMgZmluYWxseSBsb2FkZWQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2VsZWN0UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG5cdGdldCBpdGVtc1BlclBhZ2UoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kZWwucGFnZUxlbmd0aDtcblx0fVxuXHRzZXQgaXRlbXNQZXJQYWdlKHZhbHVlKSB7XG5cdFx0dGhpcy5tb2RlbC5wYWdlTGVuZ3RoID0gTnVtYmVyKHZhbHVlKTtcblx0XHR0aGlzLmN1cnJlbnRQYWdlID0gMTsgLy8gcmVzZXQgcGFnZVxuXHR9XG5cblx0Z2V0IGN1cnJlbnRQYWdlKCkge1xuXHRcdHJldHVybiB0aGlzLm1vZGVsLmN1cnJlbnRQYWdlO1xuXHR9XG5cdHNldCBjdXJyZW50UGFnZSh2YWx1ZSkge1xuXHRcdHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0XHQvLyBlbWl0cyB0aGUgdmFsdWUgdG8gYWxsb3cgdGhlIHVzZXIgdG8gdXBkYXRlIGN1cnJlbnQgcGFnZVxuXHRcdC8vIGluIHRoZSBtb2RlbCBvbmNlIHRoZSBwYWdlIGlzIGxvYWRlZFxuXHRcdHRoaXMuc2VsZWN0UGFnZS5lbWl0KHZhbHVlKTtcblx0fVxuXG5cdGdldCB0b3RhbERhdGFMZW5ndGgoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kZWwudG90YWxEYXRhTGVuZ3RoO1xuXHR9XG5cdC8qKlxuXHQgKiBUaGUgbGFzdCBwYWdlIG51bWJlciB0byBkaXNwbGF5IGluIHRoZSBwYWdpbmF0aW9uIHZpZXcuXG5cdCAqL1xuXHRnZXQgbGFzdFBhZ2UoKTogbnVtYmVyIHtcblx0XHRjb25zdCBsYXN0ID0gTWF0aC5jZWlsKHRoaXMudG90YWxEYXRhTGVuZ3RoIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuXHRcdHJldHVybiBsYXN0ID4gMCA/IGxhc3QgOiAxO1xuXHR9XG5cblx0Z2V0IHN0YXJ0SXRlbUluZGV4KCkge1xuXHRcdHJldHVybiB0aGlzLmVuZEl0ZW1JbmRleCA+IDAgPyAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgKyAxIDogMDtcblx0fVxuXG5cdGdldCBlbmRJdGVtSW5kZXgoKSB7XG5cdFx0Y29uc3QgcHJvamVjdGVkRW5kSXRlbUluZGV4ID0gdGhpcy5jdXJyZW50UGFnZSAqIHRoaXMuaXRlbXNQZXJQYWdlO1xuXG5cdFx0cmV0dXJuIHByb2plY3RlZEVuZEl0ZW1JbmRleCA8IHRoaXMudG90YWxEYXRhTGVuZ3RoID8gcHJvamVjdGVkRW5kSXRlbUluZGV4IDogdGhpcy50b3RhbERhdGFMZW5ndGg7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIHByZXZpb3VzIHBhZ2UgbnVtYmVyIHRvIG5hdmlnYXRlIHRvLCBmcm9tIHRoZSBjdXJyZW50IHBhZ2UuXG5cdCAqL1xuXHRnZXQgcHJldmlvdXNQYWdlKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPD0gMSA/IDEgOiB0aGlzLmN1cnJlbnRQYWdlIC0gMTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgbmV4dCBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0bywgZnJvbSB0aGUgY3VycmVudCBwYWdlLlxuXHQgKi9cblx0Z2V0IG5leHRQYWdlKCk6IG51bWJlciB7XG5cdFx0Y29uc3QgbGFzdFBhZ2UgPSB0aGlzLmxhc3RQYWdlO1xuXHRcdHJldHVybiB0aGlzLmN1cnJlbnRQYWdlID49IGxhc3RQYWdlID8gbGFzdFBhZ2UgOiB0aGlzLmN1cnJlbnRQYWdlICsgMTtcblx0fVxuXG5cdGdldCBwYWdlT3B0aW9ucygpIHtcblx0XHQvKipcblx0XHQgKiBDYWxjdWxhdGUgbnVtYmVyIG9mIHBhZ2VzIGJhc2VkIG9uIHRvdGFsRGF0YUxlbmd0aCBhbmQgaXRlbXNQZXJQYWdlLlxuXHRcdCAqIEV2ZW4gaWYgdG90YWxEYXRhTGVuZ3RoIGlzIDAsIG51bWJlck9mUGFnZXMgc2hvdWxkIGJlIGFsd2F5cyBhdCBsZWFzdCAxLlxuXHRcdCAqIE5ldyBhcnJheSB3aWxsIGJlIGNvbnN0cnVjdGVkIG9ubHkgaWYgbnVtYmVyIG9mIHBhZ2VzIGNoYW5nZXMuXG5cdFx0ICovXG5cdFx0Y29uc3QgbnVtYmVyT2ZQYWdlcyA9IE1hdGgubWF4KE1hdGguY2VpbCh0aGlzLnRvdGFsRGF0YUxlbmd0aCAvIHRoaXMuaXRlbXNQZXJQYWdlKSwgMSk7XG5cdFx0aWYgKHRoaXMuX3BhZ2VPcHRpb25zLmxlbmd0aCAhPT0gbnVtYmVyT2ZQYWdlcykge1xuXHRcdFx0dGhpcy5fcGFnZU9wdGlvbnMgPSBBcnJheShudW1iZXJPZlBhZ2VzKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX3BhZ2VPcHRpb25zO1xuXHR9XG5cblx0aXRlbXNQZXJQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtaXRlbXMtcGVyLXBhZ2UtJHtQYWdpbmF0aW9uLnBhZ2luYXRpb25Db3VudGVyfWA7XG5cdGN1cnJlbnRQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtY3VycmVudC1wYWdlLSR7UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcn1gO1xuXG5cdGl0ZW1zUGVyUGFnZVRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLklURU1TX1BFUl9QQUdFXCIpO1xuXHRvcHRpb25zTGlzdFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9QRU5fTElTVF9PRl9PUFRJT05TXCIpO1xuXHRiYWNrd2FyZFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLkJBQ0tXQVJEXCIpO1xuXHRmb3J3YXJkVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uRk9SV0FSRFwiKTtcblx0dG90YWxJdGVtc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TXCIpO1xuXHR0b3RhbEl0ZW1UZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5UT1RBTF9JVEVNXCIpO1xuXHR0b3RhbEl0ZW1zVW5rbm93blRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TX1VOS05PV05cIik7XG5cdHBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5QQUdFXCIpO1xuXHRvZkxhc3RQYWdlc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9GX0xBU1RfUEFHRVNcIik7XG5cdG9mTGFzdFBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5PRl9MQVNUX1BBR0VcIik7XG5cblx0cHJvdGVjdGVkIF9wYWdlT3B0aW9ucyA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpMThuOiBJMThuLCBwcm90ZWN0ZWQgZXhwZXJpbWVudGFsOiBFeHBlcmltZW50YWxTZXJ2aWNlKSB7XG5cdFx0UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcisrO1xuXHR9XG59XG4iXX0=
483
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7QUFjeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUErSUgsTUFBTSxPQUFPLFVBQVU7SUE4SnRCLFlBQXNCLElBQVUsRUFBWSxZQUFpQztRQUF2RCxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksaUJBQVksR0FBWixZQUFZLENBQXFCO1FBM0o3RTs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFLMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ25DOztXQUVHO1FBQ00sa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUI7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFpQ3BDOzs7O1dBSUc7UUFDTSx3QkFBbUIsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5RDs7Ozs7V0FLRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBcUVsRCx5QkFBb0IsR0FBRyxvQ0FBb0MsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcsa0NBQWtDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXZGLHFCQUFnQixHQUFHLElBQUksQ0FBQyxJ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UUFBUTtzQkFBaEIsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFtQkYsWUFBWTtzQkFEZixLQUFLO2dCQW9CRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBUUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2luYXRpb25Nb2RlbCB9IGZyb20gXCIuL3BhZ2luYXRpb24tbW9kZWwuY2xhc3NcIjtcbmltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEkxOG4sIE92ZXJyaWRhYmxlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgRXhwZXJpbWVudGFsU2VydmljZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2V4cGVyaW1lbnRhbFwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci91dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25UcmFuc2xhdGlvbnMge1xuXHRJVEVNU19QRVJfUEFHRTogc3RyaW5nO1xuXHRPUEVOX0xJU1RfT0ZfT1BUSU9OUzogc3RyaW5nO1xuXHRCQUNLV0FSRDogc3RyaW5nO1xuXHRGT1JXQVJEOiBzdHJpbmc7XG5cdFRPVEFMX0lURU1TX1VOS05PV046IHN0cmluZztcblx0VE9UQUxfSVRFTVM6IHN0cmluZztcblx0VE9UQUxfSVRFTTogc3RyaW5nO1xuXHRPRl9MQVNUX1BBR0VTOiBzdHJpbmc7XG5cdE9GX0xBU1RfUEFHRTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZSBwYWdpbmF0aW9uIHdoZW4geW91IGhhdmUgbXVsdGlwbGUgcGFnZXMgb2YgZGF0YSB0byBoYW5kbGUuIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICpcdDxjZHMtcGFnaW5hdGlvbiBbbW9kZWxdPVwibW9kZWxcIiAoc2VsZWN0UGFnZSk9XCJzZWxlY3RQYWdlKCRldmVudClcIj48L2Nkcy1wYWdpbmF0aW9uPlxuICogYGBgXG4gKlxuICogSW4geW91ciBgc2VsZWN0UGFnZSgpYCBtZXRob2Qgc2V0IHRoZSBgbW9kZWwuY3VycmVudFBhZ2VgIHRvIHNlbGVjdGVkIHBhZ2UsIF9hZnRlcl9cbiAqIHlvdSBsb2FkIHRoZSBwYWdlLlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNlbGVjdFBhZ2UocGFnZSkge1xuICogXHQvLyAuLi4geW91ciBjb2RlIHRvIGxvYWQgdGhlIHBhZ2UgZ29lcyBoZXJlXG4gKlxuICogXHR0aGlzLm1vZGVsLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAqXG4gKiBcdC8vIC4uLiBhbnl0aGluZyB5b3Ugd2FudCB0byBkbyBhZnRlciBwYWdlIHNlbGVjdGlvbiBjaGFuZ2VzIGdvZXMgaGVyZVxuICogfVxuICogYGBgXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy1wYWdpbmF0aW9uLS1iYXNpYylcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1wYWdpbmF0aW9uLCBpYm0tcGFnaW5hdGlvblwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJjZHMtLXBhZ2luYXRpb25cIlxuXHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdCdjZHMtLXNrZWxldG9uJzogc2tlbGV0b25cblx0XHR9XCI+XG5cdFx0PCEtLSBsZWZ0IHNrZWxldG9uIGRpdiAtLT5cblx0XHQ8ZGl2ICpuZ0lmPVwic2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fbGVmdFwiPlxuXHRcdFx0PHAgY2xhc3M9XCJjZHMtLXNrZWxldG9uX190ZXh0XCIgc3R5bGU9XCJ3aWR0aDogNzBweFwiPjwvcD5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDM1cHhcIj48L3A+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiAxMDVweFwiPjwvcD5cblx0XHQ8L2Rpdj5cblxuXHRcdDxkaXYgKm5nSWY9XCIhc2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fbGVmdFwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdlSW5wdXRcIj5cblx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0XCIgW2Zvcl09XCJpdGVtc1BlclBhZ2VTZWxlY3RJZFwiPlxuXHRcdFx0XHRcdHt7aXRlbXNQZXJQYWdlVGV4dC5zdWJqZWN0IHwgYXN5bmN9fVxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdCBjZHMtLXNlbGVjdC0taW5saW5lIGNkcy0tc2VsZWN0X19pdGVtLWNvdW50XCJcblx0XHRcdFx0XHRbY2xhc3MuY2RzLS1zZWxlY3QtLWRpc2FibGVkXT1cInBhZ2VJbnB1dERpc2FibGVkXCI+XG5cdFx0XHRcdFx0PHNlbGVjdFxuXHRcdFx0XHRcdFx0W2lkXT1cIml0ZW1zUGVyUGFnZVNlbGVjdElkXCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwiaXRlbXNQZXJQYWdlXCJcblx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0XCI+XG5cdFx0XHRcdFx0XHQ8b3B0aW9uXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3Qtb3B0aW9uXCJcblx0XHRcdFx0XHRcdFx0Km5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtc1BlclBhZ2VPcHRpb25zXCJcblx0XHRcdFx0XHRcdFx0W3ZhbHVlXT1cIm9wdGlvblwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7IG9wdGlvbiB9fVxuXHRcdFx0XHRcdFx0PC9vcHRpb24+XG5cdFx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHRcdFx0PHN2Z1xuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZXZyb24tLWRvd25cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZGlzcGxheTogaW5oZXJpdFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0X19hcnJvd1wiXG5cdFx0XHRcdFx0XHRhcmlhLWhpZGRlbj1cInRydWVcIlxuXHRcdFx0XHRcdFx0W2F0dHIuYXJpYUxhYmVsXT1cIm9wdGlvbnNMaXN0VGV4dC5zdWJqZWN0IHwgYXN5bmNcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiB0b3RhbERhdGFMZW5ndGggPD0gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9faXRlbXMtY291bnRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbVRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOntzdGFydDogc3RhcnRJdGVtSW5kZXgsIGVuZDogZW5kSXRlbUluZGV4LCB0b3RhbDogdG90YWxEYXRhTGVuZ3RoIH0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgdG90YWxEYXRhTGVuZ3RoID4gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9faXRlbXMtY291bnRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbXNUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZTp7c3RhcnQ6IHN0YXJ0SXRlbUluZGV4LCBlbmQ6IGVuZEl0ZW1JbmRleCwgdG90YWw6IHRvdGFsRGF0YUxlbmd0aCB9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCJwYWdlc1Vua25vd25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dCBjZHMtLXBhZ2luYXRpb25fX2l0ZW1zLWNvdW50XCIgW25nU3R5bGVdPVwieydtYXJnaW4tbGVmdCc6IHNob3dQYWdlSW5wdXQgPyBudWxsIDogMH1cIj5cblx0XHRcdFx0e3t0b3RhbEl0ZW1zVW5rbm93blRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOntzdGFydDogc3RhcnRJdGVtSW5kZXgsIGVuZDogZW5kSXRlbUluZGV4IH0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0PC9kaXY+XG5cblx0XHQ8IS0tIHJpZ2h0IHNrZWxldG9uIGRpdiAtLT5cblx0XHQ8ZGl2ICpuZ0lmPVwic2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fcmlnaHRcIj5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDcwcHhcIj48L3A+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2ICpuZ0lmPVwiIXNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3JpZ2h0XCI+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cInBhZ2VzVW5rbm93blwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9fcGFnZS10ZXh0XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1BhZ2VJbnB1dFwiPnt7Y3VycmVudFBhZ2V9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR7e3BhZ2VUZXh0LnN1YmplY3QgfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1BhZ2VJbnB1dFwiPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdCBjZHMtLXNlbGVjdC0taW5saW5lIGNkcy0tc2VsZWN0X19wYWdlLW51bWJlclwiXG5cdFx0XHRcdFx0W2NsYXNzLmNkcy0tc2VsZWN0LS1kaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiPlxuXHRcdFx0XHRcdDxsYWJlbCBbZm9yXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIiBjbGFzcz1cImNkcy0tbGFiZWwgY2RzLS12aXN1YWxseS1oaWRkZW5cIj57e3BhZ2VUZXh0LnN1YmplY3QgfCBhc3luY319PC9sYWJlbD5cblx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoID4gcGFnZVNlbGVjdFRocmVzaG9sZFwiXG5cdFx0XHRcdFx0XHRzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDFyZW07IG1hcmdpbi1yaWdodDogMXJlbTtcIlxuXHRcdFx0XHRcdFx0W2lkXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIlxuXHRcdFx0XHRcdFx0dHlwZT1cIm51bWJlclwiXG5cdFx0XHRcdFx0XHRtaW49XCIxXCJcblx0XHRcdFx0XHRcdFttYXhdPVwicGFnZU9wdGlvbnMubGVuZ3RoXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIlxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50UGFnZVwiPlxuXHRcdFx0XHRcdDxzZWxlY3Rcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoIDw9IHBhZ2VTZWxlY3RUaHJlc2hvbGRcIlxuXHRcdFx0XHRcdFx0W2lkXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dFwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIlxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50UGFnZVwiPlxuXHRcdFx0XHRcdFx0PG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlT3B0aW9uczsgbGV0IGkgPSBpbmRleDtcIiBjbGFzcz1cImNkcy0tc2VsZWN0LW9wdGlvblwiIFt2YWx1ZV09XCJpICsgMVwiPnt7aSArIDF9fTwvb3B0aW9uPlxuXHRcdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoIDw9IHBhZ2VTZWxlY3RUaHJlc2hvbGRcIlxuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZXZyb24tLWRvd25cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZGlzcGxheTogaW5oZXJpdDtcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdF9fYXJyb3dcIlxuXHRcdFx0XHRcdFx0W2F0dHIuYXJpYUxhYmVsXT1cIm9wdGlvbnNMaXN0VGV4dC5zdWJqZWN0IHwgYXN5bmNcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhcGFnZXNVbmtub3duICYmIGxhc3RQYWdlIDw9IDFcIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dQYWdlSW5wdXRcIj57e2N1cnJlbnRQYWdlfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0e3tvZkxhc3RQYWdlVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6IHtsYXN0OiBsYXN0UGFnZX0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgbGFzdFBhZ2UgPiAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UGFnZUlucHV0XCI+e3tjdXJyZW50UGFnZX19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdHt7b2ZMYXN0UGFnZXNUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZToge2xhc3Q6IGxhc3RQYWdlfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2NvbnRyb2wtYnV0dG9uc1wiPlxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0Y2RzQnV0dG9uPVwiZ2hvc3RcIlxuXHRcdFx0XHRcdGljb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2J1dHRvbiBjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tYmFja3dhcmRcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tbm8taW5kZXgnOiBjdXJyZW50UGFnZSA8PSAxIHx8IGRpc2FibGVkXG5cdFx0XHRcdFx0fVwiXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImJhY2t3YXJkVGV4dC5zdWJqZWN0IHwgYXN5bmNcIlxuXHRcdFx0XHRcdChjbGljayk9XCJzZWxlY3RQYWdlLmVtaXQocHJldmlvdXNQYWdlKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cIihjdXJyZW50UGFnZSA8PSAxIHx8IGRpc2FibGVkID8gdHJ1ZSA6IG51bGwpXCI+XG5cdFx0XHRcdFx0PHN2ZyBjZHNJY29uPVwiY2FyZXQtLWxlZnRcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXG5cdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRjZHNCdXR0b249XCJnaG9zdFwiXG5cdFx0XHRcdFx0aWNvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRjbGFzcz1cIlxuXHRcdFx0XHRcdFx0Y2RzLS1wYWdpbmF0aW9uX19idXR0b25cblx0XHRcdFx0XHRcdGNkcy0tcGFnaW5hdGlvbl9fYnV0dG9uLS1mb3J3YXJkXCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0XHQnY2RzLS1wYWdpbmF0aW9uX19idXR0b24tLW5vLWluZGV4JzogY3VycmVudFBhZ2UgPj0gbGFzdFBhZ2UgfHwgZGlzYWJsZWRcblx0XHRcdFx0XHR9XCJcblx0XHRcdFx0XHR0YWJpbmRleD1cIjBcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiZm9yd2FyZFRleHQuc3ViamVjdCB8IGFzeW5jXCJcblx0XHRcdFx0XHQoY2xpY2spPVwic2VsZWN0UGFnZS5lbWl0KG5leHRQYWdlKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cIihjdXJyZW50UGFnZSA+PSBsYXN0UGFnZSB8fCBkaXNhYmxlZCA/IHRydWUgOiBudWxsKVwiPlxuXHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNhcmV0LS1yaWdodFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbiB7XG5cdHN0YXRpYyBwYWdpbmF0aW9uQ291bnRlciA9IDA7XG5cblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBwYWdpbmF0aW9uIGNvbXBvbmVudC5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBgUGFnaW5hdGlvbk1vZGVsYCB3aXRoIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBwYWdlcyB5b3UncmUgY29udHJvbGxpbmcuXG5cdCAqL1xuXHRASW5wdXQoKSBtb2RlbDogUGFnaW5hdGlvbk1vZGVsO1xuXHQvKipcbiBcdCAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgYmFja3dhcmQvZm9yd2FyZCBidXR0b25zLlxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgc2VsZWN0IGJveCB0aGF0IGNoYW5nZXMgdGhlIHBhZ2UuXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlSW5wdXREaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogQ29udHJvbHMgd2V0aGVyIG9yIG5vdCB0byBzaG93IHRoZSBwYWdlIHNlbGVjdHNcblx0ICovXG5cdEBJbnB1dCgpIHNob3dQYWdlSW5wdXQgPSB0cnVlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBpZiB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGlzIHVua25vd24uXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlc1Vua25vd24gPSBmYWxzZTtcblx0QElucHV0KCkgcGFnZVNlbGVjdFRocmVzaG9sZCA9IDEwMDA7XG5cblx0LyoqXG5cdCAqIEV4cGVjdHMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgc29tZSBvciBhbGwgb2Y6XG5cdCAqIGBgYFxuXHQgKiB7XG5cdCAqXHRcdFwiSVRFTVNfUEVSX1BBR0VcIjogXCJJdGVtcyBwZXIgcGFnZTpcIixcblx0ICpcdFx0XCJPUEVOX0xJU1RfT0ZfT1BUSU9OU1wiOiBcIk9wZW4gbGlzdCBvZiBvcHRpb25zXCIsXG5cdCAqXHRcdFwiQkFDS1dBUkRcIjogXCJCYWNrd2FyZFwiLFxuXHQgKlx0XHRcIkZPUldBUkRcIjogXCJGb3J3YXJkXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVNfVU5LTk9XTlwiOiBcInt7c3RhcnR9fS17e2VuZH19IGl0ZW1zXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVNcIjogXCJ7e3N0YXJ0fX0te3tlbmR9fSBvZiB7e3RvdGFsfX0gaXRlbXNcIixcblx0ICpcdFx0XCJUT1RBTF9JVEVNXCI6IFwie3tzdGFydH19LXt7ZW5kfX0gb2Yge3t0b3RhbH19IGl0ZW1cIixcblx0ICpcdFx0XCJPRl9MQVNUX1BBR0VTXCI6IFwib2Yge3tsYXN0fX0gcGFnZXNcIixcblx0ICpcdFx0XCJPRl9MQVNUX1BBR0VcIjogXCJvZiB7e2xhc3R9fSBwYWdlXCJcblx0ICogfVxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgpXG5cdHNldCB0cmFuc2xhdGlvbnMgKHZhbHVlOiBQYWdpbmF0aW9uVHJhbnNsYXRpb25zKSB7XG5cdFx0Y29uc3QgdmFsdWVXaXRoRGVmYXVsdHMgPSBtZXJnZSh0aGlzLmkxOG4uZ2V0TXVsdGlwbGUoXCJQQUdJTkFUSU9OXCIpLCB2YWx1ZSk7XG5cdFx0dGhpcy5pdGVtc1BlclBhZ2VUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLklURU1TX1BFUl9QQUdFKTtcblx0XHR0aGlzLm9wdGlvbnNMaXN0VGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5PUEVOX0xJU1RfT0ZfT1BUSU9OUyk7XG5cdFx0dGhpcy5iYWNrd2FyZFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuQkFDS1dBUkQpO1xuXHRcdHRoaXMuZm9yd2FyZFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuRk9SV0FSRCk7XG5cdFx0dGhpcy50b3RhbEl0ZW1zVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5UT1RBTF9JVEVNUyk7XG5cdFx0dGhpcy50b3RhbEl0ZW1UZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlRPVEFMX0lURU0pO1xuXHRcdHRoaXMudG90YWxJdGVtc1Vua25vd25UZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlRPVEFMX0lURU1TX1VOS05PV04pO1xuXHRcdHRoaXMucGFnZVRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuUEFHRSk7XG5cdFx0dGhpcy5vZkxhc3RQYWdlc1RleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuT0ZfTEFTVF9QQUdFUyk7XG5cdFx0dGhpcy5vZkxhc3RQYWdlVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5PRl9MQVNUX1BBR0UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlIHNlbGVjdFxuXHQgKlxuXHQgKiBBIGRlZmF1bHQgYXJyYXkgb2Ygb3B0aW9ucyB3aWxsIGJlIGRlZmluZWQ6IFsxMCwgMjAsIDMwLCA0MCwgNTBdXG5cdCAqL1xuXHRASW5wdXQoKSBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwLCA0MCwgNTBdO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyB0aGUgbmV3IHBhZ2UgbnVtYmVyLlxuXHQgKlxuXHQgKiBZb3Ugc2hvdWxkIHRpZSBpbnRvIHRoaXMgYW5kIHVwZGF0ZSBgbW9kZWwuY3VycmVudFBhZ2VgIG9uY2UgdGhlIGZyZXNoXG5cdCAqIGRhdGEgaXMgZmluYWxseSBsb2FkZWQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2VsZWN0UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG5cdGdldCBpdGVtc1BlclBhZ2UoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kZWwucGFnZUxlbmd0aDtcblx0fVxuXHRzZXQgaXRlbXNQZXJQYWdlKHZhbHVlKSB7XG5cdFx0dGhpcy5tb2RlbC5wYWdlTGVuZ3RoID0gTnVtYmVyKHZhbHVlKTtcblx0XHR0aGlzLmN1cnJlbnRQYWdlID0gMTsgLy8gcmVzZXQgcGFnZVxuXHR9XG5cblx0Z2V0IGN1cnJlbnRQYWdlKCkge1xuXHRcdHJldHVybiB0aGlzLm1vZGVsLmN1cnJlbnRQYWdlO1xuXHR9XG5cdHNldCBjdXJyZW50UGFnZSh2YWx1ZSkge1xuXHRcdHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0XHQvLyBlbWl0cyB0aGUgdmFsdWUgdG8gYWxsb3cgdGhlIHVzZXIgdG8gdXBkYXRlIGN1cnJlbnQgcGFnZVxuXHRcdC8vIGluIHRoZSBtb2RlbCBvbmNlIHRoZSBwYWdlIGlzIGxvYWRlZFxuXHRcdHRoaXMuc2VsZWN0UGFnZS5lbWl0KHZhbHVlKTtcblx0fVxuXG5cdGdldCB0b3RhbERhdGFMZW5ndGgoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kZWwudG90YWxEYXRhTGVuZ3RoO1xuXHR9XG5cdC8qKlxuXHQgKiBUaGUgbGFzdCBwYWdlIG51bWJlciB0byBkaXNwbGF5IGluIHRoZSBwYWdpbmF0aW9uIHZpZXcuXG5cdCAqL1xuXHRnZXQgbGFzdFBhZ2UoKTogbnVtYmVyIHtcblx0XHRjb25zdCBsYXN0ID0gTWF0aC5jZWlsKHRoaXMudG90YWxEYXRhTGVuZ3RoIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuXHRcdHJldHVybiBsYXN0ID4gMCA/IGxhc3QgOiAxO1xuXHR9XG5cblx0Z2V0IHN0YXJ0SXRlbUluZGV4KCkge1xuXHRcdHJldHVybiB0aGlzLmVuZEl0ZW1JbmRleCA+IDAgPyAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgKyAxIDogMDtcblx0fVxuXG5cdGdldCBlbmRJdGVtSW5kZXgoKSB7XG5cdFx0Y29uc3QgcHJvamVjdGVkRW5kSXRlbUluZGV4ID0gdGhpcy5jdXJyZW50UGFnZSAqIHRoaXMuaXRlbXNQZXJQYWdlO1xuXG5cdFx0cmV0dXJuIHByb2plY3RlZEVuZEl0ZW1JbmRleCA8IHRoaXMudG90YWxEYXRhTGVuZ3RoID8gcHJvamVjdGVkRW5kSXRlbUluZGV4IDogdGhpcy50b3RhbERhdGFMZW5ndGg7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIHByZXZpb3VzIHBhZ2UgbnVtYmVyIHRvIG5hdmlnYXRlIHRvLCBmcm9tIHRoZSBjdXJyZW50IHBhZ2UuXG5cdCAqL1xuXHRnZXQgcHJldmlvdXNQYWdlKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPD0gMSA/IDEgOiB0aGlzLmN1cnJlbnRQYWdlIC0gMTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgbmV4dCBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0bywgZnJvbSB0aGUgY3VycmVudCBwYWdlLlxuXHQgKi9cblx0Z2V0IG5leHRQYWdlKCk6IG51bWJlciB7XG5cdFx0Y29uc3QgbGFzdFBhZ2UgPSB0aGlzLmxhc3RQYWdlO1xuXHRcdHJldHVybiB0aGlzLmN1cnJlbnRQYWdlID49IGxhc3RQYWdlID8gbGFzdFBhZ2UgOiB0aGlzLmN1cnJlbnRQYWdlICsgMTtcblx0fVxuXG5cdGdldCBwYWdlT3B0aW9ucygpIHtcblx0XHQvKipcblx0XHQgKiBDYWxjdWxhdGUgbnVtYmVyIG9mIHBhZ2VzIGJhc2VkIG9uIHRvdGFsRGF0YUxlbmd0aCBhbmQgaXRlbXNQZXJQYWdlLlxuXHRcdCAqIEV2ZW4gaWYgdG90YWxEYXRhTGVuZ3RoIGlzIDAsIG51bWJlck9mUGFnZXMgc2hvdWxkIGJlIGFsd2F5cyBhdCBsZWFzdCAxLlxuXHRcdCAqIE5ldyBhcnJheSB3aWxsIGJlIGNvbnN0cnVjdGVkIG9ubHkgaWYgbnVtYmVyIG9mIHBhZ2VzIGNoYW5nZXMuXG5cdFx0ICovXG5cdFx0Y29uc3QgbnVtYmVyT2ZQYWdlcyA9IE1hdGgubWF4KE1hdGguY2VpbCh0aGlzLnRvdGFsRGF0YUxlbmd0aCAvIHRoaXMuaXRlbXNQZXJQYWdlKSwgMSk7XG5cdFx0aWYgKHRoaXMuX3BhZ2VPcHRpb25zLmxlbmd0aCAhPT0gbnVtYmVyT2ZQYWdlcykge1xuXHRcdFx0dGhpcy5fcGFnZU9wdGlvbnMgPSBBcnJheShudW1iZXJPZlBhZ2VzKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX3BhZ2VPcHRpb25zO1xuXHR9XG5cblx0aXRlbXNQZXJQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtaXRlbXMtcGVyLXBhZ2UtJHtQYWdpbmF0aW9uLnBhZ2luYXRpb25Db3VudGVyfWA7XG5cdGN1cnJlbnRQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtY3VycmVudC1wYWdlLSR7UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcn1gO1xuXG5cdGl0ZW1zUGVyUGFnZVRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLklURU1TX1BFUl9QQUdFXCIpO1xuXHRvcHRpb25zTGlzdFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9QRU5fTElTVF9PRl9PUFRJT05TXCIpO1xuXHRiYWNrd2FyZFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLkJBQ0tXQVJEXCIpO1xuXHRmb3J3YXJkVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uRk9SV0FSRFwiKTtcblx0dG90YWxJdGVtc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TXCIpO1xuXHR0b3RhbEl0ZW1UZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5UT1RBTF9JVEVNXCIpO1xuXHR0b3RhbEl0ZW1zVW5rbm93blRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TX1VOS05PV05cIik7XG5cdHBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5QQUdFXCIpO1xuXHRvZkxhc3RQYWdlc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9GX0xBU1RfUEFHRVNcIik7XG5cdG9mTGFzdFBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5PRl9MQVNUX1BBR0VcIik7XG5cblx0cHJvdGVjdGVkIF9wYWdlT3B0aW9ucyA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpMThuOiBJMThuLCBwcm90ZWN0ZWQgZXhwZXJpbWVudGFsOiBFeHBlcmltZW50YWxTZXJ2aWNlKSB7XG5cdFx0UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcisrO1xuXHR9XG59XG4iXX0=
@@ -402,7 +402,7 @@ class ComboBox {
402
402
  // clone the items and update their state based on the received value array
403
403
  // this way we don't lose any additional metadata that may be passed in via the `items` Input
404
404
  let newValues = [];
405
- for (const v of value) {
405
+ for (const v of value !== null && value !== void 0 ? value : []) {
406
406
  for (const item of this.view.getListItems()) {
407
407
  if (item[this.itemValueKey] === v) {
408
408
  newValues.push(Object.assign({}, item, { selected: true }));
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-combobox.mjs","sources":["../../src/combobox/combobox.component.ts","../../src/combobox/combobox.module.ts","../../src/combobox/carbon-components-angular-combobox.ts"],"sourcesContent":["import {\n\tComponent,\n\tOnChanges,\n\tContentChild,\n\tInput,\n\tOutput,\n\tHostListener,\n\tElementRef,\n\tViewChild,\n\tEventEmitter,\n\tAfterViewInit,\n\tAfterContentInit,\n\tHostBinding,\n\tTemplateRef,\n\tOnDestroy\n} from \"@angular/core\";\nimport { AbstractDropdownView, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { ListItem } from \"carbon-components-angular/dropdown\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { filter } from \"rxjs/operators\";\nimport {\n\tgetScrollableParents,\n\thasScrollableParents\n} from \"carbon-components-angular/utils\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ComboBoxModule } from 'carbon-components-angular';\n * ```\n *\n * ComboBoxes are similar to dropdowns, except a combobox provides an input field for users to search items and (optionally) add their own.\n * Multi-select comboboxes also provide \"pills\" of selected items.\n *\n * [See demo](../../?path=/story/components-combobox--basic)\n */\n@Component({\n\tselector: \"cds-combo-box, ibm-combo-box\",\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"cds--list-box__wrapper\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--list-box__wrapper--fluid': fluid,\n\t\t\t\t'cds--list-box__wrapper--fluid--invalid': fluid && invalid,\n\t\t\t\t'cds--list-box__wrapper--fluid--focus': fluid && _isFocused\n\t\t\t}\">\n\t\t\t<label\n\t\t\t\t*ngIf=\"label\"\n\t\t\t\t[for]=\"id\"\n\t\t\t\t[id]=\"labelId\"\n\t\t\t\tclass=\"cds--label\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--label--disabled': disabled,\n\t\t\t\t\t'cds--visually-hidden': hideLabel\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n\t\t\t</label>\n\t\t\t<div\n\t\t\t\t#listbox\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--multi-select cds--multi-select--filterable': type === 'multi',\n\t\t\t\t\t'cds--list-box--light': theme === 'light',\n\t\t\t\t\t'cds--list-box--expanded': open,\n\t\t\t\t\t'cds--list-box--sm': size === 'sm',\n\t\t\t\t\t'cds--list-box--md': size === 'md',\n\t\t\t\t\t'cds--list-box--lg': size === 'lg',\n\t\t\t\t\t'cds--list-box--disabled': disabled,\n\t\t\t\t\t'cds--combo-box--readonly': readonly,\n\t\t\t\t\t'cds--combo-box--warning cds--list-box--warning': warn,\n\t\t\t\t\t'cds--list-box--invalid': invalid\n\t\t\t\t}\"\n\t\t\t\tclass=\"cds--list-box cds--combo-box\"\n\t\t\t\t[attr.data-invalid]=\"(invalid ? true : null)\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--list-box__field\"\n\t\t\t\t\t(click)=\"toggleDropdown()\"\n\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"type === 'multi' && pills.length > 0\"\n\t\t\t\t\t\tclass=\"cds--tag cds--tag--filter cds--tag--high-contrast\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--tag--disabled': disabled || readonly}\">\n\t\t\t\t\t\t<span class=\"cds--tag__label\">{{ pills.length }}</span>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"clearSelected($event)\"\n\t\t\t\t\t\t\t(blur)=\"onBlur()\"\n\t\t\t\t\t\t\t(keydown.enter)=\"clearSelected($event)\"\n\t\t\t\t\t\t\tclass=\"cds--tag__close-icon\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t\t[title]=\"clearSelectionsTitle\"\n\t\t\t\t\t\t\t[disabled]=\"disabled || readonly\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<path d=\"M12 4.7l-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8z\"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t[readOnly]=\"readonly\"\n\t\t\t\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t\t\t\t(focus)=\"fluid ? handleFocus($event) : null\"\n\t\t\t\t\t\t(blur)=\"fluid ? handleFocus($event) : onBlur()\"\n\t\t\t\t\t\t(keydown.enter)=\"onSubmit($event)\"\n\t\t\t\t\t\t[value]=\"selectedValue\"\n\t\t\t\t\t\tclass=\"cds--text-input\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--text-input--empty': !showClearButton}\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[id]=\"id\"\n\t\t\t\t\t\t[attr.aria-labelledby]=\"labelId\"\n\t\t\t\t\t\t[attr.aria-expanded]=\"open\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t[attr.maxlength]=\"maxLength\"\n\t\t\t\t\t\t[attr.aria-controls]=\"open ? view?.listId : null\"\n\t\t\t\t\t\t[attr.aria-autocomplete]=\"autocomplete\"\n\t\t\t\t\t\t[placeholder]=\"placeholder\"/>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"invalid\"\n\t\t\t\t\t\tcdsIcon=\"warning--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"!invalid && warn\"\n\t\t\t\t\t\tcdsIcon=\"warning--alt--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon cds--list-box__invalid-icon--warning\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"showClearButton\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__selection\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\"\n\t\t\t\t\t\t[title]=\"clearSelectionTitle\"\n\t\t\t\t\t\t(keyup.enter)=\"clearInput($event)\"\n\t\t\t\t\t\t(click)=\"clearInput($event)\"\n\t\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t\t<svg cdsIcon=\"close\" size=\"16\"></svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__menu-icon\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t[title]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[attr.aria-label]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--list-box__menu-icon--open': open}\">\n\t\t\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\"></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t#dropdownMenu\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--list-box--up': this.dropUp !== null && this.dropUp !== undefined ? dropUp : _dropUp\n\t\t\t\t\t}\">\n\t\t\t\t\t<ng-content *ngIf=\"open\"></ng-content>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<hr *ngIf=\"fluid\" class=\"cds--list-box__divider\" />\n\t\t\t<div\n\t\t\t\t*ngIf=\"helperText && !invalid && !warn && !fluid\"\n\t\t\t\tclass=\"cds--form__helper-text\"\n\t\t\t\t[ngClass]=\"{'cds--form__helper-text--disabled': disabled}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"invalid\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(invalidText)\">{{ invalidText }}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(warnText)\">{{warnText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(warnText)\" [ngTemplateOutlet]=\"warnText\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: ComboBox,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class ComboBox implements OnChanges, AfterViewInit, AfterContentInit, OnDestroy {\n\t/**\n\t * Text to show when nothing is selected.\n\t */\n\t@Input() set placeholder(value: string | Observable<string>) {\n\t\tthis._placeholder.override(value);\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when closed\n\t */\n\t@Input() set openMenuAria(value: string | Observable<string>) {\n\t\tthis._openMenuAria.override(value);\n\t}\n\n\tget openMenuAria() {\n\t\treturn this._openMenuAria.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when opened\n\t */\n\t@Input() set closeMenuAria(value: string | Observable<string>) {\n\t\tthis._closeMenuAria.override(value);\n\t}\n\n\tget closeMenuAria() {\n\t\treturn this._closeMenuAria.value;\n\t}\n\t/**\n\t * Value to display on the clear selections icon, when multi is selected\n\t */\n\t@Input() set clearSelectionsTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionsTitle.override(value);\n\t}\n\n\tget clearSelectionsTitle() {\n\t\treturn this._clearSelectionsTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes to clear selections, when multi is selected\n\t */\n\t@Input() set clearSelectionsAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionsAria.override(value);\n\t}\n\n\tget clearSelectionsAria() {\n\t\treturn this._clearSelectionsAria.value;\n\t}\n\t/**\n\t * Value to display on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionTitle.override(value);\n\t}\n\n\tget clearSelectionTitle() {\n\t\treturn this._clearSelectionTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionAria.override(value);\n\t}\n\n\tget clearSelectionAria() {\n\t\treturn this._clearSelectionAria.value;\n\t}\n\tstatic comboBoxCount = 0;\n\t@Input() id = `combobox-${ComboBox.comboBoxCount++}`;\n\t@Input() labelId = `combobox-label-${ComboBox.comboBoxCount++}`;\n\t/**\n\t * List of items to fill the content with.\n\t *\n\t * **Example:**\n\t * ```javascript\n\t * items = [\n\t *\t\t{\n\t *\t\t\tcontent: \"Abacus\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Byte\",\n\t *\t\t\tselected: false,\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Computer\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Digital\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t * ];\n\t * ```\n\t *\n\t */\n\t@Input() items: Array<ListItem> = [];\n\t/**\n\t * Combo box type (supporting single or multi selection of items).\n\t */\n\t@Input() type: \"single\" | \"multi\" = \"single\";\n\t/**\n\t * Combo box render size.\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Specifies the property to be used as the return value to `ngModel`\n\t */\n\t@Input() itemValueKey: string;\n\t/**\n\t * Label for the combobox.\n\t */\n\t@Input() label: string | TemplateRef<any>;\n\t/**\n\t * Hide label while keeping it accessible for screen readers\n\t */\n\t@Input() hideLabel = false;\n\t/**\n\t * Sets the optional helper text.\n\t */\n\t@Input() helperText: string | TemplateRef<any>;\n\t/**\n\t * set to `true` to place the dropdown view inline with the component\n\t */\n\t@Input() appendInline: boolean = null;\n\t/**\n\t * Set to `true` to show the invalid state.\n\t */\n\t@Input() invalid = false;\n\t/**\n\t * Value displayed if combobox is in an invalid state.\n\t */\n\t@Input() invalidText: string | TemplateRef<any>;\n\t/**\n\t* Set to `true` to show a warning (contents set by warnText)\n\t*/\n\t@Input() warn = false;\n\t/**\n\t * Sets the warning text\n\t */\n\t@Input() warnText: string | TemplateRef<any>;\n\t/**\n\t * Max length value to limit input characters\n\t */\n\t@Input() maxLength: number = null;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Specify feedback (mode) of the selection.\n\t * `top`: selected item jumps to top\n\t * `fixed`: selected item stays at its position\n\t * `top-after-reopen`: selected item jump to top after reopen dropdown\n\t */\n\t@Input() selectionFeedback: \"top\" | \"fixed\" | \"top-after-reopen\" = \"top-after-reopen\";\n\t/**\n\t * Specify aria-autocomplete attribute of text input.\n\t * \"list\", is the expected value for a combobox that invokes a drop-down list\n\t */\n\t@Input() autocomplete = \"list\";\n\t/**\n\t * Overrides the automatic dropUp.\n\t */\n\t@Input() dropUp: boolean;\n\t/**\n\t * Set to `true` to disable combobox.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` for readonly state.\n\t */\n\t@Input() readonly = false;\n\t/**\n\t * Experimental: enable fluid state\n\t */\n\t@Input() fluid = false;\n\t/**\n\t * Emits a ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t * \t\tcontent: \"one\",\n\t * \t\tselected: true\n\t * }\n\t * ```\n\t */\n\t@Output() selected = new EventEmitter<ListItem | ListItem[]>();\n\t/**\n\t * Intended to be used to add items to the list.\n\t *\n\t * Emits an event that includes the current item list, the suggested index for the new item, and a simple ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t *\t{\n\t *\t\titems: [{content: \"one\", selected: true}, {content: \"two\", selected: true}],\n\t *\t\tindex: 1,\n\t *\t\tvalue: {\n\t *\t\t\tcontent: \"some user string\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t *\t}\n\t * ```\n\t *\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t *\tafter: 1,\n\t *\tvalue: \"some user string\"\n\t * }\n\t * ```\n\t */\n\t@Output() submit = new EventEmitter<{\n\t\titems: ListItem[],\n\t\tindex: number,\n\t\tvalue: {\n\t\t\tcontent: string,\n\t\t\tselected: boolean\n\t\t}\n\t}>();\n\t/** Emits an empty event when the menu is closed */\n\t@Output() close = new EventEmitter<void>();\n\t/** Emits the search string from the input */\n\t@Output() search = new EventEmitter<string>();\n\t/** Emits an event when the clear button is clicked. */\n\t@Output() clear = new EventEmitter<Event>();\n\t/** ContentChild reference to the instantiated dropdown list */\n\t@ContentChild(AbstractDropdownView, { static: true }) view: AbstractDropdownView;\n\t@ViewChild(\"dropdownMenu\") dropdownMenu;\n\t@ViewChild(\"input\", { static: true }) input: ElementRef;\n\t@ViewChild(\"listbox\", { static: true }) listbox: ElementRef;\n\t@HostBinding(\"class.cds--list-box__wrapper\") hostClass = true;\n\n\tpublic open = false;\n\n\tpublic showClearButton = false;\n\n\t/** Selected items for multi-select combo-boxes. */\n\tpublic pills = [];\n\t/** used to update the displayValue */\n\tpublic selectedValue = \"\";\n\n\toutsideClick = this._outsideClick.bind(this);\n\tkeyboardNav = this._keyboardNav.bind(this);\n\t/**\n\t * controls whether the `drop-up` class is applied\n\t */\n\t_dropUp = false;\n\n\tprotected noop = this._noop.bind(this);\n\tprotected onTouchedCallback: () => void = this._noop;\n\tprotected propagateChangeCallback: (_: any) => void = this._noop;\n\n\tprotected _placeholder = this.i18n.getOverridable(\"COMBOBOX.PLACEHOLDER\");\n\tprotected _closeMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLOSE_MENU\");\n\tprotected _openMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.OPEN_MENU\");\n\tprotected _clearSelectionsTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionsAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTED\");\n\tprotected _clearSelectionAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTED\");\n\n\tprotected _isFocused = false;\n\n\t/**\n\t * Creates an instance of ComboBox.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected dropdownService: DropdownService,\n\t\tprotected i18n: I18n\n\t) {}\n\n\t/**\n\t * Lifecycle hook.\n\t * Updates pills if necessary.\n\t *\n\t */\n\tngOnChanges(changes) {\n\t\tif (changes.items) {\n\t\t\tthis.view.items = changes.items.currentValue;\n\t\t\tthis.updateSelected();\n\t\t\t// If new items are added into the combobox while there is search input,\n\t\t\t// repeat the search. Search should only trigger for type 'single' when there is no value selected.\n\t\t\tif (this.type === \"multi\" || (this.type === \"single\" && !this.selectedValue)) {\n\t\t\t\tthis.onSearch(this.input.nativeElement.value, false);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets initial state that depends on child components\n\t * Subscribes to select events and handles focus/filtering/initial list updates\n\t */\n\tngAfterContentInit() {\n\t\tif (this.view) {\n\t\t\tthis.view.type = this.type;\n\n\t\t\t// function to check if the event is organic (isUpdate === false) or programmatic\n\t\t\tconst isUpdate = event => event && event.isUpdate;\n\n\t\t\tthis.view.select.subscribe(event => {\n\t\t\t\tif (Array.isArray(event)) {\n\t\t\t\t\tthis.updatePills();\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tif (this.itemValueKey && this.view.getSelected()) {\n\t\t\t\t\t\t\tconst values = this.view.getSelected().map(item => item[this.itemValueKey]);\n\t\t\t\t\t\t\tthis.propagateChangeCallback(values);\n\t\t\t\t\t\t// otherwise just pass up the values from `getSelected`\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(this.view.getSelected());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.selected.emit(event);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If type is single, dropdown list will emit an object\n\t\t\t\t\tif (event.item && event.item.selected) {\n\t\t\t\t\t\tthis.showClearButton = true;\n\t\t\t\t\t\tthis.selectedValue = event.item.content;\n\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tif (this.itemValueKey) {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item[this.itemValueKey]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.selectedValue = \"\";\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// not guarding these since the nativeElement has to be loaded\n\t\t\t\t\t// for select to even fire\n\t\t\t\t\t// only focus for \"organic\" selections\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tthis.elementRef.nativeElement.querySelector(\"input\").focus();\n\t\t\t\t\t\tthis.view.filterBy(\"\");\n\t\t\t\t\t\tthis.selected.emit(event.item);\n\t\t\t\t\t}\n\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t\t// update the rest of combobox with any pre-selected items\n\t\t\t// setTimeout just defers the call to the next check cycle\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateSelected();\n\t\t\t});\n\n\t\t\tthis.view.blurIntent.pipe(filter(v => v === \"top\")).subscribe(() => {\n\t\t\t\tthis.elementRef.nativeElement.querySelector(\".cds--text-input\").focus();\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Binds event handlers against the rendered view\n\t */\n\tngAfterViewInit() {\n\t\t// if appendInline is default valued (null) we should:\n\t\t// 1. if there are scrollable parents (not including body) don't append inline\n\t\t// this should also cover the case where the dropdown is in a modal\n\t\t// (where we _do_ want to append to the placeholder)\n\t\tif (this.appendInline === null && hasScrollableParents(this.elementRef.nativeElement)) {\n\t\t\tthis.appendInline = false;\n\t\t// 2. otherwise we should append inline\n\t\t} else if (this.appendInline === null) {\n\t\t\tthis.appendInline = true;\n\t\t}\n\t}\n\n\t/**\n\t * Removing the `Dropdown` from the body if it is appended to the body.\n\t */\n\tngOnDestroy() {\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Handles `Escape/Tab` key closing the dropdown, and arrow up/down focus to/from the dropdown list.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(ev: KeyboardEvent) {\n\t\tif (ev.key === \"Escape\") {\n\t\t\tthis.closeDropdown();\n\t\t} else if ((ev.key === \"ArrowDown\")\n\t\t\t&& (!this.dropdownMenu || !this.dropdownMenu.nativeElement.contains(ev.target))) {\n\t\t\tev.preventDefault();\n\t\t\tthis.openDropdown();\n\t\t\tsetTimeout(() => { this.view.initFocus(); }, 0);\n\t\t}\n\n\t\tif (\n\t\t\tthis.open && ev.key === \"Tab\" &&\n\t\t\t(this.dropdownMenu.nativeElement.contains(ev.target as Node) || ev.target === this.input.nativeElement)\n\t\t) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tif (this.open && ev.key === \"Tab\" && ev.shiftKey) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/*\n\t * no-op method for null event listeners, and other no op calls\n\t */\n\t_noop() {}\n\n\t/*\n\t * propagates the value provided from ngModel\n\t */\n\twriteValue(value: any) {\n\t\tif (this.type === \"single\") {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the specified item and update its state\n\t\t\t\tconst newValue = Object.assign({}, this.view.getListItems().find(item => item[this.itemValueKey] === value));\n\t\t\t\tnewValue.selected = true;\n\t\t\t\tthis.view.propagateSelected([newValue]);\n\t\t\t} else {\n\t\t\t\t// all items in propagateSelected must be iterable\n\t\t\t\tthis.view.propagateSelected([value || \"\"]);\n\t\t\t}\n\t\t\tthis.showClearButton = !!(value && this.view.getSelected().length);\n\t\t} else {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the items and update their state based on the received value array\n\t\t\t\t// this way we don't lose any additional metadata that may be passed in via the `items` Input\n\t\t\t\tlet newValues = [];\n\t\t\t\tfor (const v of value) {\n\t\t\t\t\tfor (const item of this.view.getListItems()) {\n\t\t\t\t\t\tif (item[this.itemValueKey] === v) {\n\t\t\t\t\t\t\tnewValues.push(Object.assign({}, item, { selected: true }));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.view.propagateSelected(newValues);\n\t\t\t} else {\n\t\t\t\tthis.view.propagateSelected(value ? value : [\"\"]);\n\t\t\t}\n\t\t}\n\t\tthis.updateSelected();\n\t}\n\n\tonBlur() {\n\t\tthis.onTouchedCallback();\n\t}\n\n\tregisterOnChange(fn: any) {\n\t\tthis.propagateChangeCallback = fn;\n\t}\n\n\tregisterOnTouched(fn: any) {\n\t\tthis.onTouchedCallback = fn;\n\t}\n\n\t/**\n\t * `ControlValueAccessor` method to programmatically disable the combobox.\n\t *\n\t * ex: `this.formGroup.get(\"myCoolCombobox\").disable();`\n\t */\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t/**\n\t * Called by `n-pill-input` when the selected pills have changed.\n\t */\n\tpublic updatePills() {\n\t\tthis.pills = this.view.getSelected() || [];\n\t\tthis.checkForReorder();\n\t}\n\n\tpublic clearSelected(event) {\n\t\tthis.items = this.items.map(item => {\n\t\t\tif (!item.disabled) {\n\t\t\t\titem.selected = false;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t\tthis.view.items = this.items;\n\t\tthis.updatePills();\n\t\t// clearSelected can only fire on type=multi\n\t\t// so we just emit getSelected() (just in case there's any disabled but selected items)\n\t\tconst selected = this.view.getSelected();\n\n\t\t// in case there are disabled items they should be mapped according to itemValueKey\n if (this.itemValueKey && selected) {\n const values = selected.map((item) => item[this.itemValueKey]);\n this.propagateChangeCallback(values);\n } else {\n this.propagateChangeCallback(selected);\n }\n\n\t\tthis.selected.emit(selected as any);\n\t\tthis.clear.emit(event);\n\t}\n\n\t/**\n\t * Closes the dropdown and emits the close event.\n\t */\n\tpublic closeDropdown() {\n\t\tthis.open = false;\n\t\tthis.checkForReorder();\n\t\tthis.close.emit();\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\n\t\tdocument.removeEventListener(\"click\", this.outsideClick, true);\n\t}\n\n\t/**\n\t * Opens the dropdown.\n\t */\n\tpublic openDropdown() {\n\t\tif (this.disabled || this.readonly) { return; }\n\t\tthis.open = true;\n\t\tthis._dropUp = false;\n\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToBody();\n\t\t}\n\n\t\tdocument.addEventListener(\"click\", this.outsideClick, true);\n\n\t\t// set the dropdown menu to drop up if it is near the bottom of the screen\n\t\t// setTimeout lets us do the calculations after it is visible in the DOM\n\t\tsetTimeout(() => {\n\t\t\tif (this.dropUp === null || this.dropUp === undefined) {\n\t\t\t\tthis._dropUp = this._shouldDropUp();\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\t/**\n\t * Toggles the dropdown.\n\t */\n\tpublic toggleDropdown() {\n\t\tif (this.open) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the list group filter, and manages single select item selection.\n\t */\n\tpublic onSearch(searchString, shouldEmitSearch = true) {\n\t\tif (shouldEmitSearch) {\n\t\t\tthis.search.emit(searchString);\n\t\t}\n\t\tthis.showClearButton = !!searchString;\n\t\tthis.view.filterBy(searchString);\n\t\tif (searchString !== \"\") {\n\t\t\tif (!this.open) {\n\t\t\t\tthis.openDropdown();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.selectedValue = \"\";\n\t\t\tif (this.type === \"multi\" &&\n\t\t\t\t(this.selectionFeedback === \"top\" || this.selectionFeedback === \"top-after-reopen\")) {\n\t\t\t\tthis.view.reorderSelected();\n\t\t\t}\n\t\t}\n\t\tif (this.type === \"single\") {\n\t\t\t// deselect if the input doesn't match the content\n\t\t\t// of any given item\n\t\t\tconst matches = this.view.getListItems().some(item => item.content.toLowerCase().includes(searchString.toLowerCase()));\n\t\t\tif (!matches) {\n\t\t\t\tconst selected = this.view.getSelected();\n\t\t\t\tif (!selected || !selected[0]) {\n\t\t\t\t\tthis.view.filterBy(searchString);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Intended to be used to add items to the list.\n\t */\n\tpublic onSubmit(event: KeyboardEvent) {\n\t\tthis.submit.emit({\n\t\t\titems: this.view.getListItems(),\n\t\t\tindex: 0,\n\t\t\tvalue: {\n\t\t\t\tcontent: (event.target as HTMLInputElement).value,\n\t\t\t\tselected: false\n\t\t\t}\n\t\t});\n\t}\n\n\tclearInput(event) {\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.type === \"single\") { // don't want to clear selected or close if multi\n\t\t\tthis.clearSelected(event);\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tthis.selectedValue = \"\";\n\t\tthis.input.nativeElement.value = \"\";\n\n\t\tthis.showClearButton = false;\n\t\tthis.input.nativeElement.focus();\n\t\tthis.onSearch(this.input.nativeElement.value);\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n\n\t/**\n\t * Handles keyboard events so users are controlling the `Dropdown` instead of unintentionally controlling outside elements.\n\t */\n\t_keyboardNav(event: KeyboardEvent) {\n\t\tif ((event.key === \"Escape\") && this.open) {\n\t\t\tevent.stopImmediatePropagation(); // don't unintentionally close modal if inside of it\n\t\t}\n\t\tif (event.key === \"Escape\") {\n\t\t\tevent.preventDefault();\n\t\t\tthis.closeDropdown();\n\t\t\tthis.input.nativeElement.focus();\n\t\t} else if (this.open && event.key === \"Tab\") {\n\t\t\t// this way focus will start on the next focusable item from the dropdown\n\t\t\t// not the top of the body!\n\t\t\tthis.input.nativeElement.focus();\n\t\t\tthis.input.nativeElement.dispatchEvent(new KeyboardEvent(\"keydown\", { bubbles: true, cancelable: true, key: \"Tab\" }));\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list as an element that is appended to the DOM body.\n\t */\n\t_appendToBody() {\n\t\tthis.dropdownService.appendToBody(\n\t\t\tthis.listbox.nativeElement,\n\t\t\tthis.dropdownMenu.nativeElement,\n\t\t\t`${this.elementRef.nativeElement.className}${this.open ? \" cds--list-box--expanded\" : \"\"}`);\n\t\tthis.dropdownMenu.nativeElement.addEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list appending it to the dropdown parent object instead of the body.\n\t */\n\t_appendToDropdown() {\n\t\tthis.dropdownService.appendToDropdown(this.elementRef.nativeElement);\n\t\tthis.dropdownMenu.nativeElement.removeEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Detects whether or not the `Dropdown` list is visible within all scrollable parents.\n\t * This can be overridden by passing in a value to the `dropUp` input.\n\t */\n\t_shouldDropUp() {\n\t\t// check if dropdownMenu exists first.\n\t\tconst menu = this.dropdownMenu && this.dropdownMenu.nativeElement.querySelector(\".cds--list-box__menu\");\n\t\t// check if menu exists first.\n\t\tconst menuRect = menu && menu.getBoundingClientRect();\n\t\tif (menu && menuRect) {\n\t\t\tconst scrollableParents = getScrollableParents(menu);\n\t\t\treturn scrollableParents.reduce((shouldDropUp: boolean, parent: HTMLElement) => {\n\t\t\t\tconst parentRect = parent.getBoundingClientRect();\n\t\t\t\tconst isBelowParent = !(menuRect.bottom <= parentRect.bottom);\n\t\t\t\treturn shouldDropUp || isBelowParent;\n\t\t\t}, false);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Handles clicks outside of the `Dropdown` list.\n\t */\n\t_outsideClick(event) {\n\t\tif (!this.elementRef.nativeElement.contains(event.target) &&\n\t\t\t// if we're appendToBody the list isn't within the _elementRef,\n\t\t\t// so we've got to check if our target is possibly in there too.\n\t\t\t!this.dropdownMenu.nativeElement.contains(event.target)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\thandleFocus(event: FocusEvent) {\n\t\tthis._isFocused = event.type === \"focus\";\n\t}\n\n\tprotected updateSelected() {\n\t\tconst selected = this.view.getSelected();\n\t\tif (this.type === \"multi\") {\n\t\t\tthis.updatePills();\n\t\t} else if (selected) {\n\t\t\tconst value = selected[0] ? selected[0].content : \"\";\n\t\t\tconst changeCallbackValue = selected[0] ? selected[0] : \"\";\n\t\t\tthis.selectedValue = value;\n\t\t\tthis.showClearButton = !!value;\n\t\t}\n\t}\n\n\tprotected checkForReorder() {\n\t\tconst topAfterReopen = !this.open && this.selectionFeedback === \"top-after-reopen\";\n\t\tif ((this.type === \"multi\") && (topAfterReopen || this.selectionFeedback === \"top\")) {\n\t\t\tthis.view.reorderSelected(true);\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ComboBox } from \"./combobox.component\";\nimport { DropdownModule, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tComboBox\n\t],\n\texports: [\n\t\tComboBox,\n\t\tDropdownModule\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tDropdownModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t],\n\tproviders: [ DropdownService ]\n})\nexport class ComboBoxModule {}\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-combobox.mjs","sources":["../../src/combobox/combobox.component.ts","../../src/combobox/combobox.module.ts","../../src/combobox/carbon-components-angular-combobox.ts"],"sourcesContent":["import {\n\tComponent,\n\tOnChanges,\n\tContentChild,\n\tInput,\n\tOutput,\n\tHostListener,\n\tElementRef,\n\tViewChild,\n\tEventEmitter,\n\tAfterViewInit,\n\tAfterContentInit,\n\tHostBinding,\n\tTemplateRef,\n\tOnDestroy\n} from \"@angular/core\";\nimport { AbstractDropdownView, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { ListItem } from \"carbon-components-angular/dropdown\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { filter } from \"rxjs/operators\";\nimport {\n\tgetScrollableParents,\n\thasScrollableParents\n} from \"carbon-components-angular/utils\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { ComboBoxModule } from 'carbon-components-angular';\n * ```\n *\n * ComboBoxes are similar to dropdowns, except a combobox provides an input field for users to search items and (optionally) add their own.\n * Multi-select comboboxes also provide \"pills\" of selected items.\n *\n * [See demo](../../?path=/story/components-combobox--basic)\n */\n@Component({\n\tselector: \"cds-combo-box, ibm-combo-box\",\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"cds--list-box__wrapper\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--list-box__wrapper--fluid': fluid,\n\t\t\t\t'cds--list-box__wrapper--fluid--invalid': fluid && invalid,\n\t\t\t\t'cds--list-box__wrapper--fluid--focus': fluid && _isFocused\n\t\t\t}\">\n\t\t\t<label\n\t\t\t\t*ngIf=\"label\"\n\t\t\t\t[for]=\"id\"\n\t\t\t\t[id]=\"labelId\"\n\t\t\t\tclass=\"cds--label\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--label--disabled': disabled,\n\t\t\t\t\t'cds--visually-hidden': hideLabel\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(label)\">{{label}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(label)\" [ngTemplateOutlet]=\"label\"></ng-template>\n\t\t\t</label>\n\t\t\t<div\n\t\t\t\t#listbox\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--multi-select cds--multi-select--filterable': type === 'multi',\n\t\t\t\t\t'cds--list-box--light': theme === 'light',\n\t\t\t\t\t'cds--list-box--expanded': open,\n\t\t\t\t\t'cds--list-box--sm': size === 'sm',\n\t\t\t\t\t'cds--list-box--md': size === 'md',\n\t\t\t\t\t'cds--list-box--lg': size === 'lg',\n\t\t\t\t\t'cds--list-box--disabled': disabled,\n\t\t\t\t\t'cds--combo-box--readonly': readonly,\n\t\t\t\t\t'cds--combo-box--warning cds--list-box--warning': warn,\n\t\t\t\t\t'cds--list-box--invalid': invalid\n\t\t\t\t}\"\n\t\t\t\tclass=\"cds--list-box cds--combo-box\"\n\t\t\t\t[attr.data-invalid]=\"(invalid ? true : null)\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--list-box__field\"\n\t\t\t\t\t(click)=\"toggleDropdown()\"\n\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"type === 'multi' && pills.length > 0\"\n\t\t\t\t\t\tclass=\"cds--tag cds--tag--filter cds--tag--high-contrast\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--tag--disabled': disabled || readonly}\">\n\t\t\t\t\t\t<span class=\"cds--tag__label\">{{ pills.length }}</span>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"clearSelected($event)\"\n\t\t\t\t\t\t\t(blur)=\"onBlur()\"\n\t\t\t\t\t\t\t(keydown.enter)=\"clearSelected($event)\"\n\t\t\t\t\t\t\tclass=\"cds--tag__close-icon\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t\t[title]=\"clearSelectionsTitle\"\n\t\t\t\t\t\t\t[disabled]=\"disabled || readonly\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\">\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<path d=\"M12 4.7l-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8z\"></path>\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t[readOnly]=\"readonly\"\n\t\t\t\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t\t\t\t(focus)=\"fluid ? handleFocus($event) : null\"\n\t\t\t\t\t\t(blur)=\"fluid ? handleFocus($event) : onBlur()\"\n\t\t\t\t\t\t(keydown.enter)=\"onSubmit($event)\"\n\t\t\t\t\t\t[value]=\"selectedValue\"\n\t\t\t\t\t\tclass=\"cds--text-input\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--text-input--empty': !showClearButton}\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[id]=\"id\"\n\t\t\t\t\t\t[attr.aria-labelledby]=\"labelId\"\n\t\t\t\t\t\t[attr.aria-expanded]=\"open\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t[attr.maxlength]=\"maxLength\"\n\t\t\t\t\t\t[attr.aria-controls]=\"open ? view?.listId : null\"\n\t\t\t\t\t\t[attr.aria-autocomplete]=\"autocomplete\"\n\t\t\t\t\t\t[placeholder]=\"placeholder\"/>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"invalid\"\n\t\t\t\t\t\tcdsIcon=\"warning--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"!invalid && warn\"\n\t\t\t\t\t\tcdsIcon=\"warning--alt--filled\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tclass=\"cds--list-box__invalid-icon cds--list-box__invalid-icon--warning\">\n\t\t\t\t\t</svg>\n\t\t\t\t\t<div\n\t\t\t\t\t\t*ngIf=\"showClearButton\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__selection\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t[attr.aria-label]=\"clearSelectionAria\"\n\t\t\t\t\t\t[title]=\"clearSelectionTitle\"\n\t\t\t\t\t\t(keyup.enter)=\"clearInput($event)\"\n\t\t\t\t\t\t(click)=\"clearInput($event)\"\n\t\t\t\t\t\t(blur)=\"onBlur()\">\n\t\t\t\t\t\t<svg cdsIcon=\"close\" size=\"16\"></svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tclass=\"cds--list-box__menu-icon\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t[title]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[attr.aria-label]=\"open ? closeMenuAria : openMenuAria\"\n\t\t\t\t\t\t[ngClass]=\"{'cds--list-box__menu-icon--open': open}\">\n\t\t\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\"></svg>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t#dropdownMenu\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--list-box--up': this.dropUp !== null && this.dropUp !== undefined ? dropUp : _dropUp\n\t\t\t\t\t}\">\n\t\t\t\t\t<ng-content *ngIf=\"open\"></ng-content>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<hr *ngIf=\"fluid\" class=\"cds--list-box__divider\" />\n\t\t\t<div\n\t\t\t\t*ngIf=\"helperText && !invalid && !warn && !fluid\"\n\t\t\t\tclass=\"cds--form__helper-text\"\n\t\t\t\t[ngClass]=\"{'cds--form__helper-text--disabled': disabled}\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(helperText)\">{{helperText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(helperText)\" [ngTemplateOutlet]=\"helperText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"invalid\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(invalidText)\">{{ invalidText }}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(invalidText)\" [ngTemplateOutlet]=\"invalidText\"></ng-template>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n\t\t\t\t<ng-container *ngIf=\"!isTemplate(warnText)\">{{warnText}}</ng-container>\n\t\t\t\t<ng-template *ngIf=\"isTemplate(warnText)\" [ngTemplateOutlet]=\"warnText\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: ComboBox,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class ComboBox implements OnChanges, AfterViewInit, AfterContentInit, OnDestroy {\n\t/**\n\t * Text to show when nothing is selected.\n\t */\n\t@Input() set placeholder(value: string | Observable<string>) {\n\t\tthis._placeholder.override(value);\n\t}\n\n\tget placeholder() {\n\t\treturn this._placeholder.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when closed\n\t */\n\t@Input() set openMenuAria(value: string | Observable<string>) {\n\t\tthis._openMenuAria.override(value);\n\t}\n\n\tget openMenuAria() {\n\t\treturn this._openMenuAria.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the combobox control menu when opened\n\t */\n\t@Input() set closeMenuAria(value: string | Observable<string>) {\n\t\tthis._closeMenuAria.override(value);\n\t}\n\n\tget closeMenuAria() {\n\t\treturn this._closeMenuAria.value;\n\t}\n\t/**\n\t * Value to display on the clear selections icon, when multi is selected\n\t */\n\t@Input() set clearSelectionsTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionsTitle.override(value);\n\t}\n\n\tget clearSelectionsTitle() {\n\t\treturn this._clearSelectionsTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes to clear selections, when multi is selected\n\t */\n\t@Input() set clearSelectionsAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionsAria.override(value);\n\t}\n\n\tget clearSelectionsAria() {\n\t\treturn this._clearSelectionsAria.value;\n\t}\n\t/**\n\t * Value to display on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionTitle(value: string | Observable<string>) {\n\t\tthis._clearSelectionTitle.override(value);\n\t}\n\n\tget clearSelectionTitle() {\n\t\treturn this._clearSelectionTitle.value;\n\t}\n\t/**\n\t * Value to display for accessibility purposes on the clear the selected item icon, when single is selected\n\t */\n\t@Input() set clearSelectionAria(value: string | Observable<string>) {\n\t\tthis._clearSelectionAria.override(value);\n\t}\n\n\tget clearSelectionAria() {\n\t\treturn this._clearSelectionAria.value;\n\t}\n\tstatic comboBoxCount = 0;\n\t@Input() id = `combobox-${ComboBox.comboBoxCount++}`;\n\t@Input() labelId = `combobox-label-${ComboBox.comboBoxCount++}`;\n\t/**\n\t * List of items to fill the content with.\n\t *\n\t * **Example:**\n\t * ```javascript\n\t * items = [\n\t *\t\t{\n\t *\t\t\tcontent: \"Abacus\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Byte\",\n\t *\t\t\tselected: false,\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Computer\",\n\t *\t\t\tselected: false\n\t *\t\t},\n\t *\t\t{\n\t *\t\t\tcontent: \"Digital\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t * ];\n\t * ```\n\t *\n\t */\n\t@Input() items: Array<ListItem> = [];\n\t/**\n\t * Combo box type (supporting single or multi selection of items).\n\t */\n\t@Input() type: \"single\" | \"multi\" = \"single\";\n\t/**\n\t * Combo box render size.\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Specifies the property to be used as the return value to `ngModel`\n\t */\n\t@Input() itemValueKey: string;\n\t/**\n\t * Label for the combobox.\n\t */\n\t@Input() label: string | TemplateRef<any>;\n\t/**\n\t * Hide label while keeping it accessible for screen readers\n\t */\n\t@Input() hideLabel = false;\n\t/**\n\t * Sets the optional helper text.\n\t */\n\t@Input() helperText: string | TemplateRef<any>;\n\t/**\n\t * set to `true` to place the dropdown view inline with the component\n\t */\n\t@Input() appendInline: boolean = null;\n\t/**\n\t * Set to `true` to show the invalid state.\n\t */\n\t@Input() invalid = false;\n\t/**\n\t * Value displayed if combobox is in an invalid state.\n\t */\n\t@Input() invalidText: string | TemplateRef<any>;\n\t/**\n\t* Set to `true` to show a warning (contents set by warnText)\n\t*/\n\t@Input() warn = false;\n\t/**\n\t * Sets the warning text\n\t */\n\t@Input() warnText: string | TemplateRef<any>;\n\t/**\n\t * Max length value to limit input characters\n\t */\n\t@Input() maxLength: number = null;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Specify feedback (mode) of the selection.\n\t * `top`: selected item jumps to top\n\t * `fixed`: selected item stays at its position\n\t * `top-after-reopen`: selected item jump to top after reopen dropdown\n\t */\n\t@Input() selectionFeedback: \"top\" | \"fixed\" | \"top-after-reopen\" = \"top-after-reopen\";\n\t/**\n\t * Specify aria-autocomplete attribute of text input.\n\t * \"list\", is the expected value for a combobox that invokes a drop-down list\n\t */\n\t@Input() autocomplete = \"list\";\n\t/**\n\t * Overrides the automatic dropUp.\n\t */\n\t@Input() dropUp: boolean;\n\t/**\n\t * Set to `true` to disable combobox.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` for readonly state.\n\t */\n\t@Input() readonly = false;\n\t/**\n\t * Experimental: enable fluid state\n\t */\n\t@Input() fluid = false;\n\t/**\n\t * Emits a ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t * \t\tcontent: \"one\",\n\t * \t\tselected: true\n\t * }\n\t * ```\n\t */\n\t@Output() selected = new EventEmitter<ListItem | ListItem[]>();\n\t/**\n\t * Intended to be used to add items to the list.\n\t *\n\t * Emits an event that includes the current item list, the suggested index for the new item, and a simple ListItem\n\t *\n\t * Example:\n\t * ```javascript\n\t *\t{\n\t *\t\titems: [{content: \"one\", selected: true}, {content: \"two\", selected: true}],\n\t *\t\tindex: 1,\n\t *\t\tvalue: {\n\t *\t\t\tcontent: \"some user string\",\n\t *\t\t\tselected: false\n\t *\t\t}\n\t *\t}\n\t * ```\n\t *\n\t *\n\t * Example:\n\t * ```javascript\n\t * {\n\t *\tafter: 1,\n\t *\tvalue: \"some user string\"\n\t * }\n\t * ```\n\t */\n\t@Output() submit = new EventEmitter<{\n\t\titems: ListItem[],\n\t\tindex: number,\n\t\tvalue: {\n\t\t\tcontent: string,\n\t\t\tselected: boolean\n\t\t}\n\t}>();\n\t/** Emits an empty event when the menu is closed */\n\t@Output() close = new EventEmitter<void>();\n\t/** Emits the search string from the input */\n\t@Output() search = new EventEmitter<string>();\n\t/** Emits an event when the clear button is clicked. */\n\t@Output() clear = new EventEmitter<Event>();\n\t/** ContentChild reference to the instantiated dropdown list */\n\t@ContentChild(AbstractDropdownView, { static: true }) view: AbstractDropdownView;\n\t@ViewChild(\"dropdownMenu\") dropdownMenu;\n\t@ViewChild(\"input\", { static: true }) input: ElementRef;\n\t@ViewChild(\"listbox\", { static: true }) listbox: ElementRef;\n\t@HostBinding(\"class.cds--list-box__wrapper\") hostClass = true;\n\n\tpublic open = false;\n\n\tpublic showClearButton = false;\n\n\t/** Selected items for multi-select combo-boxes. */\n\tpublic pills = [];\n\t/** used to update the displayValue */\n\tpublic selectedValue = \"\";\n\n\toutsideClick = this._outsideClick.bind(this);\n\tkeyboardNav = this._keyboardNav.bind(this);\n\t/**\n\t * controls whether the `drop-up` class is applied\n\t */\n\t_dropUp = false;\n\n\tprotected noop = this._noop.bind(this);\n\tprotected onTouchedCallback: () => void = this._noop;\n\tprotected propagateChangeCallback: (_: any) => void = this._noop;\n\n\tprotected _placeholder = this.i18n.getOverridable(\"COMBOBOX.PLACEHOLDER\");\n\tprotected _closeMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLOSE_MENU\");\n\tprotected _openMenuAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.OPEN_MENU\");\n\tprotected _clearSelectionsTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionsAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTIONS\");\n\tprotected _clearSelectionTitle = this.i18n.getOverridable(\"COMBOBOX.CLEAR_SELECTED\");\n\tprotected _clearSelectionAria = this.i18n.getOverridable(\"COMBOBOX.A11Y.CLEAR_SELECTED\");\n\n\tprotected _isFocused = false;\n\n\t/**\n\t * Creates an instance of ComboBox.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected dropdownService: DropdownService,\n\t\tprotected i18n: I18n\n\t) {}\n\n\t/**\n\t * Lifecycle hook.\n\t * Updates pills if necessary.\n\t *\n\t */\n\tngOnChanges(changes) {\n\t\tif (changes.items) {\n\t\t\tthis.view.items = changes.items.currentValue;\n\t\t\tthis.updateSelected();\n\t\t\t// If new items are added into the combobox while there is search input,\n\t\t\t// repeat the search. Search should only trigger for type 'single' when there is no value selected.\n\t\t\tif (this.type === \"multi\" || (this.type === \"single\" && !this.selectedValue)) {\n\t\t\t\tthis.onSearch(this.input.nativeElement.value, false);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets initial state that depends on child components\n\t * Subscribes to select events and handles focus/filtering/initial list updates\n\t */\n\tngAfterContentInit() {\n\t\tif (this.view) {\n\t\t\tthis.view.type = this.type;\n\n\t\t\t// function to check if the event is organic (isUpdate === false) or programmatic\n\t\t\tconst isUpdate = event => event && event.isUpdate;\n\n\t\t\tthis.view.select.subscribe(event => {\n\t\t\t\tif (Array.isArray(event)) {\n\t\t\t\t\tthis.updatePills();\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tif (this.itemValueKey && this.view.getSelected()) {\n\t\t\t\t\t\t\tconst values = this.view.getSelected().map(item => item[this.itemValueKey]);\n\t\t\t\t\t\t\tthis.propagateChangeCallback(values);\n\t\t\t\t\t\t// otherwise just pass up the values from `getSelected`\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(this.view.getSelected());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.selected.emit(event);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If type is single, dropdown list will emit an object\n\t\t\t\t\tif (event.item && event.item.selected) {\n\t\t\t\t\t\tthis.showClearButton = true;\n\t\t\t\t\t\tthis.selectedValue = event.item.content;\n\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tif (this.itemValueKey) {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item[this.itemValueKey]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.propagateChangeCallback(event.item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.selectedValue = \"\";\n\t\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\t\tthis.propagateChangeCallback(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// not guarding these since the nativeElement has to be loaded\n\t\t\t\t\t// for select to even fire\n\t\t\t\t\t// only focus for \"organic\" selections\n\t\t\t\t\tif (!isUpdate(event)) {\n\t\t\t\t\t\tthis.elementRef.nativeElement.querySelector(\"input\").focus();\n\t\t\t\t\t\tthis.view.filterBy(\"\");\n\t\t\t\t\t\tthis.selected.emit(event.item);\n\t\t\t\t\t}\n\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t\t// update the rest of combobox with any pre-selected items\n\t\t\t// setTimeout just defers the call to the next check cycle\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateSelected();\n\t\t\t});\n\n\t\t\tthis.view.blurIntent.pipe(filter(v => v === \"top\")).subscribe(() => {\n\t\t\t\tthis.elementRef.nativeElement.querySelector(\".cds--text-input\").focus();\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Binds event handlers against the rendered view\n\t */\n\tngAfterViewInit() {\n\t\t// if appendInline is default valued (null) we should:\n\t\t// 1. if there are scrollable parents (not including body) don't append inline\n\t\t// this should also cover the case where the dropdown is in a modal\n\t\t// (where we _do_ want to append to the placeholder)\n\t\tif (this.appendInline === null && hasScrollableParents(this.elementRef.nativeElement)) {\n\t\t\tthis.appendInline = false;\n\t\t// 2. otherwise we should append inline\n\t\t} else if (this.appendInline === null) {\n\t\t\tthis.appendInline = true;\n\t\t}\n\t}\n\n\t/**\n\t * Removing the `Dropdown` from the body if it is appended to the body.\n\t */\n\tngOnDestroy() {\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Handles `Escape/Tab` key closing the dropdown, and arrow up/down focus to/from the dropdown list.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\thostkeys(ev: KeyboardEvent) {\n\t\tif (ev.key === \"Escape\") {\n\t\t\tthis.closeDropdown();\n\t\t} else if ((ev.key === \"ArrowDown\")\n\t\t\t&& (!this.dropdownMenu || !this.dropdownMenu.nativeElement.contains(ev.target))) {\n\t\t\tev.preventDefault();\n\t\t\tthis.openDropdown();\n\t\t\tsetTimeout(() => { this.view.initFocus(); }, 0);\n\t\t}\n\n\t\tif (\n\t\t\tthis.open && ev.key === \"Tab\" &&\n\t\t\t(this.dropdownMenu.nativeElement.contains(ev.target as Node) || ev.target === this.input.nativeElement)\n\t\t) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tif (this.open && ev.key === \"Tab\" && ev.shiftKey) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/*\n\t * no-op method for null event listeners, and other no op calls\n\t */\n\t_noop() {}\n\n\t/*\n\t * propagates the value provided from ngModel\n\t */\n\twriteValue(value: any) {\n\t\tif (this.type === \"single\") {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the specified item and update its state\n\t\t\t\tconst newValue = Object.assign({}, this.view.getListItems().find(item => item[this.itemValueKey] === value));\n\t\t\t\tnewValue.selected = true;\n\t\t\t\tthis.view.propagateSelected([newValue]);\n\t\t\t} else {\n\t\t\t\t// all items in propagateSelected must be iterable\n\t\t\t\tthis.view.propagateSelected([value || \"\"]);\n\t\t\t}\n\t\t\tthis.showClearButton = !!(value && this.view.getSelected().length);\n\t\t} else {\n\t\t\tif (this.itemValueKey) {\n\t\t\t\t// clone the items and update their state based on the received value array\n\t\t\t\t// this way we don't lose any additional metadata that may be passed in via the `items` Input\n\t\t\t\tlet newValues = [];\n\t\t\t\tfor (const v of value ?? []) {\n\t\t\t\t\tfor (const item of this.view.getListItems()) {\n\t\t\t\t\t\tif (item[this.itemValueKey] === v) {\n\t\t\t\t\t\t\tnewValues.push(Object.assign({}, item, { selected: true }));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.view.propagateSelected(newValues);\n\t\t\t} else {\n\t\t\t\tthis.view.propagateSelected(value ? value : [\"\"]);\n\t\t\t}\n\t\t}\n\t\tthis.updateSelected();\n\t}\n\n\tonBlur() {\n\t\tthis.onTouchedCallback();\n\t}\n\n\tregisterOnChange(fn: any) {\n\t\tthis.propagateChangeCallback = fn;\n\t}\n\n\tregisterOnTouched(fn: any) {\n\t\tthis.onTouchedCallback = fn;\n\t}\n\n\t/**\n\t * `ControlValueAccessor` method to programmatically disable the combobox.\n\t *\n\t * ex: `this.formGroup.get(\"myCoolCombobox\").disable();`\n\t */\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t/**\n\t * Called by `n-pill-input` when the selected pills have changed.\n\t */\n\tpublic updatePills() {\n\t\tthis.pills = this.view.getSelected() || [];\n\t\tthis.checkForReorder();\n\t}\n\n\tpublic clearSelected(event) {\n\t\tthis.items = this.items.map(item => {\n\t\t\tif (!item.disabled) {\n\t\t\t\titem.selected = false;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t\tthis.view.items = this.items;\n\t\tthis.updatePills();\n\t\t// clearSelected can only fire on type=multi\n\t\t// so we just emit getSelected() (just in case there's any disabled but selected items)\n\t\tconst selected = this.view.getSelected();\n\n\t\t// in case there are disabled items they should be mapped according to itemValueKey\n if (this.itemValueKey && selected) {\n const values = selected.map((item) => item[this.itemValueKey]);\n this.propagateChangeCallback(values);\n } else {\n this.propagateChangeCallback(selected);\n }\n\n\t\tthis.selected.emit(selected as any);\n\t\tthis.clear.emit(event);\n\t}\n\n\t/**\n\t * Closes the dropdown and emits the close event.\n\t */\n\tpublic closeDropdown() {\n\t\tthis.open = false;\n\t\tthis.checkForReorder();\n\t\tthis.close.emit();\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToDropdown();\n\t\t}\n\n\t\tdocument.removeEventListener(\"click\", this.outsideClick, true);\n\t}\n\n\t/**\n\t * Opens the dropdown.\n\t */\n\tpublic openDropdown() {\n\t\tif (this.disabled || this.readonly) { return; }\n\t\tthis.open = true;\n\t\tthis._dropUp = false;\n\n\t\tif (!this.appendInline) {\n\t\t\tthis._appendToBody();\n\t\t}\n\n\t\tdocument.addEventListener(\"click\", this.outsideClick, true);\n\n\t\t// set the dropdown menu to drop up if it is near the bottom of the screen\n\t\t// setTimeout lets us do the calculations after it is visible in the DOM\n\t\tsetTimeout(() => {\n\t\t\tif (this.dropUp === null || this.dropUp === undefined) {\n\t\t\t\tthis._dropUp = this._shouldDropUp();\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\t/**\n\t * Toggles the dropdown.\n\t */\n\tpublic toggleDropdown() {\n\t\tif (this.open) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the list group filter, and manages single select item selection.\n\t */\n\tpublic onSearch(searchString, shouldEmitSearch = true) {\n\t\tif (shouldEmitSearch) {\n\t\t\tthis.search.emit(searchString);\n\t\t}\n\t\tthis.showClearButton = !!searchString;\n\t\tthis.view.filterBy(searchString);\n\t\tif (searchString !== \"\") {\n\t\t\tif (!this.open) {\n\t\t\t\tthis.openDropdown();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.selectedValue = \"\";\n\t\t\tif (this.type === \"multi\" &&\n\t\t\t\t(this.selectionFeedback === \"top\" || this.selectionFeedback === \"top-after-reopen\")) {\n\t\t\t\tthis.view.reorderSelected();\n\t\t\t}\n\t\t}\n\t\tif (this.type === \"single\") {\n\t\t\t// deselect if the input doesn't match the content\n\t\t\t// of any given item\n\t\t\tconst matches = this.view.getListItems().some(item => item.content.toLowerCase().includes(searchString.toLowerCase()));\n\t\t\tif (!matches) {\n\t\t\t\tconst selected = this.view.getSelected();\n\t\t\t\tif (!selected || !selected[0]) {\n\t\t\t\t\tthis.view.filterBy(searchString);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Intended to be used to add items to the list.\n\t */\n\tpublic onSubmit(event: KeyboardEvent) {\n\t\tthis.submit.emit({\n\t\t\titems: this.view.getListItems(),\n\t\t\tindex: 0,\n\t\t\tvalue: {\n\t\t\t\tcontent: (event.target as HTMLInputElement).value,\n\t\t\t\tselected: false\n\t\t\t}\n\t\t});\n\t}\n\n\tclearInput(event) {\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.type === \"single\") { // don't want to clear selected or close if multi\n\t\t\tthis.clearSelected(event);\n\t\t\tthis.closeDropdown();\n\t\t}\n\n\t\tthis.selectedValue = \"\";\n\t\tthis.input.nativeElement.value = \"\";\n\n\t\tthis.showClearButton = false;\n\t\tthis.input.nativeElement.focus();\n\t\tthis.onSearch(this.input.nativeElement.value);\n\t}\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n\n\t/**\n\t * Handles keyboard events so users are controlling the `Dropdown` instead of unintentionally controlling outside elements.\n\t */\n\t_keyboardNav(event: KeyboardEvent) {\n\t\tif ((event.key === \"Escape\") && this.open) {\n\t\t\tevent.stopImmediatePropagation(); // don't unintentionally close modal if inside of it\n\t\t}\n\t\tif (event.key === \"Escape\") {\n\t\t\tevent.preventDefault();\n\t\t\tthis.closeDropdown();\n\t\t\tthis.input.nativeElement.focus();\n\t\t} else if (this.open && event.key === \"Tab\") {\n\t\t\t// this way focus will start on the next focusable item from the dropdown\n\t\t\t// not the top of the body!\n\t\t\tthis.input.nativeElement.focus();\n\t\t\tthis.input.nativeElement.dispatchEvent(new KeyboardEvent(\"keydown\", { bubbles: true, cancelable: true, key: \"Tab\" }));\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list as an element that is appended to the DOM body.\n\t */\n\t_appendToBody() {\n\t\tthis.dropdownService.appendToBody(\n\t\t\tthis.listbox.nativeElement,\n\t\t\tthis.dropdownMenu.nativeElement,\n\t\t\t`${this.elementRef.nativeElement.className}${this.open ? \" cds--list-box--expanded\" : \"\"}`);\n\t\tthis.dropdownMenu.nativeElement.addEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Creates the `Dropdown` list appending it to the dropdown parent object instead of the body.\n\t */\n\t_appendToDropdown() {\n\t\tthis.dropdownService.appendToDropdown(this.elementRef.nativeElement);\n\t\tthis.dropdownMenu.nativeElement.removeEventListener(\"keydown\", this.keyboardNav, true);\n\t}\n\n\t/**\n\t * Detects whether or not the `Dropdown` list is visible within all scrollable parents.\n\t * This can be overridden by passing in a value to the `dropUp` input.\n\t */\n\t_shouldDropUp() {\n\t\t// check if dropdownMenu exists first.\n\t\tconst menu = this.dropdownMenu && this.dropdownMenu.nativeElement.querySelector(\".cds--list-box__menu\");\n\t\t// check if menu exists first.\n\t\tconst menuRect = menu && menu.getBoundingClientRect();\n\t\tif (menu && menuRect) {\n\t\t\tconst scrollableParents = getScrollableParents(menu);\n\t\t\treturn scrollableParents.reduce((shouldDropUp: boolean, parent: HTMLElement) => {\n\t\t\t\tconst parentRect = parent.getBoundingClientRect();\n\t\t\t\tconst isBelowParent = !(menuRect.bottom <= parentRect.bottom);\n\t\t\t\treturn shouldDropUp || isBelowParent;\n\t\t\t}, false);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Handles clicks outside of the `Dropdown` list.\n\t */\n\t_outsideClick(event) {\n\t\tif (!this.elementRef.nativeElement.contains(event.target) &&\n\t\t\t// if we're appendToBody the list isn't within the _elementRef,\n\t\t\t// so we've got to check if our target is possibly in there too.\n\t\t\t!this.dropdownMenu.nativeElement.contains(event.target)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\thandleFocus(event: FocusEvent) {\n\t\tthis._isFocused = event.type === \"focus\";\n\t}\n\n\tprotected updateSelected() {\n\t\tconst selected = this.view.getSelected();\n\t\tif (this.type === \"multi\") {\n\t\t\tthis.updatePills();\n\t\t} else if (selected) {\n\t\t\tconst value = selected[0] ? selected[0].content : \"\";\n\t\t\tconst changeCallbackValue = selected[0] ? selected[0] : \"\";\n\t\t\tthis.selectedValue = value;\n\t\t\tthis.showClearButton = !!value;\n\t\t}\n\t}\n\n\tprotected checkForReorder() {\n\t\tconst topAfterReopen = !this.open && this.selectionFeedback === \"top-after-reopen\";\n\t\tif ((this.type === \"multi\") && (topAfterReopen || this.selectionFeedback === \"top\")) {\n\t\t\tthis.view.reorderSelected(true);\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ComboBox } from \"./combobox.component\";\nimport { DropdownModule, DropdownService } from \"carbon-components-angular/dropdown\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tComboBox\n\t],\n\texports: [\n\t\tComboBox,\n\t\tDropdownModule\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tDropdownModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t],\n\tproviders: [ DropdownService ]\n})\nexport class ComboBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -247,7 +247,8 @@ class IconDirective {
247
247
  node = node.nextSibling;
248
248
  }
249
249
  const svg = root.tagName.toUpperCase() !== "SVG" ? svgElement : root;
250
- svg.setAttribute("xmlns", "http://www.w3.org/2000/svg");
250
+ const xmlns = "http://www.w3.org/2000/svg";
251
+ svg.setAttribute("xmlns", xmlns);
251
252
  const attributes = getAttributes({
252
253
  width: icon.attrs.width,
253
254
  height: icon.attrs.height,
@@ -271,7 +272,7 @@ class IconDirective {
271
272
  }
272
273
  }
273
274
  if (attributes["title"]) {
274
- const title = document.createElement("title");
275
+ const title = document.createElementNS(xmlns, "title");
275
276
  title.textContent = attributes.title;
276
277
  IconDirective.titleIdCounter++;
277
278
  title.setAttribute("id", `${icon.name}-title-${IconDirective.titleIdCounter}`);
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-icon.mjs","sources":["../../src/icon/icon.service.ts","../../src/icon/icon.directive.ts","../../src/icon/icon.module.ts","../../src/icon/carbon-components-angular-icon.ts"],"sourcesContent":["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\tattrs: {\n\t\txmlns: string,\n\t\t// needed by the icon directive to determine other attributes\n\t\tviewBox: string,\n\t\tfill: string,\n\t\t// needed by the icon directive to determine other attributes\n\t\twidth: string,\n\t\t// needed by the icon directive to determine other attributes\n\t\theight: string,\n\t\t[x: string]: string\n\t};\n\t/**\n\t * The content (children) of the element as an array of `IconDescriptor`s\n\t * (usually without a few fields, namely `name` and `size`)\n\t */\n\tcontent: IconDescriptor[];\n\t/**\n\t * The name of the icon.\n\t *\n\t * Needed by the icon service.\n\t */\n\tname: string;\n\t/**\n\t * The size of the icon in pixels.\n\t *\n\t * Needed by the icon service.\n\t */\n\tsize: number;\n\t/**\n\t * Optional. A string representation of the compiled svg.\n\t * If missing the icon service will add this.\n\t */\n\tsvg?: string;\n}\n\n/**\n * Abstract class that represent a cache of icons.\n *\n * The actual caching mechanism will be implementation specific,\n * but it's likely a good idea to key by the icons name and/or size.\n * Icon name and size will always be strings, and they will be the two consistent\n * identifiers of an icon. For the purposes of storage additonal descriptor properties may\n * be used, but the name and size are the only ones guarenteed to be passed for lookup purposes.\n */\nexport abstract class IconCache {\n\t/**\n\t * Finds and returns an icon based on it's name and size\n\t */\n\tabstract get(name: string, size: string): object;\n\t/**\n\t * stores an icon descriptor to the cache\n\t */\n\tabstract set(name: string, size: string, descriptor: object): void;\n}\n\n/**\n * Custom error for when a name can't be found\n */\nexport class IconNameNotFoundError extends Error {\n\tconstructor(name: string) {\n\t\tsuper(`Icon ${name} not found`);\n\t}\n}\n\n/**\n * Custom error for when a specific size can't be found\n */\nexport class IconSizeNotFoundError extends Error {\n\tconstructor(size: string, name: string) {\n\t\tsuper(\"Size ${size} for ${name} not found\");\n\t}\n}\n\n/**\n * Concrete implementation of `IconCache` as a simple in memory cache\n */\nexport class IconMemoryCache extends IconCache {\n\tprivate iconMap = new Map<string, Map<string, object>>();\n\n\tget(name: string, size: string) {\n\t\tif (!this.iconMap.has(name)) {\n\t\t\tthrow new IconNameNotFoundError(name);\n\t\t}\n\t\tconst sizeMap = this.iconMap.get(name);\n\t\tif (!sizeMap.has(size)) {\n\t\t\tthrow new IconSizeNotFoundError(size, name);\n\t\t}\n\t\treturn sizeMap.get(size);\n\t}\n\n\tset(name: string, size: string, descriptor: object) {\n\t\tif (!this.iconMap.has(name)) {\n\t\t\tthis.iconMap.set(name, new Map());\n\t\t}\n\t\tconst sizeMap = this.iconMap.get(name);\n\t\tsizeMap.set(size, descriptor);\n\t}\n}\n\n/**\n * The icon service is a singleton service responsible for registering and retriving icons from `@carbon/icons`.\n *\n * It's important to register icons before use. It's reccommended to register your icons early, likely in your app.component.\n *\n * To allow for improved tree shaking _do not_ import all the icons from `@carbon/icons` and register them.\n * Instead register only the icons in use by your application. If your application makes use of lazy loaded\n * modules you may also lazy load the icons used in that module by registering them early on in that module.\n *\n * `ngOnInit` should be sufficiantly early to register icons.\n *\n * Example:\n * ```\n * import { Accessibility16 } from \"@carbon/icons\";\n *\n * // ...\n *\n * class MyComponent implements OnInit {\n * \tconstructor(protected iconService: IconService) {}\n *\n * \t// ...\n *\n * \tngOnInit() {\n * \t\tthis.iconService.register(Accessibility16);\n * \t}\n *\n * \t// ...\n * }\n * ```\n *\n * If needed it is possible to register an icon under a different name, via `registerAs`.\n */\n@Injectable()\nexport class IconService {\n\tprivate iconCache: IconCache = new IconMemoryCache();\n\n\t/**\n\t * Registers an array of icons based on the metadata provided by `@carbon/icons`\n\t */\n\tpublic registerAll(descriptors: object[]) {\n\t\tdescriptors.forEach(icon => this.register(icon));\n\t}\n\n\t/**\n\t * Registers an icon based on the metadata provided by `@carbon/icons`\n\t */\n\tpublic register(descriptor: object) {\n\t\tconst { name } = descriptor as IconDescriptor;\n\t\tthis.registerAs(name, descriptor);\n\t}\n\n\t/**\n\t * Registers an icon based on a uniqe name and metadata provided by `@carbon/icons`\n\t */\n\tpublic registerAs(name: string, descriptor: object) {\n\t\tconst { size } = descriptor as IconDescriptor;\n\t\tthis.iconCache.set(name, size.toString(), descriptor);\n\t}\n\n\t/**\n\t * Gets an icon, converts it to a string, and caches the result\n\t */\n\tpublic get(name: string, size: string): IconDescriptor {\n\t\ttry {\n\t\t\tconst icon = this.iconCache.get(name, size.toString()) as IconDescriptor;\n\t\t\tif (!icon.svg) {\n\t\t\t\ticon.svg = toString(icon);\n\t\t\t}\n\t\t\treturn icon;\n\t\t} catch (e) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\t/**\n\t * Configure various service settings (caching strategy ...)\n\t */\n\tpublic configure(options: { cache: IconCache }) {\n\t\tthis.iconCache = options.cache;\n\t}\n}\n","import {\n\tAfterViewInit,\n\tDirective,\n\tElementRef,\n\tInput,\n\tOnChanges,\n\tSimpleChanges\n} from \"@angular/core\";\nimport { IconService } from \"./icon.service\";\nimport { getAttributes } from \"@carbon/icon-helpers\";\n\n/**\n * A directive for populating a svg element based on the provided carbon icon name.\n *\n * Get started with importing the module:\n *\n * ```typescript\n * import { IconModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-icon--basic)\n */\n@Directive({\n\tselector: \"[cdsIcon], [ibmIcon]\"\n})\nexport class IconDirective implements AfterViewInit, OnChanges {\n\n\t/**\n\t * @deprecated since v5 - Use `cdsIcon` input property instead\n\t */\n\t@Input() set ibmIcon(iconName: string) {\n\t\tthis.cdsIcon = iconName;\n\t}\n\n\tstatic titleIdCounter = 0;\n\n\t@Input() cdsIcon = \"\";\n\n\t@Input() size = \"16\";\n\n\t@Input() title = \"\";\n\n\t@Input() ariaLabel = \"\";\n\n\t@Input() ariaLabelledBy = \"\";\n\n\t@Input() ariaHidden = \"\";\n\n\t@Input() isFocusable = false;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected iconService: IconService\n\t) {}\n\n\trenderIcon(iconName: string) {\n\t\tconst root = this.elementRef.nativeElement as HTMLElement;\n\n\t\tlet icon;\n\t\ttry {\n\t\t\ticon = this.iconService.get(iconName, this.size.toString());\n\t\t} catch (error) {\n\t\t\tconsole.warn(error);\n\t\t\t// bail out\n\t\t\treturn;\n\t\t}\n\n\t\tconst domParser = new DOMParser();\n\t\tconst rawSVG = icon.svg;\n\t\tconst svgElement = domParser.parseFromString(rawSVG, \"image/svg+xml\").documentElement;\n\n\t\tlet node: ChildNode = root.tagName.toUpperCase() !== \"SVG\" ? svgElement : svgElement.firstChild;\n\t\troot.innerHTML = \"\"; // Clear root element\n\t\twhile (node) {\n\t\t\t// importNode makes a clone of the node\n\t\t\t// this ensures we keep looping over the nodes in the parsed document\n\t\t\troot.appendChild(root.ownerDocument.importNode(node, true));\n\t\t\t// type the node because the angular compiler freaks out if it\n\t\t\t// ends up thinking it's a `Node` instead of a `ChildNode`\n\t\t\tnode = node.nextSibling as ChildNode;\n\t\t}\n\n\t\tconst svg = root.tagName.toUpperCase() !== \"SVG\" ? svgElement : root;\n\t\tsvg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n\n\t\tconst attributes = getAttributes({\n\t\t\twidth: icon.attrs.width,\n\t\t\theight: icon.attrs.height,\n\t\t\tviewBox: icon.attrs.viewBox,\n\t\t\ttitle: this.title,\n\t\t\t\"aria-label\": this.ariaLabel,\n\t\t\t\"aria-labelledby\": this.ariaLabelledBy,\n\t\t\t\"aria-hidden\": this.ariaHidden,\n\t\t\tfocusable: this.isFocusable.toString(),\n\t\t\tfill: icon.attrs.fill\n\t\t});\n\n\t\tconst attrKeys = Object.keys(attributes);\n\t\tfor (let i = 0; i < attrKeys.length; i++) {\n\t\t\tconst key = attrKeys[i];\n\t\t\tconst value = attributes[key];\n\n\t\t\tif (key === \"title\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tsvg.setAttribute(key, value);\n\t\t\t}\n\t\t}\n\n\t\tif (attributes[\"title\"]) {\n\t\t\tconst title = document.createElement(\"title\");\n\t\t\ttitle.textContent = attributes.title;\n\t\t\tIconDirective.titleIdCounter++;\n\t\t\ttitle.setAttribute(\"id\", `${icon.name}-title-${IconDirective.titleIdCounter}`);\n\t\t\t// title must be first for screen readers\n\t\t\tsvg.insertBefore(title, svg.firstElementChild);\n\t\t\tsvg.setAttribute(\"aria-labelledby\", `${icon.name}-title-${IconDirective.titleIdCounter}`);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.renderIcon(this.cdsIcon);\n\t}\n\n\tngOnChanges({ cdsIcon }: SimpleChanges) {\n\t\t// We want to ignore first change to let the icon register\n\t\t// and add only after view has been initialized\n\t\tif (cdsIcon && !cdsIcon.isFirstChange()) {\n\t\t\tthis.renderIcon(this.cdsIcon);\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule, Optional, SkipSelf } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { IconDirective } from \"./icon.directive\";\nimport { IconService } from \"./icon.service\";\n\n// icon imports\nimport Add16 from \"@carbon/icons/es/add/16\";\nimport Add20 from \"@carbon/icons/es/add/20\";\nimport Bee16 from \"@carbon/icons/es/bee/16\";\nimport Bee20 from \"@carbon/icons/es/bee/20\";\nimport Calendar16 from \"@carbon/icons/es/calendar/16\";\nimport Carbon16 from \"@carbon/icons/es/carbon/16\";\nimport Carbon20 from \"@carbon/icons/es/carbon/20\";\nimport CaretDown16 from \"@carbon/icons/es/caret--down/16\";\nimport CaretLeft16 from \"@carbon/icons/es/caret--left/16\";\nimport CaretRight16 from \"@carbon/icons/es/caret--right/16\";\nimport CaretUp16 from \"@carbon/icons/es/caret--up/16\";\nimport Checkmark16 from \"@carbon/icons/es/checkmark/16\";\nimport CheckmarkFilled16 from \"@carbon/icons/es/checkmark--filled/16\";\nimport CheckmarkFilled20 from \"@carbon/icons/es/checkmark--filled/20\";\nimport CheckmarkOutline16 from \"@carbon/icons/es/checkmark--outline/16\";\nimport ChevronDown16 from \"@carbon/icons/es/chevron--down/16\";\nimport ChevronRight16 from \"@carbon/icons/es/chevron--right/16\";\nimport CircleDash16 from \"@carbon/icons/es/circle-dash/16\";\nimport Close16 from \"@carbon/icons/es/close/16\";\nimport Close20 from \"@carbon/icons/es/close/20\";\nimport Copy16 from \"@carbon/icons/es/copy/16\";\nimport Copy20 from \"@carbon/icons/es/copy/20\";\nimport Data216 from \"@carbon/icons/es/data--2/16\";\nimport Data220 from \"@carbon/icons/es/data--2/20\";\nimport Document16 from \"@carbon/icons/es/document/16\";\nimport Document20 from \"@carbon/icons/es/document/20\";\nimport Download16 from \"@carbon/icons/es/download/16\";\nimport ErrorFilled16 from \"@carbon/icons/es/error--filled/16\";\nimport ErrorFilled20 from \"@carbon/icons/es/error--filled/20\";\nimport Fade16 from \"@carbon/icons/es/fade/16\";\nimport Fade20 from \"@carbon/icons/es/fade/20\";\nimport Folder16 from \"@carbon/icons/es/folder/16\";\nimport Incomplete16 from \"@carbon/icons/es/incomplete/16\";\nimport InformationFilled16 from \"@carbon/icons/es/information--filled/16\";\nimport InformationFilled20 from \"@carbon/icons/es/information--filled/20\";\nimport InformationSquareFilled20 from \"@carbon/icons/es/information--square--filled/20\";\nimport Menu16 from \"@carbon/icons/es/menu/16\";\nimport Menu20 from \"@carbon/icons/es/menu/20\";\nimport OverflowMenuVertical16 from \"@carbon/icons/es/overflow-menu--vertical/16\";\nimport OverflowMenuHorizontal16 from \"@carbon/icons/es/overflow-menu--horizontal/16\";\nimport Save16 from \"@carbon/icons/es/save/16\";\nimport Search16 from \"@carbon/icons/es/search/16\";\nimport Settings16 from \"@carbon/icons/es/settings/16\";\nimport SettingsAdjust16 from \"@carbon/icons/es/settings--adjust/16\";\nimport Subtract16 from \"@carbon/icons/es/subtract/16\";\nimport TrashCan16 from \"@carbon/icons/es/trash-can/16\";\nimport Warning16 from \"@carbon/icons/es/warning/16\";\nimport WarningFilled16 from \"@carbon/icons/es/warning--filled/16\";\nimport WarningFilled20 from \"@carbon/icons/es/warning--filled/20\";\nimport WarningAltFilled16 from \"@carbon/icons/es/warning--alt--filled/16\";\nimport WarningAltFilled20 from \"@carbon/icons/es/warning--alt--filled/20\";\nimport View16 from \"@carbon/icons/es/view/16\";\nimport ViewOff16 from \"@carbon/icons/es/view--off/16\";\n\n// either provides a new instance of IconService, or returns the parent\nexport function ICON_SERVICE_PROVIDER_FACTORY(parentService: IconService) {\n\treturn parentService || new IconService();\n}\n\n// icon service *must* be a singleton to ensure that icons are accessible globally and not duplicated\nexport const ICON_SERVICE_PROVIDER = {\n\tprovide: IconService,\n\tdeps: [[new Optional(), new SkipSelf(), IconService]],\n\tuseFactory: ICON_SERVICE_PROVIDER_FACTORY\n};\n\n@NgModule({\n\tdeclarations: [\n\t\tIconDirective\n\t],\n\texports: [\n\t\tIconDirective\n\t],\n\timports: [\n\t\tCommonModule\n\t],\n\tproviders: [\n\t\tICON_SERVICE_PROVIDER\n\t]\n})\nexport class IconModule {\n\tconstructor(protected iconService: IconService) {\n\t\ticonService.registerAll([\n\t\t\tAdd16,\n\t\t\tAdd20,\n\t\t\tBee16,\n\t\t\tBee20,\n\t\t\tCalendar16,\n\t\t\tCarbon16,\n\t\t\tCarbon20,\n\t\t\tCaretDown16,\n\t\t\tCaretLeft16,\n\t\t\tCaretRight16,\n\t\t\tCaretUp16,\n\t\t\tCheckmark16,\n\t\t\tCheckmarkFilled16,\n\t\t\tCheckmarkFilled20,\n\t\t\tCheckmarkOutline16,\n\t\t\tChevronDown16,\n\t\t\tChevronRight16,\n\t\t\tCircleDash16,\n\t\t\tClose16,\n\t\t\tClose20,\n\t\t\tCopy16,\n\t\t\tCopy20,\n\t\t\tData216,\n\t\t\tData220,\n\t\t\tDocument16,\n\t\t\tDocument20,\n\t\t\tDownload16,\n\t\t\tErrorFilled16,\n\t\t\tErrorFilled20,\n\t\t\tFade16,\n\t\t\tFade20,\n\t\t\tFolder16,\n\t\t\tIncomplete16,\n\t\t\tInformationFilled16,\n\t\t\tInformationFilled20,\n\t\t\tInformationSquareFilled20,\n\t\t\tMenu16,\n\t\t\tMenu20,\n\t\t\tOverflowMenuVertical16,\n\t\t\tOverflowMenuHorizontal16,\n\t\t\tSave16,\n\t\t\tSearch16,\n\t\t\tSettings16,\n\t\t\tSettingsAdjust16,\n\t\t\tSubtract16,\n\t\t\tTrashCan16,\n\t\t\tView16,\n\t\t\tViewOff16,\n\t\t\tWarning16,\n\t\t\tWarningFilled16,\n\t\t\tWarningFilled20,\n\t\t\tWarningAltFilled16,\n\t\t\tWarningAltFilled20\n\t\t]);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IconService"],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-icon.mjs","sources":["../../src/icon/icon.service.ts","../../src/icon/icon.directive.ts","../../src/icon/icon.module.ts","../../src/icon/carbon-components-angular-icon.ts"],"sourcesContent":["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\tattrs: {\n\t\txmlns: string,\n\t\t// needed by the icon directive to determine other attributes\n\t\tviewBox: string,\n\t\tfill: string,\n\t\t// needed by the icon directive to determine other attributes\n\t\twidth: string,\n\t\t// needed by the icon directive to determine other attributes\n\t\theight: string,\n\t\t[x: string]: string\n\t};\n\t/**\n\t * The content (children) of the element as an array of `IconDescriptor`s\n\t * (usually without a few fields, namely `name` and `size`)\n\t */\n\tcontent: IconDescriptor[];\n\t/**\n\t * The name of the icon.\n\t *\n\t * Needed by the icon service.\n\t */\n\tname: string;\n\t/**\n\t * The size of the icon in pixels.\n\t *\n\t * Needed by the icon service.\n\t */\n\tsize: number;\n\t/**\n\t * Optional. A string representation of the compiled svg.\n\t * If missing the icon service will add this.\n\t */\n\tsvg?: string;\n}\n\n/**\n * Abstract class that represent a cache of icons.\n *\n * The actual caching mechanism will be implementation specific,\n * but it's likely a good idea to key by the icons name and/or size.\n * Icon name and size will always be strings, and they will be the two consistent\n * identifiers of an icon. For the purposes of storage additonal descriptor properties may\n * be used, but the name and size are the only ones guarenteed to be passed for lookup purposes.\n */\nexport abstract class IconCache {\n\t/**\n\t * Finds and returns an icon based on it's name and size\n\t */\n\tabstract get(name: string, size: string): object;\n\t/**\n\t * stores an icon descriptor to the cache\n\t */\n\tabstract set(name: string, size: string, descriptor: object): void;\n}\n\n/**\n * Custom error for when a name can't be found\n */\nexport class IconNameNotFoundError extends Error {\n\tconstructor(name: string) {\n\t\tsuper(`Icon ${name} not found`);\n\t}\n}\n\n/**\n * Custom error for when a specific size can't be found\n */\nexport class IconSizeNotFoundError extends Error {\n\tconstructor(size: string, name: string) {\n\t\tsuper(\"Size ${size} for ${name} not found\");\n\t}\n}\n\n/**\n * Concrete implementation of `IconCache` as a simple in memory cache\n */\nexport class IconMemoryCache extends IconCache {\n\tprivate iconMap = new Map<string, Map<string, object>>();\n\n\tget(name: string, size: string) {\n\t\tif (!this.iconMap.has(name)) {\n\t\t\tthrow new IconNameNotFoundError(name);\n\t\t}\n\t\tconst sizeMap = this.iconMap.get(name);\n\t\tif (!sizeMap.has(size)) {\n\t\t\tthrow new IconSizeNotFoundError(size, name);\n\t\t}\n\t\treturn sizeMap.get(size);\n\t}\n\n\tset(name: string, size: string, descriptor: object) {\n\t\tif (!this.iconMap.has(name)) {\n\t\t\tthis.iconMap.set(name, new Map());\n\t\t}\n\t\tconst sizeMap = this.iconMap.get(name);\n\t\tsizeMap.set(size, descriptor);\n\t}\n}\n\n/**\n * The icon service is a singleton service responsible for registering and retriving icons from `@carbon/icons`.\n *\n * It's important to register icons before use. It's reccommended to register your icons early, likely in your app.component.\n *\n * To allow for improved tree shaking _do not_ import all the icons from `@carbon/icons` and register them.\n * Instead register only the icons in use by your application. If your application makes use of lazy loaded\n * modules you may also lazy load the icons used in that module by registering them early on in that module.\n *\n * `ngOnInit` should be sufficiantly early to register icons.\n *\n * Example:\n * ```\n * import { Accessibility16 } from \"@carbon/icons\";\n *\n * // ...\n *\n * class MyComponent implements OnInit {\n * \tconstructor(protected iconService: IconService) {}\n *\n * \t// ...\n *\n * \tngOnInit() {\n * \t\tthis.iconService.register(Accessibility16);\n * \t}\n *\n * \t// ...\n * }\n * ```\n *\n * If needed it is possible to register an icon under a different name, via `registerAs`.\n */\n@Injectable()\nexport class IconService {\n\tprivate iconCache: IconCache = new IconMemoryCache();\n\n\t/**\n\t * Registers an array of icons based on the metadata provided by `@carbon/icons`\n\t */\n\tpublic registerAll(descriptors: object[]) {\n\t\tdescriptors.forEach(icon => this.register(icon));\n\t}\n\n\t/**\n\t * Registers an icon based on the metadata provided by `@carbon/icons`\n\t */\n\tpublic register(descriptor: object) {\n\t\tconst { name } = descriptor as IconDescriptor;\n\t\tthis.registerAs(name, descriptor);\n\t}\n\n\t/**\n\t * Registers an icon based on a uniqe name and metadata provided by `@carbon/icons`\n\t */\n\tpublic registerAs(name: string, descriptor: object) {\n\t\tconst { size } = descriptor as IconDescriptor;\n\t\tthis.iconCache.set(name, size.toString(), descriptor);\n\t}\n\n\t/**\n\t * Gets an icon, converts it to a string, and caches the result\n\t */\n\tpublic get(name: string, size: string): IconDescriptor {\n\t\ttry {\n\t\t\tconst icon = this.iconCache.get(name, size.toString()) as IconDescriptor;\n\t\t\tif (!icon.svg) {\n\t\t\t\ticon.svg = toString(icon);\n\t\t\t}\n\t\t\treturn icon;\n\t\t} catch (e) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\t/**\n\t * Configure various service settings (caching strategy ...)\n\t */\n\tpublic configure(options: { cache: IconCache }) {\n\t\tthis.iconCache = options.cache;\n\t}\n}\n","import {\n\tAfterViewInit,\n\tDirective,\n\tElementRef,\n\tInput,\n\tOnChanges,\n\tSimpleChanges\n} from \"@angular/core\";\nimport { IconService } from \"./icon.service\";\nimport { getAttributes } from \"@carbon/icon-helpers\";\n\n/**\n * A directive for populating a svg element based on the provided carbon icon name.\n *\n * Get started with importing the module:\n *\n * ```typescript\n * import { IconModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-icon--basic)\n */\n@Directive({\n\tselector: \"[cdsIcon], [ibmIcon]\"\n})\nexport class IconDirective implements AfterViewInit, OnChanges {\n\n\t/**\n\t * @deprecated since v5 - Use `cdsIcon` input property instead\n\t */\n\t@Input() set ibmIcon(iconName: string) {\n\t\tthis.cdsIcon = iconName;\n\t}\n\n\tstatic titleIdCounter = 0;\n\n\t@Input() cdsIcon = \"\";\n\n\t@Input() size = \"16\";\n\n\t@Input() title = \"\";\n\n\t@Input() ariaLabel = \"\";\n\n\t@Input() ariaLabelledBy = \"\";\n\n\t@Input() ariaHidden = \"\";\n\n\t@Input() isFocusable = false;\n\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected iconService: IconService\n\t) {}\n\n\trenderIcon(iconName: string) {\n\t\tconst root = this.elementRef.nativeElement as HTMLElement;\n\n\t\tlet icon;\n\t\ttry {\n\t\t\ticon = this.iconService.get(iconName, this.size.toString());\n\t\t} catch (error) {\n\t\t\tconsole.warn(error);\n\t\t\t// bail out\n\t\t\treturn;\n\t\t}\n\n\t\tconst domParser = new DOMParser();\n\t\tconst rawSVG = icon.svg;\n\t\tconst svgElement = domParser.parseFromString(rawSVG, \"image/svg+xml\").documentElement;\n\n\t\tlet node: ChildNode = root.tagName.toUpperCase() !== \"SVG\" ? svgElement : svgElement.firstChild;\n\t\troot.innerHTML = \"\"; // Clear root element\n\t\twhile (node) {\n\t\t\t// importNode makes a clone of the node\n\t\t\t// this ensures we keep looping over the nodes in the parsed document\n\t\t\troot.appendChild(root.ownerDocument.importNode(node, true));\n\t\t\t// type the node because the angular compiler freaks out if it\n\t\t\t// ends up thinking it's a `Node` instead of a `ChildNode`\n\t\t\tnode = node.nextSibling as ChildNode;\n\t\t}\n\n\t\tconst svg = root.tagName.toUpperCase() !== \"SVG\" ? svgElement : root;\n\t\tconst xmlns = \"http://www.w3.org/2000/svg\";\n\t\tsvg.setAttribute(\"xmlns\", xmlns);\n\n\t\tconst attributes = getAttributes({\n\t\t\twidth: icon.attrs.width,\n\t\t\theight: icon.attrs.height,\n\t\t\tviewBox: icon.attrs.viewBox,\n\t\t\ttitle: this.title,\n\t\t\t\"aria-label\": this.ariaLabel,\n\t\t\t\"aria-labelledby\": this.ariaLabelledBy,\n\t\t\t\"aria-hidden\": this.ariaHidden,\n\t\t\tfocusable: this.isFocusable.toString(),\n\t\t\tfill: icon.attrs.fill\n\t\t});\n\n\t\tconst attrKeys = Object.keys(attributes);\n\t\tfor (let i = 0; i < attrKeys.length; i++) {\n\t\t\tconst key = attrKeys[i];\n\t\t\tconst value = attributes[key];\n\n\t\t\tif (key === \"title\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tsvg.setAttribute(key, value);\n\t\t\t}\n\t\t}\n\n\t\tif (attributes[\"title\"]) {\n\t\t\tconst title = document.createElementNS(xmlns, \"title\");\n\t\t\ttitle.textContent = attributes.title;\n\t\t\tIconDirective.titleIdCounter++;\n\t\t\ttitle.setAttribute(\"id\", `${icon.name}-title-${IconDirective.titleIdCounter}`);\n\t\t\t// title must be first for screen readers\n\t\t\tsvg.insertBefore(title, svg.firstElementChild);\n\t\t\tsvg.setAttribute(\"aria-labelledby\", `${icon.name}-title-${IconDirective.titleIdCounter}`);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.renderIcon(this.cdsIcon);\n\t}\n\n\tngOnChanges({ cdsIcon }: SimpleChanges) {\n\t\t// We want to ignore first change to let the icon register\n\t\t// and add only after view has been initialized\n\t\tif (cdsIcon && !cdsIcon.isFirstChange()) {\n\t\t\tthis.renderIcon(this.cdsIcon);\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule, Optional, SkipSelf } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { IconDirective } from \"./icon.directive\";\nimport { IconService } from \"./icon.service\";\n\n// icon imports\nimport Add16 from \"@carbon/icons/es/add/16\";\nimport Add20 from \"@carbon/icons/es/add/20\";\nimport Bee16 from \"@carbon/icons/es/bee/16\";\nimport Bee20 from \"@carbon/icons/es/bee/20\";\nimport Calendar16 from \"@carbon/icons/es/calendar/16\";\nimport Carbon16 from \"@carbon/icons/es/carbon/16\";\nimport Carbon20 from \"@carbon/icons/es/carbon/20\";\nimport CaretDown16 from \"@carbon/icons/es/caret--down/16\";\nimport CaretLeft16 from \"@carbon/icons/es/caret--left/16\";\nimport CaretRight16 from \"@carbon/icons/es/caret--right/16\";\nimport CaretUp16 from \"@carbon/icons/es/caret--up/16\";\nimport Checkmark16 from \"@carbon/icons/es/checkmark/16\";\nimport CheckmarkFilled16 from \"@carbon/icons/es/checkmark--filled/16\";\nimport CheckmarkFilled20 from \"@carbon/icons/es/checkmark--filled/20\";\nimport CheckmarkOutline16 from \"@carbon/icons/es/checkmark--outline/16\";\nimport ChevronDown16 from \"@carbon/icons/es/chevron--down/16\";\nimport ChevronRight16 from \"@carbon/icons/es/chevron--right/16\";\nimport CircleDash16 from \"@carbon/icons/es/circle-dash/16\";\nimport Close16 from \"@carbon/icons/es/close/16\";\nimport Close20 from \"@carbon/icons/es/close/20\";\nimport Copy16 from \"@carbon/icons/es/copy/16\";\nimport Copy20 from \"@carbon/icons/es/copy/20\";\nimport Data216 from \"@carbon/icons/es/data--2/16\";\nimport Data220 from \"@carbon/icons/es/data--2/20\";\nimport Document16 from \"@carbon/icons/es/document/16\";\nimport Document20 from \"@carbon/icons/es/document/20\";\nimport Download16 from \"@carbon/icons/es/download/16\";\nimport ErrorFilled16 from \"@carbon/icons/es/error--filled/16\";\nimport ErrorFilled20 from \"@carbon/icons/es/error--filled/20\";\nimport Fade16 from \"@carbon/icons/es/fade/16\";\nimport Fade20 from \"@carbon/icons/es/fade/20\";\nimport Folder16 from \"@carbon/icons/es/folder/16\";\nimport Incomplete16 from \"@carbon/icons/es/incomplete/16\";\nimport InformationFilled16 from \"@carbon/icons/es/information--filled/16\";\nimport InformationFilled20 from \"@carbon/icons/es/information--filled/20\";\nimport InformationSquareFilled20 from \"@carbon/icons/es/information--square--filled/20\";\nimport Menu16 from \"@carbon/icons/es/menu/16\";\nimport Menu20 from \"@carbon/icons/es/menu/20\";\nimport OverflowMenuVertical16 from \"@carbon/icons/es/overflow-menu--vertical/16\";\nimport OverflowMenuHorizontal16 from \"@carbon/icons/es/overflow-menu--horizontal/16\";\nimport Save16 from \"@carbon/icons/es/save/16\";\nimport Search16 from \"@carbon/icons/es/search/16\";\nimport Settings16 from \"@carbon/icons/es/settings/16\";\nimport SettingsAdjust16 from \"@carbon/icons/es/settings--adjust/16\";\nimport Subtract16 from \"@carbon/icons/es/subtract/16\";\nimport TrashCan16 from \"@carbon/icons/es/trash-can/16\";\nimport Warning16 from \"@carbon/icons/es/warning/16\";\nimport WarningFilled16 from \"@carbon/icons/es/warning--filled/16\";\nimport WarningFilled20 from \"@carbon/icons/es/warning--filled/20\";\nimport WarningAltFilled16 from \"@carbon/icons/es/warning--alt--filled/16\";\nimport WarningAltFilled20 from \"@carbon/icons/es/warning--alt--filled/20\";\nimport View16 from \"@carbon/icons/es/view/16\";\nimport ViewOff16 from \"@carbon/icons/es/view--off/16\";\n\n// either provides a new instance of IconService, or returns the parent\nexport function ICON_SERVICE_PROVIDER_FACTORY(parentService: IconService) {\n\treturn parentService || new IconService();\n}\n\n// icon service *must* be a singleton to ensure that icons are accessible globally and not duplicated\nexport const ICON_SERVICE_PROVIDER = {\n\tprovide: IconService,\n\tdeps: [[new Optional(), new SkipSelf(), IconService]],\n\tuseFactory: ICON_SERVICE_PROVIDER_FACTORY\n};\n\n@NgModule({\n\tdeclarations: [\n\t\tIconDirective\n\t],\n\texports: [\n\t\tIconDirective\n\t],\n\timports: [\n\t\tCommonModule\n\t],\n\tproviders: [\n\t\tICON_SERVICE_PROVIDER\n\t]\n})\nexport class IconModule {\n\tconstructor(protected iconService: IconService) {\n\t\ticonService.registerAll([\n\t\t\tAdd16,\n\t\t\tAdd20,\n\t\t\tBee16,\n\t\t\tBee20,\n\t\t\tCalendar16,\n\t\t\tCarbon16,\n\t\t\tCarbon20,\n\t\t\tCaretDown16,\n\t\t\tCaretLeft16,\n\t\t\tCaretRight16,\n\t\t\tCaretUp16,\n\t\t\tCheckmark16,\n\t\t\tCheckmarkFilled16,\n\t\t\tCheckmarkFilled20,\n\t\t\tCheckmarkOutline16,\n\t\t\tChevronDown16,\n\t\t\tChevronRight16,\n\t\t\tCircleDash16,\n\t\t\tClose16,\n\t\t\tClose20,\n\t\t\tCopy16,\n\t\t\tCopy20,\n\t\t\tData216,\n\t\t\tData220,\n\t\t\tDocument16,\n\t\t\tDocument20,\n\t\t\tDownload16,\n\t\t\tErrorFilled16,\n\t\t\tErrorFilled20,\n\t\t\tFade16,\n\t\t\tFade20,\n\t\t\tFolder16,\n\t\t\tIncomplete16,\n\t\t\tInformationFilled16,\n\t\t\tInformationFilled20,\n\t\t\tInformationSquareFilled20,\n\t\t\tMenu16,\n\t\t\tMenu20,\n\t\t\tOverflowMenuVertical16,\n\t\t\tOverflowMenuHorizontal16,\n\t\t\tSave16,\n\t\t\tSearch16,\n\t\t\tSettings16,\n\t\t\tSettingsAdjust16,\n\t\t\tSubtract16,\n\t\t\tTrashCan16,\n\t\t\tView16,\n\t\t\tViewOff16,\n\t\t\tWarning16,\n\t\t\tWarningFilled16,\n\t\t\tWarningFilled20,\n\t\t\tWarningAltFilled16,\n\t\t\tWarningAltFilled20\n\t\t]);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IconService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8EA;;;;;;;;AAQG;MACmB,SAAS,CAAA;AAS9B,CAAA;AAED;;AAEG;AACG,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AAC/C,IAAA,WAAA,CAAY,IAAY,EAAA;AACvB,QAAA,KAAK,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAA,UAAA,CAAY,CAAC,CAAC;KAChC;AACD,CAAA;AAED;;AAEG;AACG,MAAO,qBAAsB,SAAQ,KAAK,CAAA;IAC/C,WAAY,CAAA,IAAY,EAAE,IAAY,EAAA;QACrC,KAAK,CAAC,oCAAoC,CAAC,CAAC;KAC5C;AACD,CAAA;AAED;;AAEG;AACG,MAAO,eAAgB,SAAQ,SAAS,CAAA;AAA9C,IAAA,WAAA,GAAA;;AACS,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;KAoBzD;IAlBA,GAAG,CAAC,IAAY,EAAE,IAAY,EAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACtC,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvB,YAAA,MAAM,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACzB;AAED,IAAA,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,UAAkB,EAAA;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAClC,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAC9B;AACD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;MAEU,WAAW,CAAA;AADxB,IAAA,WAAA,GAAA;AAES,QAAA,IAAA,CAAA,SAAS,GAAc,IAAI,eAAe,EAAE,CAAC;KA8CrD;AA5CA;;AAEG;AACI,IAAA,WAAW,CAAC,WAAqB,EAAA;AACvC,QAAA,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;KACjD;AAED;;AAEG;AACI,IAAA,QAAQ,CAAC,UAAkB,EAAA;AACjC,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,UAA4B,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAClC;AAED;;AAEG;IACI,UAAU,CAAC,IAAY,EAAE,UAAkB,EAAA;AACjD,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,UAA4B,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;KACtD;AAED;;AAEG;IACI,GAAG,CAAC,IAAY,EAAE,IAAY,EAAA;QACpC,IAAI;AACH,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAmB,CAAC;AACzE,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACd,gBAAA,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACZ,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACX,YAAA,MAAM,CAAC,CAAC;AACR,SAAA;KACD;AAED;;AAEG;AACI,IAAA,SAAS,CAAC,OAA6B,EAAA;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;KAC/B;;wGA9CW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;ACnKX;;;;;;;;;;AAUG;MAIU,aAAa,CAAA;IAyBzB,WACW,CAAA,UAAsB,EACtB,WAAwB,EAAA;AADxB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACtB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAhB1B,QAAA,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAEb,QAAA,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC;AAEZ,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEX,QAAA,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAEf,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AAEpB,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAEhB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KAKzB;AA1BJ;;AAEG;IACH,IAAa,OAAO,CAAC,QAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;KACxB;AAuBD,IAAA,UAAU,CAAC,QAAgB,EAAA;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B,CAAC;AAE1D,QAAA,IAAI,IAAI,CAAC;QACT,IAAI;AACH,YAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5D,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAEpB,OAAO;AACP,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;AACxB,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC;QAEtF,IAAI,IAAI,GAAc,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AAChG,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,OAAO,IAAI,EAAE;;;AAGZ,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;;;AAG5D,YAAA,IAAI,GAAG,IAAI,CAAC,WAAwB,CAAC;AACrC,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC;QACrE,MAAM,KAAK,GAAG,4BAA4B,CAAC;AAC3C,QAAA,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEjC,MAAM,UAAU,GAAG,aAAa,CAAC;AAChC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;AACvB,YAAA,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AACzB,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,SAAS;YAC5B,iBAAiB,EAAE,IAAI,CAAC,cAAc;YACtC,aAAa,EAAE,IAAI,CAAC,UAAU;AAC9B,YAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AACtC,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;AACrB,SAAA,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,GAAG,KAAK,OAAO,EAAE;gBACpB,SAAS;AACT,aAAA;AAED,YAAA,IAAI,KAAK,EAAE;AACV,gBAAA,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7B,aAAA;AACD,SAAA;AAED,QAAA,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;YACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACvD,YAAA,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACrC,aAAa,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAG,EAAA,IAAI,CAAC,IAAI,UAAU,aAAa,CAAC,cAAc,CAAA,CAAE,CAAC,CAAC;;YAE/E,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC/C,YAAA,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAG,EAAA,IAAI,CAAC,IAAI,UAAU,aAAa,CAAC,cAAc,CAAA,CAAE,CAAC,CAAC;AAC1F,SAAA;KACD;IAED,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC9B;IAED,WAAW,CAAC,EAAE,OAAO,EAAiB,EAAA;;;AAGrC,QAAA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,SAAA;KACD;;AAnGM,aAAc,CAAA,cAAA,GAAG,CAAC,CAAC;0GATd,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8FAAb,aAAa,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sBAAsB;iBAChC,CAAA;wHAMa,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAMG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;AChDP;AA+DA;AACM,SAAU,6BAA6B,CAAC,aAA0B,EAAA;AACvE,IAAA,OAAO,aAAa,IAAI,IAAI,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED;AACa,MAAA,qBAAqB,GAAG;AACpC,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;AACrD,IAAA,UAAU,EAAE,6BAA6B;EACxC;MAgBW,UAAU,CAAA;AACtB,IAAA,WAAA,CAAsB,WAAwB,EAAA;AAAxB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC7C,WAAW,CAAC,WAAW,CAAC;YACvB,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,UAAU;YACV,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,WAAW;YACX,YAAY;YACZ,SAAS;YACT,WAAW;YACX,iBAAiB;YACjB,iBAAiB;YACjB,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,YAAY;YACZ,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,UAAU;YACV,UAAU;YACV,UAAU;YACV,aAAa;YACb,aAAa;YACb,MAAM;YACN,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,mBAAmB;YACnB,mBAAmB;YACnB,yBAAyB;YACzB,MAAM;YACN,MAAM;YACN,sBAAsB;YACtB,wBAAwB;YACxB,MAAM;YACN,QAAQ;YACR,UAAU;YACV,gBAAgB;YAChB,UAAU;YACV,UAAU;YACV,MAAM;YACN,SAAS;YACT,SAAS;YACT,eAAe;YACf,eAAe;YACf,kBAAkB;YAClB,kBAAkB;AAClB,SAAA,CAAC,CAAC;KACH;;uGAzDW,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAZrB,YAAA,EAAA,CAAA,aAAa,CAMb,EAAA,OAAA,EAAA,CAAA,YAAY,aAHZ,aAAa,CAAA,EAAA,CAAA,CAAA;AASF,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAJX,SAAA,EAAA;QACV,qBAAqB;AACrB,KAAA,EAAA,OAAA,EAAA,CAJA,YAAY,CAAA,EAAA,CAAA,CAAA;2FAMD,UAAU,EAAA,UAAA,EAAA,CAAA;kBAdtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE;wBACb,aAAa;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,aAAa;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,YAAY;AACZ,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACV,qBAAqB;AACrB,qBAAA;iBACD,CAAA;;;ACxFD;;AAEG;;;;"}
@@ -289,7 +289,7 @@ Pagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
289
289
  <option *ngFor="let page of pageOptions; let i = index;" class="cds--select-option" [value]="i + 1">{{i + 1}}</option>
290
290
  </select>
291
291
  <svg
292
- *ngIf="pageOptions.length <= 1000"
292
+ *ngIf="pageOptions.length <= pageSelectThreshold"
293
293
  cdsIcon="chevron--down"
294
294
  size="16"
295
295
  style="display: inherit;"
@@ -432,7 +432,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
432
432
  <option *ngFor="let page of pageOptions; let i = index;" class="cds--select-option" [value]="i + 1">{{i + 1}}</option>
433
433
  </select>
434
434
  <svg
435
- *ngIf="pageOptions.length <= 1000"
435
+ *ngIf="pageOptions.length <= pageSelectThreshold"
436
436
  cdsIcon="chevron--down"
437
437
  size="16"
438
438
  style="display: inherit;"