ui_bibz 3.0.13 → 4.0.0.beta4

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 (300) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -3
  3. data/.github/workflows/linter.yml +13 -12
  4. data/.overcommit.yml +6 -0
  5. data/.rubocop.yml +6 -0
  6. data/.ruby-version +1 -1
  7. data/Gemfile +19 -12
  8. data/Gemfile.lock +219 -148
  9. data/app/assets/config/ui_bibz.js +14 -0
  10. data/app/assets/javascripts/controllers/combobox_controller.js +37 -0
  11. data/app/assets/javascripts/forms/formula.js +82 -0
  12. data/app/assets/javascripts/forms/input-connected.js +132 -0
  13. data/app/assets/javascripts/forms/jquery.multi-select-extend.js +52 -0
  14. data/app/assets/javascripts/forms.js +160 -0
  15. data/app/assets/javascripts/interfaces.js +56 -0
  16. data/app/assets/javascripts/tables.js +49 -0
  17. data/app/assets/javascripts/ui_bibz_js.js +37 -0
  18. data/app/assets/stylesheets/navigations/_nav.sass +2 -0
  19. data/app/assets/stylesheets/navigations/_navbar.sass +12 -0
  20. data/app/assets/stylesheets/navigations/_progress_bar.sass +2 -0
  21. data/app/assets/stylesheets/navigations/_toolbar.sass +3 -0
  22. data/app/assets/stylesheets/sass/_boxes.sass +1 -0
  23. data/app/assets/stylesheets/sass/_containers.sass +2 -0
  24. data/app/assets/stylesheets/sass/_fixes.sass +2 -0
  25. data/app/assets/stylesheets/sass/_forms.sass +9 -0
  26. data/app/assets/stylesheets/sass/_navigations.sass +4 -0
  27. data/app/assets/stylesheets/sass/_notifications.sass +4 -0
  28. data/app/assets/stylesheets/sass/_tables.sass +2 -0
  29. data/app/assets/stylesheets/sass/_variables_mixins_functions.sass +3 -0
  30. data/app/assets/stylesheets/sass/boxes/_card.sass +4 -0
  31. data/app/assets/stylesheets/sass/containers/_panel.scss +330 -0
  32. data/app/assets/stylesheets/sass/forms/_bootstrap_select.sass +5 -0
  33. data/app/assets/stylesheets/sass/forms/_button.sass +3 -0
  34. data/app/assets/stylesheets/sass/forms/_combobox.sass +32 -0
  35. data/app/assets/stylesheets/sass/forms/_date_picker.sass +3 -0
  36. data/app/assets/stylesheets/sass/forms/_form_check.sass +10 -0
  37. data/app/assets/stylesheets/sass/forms/_formula_field.sass +17 -0
  38. data/app/assets/stylesheets/sass/forms/_multiselect.sass +44 -0
  39. data/app/assets/stylesheets/sass/forms/_range.sass +44 -0
  40. data/app/assets/stylesheets/sass/forms/_slider.sass +136 -0
  41. data/app/assets/stylesheets/sass/forms/_surround_field.sass +25 -0
  42. data/app/assets/stylesheets/sass/notifications/_badge.sass +5 -0
  43. data/app/assets/stylesheets/sass/notifications/_glyph.sass +3 -0
  44. data/app/assets/stylesheets/sass/notifications/_star.sass +2 -0
  45. data/app/assets/stylesheets/sass/notifications/_toast.sass +3 -0
  46. data/app/assets/stylesheets/sass/tables/_table.sass +39 -0
  47. data/app/assets/stylesheets/sass/tables/_table_card.sass +39 -0
  48. data/app/assets/stylesheets/ui_bibz.sass +26 -0
  49. data/bin/test +3 -5
  50. data/config/importmap.rb +21 -0
  51. data/config/initializers/assets.rb +5 -0
  52. data/config/initializers/will_paginate.rb +1 -3
  53. data/lib/ui_bibz/builders/data_html_options_builder.rb +118 -0
  54. data/lib/ui_bibz/builders/html_classes_builder.rb +89 -0
  55. data/lib/ui_bibz/builders/html_options_builder.rb +22 -0
  56. data/lib/ui_bibz/factory_methods/component_initialize_factory_method.rb +33 -0
  57. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +12 -12
  58. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +58 -50
  59. data/lib/ui_bibz/helpers/ui/core/icons_helper.rb +6 -6
  60. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +2 -2
  61. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +2 -2
  62. data/lib/ui_bibz/helpers/ui/core/navigations_helper.rb +12 -12
  63. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +4 -4
  64. data/lib/ui_bibz/helpers/ui/core/windows_helper.rb +10 -2
  65. data/lib/ui_bibz/helpers/ui/ux_helper.rb +2 -2
  66. data/lib/ui_bibz/helpers/utils_helper.rb +2 -2
  67. data/lib/ui_bibz/infos.rb +3 -3
  68. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +12 -12
  69. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +1 -1
  70. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_combobox_field_input.rb +15 -0
  71. data/lib/ui_bibz/rails/engine.rb +21 -4
  72. data/lib/ui_bibz/strategies/component_initialize_abstract_strategy.rb +27 -0
  73. data/lib/ui_bibz/strategies/component_initialize_block_strategy.rb +31 -0
  74. data/lib/ui_bibz/strategies/component_initialize_hash_strategy.rb +18 -0
  75. data/lib/ui_bibz/strategies/component_initialize_standard_strategy.rb +18 -0
  76. data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +4 -4
  77. data/lib/ui_bibz/ui/concerns/notification_concern.rb +1 -1
  78. data/lib/ui_bibz/ui/core/boxes/card.rb +1 -1
  79. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +4 -4
  80. data/lib/ui_bibz/ui/core/boxes/card_column.rb +1 -1
  81. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +1 -1
  82. data/lib/ui_bibz/ui/core/boxes/card_grid.rb +0 -3
  83. data/lib/ui_bibz/ui/core/boxes/card_group.rb +1 -1
  84. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +9 -9
  85. data/lib/ui_bibz/ui/core/boxes/components/card_col.rb +2 -2
  86. data/lib/ui_bibz/ui/core/boxes/components/card_list_group.rb +1 -1
  87. data/lib/ui_bibz/ui/core/boxes/components/card_row.rb +1 -1
  88. data/lib/ui_bibz/ui/core/component.rb +13 -62
  89. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +3 -1
  90. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +11 -11
  91. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +7 -7
  92. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +2 -2
  93. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +5 -6
  94. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +1 -1
  95. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +15 -15
  96. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_link.rb +1 -1
  97. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +5 -5
  98. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +1 -1
  99. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +10 -10
  100. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +2 -2
  101. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +32 -32
  102. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +7 -8
  103. data/lib/ui_bibz/ui/core/forms/texts/combobox_field.rb +96 -0
  104. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +1 -1
  105. data/lib/ui_bibz/ui/core/icons/glyph.rb +4 -3
  106. data/lib/ui_bibz/ui/core/layouts/row.rb +2 -2
  107. data/lib/ui_bibz/ui/core/lists/components/list.rb +4 -4
  108. data/lib/ui_bibz/ui/core/lists/list_group.rb +1 -1
  109. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +6 -4
  110. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +1 -2
  111. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +6 -5
  112. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +2 -2
  113. data/lib/ui_bibz/ui/core/navigations/nav.rb +10 -6
  114. data/lib/ui_bibz/ui/core/navigations/navbar.rb +21 -19
  115. data/lib/ui_bibz/ui/core/navigations/pagination.rb +3 -3
  116. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +5 -5
  117. data/lib/ui_bibz/ui/core/notifications/alert.rb +4 -5
  118. data/lib/ui_bibz/ui/core/notifications/badge.rb +6 -2
  119. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +1 -1
  120. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +3 -3
  121. data/lib/ui_bibz/ui/core/notifications/toast.rb +8 -9
  122. data/lib/ui_bibz/ui/core/windows/components/offcanvas_body.rb +47 -0
  123. data/lib/ui_bibz/ui/core/windows/components/offcanvas_header.rb +54 -0
  124. data/lib/ui_bibz/ui/core/windows/modal.rb +9 -9
  125. data/lib/ui_bibz/ui/core/windows/offcanvas.rb +84 -0
  126. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +4 -20
  127. data/lib/ui_bibz/ui/extensions/core/component/klass_extension.rb +11 -19
  128. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +1 -1
  129. data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +3 -3
  130. data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +3 -3
  131. data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +3 -3
  132. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +4 -4
  133. data/lib/ui_bibz/ui/ux/containers/panel.rb +13 -13
  134. data/lib/ui_bibz/ui/ux/tables/components/actions.rb +4 -4
  135. data/lib/ui_bibz/ui/ux/tables/components/column.rb +1 -1
  136. data/lib/ui_bibz/ui/ux/tables/components/columns.rb +2 -2
  137. data/lib/ui_bibz/ui/ux/tables/extensions/sortable.rb +1 -1
  138. data/lib/ui_bibz/ui/ux/tables/table.rb +5 -5
  139. data/lib/ui_bibz/ui/ux/tables/table_card.rb +6 -6
  140. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +1 -1
  141. data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +3 -3
  142. data/lib/ui_bibz/utils/screwdriver.rb +1 -1
  143. data/lib/ui_bibz/view_objects/glyph_component_view_object.rb +38 -0
  144. data/lib/ui_bibz.rb +26 -0
  145. data/test/builders/data_html_classes_builder_test.rb +37 -0
  146. data/test/builders/html_classes_builder_test.rb +76 -0
  147. data/test/dummy/Rakefile +1 -1
  148. data/test/dummy/app/assets/stylesheets/application.css +1 -15
  149. data/test/dummy/app/channels/application_cable/channel.rb +6 -0
  150. data/test/dummy/app/channels/application_cable/connection.rb +6 -0
  151. data/test/dummy/app/jobs/application_job.rb +9 -0
  152. data/test/dummy/app/mailers/application_mailer.rb +6 -0
  153. data/test/dummy/app/views/layouts/application.html.erb +10 -12
  154. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  155. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  156. data/test/dummy/bin/rails +3 -3
  157. data/test/dummy/bin/rake +2 -2
  158. data/test/dummy/bin/setup +12 -12
  159. data/test/dummy/config/application.rb +13 -17
  160. data/test/dummy/config/boot.rb +3 -3
  161. data/test/dummy/config/database.yml +2 -2
  162. data/test/dummy/config/environment.rb +1 -1
  163. data/test/dummy/config/environments/development.rb +21 -16
  164. data/test/dummy/config/environments/production.rb +16 -41
  165. data/test/dummy/config/environments/test.rb +19 -8
  166. data/test/dummy/config/importmap.rb +11 -0
  167. data/test/dummy/config/initializers/content_security_policy.rb +21 -24
  168. data/test/dummy/config/initializers/filter_parameter_logging.rb +6 -2
  169. data/test/dummy/config/initializers/inflections.rb +4 -4
  170. data/test/dummy/config/initializers/permissions_policy.rb +12 -0
  171. data/test/dummy/config/locales/en.yml +13 -3
  172. data/test/dummy/config/puma.rb +7 -2
  173. data/test/dummy/config/storage.yml +5 -5
  174. data/test/dummy/config.ru +2 -1
  175. data/test/simple_form_test.rb +24 -24
  176. data/test/ui/core/boxes/card_test.rb +2 -1
  177. data/test/ui/core/component_test.rb +2 -2
  178. data/test/ui/core/forms/buttons/button_group_test.rb +1 -1
  179. data/test/ui/core/forms/buttons/button_link_test.rb +1 -1
  180. data/test/ui/core/forms/buttons/button_refresh_test.rb +1 -1
  181. data/test/ui/core/forms/buttons/button_test.rb +2 -2
  182. data/test/ui/core/forms/choices/box_switch_field_test.rb +10 -10
  183. data/test/ui/core/forms/choices/checkbox_field_test.rb +1 -1
  184. data/test/ui/core/forms/choices/choice_group_test.rb +1 -1
  185. data/test/ui/core/forms/dropdowns/dropdown_test.rb +1 -1
  186. data/test/ui/core/forms/numbers/formula_field_test.rb +1 -1
  187. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +2 -2
  188. data/test/ui/core/forms/selects/select_field_test.rb +1 -1
  189. data/test/ui/core/forms/surrounds/surround_field_test.rb +4 -4
  190. data/test/ui/core/forms/texts/auto_complete_field_test.rb +2 -2
  191. data/test/ui/core/forms/texts/combobox_field_test.rb +19 -0
  192. data/test/ui/core/icons/glyph_test.rb +8 -4
  193. data/test/ui/core/icons/star_test.rb +12 -6
  194. data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
  195. data/test/ui/core/navigations/link_test.rb +1 -1
  196. data/test/ui/core/navigations/nav_test.rb +11 -0
  197. data/test/ui/core/notifications/alert_test.rb +1 -1
  198. data/test/ui/core/notifications/badge_test.rb +3 -3
  199. data/test/ui/core/notifications/popover_test.rb +4 -4
  200. data/test/ui/core/notifications/spinner_test.rb +1 -1
  201. data/test/ui/core/notifications/toast_test.rb +1 -1
  202. data/test/ui/core/notifications/tooltip_test.rb +4 -4
  203. data/test/ui/core/windows/offcanvas_test.rb +27 -0
  204. data/test/ui/ux/containers/panel_test.rb +1 -1
  205. data/test/ui/ux/tables/table_test.rb +3 -3
  206. data/test/view_objects/glyph_component_view_object_test.rb +17 -0
  207. data/ui_bibz.gemspec +6 -20
  208. data/vendor/assets/fonts/fontawesome/fa-brands-400.ttf +0 -0
  209. data/vendor/assets/fonts/fontawesome/fa-brands-400.woff2 +0 -0
  210. data/vendor/assets/fonts/fontawesome/fa-regular-400.ttf +0 -0
  211. data/vendor/assets/fonts/fontawesome/fa-regular-400.woff2 +0 -0
  212. data/vendor/assets/fonts/fontawesome/fa-solid-900.ttf +0 -0
  213. data/vendor/assets/fonts/fontawesome/fa-solid-900.woff2 +0 -0
  214. data/vendor/assets/fonts/fontawesome/fa-v4compatibility.ttf +0 -0
  215. data/vendor/assets/fonts/fontawesome/fa-v4compatibility.woff2 +0 -0
  216. data/vendor/assets/javascripts/bootstrap-markdown.js +1 -1555
  217. data/vendor/assets/javascripts/bootstrap-multiselect.min.js +40 -1176
  218. data/vendor/assets/javascripts/bootstrap-switch.min.js +9 -21
  219. data/vendor/assets/javascripts/bs-custom-file-input.min.js +0 -1
  220. data/vendor/assets/javascripts/debounce.js +51 -0
  221. data/vendor/assets/javascripts/fontawesome/all.js +5977 -0
  222. data/vendor/assets/javascripts/fontawesome/all.min.js +6 -0
  223. data/vendor/assets/javascripts/fontawesome/brands.js +749 -0
  224. data/vendor/assets/javascripts/fontawesome/brands.min.js +6 -0
  225. data/vendor/assets/javascripts/fontawesome/conflict-detection.js +1138 -0
  226. data/vendor/assets/javascripts/fontawesome/conflict-detection.min.js +6 -0
  227. data/vendor/assets/javascripts/fontawesome/fontawesome.js +3126 -0
  228. data/vendor/assets/javascripts/fontawesome/fontawesome.min.js +6 -0
  229. data/vendor/assets/javascripts/fontawesome/regular.js +445 -0
  230. data/vendor/assets/javascripts/fontawesome/regular.min.js +6 -0
  231. data/vendor/assets/javascripts/fontawesome/solid.js +1672 -0
  232. data/vendor/assets/javascripts/fontawesome/solid.min.js +6 -0
  233. data/vendor/assets/javascripts/fontawesome/v4-shims.js +225 -0
  234. data/vendor/assets/javascripts/fontawesome/v4-shims.min.js +6 -0
  235. data/vendor/assets/javascripts/fuzzysort.js +562 -0
  236. data/vendor/assets/javascripts/jquery-3.7.0.min.js +2 -0
  237. data/vendor/assets/javascripts/jquery.multi-select.min.js +725 -1
  238. data/vendor/assets/stylesheets/bootstrap-multiselect.sass +115 -0
  239. data/vendor/assets/stylesheets/bootstrap-switch.scss +211 -0
  240. data/vendor/assets/stylesheets/fontawesome/_animated.scss +142 -9
  241. data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +13 -13
  242. data/vendor/assets/stylesheets/fontawesome/_core.scss +28 -6
  243. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +2 -1
  244. data/vendor/assets/stylesheets/fontawesome/_functions.scss +57 -0
  245. data/vendor/assets/stylesheets/fontawesome/_icons.scss +7 -1438
  246. data/vendor/assets/stylesheets/fontawesome/_list.scss +4 -4
  247. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +53 -34
  248. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +25 -18
  249. data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +12 -3
  250. data/vendor/assets/stylesheets/fontawesome/_shims.scss +640 -664
  251. data/vendor/assets/stylesheets/fontawesome/_sizing.scss +16 -0
  252. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +5 -4
  253. data/vendor/assets/stylesheets/fontawesome/_variables.scss +4896 -1393
  254. data/vendor/assets/stylesheets/fontawesome/brands.scss +17 -10
  255. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +7 -2
  256. data/vendor/assets/stylesheets/fontawesome/regular.scss +13 -10
  257. data/vendor/assets/stylesheets/fontawesome/solid.scss +13 -11
  258. data/vendor/assets/stylesheets/fontawesome/v4-shims.scss +6 -1
  259. data/vendor/assets/stylesheets/multi-select.css +92 -0
  260. metadata +126 -348
  261. data/.gitlab-ci.yml +0 -17
  262. data/.travis.yml +0 -24
  263. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +0 -70
  264. data/structure.md +0 -68
  265. data/test/dummy/README.rdoc +0 -28
  266. data/test/dummy/app/assets/javascripts/application.js +0 -13
  267. data/test/dummy/app/javascripts/packs/index.js +0 -3
  268. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -9
  269. data/test/dummy/config/initializers/assets.rb +0 -14
  270. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -8
  271. data/test/dummy/config/initializers/cookies_serializer.rb +0 -7
  272. data/test/dummy/config/initializers/mime_types.rb +0 -5
  273. data/test/dummy/config/initializers/session_store.rb +0 -5
  274. data/test/dummy/config/initializers/ui_bibz.rb +0 -5
  275. data/test/dummy/config/initializers/wrap_parameters.rb +0 -16
  276. data/test/dummy/config/secrets.yml +0 -22
  277. data/test/dummy/config/spring.rb +0 -8
  278. data/test/dummy/test/models/user_test.rb +0 -9
  279. data/vendor/assets/fonts/fa-brands-400.eot +0 -0
  280. data/vendor/assets/fonts/fa-brands-400.svg +0 -3570
  281. data/vendor/assets/fonts/fa-brands-400.ttf +0 -0
  282. data/vendor/assets/fonts/fa-brands-400.woff +0 -0
  283. data/vendor/assets/fonts/fa-brands-400.woff2 +0 -0
  284. data/vendor/assets/fonts/fa-regular-400.eot +0 -0
  285. data/vendor/assets/fonts/fa-regular-400.svg +0 -803
  286. data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
  287. data/vendor/assets/fonts/fa-regular-400.woff +0 -0
  288. data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
  289. data/vendor/assets/fonts/fa-solid-900.eot +0 -0
  290. data/vendor/assets/fonts/fa-solid-900.svg +0 -4938
  291. data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
  292. data/vendor/assets/fonts/fa-solid-900.woff +0 -0
  293. data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
  294. data/vendor/assets/javascripts/all.js +0 -4441
  295. data/vendor/assets/javascripts/all.min.js +0 -5
  296. data/vendor/assets/stylesheets/all.min.css +0 -5
  297. data/vendor/assets/stylesheets/fontawesome/_larger.scss +0 -23
  298. data/vendor/assets/stylesheets/svg-with-js.css +0 -5
  299. /data/{test/dummy/app/mailers/.keep → app/assets/stylesheets/sass/forms/_dropdown.sass} +0 -0
  300. /data/{test/dummy/app/views/users/index.html.erb → app/assets/stylesheets/sass/forms/_input_refresh_button.sass} +0 -0
@@ -0,0 +1,3126 @@
1
+ /*!
2
+ * Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ * Copyright 2023 Fonticons, Inc.
5
+ */
6
+ (function () {
7
+ 'use strict';
8
+
9
+ function ownKeys(object, enumerableOnly) {
10
+ var keys = Object.keys(object);
11
+
12
+ if (Object.getOwnPropertySymbols) {
13
+ var symbols = Object.getOwnPropertySymbols(object);
14
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
15
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
16
+ })), keys.push.apply(keys, symbols);
17
+ }
18
+
19
+ return keys;
20
+ }
21
+
22
+ function _objectSpread2(target) {
23
+ for (var i = 1; i < arguments.length; i++) {
24
+ var source = null != arguments[i] ? arguments[i] : {};
25
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
26
+ _defineProperty(target, key, source[key]);
27
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
28
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
29
+ });
30
+ }
31
+
32
+ return target;
33
+ }
34
+
35
+ function _typeof(obj) {
36
+ "@babel/helpers - typeof";
37
+
38
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
39
+ return typeof obj;
40
+ } : function (obj) {
41
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
42
+ }, _typeof(obj);
43
+ }
44
+
45
+ function _wrapRegExp() {
46
+ _wrapRegExp = function (re, groups) {
47
+ return new BabelRegExp(re, void 0, groups);
48
+ };
49
+
50
+ var _super = RegExp.prototype,
51
+ _groups = new WeakMap();
52
+
53
+ function BabelRegExp(re, flags, groups) {
54
+ var _this = new RegExp(re, flags);
55
+
56
+ return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);
57
+ }
58
+
59
+ function buildGroups(result, re) {
60
+ var g = _groups.get(re);
61
+
62
+ return Object.keys(g).reduce(function (groups, name) {
63
+ return groups[name] = result[g[name]], groups;
64
+ }, Object.create(null));
65
+ }
66
+
67
+ return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {
68
+ var result = _super.exec.call(this, str);
69
+
70
+ return result && (result.groups = buildGroups(result, this)), result;
71
+ }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
72
+ if ("string" == typeof substitution) {
73
+ var groups = _groups.get(this);
74
+
75
+ return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
76
+ return "$" + groups[name];
77
+ }));
78
+ }
79
+
80
+ if ("function" == typeof substitution) {
81
+ var _this = this;
82
+
83
+ return _super[Symbol.replace].call(this, str, function () {
84
+ var args = arguments;
85
+ return "object" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);
86
+ });
87
+ }
88
+
89
+ return _super[Symbol.replace].call(this, str, substitution);
90
+ }, _wrapRegExp.apply(this, arguments);
91
+ }
92
+
93
+ function _classCallCheck(instance, Constructor) {
94
+ if (!(instance instanceof Constructor)) {
95
+ throw new TypeError("Cannot call a class as a function");
96
+ }
97
+ }
98
+
99
+ function _defineProperties(target, props) {
100
+ for (var i = 0; i < props.length; i++) {
101
+ var descriptor = props[i];
102
+ descriptor.enumerable = descriptor.enumerable || false;
103
+ descriptor.configurable = true;
104
+ if ("value" in descriptor) descriptor.writable = true;
105
+ Object.defineProperty(target, descriptor.key, descriptor);
106
+ }
107
+ }
108
+
109
+ function _createClass(Constructor, protoProps, staticProps) {
110
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
111
+ if (staticProps) _defineProperties(Constructor, staticProps);
112
+ Object.defineProperty(Constructor, "prototype", {
113
+ writable: false
114
+ });
115
+ return Constructor;
116
+ }
117
+
118
+ function _defineProperty(obj, key, value) {
119
+ if (key in obj) {
120
+ Object.defineProperty(obj, key, {
121
+ value: value,
122
+ enumerable: true,
123
+ configurable: true,
124
+ writable: true
125
+ });
126
+ } else {
127
+ obj[key] = value;
128
+ }
129
+
130
+ return obj;
131
+ }
132
+
133
+ function _inherits(subClass, superClass) {
134
+ if (typeof superClass !== "function" && superClass !== null) {
135
+ throw new TypeError("Super expression must either be null or a function");
136
+ }
137
+
138
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
139
+ constructor: {
140
+ value: subClass,
141
+ writable: true,
142
+ configurable: true
143
+ }
144
+ });
145
+ Object.defineProperty(subClass, "prototype", {
146
+ writable: false
147
+ });
148
+ if (superClass) _setPrototypeOf(subClass, superClass);
149
+ }
150
+
151
+ function _setPrototypeOf(o, p) {
152
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
153
+ o.__proto__ = p;
154
+ return o;
155
+ };
156
+
157
+ return _setPrototypeOf(o, p);
158
+ }
159
+
160
+ function _slicedToArray(arr, i) {
161
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
162
+ }
163
+
164
+ function _toConsumableArray(arr) {
165
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
166
+ }
167
+
168
+ function _arrayWithoutHoles(arr) {
169
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
170
+ }
171
+
172
+ function _arrayWithHoles(arr) {
173
+ if (Array.isArray(arr)) return arr;
174
+ }
175
+
176
+ function _iterableToArray(iter) {
177
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
178
+ }
179
+
180
+ function _iterableToArrayLimit(arr, i) {
181
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
182
+
183
+ if (_i == null) return;
184
+ var _arr = [];
185
+ var _n = true;
186
+ var _d = false;
187
+
188
+ var _s, _e;
189
+
190
+ try {
191
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
192
+ _arr.push(_s.value);
193
+
194
+ if (i && _arr.length === i) break;
195
+ }
196
+ } catch (err) {
197
+ _d = true;
198
+ _e = err;
199
+ } finally {
200
+ try {
201
+ if (!_n && _i["return"] != null) _i["return"]();
202
+ } finally {
203
+ if (_d) throw _e;
204
+ }
205
+ }
206
+
207
+ return _arr;
208
+ }
209
+
210
+ function _unsupportedIterableToArray(o, minLen) {
211
+ if (!o) return;
212
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
213
+ var n = Object.prototype.toString.call(o).slice(8, -1);
214
+ if (n === "Object" && o.constructor) n = o.constructor.name;
215
+ if (n === "Map" || n === "Set") return Array.from(o);
216
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
217
+ }
218
+
219
+ function _arrayLikeToArray(arr, len) {
220
+ if (len == null || len > arr.length) len = arr.length;
221
+
222
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
223
+
224
+ return arr2;
225
+ }
226
+
227
+ function _nonIterableSpread() {
228
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
229
+ }
230
+
231
+ function _nonIterableRest() {
232
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
233
+ }
234
+
235
+ var noop = function noop() {};
236
+
237
+ var _WINDOW = {};
238
+ var _DOCUMENT = {};
239
+ var _MUTATION_OBSERVER = null;
240
+ var _PERFORMANCE = {
241
+ mark: noop,
242
+ measure: noop
243
+ };
244
+
245
+ try {
246
+ if (typeof window !== 'undefined') _WINDOW = window;
247
+ if (typeof document !== 'undefined') _DOCUMENT = document;
248
+ if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;
249
+ if (typeof performance !== 'undefined') _PERFORMANCE = performance;
250
+ } catch (e) {}
251
+
252
+ var _ref = _WINDOW.navigator || {},
253
+ _ref$userAgent = _ref.userAgent,
254
+ userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
255
+ var WINDOW = _WINDOW;
256
+ var DOCUMENT = _DOCUMENT;
257
+ var MUTATION_OBSERVER = _MUTATION_OBSERVER;
258
+ var PERFORMANCE = _PERFORMANCE;
259
+ var IS_BROWSER = !!WINDOW.document;
260
+ var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
261
+ var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
262
+
263
+ var _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;
264
+
265
+ var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
266
+ var UNITS_IN_GRID = 16;
267
+ var DEFAULT_CSS_PREFIX = 'fa';
268
+ var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';
269
+ var DATA_FA_I2SVG = 'data-fa-i2svg';
270
+ var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';
271
+ var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';
272
+ var DATA_PREFIX = 'data-prefix';
273
+ var DATA_ICON = 'data-icon';
274
+ var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';
275
+ var MUTATION_APPROACH_ASYNC = 'async';
276
+ var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];
277
+ var PRODUCTION = function () {
278
+ try {
279
+ return "production" === 'production';
280
+ } catch (e) {
281
+ return false;
282
+ }
283
+ }();
284
+ var FAMILY_CLASSIC = 'classic';
285
+ var FAMILY_SHARP = 'sharp';
286
+ var FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];
287
+
288
+ function familyProxy(obj) {
289
+ // Defaults to the classic family if family is not available
290
+ return new Proxy(obj, {
291
+ get: function get(target, prop) {
292
+ return prop in target ? target[prop] : target[FAMILY_CLASSIC];
293
+ }
294
+ });
295
+ }
296
+ var PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {
297
+ 'fa': 'solid',
298
+ 'fas': 'solid',
299
+ 'fa-solid ': 'solid',
300
+ 'far': 'regular',
301
+ 'fa-regular': 'regular',
302
+ 'fal': 'light',
303
+ 'fa-light': 'light',
304
+ 'fat': 'thin',
305
+ 'fa-thin': 'thin',
306
+ 'fad': 'duotone',
307
+ 'fa-duotone': 'duotone',
308
+ 'fab': 'brands',
309
+ 'fa-brands': 'brands',
310
+ 'fak': 'kit',
311
+ 'fa-kit': 'kit'
312
+ }), _defineProperty(_familyProxy, FAMILY_SHARP, {
313
+ 'fa': 'solid',
314
+ 'fass': 'solid',
315
+ 'fa-solid ': 'solid',
316
+ 'fasr': 'regular',
317
+ 'fa-regular': 'regular',
318
+ 'fasl': 'light',
319
+ 'fa-light': 'light'
320
+ }), _familyProxy));
321
+ var STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {
322
+ 'solid': 'fas',
323
+ 'regular': 'far',
324
+ 'light': 'fal',
325
+ 'thin': 'fat',
326
+ 'duotone': 'fad',
327
+ 'brands': 'fab',
328
+ 'kit': 'fak'
329
+ }), _defineProperty(_familyProxy2, FAMILY_SHARP, {
330
+ 'solid': 'fass',
331
+ 'regular': 'fasr',
332
+ 'light': 'fasl'
333
+ }), _familyProxy2));
334
+ var PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {
335
+ 'fab': 'fa-brands',
336
+ 'fad': 'fa-duotone',
337
+ 'fak': 'fa-kit',
338
+ 'fal': 'fa-light',
339
+ 'far': 'fa-regular',
340
+ 'fas': 'fa-solid ',
341
+ 'fat': 'fa-thin'
342
+ }), _defineProperty(_familyProxy3, FAMILY_SHARP, {
343
+ 'fass': 'fa-solid ',
344
+ 'fasr': 'fa-regular',
345
+ 'fasl': 'fa-light'
346
+ }), _familyProxy3));
347
+ var LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {
348
+ 'fa-brands': 'fab',
349
+ 'fa-duotone': 'fad',
350
+ 'fa-kit': 'fak',
351
+ 'fa-light': 'fal',
352
+ 'fa-regular': 'far',
353
+ 'fa-solid ': 'fas',
354
+ 'fa-thin': 'fat'
355
+ }), _defineProperty(_familyProxy4, FAMILY_SHARP, {
356
+ 'fa-solid ': 'fass',
357
+ 'fa-regular': 'fasr',
358
+ 'fa-light': 'fasl'
359
+ }), _familyProxy4));
360
+ var ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl)?[\-\ ]/; // eslint-disable-line no-useless-escape
361
+
362
+ var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';
363
+ var FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i;
364
+ var FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {
365
+ '900': 'fas',
366
+ '400': 'far',
367
+ 'normal': 'far',
368
+ '300': 'fal',
369
+ '100': 'fat'
370
+ }), _defineProperty(_familyProxy5, FAMILY_SHARP, {
371
+ '900': 'fass',
372
+ '400': 'fasr',
373
+ '300': 'fasl'
374
+ }), _familyProxy5));
375
+ var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
376
+ var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
377
+ var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];
378
+ var DUOTONE_CLASSES = {
379
+ GROUP: 'duotone-group',
380
+ SWAP_OPACITY: 'swap-opacity',
381
+ PRIMARY: 'primary',
382
+ SECONDARY: 'secondary'
383
+ };
384
+ var prefixes = new Set();
385
+ Object.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));
386
+ Object.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));
387
+ var RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {
388
+ return "".concat(n, "x");
389
+ })).concat(oneToTwenty.map(function (n) {
390
+ return "w-".concat(n);
391
+ }));
392
+
393
+ var initial = WINDOW.FontAwesomeConfig || {};
394
+
395
+ function getAttrConfig(attr) {
396
+ var element = DOCUMENT.querySelector('script[' + attr + ']');
397
+
398
+ if (element) {
399
+ return element.getAttribute(attr);
400
+ }
401
+ }
402
+
403
+ function coerce(val) {
404
+ // Getting an empty string will occur if the attribute is set on the HTML tag but without a value
405
+ // We'll assume that this is an indication that it should be toggled to true
406
+ if (val === '') return true;
407
+ if (val === 'false') return false;
408
+ if (val === 'true') return true;
409
+ return val;
410
+ }
411
+
412
+ if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {
413
+ var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
414
+ attrs.forEach(function (_ref) {
415
+ var _ref2 = _slicedToArray(_ref, 2),
416
+ attr = _ref2[0],
417
+ key = _ref2[1];
418
+
419
+ var val = coerce(getAttrConfig(attr));
420
+
421
+ if (val !== undefined && val !== null) {
422
+ initial[key] = val;
423
+ }
424
+ });
425
+ }
426
+
427
+ var _default = {
428
+ styleDefault: 'solid',
429
+ familyDefault: 'classic',
430
+ cssPrefix: DEFAULT_CSS_PREFIX,
431
+ replacementClass: DEFAULT_REPLACEMENT_CLASS,
432
+ autoReplaceSvg: true,
433
+ autoAddCss: true,
434
+ autoA11y: true,
435
+ searchPseudoElements: false,
436
+ observeMutations: true,
437
+ mutateApproach: 'async',
438
+ keepOriginalSource: true,
439
+ measurePerformance: false,
440
+ showMissingIcons: true
441
+ }; // familyPrefix is deprecated but we must still support it if present
442
+
443
+ if (initial.familyPrefix) {
444
+ initial.cssPrefix = initial.familyPrefix;
445
+ }
446
+
447
+ var _config = _objectSpread2(_objectSpread2({}, _default), initial);
448
+
449
+ if (!_config.autoReplaceSvg) _config.observeMutations = false;
450
+ var config = {};
451
+ Object.keys(_default).forEach(function (key) {
452
+ Object.defineProperty(config, key, {
453
+ enumerable: true,
454
+ set: function set(val) {
455
+ _config[key] = val;
456
+
457
+ _onChangeCb.forEach(function (cb) {
458
+ return cb(config);
459
+ });
460
+ },
461
+ get: function get() {
462
+ return _config[key];
463
+ }
464
+ });
465
+ }); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0
466
+
467
+ Object.defineProperty(config, 'familyPrefix', {
468
+ enumerable: true,
469
+ set: function set(val) {
470
+ _config.cssPrefix = val;
471
+
472
+ _onChangeCb.forEach(function (cb) {
473
+ return cb(config);
474
+ });
475
+ },
476
+ get: function get() {
477
+ return _config.cssPrefix;
478
+ }
479
+ });
480
+ WINDOW.FontAwesomeConfig = config;
481
+ var _onChangeCb = [];
482
+ function onChange(cb) {
483
+ _onChangeCb.push(cb);
484
+
485
+ return function () {
486
+ _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);
487
+ };
488
+ }
489
+
490
+ var d = UNITS_IN_GRID;
491
+ var meaninglessTransform = {
492
+ size: 16,
493
+ x: 0,
494
+ y: 0,
495
+ rotate: 0,
496
+ flipX: false,
497
+ flipY: false
498
+ };
499
+ function bunker(fn) {
500
+ try {
501
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
502
+ args[_key - 1] = arguments[_key];
503
+ }
504
+
505
+ fn.apply(void 0, args);
506
+ } catch (e) {
507
+ if (!PRODUCTION) {
508
+ throw e;
509
+ }
510
+ }
511
+ }
512
+ function insertCss(css) {
513
+ if (!css || !IS_DOM) {
514
+ return;
515
+ }
516
+
517
+ var style = DOCUMENT.createElement('style');
518
+ style.setAttribute('type', 'text/css');
519
+ style.innerHTML = css;
520
+ var headChildren = DOCUMENT.head.childNodes;
521
+ var beforeChild = null;
522
+
523
+ for (var i = headChildren.length - 1; i > -1; i--) {
524
+ var child = headChildren[i];
525
+ var tagName = (child.tagName || '').toUpperCase();
526
+
527
+ if (['STYLE', 'LINK'].indexOf(tagName) > -1) {
528
+ beforeChild = child;
529
+ }
530
+ }
531
+
532
+ DOCUMENT.head.insertBefore(style, beforeChild);
533
+ return css;
534
+ }
535
+ var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
536
+ function nextUniqueId() {
537
+ var size = 12;
538
+ var id = '';
539
+
540
+ while (size-- > 0) {
541
+ id += idPool[Math.random() * 62 | 0];
542
+ }
543
+
544
+ return id;
545
+ }
546
+ function toArray(obj) {
547
+ var array = [];
548
+
549
+ for (var i = (obj || []).length >>> 0; i--;) {
550
+ array[i] = obj[i];
551
+ }
552
+
553
+ return array;
554
+ }
555
+ function classArray(node) {
556
+ if (node.classList) {
557
+ return toArray(node.classList);
558
+ } else {
559
+ return (node.getAttribute('class') || '').split(' ').filter(function (i) {
560
+ return i;
561
+ });
562
+ }
563
+ }
564
+ function htmlEscape(str) {
565
+ return "".concat(str).replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
566
+ }
567
+ function joinAttributes(attributes) {
568
+ return Object.keys(attributes || {}).reduce(function (acc, attributeName) {
569
+ return acc + "".concat(attributeName, "=\"").concat(htmlEscape(attributes[attributeName]), "\" ");
570
+ }, '').trim();
571
+ }
572
+ function joinStyles(styles) {
573
+ return Object.keys(styles || {}).reduce(function (acc, styleName) {
574
+ return acc + "".concat(styleName, ": ").concat(styles[styleName].trim(), ";");
575
+ }, '');
576
+ }
577
+ function transformIsMeaningful(transform) {
578
+ return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;
579
+ }
580
+ function transformForSvg(_ref) {
581
+ var transform = _ref.transform,
582
+ containerWidth = _ref.containerWidth,
583
+ iconWidth = _ref.iconWidth;
584
+ var outer = {
585
+ transform: "translate(".concat(containerWidth / 2, " 256)")
586
+ };
587
+ var innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") ");
588
+ var innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") ");
589
+ var innerRotate = "rotate(".concat(transform.rotate, " 0 0)");
590
+ var inner = {
591
+ transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
592
+ };
593
+ var path = {
594
+ transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
595
+ };
596
+ return {
597
+ outer: outer,
598
+ inner: inner,
599
+ path: path
600
+ };
601
+ }
602
+ function transformForCss(_ref2) {
603
+ var transform = _ref2.transform,
604
+ _ref2$width = _ref2.width,
605
+ width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,
606
+ _ref2$height = _ref2.height,
607
+ height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,
608
+ _ref2$startCentered = _ref2.startCentered,
609
+ startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;
610
+ var val = '';
611
+
612
+ if (startCentered && IS_IE) {
613
+ val += "translate(".concat(transform.x / d - width / 2, "em, ").concat(transform.y / d - height / 2, "em) ");
614
+ } else if (startCentered) {
615
+ val += "translate(calc(-50% + ".concat(transform.x / d, "em), calc(-50% + ").concat(transform.y / d, "em)) ");
616
+ } else {
617
+ val += "translate(".concat(transform.x / d, "em, ").concat(transform.y / d, "em) ");
618
+ }
619
+
620
+ val += "scale(".concat(transform.size / d * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d * (transform.flipY ? -1 : 1), ") ");
621
+ val += "rotate(".concat(transform.rotate, "deg) ");
622
+ return val;
623
+ }
624
+
625
+ var baseStyles = ":host,:root{--fa-font-solid:normal 900 1em/1 \"Font Awesome 6 Solid\";--fa-font-regular:normal 400 1em/1 \"Font Awesome 6 Regular\";--fa-font-light:normal 300 1em/1 \"Font Awesome 6 Light\";--fa-font-thin:normal 100 1em/1 \"Font Awesome 6 Thin\";--fa-font-duotone:normal 900 1em/1 \"Font Awesome 6 Duotone\";--fa-font-sharp-solid:normal 900 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-regular:normal 400 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-light:normal 300 1em/1 \"Font Awesome 6 Sharp\";--fa-font-brands:normal 400 1em/1 \"Font Awesome 6 Brands\"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}";
626
+
627
+ function css() {
628
+ var dcp = DEFAULT_CSS_PREFIX;
629
+ var drc = DEFAULT_REPLACEMENT_CLASS;
630
+ var fp = config.cssPrefix;
631
+ var rc = config.replacementClass;
632
+ var s = baseStyles;
633
+
634
+ if (fp !== dcp || rc !== drc) {
635
+ var dPatt = new RegExp("\\.".concat(dcp, "\\-"), 'g');
636
+ var customPropPatt = new RegExp("\\--".concat(dcp, "\\-"), 'g');
637
+ var rPatt = new RegExp("\\.".concat(drc), 'g');
638
+ s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc));
639
+ }
640
+
641
+ return s;
642
+ }
643
+
644
+ var _cssInserted = false;
645
+
646
+ function ensureCss() {
647
+ if (config.autoAddCss && !_cssInserted) {
648
+ insertCss(css());
649
+ _cssInserted = true;
650
+ }
651
+ }
652
+
653
+ var InjectCSS = {
654
+ mixout: function mixout() {
655
+ return {
656
+ dom: {
657
+ css: css,
658
+ insertCss: ensureCss
659
+ }
660
+ };
661
+ },
662
+ hooks: function hooks() {
663
+ return {
664
+ beforeDOMElementCreation: function beforeDOMElementCreation() {
665
+ ensureCss();
666
+ },
667
+ beforeI2svg: function beforeI2svg() {
668
+ ensureCss();
669
+ }
670
+ };
671
+ }
672
+ };
673
+
674
+ var w = WINDOW || {};
675
+ if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
676
+ if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
677
+ if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
678
+ if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
679
+ var namespace = w[NAMESPACE_IDENTIFIER];
680
+
681
+ var functions = [];
682
+
683
+ var listener = function listener() {
684
+ DOCUMENT.removeEventListener('DOMContentLoaded', listener);
685
+ loaded = 1;
686
+ functions.map(function (fn) {
687
+ return fn();
688
+ });
689
+ };
690
+
691
+ var loaded = false;
692
+
693
+ if (IS_DOM) {
694
+ loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
695
+ if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
696
+ }
697
+
698
+ function domready (fn) {
699
+ if (!IS_DOM) return;
700
+ loaded ? setTimeout(fn, 0) : functions.push(fn);
701
+ }
702
+
703
+ function toHtml(abstractNodes) {
704
+ var tag = abstractNodes.tag,
705
+ _abstractNodes$attrib = abstractNodes.attributes,
706
+ attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,
707
+ _abstractNodes$childr = abstractNodes.children,
708
+ children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;
709
+
710
+ if (typeof abstractNodes === 'string') {
711
+ return htmlEscape(abstractNodes);
712
+ } else {
713
+ return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(''), "</").concat(tag, ">");
714
+ }
715
+ }
716
+
717
+ function iconFromMapping(mapping, prefix, iconName) {
718
+ if (mapping && mapping[prefix] && mapping[prefix][iconName]) {
719
+ return {
720
+ prefix: prefix,
721
+ iconName: iconName,
722
+ icon: mapping[prefix][iconName]
723
+ };
724
+ }
725
+ }
726
+
727
+ /**
728
+ * Internal helper to bind a function known to have 4 arguments
729
+ * to a given context.
730
+ */
731
+
732
+ var bindInternal4 = function bindInternal4(func, thisContext) {
733
+ return function (a, b, c, d) {
734
+ return func.call(thisContext, a, b, c, d);
735
+ };
736
+ };
737
+
738
+ /**
739
+ * # Reduce
740
+ *
741
+ * A fast object `.reduce()` implementation.
742
+ *
743
+ * @param {Object} subject The object to reduce over.
744
+ * @param {Function} fn The reducer function.
745
+ * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].
746
+ * @param {Object} thisContext The context for the reducer.
747
+ * @return {mixed} The final result.
748
+ */
749
+
750
+
751
+ var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {
752
+ var keys = Object.keys(subject),
753
+ length = keys.length,
754
+ iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,
755
+ i,
756
+ key,
757
+ result;
758
+
759
+ if (initialValue === undefined) {
760
+ i = 1;
761
+ result = subject[keys[0]];
762
+ } else {
763
+ i = 0;
764
+ result = initialValue;
765
+ }
766
+
767
+ for (; i < length; i++) {
768
+ key = keys[i];
769
+ result = iterator(result, subject[key], key, subject);
770
+ }
771
+
772
+ return result;
773
+ };
774
+
775
+ /**
776
+ * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT
777
+ *
778
+ * Copyright Mathias Bynens <https://mathiasbynens.be/>
779
+
780
+ * Permission is hereby granted, free of charge, to any person obtaining
781
+ * a copy of this software and associated documentation files (the
782
+ * "Software"), to deal in the Software without restriction, including
783
+ * without limitation the rights to use, copy, modify, merge, publish,
784
+ * distribute, sublicense, and/or sell copies of the Software, and to
785
+ * permit persons to whom the Software is furnished to do so, subject to
786
+ * the following conditions:
787
+
788
+ * The above copyright notice and this permission notice shall be
789
+ * included in all copies or substantial portions of the Software.
790
+
791
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
792
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
793
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
794
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
795
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
796
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
797
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
798
+ */
799
+ function ucs2decode(string) {
800
+ var output = [];
801
+ var counter = 0;
802
+ var length = string.length;
803
+
804
+ while (counter < length) {
805
+ var value = string.charCodeAt(counter++);
806
+
807
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
808
+ var extra = string.charCodeAt(counter++);
809
+
810
+ if ((extra & 0xFC00) == 0xDC00) {
811
+ // eslint-disable-line eqeqeq
812
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
813
+ } else {
814
+ output.push(value);
815
+ counter--;
816
+ }
817
+ } else {
818
+ output.push(value);
819
+ }
820
+ }
821
+
822
+ return output;
823
+ }
824
+
825
+ function toHex(unicode) {
826
+ var decoded = ucs2decode(unicode);
827
+ return decoded.length === 1 ? decoded[0].toString(16) : null;
828
+ }
829
+ function codePointAt(string, index) {
830
+ var size = string.length;
831
+ var first = string.charCodeAt(index);
832
+ var second;
833
+
834
+ if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {
835
+ second = string.charCodeAt(index + 1);
836
+
837
+ if (second >= 0xDC00 && second <= 0xDFFF) {
838
+ return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
839
+ }
840
+ }
841
+
842
+ return first;
843
+ }
844
+
845
+ function normalizeIcons(icons) {
846
+ return Object.keys(icons).reduce(function (acc, iconName) {
847
+ var icon = icons[iconName];
848
+ var expanded = !!icon.icon;
849
+
850
+ if (expanded) {
851
+ acc[icon.iconName] = icon.icon;
852
+ } else {
853
+ acc[iconName] = icon;
854
+ }
855
+
856
+ return acc;
857
+ }, {});
858
+ }
859
+
860
+ function defineIcons(prefix, icons) {
861
+ var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
862
+ var _params$skipHooks = params.skipHooks,
863
+ skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;
864
+ var normalized = normalizeIcons(icons);
865
+
866
+ if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {
867
+ namespace.hooks.addPack(prefix, normalizeIcons(icons));
868
+ } else {
869
+ namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);
870
+ }
871
+ /**
872
+ * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
873
+ * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
874
+ * for `fas` so we'll ease the upgrade process for our users by automatically defining
875
+ * this as well.
876
+ */
877
+
878
+
879
+ if (prefix === 'fas') {
880
+ defineIcons('fa', icons);
881
+ }
882
+ }
883
+
884
+ var duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d="((?:(?!")[\s\S])+)".*path d="((?:(?!")[\s\S])+)"/, {
885
+ d1: 1,
886
+ d2: 2
887
+ }), /*#__PURE__*/_wrapRegExp(/path class="((?:(?!")[\s\S])+)".*d="((?:(?!")[\s\S])+)".*path class="((?:(?!")[\s\S])+)".*d="((?:(?!")[\s\S])+)"/, {
888
+ cls1: 1,
889
+ d1: 2,
890
+ cls2: 3,
891
+ d2: 4
892
+ }), /*#__PURE__*/_wrapRegExp(/path class="((?:(?!")[\s\S])+)".*d="((?:(?!")[\s\S])+)"/, {
893
+ cls1: 1,
894
+ d1: 2
895
+ })];
896
+
897
+ var _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;
898
+ var styles = namespace.styles,
899
+ shims = namespace.shims;
900
+ var LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);
901
+ var _defaultUsablePrefix = null;
902
+ var _byUnicode = {};
903
+ var _byLigature = {};
904
+ var _byOldName = {};
905
+ var _byOldUnicode = {};
906
+ var _byAlias = {};
907
+ var PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);
908
+
909
+ function isReserved(name) {
910
+ return ~RESERVED_CLASSES.indexOf(name);
911
+ }
912
+
913
+ function getIconName(cssPrefix, cls) {
914
+ var parts = cls.split('-');
915
+ var prefix = parts[0];
916
+ var iconName = parts.slice(1).join('-');
917
+
918
+ if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {
919
+ return iconName;
920
+ } else {
921
+ return null;
922
+ }
923
+ }
924
+ var build = function build() {
925
+ var lookup = function lookup(reducer) {
926
+ return reduce(styles, function (o, style, prefix) {
927
+ o[prefix] = reduce(style, reducer, {});
928
+ return o;
929
+ }, {});
930
+ };
931
+
932
+ _byUnicode = lookup(function (acc, icon, iconName) {
933
+ if (icon[3]) {
934
+ acc[icon[3]] = iconName;
935
+ }
936
+
937
+ if (icon[2]) {
938
+ var aliases = icon[2].filter(function (a) {
939
+ return typeof a === 'number';
940
+ });
941
+ aliases.forEach(function (alias) {
942
+ acc[alias.toString(16)] = iconName;
943
+ });
944
+ }
945
+
946
+ return acc;
947
+ });
948
+ _byLigature = lookup(function (acc, icon, iconName) {
949
+ acc[iconName] = iconName;
950
+
951
+ if (icon[2]) {
952
+ var aliases = icon[2].filter(function (a) {
953
+ return typeof a === 'string';
954
+ });
955
+ aliases.forEach(function (alias) {
956
+ acc[alias] = iconName;
957
+ });
958
+ }
959
+
960
+ return acc;
961
+ });
962
+ _byAlias = lookup(function (acc, icon, iconName) {
963
+ var aliases = icon[2];
964
+ acc[iconName] = iconName;
965
+ aliases.forEach(function (alias) {
966
+ acc[alias] = iconName;
967
+ });
968
+ return acc;
969
+ }); // If we have a Kit, we can't determine if regular is available since we
970
+ // could be auto-fetching it. We'll have to assume that it is available.
971
+
972
+ var hasRegular = 'far' in styles || config.autoFetchSvg;
973
+ var shimLookups = reduce(shims, function (acc, shim) {
974
+ var maybeNameMaybeUnicode = shim[0];
975
+ var prefix = shim[1];
976
+ var iconName = shim[2];
977
+
978
+ if (prefix === 'far' && !hasRegular) {
979
+ prefix = 'fas';
980
+ }
981
+
982
+ if (typeof maybeNameMaybeUnicode === 'string') {
983
+ acc.names[maybeNameMaybeUnicode] = {
984
+ prefix: prefix,
985
+ iconName: iconName
986
+ };
987
+ }
988
+
989
+ if (typeof maybeNameMaybeUnicode === 'number') {
990
+ acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {
991
+ prefix: prefix,
992
+ iconName: iconName
993
+ };
994
+ }
995
+
996
+ return acc;
997
+ }, {
998
+ names: {},
999
+ unicodes: {}
1000
+ });
1001
+ _byOldName = shimLookups.names;
1002
+ _byOldUnicode = shimLookups.unicodes;
1003
+ _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {
1004
+ family: config.familyDefault
1005
+ });
1006
+ };
1007
+ onChange(function (c) {
1008
+ _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {
1009
+ family: config.familyDefault
1010
+ });
1011
+ });
1012
+ build();
1013
+ function byUnicode(prefix, unicode) {
1014
+ return (_byUnicode[prefix] || {})[unicode];
1015
+ }
1016
+ function byLigature(prefix, ligature) {
1017
+ return (_byLigature[prefix] || {})[ligature];
1018
+ }
1019
+ function byAlias(prefix, alias) {
1020
+ return (_byAlias[prefix] || {})[alias];
1021
+ }
1022
+ function byOldName(name) {
1023
+ return _byOldName[name] || {
1024
+ prefix: null,
1025
+ iconName: null
1026
+ };
1027
+ }
1028
+ function byOldUnicode(unicode) {
1029
+ var oldUnicode = _byOldUnicode[unicode];
1030
+ var newUnicode = byUnicode('fas', unicode);
1031
+ return oldUnicode || (newUnicode ? {
1032
+ prefix: 'fas',
1033
+ iconName: newUnicode
1034
+ } : null) || {
1035
+ prefix: null,
1036
+ iconName: null
1037
+ };
1038
+ }
1039
+ function getDefaultUsablePrefix() {
1040
+ return _defaultUsablePrefix;
1041
+ }
1042
+ var emptyCanonicalIcon = function emptyCanonicalIcon() {
1043
+ return {
1044
+ prefix: null,
1045
+ iconName: null,
1046
+ rest: []
1047
+ };
1048
+ };
1049
+ function getCanonicalPrefix(styleOrPrefix) {
1050
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1051
+ var _params$family = params.family,
1052
+ family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;
1053
+ var style = PREFIX_TO_STYLE[family][styleOrPrefix];
1054
+ var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];
1055
+ var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;
1056
+ return prefix || defined || null;
1057
+ }
1058
+ var PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);
1059
+ function getCanonicalIcon(values) {
1060
+ var _famProps;
1061
+
1062
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1063
+ var _params$skipLookups = params.skipLookups,
1064
+ skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;
1065
+ var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, "".concat(config.cssPrefix, "-").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, "".concat(config.cssPrefix, "-").concat(FAMILY_SHARP)), _famProps);
1066
+ var givenPrefix = null;
1067
+ var family = FAMILY_CLASSIC;
1068
+
1069
+ if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {
1070
+ return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);
1071
+ })) {
1072
+ family = FAMILY_CLASSIC;
1073
+ }
1074
+
1075
+ if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {
1076
+ return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);
1077
+ })) {
1078
+ family = FAMILY_SHARP;
1079
+ }
1080
+
1081
+ var canonical = values.reduce(function (acc, cls) {
1082
+ var iconName = getIconName(config.cssPrefix, cls);
1083
+
1084
+ if (styles[cls]) {
1085
+ cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;
1086
+ givenPrefix = cls;
1087
+ acc.prefix = cls;
1088
+ } else if (PREFIXES[family].indexOf(cls) > -1) {
1089
+ givenPrefix = cls;
1090
+ acc.prefix = getCanonicalPrefix(cls, {
1091
+ family: family
1092
+ });
1093
+ } else if (iconName) {
1094
+ acc.iconName = iconName;
1095
+ } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {
1096
+ acc.rest.push(cls);
1097
+ }
1098
+
1099
+ if (!skipLookups && acc.prefix && acc.iconName) {
1100
+ var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};
1101
+ var aliasIconName = byAlias(acc.prefix, acc.iconName);
1102
+
1103
+ if (shim.prefix) {
1104
+ givenPrefix = null;
1105
+ }
1106
+
1107
+ acc.iconName = shim.iconName || aliasIconName || acc.iconName;
1108
+ acc.prefix = shim.prefix || acc.prefix;
1109
+
1110
+ if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {
1111
+ // Allow a fallback from the regular style to solid if regular is not available
1112
+ // but only if we aren't auto-fetching SVGs
1113
+ acc.prefix = 'fas';
1114
+ }
1115
+ }
1116
+
1117
+ return acc;
1118
+ }, emptyCanonicalIcon());
1119
+
1120
+ if (values.includes('fa-brands') || values.includes('fab')) {
1121
+ canonical.prefix = 'fab';
1122
+ }
1123
+
1124
+ if (values.includes('fa-duotone') || values.includes('fad')) {
1125
+ canonical.prefix = 'fad';
1126
+ }
1127
+
1128
+ if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {
1129
+ canonical.prefix = 'fass';
1130
+ canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;
1131
+ }
1132
+
1133
+ if (canonical.prefix === 'fa' || givenPrefix === 'fa') {
1134
+ // The fa prefix is not canonical. So if it has made it through until this point
1135
+ // we will shift it to the correct prefix.
1136
+ canonical.prefix = getDefaultUsablePrefix() || 'fas';
1137
+ }
1138
+
1139
+ return canonical;
1140
+ }
1141
+
1142
+ var Library = /*#__PURE__*/function () {
1143
+ function Library() {
1144
+ _classCallCheck(this, Library);
1145
+
1146
+ this.definitions = {};
1147
+ }
1148
+
1149
+ _createClass(Library, [{
1150
+ key: "add",
1151
+ value: function add() {
1152
+ var _this = this;
1153
+
1154
+ for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {
1155
+ definitions[_key] = arguments[_key];
1156
+ }
1157
+
1158
+ var additions = definitions.reduce(this._pullDefinitions, {});
1159
+ Object.keys(additions).forEach(function (key) {
1160
+ _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);
1161
+ defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid ' any longer so this probably needs to change
1162
+
1163
+ var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];
1164
+ if (longPrefix) defineIcons(longPrefix, additions[key]);
1165
+ build();
1166
+ });
1167
+ }
1168
+ }, {
1169
+ key: "reset",
1170
+ value: function reset() {
1171
+ this.definitions = {};
1172
+ }
1173
+ }, {
1174
+ key: "_pullDefinitions",
1175
+ value: function _pullDefinitions(additions, definition) {
1176
+ var normalized = definition.prefix && definition.iconName && definition.icon ? {
1177
+ 0: definition
1178
+ } : definition;
1179
+ Object.keys(normalized).map(function (key) {
1180
+ var _normalized$key = normalized[key],
1181
+ prefix = _normalized$key.prefix,
1182
+ iconName = _normalized$key.iconName,
1183
+ icon = _normalized$key.icon;
1184
+ var aliases = icon[2];
1185
+ if (!additions[prefix]) additions[prefix] = {};
1186
+
1187
+ if (aliases.length > 0) {
1188
+ aliases.forEach(function (alias) {
1189
+ if (typeof alias === 'string') {
1190
+ additions[prefix][alias] = icon;
1191
+ }
1192
+ });
1193
+ }
1194
+
1195
+ additions[prefix][iconName] = icon;
1196
+ });
1197
+ return additions;
1198
+ }
1199
+ }]);
1200
+
1201
+ return Library;
1202
+ }();
1203
+
1204
+ var _plugins = [];
1205
+ var _hooks = {};
1206
+ var providers = {};
1207
+ var defaultProviderKeys = Object.keys(providers);
1208
+ function registerPlugins(nextPlugins, _ref) {
1209
+ var obj = _ref.mixoutsTo;
1210
+ _plugins = nextPlugins;
1211
+ _hooks = {};
1212
+ Object.keys(providers).forEach(function (k) {
1213
+ if (defaultProviderKeys.indexOf(k) === -1) {
1214
+ delete providers[k];
1215
+ }
1216
+ });
1217
+
1218
+ _plugins.forEach(function (plugin) {
1219
+ var mixout = plugin.mixout ? plugin.mixout() : {};
1220
+ Object.keys(mixout).forEach(function (tk) {
1221
+ if (typeof mixout[tk] === 'function') {
1222
+ obj[tk] = mixout[tk];
1223
+ }
1224
+
1225
+ if (_typeof(mixout[tk]) === 'object') {
1226
+ Object.keys(mixout[tk]).forEach(function (sk) {
1227
+ if (!obj[tk]) {
1228
+ obj[tk] = {};
1229
+ }
1230
+
1231
+ obj[tk][sk] = mixout[tk][sk];
1232
+ });
1233
+ }
1234
+ });
1235
+
1236
+ if (plugin.hooks) {
1237
+ var hooks = plugin.hooks();
1238
+ Object.keys(hooks).forEach(function (hook) {
1239
+ if (!_hooks[hook]) {
1240
+ _hooks[hook] = [];
1241
+ }
1242
+
1243
+ _hooks[hook].push(hooks[hook]);
1244
+ });
1245
+ }
1246
+
1247
+ if (plugin.provides) {
1248
+ plugin.provides(providers);
1249
+ }
1250
+ });
1251
+
1252
+ return obj;
1253
+ }
1254
+ function chainHooks(hook, accumulator) {
1255
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1256
+ args[_key - 2] = arguments[_key];
1257
+ }
1258
+
1259
+ var hookFns = _hooks[hook] || [];
1260
+ hookFns.forEach(function (hookFn) {
1261
+ accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call
1262
+ });
1263
+ return accumulator;
1264
+ }
1265
+ function callHooks(hook) {
1266
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1267
+ args[_key2 - 1] = arguments[_key2];
1268
+ }
1269
+
1270
+ var hookFns = _hooks[hook] || [];
1271
+ hookFns.forEach(function (hookFn) {
1272
+ hookFn.apply(null, args);
1273
+ });
1274
+ return undefined;
1275
+ }
1276
+ function callProvided() {
1277
+ var hook = arguments[0];
1278
+ var args = Array.prototype.slice.call(arguments, 1);
1279
+ return providers[hook] ? providers[hook].apply(null, args) : undefined;
1280
+ }
1281
+
1282
+ function findIconDefinition(iconLookup) {
1283
+ if (iconLookup.prefix === 'fa') {
1284
+ iconLookup.prefix = 'fas';
1285
+ }
1286
+
1287
+ var iconName = iconLookup.iconName;
1288
+ var prefix = iconLookup.prefix || getDefaultUsablePrefix();
1289
+ if (!iconName) return;
1290
+ iconName = byAlias(prefix, iconName) || iconName;
1291
+ return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);
1292
+ }
1293
+ var library = new Library();
1294
+ var noAuto = function noAuto() {
1295
+ config.autoReplaceSvg = false;
1296
+ config.observeMutations = false;
1297
+ callHooks('noAuto');
1298
+ };
1299
+ var dom = {
1300
+ i2svg: function i2svg() {
1301
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1302
+
1303
+ if (IS_DOM) {
1304
+ callHooks('beforeI2svg', params);
1305
+ callProvided('pseudoElements2svg', params);
1306
+ return callProvided('i2svg', params);
1307
+ } else {
1308
+ return Promise.reject('Operation requires a DOM of some kind.');
1309
+ }
1310
+ },
1311
+ watch: function watch() {
1312
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1313
+ var autoReplaceSvgRoot = params.autoReplaceSvgRoot;
1314
+
1315
+ if (config.autoReplaceSvg === false) {
1316
+ config.autoReplaceSvg = true;
1317
+ }
1318
+
1319
+ config.observeMutations = true;
1320
+ domready(function () {
1321
+ autoReplace({
1322
+ autoReplaceSvgRoot: autoReplaceSvgRoot
1323
+ });
1324
+ callHooks('watch', params);
1325
+ });
1326
+ }
1327
+ };
1328
+ var parse = {
1329
+ icon: function icon(_icon) {
1330
+ if (_icon === null) {
1331
+ return null;
1332
+ }
1333
+
1334
+ if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {
1335
+ return {
1336
+ prefix: _icon.prefix,
1337
+ iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName
1338
+ };
1339
+ }
1340
+
1341
+ if (Array.isArray(_icon) && _icon.length === 2) {
1342
+ var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];
1343
+ var prefix = getCanonicalPrefix(_icon[0]);
1344
+ return {
1345
+ prefix: prefix,
1346
+ iconName: byAlias(prefix, iconName) || iconName
1347
+ };
1348
+ }
1349
+
1350
+ if (typeof _icon === 'string' && (_icon.indexOf("".concat(config.cssPrefix, "-")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {
1351
+ var canonicalIcon = getCanonicalIcon(_icon.split(' '), {
1352
+ skipLookups: true
1353
+ });
1354
+ return {
1355
+ prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),
1356
+ iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName
1357
+ };
1358
+ }
1359
+
1360
+ if (typeof _icon === 'string') {
1361
+ var _prefix = getDefaultUsablePrefix();
1362
+
1363
+ return {
1364
+ prefix: _prefix,
1365
+ iconName: byAlias(_prefix, _icon) || _icon
1366
+ };
1367
+ }
1368
+ }
1369
+ };
1370
+ var api = {
1371
+ noAuto: noAuto,
1372
+ config: config,
1373
+ dom: dom,
1374
+ parse: parse,
1375
+ library: library,
1376
+ findIconDefinition: findIconDefinition,
1377
+ toHtml: toHtml
1378
+ };
1379
+
1380
+ var autoReplace = function autoReplace() {
1381
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1382
+ var _params$autoReplaceSv = params.autoReplaceSvgRoot,
1383
+ autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;
1384
+ if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({
1385
+ node: autoReplaceSvgRoot
1386
+ });
1387
+ };
1388
+
1389
+ function bootstrap(plugins) {
1390
+ if (IS_BROWSER) {
1391
+ if (!WINDOW.FontAwesome) {
1392
+ WINDOW.FontAwesome = api;
1393
+ }
1394
+
1395
+ domready(function () {
1396
+ autoReplace();
1397
+ callHooks('bootstrap');
1398
+ });
1399
+ }
1400
+
1401
+ namespace.hooks = _objectSpread2(_objectSpread2({}, namespace.hooks), {}, {
1402
+ addPack: function addPack(prefix, icons) {
1403
+ namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);
1404
+ build();
1405
+ autoReplace();
1406
+ },
1407
+ addPacks: function addPacks(packs) {
1408
+ packs.forEach(function (_ref) {
1409
+ var _ref2 = _slicedToArray(_ref, 2),
1410
+ prefix = _ref2[0],
1411
+ icons = _ref2[1];
1412
+
1413
+ namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);
1414
+ });
1415
+ build();
1416
+ autoReplace();
1417
+ },
1418
+ addShims: function addShims(shims) {
1419
+ var _namespace$shims;
1420
+
1421
+ (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));
1422
+
1423
+ build();
1424
+ autoReplace();
1425
+ }
1426
+ });
1427
+ }
1428
+
1429
+ function domVariants(val, abstractCreator) {
1430
+ Object.defineProperty(val, 'abstract', {
1431
+ get: abstractCreator
1432
+ });
1433
+ Object.defineProperty(val, 'html', {
1434
+ get: function get() {
1435
+ return val.abstract.map(function (a) {
1436
+ return toHtml(a);
1437
+ });
1438
+ }
1439
+ });
1440
+ Object.defineProperty(val, 'node', {
1441
+ get: function get() {
1442
+ if (!IS_DOM) return;
1443
+ var container = DOCUMENT.createElement('div');
1444
+ container.innerHTML = val.html;
1445
+ return container.children;
1446
+ }
1447
+ });
1448
+ return val;
1449
+ }
1450
+
1451
+ function asIcon (_ref) {
1452
+ var children = _ref.children,
1453
+ main = _ref.main,
1454
+ mask = _ref.mask,
1455
+ attributes = _ref.attributes,
1456
+ styles = _ref.styles,
1457
+ transform = _ref.transform;
1458
+
1459
+ if (transformIsMeaningful(transform) && main.found && !mask.found) {
1460
+ var width = main.width,
1461
+ height = main.height;
1462
+ var offset = {
1463
+ x: width / height / 2,
1464
+ y: 0.5
1465
+ };
1466
+ attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {
1467
+ 'transform-origin': "".concat(offset.x + transform.x / 16, "em ").concat(offset.y + transform.y / 16, "em")
1468
+ }));
1469
+ }
1470
+
1471
+ return [{
1472
+ tag: 'svg',
1473
+ attributes: attributes,
1474
+ children: children
1475
+ }];
1476
+ }
1477
+
1478
+ function asSymbol (_ref) {
1479
+ var prefix = _ref.prefix,
1480
+ iconName = _ref.iconName,
1481
+ children = _ref.children,
1482
+ attributes = _ref.attributes,
1483
+ symbol = _ref.symbol;
1484
+ var id = symbol === true ? "".concat(prefix, "-").concat(config.cssPrefix, "-").concat(iconName) : symbol;
1485
+ return [{
1486
+ tag: 'svg',
1487
+ attributes: {
1488
+ style: 'display: none;'
1489
+ },
1490
+ children: [{
1491
+ tag: 'symbol',
1492
+ attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {
1493
+ id: id
1494
+ }),
1495
+ children: children
1496
+ }]
1497
+ }];
1498
+ }
1499
+
1500
+ function makeInlineSvgAbstract(params) {
1501
+ var _params$icons = params.icons,
1502
+ main = _params$icons.main,
1503
+ mask = _params$icons.mask,
1504
+ prefix = params.prefix,
1505
+ iconName = params.iconName,
1506
+ transform = params.transform,
1507
+ symbol = params.symbol,
1508
+ title = params.title,
1509
+ maskId = params.maskId,
1510
+ titleId = params.titleId,
1511
+ extra = params.extra,
1512
+ _params$watchable = params.watchable,
1513
+ watchable = _params$watchable === void 0 ? false : _params$watchable;
1514
+
1515
+ var _ref = mask.found ? mask : main,
1516
+ width = _ref.width,
1517
+ height = _ref.height;
1518
+
1519
+ var isUploadedIcon = prefix === 'fak';
1520
+ var attrClass = [config.replacementClass, iconName ? "".concat(config.cssPrefix, "-").concat(iconName) : ''].filter(function (c) {
1521
+ return extra.classes.indexOf(c) === -1;
1522
+ }).filter(function (c) {
1523
+ return c !== '' || !!c;
1524
+ }).concat(extra.classes).join(' ');
1525
+ var content = {
1526
+ children: [],
1527
+ attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {
1528
+ 'data-prefix': prefix,
1529
+ 'data-icon': iconName,
1530
+ 'class': attrClass,
1531
+ 'role': extra.attributes.role || 'img',
1532
+ 'xmlns': 'http://www.w3.org/2000/svg',
1533
+ 'viewBox': "0 0 ".concat(width, " ").concat(height)
1534
+ })
1535
+ };
1536
+ var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {
1537
+ width: "".concat(width / height * 16 * 0.0625, "em")
1538
+ } : {};
1539
+
1540
+ if (watchable) {
1541
+ content.attributes[DATA_FA_I2SVG] = '';
1542
+ }
1543
+
1544
+ if (title) {
1545
+ content.children.push({
1546
+ tag: 'title',
1547
+ attributes: {
1548
+ id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId())
1549
+ },
1550
+ children: [title]
1551
+ });
1552
+ delete content.attributes.title;
1553
+ }
1554
+
1555
+ var args = _objectSpread2(_objectSpread2({}, content), {}, {
1556
+ prefix: prefix,
1557
+ iconName: iconName,
1558
+ main: main,
1559
+ mask: mask,
1560
+ maskId: maskId,
1561
+ transform: transform,
1562
+ symbol: symbol,
1563
+ styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)
1564
+ });
1565
+
1566
+ var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {
1567
+ children: [],
1568
+ attributes: {}
1569
+ } : callProvided('generateAbstractIcon', args) || {
1570
+ children: [],
1571
+ attributes: {}
1572
+ },
1573
+ children = _ref2.children,
1574
+ attributes = _ref2.attributes;
1575
+
1576
+ args.children = children;
1577
+ args.attributes = attributes;
1578
+
1579
+ if (symbol) {
1580
+ return asSymbol(args);
1581
+ } else {
1582
+ return asIcon(args);
1583
+ }
1584
+ }
1585
+ function makeLayersTextAbstract(params) {
1586
+ var content = params.content,
1587
+ width = params.width,
1588
+ height = params.height,
1589
+ transform = params.transform,
1590
+ title = params.title,
1591
+ extra = params.extra,
1592
+ _params$watchable2 = params.watchable,
1593
+ watchable = _params$watchable2 === void 0 ? false : _params$watchable2;
1594
+
1595
+ var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {
1596
+ 'title': title
1597
+ } : {}), {}, {
1598
+ 'class': extra.classes.join(' ')
1599
+ });
1600
+
1601
+ if (watchable) {
1602
+ attributes[DATA_FA_I2SVG] = '';
1603
+ }
1604
+
1605
+ var styles = _objectSpread2({}, extra.styles);
1606
+
1607
+ if (transformIsMeaningful(transform)) {
1608
+ styles['transform'] = transformForCss({
1609
+ transform: transform,
1610
+ startCentered: true,
1611
+ width: width,
1612
+ height: height
1613
+ });
1614
+ styles['-webkit-transform'] = styles['transform'];
1615
+ }
1616
+
1617
+ var styleString = joinStyles(styles);
1618
+
1619
+ if (styleString.length > 0) {
1620
+ attributes['style'] = styleString;
1621
+ }
1622
+
1623
+ var val = [];
1624
+ val.push({
1625
+ tag: 'span',
1626
+ attributes: attributes,
1627
+ children: [content]
1628
+ });
1629
+
1630
+ if (title) {
1631
+ val.push({
1632
+ tag: 'span',
1633
+ attributes: {
1634
+ class: 'sr-only'
1635
+ },
1636
+ children: [title]
1637
+ });
1638
+ }
1639
+
1640
+ return val;
1641
+ }
1642
+ function makeLayersCounterAbstract(params) {
1643
+ var content = params.content,
1644
+ title = params.title,
1645
+ extra = params.extra;
1646
+
1647
+ var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {
1648
+ 'title': title
1649
+ } : {}), {}, {
1650
+ 'class': extra.classes.join(' ')
1651
+ });
1652
+
1653
+ var styleString = joinStyles(extra.styles);
1654
+
1655
+ if (styleString.length > 0) {
1656
+ attributes['style'] = styleString;
1657
+ }
1658
+
1659
+ var val = [];
1660
+ val.push({
1661
+ tag: 'span',
1662
+ attributes: attributes,
1663
+ children: [content]
1664
+ });
1665
+
1666
+ if (title) {
1667
+ val.push({
1668
+ tag: 'span',
1669
+ attributes: {
1670
+ class: 'sr-only'
1671
+ },
1672
+ children: [title]
1673
+ });
1674
+ }
1675
+
1676
+ return val;
1677
+ }
1678
+
1679
+ var styles$1 = namespace.styles;
1680
+ function asFoundIcon(icon) {
1681
+ var width = icon[0];
1682
+ var height = icon[1];
1683
+
1684
+ var _icon$slice = icon.slice(4),
1685
+ _icon$slice2 = _slicedToArray(_icon$slice, 1),
1686
+ vectorData = _icon$slice2[0];
1687
+
1688
+ var element = null;
1689
+
1690
+ if (Array.isArray(vectorData)) {
1691
+ element = {
1692
+ tag: 'g',
1693
+ attributes: {
1694
+ class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.GROUP)
1695
+ },
1696
+ children: [{
1697
+ tag: 'path',
1698
+ attributes: {
1699
+ class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY),
1700
+ fill: 'currentColor',
1701
+ d: vectorData[0]
1702
+ }
1703
+ }, {
1704
+ tag: 'path',
1705
+ attributes: {
1706
+ class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY),
1707
+ fill: 'currentColor',
1708
+ d: vectorData[1]
1709
+ }
1710
+ }]
1711
+ };
1712
+ } else {
1713
+ element = {
1714
+ tag: 'path',
1715
+ attributes: {
1716
+ fill: 'currentColor',
1717
+ d: vectorData
1718
+ }
1719
+ };
1720
+ }
1721
+
1722
+ return {
1723
+ found: true,
1724
+ width: width,
1725
+ height: height,
1726
+ icon: element
1727
+ };
1728
+ }
1729
+ var missingIconResolutionMixin = {
1730
+ found: false,
1731
+ width: 512,
1732
+ height: 512
1733
+ };
1734
+
1735
+ function maybeNotifyMissing(iconName, prefix) {
1736
+ if (!PRODUCTION && !config.showMissingIcons && iconName) {
1737
+ console.error("Icon with name \"".concat(iconName, "\" and prefix \"").concat(prefix, "\" is missing."));
1738
+ }
1739
+ }
1740
+
1741
+ function findIcon(iconName, prefix) {
1742
+ var givenPrefix = prefix;
1743
+
1744
+ if (prefix === 'fa' && config.styleDefault !== null) {
1745
+ prefix = getDefaultUsablePrefix();
1746
+ }
1747
+
1748
+ return new Promise(function (resolve, reject) {
1749
+ var val = {
1750
+ found: false,
1751
+ width: 512,
1752
+ height: 512,
1753
+ icon: callProvided('missingIconAbstract') || {}
1754
+ };
1755
+
1756
+ if (givenPrefix === 'fa') {
1757
+ var shim = byOldName(iconName) || {};
1758
+ iconName = shim.iconName || iconName;
1759
+ prefix = shim.prefix || prefix;
1760
+ }
1761
+
1762
+ if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {
1763
+ var icon = styles$1[prefix][iconName];
1764
+ return resolve(asFoundIcon(icon));
1765
+ }
1766
+
1767
+ maybeNotifyMissing(iconName, prefix);
1768
+ resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {
1769
+ icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}
1770
+ }));
1771
+ });
1772
+ }
1773
+
1774
+ var noop$1 = function noop() {};
1775
+
1776
+ var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {
1777
+ mark: noop$1,
1778
+ measure: noop$1
1779
+ };
1780
+ var preamble = "FA \"6.4.0\"";
1781
+
1782
+ var begin = function begin(name) {
1783
+ p.mark("".concat(preamble, " ").concat(name, " begins"));
1784
+ return function () {
1785
+ return end(name);
1786
+ };
1787
+ };
1788
+
1789
+ var end = function end(name) {
1790
+ p.mark("".concat(preamble, " ").concat(name, " ends"));
1791
+ p.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends"));
1792
+ };
1793
+
1794
+ var perf = {
1795
+ begin: begin,
1796
+ end: end
1797
+ };
1798
+
1799
+ var noop$2 = function noop() {};
1800
+
1801
+ function isWatched(node) {
1802
+ var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;
1803
+ return typeof i2svg === 'string';
1804
+ }
1805
+
1806
+ function hasPrefixAndIcon(node) {
1807
+ var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;
1808
+ var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;
1809
+ return prefix && icon;
1810
+ }
1811
+
1812
+ function hasBeenReplaced(node) {
1813
+ return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);
1814
+ }
1815
+
1816
+ function getMutator() {
1817
+ if (config.autoReplaceSvg === true) {
1818
+ return mutators.replace;
1819
+ }
1820
+
1821
+ var mutator = mutators[config.autoReplaceSvg];
1822
+ return mutator || mutators.replace;
1823
+ }
1824
+
1825
+ function createElementNS(tag) {
1826
+ return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);
1827
+ }
1828
+
1829
+ function createElement(tag) {
1830
+ return DOCUMENT.createElement(tag);
1831
+ }
1832
+
1833
+ function convertSVG(abstractObj) {
1834
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1835
+ var _params$ceFn = params.ceFn,
1836
+ ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;
1837
+
1838
+ if (typeof abstractObj === 'string') {
1839
+ return DOCUMENT.createTextNode(abstractObj);
1840
+ }
1841
+
1842
+ var tag = ceFn(abstractObj.tag);
1843
+ Object.keys(abstractObj.attributes || []).forEach(function (key) {
1844
+ tag.setAttribute(key, abstractObj.attributes[key]);
1845
+ });
1846
+ var children = abstractObj.children || [];
1847
+ children.forEach(function (child) {
1848
+ tag.appendChild(convertSVG(child, {
1849
+ ceFn: ceFn
1850
+ }));
1851
+ });
1852
+ return tag;
1853
+ }
1854
+
1855
+ function nodeAsComment(node) {
1856
+ var comment = " ".concat(node.outerHTML, " ");
1857
+ /* BEGIN.ATTRIBUTION */
1858
+
1859
+ comment = "".concat(comment, "Font Awesome fontawesome.com ");
1860
+ /* END.ATTRIBUTION */
1861
+
1862
+ return comment;
1863
+ }
1864
+
1865
+ var mutators = {
1866
+ replace: function replace(mutation) {
1867
+ var node = mutation[0];
1868
+
1869
+ if (node.parentNode) {
1870
+ mutation[1].forEach(function (_abstract) {
1871
+ node.parentNode.insertBefore(convertSVG(_abstract), node);
1872
+ });
1873
+
1874
+ if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {
1875
+ var comment = DOCUMENT.createComment(nodeAsComment(node));
1876
+ node.parentNode.replaceChild(comment, node);
1877
+ } else {
1878
+ node.remove();
1879
+ }
1880
+ }
1881
+ },
1882
+ nest: function nest(mutation) {
1883
+ var node = mutation[0];
1884
+ var _abstract2 = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.
1885
+ // Short-circuit to the standard replacement
1886
+
1887
+ if (~classArray(node).indexOf(config.replacementClass)) {
1888
+ return mutators.replace(mutation);
1889
+ }
1890
+
1891
+ var forSvg = new RegExp("".concat(config.cssPrefix, "-.*"));
1892
+ delete _abstract2[0].attributes.id;
1893
+
1894
+ if (_abstract2[0].attributes.class) {
1895
+ var splitClasses = _abstract2[0].attributes.class.split(' ').reduce(function (acc, cls) {
1896
+ if (cls === config.replacementClass || cls.match(forSvg)) {
1897
+ acc.toSvg.push(cls);
1898
+ } else {
1899
+ acc.toNode.push(cls);
1900
+ }
1901
+
1902
+ return acc;
1903
+ }, {
1904
+ toNode: [],
1905
+ toSvg: []
1906
+ });
1907
+
1908
+ _abstract2[0].attributes.class = splitClasses.toSvg.join(' ');
1909
+
1910
+ if (splitClasses.toNode.length === 0) {
1911
+ node.removeAttribute('class');
1912
+ } else {
1913
+ node.setAttribute('class', splitClasses.toNode.join(' '));
1914
+ }
1915
+ }
1916
+
1917
+ var newInnerHTML = _abstract2.map(function (a) {
1918
+ return toHtml(a);
1919
+ }).join('\n');
1920
+
1921
+ node.setAttribute(DATA_FA_I2SVG, '');
1922
+ node.innerHTML = newInnerHTML;
1923
+ }
1924
+ };
1925
+
1926
+ function performOperationSync(op) {
1927
+ op();
1928
+ }
1929
+
1930
+ function perform(mutations, callback) {
1931
+ var callbackFunction = typeof callback === 'function' ? callback : noop$2;
1932
+
1933
+ if (mutations.length === 0) {
1934
+ callbackFunction();
1935
+ } else {
1936
+ var frame = performOperationSync;
1937
+
1938
+ if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {
1939
+ frame = WINDOW.requestAnimationFrame || performOperationSync;
1940
+ }
1941
+
1942
+ frame(function () {
1943
+ var mutator = getMutator();
1944
+ var mark = perf.begin('mutate');
1945
+ mutations.map(mutator);
1946
+ mark();
1947
+ callbackFunction();
1948
+ });
1949
+ }
1950
+ }
1951
+ var disabled = false;
1952
+ function disableObservation() {
1953
+ disabled = true;
1954
+ }
1955
+ function enableObservation() {
1956
+ disabled = false;
1957
+ }
1958
+ var mo = null;
1959
+ function observe(options) {
1960
+ if (!MUTATION_OBSERVER) {
1961
+ return;
1962
+ }
1963
+
1964
+ if (!config.observeMutations) {
1965
+ return;
1966
+ }
1967
+
1968
+ var _options$treeCallback = options.treeCallback,
1969
+ treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,
1970
+ _options$nodeCallback = options.nodeCallback,
1971
+ nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,
1972
+ _options$pseudoElemen = options.pseudoElementsCallback,
1973
+ pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,
1974
+ _options$observeMutat = options.observeMutationsRoot,
1975
+ observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;
1976
+ mo = new MUTATION_OBSERVER(function (objects) {
1977
+ if (disabled) return;
1978
+ var defaultPrefix = getDefaultUsablePrefix();
1979
+ toArray(objects).forEach(function (mutationRecord) {
1980
+ if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {
1981
+ if (config.searchPseudoElements) {
1982
+ pseudoElementsCallback(mutationRecord.target);
1983
+ }
1984
+
1985
+ treeCallback(mutationRecord.target);
1986
+ }
1987
+
1988
+ if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {
1989
+ pseudoElementsCallback(mutationRecord.target.parentNode);
1990
+ }
1991
+
1992
+ if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {
1993
+ if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {
1994
+ var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),
1995
+ prefix = _getCanonicalIcon.prefix,
1996
+ iconName = _getCanonicalIcon.iconName;
1997
+
1998
+ mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);
1999
+ if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);
2000
+ } else if (hasBeenReplaced(mutationRecord.target)) {
2001
+ nodeCallback(mutationRecord.target);
2002
+ }
2003
+ }
2004
+ });
2005
+ });
2006
+ if (!IS_DOM) return;
2007
+ mo.observe(observeMutationsRoot, {
2008
+ childList: true,
2009
+ attributes: true,
2010
+ characterData: true,
2011
+ subtree: true
2012
+ });
2013
+ }
2014
+ function disconnect() {
2015
+ if (!mo) return;
2016
+ mo.disconnect();
2017
+ }
2018
+
2019
+ function styleParser (node) {
2020
+ var style = node.getAttribute('style');
2021
+ var val = [];
2022
+
2023
+ if (style) {
2024
+ val = style.split(';').reduce(function (acc, style) {
2025
+ var styles = style.split(':');
2026
+ var prop = styles[0];
2027
+ var value = styles.slice(1);
2028
+
2029
+ if (prop && value.length > 0) {
2030
+ acc[prop] = value.join(':').trim();
2031
+ }
2032
+
2033
+ return acc;
2034
+ }, {});
2035
+ }
2036
+
2037
+ return val;
2038
+ }
2039
+
2040
+ function classParser (node) {
2041
+ var existingPrefix = node.getAttribute('data-prefix');
2042
+ var existingIconName = node.getAttribute('data-icon');
2043
+ var innerText = node.innerText !== undefined ? node.innerText.trim() : '';
2044
+ var val = getCanonicalIcon(classArray(node));
2045
+
2046
+ if (!val.prefix) {
2047
+ val.prefix = getDefaultUsablePrefix();
2048
+ }
2049
+
2050
+ if (existingPrefix && existingIconName) {
2051
+ val.prefix = existingPrefix;
2052
+ val.iconName = existingIconName;
2053
+ }
2054
+
2055
+ if (val.iconName && val.prefix) {
2056
+ return val;
2057
+ }
2058
+
2059
+ if (val.prefix && innerText.length > 0) {
2060
+ val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));
2061
+ }
2062
+
2063
+ if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {
2064
+ val.iconName = node.firstChild.data;
2065
+ }
2066
+
2067
+ return val;
2068
+ }
2069
+
2070
+ function attributesParser (node) {
2071
+ var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {
2072
+ if (acc.name !== 'class' && acc.name !== 'style') {
2073
+ acc[attr.name] = attr.value;
2074
+ }
2075
+
2076
+ return acc;
2077
+ }, {});
2078
+ var title = node.getAttribute('title');
2079
+ var titleId = node.getAttribute('data-fa-title-id');
2080
+
2081
+ if (config.autoA11y) {
2082
+ if (title) {
2083
+ extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
2084
+ } else {
2085
+ extraAttributes['aria-hidden'] = 'true';
2086
+ extraAttributes['focusable'] = 'false';
2087
+ }
2088
+ }
2089
+
2090
+ return extraAttributes;
2091
+ }
2092
+
2093
+ function blankMeta() {
2094
+ return {
2095
+ iconName: null,
2096
+ title: null,
2097
+ titleId: null,
2098
+ prefix: null,
2099
+ transform: meaninglessTransform,
2100
+ symbol: false,
2101
+ mask: {
2102
+ iconName: null,
2103
+ prefix: null,
2104
+ rest: []
2105
+ },
2106
+ maskId: null,
2107
+ extra: {
2108
+ classes: [],
2109
+ styles: {},
2110
+ attributes: {}
2111
+ }
2112
+ };
2113
+ }
2114
+ function parseMeta(node) {
2115
+ var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
2116
+ styleParser: true
2117
+ };
2118
+
2119
+ var _classParser = classParser(node),
2120
+ iconName = _classParser.iconName,
2121
+ prefix = _classParser.prefix,
2122
+ extraClasses = _classParser.rest;
2123
+
2124
+ var extraAttributes = attributesParser(node);
2125
+ var pluginMeta = chainHooks('parseNodeAttributes', {}, node);
2126
+ var extraStyles = parser.styleParser ? styleParser(node) : [];
2127
+ return _objectSpread2({
2128
+ iconName: iconName,
2129
+ title: node.getAttribute('title'),
2130
+ titleId: node.getAttribute('data-fa-title-id'),
2131
+ prefix: prefix,
2132
+ transform: meaninglessTransform,
2133
+ mask: {
2134
+ iconName: null,
2135
+ prefix: null,
2136
+ rest: []
2137
+ },
2138
+ maskId: null,
2139
+ symbol: false,
2140
+ extra: {
2141
+ classes: extraClasses,
2142
+ styles: extraStyles,
2143
+ attributes: extraAttributes
2144
+ }
2145
+ }, pluginMeta);
2146
+ }
2147
+
2148
+ var styles$2 = namespace.styles;
2149
+
2150
+ function generateMutation(node) {
2151
+ var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {
2152
+ styleParser: false
2153
+ }) : parseMeta(node);
2154
+
2155
+ if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {
2156
+ return callProvided('generateLayersText', node, nodeMeta);
2157
+ } else {
2158
+ return callProvided('generateSvgReplacementMutation', node, nodeMeta);
2159
+ }
2160
+ }
2161
+
2162
+ var knownPrefixes = new Set();
2163
+ FAMILIES.map(function (family) {
2164
+ knownPrefixes.add("fa-".concat(family));
2165
+ });
2166
+ Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));
2167
+ Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));
2168
+ knownPrefixes = _toConsumableArray(knownPrefixes);
2169
+
2170
+ function onTree(root) {
2171
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2172
+ if (!IS_DOM) return Promise.resolve();
2173
+ var htmlClassList = DOCUMENT.documentElement.classList;
2174
+
2175
+ var hclAdd = function hclAdd(suffix) {
2176
+ return htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
2177
+ };
2178
+
2179
+ var hclRemove = function hclRemove(suffix) {
2180
+ return htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
2181
+ };
2182
+
2183
+ var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {
2184
+ return "fa-".concat(f);
2185
+ }).concat(Object.keys(styles$2));
2186
+
2187
+ if (!prefixes.includes('fa')) {
2188
+ prefixes.push('fa');
2189
+ }
2190
+
2191
+ var prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(function (p) {
2192
+ return ".".concat(p, ":not([").concat(DATA_FA_I2SVG, "])");
2193
+ })).join(', ');
2194
+
2195
+ if (prefixesDomQuery.length === 0) {
2196
+ return Promise.resolve();
2197
+ }
2198
+
2199
+ var candidates = [];
2200
+
2201
+ try {
2202
+ candidates = toArray(root.querySelectorAll(prefixesDomQuery));
2203
+ } catch (e) {// noop
2204
+ }
2205
+
2206
+ if (candidates.length > 0) {
2207
+ hclAdd('pending');
2208
+ hclRemove('complete');
2209
+ } else {
2210
+ return Promise.resolve();
2211
+ }
2212
+
2213
+ var mark = perf.begin('onTree');
2214
+ var mutations = candidates.reduce(function (acc, node) {
2215
+ try {
2216
+ var mutation = generateMutation(node);
2217
+
2218
+ if (mutation) {
2219
+ acc.push(mutation);
2220
+ }
2221
+ } catch (e) {
2222
+ if (!PRODUCTION) {
2223
+ if (e.name === 'MissingIcon') {
2224
+ console.error(e);
2225
+ }
2226
+ }
2227
+ }
2228
+
2229
+ return acc;
2230
+ }, []);
2231
+ return new Promise(function (resolve, reject) {
2232
+ Promise.all(mutations).then(function (resolvedMutations) {
2233
+ perform(resolvedMutations, function () {
2234
+ hclAdd('active');
2235
+ hclAdd('complete');
2236
+ hclRemove('pending');
2237
+ if (typeof callback === 'function') callback();
2238
+ mark();
2239
+ resolve();
2240
+ });
2241
+ }).catch(function (e) {
2242
+ mark();
2243
+ reject(e);
2244
+ });
2245
+ });
2246
+ }
2247
+
2248
+ function onNode(node) {
2249
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2250
+ generateMutation(node).then(function (mutation) {
2251
+ if (mutation) {
2252
+ perform([mutation], callback);
2253
+ }
2254
+ });
2255
+ }
2256
+
2257
+ function resolveIcons(next) {
2258
+ return function (maybeIconDefinition) {
2259
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2260
+ var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});
2261
+ var mask = params.mask;
2262
+
2263
+ if (mask) {
2264
+ mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});
2265
+ }
2266
+
2267
+ return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {
2268
+ mask: mask
2269
+ }));
2270
+ };
2271
+ }
2272
+
2273
+ var render = function render(iconDefinition) {
2274
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2275
+ var _params$transform = params.transform,
2276
+ transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,
2277
+ _params$symbol = params.symbol,
2278
+ symbol = _params$symbol === void 0 ? false : _params$symbol,
2279
+ _params$mask = params.mask,
2280
+ mask = _params$mask === void 0 ? null : _params$mask,
2281
+ _params$maskId = params.maskId,
2282
+ maskId = _params$maskId === void 0 ? null : _params$maskId,
2283
+ _params$title = params.title,
2284
+ title = _params$title === void 0 ? null : _params$title,
2285
+ _params$titleId = params.titleId,
2286
+ titleId = _params$titleId === void 0 ? null : _params$titleId,
2287
+ _params$classes = params.classes,
2288
+ classes = _params$classes === void 0 ? [] : _params$classes,
2289
+ _params$attributes = params.attributes,
2290
+ attributes = _params$attributes === void 0 ? {} : _params$attributes,
2291
+ _params$styles = params.styles,
2292
+ styles = _params$styles === void 0 ? {} : _params$styles;
2293
+ if (!iconDefinition) return;
2294
+ var prefix = iconDefinition.prefix,
2295
+ iconName = iconDefinition.iconName,
2296
+ icon = iconDefinition.icon;
2297
+ return domVariants(_objectSpread2({
2298
+ type: 'icon'
2299
+ }, iconDefinition), function () {
2300
+ callHooks('beforeDOMElementCreation', {
2301
+ iconDefinition: iconDefinition,
2302
+ params: params
2303
+ });
2304
+
2305
+ if (config.autoA11y) {
2306
+ if (title) {
2307
+ attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId());
2308
+ } else {
2309
+ attributes['aria-hidden'] = 'true';
2310
+ attributes['focusable'] = 'false';
2311
+ }
2312
+ }
2313
+
2314
+ return makeInlineSvgAbstract({
2315
+ icons: {
2316
+ main: asFoundIcon(icon),
2317
+ mask: mask ? asFoundIcon(mask.icon) : {
2318
+ found: false,
2319
+ width: null,
2320
+ height: null,
2321
+ icon: {}
2322
+ }
2323
+ },
2324
+ prefix: prefix,
2325
+ iconName: iconName,
2326
+ transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),
2327
+ symbol: symbol,
2328
+ title: title,
2329
+ maskId: maskId,
2330
+ titleId: titleId,
2331
+ extra: {
2332
+ attributes: attributes,
2333
+ styles: styles,
2334
+ classes: classes
2335
+ }
2336
+ });
2337
+ });
2338
+ };
2339
+ var ReplaceElements = {
2340
+ mixout: function mixout() {
2341
+ return {
2342
+ icon: resolveIcons(render)
2343
+ };
2344
+ },
2345
+ hooks: function hooks() {
2346
+ return {
2347
+ mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {
2348
+ accumulator.treeCallback = onTree;
2349
+ accumulator.nodeCallback = onNode;
2350
+ return accumulator;
2351
+ }
2352
+ };
2353
+ },
2354
+ provides: function provides(providers$$1) {
2355
+ providers$$1.i2svg = function (params) {
2356
+ var _params$node = params.node,
2357
+ node = _params$node === void 0 ? DOCUMENT : _params$node,
2358
+ _params$callback = params.callback,
2359
+ callback = _params$callback === void 0 ? function () {} : _params$callback;
2360
+ return onTree(node, callback);
2361
+ };
2362
+
2363
+ providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {
2364
+ var iconName = nodeMeta.iconName,
2365
+ title = nodeMeta.title,
2366
+ titleId = nodeMeta.titleId,
2367
+ prefix = nodeMeta.prefix,
2368
+ transform = nodeMeta.transform,
2369
+ symbol = nodeMeta.symbol,
2370
+ mask = nodeMeta.mask,
2371
+ maskId = nodeMeta.maskId,
2372
+ extra = nodeMeta.extra;
2373
+ return new Promise(function (resolve, reject) {
2374
+ Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({
2375
+ found: false,
2376
+ width: 512,
2377
+ height: 512,
2378
+ icon: {}
2379
+ })]).then(function (_ref) {
2380
+ var _ref2 = _slicedToArray(_ref, 2),
2381
+ main = _ref2[0],
2382
+ mask = _ref2[1];
2383
+
2384
+ resolve([node, makeInlineSvgAbstract({
2385
+ icons: {
2386
+ main: main,
2387
+ mask: mask
2388
+ },
2389
+ prefix: prefix,
2390
+ iconName: iconName,
2391
+ transform: transform,
2392
+ symbol: symbol,
2393
+ maskId: maskId,
2394
+ title: title,
2395
+ titleId: titleId,
2396
+ extra: extra,
2397
+ watchable: true
2398
+ })]);
2399
+ }).catch(reject);
2400
+ });
2401
+ };
2402
+
2403
+ providers$$1.generateAbstractIcon = function (_ref3) {
2404
+ var children = _ref3.children,
2405
+ attributes = _ref3.attributes,
2406
+ main = _ref3.main,
2407
+ transform = _ref3.transform,
2408
+ styles = _ref3.styles;
2409
+ var styleString = joinStyles(styles);
2410
+
2411
+ if (styleString.length > 0) {
2412
+ attributes['style'] = styleString;
2413
+ }
2414
+
2415
+ var nextChild;
2416
+
2417
+ if (transformIsMeaningful(transform)) {
2418
+ nextChild = callProvided('generateAbstractTransformGrouping', {
2419
+ main: main,
2420
+ transform: transform,
2421
+ containerWidth: main.width,
2422
+ iconWidth: main.width
2423
+ });
2424
+ }
2425
+
2426
+ children.push(nextChild || main.icon);
2427
+ return {
2428
+ children: children,
2429
+ attributes: attributes
2430
+ };
2431
+ };
2432
+ }
2433
+ };
2434
+
2435
+ var Layers = {
2436
+ mixout: function mixout() {
2437
+ return {
2438
+ layer: function layer(assembler) {
2439
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2440
+ var _params$classes = params.classes,
2441
+ classes = _params$classes === void 0 ? [] : _params$classes;
2442
+ return domVariants({
2443
+ type: 'layer'
2444
+ }, function () {
2445
+ callHooks('beforeDOMElementCreation', {
2446
+ assembler: assembler,
2447
+ params: params
2448
+ });
2449
+ var children = [];
2450
+ assembler(function (args) {
2451
+ Array.isArray(args) ? args.map(function (a) {
2452
+ children = children.concat(a.abstract);
2453
+ }) : children = children.concat(args.abstract);
2454
+ });
2455
+ return [{
2456
+ tag: 'span',
2457
+ attributes: {
2458
+ class: ["".concat(config.cssPrefix, "-layers")].concat(_toConsumableArray(classes)).join(' ')
2459
+ },
2460
+ children: children
2461
+ }];
2462
+ });
2463
+ }
2464
+ };
2465
+ }
2466
+ };
2467
+
2468
+ var LayersCounter = {
2469
+ mixout: function mixout() {
2470
+ return {
2471
+ counter: function counter(content) {
2472
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2473
+ var _params$title = params.title,
2474
+ title = _params$title === void 0 ? null : _params$title,
2475
+ _params$classes = params.classes,
2476
+ classes = _params$classes === void 0 ? [] : _params$classes,
2477
+ _params$attributes = params.attributes,
2478
+ attributes = _params$attributes === void 0 ? {} : _params$attributes,
2479
+ _params$styles = params.styles,
2480
+ styles = _params$styles === void 0 ? {} : _params$styles;
2481
+ return domVariants({
2482
+ type: 'counter',
2483
+ content: content
2484
+ }, function () {
2485
+ callHooks('beforeDOMElementCreation', {
2486
+ content: content,
2487
+ params: params
2488
+ });
2489
+ return makeLayersCounterAbstract({
2490
+ content: content.toString(),
2491
+ title: title,
2492
+ extra: {
2493
+ attributes: attributes,
2494
+ styles: styles,
2495
+ classes: ["".concat(config.cssPrefix, "-layers-counter")].concat(_toConsumableArray(classes))
2496
+ }
2497
+ });
2498
+ });
2499
+ }
2500
+ };
2501
+ }
2502
+ };
2503
+
2504
+ var LayersText = {
2505
+ mixout: function mixout() {
2506
+ return {
2507
+ text: function text(content) {
2508
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2509
+ var _params$transform = params.transform,
2510
+ transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,
2511
+ _params$title = params.title,
2512
+ title = _params$title === void 0 ? null : _params$title,
2513
+ _params$classes = params.classes,
2514
+ classes = _params$classes === void 0 ? [] : _params$classes,
2515
+ _params$attributes = params.attributes,
2516
+ attributes = _params$attributes === void 0 ? {} : _params$attributes,
2517
+ _params$styles = params.styles,
2518
+ styles = _params$styles === void 0 ? {} : _params$styles;
2519
+ return domVariants({
2520
+ type: 'text',
2521
+ content: content
2522
+ }, function () {
2523
+ callHooks('beforeDOMElementCreation', {
2524
+ content: content,
2525
+ params: params
2526
+ });
2527
+ return makeLayersTextAbstract({
2528
+ content: content,
2529
+ transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),
2530
+ title: title,
2531
+ extra: {
2532
+ attributes: attributes,
2533
+ styles: styles,
2534
+ classes: ["".concat(config.cssPrefix, "-layers-text")].concat(_toConsumableArray(classes))
2535
+ }
2536
+ });
2537
+ });
2538
+ }
2539
+ };
2540
+ },
2541
+ provides: function provides(providers$$1) {
2542
+ providers$$1.generateLayersText = function (node, nodeMeta) {
2543
+ var title = nodeMeta.title,
2544
+ transform = nodeMeta.transform,
2545
+ extra = nodeMeta.extra;
2546
+ var width = null;
2547
+ var height = null;
2548
+
2549
+ if (IS_IE) {
2550
+ var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);
2551
+ var boundingClientRect = node.getBoundingClientRect();
2552
+ width = boundingClientRect.width / computedFontSize;
2553
+ height = boundingClientRect.height / computedFontSize;
2554
+ }
2555
+
2556
+ if (config.autoA11y && !title) {
2557
+ extra.attributes['aria-hidden'] = 'true';
2558
+ }
2559
+
2560
+ return Promise.resolve([node, makeLayersTextAbstract({
2561
+ content: node.innerHTML,
2562
+ width: width,
2563
+ height: height,
2564
+ transform: transform,
2565
+ title: title,
2566
+ extra: extra,
2567
+ watchable: true
2568
+ })]);
2569
+ };
2570
+ }
2571
+ };
2572
+
2573
+ var CLEAN_CONTENT_PATTERN = new RegExp("\"", 'ug');
2574
+ var SECONDARY_UNICODE_RANGE = [1105920, 1112319];
2575
+ function hexValueFromContent(content) {
2576
+ var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');
2577
+ var codePoint = codePointAt(cleaned, 0);
2578
+ var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];
2579
+ var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;
2580
+ return {
2581
+ value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),
2582
+ isSecondary: isPrependTen || isDoubled
2583
+ };
2584
+ }
2585
+
2586
+ function replaceForPosition(node, position) {
2587
+ var pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));
2588
+ return new Promise(function (resolve, reject) {
2589
+ if (node.getAttribute(pendingAttribute) !== null) {
2590
+ // This node is already being processed
2591
+ return resolve();
2592
+ }
2593
+
2594
+ var children = toArray(node.children);
2595
+ var alreadyProcessedPseudoElement = children.filter(function (c) {
2596
+ return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;
2597
+ })[0];
2598
+ var styles = WINDOW.getComputedStyle(node, position);
2599
+ var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);
2600
+ var fontWeight = styles.getPropertyValue('font-weight');
2601
+ var content = styles.getPropertyValue('content');
2602
+
2603
+ if (alreadyProcessedPseudoElement && !fontFamily) {
2604
+ // If we've already processed it but the current computed style does not result in a font-family,
2605
+ // that probably means that a class name that was previously present to make the icon has been
2606
+ // removed. So we now should delete the icon.
2607
+ node.removeChild(alreadyProcessedPseudoElement);
2608
+ return resolve();
2609
+ } else if (fontFamily && content !== 'none' && content !== '') {
2610
+ var _content = styles.getPropertyValue('content');
2611
+
2612
+ var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;
2613
+ var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];
2614
+
2615
+ var _hexValueFromContent = hexValueFromContent(_content),
2616
+ hexValue = _hexValueFromContent.value,
2617
+ isSecondary = _hexValueFromContent.isSecondary;
2618
+
2619
+ var isV4 = fontFamily[0].startsWith('FontAwesome');
2620
+ var iconName = byUnicode(prefix, hexValue);
2621
+ var iconIdentifier = iconName;
2622
+
2623
+ if (isV4) {
2624
+ var iconName4 = byOldUnicode(hexValue);
2625
+
2626
+ if (iconName4.iconName && iconName4.prefix) {
2627
+ iconName = iconName4.iconName;
2628
+ prefix = iconName4.prefix;
2629
+ }
2630
+ } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't
2631
+ // already done so with the same prefix and iconName
2632
+
2633
+
2634
+ if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {
2635
+ node.setAttribute(pendingAttribute, iconIdentifier);
2636
+
2637
+ if (alreadyProcessedPseudoElement) {
2638
+ // Delete the old one, since we're replacing it with a new one
2639
+ node.removeChild(alreadyProcessedPseudoElement);
2640
+ }
2641
+
2642
+ var meta = blankMeta();
2643
+ var extra = meta.extra;
2644
+ extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;
2645
+ findIcon(iconName, prefix).then(function (main) {
2646
+ var _abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {
2647
+ icons: {
2648
+ main: main,
2649
+ mask: emptyCanonicalIcon()
2650
+ },
2651
+ prefix: prefix,
2652
+ iconName: iconIdentifier,
2653
+ extra: extra,
2654
+ watchable: true
2655
+ }));
2656
+
2657
+ var element = DOCUMENT.createElement('svg');
2658
+
2659
+ if (position === '::before') {
2660
+ node.insertBefore(element, node.firstChild);
2661
+ } else {
2662
+ node.appendChild(element);
2663
+ }
2664
+
2665
+ element.outerHTML = _abstract.map(function (a) {
2666
+ return toHtml(a);
2667
+ }).join('\n');
2668
+ node.removeAttribute(pendingAttribute);
2669
+ resolve();
2670
+ }).catch(reject);
2671
+ } else {
2672
+ resolve();
2673
+ }
2674
+ } else {
2675
+ resolve();
2676
+ }
2677
+ });
2678
+ }
2679
+
2680
+ function replace(node) {
2681
+ return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);
2682
+ }
2683
+
2684
+ function processable(node) {
2685
+ return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');
2686
+ }
2687
+
2688
+ function searchPseudoElements(root) {
2689
+ if (!IS_DOM) return;
2690
+ return new Promise(function (resolve, reject) {
2691
+ var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);
2692
+ var end = perf.begin('searchPseudoElements');
2693
+ disableObservation();
2694
+ Promise.all(operations).then(function () {
2695
+ end();
2696
+ enableObservation();
2697
+ resolve();
2698
+ }).catch(function () {
2699
+ end();
2700
+ enableObservation();
2701
+ reject();
2702
+ });
2703
+ });
2704
+ }
2705
+
2706
+ var PseudoElements = {
2707
+ hooks: function hooks() {
2708
+ return {
2709
+ mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {
2710
+ accumulator.pseudoElementsCallback = searchPseudoElements;
2711
+ return accumulator;
2712
+ }
2713
+ };
2714
+ },
2715
+ provides: function provides(providers$$1) {
2716
+ providers$$1.pseudoElements2svg = function (params) {
2717
+ var _params$node = params.node,
2718
+ node = _params$node === void 0 ? DOCUMENT : _params$node;
2719
+
2720
+ if (config.searchPseudoElements) {
2721
+ searchPseudoElements(node);
2722
+ }
2723
+ };
2724
+ }
2725
+ };
2726
+
2727
+ var _unwatched = false;
2728
+ var MutationObserver$1 = {
2729
+ mixout: function mixout() {
2730
+ return {
2731
+ dom: {
2732
+ unwatch: function unwatch() {
2733
+ disableObservation();
2734
+ _unwatched = true;
2735
+ }
2736
+ }
2737
+ };
2738
+ },
2739
+ hooks: function hooks() {
2740
+ return {
2741
+ bootstrap: function bootstrap() {
2742
+ observe(chainHooks('mutationObserverCallbacks', {}));
2743
+ },
2744
+ noAuto: function noAuto() {
2745
+ disconnect();
2746
+ },
2747
+ watch: function watch(params) {
2748
+ var observeMutationsRoot = params.observeMutationsRoot;
2749
+
2750
+ if (_unwatched) {
2751
+ enableObservation();
2752
+ } else {
2753
+ observe(chainHooks('mutationObserverCallbacks', {
2754
+ observeMutationsRoot: observeMutationsRoot
2755
+ }));
2756
+ }
2757
+ }
2758
+ };
2759
+ }
2760
+ };
2761
+
2762
+ var parseTransformString = function parseTransformString(transformString) {
2763
+ var transform = {
2764
+ size: 16,
2765
+ x: 0,
2766
+ y: 0,
2767
+ flipX: false,
2768
+ flipY: false,
2769
+ rotate: 0
2770
+ };
2771
+ return transformString.toLowerCase().split(' ').reduce(function (acc, n) {
2772
+ var parts = n.toLowerCase().split('-');
2773
+ var first = parts[0];
2774
+ var rest = parts.slice(1).join('-');
2775
+
2776
+ if (first && rest === 'h') {
2777
+ acc.flipX = true;
2778
+ return acc;
2779
+ }
2780
+
2781
+ if (first && rest === 'v') {
2782
+ acc.flipY = true;
2783
+ return acc;
2784
+ }
2785
+
2786
+ rest = parseFloat(rest);
2787
+
2788
+ if (isNaN(rest)) {
2789
+ return acc;
2790
+ }
2791
+
2792
+ switch (first) {
2793
+ case 'grow':
2794
+ acc.size = acc.size + rest;
2795
+ break;
2796
+
2797
+ case 'shrink':
2798
+ acc.size = acc.size - rest;
2799
+ break;
2800
+
2801
+ case 'left':
2802
+ acc.x = acc.x - rest;
2803
+ break;
2804
+
2805
+ case 'right':
2806
+ acc.x = acc.x + rest;
2807
+ break;
2808
+
2809
+ case 'up':
2810
+ acc.y = acc.y - rest;
2811
+ break;
2812
+
2813
+ case 'down':
2814
+ acc.y = acc.y + rest;
2815
+ break;
2816
+
2817
+ case 'rotate':
2818
+ acc.rotate = acc.rotate + rest;
2819
+ break;
2820
+ }
2821
+
2822
+ return acc;
2823
+ }, transform);
2824
+ };
2825
+ var PowerTransforms = {
2826
+ mixout: function mixout() {
2827
+ return {
2828
+ parse: {
2829
+ transform: function transform(transformString) {
2830
+ return parseTransformString(transformString);
2831
+ }
2832
+ }
2833
+ };
2834
+ },
2835
+ hooks: function hooks() {
2836
+ return {
2837
+ parseNodeAttributes: function parseNodeAttributes(accumulator, node) {
2838
+ var transformString = node.getAttribute('data-fa-transform');
2839
+
2840
+ if (transformString) {
2841
+ accumulator.transform = parseTransformString(transformString);
2842
+ }
2843
+
2844
+ return accumulator;
2845
+ }
2846
+ };
2847
+ },
2848
+ provides: function provides(providers) {
2849
+ providers.generateAbstractTransformGrouping = function (_ref) {
2850
+ var main = _ref.main,
2851
+ transform = _ref.transform,
2852
+ containerWidth = _ref.containerWidth,
2853
+ iconWidth = _ref.iconWidth;
2854
+ var outer = {
2855
+ transform: "translate(".concat(containerWidth / 2, " 256)")
2856
+ };
2857
+ var innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") ");
2858
+ var innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") ");
2859
+ var innerRotate = "rotate(".concat(transform.rotate, " 0 0)");
2860
+ var inner = {
2861
+ transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
2862
+ };
2863
+ var path = {
2864
+ transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
2865
+ };
2866
+ var operations = {
2867
+ outer: outer,
2868
+ inner: inner,
2869
+ path: path
2870
+ };
2871
+ return {
2872
+ tag: 'g',
2873
+ attributes: _objectSpread2({}, operations.outer),
2874
+ children: [{
2875
+ tag: 'g',
2876
+ attributes: _objectSpread2({}, operations.inner),
2877
+ children: [{
2878
+ tag: main.icon.tag,
2879
+ children: main.icon.children,
2880
+ attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)
2881
+ }]
2882
+ }]
2883
+ };
2884
+ };
2885
+ }
2886
+ };
2887
+
2888
+ var ALL_SPACE = {
2889
+ x: 0,
2890
+ y: 0,
2891
+ width: '100%',
2892
+ height: '100%'
2893
+ };
2894
+
2895
+ function fillBlack(_abstract) {
2896
+ var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2897
+
2898
+ if (_abstract.attributes && (_abstract.attributes.fill || force)) {
2899
+ _abstract.attributes.fill = 'black';
2900
+ }
2901
+
2902
+ return _abstract;
2903
+ }
2904
+
2905
+ function deGroup(_abstract2) {
2906
+ if (_abstract2.tag === 'g') {
2907
+ return _abstract2.children;
2908
+ } else {
2909
+ return [_abstract2];
2910
+ }
2911
+ }
2912
+
2913
+ var Masks = {
2914
+ hooks: function hooks() {
2915
+ return {
2916
+ parseNodeAttributes: function parseNodeAttributes(accumulator, node) {
2917
+ var maskData = node.getAttribute('data-fa-mask');
2918
+ var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {
2919
+ return i.trim();
2920
+ }));
2921
+
2922
+ if (!mask.prefix) {
2923
+ mask.prefix = getDefaultUsablePrefix();
2924
+ }
2925
+
2926
+ accumulator.mask = mask;
2927
+ accumulator.maskId = node.getAttribute('data-fa-mask-id');
2928
+ return accumulator;
2929
+ }
2930
+ };
2931
+ },
2932
+ provides: function provides(providers) {
2933
+ providers.generateAbstractMask = function (_ref) {
2934
+ var children = _ref.children,
2935
+ attributes = _ref.attributes,
2936
+ main = _ref.main,
2937
+ mask = _ref.mask,
2938
+ explicitMaskId = _ref.maskId,
2939
+ transform = _ref.transform;
2940
+ var mainWidth = main.width,
2941
+ mainPath = main.icon;
2942
+ var maskWidth = mask.width,
2943
+ maskPath = mask.icon;
2944
+ var trans = transformForSvg({
2945
+ transform: transform,
2946
+ containerWidth: maskWidth,
2947
+ iconWidth: mainWidth
2948
+ });
2949
+ var maskRect = {
2950
+ tag: 'rect',
2951
+ attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {
2952
+ fill: 'white'
2953
+ })
2954
+ };
2955
+ var maskInnerGroupChildrenMixin = mainPath.children ? {
2956
+ children: mainPath.children.map(fillBlack)
2957
+ } : {};
2958
+ var maskInnerGroup = {
2959
+ tag: 'g',
2960
+ attributes: _objectSpread2({}, trans.inner),
2961
+ children: [fillBlack(_objectSpread2({
2962
+ tag: mainPath.tag,
2963
+ attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)
2964
+ }, maskInnerGroupChildrenMixin))]
2965
+ };
2966
+ var maskOuterGroup = {
2967
+ tag: 'g',
2968
+ attributes: _objectSpread2({}, trans.outer),
2969
+ children: [maskInnerGroup]
2970
+ };
2971
+ var maskId = "mask-".concat(explicitMaskId || nextUniqueId());
2972
+ var clipId = "clip-".concat(explicitMaskId || nextUniqueId());
2973
+ var maskTag = {
2974
+ tag: 'mask',
2975
+ attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {
2976
+ id: maskId,
2977
+ maskUnits: 'userSpaceOnUse',
2978
+ maskContentUnits: 'userSpaceOnUse'
2979
+ }),
2980
+ children: [maskRect, maskOuterGroup]
2981
+ };
2982
+ var defs = {
2983
+ tag: 'defs',
2984
+ children: [{
2985
+ tag: 'clipPath',
2986
+ attributes: {
2987
+ id: clipId
2988
+ },
2989
+ children: deGroup(maskPath)
2990
+ }, maskTag]
2991
+ };
2992
+ children.push(defs, {
2993
+ tag: 'rect',
2994
+ attributes: _objectSpread2({
2995
+ fill: 'currentColor',
2996
+ 'clip-path': "url(#".concat(clipId, ")"),
2997
+ mask: "url(#".concat(maskId, ")")
2998
+ }, ALL_SPACE)
2999
+ });
3000
+ return {
3001
+ children: children,
3002
+ attributes: attributes
3003
+ };
3004
+ };
3005
+ }
3006
+ };
3007
+
3008
+ var MissingIconIndicator = {
3009
+ provides: function provides(providers) {
3010
+ var reduceMotion = false;
3011
+
3012
+ if (WINDOW.matchMedia) {
3013
+ reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;
3014
+ }
3015
+
3016
+ providers.missingIconAbstract = function () {
3017
+ var gChildren = [];
3018
+ var FILL = {
3019
+ fill: 'currentColor'
3020
+ };
3021
+ var ANIMATION_BASE = {
3022
+ attributeType: 'XML',
3023
+ repeatCount: 'indefinite',
3024
+ dur: '2s'
3025
+ }; // Ring
3026
+
3027
+ gChildren.push({
3028
+ tag: 'path',
3029
+ attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
3030
+ d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'
3031
+ })
3032
+ });
3033
+
3034
+ var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {
3035
+ attributeName: 'opacity'
3036
+ });
3037
+
3038
+ var dot = {
3039
+ tag: 'circle',
3040
+ attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
3041
+ cx: '256',
3042
+ cy: '364',
3043
+ r: '28'
3044
+ }),
3045
+ children: []
3046
+ };
3047
+
3048
+ if (!reduceMotion) {
3049
+ dot.children.push({
3050
+ tag: 'animate',
3051
+ attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {
3052
+ attributeName: 'r',
3053
+ values: '28;14;28;28;14;28;'
3054
+ })
3055
+ }, {
3056
+ tag: 'animate',
3057
+ attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
3058
+ values: '1;0;1;1;0;1;'
3059
+ })
3060
+ });
3061
+ }
3062
+
3063
+ gChildren.push(dot);
3064
+ gChildren.push({
3065
+ tag: 'path',
3066
+ attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
3067
+ opacity: '1',
3068
+ d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'
3069
+ }),
3070
+ children: reduceMotion ? [] : [{
3071
+ tag: 'animate',
3072
+ attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
3073
+ values: '1;0;0;0;0;1;'
3074
+ })
3075
+ }]
3076
+ });
3077
+
3078
+ if (!reduceMotion) {
3079
+ // Exclamation
3080
+ gChildren.push({
3081
+ tag: 'path',
3082
+ attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {
3083
+ opacity: '0',
3084
+ d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'
3085
+ }),
3086
+ children: [{
3087
+ tag: 'animate',
3088
+ attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {
3089
+ values: '0;0;1;1;0;0;'
3090
+ })
3091
+ }]
3092
+ });
3093
+ }
3094
+
3095
+ return {
3096
+ tag: 'g',
3097
+ attributes: {
3098
+ 'class': 'missing'
3099
+ },
3100
+ children: gChildren
3101
+ };
3102
+ };
3103
+ }
3104
+ };
3105
+
3106
+ var SvgSymbols = {
3107
+ hooks: function hooks() {
3108
+ return {
3109
+ parseNodeAttributes: function parseNodeAttributes(accumulator, node) {
3110
+ var symbolData = node.getAttribute('data-fa-symbol');
3111
+ var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;
3112
+ accumulator['symbol'] = symbol;
3113
+ return accumulator;
3114
+ }
3115
+ };
3116
+ }
3117
+ };
3118
+
3119
+ var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];
3120
+
3121
+ registerPlugins(plugins, {
3122
+ mixoutsTo: api
3123
+ });
3124
+ bunker(bootstrap);
3125
+
3126
+ }());