carbon-components-angular 5.56.3 → 5.56.5

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 (103) hide show
  1. package/docs/documentation/classes/Overridable.html +6 -4
  2. package/docs/documentation/components/ComboBox.html +6 -6
  3. package/docs/documentation/components/Pagination.html +3 -3
  4. package/docs/documentation/directives/IconDirective.html +7 -6
  5. package/docs/documentation/injectables/I18n.html +41 -29
  6. package/docs/documentation/interfaces/PaginationTranslations.html +1 -1
  7. package/docs/documentation/js/search/search_index.js +2 -2
  8. package/docs/documentation/modules/TilesModule/dependencies.svg +106 -106
  9. package/docs/documentation/modules/TilesModule.html +106 -106
  10. package/docs/documentation/modules/TimePickerModule/dependencies.svg +36 -40
  11. package/docs/documentation/modules/TimePickerModule.html +36 -40
  12. package/docs/documentation/modules/ToggleModule/dependencies.svg +45 -41
  13. package/docs/documentation/modules/ToggleModule.html +45 -41
  14. package/docs/documentation/modules/ToggletipModule/dependencies.svg +37 -37
  15. package/docs/documentation/modules/ToggletipModule.html +37 -37
  16. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  17. package/docs/documentation/modules/TooltipModule.html +28 -28
  18. package/docs/documentation/modules/TreeviewModule/dependencies.svg +28 -28
  19. package/docs/documentation/modules/TreeviewModule.html +28 -28
  20. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  21. package/docs/documentation/modules/UIShellModule.html +4 -4
  22. package/docs/documentation.json +61 -61
  23. package/docs/storybook/1919.2a2b79ce.iframe.bundle.js +1 -0
  24. package/docs/storybook/7141.a08b411a.iframe.bundle.js +1 -0
  25. package/docs/storybook/{8341.d095fdee.iframe.bundle.js → 8341.8e19136f.iframe.bundle.js} +1 -1
  26. package/docs/storybook/9672.4c384e0d.iframe.bundle.js +1 -0
  27. package/docs/storybook/accordion-accordion-stories.75536b46.iframe.bundle.js +1 -0
  28. package/docs/storybook/button-button-set-stories.386c621a.iframe.bundle.js +1 -0
  29. package/docs/storybook/button-button-stories.585caa8e.iframe.bundle.js +1 -0
  30. package/docs/storybook/button-icon-button-stories.e0297847.iframe.bundle.js +1 -0
  31. package/docs/storybook/code-snippet-code-snippet-stories.07e87dc8.iframe.bundle.js +1 -0
  32. package/docs/storybook/combobox-combobox-stories.7419dc2f.iframe.bundle.js +1 -0
  33. package/docs/storybook/context-menu-context-menu-stories.7c62ce72.iframe.bundle.js +1 -0
  34. package/docs/storybook/datepicker-datepicker-stories.9d6520e8.iframe.bundle.js +1 -0
  35. package/docs/storybook/dropdown-dropdown-stories.b9550377.iframe.bundle.js +1 -0
  36. package/docs/storybook/icon-icon-stories.01483f14.iframe.bundle.js +1 -0
  37. package/docs/storybook/iframe.html +2 -2
  38. package/docs/storybook/index-stories.3c2dfd9a.iframe.bundle.js +1 -0
  39. package/docs/storybook/inline-loading-inline-loading-stories.3e44df84.iframe.bundle.js +1 -0
  40. package/docs/storybook/input-input-stories.91b3cf3f.iframe.bundle.js +1 -0
  41. package/docs/storybook/input-password-stories.84bacb0d.iframe.bundle.js +1 -0
  42. package/docs/storybook/input-textarea-stories.b8280606.iframe.bundle.js +1 -0
  43. package/docs/storybook/link-link-stories.d959ec78.iframe.bundle.js +1 -0
  44. package/docs/storybook/main.44dbc42d.iframe.bundle.js +1 -0
  45. package/docs/storybook/number-input-number-stories.6575121c.iframe.bundle.js +1 -0
  46. package/docs/storybook/patterns-loading-large-loading-stories.14eab3d2.iframe.bundle.js +1 -0
  47. package/docs/storybook/progress-bar-progress-bar-stories.b009f3f0.iframe.bundle.js +1 -0
  48. package/docs/storybook/{7141.9d9ce230.iframe.bundle.js → progress-indicator-progress-indicator-stories.633e03cd.iframe.bundle.js} +1 -1
  49. package/docs/storybook/project.json +1 -1
  50. package/docs/storybook/radio-radio-stories.befaf83a.iframe.bundle.js +1 -0
  51. package/docs/storybook/{runtime~main.115ae245.iframe.bundle.js → runtime~main.f0dc5a47.iframe.bundle.js} +1 -1
  52. package/docs/storybook/search-search-stories.b0e346d3.iframe.bundle.js +1 -0
  53. package/docs/storybook/structured-list-structured-list-stories.01f1468d.iframe.bundle.js +1 -0
  54. package/docs/storybook/tag-tag-stories.c5c2cc86.iframe.bundle.js +1 -0
  55. package/docs/storybook/treeview-treeview-stories.be34c320.iframe.bundle.js +1 -0
  56. package/docs/storybook/ui-shell-ui-shell-stories.80c8e5a5.iframe.bundle.js +1 -0
  57. package/esm2020/combobox/combobox.component.mjs +1 -1
  58. package/esm2020/i18n/i18n.service.mjs +1 -1
  59. package/esm2020/icon/icon.directive.mjs +4 -3
  60. package/esm2020/pagination/pagination.component.mjs +3 -3
  61. package/fesm2015/carbon-components-angular-combobox.mjs.map +1 -1
  62. package/fesm2015/carbon-components-angular-i18n.mjs.map +1 -1
  63. package/fesm2015/carbon-components-angular-icon.mjs +3 -2
  64. package/fesm2015/carbon-components-angular-icon.mjs.map +1 -1
  65. package/fesm2015/carbon-components-angular-pagination.mjs +2 -2
  66. package/fesm2015/carbon-components-angular-pagination.mjs.map +1 -1
  67. package/fesm2020/carbon-components-angular-combobox.mjs.map +1 -1
  68. package/fesm2020/carbon-components-angular-i18n.mjs.map +1 -1
  69. package/fesm2020/carbon-components-angular-icon.mjs +3 -2
  70. package/fesm2020/carbon-components-angular-icon.mjs.map +1 -1
  71. package/fesm2020/carbon-components-angular-pagination.mjs +2 -2
  72. package/fesm2020/carbon-components-angular-pagination.mjs.map +1 -1
  73. package/i18n/i18n.service.d.ts +3 -141
  74. package/package.json +1 -1
  75. package/docs/storybook/1919.75654e64.iframe.bundle.js +0 -1
  76. package/docs/storybook/9672.a4277bf9.iframe.bundle.js +0 -1
  77. package/docs/storybook/accordion-accordion-stories.f0e7b598.iframe.bundle.js +0 -1
  78. package/docs/storybook/button-button-set-stories.1094a620.iframe.bundle.js +0 -1
  79. package/docs/storybook/button-button-stories.a0ff29b1.iframe.bundle.js +0 -1
  80. package/docs/storybook/button-icon-button-stories.db9a9ba5.iframe.bundle.js +0 -1
  81. package/docs/storybook/code-snippet-code-snippet-stories.cc0ddba0.iframe.bundle.js +0 -1
  82. package/docs/storybook/combobox-combobox-stories.52c5cd23.iframe.bundle.js +0 -1
  83. package/docs/storybook/context-menu-context-menu-stories.431b9c7a.iframe.bundle.js +0 -1
  84. package/docs/storybook/datepicker-datepicker-stories.86cad958.iframe.bundle.js +0 -1
  85. package/docs/storybook/dropdown-dropdown-stories.0a8f052e.iframe.bundle.js +0 -1
  86. package/docs/storybook/icon-icon-stories.e234de11.iframe.bundle.js +0 -1
  87. package/docs/storybook/index-stories.69d5a816.iframe.bundle.js +0 -1
  88. package/docs/storybook/inline-loading-inline-loading-stories.fea34c40.iframe.bundle.js +0 -1
  89. package/docs/storybook/input-input-stories.68ee4653.iframe.bundle.js +0 -1
  90. package/docs/storybook/input-password-stories.3084ebfc.iframe.bundle.js +0 -1
  91. package/docs/storybook/input-textarea-stories.e3f84fc4.iframe.bundle.js +0 -1
  92. package/docs/storybook/link-link-stories.d436099f.iframe.bundle.js +0 -1
  93. package/docs/storybook/main.3f8ef62f.iframe.bundle.js +0 -1
  94. package/docs/storybook/number-input-number-stories.1e4ea9f3.iframe.bundle.js +0 -1
  95. package/docs/storybook/patterns-loading-large-loading-stories.67f20584.iframe.bundle.js +0 -1
  96. package/docs/storybook/progress-bar-progress-bar-stories.9a58678a.iframe.bundle.js +0 -1
  97. package/docs/storybook/progress-indicator-progress-indicator-stories.981734fc.iframe.bundle.js +0 -1
  98. package/docs/storybook/radio-radio-stories.035c4409.iframe.bundle.js +0 -1
  99. package/docs/storybook/search-search-stories.6bd22f30.iframe.bundle.js +0 -1
  100. package/docs/storybook/structured-list-structured-list-stories.905f4b86.iframe.bundle.js +0 -1
  101. package/docs/storybook/tag-tag-stories.8b0e9efc.iframe.bundle.js +0 -1
  102. package/docs/storybook/treeview-treeview-stories.a7ea66bb.iframe.bundle.js +0 -1
  103. package/docs/storybook/ui-shell-ui-shell-stories.157336b4.iframe.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-i18n.mjs","sources":["../../src/i18n/en.ts","../../src/i18n/i18n.service.ts","../../src/i18n/replace.pipe.ts","../../src/i18n/i18n.module.ts","../../src/i18n/carbon-components-angular-i18n.ts"],"sourcesContent":["export default {\n\t\"BREADCRUMB\": {\n\t\t\"LABEL\": \"Breadcrumb\",\n\t\t\"OVERFLOW_MENU_DESCRIPTION\": \"Options\"\n\t},\n\t\"CODE_SNIPPET\": {\n\t\t\"CODE_SNIPPET_TEXT\": \"Code Snippet Text\",\n\t\t\"SHOW_MORE\": \"Show more\",\n\t\t\"SHOW_LESS\": \"Show less\",\n\t\t\"SHOW_MORE_ICON\": \"Show more icon\",\n\t\t\"COPY_CODE\": \"Copy code\",\n\t\t\"COPIED\": \"Copied!\"\n\t},\n\t\"COMBOBOX\": {\n\t\t\"PLACEHOLDER\": \"Filter...\",\n\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\"CLEAR_SELECTED\": \"Clear selected item\",\n\t\t\"A11Y\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\",\n\t\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\t\"CLEAR_SELECTED\": \"Clear Selection\"\n\t\t}\n\t},\n\t\"DROPDOWN\": {\n\t\t\"OPEN\": \"Open menu\",\n\t\t\"SELECTED\": \"Selected\",\n\t\t\"CLEAR\": \"Clear all selected items\",\n\t\t\"FILTER\": {\n\t\t\t\"SELECTED_ONLY\": \"Show selected only\",\n\t\t\t\"SEARCH\": \"Search\",\n\t\t\t\"NO_RESULTS\": \"No search results\",\n\t\t\t\"RESET_SEARCH\": \"Reset search\"\n\t\t}\n\t},\n\t\"DROPDOWN_LIST\": {\n\t\t\"LABEL\": \"Listbox\"\n\t},\n\t\"FILE_UPLOADER\": {\n\t\t\"CHECKMARK\": \"Checkmark\",\n\t\t\"OPEN\": \"Add file\",\n\t\t\"REMOVE_BUTTON\": \"Close button\"\n\t},\n\t\"LOADING\": {\n\t\t\"TITLE\": \"Loading\"\n\t},\n\t\"MODAL\": {\n\t\t\"CLOSE\": \"Close modal\"\n\t},\n\t\"NOTIFICATION\": {\n\t\t\"CLOSE_BUTTON\": \"Close alert notification\"\n\t},\n\t\"NUMBER\": {\n\t\t\"INCREMENT\": \"Increment value\",\n\t\t\"DECREMENT\": \"Decrement value\"\n\t},\n\t\"OVERFLOW_MENU\": {\n\t\t\"OVERFLOW\": \"Overflow\",\n\t\t\"ICON_DESCRIPTION\": \"Options\"\n\t},\n\t\"SEARCH\": {\n\t\t\"LABEL\": \"Search\",\n\t\t\"PLACEHOLDER\": \"Search\",\n\t\t\"CLEAR_BUTTON\": \"Clear search input\"\n\t},\n\t\"PAGINATION\": {\n\t\t\"ITEMS_PER_PAGE\": \"Items per page:\",\n\t\t\"OPEN_LIST_OF_OPTIONS\": \"Open list of options\",\n\t\t\"BACKWARD\": \"Backward\",\n\t\t\"FORWARD\": \"Forward\",\n\t\t\"TOTAL_ITEMS_UNKNOWN\": \"{{start}}-{{end}} items\",\n\t\t\"TOTAL_ITEMS\": \"{{start}}-{{end}} of {{total}} items\",\n\t\t\"TOTAL_ITEM\": \"{{start}}-{{end}} of {{total}} item\",\n\t\t\"PAGE\": \"page\",\n\t\t\"OF_LAST_PAGES\": \"of {{last}} pages\",\n\t\t\"OF_LAST_PAGE\": \"of {{last}} page\",\n\t\t\"NEXT\": \"Next\",\n\t\t\"PREVIOUS\": \"Previous\",\n\t\t\"SELECT_ARIA\": \"Select page number\"\n\t},\n\t\"PROGRESS_INDICATOR\": {\n\t\t\"CURRENT\": \"Current\",\n\t\t\"INCOMPLETE\": \"Incomplete\",\n\t\t\"COMPLETE\": \"Complete\",\n\t\t\"INVALID\": \"Invalid\"\n\t},\n\t\"TABLE\": {\n\t\t\"FILTER\": \"Filter\",\n\t\t\"END_OF_DATA\": \"You've reached the end of your content\",\n\t\t\"SCROLL_TOP\": \"Scroll to top\",\n\t\t\"CHECKBOX_HEADER\": \"Select all rows\",\n\t\t\"CHECKBOX_ROW\": \"Select {{value}}\",\n\t\t\"EXPAND_BUTTON\": \"Expand row\",\n\t\t\"EXPAND_ALL_BUTTON\": \"Expand all rows\",\n\t\t\"SORT_DESCENDING\": \"Sort rows by this header in descending order\",\n\t\t\"SORT_ASCENDING\": \"Sort rows by this header in ascending order\",\n\t\t\"ROW\": \"row\"\n\t},\n\t\"TABLE_TOOLBAR\": {\n\t\t\"ACTION_BAR\": \"Table action bar\",\n\t\t\"BATCH_TEXT\": \"\",\n\t\t\"BATCH_TEXT_SINGLE\": \"1 item selected\",\n\t\t\"BATCH_TEXT_MULTIPLE\": \"{{count}} items selected\",\n\t\t\"CANCEL\": \"Cancel\"\n\t},\n\t\"TABS\": {\n\t\t\"BUTTON_ARIA_LEFT\": \"Go to the previous tab\",\n\t\t\"BUTTON_ARIA_RIGHT\": \"Go to the next tab\",\n\t\t\"HEADER_ARIA_LABEL\": \"List of tabs\"\n\t},\n\t\"TILES\": {\n\t\t\"TILE\": \"tile\",\n\t\t\"EXPAND\": \"Expand\",\n\t\t\"COLLAPSE\": \"Collapse\"\n\t},\n\t\"TOGGLE\": {\n\t\t\"OFF\": \"Off\",\n\t\t\"ON\": \"On\"\n\t},\n\t\"UI_SHELL\": {\n\t\t\"SKIP_TO\": \"Skip to content\",\n\t\t\"HEADER\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\"\n\t\t},\n\t\t\"SIDE_NAV\": {\n\t\t\t\"TOGGLE_OPEN\": \"Open\",\n\t\t\t\"TOGGLE_CLOSE\": \"Close\"\n\t\t}\n\t}\n};\n","import { Injectable } from \"@angular/core\";\nimport {\n\tBehaviorSubject,\n\tObservable,\n\tisObservable,\n\tiif,\n\tSubscription\n} from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { merge } from \"carbon-components-angular/utils\";\n\nimport EN from \"./en\";\n\n/**\n * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n *\n * The keys specify the variable name in the string.\n *\n * Example:\n * ```typescript\n * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n *\n * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n * ```\n *\n * Produces: `\"test asdf\"`\n *\n * @param subject the translation to replace variables on\n * @param variables object of variables to replace\n */\nexport const replace = (subject, variables) => subject.pipe(\n\tmap<string, void>(str => {\n\t\tconst keys = Object.keys(variables);\n\t\tfor (const key of keys) {\n\t\t\tconst value = variables[key];\n\t\t\tstr = str.replace(new RegExp(`{{\\\\s*${key}\\\\s*}}`, \"g\"), value);\n\t\t}\n\t\treturn str;\n\t})\n);\n\n/**\n * Represents an \"overridable\" translation value.\n *\n * Largely an internal usecase. There are situations where we want an `Observable` that\n * can emit events from a centralized source **OR** an `Observable` that will emit events\n * from a component local source. The key example being on/off text in a `Toggle` - In some cases\n * we want the `Toggle` to use `I18n`s global translations, but in others we'd prefer to use a local\n * override. We don't ever need to return to a non-overridden state, but we do need the ability to\n * switch _to_ an overridden sate.\n */\nexport class Overridable {\n\t/**\n\t * The raw value of the translation. Defaults to the string value, but will return the value passed to `override`\n\t *\n\t * @readonly\n\t */\n\tpublic get value(): string | Observable<string> {\n\t\treturn this._value;\n\t}\n\n\tpublic set value(v: string | Observable<string>) {\n\t\tthis.override(v);\n\t}\n\n\t/**\n\t * The translation subject. Returns either a stream of overridden values, or our base translation values.\n\t *\n\t * @readonly\n\t */\n\tpublic get subject(): Observable<string> {\n\t\t/**\n\t\t * since inputs are bound on template instantiation (and thusly will always have _some_ value)\n\t\t * We can use a simple boolean and the `iif` function to determine which subject to return on subscription\n\t\t */\n\t\treturn iif(() => this.isOverridden, this.$override, this.baseTranslation);\n\t}\n\n\t/**\n\t * Overridden value. Accessed by the readonly getter `value` and set through `override`\n\t */\n\tprotected _value: string | Observable<string>;\n\t/**\n\t * Subject of overridden values. Initialized with our default value.\n\t */\n\tprotected $override: BehaviorSubject<string>;\n\t/**\n\t * Our base non-overridden translation.\n\t */\n\tprotected baseTranslation: Observable<string> = this.i18n.get(this.path);\n\n\t/**\n\t * Subscription to the observable provided as an override (if any)\n\t */\n\tprotected subscription: Subscription;\n\t/**\n\t * A boolean to flip between overridden and non-overridden states.\n\t */\n\tprotected isOverridden = false;\n\n\tconstructor(protected path: string, protected i18n: I18n) {\n\t\t/**\n\t\t * ensure `$override` is initialized with the correct default value\n\t\t * in some cases `_value` can get changed for an `Observable` before `$override` is created\n\t\t */\n\t\tconst value = this.i18n.getValueFromPath(this.path) as string;\n\t\tthis.$override = new BehaviorSubject<string>(value);\n\t\tthis._value = value;\n\t}\n\t/**\n\t * Takes a string or an `Observable` that emits strings.\n\t * Overrides the value provided by the `I18n` service.\n\t */\n\toverride(value: string | Observable<string>) {\n\t\tthis.isOverridden = true;\n\t\t// To ensure that there are not multiple subscriptions created for the same observable, we\n\t\t// unsubscribe if a subscription already exists for an observable before creating a new one.\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.unsubscribe();\n\t\t\tthis.subscription = null;\n\t\t}\n\n\t\tthis._value = value;\n\n\t\tif (isObservable(value)) {\n\t\t\tthis.subscription = value.subscribe(v => {\n\t\t\t\tthis.$override.next(v);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.$override.next(value);\n\t\t}\n\t}\n}\n\n/**\n * An object of strings, should follow the same format as src/i18n/en.json\n */\nexport type TranslationStrings = { [key: string]: string };\n\n\n/**\n * The I18n service is a minimal internal singleton service used to supply our components with translated strings.\n *\n * All the components that support I18n also support directly passed strings.\n * Usage of I18n is optional, and it is not recommended for application use (libraries like ngx-translate\n * are a better choice)\n *\n */\n@Injectable()\nexport class I18n {\n\tprotected translationStrings = EN;\n\n\tprotected translations = new Map();\n\n\tprotected locale = new BehaviorSubject(\"en\");\n\n\t/**\n\t * Sets the locale and optionally the translation strings. Locale is used by components that\n\t * are already locale aware (datepicker for example) while the translation strings are used\n\t * for components that are not.\n\t *\n\t * Locales set here will override locales/languages set in components\n\t * @param language an ISO 639-1 language code - https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n\t * @param strings an object of strings, optional\n\t */\n\tpublic setLocale(language: string, strings?: TranslationStrings) {\n\t\tthis.locale.next(language);\n\t\tif (strings) {\n\t\t\tthis.set(strings);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current locale\n\t */\n\tpublic getLocale() {\n\t\treturn this.locale.value;\n\t}\n\n\t/**\n\t * Returns an observable that resolves to the current locale, and will update when changed\n\t */\n\tpublic getLocaleObservable() {\n\t\treturn this.locale.asObservable();\n\t}\n\n\t/**\n\t * Set/update the translations from an object. Also notifies all participating components of the update.\n\t *\n\t * @param strings an object of strings, should follow the same format as src/i18n/en.json\n\t */\n\tpublic set(strings: TranslationStrings) {\n\t\tthis.translationStrings = merge({}, EN, strings);\n\t\t// iterate over all our tracked translations and update each observable\n\t\tconst translations = Array.from(this.translations);\n\t\tfor (const [path, subject] of translations) {\n\t\t\tsubject.next(this.getValueFromPath(path));\n\t\t}\n\t}\n\n\t/**\n\t * When a path is specified returns an observable that will resolve to the translation string value.\n\t *\n\t * Returns the full translations object if path is not specified.\n\t *\n\t * @param path optional, looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic get(path?: string): any {\n\t\tif (!path) {\n\t\t\treturn this.translationStrings;\n\t\t}\n\t\treturn this.getSubject(path);\n\t}\n\n\t/**\n\t * Returns all descendents of some path fragment as an object.\n\t *\n\t * @param partialPath a path fragment, for example `\"NOTIFICATION\"`\n\t */\n\tpublic getMultiple(partialPath: string): { [key: string]: Observable<string> } {\n\t\tconst values = this.getValueFromPath(partialPath);\n\t\tconst subjects = {};\n\t\tfor (const key of Object.keys(values)) {\n\t\t\tif (values[key] === Object(values[key])) {\n\t\t\t\tsubjects[key] = this.getMultiple(`${partialPath}.${key}`);\n\t\t\t} else {\n\t\t\t\tsubjects[key] = this.getSubject(`${partialPath}.${key}`);\n\t\t\t}\n\t\t}\n\t\treturn subjects;\n\t}\n\n\t/**\n\t * Returns an instance of `Overridable` that can be used to optionally override the value provided by `I18n`\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getOverridable(path: string) {\n\t\treturn new Overridable(path, this);\n\t}\n\n\t/**\n\t * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n\t *\n\t * The keys specify the variable name in the string.\n\t *\n\t * Example:\n\t * ```\n\t * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n\t *\n\t * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n\t * ```\n\t *\n\t * Produces: `\"test asdf\"`\n\t *\n\t * @param subject the translation to replace variables on\n\t * @param variables object of variables to replace\n\t */\n\tpublic replace(subject: Observable<string>, variables: { [key: string]: string }) {\n\t\treturn replace(subject, variables);\n\t}\n\n\t/**\n\t * Trys to resolve a value from the provided path.\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getValueFromPath(path): string | { [key: string]: string } {\n\t\tlet value = this.translationStrings;\n\t\tfor (const segment of path.split(\".\")) {\n\t\t\tif (value[segment] !== undefined && value[segment] !== null) {\n\t\t\t\tvalue = value[segment];\n\t\t\t} else {\n\t\t\t\tthrow new Error(`no key ${segment} at ${path}`);\n\t\t\t}\n\t\t}\n\t\treturn value as any;\n\t}\n\n\t/**\n\t * Helper method that returns an observable from the internal cache based on the path\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tprotected getSubject(path: string): Observable<string> {\n\t\ttry {\n\t\t\t// we run this here to validate the path exists before adding it to the translation map\n\t\t\tconst value = this.getValueFromPath(path) as string;\n\t\t\tif (this.translations.has(path)) {\n\t\t\t\treturn this.translations.get(path);\n\t\t\t}\n\t\t\tconst translation = new BehaviorSubject(value);\n\t\t\tthis.translations.set(path, translation);\n\t\t\treturn translation;\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { replace } from \"./i18n.service\";\n\n@Pipe({\n\tname: \"i18nReplace\"\n})\nexport class ReplacePipe implements PipeTransform {\n\ttransform(value, variables) {\n\t\treturn replace(value, variables);\n\t}\n}\n","import { NgModule, SkipSelf, Optional } from \"@angular/core\";\n\nimport { I18n } from \"./i18n.service\";\nimport { ReplacePipe } from \"./replace.pipe\";\n\n// either provides a new instance of I18n, or returns the parent\nexport function I18N_SERVICE_PROVIDER_FACTORY(parentService: I18n) {\n\treturn parentService || new I18n();\n}\n\n// I18n should provide a single instance of itself to ensure that translations are consistent through the app\nexport const I18N_SERVICE_PROVIDER = {\n\tprovide: I18n,\n\tdeps: [[new Optional(), new SkipSelf(), I18n]],\n\tuseFactory: I18N_SERVICE_PROVIDER_FACTORY\n};\n\n@NgModule({\n\tdeclarations: [ReplacePipe],\n\texports: [ReplacePipe],\n\tproviders: [\n\t\tI18n,\n\t\tI18N_SERVICE_PROVIDER\n\t]\n})\nexport class I18nModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-i18n.mjs","sources":["../../src/i18n/en.ts","../../src/i18n/i18n.service.ts","../../src/i18n/replace.pipe.ts","../../src/i18n/i18n.module.ts","../../src/i18n/carbon-components-angular-i18n.ts"],"sourcesContent":["export default {\n\t\"BREADCRUMB\": {\n\t\t\"LABEL\": \"Breadcrumb\",\n\t\t\"OVERFLOW_MENU_DESCRIPTION\": \"Options\"\n\t},\n\t\"CODE_SNIPPET\": {\n\t\t\"CODE_SNIPPET_TEXT\": \"Code Snippet Text\",\n\t\t\"SHOW_MORE\": \"Show more\",\n\t\t\"SHOW_LESS\": \"Show less\",\n\t\t\"SHOW_MORE_ICON\": \"Show more icon\",\n\t\t\"COPY_CODE\": \"Copy code\",\n\t\t\"COPIED\": \"Copied!\"\n\t},\n\t\"COMBOBOX\": {\n\t\t\"PLACEHOLDER\": \"Filter...\",\n\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\"CLEAR_SELECTED\": \"Clear selected item\",\n\t\t\"A11Y\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\",\n\t\t\t\"CLEAR_SELECTIONS\": \"Clear all selected items\",\n\t\t\t\"CLEAR_SELECTED\": \"Clear Selection\"\n\t\t}\n\t},\n\t\"DROPDOWN\": {\n\t\t\"OPEN\": \"Open menu\",\n\t\t\"SELECTED\": \"Selected\",\n\t\t\"CLEAR\": \"Clear all selected items\",\n\t\t\"FILTER\": {\n\t\t\t\"SELECTED_ONLY\": \"Show selected only\",\n\t\t\t\"SEARCH\": \"Search\",\n\t\t\t\"NO_RESULTS\": \"No search results\",\n\t\t\t\"RESET_SEARCH\": \"Reset search\"\n\t\t}\n\t},\n\t\"DROPDOWN_LIST\": {\n\t\t\"LABEL\": \"Listbox\"\n\t},\n\t\"FILE_UPLOADER\": {\n\t\t\"CHECKMARK\": \"Checkmark\",\n\t\t\"OPEN\": \"Add file\",\n\t\t\"REMOVE_BUTTON\": \"Close button\"\n\t},\n\t\"LOADING\": {\n\t\t\"TITLE\": \"Loading\"\n\t},\n\t\"MODAL\": {\n\t\t\"CLOSE\": \"Close modal\"\n\t},\n\t\"NOTIFICATION\": {\n\t\t\"CLOSE_BUTTON\": \"Close alert notification\"\n\t},\n\t\"NUMBER\": {\n\t\t\"INCREMENT\": \"Increment value\",\n\t\t\"DECREMENT\": \"Decrement value\"\n\t},\n\t\"OVERFLOW_MENU\": {\n\t\t\"OVERFLOW\": \"Overflow\",\n\t\t\"ICON_DESCRIPTION\": \"Options\"\n\t},\n\t\"SEARCH\": {\n\t\t\"LABEL\": \"Search\",\n\t\t\"PLACEHOLDER\": \"Search\",\n\t\t\"CLEAR_BUTTON\": \"Clear search input\"\n\t},\n\t\"PAGINATION\": {\n\t\t\"ITEMS_PER_PAGE\": \"Items per page:\",\n\t\t\"OPEN_LIST_OF_OPTIONS\": \"Open list of options\",\n\t\t\"BACKWARD\": \"Backward\",\n\t\t\"FORWARD\": \"Forward\",\n\t\t\"TOTAL_ITEMS_UNKNOWN\": \"{{start}}-{{end}} items\",\n\t\t\"TOTAL_ITEMS\": \"{{start}}-{{end}} of {{total}} items\",\n\t\t\"TOTAL_ITEM\": \"{{start}}-{{end}} of {{total}} item\",\n\t\t\"PAGE\": \"page\",\n\t\t\"OF_LAST_PAGES\": \"of {{last}} pages\",\n\t\t\"OF_LAST_PAGE\": \"of {{last}} page\",\n\t\t\"NEXT\": \"Next\",\n\t\t\"PREVIOUS\": \"Previous\",\n\t\t\"SELECT_ARIA\": \"Select page number\"\n\t},\n\t\"PROGRESS_INDICATOR\": {\n\t\t\"CURRENT\": \"Current\",\n\t\t\"INCOMPLETE\": \"Incomplete\",\n\t\t\"COMPLETE\": \"Complete\",\n\t\t\"INVALID\": \"Invalid\"\n\t},\n\t\"TABLE\": {\n\t\t\"FILTER\": \"Filter\",\n\t\t\"END_OF_DATA\": \"You've reached the end of your content\",\n\t\t\"SCROLL_TOP\": \"Scroll to top\",\n\t\t\"CHECKBOX_HEADER\": \"Select all rows\",\n\t\t\"CHECKBOX_ROW\": \"Select {{value}}\",\n\t\t\"EXPAND_BUTTON\": \"Expand row\",\n\t\t\"EXPAND_ALL_BUTTON\": \"Expand all rows\",\n\t\t\"SORT_DESCENDING\": \"Sort rows by this header in descending order\",\n\t\t\"SORT_ASCENDING\": \"Sort rows by this header in ascending order\",\n\t\t\"ROW\": \"row\"\n\t},\n\t\"TABLE_TOOLBAR\": {\n\t\t\"ACTION_BAR\": \"Table action bar\",\n\t\t\"BATCH_TEXT\": \"\",\n\t\t\"BATCH_TEXT_SINGLE\": \"1 item selected\",\n\t\t\"BATCH_TEXT_MULTIPLE\": \"{{count}} items selected\",\n\t\t\"CANCEL\": \"Cancel\"\n\t},\n\t\"TABS\": {\n\t\t\"BUTTON_ARIA_LEFT\": \"Go to the previous tab\",\n\t\t\"BUTTON_ARIA_RIGHT\": \"Go to the next tab\",\n\t\t\"HEADER_ARIA_LABEL\": \"List of tabs\"\n\t},\n\t\"TILES\": {\n\t\t\"TILE\": \"tile\",\n\t\t\"EXPAND\": \"Expand\",\n\t\t\"COLLAPSE\": \"Collapse\"\n\t},\n\t\"TOGGLE\": {\n\t\t\"OFF\": \"Off\",\n\t\t\"ON\": \"On\"\n\t},\n\t\"UI_SHELL\": {\n\t\t\"SKIP_TO\": \"Skip to content\",\n\t\t\"HEADER\": {\n\t\t\t\"OPEN_MENU\": \"Open menu\",\n\t\t\t\"CLOSE_MENU\": \"Close menu\"\n\t\t},\n\t\t\"SIDE_NAV\": {\n\t\t\t\"TOGGLE_OPEN\": \"Open\",\n\t\t\t\"TOGGLE_CLOSE\": \"Close\"\n\t\t}\n\t}\n};\n","import { Injectable } from \"@angular/core\";\nimport {\n\tBehaviorSubject,\n\tObservable,\n\tisObservable,\n\tiif,\n\tSubscription\n} from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { merge } from \"carbon-components-angular/utils\";\n\nimport EN from \"./en\";\n\n/**\n * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n *\n * The keys specify the variable name in the string.\n *\n * Example:\n * ```typescript\n * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n *\n * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n * ```\n *\n * Produces: `\"test asdf\"`\n *\n * @param subject the translation to replace variables on\n * @param variables object of variables to replace\n */\nexport const replace = (subject, variables) => subject.pipe(\n\tmap<string, void>(str => {\n\t\tconst keys = Object.keys(variables);\n\t\tfor (const key of keys) {\n\t\t\tconst value = variables[key];\n\t\t\tstr = str.replace(new RegExp(`{{\\\\s*${key}\\\\s*}}`, \"g\"), value);\n\t\t}\n\t\treturn str;\n\t})\n);\n\n/**\n * Represents an \"overridable\" translation value.\n *\n * Largely an internal usecase. There are situations where we want an `Observable` that\n * can emit events from a centralized source **OR** an `Observable` that will emit events\n * from a component local source. The key example being on/off text in a `Toggle` - In some cases\n * we want the `Toggle` to use `I18n`s global translations, but in others we'd prefer to use a local\n * override. We don't ever need to return to a non-overridden state, but we do need the ability to\n * switch _to_ an overridden sate.\n */\nexport class Overridable {\n\t/**\n\t * The raw value of the translation. Defaults to the string value, but will return the value passed to `override`\n\t *\n\t * @readonly\n\t */\n\tpublic get value(): string | Observable<string> {\n\t\treturn this._value;\n\t}\n\n\tpublic set value(v: string | Observable<string>) {\n\t\tthis.override(v);\n\t}\n\n\t/**\n\t * The translation subject. Returns either a stream of overridden values, or our base translation values.\n\t *\n\t * @readonly\n\t */\n\tpublic get subject(): Observable<string> {\n\t\t/**\n\t\t * since inputs are bound on template instantiation (and thusly will always have _some_ value)\n\t\t * We can use a simple boolean and the `iif` function to determine which subject to return on subscription\n\t\t */\n\t\treturn iif(() => this.isOverridden, this.$override, this.baseTranslation);\n\t}\n\n\t/**\n\t * Overridden value. Accessed by the readonly getter `value` and set through `override`\n\t */\n\tprotected _value: string | Observable<string>;\n\t/**\n\t * Subject of overridden values. Initialized with our default value.\n\t */\n\tprotected $override: BehaviorSubject<string>;\n\t/**\n\t * Our base non-overridden translation.\n\t */\n\tprotected baseTranslation: Observable<string> = this.i18n.get(this.path);\n\n\t/**\n\t * Subscription to the observable provided as an override (if any)\n\t */\n\tprotected subscription: Subscription;\n\t/**\n\t * A boolean to flip between overridden and non-overridden states.\n\t */\n\tprotected isOverridden = false;\n\n\tconstructor(protected path: string, protected i18n: I18n) {\n\t\t/**\n\t\t * ensure `$override` is initialized with the correct default value\n\t\t * in some cases `_value` can get changed for an `Observable` before `$override` is created\n\t\t */\n\t\tconst value = this.i18n.getValueFromPath(this.path) as string;\n\t\tthis.$override = new BehaviorSubject<string>(value);\n\t\tthis._value = value;\n\t}\n\t/**\n\t * Takes a string or an `Observable` that emits strings.\n\t * Overrides the value provided by the `I18n` service.\n\t */\n\toverride(value: string | Observable<string>) {\n\t\tthis.isOverridden = true;\n\t\t// To ensure that there are not multiple subscriptions created for the same observable, we\n\t\t// unsubscribe if a subscription already exists for an observable before creating a new one.\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.unsubscribe();\n\t\t\tthis.subscription = null;\n\t\t}\n\n\t\tthis._value = value;\n\n\t\tif (isObservable(value)) {\n\t\t\tthis.subscription = value.subscribe(v => {\n\t\t\t\tthis.$override.next(v);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.$override.next(value);\n\t\t}\n\t}\n}\n\n/**\n * An object of strings, should follow the same format as src/i18n/en.json\n */\nexport type TranslationStrings = {\n\t[key: string]: string | TranslationStrings;\n};\n\n\n/**\n * The I18n service is a minimal internal singleton service used to supply our components with translated strings.\n *\n * All the components that support I18n also support directly passed strings.\n * Usage of I18n is optional, and it is not recommended for application use (libraries like ngx-translate\n * are a better choice)\n *\n */\n@Injectable()\nexport class I18n {\n\tprotected translationStrings: TranslationStrings = EN;\n\n\tprotected translations = new Map();\n\n\tprotected locale = new BehaviorSubject(\"en\");\n\n\t/**\n\t * Sets the locale and optionally the translation strings. Locale is used by components that\n\t * are already locale aware (datepicker for example) while the translation strings are used\n\t * for components that are not.\n\t *\n\t * Locales set here will override locales/languages set in components\n\t * @param language an ISO 639-1 language code - https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n\t * @param strings an object of strings, optional\n\t */\n\tpublic setLocale(language: string, strings?: TranslationStrings) {\n\t\tthis.locale.next(language);\n\t\tif (strings) {\n\t\t\tthis.set(strings);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current locale\n\t */\n\tpublic getLocale() {\n\t\treturn this.locale.value;\n\t}\n\n\t/**\n\t * Returns an observable that resolves to the current locale, and will update when changed\n\t */\n\tpublic getLocaleObservable() {\n\t\treturn this.locale.asObservable();\n\t}\n\n\t/**\n\t * Set/update the translations from an object. Also notifies all participating components of the update.\n\t *\n\t * @param strings an object of strings, should follow the same format as src/i18n/en.json\n\t */\n\tpublic set(strings: TranslationStrings) {\n\t\tthis.translationStrings = merge({}, EN, strings);\n\t\t// iterate over all our tracked translations and update each observable\n\t\tconst translations = Array.from(this.translations);\n\t\tfor (const [path, subject] of translations) {\n\t\t\tsubject.next(this.getValueFromPath(path));\n\t\t}\n\t}\n\n\t/**\n\t * When a path is specified returns an observable that will resolve to the translation string value.\n\t *\n\t * Returns the full translations object if path is not specified.\n\t *\n\t * @param path optional, looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic get(path?: string): any {\n\t\tif (!path) {\n\t\t\treturn this.translationStrings;\n\t\t}\n\t\treturn this.getSubject(path);\n\t}\n\n\t/**\n\t * Returns all descendents of some path fragment as an object.\n\t *\n\t * @param partialPath a path fragment, for example `\"NOTIFICATION\"`\n\t */\n\tpublic getMultiple(partialPath: string): { [key: string]: Observable<string> } {\n\t\tconst values = this.getValueFromPath(partialPath);\n\t\tconst subjects = {};\n\t\tfor (const key of Object.keys(values)) {\n\t\t\tif (values[key] === Object(values[key])) {\n\t\t\t\tsubjects[key] = this.getMultiple(`${partialPath}.${key}`);\n\t\t\t} else {\n\t\t\t\tsubjects[key] = this.getSubject(`${partialPath}.${key}`);\n\t\t\t}\n\t\t}\n\t\treturn subjects;\n\t}\n\n\t/**\n\t * Returns an instance of `Overridable` that can be used to optionally override the value provided by `I18n`\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getOverridable(path: string) {\n\t\treturn new Overridable(path, this);\n\t}\n\n\t/**\n\t * Takes the `Observable` returned from `i18n.get` and an object of variables to replace.\n\t *\n\t * The keys specify the variable name in the string.\n\t *\n\t * Example:\n\t * ```\n\t * service.set({ \"TEST\": \"{{foo}} {{bar}}\" });\n\t *\n\t * service.replace(service.get(\"TEST\"), { foo: \"test\", bar: \"asdf\" })\n\t * ```\n\t *\n\t * Produces: `\"test asdf\"`\n\t *\n\t * @param subject the translation to replace variables on\n\t * @param variables object of variables to replace\n\t */\n\tpublic replace(subject: Observable<string>, variables: { [key: string]: string }) {\n\t\treturn replace(subject, variables);\n\t}\n\n\t/**\n\t * Trys to resolve a value from the provided path.\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tpublic getValueFromPath(path: string): string | TranslationStrings {\n\t\tlet value: string | TranslationStrings = this.translationStrings;\n\t\tfor (const segment of path.split(\".\")) {\n\t\t\tif (value[segment] !== undefined && value[segment] !== null) {\n\t\t\t\tvalue = value[segment];\n\t\t\t} else {\n\t\t\t\tthrow new Error(`no key ${segment} at ${path}`);\n\t\t\t}\n\t\t}\n\t\treturn value as any;\n\t}\n\n\t/**\n\t * Helper method that returns an observable from the internal cache based on the path\n\t *\n\t * @param path looks like `\"NOTIFICATION.CLOSE_BUTTON\"`\n\t */\n\tprotected getSubject(path: string): Observable<string> {\n\t\ttry {\n\t\t\t// we run this here to validate the path exists before adding it to the translation map\n\t\t\tconst value = this.getValueFromPath(path) as string;\n\t\t\tif (this.translations.has(path)) {\n\t\t\t\treturn this.translations.get(path);\n\t\t\t}\n\t\t\tconst translation = new BehaviorSubject(value);\n\t\t\tthis.translations.set(path, translation);\n\t\t\treturn translation;\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { replace } from \"./i18n.service\";\n\n@Pipe({\n\tname: \"i18nReplace\"\n})\nexport class ReplacePipe implements PipeTransform {\n\ttransform(value, variables) {\n\t\treturn replace(value, variables);\n\t}\n}\n","import { NgModule, SkipSelf, Optional } from \"@angular/core\";\n\nimport { I18n } from \"./i18n.service\";\nimport { ReplacePipe } from \"./replace.pipe\";\n\n// either provides a new instance of I18n, or returns the parent\nexport function I18N_SERVICE_PROVIDER_FACTORY(parentService: I18n) {\n\treturn parentService || new I18n();\n}\n\n// I18n should provide a single instance of itself to ensure that translations are consistent through the app\nexport const I18N_SERVICE_PROVIDER = {\n\tprovide: I18n,\n\tdeps: [[new Optional(), new SkipSelf(), I18n]],\n\tuseFactory: I18N_SERVICE_PROVIDER_FACTORY\n};\n\n@NgModule({\n\tdeclarations: [ReplacePipe],\n\texports: [ReplacePipe],\n\tproviders: [\n\t\tI18n,\n\t\tI18N_SERVICE_PROVIDER\n\t]\n})\nexport class I18nModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA,SAAe;AACd,IAAA,YAAY,EAAE;AACb,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,2BAA2B,EAAE,SAAS;AACtC,KAAA;AACD,IAAA,cAAc,EAAE;AACf,QAAA,mBAAmB,EAAE,mBAAmB;AACxC,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,gBAAgB,EAAE,gBAAgB;AAClC,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,QAAQ,EAAE,SAAS;AACnB,KAAA;AACD,IAAA,UAAU,EAAE;AACX,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,kBAAkB,EAAE,0BAA0B;AAC9C,QAAA,gBAAgB,EAAE,qBAAqB;AACvC,QAAA,MAAM,EAAE;AACP,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,kBAAkB,EAAE,0BAA0B;AAC9C,YAAA,gBAAgB,EAAE,iBAAiB;AACnC,SAAA;AACD,KAAA;AACD,IAAA,UAAU,EAAE;AACX,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,OAAO,EAAE,0BAA0B;AACnC,QAAA,QAAQ,EAAE;AACT,YAAA,eAAe,EAAE,oBAAoB;AACrC,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,mBAAmB;AACjC,YAAA,cAAc,EAAE,cAAc;AAC9B,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,eAAe,EAAE,cAAc;AAC/B,KAAA;AACD,IAAA,SAAS,EAAE;AACV,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,KAAA;AACD,IAAA,cAAc,EAAE;AACf,QAAA,cAAc,EAAE,0BAA0B;AAC1C,KAAA;AACD,IAAA,QAAQ,EAAE;AACT,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,kBAAkB,EAAE,SAAS;AAC7B,KAAA;AACD,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,aAAa,EAAE,QAAQ;AACvB,QAAA,cAAc,EAAE,oBAAoB;AACpC,KAAA;AACD,IAAA,YAAY,EAAE;AACb,QAAA,gBAAgB,EAAE,iBAAiB;AACnC,QAAA,sBAAsB,EAAE,sBAAsB;AAC9C,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,qBAAqB,EAAE,yBAAyB;AAChD,QAAA,aAAa,EAAE,sCAAsC;AACrD,QAAA,YAAY,EAAE,qCAAqC;AACnD,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,eAAe,EAAE,mBAAmB;AACpC,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,aAAa,EAAE,oBAAoB;AACnC,KAAA;AACD,IAAA,oBAAoB,EAAE;AACrB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,SAAS,EAAE,SAAS;AACpB,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,aAAa,EAAE,wCAAwC;AACvD,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,iBAAiB,EAAE,iBAAiB;AACpC,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,eAAe,EAAE,YAAY;AAC7B,QAAA,mBAAmB,EAAE,iBAAiB;AACtC,QAAA,iBAAiB,EAAE,8CAA8C;AACjE,QAAA,gBAAgB,EAAE,6CAA6C;AAC/D,QAAA,KAAK,EAAE,KAAK;AACZ,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,mBAAmB,EAAE,iBAAiB;AACtC,QAAA,qBAAqB,EAAE,0BAA0B;AACjD,QAAA,QAAQ,EAAE,QAAQ;AAClB,KAAA;AACD,IAAA,MAAM,EAAE;AACP,QAAA,kBAAkB,EAAE,wBAAwB;AAC5C,QAAA,mBAAmB,EAAE,oBAAoB;AACzC,QAAA,mBAAmB,EAAE,cAAc;AACnC,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,UAAU;AACtB,KAAA;AACD,IAAA,QAAQ,EAAE;AACT,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,KAAA;AACD,IAAA,UAAU,EAAE;AACX,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,QAAQ,EAAE;AACT,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,YAAY,EAAE,YAAY;AAC1B,SAAA;AACD,QAAA,UAAU,EAAE;AACX,YAAA,aAAa,EAAE,MAAM;AACrB,YAAA,cAAc,EAAE,OAAO;AACvB,SAAA;AACD,KAAA;CACD;;ACrHD;;;;;;;;;;;;;;;;AAgBG;AACU,MAAA,OAAO,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAC1D,GAAG,CAAe,GAAG,IAAG;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACvB,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAS,MAAA,EAAA,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAChE,KAAA;AACD,IAAA,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC,EACD;AAEF;;;;;;;;;AASG;MACU,WAAW,CAAA;IAiDvB,WAAsB,CAAA,IAAY,EAAY,IAAU,EAAA;AAAlC,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AAAY,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;AAdxD;;AAEG;AACO,QAAA,IAAe,CAAA,eAAA,GAAuB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAMzE;;AAEG;AACO,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAG9B;;;AAGG;AACH,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAW,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAS,KAAK,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACpB;AAxDD;;;;AAIG;AACH,IAAA,IAAW,KAAK,GAAA;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;KACnB;IAED,IAAW,KAAK,CAAC,CAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KACjB;AAED;;;;AAIG;AACH,IAAA,IAAW,OAAO,GAAA;AACjB;;;AAGG;AACH,QAAA,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;KAC1E;AAiCD;;;AAGG;AACH,IAAA,QAAQ,CAAC,KAAkC,EAAA;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;;QAGzB,IAAI,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAG;AACvC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAC,CAAC,CAAC;AACH,SAAA;AAAM,aAAA;AACN,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAA;KACD;AACD,CAAA;AAUD;;;;;;;AAOG;MAEU,IAAI,CAAA;AADjB,IAAA,WAAA,GAAA;AAEW,QAAA,IAAkB,CAAA,kBAAA,GAAuB,EAAE,CAAC;AAE5C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzB,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KA+I7C;AA7IA;;;;;;;;AAQG;IACI,SAAS,CAAC,QAAgB,EAAE,OAA4B,EAAA;AAC9D,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAA,IAAI,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClB,SAAA;KACD;AAED;;AAEG;IACI,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KACzB;AAED;;AAEG;IACI,mBAAmB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAClC;AAED;;;;AAIG;AACI,IAAA,GAAG,CAAC,OAA2B,EAAA;QACrC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;;QAEjD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,SAAA;KACD;AAED;;;;;;AAMG;AACI,IAAA,GAAG,CAAC,IAAa,EAAA;QACvB,IAAI,CAAC,IAAI,EAAE;YACV,OAAO,IAAI,CAAC,kBAAkB,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC7B;AAED;;;;AAIG;AACI,IAAA,WAAW,CAAC,WAAmB,EAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACtC,YAAA,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACxC,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,CAAC;AAC1D,aAAA;AAAM,iBAAA;AACN,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,CAAC;AACzD,aAAA;AACD,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC;KAChB;AAED;;;AAGG;AACI,IAAA,cAAc,CAAC,IAAY,EAAA;AACjC,QAAA,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACnC;AAED;;;;;;;;;;;;;;;;AAgBG;IACI,OAAO,CAAC,OAA2B,EAAE,SAAoC,EAAA;AAC/E,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KACnC;AAED;;;;AAIG;AACI,IAAA,gBAAgB,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,KAAK,GAAgC,IAAI,CAAC,kBAAkB,CAAC;QACjE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACtC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;AAC5D,gBAAA,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB,aAAA;AAAM,iBAAA;gBACN,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,OAAO,CAAO,IAAA,EAAA,IAAI,CAAE,CAAA,CAAC,CAAC;AAChD,aAAA;AACD,SAAA;AACD,QAAA,OAAO,KAAY,CAAC;KACpB;AAED;;;;AAIG;AACO,IAAA,UAAU,CAAC,IAAY,EAAA;QAChC,IAAI;;YAEH,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAW,CAAC;YACpD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,aAAA;AACD,YAAA,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACzC,YAAA,OAAO,WAAW,CAAC;AACnB,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,SAAA;KACD;;iGAnJW,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qGAAJ,IAAI,EAAA,CAAA,CAAA;2FAAJ,IAAI,EAAA,UAAA,EAAA,CAAA;kBADhB,UAAU;;;MChJE,WAAW,CAAA;IACvB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAA;AACzB,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACjC;;wGAHW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;sGAAX,WAAW,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,aAAa;iBACnB,CAAA;;;ACAD;AACM,SAAU,6BAA6B,CAAC,aAAmB,EAAA;AAChE,IAAA,OAAO,aAAa,IAAI,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;AACa,MAAA,qBAAqB,GAAG;AACpC,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9C,IAAA,UAAU,EAAE,6BAA6B;EACxC;MAUW,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;wGAAV,UAAU,EAAA,YAAA,EAAA,CAPP,WAAW,CAAA,EAAA,OAAA,EAAA,CAChB,WAAW,CAAA,EAAA,CAAA,CAAA;AAMT,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EALX,SAAA,EAAA;QACV,IAAI;QACJ,qBAAqB;AACrB,KAAA,EAAA,CAAA,CAAA;2FAEW,UAAU,EAAA,UAAA,EAAA,CAAA;kBARtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,YAAY,EAAE,CAAC,WAAW,CAAC;oBAC3B,OAAO,EAAE,CAAC,WAAW,CAAC;AACtB,oBAAA,SAAS,EAAE;wBACV,IAAI;wBACJ,qBAAqB;AACrB,qBAAA;iBACD,CAAA;;;ACxBD;;AAEG;;;;"}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AACrE,QAAA,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;QAExD,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,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,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;;AAlGM,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;;;;"}
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":"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"}
@@ -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;"
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-pagination.mjs","sources":["../../src/pagination/pagination-model.class.ts","../../src/pagination/pagination.component.ts","../../src/pagination/pagination-nav/pagination-item.component.ts","../../src/pagination/pagination-nav/pagination-overflow.component.ts","../../src/pagination/pagination-nav/pagination-nav.component.ts","../../src/pagination/pagination.module.ts","../../src/pagination/carbon-components-angular-pagination.ts"],"sourcesContent":["export class PaginationModel {\n\t/**\n\t * Tracks the current page.\n\t */\n\tcurrentPage = 1;\n\n\t/**\n\t * Length of page.\n\t */\n\t/* tslint:disable-next-line*/\n\tpageLength? = 10;\n\n\t/**\n\t * Absolute total number of items needed to paginate.\n\t */\n\ttotalDataLength = 0;\n}\n","import { PaginationModel } from \"./pagination-model.class\";\nimport {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\n\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { ExperimentalService } from \"carbon-components-angular/experimental\";\nimport { merge } from \"carbon-components-angular/utils\";\n\nexport interface PaginationTranslations {\n\tITEMS_PER_PAGE: string;\n\tOPEN_LIST_OF_OPTIONS: string;\n\tBACKWARD: string;\n\tFORWARD: string;\n\tTOTAL_ITEMS_UNKNOWN: string;\n\tTOTAL_ITEMS: string;\n\tTOTAL_ITEM: string;\n\tOF_LAST_PAGES: string;\n\tOF_LAST_PAGE: string;\n}\n\n/**\n * Use pagination when you have multiple pages of data to handle. Get started with importing the module:\n *\n * ```typescript\n * import { PaginationModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n *\t<cds-pagination [model]=\"model\" (selectPage)=\"selectPage($event)\"></cds-pagination>\n * ```\n *\n * In your `selectPage()` method set the `model.currentPage` to selected page, _after_\n * you load the page.\n *\n * ```typescript\n * selectPage(page) {\n * \t// ... your code to load the page goes here\n *\n * \tthis.model.currentPage = page;\n *\n * \t// ... anything you want to do after page selection changes goes here\n * }\n * ```\n *\n * [See demo](../../?path=/story/components-pagination--basic)\n */\n@Component({\n\tselector: \"cds-pagination, ibm-pagination\",\n\ttemplate: `\n\t<div\n\t\tclass=\"cds--pagination\"\n\t\t[ngClass]=\"{\n\t\t\t'cds--skeleton': skeleton\n\t\t}\">\n\t\t<!-- left skeleton div -->\n\t\t<div *ngIf=\"skeleton\" class=\"cds--pagination__left\">\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 70px\"></p>\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 35px\"></p>\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 105px\"></p>\n\t\t</div>\n\n\t\t<div *ngIf=\"!skeleton\" class=\"cds--pagination__left\">\n\t\t\t<ng-container *ngIf=\"showPageInput\">\n\t\t\t\t<label class=\"cds--pagination__text\" [for]=\"itemsPerPageSelectId\">\n\t\t\t\t\t{{itemsPerPageText.subject | async}}\n\t\t\t\t</label>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--select cds--select--inline cds--select__item-count\"\n\t\t\t\t\t[class.cds--select--disabled]=\"pageInputDisabled\">\n\t\t\t\t\t<select\n\t\t\t\t\t\t[id]=\"itemsPerPageSelectId\"\n\t\t\t\t\t\t[(ngModel)]=\"itemsPerPage\"\n\t\t\t\t\t\t[disabled]=\"pageInputDisabled\"\n\t\t\t\t\t\tclass=\"cds--select-input\">\n\t\t\t\t\t\t<option\n\t\t\t\t\t\t\tclass=\"cds--select-option\"\n\t\t\t\t\t\t\t*ngFor=\"let option of itemsPerPageOptions\"\n\t\t\t\t\t\t\t[value]=\"option\">\n\t\t\t\t\t\t\t\t{{ option }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<svg\n\t\t\t\t\t\tcdsIcon=\"chevron--down\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tstyle=\"display: inherit\"\n\t\t\t\t\t\tclass=\"cds--select__arrow\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t[attr.ariaLabel]=\"optionsListText.subject | async\">\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<span *ngIf=\"!pagesUnknown && totalDataLength <= 1\" class=\"cds--pagination__text cds--pagination__items-count\" [ngStyle]=\"{'margin-left': showPageInput ? null : 0}\">\n\t\t\t\t{{totalItemText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!pagesUnknown && totalDataLength > 1\" class=\"cds--pagination__text cds--pagination__items-count\" [ngStyle]=\"{'margin-left': showPageInput ? null : 0}\">\n\t\t\t\t{{totalItemsText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}\n\t\t\t</span>\n\t\t\t<span *ngIf=\"pagesUnknown\" class=\"cds--pagination__text cds--pagination__items-count\" [ngStyle]=\"{'margin-left': showPageInput ? null : 0}\">\n\t\t\t\t{{totalItemsUnknownText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex } | async}}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<!-- right skeleton div -->\n\t\t<div *ngIf=\"skeleton\" class=\"cds--pagination__right\">\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 70px\"></p>\n\t\t</div>\n\n\t\t<div *ngIf=\"!skeleton\" class=\"cds--pagination__right\">\n\t\t\t<span *ngIf=\"pagesUnknown\" class=\"cds--pagination__text cds--pagination__page-text\">\n\t\t\t\t<ng-container *ngIf=\"!showPageInput\">{{currentPage}}</ng-container>\n\t\t\t\t{{pageText.subject | async}}\n\t\t\t</span>\n\t\t\t<ng-container *ngIf=\"showPageInput\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--select cds--select--inline cds--select__page-number\"\n\t\t\t\t\t[class.cds--select--disabled]=\"pageInputDisabled\">\n\t\t\t\t\t<label [for]=\"currentPageSelectId\" class=\"cds--label cds--visually-hidden\">{{pageText.subject | async}}</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\t*ngIf=\"pageOptions.length > pageSelectThreshold\"\n\t\t\t\t\t\tstyle=\"padding-right: 1rem; margin-right: 1rem;\"\n\t\t\t\t\t\t[id]=\"currentPageSelectId\"\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t[max]=\"pageOptions.length\"\n\t\t\t\t\t\tclass=\"cds--select-input\"\n\t\t\t\t\t\t[(ngModel)]=\"currentPage\">\n\t\t\t\t\t<select\n\t\t\t\t\t\t*ngIf=\"pageOptions.length <= pageSelectThreshold\"\n\t\t\t\t\t\t[id]=\"currentPageSelectId\"\n\t\t\t\t\t\tclass=\"cds--select-input\"\n\t\t\t\t\t\t[disabled]=\"pageInputDisabled\"\n\t\t\t\t\t\t[(ngModel)]=\"currentPage\">\n\t\t\t\t\t\t<option *ngFor=\"let page of pageOptions; let i = index;\" class=\"cds--select-option\" [value]=\"i + 1\">{{i + 1}}</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"pageOptions.length <= 1000\"\n\t\t\t\t\t\tcdsIcon=\"chevron--down\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tstyle=\"display: inherit;\"\n\t\t\t\t\t\tclass=\"cds--select__arrow\"\n\t\t\t\t\t\t[attr.ariaLabel]=\"optionsListText.subject | async\">\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\n\t\t\t<span *ngIf=\"!pagesUnknown && lastPage <= 1\" class=\"cds--pagination__text\">\n\t\t\t\t<ng-container *ngIf=\"!showPageInput\">{{currentPage}}</ng-container>\n\t\t\t\t{{ofLastPageText.subject | i18nReplace: {last: lastPage} | async}}\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!pagesUnknown && lastPage > 1\" class=\"cds--pagination__text\">\n\t\t\t\t<ng-container *ngIf=\"!showPageInput\">{{currentPage}}</ng-container>\n\t\t\t\t{{ofLastPagesText.subject | i18nReplace: {last: lastPage} | async}}\n\t\t\t</span>\n\t\t\t<div class=\"cds--pagination__control-buttons\">\n\t\t\t\t<button\n\t\t\t\t\tcdsButton=\"ghost\"\n\t\t\t\t\ticonOnly=\"true\"\n\t\t\t\t\tclass=\"cds--pagination__button cds--pagination__button--backward\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--pagination__button--no-index': currentPage <= 1 || disabled\n\t\t\t\t\t}\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t[attr.aria-label]=\"backwardText.subject | async\"\n\t\t\t\t\t(click)=\"selectPage.emit(previousPage)\"\n\t\t\t\t\t[disabled]=\"(currentPage <= 1 || disabled ? true : null)\">\n\t\t\t\t\t<svg cdsIcon=\"caret--left\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\t\t\t\t</button>\n\n\t\t\t\t<button\n\t\t\t\t\tcdsButton=\"ghost\"\n\t\t\t\t\ticonOnly=\"true\"\n\t\t\t\t\tclass=\"\n\t\t\t\t\t\tcds--pagination__button\n\t\t\t\t\t\tcds--pagination__button--forward\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--pagination__button--no-index': currentPage >= lastPage || disabled\n\t\t\t\t\t}\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t[attr.aria-label]=\"forwardText.subject | async\"\n\t\t\t\t\t(click)=\"selectPage.emit(nextPage)\"\n\t\t\t\t\t[disabled]=\"(currentPage >= lastPage || disabled ? true : null)\">\n\t\t\t\t\t<svg cdsIcon=\"caret--right\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t`\n})\nexport class Pagination {\n\tstatic paginationCounter = 0;\n\n\t/**\n\t * Set to `true` for a loading pagination component.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * `PaginationModel` with the information about pages you're controlling.\n\t */\n\t@Input() model: PaginationModel;\n\t/**\n \t * Set to `true` to disable the backward/forward buttons.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` to disable the select box that changes the page.\n\t */\n\t@Input() pageInputDisabled = false;\n\t/**\n\t * Controls wether or not to show the page selects\n\t */\n\t@Input() showPageInput = true;\n\t/**\n\t * Set to `true` if the total number of items is unknown.\n\t */\n\t@Input() pagesUnknown = false;\n\t@Input() pageSelectThreshold = 1000;\n\n\t/**\n\t * Expects an object that contains some or all of:\n\t * ```\n\t * {\n\t *\t\t\"ITEMS_PER_PAGE\": \"Items per page:\",\n\t *\t\t\"OPEN_LIST_OF_OPTIONS\": \"Open list of options\",\n\t *\t\t\"BACKWARD\": \"Backward\",\n\t *\t\t\"FORWARD\": \"Forward\",\n\t *\t\t\"TOTAL_ITEMS_UNKNOWN\": \"{{start}}-{{end}} items\",\n\t *\t\t\"TOTAL_ITEMS\": \"{{start}}-{{end}} of {{total}} items\",\n\t *\t\t\"TOTAL_ITEM\": \"{{start}}-{{end}} of {{total}} item\",\n\t *\t\t\"OF_LAST_PAGES\": \"of {{last}} pages\",\n\t *\t\t\"OF_LAST_PAGE\": \"of {{last}} page\"\n\t * }\n\t * ```\n\t */\n\t@Input()\n\tset translations (value: PaginationTranslations) {\n\t\tconst valueWithDefaults = merge(this.i18n.getMultiple(\"PAGINATION\"), value);\n\t\tthis.itemsPerPageText.override(valueWithDefaults.ITEMS_PER_PAGE);\n\t\tthis.optionsListText.override(valueWithDefaults.OPEN_LIST_OF_OPTIONS);\n\t\tthis.backwardText.override(valueWithDefaults.BACKWARD);\n\t\tthis.forwardText.override(valueWithDefaults.FORWARD);\n\t\tthis.totalItemsText.override(valueWithDefaults.TOTAL_ITEMS);\n\t\tthis.totalItemText.override(valueWithDefaults.TOTAL_ITEM);\n\t\tthis.totalItemsUnknownText.override(valueWithDefaults.TOTAL_ITEMS_UNKNOWN);\n\t\tthis.pageText.override(valueWithDefaults.PAGE);\n\t\tthis.ofLastPagesText.override(valueWithDefaults.OF_LAST_PAGES);\n\t\tthis.ofLastPageText.override(valueWithDefaults.OF_LAST_PAGE);\n\t}\n\n\t/**\n\t * Options for items per page select\n\t *\n\t * A default array of options will be defined: [10, 20, 30, 40, 50]\n\t */\n\t@Input() itemsPerPageOptions: number[] = [10, 20, 30, 40, 50];\n\n\t/**\n\t * Emits the new page number.\n\t *\n\t * You should tie into this and update `model.currentPage` once the fresh\n\t * data is finally loaded.\n\t */\n\t@Output() selectPage = new EventEmitter<number>();\n\n\tget itemsPerPage() {\n\t\treturn this.model.pageLength;\n\t}\n\tset itemsPerPage(value) {\n\t\tthis.model.pageLength = Number(value);\n\t\tthis.currentPage = 1; // reset page\n\t}\n\n\tget currentPage() {\n\t\treturn this.model.currentPage;\n\t}\n\tset currentPage(value) {\n\t\tvalue = Number(value);\n\t\t// emits the value to allow the user to update current page\n\t\t// in the model once the page is loaded\n\t\tthis.selectPage.emit(value);\n\t}\n\n\tget totalDataLength() {\n\t\treturn this.model.totalDataLength;\n\t}\n\t/**\n\t * The last page number to display in the pagination view.\n\t */\n\tget lastPage(): number {\n\t\tconst last = Math.ceil(this.totalDataLength / this.itemsPerPage);\n\t\treturn last > 0 ? last : 1;\n\t}\n\n\tget startItemIndex() {\n\t\treturn this.endItemIndex > 0 ? (this.currentPage - 1) * this.itemsPerPage + 1 : 0;\n\t}\n\n\tget endItemIndex() {\n\t\tconst projectedEndItemIndex = this.currentPage * this.itemsPerPage;\n\n\t\treturn projectedEndItemIndex < this.totalDataLength ? projectedEndItemIndex : this.totalDataLength;\n\t}\n\n\t/**\n\t * The previous page number to navigate to, from the current page.\n\t */\n\tget previousPage(): number {\n\t\treturn this.currentPage <= 1 ? 1 : this.currentPage - 1;\n\t}\n\n\t/**\n\t * The next page number to navigate to, from the current page.\n\t */\n\tget nextPage(): number {\n\t\tconst lastPage = this.lastPage;\n\t\treturn this.currentPage >= lastPage ? lastPage : this.currentPage + 1;\n\t}\n\n\tget pageOptions() {\n\t\t/**\n\t\t * Calculate number of pages based on totalDataLength and itemsPerPage.\n\t\t * Even if totalDataLength is 0, numberOfPages should be always at least 1.\n\t\t * New array will be constructed only if number of pages changes.\n\t\t */\n\t\tconst numberOfPages = Math.max(Math.ceil(this.totalDataLength / this.itemsPerPage), 1);\n\t\tif (this._pageOptions.length !== numberOfPages) {\n\t\t\tthis._pageOptions = Array(numberOfPages);\n\t\t}\n\t\treturn this._pageOptions;\n\t}\n\n\titemsPerPageSelectId = `pagination-select-items-per-page-${Pagination.paginationCounter}`;\n\tcurrentPageSelectId = `pagination-select-current-page-${Pagination.paginationCounter}`;\n\n\titemsPerPageText = this.i18n.getOverridable(\"PAGINATION.ITEMS_PER_PAGE\");\n\toptionsListText = this.i18n.getOverridable(\"PAGINATION.OPEN_LIST_OF_OPTIONS\");\n\tbackwardText = this.i18n.getOverridable(\"PAGINATION.BACKWARD\");\n\tforwardText = this.i18n.getOverridable(\"PAGINATION.FORWARD\");\n\ttotalItemsText = this.i18n.getOverridable(\"PAGINATION.TOTAL_ITEMS\");\n\ttotalItemText = this.i18n.getOverridable(\"PAGINATION.TOTAL_ITEM\");\n\ttotalItemsUnknownText = this.i18n.getOverridable(\"PAGINATION.TOTAL_ITEMS_UNKNOWN\");\n\tpageText = this.i18n.getOverridable(\"PAGINATION.PAGE\");\n\tofLastPagesText = this.i18n.getOverridable(\"PAGINATION.OF_LAST_PAGES\");\n\tofLastPageText = this.i18n.getOverridable(\"PAGINATION.OF_LAST_PAGE\");\n\n\tprotected _pageOptions = [];\n\n\tconstructor(protected i18n: I18n, protected experimental: ExperimentalService) {\n\t\tPagination.paginationCounter++;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\n\n/**\n * Used to present a single navigation item in a pagination list\n *\n * * ```html\n * <cds-pagination-nav-item [page]=\"5\" [isActive]=\"false\" (click)=\"handleClick(value)\"></cds-pagination-nav-item>\n * ```\n */\n@Component({\n\tselector: \"cds-pagination-nav-item, ibm-pagination-nav-item\",\n\ttemplate: `\n\t\t<li class=\"cds--pagination-nav__list-item\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"cds--pagination-nav__page\"\n\t\t\t\t[ngClass]=\"{ 'cds--pagination-nav__page--active': isActive }\"\n\t\t\t\t(click)=\"click.emit(page)\">\n\t\t\t\t<span class=\"cds--pagination-nav__accessibility-label\">\n\t\t\t\t\t{{page}}\n\t\t\t\t</span>\n\t\t\t\t{{page}}\n\t\t\t</button>\n\t\t</li>\n\t`\n})\nexport class PaginationNavItem {\n\t/**\n\t * The page for this component to dipslay\n\t */\n\t@Input() page = 0;\n\n\t/**\n\t * The state for this component to dipslay\n\t */\n\t@Input() isActive = false;\n\n\t/**\n\t * Emits click event\n\t */\n\t@Output() click = new EventEmitter<number>();\n\n\tconstructor() {}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Used to present a selection of pages when there is an overflow\n * in the pagination list\n *\n * * ```html\n * <cds-pagination-overflow [fromIndex]=\"5\" [count]=\"30\" (change)=\"handleChange(value)\"></cds-pagination-overflow>\n * ```\n */\n@Component({\n\tselector: \"cds-pagination-overflow, ibm-pagination-overflow\",\n\ttemplate: `\n\t\t<li class=\"cds--pagination-nav__list-item\" *ngIf=\"count > 1\">\n\t\t\t<div class=\"cds--pagination-nav__select\">\n\t\t\t<select\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\tclass=\"cds--pagination-nav__page cds--pagination-nav__page--select\"\n\t\t\t\t(change)=\"handleChange($event)\">\n\t\t\t\t<option value=\"\" hidden></option>\n\t\t\t\t<option\n\t\t\t\t*ngFor=\"let item of countAsArray; let i = index\">\n\t\t\t\t\t{{fromIndex + i + 1}}\n\t\t\t\t</option>\n\t\t\t</select>\n\t\t\t<div class=\"cds--pagination-nav__select-icon-wrapper\">\n\t\t\t\t<svg\n\t\t\t\t\tcdsIcon=\"overflow-menu--horizontal\"\n\t\t\t\t\tsize=\"16\"\n\t\t\t\t\tstyle=\"display: inherit\"\n\t\t\t\t\tclass=\"cds--pagination-nav__select-icon\">\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t\t</div>\n\t\t</li>\n\t\t<cds-pagination-nav-item *ngIf=\"count === 1\" [page]=\"fromIndex + 1\"></cds-pagination-nav-item>\n\t`\n})\nexport class PaginationOverflow {\n\t/**\n\t * The page for this component to dipslay\n\t */\n\t@Input() fromIndex: number;\n\n\t@Input() count: number;\n\n\t@Input() ariaLabel: string = this.i18n.get().PAGINATION.SELECT_ARIA;\n\n\t/**\n\t * Emits click event\n\t */\n\t@Output() change = new EventEmitter<number>();\n\n\tget countAsArray() {\n\t\treturn [...Array(this.count)];\n\t}\n\n\tconstructor(protected i18n: I18n) {}\n\n\thandleChange(event) {\n\t\tthis.change.emit(+event.target.value);\n\t\tevent.target.value = \"\";\n\t}\n}\n","import { PaginationModel } from \"../pagination-model.class\";\nimport {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding\n} from \"@angular/core\";\n\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { ExperimentalService } from \"carbon-components-angular/experimental\";\nimport { merge } from \"carbon-components-angular/utils\";\nimport { range } from \"carbon-components-angular/common\";\n\nexport interface PaginationNavTranslations {\n\tNEXT: string;\n\tPREVIOUS: string;\n}\n\n/**\n * Use pagination when you have multiple pages of data to handle. Get started with importing the module:\n *\n * ```typescript\n * import { PaginationModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-pagination-nav [model]=\"model\" (selectPage)=\"selectPage($event)\"></cds-pagination-nav>\n * ```\n *\n * In your `selectPage()` method set the `model.currentPage` to selected page, _after_\n * you load the page.\n *\n * ```typescript\n * selectPage(page) {\n * \t// ... your code to load the page goes here\n *\n * \tthis.model.currentPage = page;\n *\n * \t// ... anything you want to do after page selection changes goes here\n * }\n * ```\n *\n * [See demo](../../?path=/story/components-pagination-nav--basic)\n */\n@Component({\n\tselector: \"cds-pagination-nav, ibm-pagination-navm\",\n\ttemplate: `\n\t<div>\n\t\t<div class=\"cds--pagination-nav\">\n\t\t\t<ul class=\"cds--pagination-nav__list\">\n\t\t\t\t<li class=\"cds--pagination-nav__list-item\">\n\t\t\t\t\t<cds-icon-button\n\t\t\t\t\t\tkind=\"ghost\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t(click)=\"jumpToPrevious()\"\n\t\t\t\t\t\t[disabled]=\"leftArrowDisabled\"\n\t\t\t\t\t\t[description]=\"previousItemText.subject | async\">\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\tcdsIcon=\"caret--left\"\n\t\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\t\tclass=\"cds--btn__icon\">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</cds-icon-button>\n\t\t\t\t</li>\n\t\t\t\t<cds-pagination-nav-item\n\t\t\t\t\t*ngIf=\"this.numOfItemsToShow >= 5 || (this.numOfItemsToShow <= 4 && currentPage <= 1)\"\n\t\t\t\t\tpage=\"1\"\n\t\t\t\t\t(click)=\"currentPage = 1\"\n\t\t\t\t\t[isActive]=\"currentPage == 1\">\n\t\t\t\t</cds-pagination-nav-item>\n\t\t\t\t<cds-pagination-overflow\n\t\t\t\t\t*ngIf=\"frontCuts\"\n\t\t\t\t\t[count]=\"frontCuts\"\n\t\t\t\t\t[fromIndex]=\"startOffset\"\n\t\t\t\t\t(change)=\"handleOverflowSelection($event)\">\n\t\t\t\t</cds-pagination-overflow>\n\t\t\t\t<cds-pagination-nav-item\n\t\t\t\t\t*ngFor=\"let page of getPages();\"\n\t\t\t\t\t[page]=\"page\"\n\t\t\t\t\t(click)=\"currentPage = page\"\n\t\t\t\t\t[isActive]=\"currentPage == page\">\n\t\t\t\t</cds-pagination-nav-item>\n\t\t\t\t<cds-pagination-overflow\n\t\t\t\t\t*ngIf=\"backCuts\"\n\t\t\t\t\t[count]=\"backCuts\"\n\t\t\t\t\t[fromIndex]=\"totalNumbersArray.length - backCuts - 1\"\n\t\t\t\t\t(change)=\"handleOverflowSelection($event)\">\n\t\t\t\t</cds-pagination-overflow>\n\t\t\t\t<cds-pagination-nav-item\n\t\t\t\t\t*ngIf=\"totalDataLength > 1\"\n\t\t\t\t\t[page]=\"totalNumbersArray.length\"\n\t\t\t\t\t(click)=\"currentPage = totalNumbersArray.length\"\n\t\t\t\t\t[isActive]=\"currentPage == totalNumbersArray.length\">\n\t\t\t\t</cds-pagination-nav-item>\n\t\t\t\t<li class=\"cds--pagination-nav__list-item\">\n\t\t\t\t\t<cds-icon-button\n\t\t\t\t\t\tkind=\"ghost\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t(click)=\"jumpToNext()\"\n\t\t\t\t\t\t[disabled]=\"rightArrowDisabled\"\n\t\t\t\t\t\t[description]=\"nextItemText.subject | async\">\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\tcdsIcon=\"caret--right\"\n\t\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\t\tclass=\"cds--btn__icon\">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</cds-icon-button>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\t`\n})\nexport class PaginationNav {\n\tstatic paginationCounter = 0;\n\t/**\n\t * `PaginationNavModel` with the information about pages you're controlling.\n\t */\n\t@Input() model: PaginationModel;\n\t/**\n\t * Set to `true` to disable the backward/forward buttons.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Number of items to show in pagination. Minimum is 4.\n\t */\n\t@Input() numOfItemsToShow = 4;\n\n\t/**\n\t * Expects an object that contains some or all of:\n\t * ```\n\t * {\n\t *\t\t\"NEXT\": \"Next\",\n\t *\t\t\"PREVIOUS\": \"Previous\",\n\t * }\n\t * ```\n\t */\n\t@Input()\n\tset translations(value: PaginationNavTranslations) {\n\t\tconst valueWithDefaults = merge(this.i18n.getMultiple(\"PAGINATION\"), value);\n\t\tthis.nextItemText.override(valueWithDefaults.NEXT);\n\t\tthis.previousItemText.override(valueWithDefaults.PREVIOUS);\n\t}\n\n\t/**\n\t * Sets the pagination nav size\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"lg\";\n\n\t// Size\n\t@HostBinding(\"class.cds--layout--size-sm\") get smallLayoutSize() {\n\t\treturn this.size === \"sm\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-md\") get mediumLayoutSize() {\n\t\treturn this.size === \"md\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-lg\") get largeLayoutSize() {\n\t\treturn this.size === \"lg\";\n\t}\n\n\t/**\n\t * Emits the new page number.\n\t *\n\t * You should tie into this and update `model.currentPage` once the fresh\n\t * data is finally loaded.\n\t */\n\t@Output() selectPage = new EventEmitter<number>();\n\n\tget totalNumbersArray() {\n\t\treturn range(this.totalDataLength + 1, 1);\n\t}\n\n\tget currentPage() {\n\t\treturn this.model.currentPage;\n\t}\n\n\tset currentPage(value) {\n\t\tvalue = Number(value);\n\t\t// emits the value to allow the user to update current page\n\t\t// in the model once the page is loaded\n\t\tthis.selectPage.emit(value);\n\t}\n\n\tget totalDataLength() {\n\t\treturn this.model.totalDataLength;\n\t}\n\n\tget startOffset() {\n\t\treturn this.numOfItemsToShow <= 4 && this.currentPage > 1 ? 0 : 1;\n\t}\n\n\tget frontCuts() {\n\t\tconst cuts = this.getCuts();\n\t\treturn cuts.front;\n\t}\n\n\tget backCuts() {\n\t\tconst cuts = this.getCuts();\n\t\treturn cuts.back;\n\t}\n\n\tget leftArrowDisabled() {\n\t\treturn this.disabled || this.currentPage === 1;\n\t}\n\n\tget rightArrowDisabled() {\n\t\treturn this.disabled || this.currentPage === this.totalDataLength;\n\t}\n\n\tnextItemText = this.i18n.getOverridable(\"PAGINATION.NEXT\");\n\tpreviousItemText = this.i18n.getOverridable(\"PAGINATION.PREVIOUS\");\n\n\tconstructor(protected i18n: I18n, protected experimental: ExperimentalService) {\n\t\tPaginationNav.paginationCounter++;\n\t}\n\n\thandleOverflowSelection(page) {\n\t\tif (typeof page === \"number\") {\n\t\t\tthis.currentPage = page;\n\t\t}\n\t}\n\n\tpublic jumpToNext() {\n\t\tthis.currentPage = this.currentPage < this.totalDataLength ? this.currentPage + 1 : this.totalDataLength;\n\t}\n\n\tpublic jumpToPrevious() {\n\t\tthis.currentPage = this.currentPage > 1 ? this.currentPage - 1 : 1;\n\t}\n\n\tpublic getPages() {\n\t\tif (this.totalDataLength <= 1) {\n\t\t\treturn null;\n\t\t}\n\t\tconst cuts = this.getCuts();\n\t\treturn this.totalNumbersArray.slice(this.startOffset + cuts.front, (1 + cuts.back) * -1);\n\t}\n\n\tprivate getCuts(splitPoint = null) {\n\t\tconst page = this.currentPage - 1;\n\t\tconst totalItems = this.totalDataLength;\n\t\tconst itemsThatFit = this.numOfItemsToShow;\n\n\t\tif (itemsThatFit >= totalItems) {\n\t\t\treturn {\n\t\t\t\tfront: 0,\n\t\t\t\tback: 0\n\t\t\t};\n\t\t}\n\t\tconst split = splitPoint || Math.ceil(itemsThatFit / 2) - 1;\n\t\tlet frontHidden = page + 1 - split;\n\t\tlet backHidden = totalItems - page - (itemsThatFit - split) + 1;\n\n\t\tif (frontHidden <= 1) {\n\t\t\tbackHidden -= frontHidden <= 0 ? Math.abs(frontHidden) + 1 : 0;\n\t\t\tfrontHidden = 0;\n\t\t}\n\t\tif (backHidden <= 1) {\n\t\t\tfrontHidden -= backHidden <= 0 ? Math.abs(backHidden) + 1 : 0;\n\t\t\tbackHidden = 0;\n\t\t}\n\t\treturn {\n\t\t\tfront: frontHidden,\n\t\t\tback: backHidden\n\t\t};\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { Pagination } from \"./pagination.component\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { PaginationNav } from \"./pagination-nav/pagination-nav.component\";\nimport { PaginationNavItem } from \"./pagination-nav/pagination-item.component\";\nimport { PaginationOverflow } from \"./pagination-nav/pagination-overflow.component\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { ButtonModule } from \"carbon-components-angular/forms\";\n\n@NgModule({\n\tdeclarations: [\n\t\tPagination,\n\t\tPaginationNav,\n\t\tPaginationNavItem,\n\t\tPaginationOverflow\n\t],\n\texports: [\n\t\tPagination,\n\t\tPaginationNav,\n\t\tPaginationNavItem,\n\t\tPaginationOverflow\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tI18nModule,\n\t\tExperimentalModule,\n\t\tIconModule,\n\t\tButtonModule\n\t]\n})\nexport class PaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5","i1","i2","i3","i4","i5.PaginationNavItem","i6.PaginationNavItem","i7.PaginationOverflow"],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-pagination.mjs","sources":["../../src/pagination/pagination-model.class.ts","../../src/pagination/pagination.component.ts","../../src/pagination/pagination-nav/pagination-item.component.ts","../../src/pagination/pagination-nav/pagination-overflow.component.ts","../../src/pagination/pagination-nav/pagination-nav.component.ts","../../src/pagination/pagination.module.ts","../../src/pagination/carbon-components-angular-pagination.ts"],"sourcesContent":["export class PaginationModel {\n\t/**\n\t * Tracks the current page.\n\t */\n\tcurrentPage = 1;\n\n\t/**\n\t * Length of page.\n\t */\n\t/* tslint:disable-next-line*/\n\tpageLength? = 10;\n\n\t/**\n\t * Absolute total number of items needed to paginate.\n\t */\n\ttotalDataLength = 0;\n}\n","import { PaginationModel } from \"./pagination-model.class\";\nimport {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\n\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { ExperimentalService } from \"carbon-components-angular/experimental\";\nimport { merge } from \"carbon-components-angular/utils\";\n\nexport interface PaginationTranslations {\n\tITEMS_PER_PAGE: string;\n\tOPEN_LIST_OF_OPTIONS: string;\n\tBACKWARD: string;\n\tFORWARD: string;\n\tTOTAL_ITEMS_UNKNOWN: string;\n\tTOTAL_ITEMS: string;\n\tTOTAL_ITEM: string;\n\tOF_LAST_PAGES: string;\n\tOF_LAST_PAGE: string;\n}\n\n/**\n * Use pagination when you have multiple pages of data to handle. Get started with importing the module:\n *\n * ```typescript\n * import { PaginationModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n *\t<cds-pagination [model]=\"model\" (selectPage)=\"selectPage($event)\"></cds-pagination>\n * ```\n *\n * In your `selectPage()` method set the `model.currentPage` to selected page, _after_\n * you load the page.\n *\n * ```typescript\n * selectPage(page) {\n * \t// ... your code to load the page goes here\n *\n * \tthis.model.currentPage = page;\n *\n * \t// ... anything you want to do after page selection changes goes here\n * }\n * ```\n *\n * [See demo](../../?path=/story/components-pagination--basic)\n */\n@Component({\n\tselector: \"cds-pagination, ibm-pagination\",\n\ttemplate: `\n\t<div\n\t\tclass=\"cds--pagination\"\n\t\t[ngClass]=\"{\n\t\t\t'cds--skeleton': skeleton\n\t\t}\">\n\t\t<!-- left skeleton div -->\n\t\t<div *ngIf=\"skeleton\" class=\"cds--pagination__left\">\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 70px\"></p>\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 35px\"></p>\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 105px\"></p>\n\t\t</div>\n\n\t\t<div *ngIf=\"!skeleton\" class=\"cds--pagination__left\">\n\t\t\t<ng-container *ngIf=\"showPageInput\">\n\t\t\t\t<label class=\"cds--pagination__text\" [for]=\"itemsPerPageSelectId\">\n\t\t\t\t\t{{itemsPerPageText.subject | async}}\n\t\t\t\t</label>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--select cds--select--inline cds--select__item-count\"\n\t\t\t\t\t[class.cds--select--disabled]=\"pageInputDisabled\">\n\t\t\t\t\t<select\n\t\t\t\t\t\t[id]=\"itemsPerPageSelectId\"\n\t\t\t\t\t\t[(ngModel)]=\"itemsPerPage\"\n\t\t\t\t\t\t[disabled]=\"pageInputDisabled\"\n\t\t\t\t\t\tclass=\"cds--select-input\">\n\t\t\t\t\t\t<option\n\t\t\t\t\t\t\tclass=\"cds--select-option\"\n\t\t\t\t\t\t\t*ngFor=\"let option of itemsPerPageOptions\"\n\t\t\t\t\t\t\t[value]=\"option\">\n\t\t\t\t\t\t\t\t{{ option }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<svg\n\t\t\t\t\t\tcdsIcon=\"chevron--down\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tstyle=\"display: inherit\"\n\t\t\t\t\t\tclass=\"cds--select__arrow\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t[attr.ariaLabel]=\"optionsListText.subject | async\">\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<span *ngIf=\"!pagesUnknown && totalDataLength <= 1\" class=\"cds--pagination__text cds--pagination__items-count\" [ngStyle]=\"{'margin-left': showPageInput ? null : 0}\">\n\t\t\t\t{{totalItemText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!pagesUnknown && totalDataLength > 1\" class=\"cds--pagination__text cds--pagination__items-count\" [ngStyle]=\"{'margin-left': showPageInput ? null : 0}\">\n\t\t\t\t{{totalItemsText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}\n\t\t\t</span>\n\t\t\t<span *ngIf=\"pagesUnknown\" class=\"cds--pagination__text cds--pagination__items-count\" [ngStyle]=\"{'margin-left': showPageInput ? null : 0}\">\n\t\t\t\t{{totalItemsUnknownText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex } | async}}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<!-- right skeleton div -->\n\t\t<div *ngIf=\"skeleton\" class=\"cds--pagination__right\">\n\t\t\t<p class=\"cds--skeleton__text\" style=\"width: 70px\"></p>\n\t\t</div>\n\n\t\t<div *ngIf=\"!skeleton\" class=\"cds--pagination__right\">\n\t\t\t<span *ngIf=\"pagesUnknown\" class=\"cds--pagination__text cds--pagination__page-text\">\n\t\t\t\t<ng-container *ngIf=\"!showPageInput\">{{currentPage}}</ng-container>\n\t\t\t\t{{pageText.subject | async}}\n\t\t\t</span>\n\t\t\t<ng-container *ngIf=\"showPageInput\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"cds--select cds--select--inline cds--select__page-number\"\n\t\t\t\t\t[class.cds--select--disabled]=\"pageInputDisabled\">\n\t\t\t\t\t<label [for]=\"currentPageSelectId\" class=\"cds--label cds--visually-hidden\">{{pageText.subject | async}}</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\t*ngIf=\"pageOptions.length > pageSelectThreshold\"\n\t\t\t\t\t\tstyle=\"padding-right: 1rem; margin-right: 1rem;\"\n\t\t\t\t\t\t[id]=\"currentPageSelectId\"\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t[max]=\"pageOptions.length\"\n\t\t\t\t\t\tclass=\"cds--select-input\"\n\t\t\t\t\t\t[(ngModel)]=\"currentPage\">\n\t\t\t\t\t<select\n\t\t\t\t\t\t*ngIf=\"pageOptions.length <= pageSelectThreshold\"\n\t\t\t\t\t\t[id]=\"currentPageSelectId\"\n\t\t\t\t\t\tclass=\"cds--select-input\"\n\t\t\t\t\t\t[disabled]=\"pageInputDisabled\"\n\t\t\t\t\t\t[(ngModel)]=\"currentPage\">\n\t\t\t\t\t\t<option *ngFor=\"let page of pageOptions; let i = index;\" class=\"cds--select-option\" [value]=\"i + 1\">{{i + 1}}</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<svg\n\t\t\t\t\t\t*ngIf=\"pageOptions.length <= pageSelectThreshold\"\n\t\t\t\t\t\tcdsIcon=\"chevron--down\"\n\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\tstyle=\"display: inherit;\"\n\t\t\t\t\t\tclass=\"cds--select__arrow\"\n\t\t\t\t\t\t[attr.ariaLabel]=\"optionsListText.subject | async\">\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\n\t\t\t<span *ngIf=\"!pagesUnknown && lastPage <= 1\" class=\"cds--pagination__text\">\n\t\t\t\t<ng-container *ngIf=\"!showPageInput\">{{currentPage}}</ng-container>\n\t\t\t\t{{ofLastPageText.subject | i18nReplace: {last: lastPage} | async}}\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!pagesUnknown && lastPage > 1\" class=\"cds--pagination__text\">\n\t\t\t\t<ng-container *ngIf=\"!showPageInput\">{{currentPage}}</ng-container>\n\t\t\t\t{{ofLastPagesText.subject | i18nReplace: {last: lastPage} | async}}\n\t\t\t</span>\n\t\t\t<div class=\"cds--pagination__control-buttons\">\n\t\t\t\t<button\n\t\t\t\t\tcdsButton=\"ghost\"\n\t\t\t\t\ticonOnly=\"true\"\n\t\t\t\t\tclass=\"cds--pagination__button cds--pagination__button--backward\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--pagination__button--no-index': currentPage <= 1 || disabled\n\t\t\t\t\t}\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t[attr.aria-label]=\"backwardText.subject | async\"\n\t\t\t\t\t(click)=\"selectPage.emit(previousPage)\"\n\t\t\t\t\t[disabled]=\"(currentPage <= 1 || disabled ? true : null)\">\n\t\t\t\t\t<svg cdsIcon=\"caret--left\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\t\t\t\t</button>\n\n\t\t\t\t<button\n\t\t\t\t\tcdsButton=\"ghost\"\n\t\t\t\t\ticonOnly=\"true\"\n\t\t\t\t\tclass=\"\n\t\t\t\t\t\tcds--pagination__button\n\t\t\t\t\t\tcds--pagination__button--forward\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--pagination__button--no-index': currentPage >= lastPage || disabled\n\t\t\t\t\t}\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t[attr.aria-label]=\"forwardText.subject | async\"\n\t\t\t\t\t(click)=\"selectPage.emit(nextPage)\"\n\t\t\t\t\t[disabled]=\"(currentPage >= lastPage || disabled ? true : null)\">\n\t\t\t\t\t<svg cdsIcon=\"caret--right\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t`\n})\nexport class Pagination {\n\tstatic paginationCounter = 0;\n\n\t/**\n\t * Set to `true` for a loading pagination component.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * `PaginationModel` with the information about pages you're controlling.\n\t */\n\t@Input() model: PaginationModel;\n\t/**\n \t * Set to `true` to disable the backward/forward buttons.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Set to `true` to disable the select box that changes the page.\n\t */\n\t@Input() pageInputDisabled = false;\n\t/**\n\t * Controls wether or not to show the page selects\n\t */\n\t@Input() showPageInput = true;\n\t/**\n\t * Set to `true` if the total number of items is unknown.\n\t */\n\t@Input() pagesUnknown = false;\n\t@Input() pageSelectThreshold = 1000;\n\n\t/**\n\t * Expects an object that contains some or all of:\n\t * ```\n\t * {\n\t *\t\t\"ITEMS_PER_PAGE\": \"Items per page:\",\n\t *\t\t\"OPEN_LIST_OF_OPTIONS\": \"Open list of options\",\n\t *\t\t\"BACKWARD\": \"Backward\",\n\t *\t\t\"FORWARD\": \"Forward\",\n\t *\t\t\"TOTAL_ITEMS_UNKNOWN\": \"{{start}}-{{end}} items\",\n\t *\t\t\"TOTAL_ITEMS\": \"{{start}}-{{end}} of {{total}} items\",\n\t *\t\t\"TOTAL_ITEM\": \"{{start}}-{{end}} of {{total}} item\",\n\t *\t\t\"OF_LAST_PAGES\": \"of {{last}} pages\",\n\t *\t\t\"OF_LAST_PAGE\": \"of {{last}} page\"\n\t * }\n\t * ```\n\t */\n\t@Input()\n\tset translations (value: PaginationTranslations) {\n\t\tconst valueWithDefaults = merge(this.i18n.getMultiple(\"PAGINATION\"), value);\n\t\tthis.itemsPerPageText.override(valueWithDefaults.ITEMS_PER_PAGE);\n\t\tthis.optionsListText.override(valueWithDefaults.OPEN_LIST_OF_OPTIONS);\n\t\tthis.backwardText.override(valueWithDefaults.BACKWARD);\n\t\tthis.forwardText.override(valueWithDefaults.FORWARD);\n\t\tthis.totalItemsText.override(valueWithDefaults.TOTAL_ITEMS);\n\t\tthis.totalItemText.override(valueWithDefaults.TOTAL_ITEM);\n\t\tthis.totalItemsUnknownText.override(valueWithDefaults.TOTAL_ITEMS_UNKNOWN);\n\t\tthis.pageText.override(valueWithDefaults.PAGE);\n\t\tthis.ofLastPagesText.override(valueWithDefaults.OF_LAST_PAGES);\n\t\tthis.ofLastPageText.override(valueWithDefaults.OF_LAST_PAGE);\n\t}\n\n\t/**\n\t * Options for items per page select\n\t *\n\t * A default array of options will be defined: [10, 20, 30, 40, 50]\n\t */\n\t@Input() itemsPerPageOptions: number[] = [10, 20, 30, 40, 50];\n\n\t/**\n\t * Emits the new page number.\n\t *\n\t * You should tie into this and update `model.currentPage` once the fresh\n\t * data is finally loaded.\n\t */\n\t@Output() selectPage = new EventEmitter<number>();\n\n\tget itemsPerPage() {\n\t\treturn this.model.pageLength;\n\t}\n\tset itemsPerPage(value) {\n\t\tthis.model.pageLength = Number(value);\n\t\tthis.currentPage = 1; // reset page\n\t}\n\n\tget currentPage() {\n\t\treturn this.model.currentPage;\n\t}\n\tset currentPage(value) {\n\t\tvalue = Number(value);\n\t\t// emits the value to allow the user to update current page\n\t\t// in the model once the page is loaded\n\t\tthis.selectPage.emit(value);\n\t}\n\n\tget totalDataLength() {\n\t\treturn this.model.totalDataLength;\n\t}\n\t/**\n\t * The last page number to display in the pagination view.\n\t */\n\tget lastPage(): number {\n\t\tconst last = Math.ceil(this.totalDataLength / this.itemsPerPage);\n\t\treturn last > 0 ? last : 1;\n\t}\n\n\tget startItemIndex() {\n\t\treturn this.endItemIndex > 0 ? (this.currentPage - 1) * this.itemsPerPage + 1 : 0;\n\t}\n\n\tget endItemIndex() {\n\t\tconst projectedEndItemIndex = this.currentPage * this.itemsPerPage;\n\n\t\treturn projectedEndItemIndex < this.totalDataLength ? projectedEndItemIndex : this.totalDataLength;\n\t}\n\n\t/**\n\t * The previous page number to navigate to, from the current page.\n\t */\n\tget previousPage(): number {\n\t\treturn this.currentPage <= 1 ? 1 : this.currentPage - 1;\n\t}\n\n\t/**\n\t * The next page number to navigate to, from the current page.\n\t */\n\tget nextPage(): number {\n\t\tconst lastPage = this.lastPage;\n\t\treturn this.currentPage >= lastPage ? lastPage : this.currentPage + 1;\n\t}\n\n\tget pageOptions() {\n\t\t/**\n\t\t * Calculate number of pages based on totalDataLength and itemsPerPage.\n\t\t * Even if totalDataLength is 0, numberOfPages should be always at least 1.\n\t\t * New array will be constructed only if number of pages changes.\n\t\t */\n\t\tconst numberOfPages = Math.max(Math.ceil(this.totalDataLength / this.itemsPerPage), 1);\n\t\tif (this._pageOptions.length !== numberOfPages) {\n\t\t\tthis._pageOptions = Array(numberOfPages);\n\t\t}\n\t\treturn this._pageOptions;\n\t}\n\n\titemsPerPageSelectId = `pagination-select-items-per-page-${Pagination.paginationCounter}`;\n\tcurrentPageSelectId = `pagination-select-current-page-${Pagination.paginationCounter}`;\n\n\titemsPerPageText = this.i18n.getOverridable(\"PAGINATION.ITEMS_PER_PAGE\");\n\toptionsListText = this.i18n.getOverridable(\"PAGINATION.OPEN_LIST_OF_OPTIONS\");\n\tbackwardText = this.i18n.getOverridable(\"PAGINATION.BACKWARD\");\n\tforwardText = this.i18n.getOverridable(\"PAGINATION.FORWARD\");\n\ttotalItemsText = this.i18n.getOverridable(\"PAGINATION.TOTAL_ITEMS\");\n\ttotalItemText = this.i18n.getOverridable(\"PAGINATION.TOTAL_ITEM\");\n\ttotalItemsUnknownText = this.i18n.getOverridable(\"PAGINATION.TOTAL_ITEMS_UNKNOWN\");\n\tpageText = this.i18n.getOverridable(\"PAGINATION.PAGE\");\n\tofLastPagesText = this.i18n.getOverridable(\"PAGINATION.OF_LAST_PAGES\");\n\tofLastPageText = this.i18n.getOverridable(\"PAGINATION.OF_LAST_PAGE\");\n\n\tprotected _pageOptions = [];\n\n\tconstructor(protected i18n: I18n, protected experimental: ExperimentalService) {\n\t\tPagination.paginationCounter++;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\n\n/**\n * Used to present a single navigation item in a pagination list\n *\n * * ```html\n * <cds-pagination-nav-item [page]=\"5\" [isActive]=\"false\" (click)=\"handleClick(value)\"></cds-pagination-nav-item>\n * ```\n */\n@Component({\n\tselector: \"cds-pagination-nav-item, ibm-pagination-nav-item\",\n\ttemplate: `\n\t\t<li class=\"cds--pagination-nav__list-item\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"cds--pagination-nav__page\"\n\t\t\t\t[ngClass]=\"{ 'cds--pagination-nav__page--active': isActive }\"\n\t\t\t\t(click)=\"click.emit(page)\">\n\t\t\t\t<span class=\"cds--pagination-nav__accessibility-label\">\n\t\t\t\t\t{{page}}\n\t\t\t\t</span>\n\t\t\t\t{{page}}\n\t\t\t</button>\n\t\t</li>\n\t`\n})\nexport class PaginationNavItem {\n\t/**\n\t * The page for this component to dipslay\n\t */\n\t@Input() page = 0;\n\n\t/**\n\t * The state for this component to dipslay\n\t */\n\t@Input() isActive = false;\n\n\t/**\n\t * Emits click event\n\t */\n\t@Output() click = new EventEmitter<number>();\n\n\tconstructor() {}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * Used to present a selection of pages when there is an overflow\n * in the pagination list\n *\n * * ```html\n * <cds-pagination-overflow [fromIndex]=\"5\" [count]=\"30\" (change)=\"handleChange(value)\"></cds-pagination-overflow>\n * ```\n */\n@Component({\n\tselector: \"cds-pagination-overflow, ibm-pagination-overflow\",\n\ttemplate: `\n\t\t<li class=\"cds--pagination-nav__list-item\" *ngIf=\"count > 1\">\n\t\t\t<div class=\"cds--pagination-nav__select\">\n\t\t\t<select\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\tclass=\"cds--pagination-nav__page cds--pagination-nav__page--select\"\n\t\t\t\t(change)=\"handleChange($event)\">\n\t\t\t\t<option value=\"\" hidden></option>\n\t\t\t\t<option\n\t\t\t\t*ngFor=\"let item of countAsArray; let i = index\">\n\t\t\t\t\t{{fromIndex + i + 1}}\n\t\t\t\t</option>\n\t\t\t</select>\n\t\t\t<div class=\"cds--pagination-nav__select-icon-wrapper\">\n\t\t\t\t<svg\n\t\t\t\t\tcdsIcon=\"overflow-menu--horizontal\"\n\t\t\t\t\tsize=\"16\"\n\t\t\t\t\tstyle=\"display: inherit\"\n\t\t\t\t\tclass=\"cds--pagination-nav__select-icon\">\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t\t</div>\n\t\t</li>\n\t\t<cds-pagination-nav-item *ngIf=\"count === 1\" [page]=\"fromIndex + 1\"></cds-pagination-nav-item>\n\t`\n})\nexport class PaginationOverflow {\n\t/**\n\t * The page for this component to dipslay\n\t */\n\t@Input() fromIndex: number;\n\n\t@Input() count: number;\n\n\t@Input() ariaLabel: string = this.i18n.get().PAGINATION.SELECT_ARIA;\n\n\t/**\n\t * Emits click event\n\t */\n\t@Output() change = new EventEmitter<number>();\n\n\tget countAsArray() {\n\t\treturn [...Array(this.count)];\n\t}\n\n\tconstructor(protected i18n: I18n) {}\n\n\thandleChange(event) {\n\t\tthis.change.emit(+event.target.value);\n\t\tevent.target.value = \"\";\n\t}\n}\n","import { PaginationModel } from \"../pagination-model.class\";\nimport {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding\n} from \"@angular/core\";\n\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { ExperimentalService } from \"carbon-components-angular/experimental\";\nimport { merge } from \"carbon-components-angular/utils\";\nimport { range } from \"carbon-components-angular/common\";\n\nexport interface PaginationNavTranslations {\n\tNEXT: string;\n\tPREVIOUS: string;\n}\n\n/**\n * Use pagination when you have multiple pages of data to handle. Get started with importing the module:\n *\n * ```typescript\n * import { PaginationModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-pagination-nav [model]=\"model\" (selectPage)=\"selectPage($event)\"></cds-pagination-nav>\n * ```\n *\n * In your `selectPage()` method set the `model.currentPage` to selected page, _after_\n * you load the page.\n *\n * ```typescript\n * selectPage(page) {\n * \t// ... your code to load the page goes here\n *\n * \tthis.model.currentPage = page;\n *\n * \t// ... anything you want to do after page selection changes goes here\n * }\n * ```\n *\n * [See demo](../../?path=/story/components-pagination-nav--basic)\n */\n@Component({\n\tselector: \"cds-pagination-nav, ibm-pagination-navm\",\n\ttemplate: `\n\t<div>\n\t\t<div class=\"cds--pagination-nav\">\n\t\t\t<ul class=\"cds--pagination-nav__list\">\n\t\t\t\t<li class=\"cds--pagination-nav__list-item\">\n\t\t\t\t\t<cds-icon-button\n\t\t\t\t\t\tkind=\"ghost\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t(click)=\"jumpToPrevious()\"\n\t\t\t\t\t\t[disabled]=\"leftArrowDisabled\"\n\t\t\t\t\t\t[description]=\"previousItemText.subject | async\">\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\tcdsIcon=\"caret--left\"\n\t\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\t\tclass=\"cds--btn__icon\">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</cds-icon-button>\n\t\t\t\t</li>\n\t\t\t\t<cds-pagination-nav-item\n\t\t\t\t\t*ngIf=\"this.numOfItemsToShow >= 5 || (this.numOfItemsToShow <= 4 && currentPage <= 1)\"\n\t\t\t\t\tpage=\"1\"\n\t\t\t\t\t(click)=\"currentPage = 1\"\n\t\t\t\t\t[isActive]=\"currentPage == 1\">\n\t\t\t\t</cds-pagination-nav-item>\n\t\t\t\t<cds-pagination-overflow\n\t\t\t\t\t*ngIf=\"frontCuts\"\n\t\t\t\t\t[count]=\"frontCuts\"\n\t\t\t\t\t[fromIndex]=\"startOffset\"\n\t\t\t\t\t(change)=\"handleOverflowSelection($event)\">\n\t\t\t\t</cds-pagination-overflow>\n\t\t\t\t<cds-pagination-nav-item\n\t\t\t\t\t*ngFor=\"let page of getPages();\"\n\t\t\t\t\t[page]=\"page\"\n\t\t\t\t\t(click)=\"currentPage = page\"\n\t\t\t\t\t[isActive]=\"currentPage == page\">\n\t\t\t\t</cds-pagination-nav-item>\n\t\t\t\t<cds-pagination-overflow\n\t\t\t\t\t*ngIf=\"backCuts\"\n\t\t\t\t\t[count]=\"backCuts\"\n\t\t\t\t\t[fromIndex]=\"totalNumbersArray.length - backCuts - 1\"\n\t\t\t\t\t(change)=\"handleOverflowSelection($event)\">\n\t\t\t\t</cds-pagination-overflow>\n\t\t\t\t<cds-pagination-nav-item\n\t\t\t\t\t*ngIf=\"totalDataLength > 1\"\n\t\t\t\t\t[page]=\"totalNumbersArray.length\"\n\t\t\t\t\t(click)=\"currentPage = totalNumbersArray.length\"\n\t\t\t\t\t[isActive]=\"currentPage == totalNumbersArray.length\">\n\t\t\t\t</cds-pagination-nav-item>\n\t\t\t\t<li class=\"cds--pagination-nav__list-item\">\n\t\t\t\t\t<cds-icon-button\n\t\t\t\t\t\tkind=\"ghost\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t(click)=\"jumpToNext()\"\n\t\t\t\t\t\t[disabled]=\"rightArrowDisabled\"\n\t\t\t\t\t\t[description]=\"nextItemText.subject | async\">\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\tcdsIcon=\"caret--right\"\n\t\t\t\t\t\t\tsize=\"16\"\n\t\t\t\t\t\t\tclass=\"cds--btn__icon\">\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</cds-icon-button>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\t`\n})\nexport class PaginationNav {\n\tstatic paginationCounter = 0;\n\t/**\n\t * `PaginationNavModel` with the information about pages you're controlling.\n\t */\n\t@Input() model: PaginationModel;\n\t/**\n\t * Set to `true` to disable the backward/forward buttons.\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Number of items to show in pagination. Minimum is 4.\n\t */\n\t@Input() numOfItemsToShow = 4;\n\n\t/**\n\t * Expects an object that contains some or all of:\n\t * ```\n\t * {\n\t *\t\t\"NEXT\": \"Next\",\n\t *\t\t\"PREVIOUS\": \"Previous\",\n\t * }\n\t * ```\n\t */\n\t@Input()\n\tset translations(value: PaginationNavTranslations) {\n\t\tconst valueWithDefaults = merge(this.i18n.getMultiple(\"PAGINATION\"), value);\n\t\tthis.nextItemText.override(valueWithDefaults.NEXT);\n\t\tthis.previousItemText.override(valueWithDefaults.PREVIOUS);\n\t}\n\n\t/**\n\t * Sets the pagination nav size\n\t */\n\t@Input() size: \"sm\" | \"md\" | \"lg\" = \"lg\";\n\n\t// Size\n\t@HostBinding(\"class.cds--layout--size-sm\") get smallLayoutSize() {\n\t\treturn this.size === \"sm\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-md\") get mediumLayoutSize() {\n\t\treturn this.size === \"md\";\n\t}\n\t@HostBinding(\"class.cds--layout--size-lg\") get largeLayoutSize() {\n\t\treturn this.size === \"lg\";\n\t}\n\n\t/**\n\t * Emits the new page number.\n\t *\n\t * You should tie into this and update `model.currentPage` once the fresh\n\t * data is finally loaded.\n\t */\n\t@Output() selectPage = new EventEmitter<number>();\n\n\tget totalNumbersArray() {\n\t\treturn range(this.totalDataLength + 1, 1);\n\t}\n\n\tget currentPage() {\n\t\treturn this.model.currentPage;\n\t}\n\n\tset currentPage(value) {\n\t\tvalue = Number(value);\n\t\t// emits the value to allow the user to update current page\n\t\t// in the model once the page is loaded\n\t\tthis.selectPage.emit(value);\n\t}\n\n\tget totalDataLength() {\n\t\treturn this.model.totalDataLength;\n\t}\n\n\tget startOffset() {\n\t\treturn this.numOfItemsToShow <= 4 && this.currentPage > 1 ? 0 : 1;\n\t}\n\n\tget frontCuts() {\n\t\tconst cuts = this.getCuts();\n\t\treturn cuts.front;\n\t}\n\n\tget backCuts() {\n\t\tconst cuts = this.getCuts();\n\t\treturn cuts.back;\n\t}\n\n\tget leftArrowDisabled() {\n\t\treturn this.disabled || this.currentPage === 1;\n\t}\n\n\tget rightArrowDisabled() {\n\t\treturn this.disabled || this.currentPage === this.totalDataLength;\n\t}\n\n\tnextItemText = this.i18n.getOverridable(\"PAGINATION.NEXT\");\n\tpreviousItemText = this.i18n.getOverridable(\"PAGINATION.PREVIOUS\");\n\n\tconstructor(protected i18n: I18n, protected experimental: ExperimentalService) {\n\t\tPaginationNav.paginationCounter++;\n\t}\n\n\thandleOverflowSelection(page) {\n\t\tif (typeof page === \"number\") {\n\t\t\tthis.currentPage = page;\n\t\t}\n\t}\n\n\tpublic jumpToNext() {\n\t\tthis.currentPage = this.currentPage < this.totalDataLength ? this.currentPage + 1 : this.totalDataLength;\n\t}\n\n\tpublic jumpToPrevious() {\n\t\tthis.currentPage = this.currentPage > 1 ? this.currentPage - 1 : 1;\n\t}\n\n\tpublic getPages() {\n\t\tif (this.totalDataLength <= 1) {\n\t\t\treturn null;\n\t\t}\n\t\tconst cuts = this.getCuts();\n\t\treturn this.totalNumbersArray.slice(this.startOffset + cuts.front, (1 + cuts.back) * -1);\n\t}\n\n\tprivate getCuts(splitPoint = null) {\n\t\tconst page = this.currentPage - 1;\n\t\tconst totalItems = this.totalDataLength;\n\t\tconst itemsThatFit = this.numOfItemsToShow;\n\n\t\tif (itemsThatFit >= totalItems) {\n\t\t\treturn {\n\t\t\t\tfront: 0,\n\t\t\t\tback: 0\n\t\t\t};\n\t\t}\n\t\tconst split = splitPoint || Math.ceil(itemsThatFit / 2) - 1;\n\t\tlet frontHidden = page + 1 - split;\n\t\tlet backHidden = totalItems - page - (itemsThatFit - split) + 1;\n\n\t\tif (frontHidden <= 1) {\n\t\t\tbackHidden -= frontHidden <= 0 ? Math.abs(frontHidden) + 1 : 0;\n\t\t\tfrontHidden = 0;\n\t\t}\n\t\tif (backHidden <= 1) {\n\t\t\tfrontHidden -= backHidden <= 0 ? Math.abs(backHidden) + 1 : 0;\n\t\t\tbackHidden = 0;\n\t\t}\n\t\treturn {\n\t\t\tfront: frontHidden,\n\t\t\tback: backHidden\n\t\t};\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { Pagination } from \"./pagination.component\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { PaginationNav } from \"./pagination-nav/pagination-nav.component\";\nimport { PaginationNavItem } from \"./pagination-nav/pagination-item.component\";\nimport { PaginationOverflow } from \"./pagination-nav/pagination-overflow.component\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { ButtonModule } from \"carbon-components-angular/forms\";\n\n@NgModule({\n\tdeclarations: [\n\t\tPagination,\n\t\tPaginationNav,\n\t\tPaginationNavItem,\n\t\tPaginationOverflow\n\t],\n\texports: [\n\t\tPagination,\n\t\tPaginationNav,\n\t\tPaginationNavItem,\n\t\tPaginationOverflow\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tI18nModule,\n\t\tExperimentalModule,\n\t\tIconModule,\n\t\tButtonModule\n\t]\n})\nexport class PaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5","i1","i2","i3","i4","i5.PaginationNavItem","i6.PaginationNavItem","i7.PaginationOverflow"],"mappings":"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"}