ui_bibz 3.0.13 → 4.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
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
+ }());