@eui/core 23.0.0-alpha.1 → 23.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/CHANGELOG.md +455 -0
  2. package/assets/i18n-eui/bg.json +7 -0
  3. package/assets/i18n-eui/cs.json +7 -0
  4. package/assets/i18n-eui/da.json +7 -0
  5. package/assets/i18n-eui/de.json +7 -0
  6. package/assets/i18n-eui/el.json +7 -0
  7. package/assets/i18n-eui/en.json +8 -1
  8. package/assets/i18n-eui/es.json +7 -0
  9. package/assets/i18n-eui/et.json +7 -0
  10. package/assets/i18n-eui/fi.json +7 -0
  11. package/assets/i18n-eui/fr.json +8 -1
  12. package/assets/i18n-eui/ga.json +7 -0
  13. package/assets/i18n-eui/hr.json +7 -0
  14. package/assets/i18n-eui/hu.json +7 -0
  15. package/assets/i18n-eui/it.json +7 -0
  16. package/assets/i18n-eui/lt.json +7 -0
  17. package/assets/i18n-eui/lv.json +7 -0
  18. package/assets/i18n-eui/mt.json +7 -0
  19. package/assets/i18n-eui/nl.json +7 -0
  20. package/assets/i18n-eui/pl.json +7 -0
  21. package/assets/i18n-eui/pt.json +7 -0
  22. package/assets/i18n-eui/ro.json +7 -0
  23. package/assets/i18n-eui/sk.json +7 -0
  24. package/assets/i18n-eui/sl.json +7 -0
  25. package/assets/i18n-eui/sv.json +7 -0
  26. package/docs/architecture.html +223 -0
  27. package/docs/changelog.html +773 -2
  28. package/docs/classes/ActivatedRouteAction.html +70 -20
  29. package/docs/classes/AddApiQueueItemAction.html +70 -20
  30. package/docs/classes/AddAppLoadedConfigModulesAction.html +70 -20
  31. package/docs/classes/ApiQueueServiceMock.html +77 -20
  32. package/docs/classes/AsyncStorageService.html +86 -20
  33. package/docs/classes/AsyncStorageServiceMock.html +73 -17
  34. package/docs/classes/CssUtils.html +74 -20
  35. package/docs/classes/EmptyApiQueueAction.html +67 -17
  36. package/docs/classes/ErrorSubClass.html +68 -16
  37. package/docs/classes/EuiAppShellServiceMock.html +505 -0
  38. package/docs/classes/EuiCoreRootGuardClass.html +39 -8
  39. package/docs/classes/EuiError.html +69 -17
  40. package/docs/classes/I18nResourceImpl.html +50 -17
  41. package/docs/classes/InitStoreAction.html +70 -20
  42. package/docs/classes/LogServiceMock.html +67 -17
  43. package/docs/classes/RemoveApiQueueItemAction.html +67 -17
  44. package/docs/classes/StorageService.html +83 -19
  45. package/docs/classes/StorageServiceMock.html +70 -17
  46. package/docs/classes/TranslateServiceMock.html +90 -35
  47. package/docs/classes/UpdateAppConnectionAction.html +67 -17
  48. package/docs/classes/UpdateAppStatusAction.html +67 -17
  49. package/docs/classes/UpdateAppVersionAction.html +67 -17
  50. package/docs/classes/UpdateCurrentModuleAction.html +67 -17
  51. package/docs/classes/UpdateI18nStateAction.html +67 -17
  52. package/docs/classes/UpdateLocaleStateAction.html +67 -17
  53. package/docs/classes/UpdateNotificationsListAction.html +67 -17
  54. package/docs/classes/UpdateUserDashboardAction.html +67 -17
  55. package/docs/classes/UpdateUserDetailsAction.html +67 -17
  56. package/docs/classes/UpdateUserPreferencesAction.html +67 -17
  57. package/docs/classes/UpdateUserRightsAction.html +67 -17
  58. package/docs/classes/UpdateUserStateAction.html +67 -17
  59. package/docs/dependencies.html +38 -4
  60. package/docs/directives/TranslateMockDirective.html +72 -19
  61. package/docs/index.html +26 -2
  62. package/docs/injectables/ApiQueueService.html +97 -20
  63. package/docs/injectables/EuiAppShellService.html +147 -68
  64. package/docs/injectables/EuiDynamicComponentService.html +51 -18
  65. package/docs/injectables/EuiDynamicMenuService.html +67 -20
  66. package/docs/injectables/EuiGrowlService.html +85 -21
  67. package/docs/injectables/EuiLoaderService.html +65 -17
  68. package/docs/injectables/EuiPermissionService.html +95 -20
  69. package/docs/injectables/EuiThemeService.html +94 -107
  70. package/docs/injectables/EuiTimezoneService.html +51 -16
  71. package/docs/injectables/GlobalErrorHandler.html +79 -17
  72. package/docs/injectables/I18nLoader.html +53 -17
  73. package/docs/injectables/I18nService.html +101 -23
  74. package/docs/injectables/I18nServiceMock.html +96 -34
  75. package/docs/injectables/LocalForageService.html +81 -21
  76. package/docs/injectables/LocalStorageService.html +78 -21
  77. package/docs/injectables/LocaleService.html +124 -41
  78. package/docs/injectables/LocaleServiceMock.html +72 -18
  79. package/docs/injectables/LogService.html +68 -17
  80. package/docs/injectables/SessionStorageService.html +78 -21
  81. package/docs/injectables/StoreService.html +91 -22
  82. package/docs/injectables/StoreServiceMock.html +72 -17
  83. package/docs/injectables/UserService.html +97 -23
  84. package/docs/injectables/UserServiceMock.html +81 -23
  85. package/docs/interceptors/AddLangParamInterceptor.html +49 -18
  86. package/docs/interceptors/CachePreventionInterceptor.html +48 -17
  87. package/docs/interceptors/CorsSecurityInterceptor.html +48 -17
  88. package/docs/interceptors/CsrfPreventionInterceptor.html +48 -17
  89. package/docs/interceptors/EuLoginSessionTimeoutHandlingInterceptor.html +48 -17
  90. package/docs/interceptors/HttpErrorHandlerInterceptor.html +48 -17
  91. package/docs/interceptors/UxRequestErrorModelInterceptor.html +48 -17
  92. package/docs/interfaces/Action.html +158 -60
  93. package/docs/interfaces/ActionReducer.html +84 -55
  94. package/docs/interfaces/ComponentInfo.html +395 -0
  95. package/docs/interfaces/Dependency.html +278 -250
  96. package/docs/interfaces/Edit-1.html +395 -0
  97. package/docs/interfaces/Edit-2.html +395 -0
  98. package/docs/interfaces/Edit.html +395 -0
  99. package/docs/interfaces/EuiComponentEntry.html +485 -0
  100. package/docs/interfaces/EuiTimeZone.html +121 -93
  101. package/docs/interfaces/IEuiTheme.html +181 -153
  102. package/docs/interfaces/ImportToAdd.html +413 -0
  103. package/docs/interfaces/ImportsArrayInfo.html +356 -0
  104. package/docs/interfaces/Library.html +169 -137
  105. package/docs/interfaces/LoadedResources.html +164 -136
  106. package/docs/interfaces/LoadedResourcesError.html +121 -93
  107. package/docs/interfaces/MemoizedSelector.html +187 -138
  108. package/docs/interfaces/MemoizedSelectorWithProps.html +188 -139
  109. package/docs/interfaces/MigrateAllSchema.html +458 -0
  110. package/docs/interfaces/MigrationResult.html +395 -0
  111. package/docs/interfaces/ModuleLoadEvent.html +164 -136
  112. package/docs/interfaces/ModuleMapping.html +356 -0
  113. package/docs/interfaces/NgModuleInfo.html +395 -0
  114. package/docs/interfaces/Policy.html +164 -136
  115. package/docs/interfaces/ResourceError.html +170 -142
  116. package/docs/interfaces/Schema-1.html +368 -0
  117. package/docs/interfaces/Schema-10.html +368 -0
  118. package/docs/interfaces/Schema-11.html +368 -0
  119. package/docs/interfaces/Schema-12.html +368 -0
  120. package/docs/interfaces/Schema-13.html +368 -0
  121. package/docs/interfaces/Schema-14.html +368 -0
  122. package/docs/interfaces/Schema-15.html +368 -0
  123. package/docs/interfaces/Schema-16.html +368 -0
  124. package/docs/interfaces/Schema-17.html +368 -0
  125. package/docs/interfaces/Schema-18.html +368 -0
  126. package/docs/interfaces/Schema-19.html +368 -0
  127. package/docs/interfaces/Schema-2.html +380 -0
  128. package/docs/interfaces/Schema-20.html +368 -0
  129. package/docs/interfaces/Schema-3.html +431 -0
  130. package/docs/interfaces/Schema-4.html +368 -0
  131. package/docs/interfaces/Schema-5.html +368 -0
  132. package/docs/interfaces/Schema-6.html +368 -0
  133. package/docs/interfaces/Schema-7.html +368 -0
  134. package/docs/interfaces/Schema-8.html +368 -0
  135. package/docs/interfaces/Schema-9.html +368 -0
  136. package/docs/interfaces/Schema.html +413 -0
  137. package/docs/interfaces/SelectorEntry.html +511 -0
  138. package/docs/interfaces/TextChange.html +395 -0
  139. package/docs/interfaces/ThemeState.html +121 -93
  140. package/docs/interfaces/TranslationKeys.html +41 -11
  141. package/docs/interfaces/UIState.html +1669 -1641
  142. package/docs/interfaces/body.html +181 -153
  143. package/docs/js/architecture-graph.js +288 -0
  144. package/docs/js/libs/bootstrap-native.js +4 -2
  145. package/docs/js/libs/tablesort.min.js +3 -3
  146. package/docs/js/libs/tablesort.number.min.js +2 -2
  147. package/docs/js/libs/vis-network.min.js +7 -7
  148. package/docs/js/menu-wc.js +152 -14
  149. package/docs/js/routes.js +138 -37
  150. package/docs/js/search/search.js +62 -0
  151. package/docs/js/search/search_index.js +2 -2
  152. package/docs/js/tabs.js +98 -15
  153. package/docs/js/tree.js +44 -7
  154. package/docs/json/EuiPermissionService.md +1 -0
  155. package/docs/json/LocaleService.md +1 -0
  156. package/docs/json/documentation.json +43075 -14389
  157. package/docs/license.html +26 -2
  158. package/docs/llms.txt +2282 -0
  159. package/docs/miscellaneous/enumerations.html +38 -34
  160. package/docs/miscellaneous/functions.html +19294 -769
  161. package/docs/miscellaneous/typealiases.html +59 -27
  162. package/docs/miscellaneous/variables.html +4226 -1284
  163. package/docs/modules/CoreModule.html +34 -9
  164. package/docs/modules/I18nModule.html +34 -9
  165. package/docs/modules/LogModule.html +34 -9
  166. package/docs/modules/TranslateMockModule.html +60 -13
  167. package/docs/modules.html +26 -2
  168. package/docs/overview.html +29 -5
  169. package/docs/pipes/TranslateMockPipe.html +87 -9
  170. package/docs/properties.html +27 -3
  171. package/docs/routes.html +26 -2
  172. package/docs/styles/compodoc.css +365 -44
  173. package/docs/styles/dark.css +16 -0
  174. package/docs/template-playground/hbs-render.service.ts +6 -1
  175. package/fesm2022/eui-core.mjs +319 -145
  176. package/fesm2022/eui-core.mjs.map +1 -1
  177. package/package.json +16 -11
  178. package/schematics/add-eui-imports/index.d.ts +8 -0
  179. package/schematics/add-eui-imports/index.js +525 -0
  180. package/schematics/add-eui-imports/index.js.map +1 -0
  181. package/schematics/add-eui-imports/schema.json +24 -0
  182. package/schematics/add-eui-imports/selector-map.d.ts +35 -0
  183. package/schematics/add-eui-imports/selector-map.js +246 -0
  184. package/schematics/add-eui-imports/selector-map.js.map +1 -0
  185. package/schematics/collection.json +118 -0
  186. package/schematics/fix-no-multiple-empty-lines/index.d.ts +7 -0
  187. package/schematics/fix-no-multiple-empty-lines/index.js +90 -0
  188. package/schematics/fix-no-multiple-empty-lines/index.js.map +1 -0
  189. package/schematics/fix-no-multiple-empty-lines/schema.json +19 -0
  190. package/schematics/icon-migrate/index.d.ts +3 -0
  191. package/schematics/icon-migrate/index.js +228 -0
  192. package/schematics/icon-migrate/index.js.map +1 -0
  193. package/schematics/icon-migrate/schema.d.ts +6 -0
  194. package/schematics/icon-migrate/schema.js +3 -0
  195. package/schematics/icon-migrate/schema.js.map +1 -0
  196. package/schematics/icon-migrate/schema.json +20 -0
  197. package/schematics/migrate/index.d.ts +3 -0
  198. package/schematics/migrate/index.js +98 -0
  199. package/schematics/migrate/index.js.map +1 -0
  200. package/schematics/migrate/replacements/breaking-changes.d.ts +6 -0
  201. package/schematics/migrate/replacements/breaking-changes.js +173 -0
  202. package/schematics/migrate/replacements/breaking-changes.js.map +1 -0
  203. package/schematics/migrate/replacements/eui-modules.d.ts +29 -0
  204. package/schematics/migrate/replacements/eui-modules.js +231 -0
  205. package/schematics/migrate/replacements/eui-modules.js.map +1 -0
  206. package/schematics/migrate/replacements/icons.d.ts +14 -0
  207. package/schematics/migrate/replacements/icons.js +235 -0
  208. package/schematics/migrate/replacements/icons.js.map +1 -0
  209. package/schematics/migrate/replacements/mwp.d.ts +6 -0
  210. package/schematics/migrate/replacements/mwp.js +148 -0
  211. package/schematics/migrate/replacements/mwp.js.map +1 -0
  212. package/schematics/migrate/schema.d.ts +8 -0
  213. package/schematics/migrate/schema.js +3 -0
  214. package/schematics/migrate/schema.js.map +1 -0
  215. package/schematics/migrate/schema.json +25 -0
  216. package/schematics/migrate/utils.d.ts +21 -0
  217. package/schematics/migrate/utils.js +106 -0
  218. package/schematics/migrate/utils.js.map +1 -0
  219. package/schematics/migrate-all/index.d.ts +8 -0
  220. package/schematics/migrate-all/index.js +30 -0
  221. package/schematics/migrate-all/index.js.map +1 -0
  222. package/schematics/migrate-all/schema.json +30 -0
  223. package/schematics/migrate-eui-accent/index.d.ts +7 -0
  224. package/schematics/migrate-eui-accent/index.js +193 -0
  225. package/schematics/migrate-eui-accent/index.js.map +1 -0
  226. package/schematics/migrate-eui-accent/schema.json +19 -0
  227. package/schematics/migrate-eui-alert/index.d.ts +7 -0
  228. package/schematics/migrate-eui-alert/index.js +152 -0
  229. package/schematics/migrate-eui-alert/index.js.map +1 -0
  230. package/schematics/migrate-eui-alert/schema.json +19 -0
  231. package/schematics/migrate-eui-avatar/index.d.ts +7 -0
  232. package/schematics/migrate-eui-avatar/index.js +155 -0
  233. package/schematics/migrate-eui-avatar/index.js.map +1 -0
  234. package/schematics/migrate-eui-avatar/schema.json +19 -0
  235. package/schematics/migrate-eui-button/index.d.ts +7 -0
  236. package/schematics/migrate-eui-button/index.js +191 -0
  237. package/schematics/migrate-eui-button/index.js.map +1 -0
  238. package/schematics/migrate-eui-button/schema.json +19 -0
  239. package/schematics/migrate-eui-chip/index.d.ts +7 -0
  240. package/schematics/migrate-eui-chip/index.js +153 -0
  241. package/schematics/migrate-eui-chip/index.js.map +1 -0
  242. package/schematics/migrate-eui-chip/schema.json +19 -0
  243. package/schematics/migrate-eui-chip-list/index.d.ts +7 -0
  244. package/schematics/migrate-eui-chip-list/index.js +472 -0
  245. package/schematics/migrate-eui-chip-list/index.js.map +1 -0
  246. package/schematics/migrate-eui-chip-list/schema.json +19 -0
  247. package/schematics/migrate-eui-discussion-thread/index.d.ts +7 -0
  248. package/schematics/migrate-eui-discussion-thread/index.js +143 -0
  249. package/schematics/migrate-eui-discussion-thread/index.js.map +1 -0
  250. package/schematics/migrate-eui-discussion-thread/schema.json +19 -0
  251. package/schematics/migrate-eui-editor/index.d.ts +7 -0
  252. package/schematics/migrate-eui-editor/index.js +198 -0
  253. package/schematics/migrate-eui-editor/index.js.map +1 -0
  254. package/schematics/migrate-eui-editor/schema.json +19 -0
  255. package/schematics/migrate-eui-fieldset/index.d.ts +7 -0
  256. package/schematics/migrate-eui-fieldset/index.js +186 -0
  257. package/schematics/migrate-eui-fieldset/index.js.map +1 -0
  258. package/schematics/migrate-eui-fieldset/schema.json +19 -0
  259. package/schematics/migrate-eui-icon-svg/index.d.ts +7 -0
  260. package/schematics/migrate-eui-icon-svg/index.js +197 -0
  261. package/schematics/migrate-eui-icon-svg/index.js.map +1 -0
  262. package/schematics/migrate-eui-icon-svg/schema.json +19 -0
  263. package/schematics/migrate-eui-icon-toggle/index.d.ts +7 -0
  264. package/schematics/migrate-eui-icon-toggle/index.js +194 -0
  265. package/schematics/migrate-eui-icon-toggle/index.js.map +1 -0
  266. package/schematics/migrate-eui-icon-toggle/schema.json +19 -0
  267. package/schematics/migrate-eui-popover/index.d.ts +7 -0
  268. package/schematics/migrate-eui-popover/index.js +152 -0
  269. package/schematics/migrate-eui-popover/index.js.map +1 -0
  270. package/schematics/migrate-eui-popover/schema.json +19 -0
  271. package/schematics/migrate-eui-progress-circle/index.d.ts +7 -0
  272. package/schematics/migrate-eui-progress-circle/index.js +192 -0
  273. package/schematics/migrate-eui-progress-circle/index.js.map +1 -0
  274. package/schematics/migrate-eui-progress-circle/schema.json +19 -0
  275. package/schematics/migrate-eui-table/index.d.ts +7 -0
  276. package/schematics/migrate-eui-table/index.js +544 -0
  277. package/schematics/migrate-eui-table/index.js.map +1 -0
  278. package/schematics/migrate-eui-table/schema.json +19 -0
  279. package/schematics/migrate-eui-tabs/index.d.ts +7 -0
  280. package/schematics/migrate-eui-tabs/index.js +296 -0
  281. package/schematics/migrate-eui-tabs/index.js.map +1 -0
  282. package/schematics/migrate-eui-tabs/schema.json +19 -0
  283. package/schematics/migrate-eui-toolbar-menu/index.d.ts +7 -0
  284. package/schematics/migrate-eui-toolbar-menu/index.js +358 -0
  285. package/schematics/migrate-eui-toolbar-menu/index.js.map +1 -0
  286. package/schematics/migrate-eui-toolbar-menu/schema.json +19 -0
  287. package/schematics/migrate-to-standalone/index.d.ts +7 -0
  288. package/schematics/migrate-to-standalone/index.js +723 -0
  289. package/schematics/migrate-to-standalone/index.js.map +1 -0
  290. package/schematics/migrate-to-standalone/schema.json +19 -0
  291. package/schematics/package.json +1 -0
  292. package/schematics/utils/dry-run.d.ts +3 -0
  293. package/schematics/utils/dry-run.js +14 -0
  294. package/schematics/utils/dry-run.js.map +1 -0
  295. package/types/eui-core.d.ts +74 -17
  296. package/types/eui-core.d.ts.map +1 -1
  297. package/docs/js/menu-wc_es5.js +0 -40
@@ -19,7 +19,14 @@ customElements.define('compodoc-menu', class extends HTMLElement {
19
19
  </li>
20
20
 
21
21
  <li class="divider"></li>
22
- ${ isNormalMode ? `<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>` : '' }
22
+ ${ isNormalMode ? `<div id="book-search-input" role="search">
23
+ <input type="text" placeholder="Type to search">
24
+ <button type="button"
25
+ class="search-input-clear"
26
+ aria-label="Clear search"
27
+ data-search-input-clear>&times;</button>
28
+ </div>
29
+ ` : '' }
23
30
  <li class="chapter">
24
31
  <a data-type="chapter-link" href="index.html"><span class="icon ion-ios-home"></span>Getting started</a>
25
32
  <ul class="links">
@@ -76,13 +83,13 @@ customElements.define('compodoc-menu', class extends HTMLElement {
76
83
  <a href="modules/TranslateMockModule.html" data-type="entity-link" >TranslateMockModule</a>
77
84
  <li class="chapter inner">
78
85
  <div class="simple menu-toggler" data-bs-toggle="collapse" ${ isNormalMode ?
79
- 'data-bs-target="#directives-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' : 'data-bs-target="#xs-directives-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' }>
86
+ 'data-bs-target="#directives-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' : 'data-bs-target="#xs-directives-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' }>
80
87
  <span class="icon ion-md-code-working"></span>
81
88
  <span>Directives</span>
82
89
  <span class="icon ion-ios-arrow-down"></span>
83
90
  </div>
84
- <ul class="links collapse" ${ isNormalMode ? 'id="directives-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' :
85
- 'id="xs-directives-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' }>
91
+ <ul class="links collapse" ${ isNormalMode ? 'id="directives-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' :
92
+ 'id="xs-directives-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' }>
86
93
  <li class="link">
87
94
  <a href="directives/TranslateMockDirective.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules" >TranslateMockDirective</a>
88
95
  </li>
@@ -90,13 +97,13 @@ customElements.define('compodoc-menu', class extends HTMLElement {
90
97
  </li>
91
98
  <li class="chapter inner">
92
99
  <div class="simple menu-toggler" data-bs-toggle="collapse" ${ isNormalMode ?
93
- 'data-bs-target="#pipes-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' : 'data-bs-target="#xs-pipes-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' }>
94
- <span class="icon ion-md-add"></span>
100
+ 'data-bs-target="#pipes-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' : 'data-bs-target="#xs-pipes-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' }>
101
+ <span class="icon ion-md-funnel"></span>
95
102
  <span>Pipes</span>
96
103
  <span class="icon ion-ios-arrow-down"></span>
97
104
  </div>
98
- <ul class="links collapse" ${ isNormalMode ? 'id="pipes-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' :
99
- 'id="xs-pipes-links-module-TranslateMockModule-eec6297f1f1ae191bbb1201554ba7a136a865bf32065bbbcdb2248787a067444dc6c4e8a95f112a7b1a3efd7b5db21ce79350f47f40a1165aa740417439313be"' }>
105
+ <ul class="links collapse" ${ isNormalMode ? 'id="pipes-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' :
106
+ 'id="xs-pipes-links-module-TranslateMockModule-122e1233e0226f3d4845fe147f00c71799dba241400e43adaa9e1d027893b9f37898c84a06ccf2f4066e84d56cb07c916b81b5f72e167551cac8fdc9dfe93a24"' }>
100
107
  <li class="link">
101
108
  <a href="pipes/TranslateMockPipe.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules" >TranslateMockPipe</a>
102
109
  </li>
@@ -105,6 +112,19 @@ customElements.define('compodoc-menu', class extends HTMLElement {
105
112
  </li>
106
113
  </ul>
107
114
  </li>
115
+ <li class="chapter">
116
+ <div class="simple menu-toggler" data-bs-toggle="collapse" ${ isNormalMode ? 'data-bs-target="#directives-links"' :
117
+ 'data-bs-target="#xs-directives-links"' }>
118
+ <span class="icon ion-md-code-working"></span>
119
+ <span>Directives</span>
120
+ <span class="icon ion-ios-arrow-down"></span>
121
+ </div>
122
+ <ul class="links collapse " ${ isNormalMode ? 'id="directives-links"' : 'id="xs-directives-links"' }>
123
+ <li class="link">
124
+ <a href="directives/TranslateMockDirective.html" data-type="entity-link" >TranslateMockDirective</a>
125
+ </li>
126
+ </ul>
127
+ </li>
108
128
  <li class="chapter">
109
129
  <div class="simple menu-toggler" data-bs-toggle="collapse" ${ isNormalMode ? 'data-bs-target="#classes-links"' :
110
130
  'data-bs-target="#xs-classes-links"' }>
@@ -140,6 +160,9 @@ customElements.define('compodoc-menu', class extends HTMLElement {
140
160
  <li class="link">
141
161
  <a href="classes/ErrorSubClass.html" data-type="entity-link" >ErrorSubClass</a>
142
162
  </li>
163
+ <li class="link">
164
+ <a href="classes/EuiAppShellServiceMock.html" data-type="entity-link" >EuiAppShellServiceMock</a>
165
+ </li>
143
166
  <li class="link">
144
167
  <a href="classes/EuiCoreRootGuardClass.html" data-type="entity-link" >EuiCoreRootGuardClass</a>
145
168
  </li>
@@ -324,23 +347,44 @@ customElements.define('compodoc-menu', class extends HTMLElement {
324
347
  </div>
325
348
  <ul class="links collapse " ${ isNormalMode ? ' id="interfaces-links"' : 'id="xs-interfaces-links"' }>
326
349
  <li class="link">
327
- <a href="interfaces/Action.html" data-type="entity-link" >Action</a>
350
+ <a href="interfaces/Action.html" data-type="entity-link" >Action&lt;Type extends string &#x3D; string&gt;</a>
328
351
  </li>
329
352
  <li class="link">
330
- <a href="interfaces/ActionReducer.html" data-type="entity-link" >ActionReducer</a>
353
+ <a href="interfaces/ActionReducer.html" data-type="entity-link" >ActionReducer&lt;T, V extends Action &#x3D; Action&gt;</a>
331
354
  </li>
332
355
  <li class="link">
333
356
  <a href="interfaces/body.html" data-type="entity-link" >body</a>
334
357
  </li>
358
+ <li class="link">
359
+ <a href="interfaces/ComponentInfo.html" data-type="entity-link" >ComponentInfo</a>
360
+ </li>
335
361
  <li class="link">
336
362
  <a href="interfaces/Dependency.html" data-type="entity-link" >Dependency</a>
337
363
  </li>
364
+ <li class="link">
365
+ <a href="interfaces/Edit.html" data-type="entity-link" >Edit</a>
366
+ </li>
367
+ <li class="link">
368
+ <a href="interfaces/Edit-1.html" data-type="entity-link" >Edit</a>
369
+ </li>
370
+ <li class="link">
371
+ <a href="interfaces/Edit-2.html" data-type="entity-link" >Edit</a>
372
+ </li>
373
+ <li class="link">
374
+ <a href="interfaces/EuiComponentEntry.html" data-type="entity-link" >EuiComponentEntry</a>
375
+ </li>
338
376
  <li class="link">
339
377
  <a href="interfaces/EuiTimeZone.html" data-type="entity-link" >EuiTimeZone</a>
340
378
  </li>
341
379
  <li class="link">
342
380
  <a href="interfaces/IEuiTheme.html" data-type="entity-link" >IEuiTheme</a>
343
381
  </li>
382
+ <li class="link">
383
+ <a href="interfaces/ImportsArrayInfo.html" data-type="entity-link" >ImportsArrayInfo</a>
384
+ </li>
385
+ <li class="link">
386
+ <a href="interfaces/ImportToAdd.html" data-type="entity-link" >ImportToAdd</a>
387
+ </li>
344
388
  <li class="link">
345
389
  <a href="interfaces/Library.html" data-type="entity-link" >Library</a>
346
390
  </li>
@@ -351,20 +395,101 @@ customElements.define('compodoc-menu', class extends HTMLElement {
351
395
  <a href="interfaces/LoadedResourcesError.html" data-type="entity-link" >LoadedResourcesError</a>
352
396
  </li>
353
397
  <li class="link">
354
- <a href="interfaces/MemoizedSelector.html" data-type="entity-link" >MemoizedSelector</a>
398
+ <a href="interfaces/MemoizedSelector.html" data-type="entity-link" >MemoizedSelector&lt;State, Result, ProjectorFn &#x3D; DefaultProjectorFn&lt;Result&gt;&gt;</a>
399
+ </li>
400
+ <li class="link">
401
+ <a href="interfaces/MemoizedSelectorWithProps.html" data-type="entity-link" class="deprecated-name">MemoizedSelectorWithProps&lt;State, Props, Result, ProjectorFn &#x3D; DefaultProjectorFn&lt;Result&gt;&gt;</a>
402
+ </li>
403
+ <li class="link">
404
+ <a href="interfaces/MigrateAllSchema.html" data-type="entity-link" >MigrateAllSchema</a>
355
405
  </li>
356
406
  <li class="link">
357
- <a href="interfaces/MemoizedSelectorWithProps.html" data-type="entity-link" class="deprecated-name">MemoizedSelectorWithProps</a>
407
+ <a href="interfaces/MigrationResult.html" data-type="entity-link" >MigrationResult</a>
358
408
  </li>
359
409
  <li class="link">
360
410
  <a href="interfaces/ModuleLoadEvent.html" data-type="entity-link" >ModuleLoadEvent</a>
361
411
  </li>
412
+ <li class="link">
413
+ <a href="interfaces/ModuleMapping.html" data-type="entity-link" >ModuleMapping</a>
414
+ </li>
415
+ <li class="link">
416
+ <a href="interfaces/NgModuleInfo.html" data-type="entity-link" >NgModuleInfo</a>
417
+ </li>
362
418
  <li class="link">
363
419
  <a href="interfaces/Policy.html" data-type="entity-link" >Policy</a>
364
420
  </li>
365
421
  <li class="link">
366
422
  <a href="interfaces/ResourceError.html" data-type="entity-link" >ResourceError</a>
367
423
  </li>
424
+ <li class="link">
425
+ <a href="interfaces/Schema.html" data-type="entity-link" >Schema</a>
426
+ </li>
427
+ <li class="link">
428
+ <a href="interfaces/Schema-1.html" data-type="entity-link" >Schema</a>
429
+ </li>
430
+ <li class="link">
431
+ <a href="interfaces/Schema-2.html" data-type="entity-link" >Schema</a>
432
+ </li>
433
+ <li class="link">
434
+ <a href="interfaces/Schema-3.html" data-type="entity-link" >Schema</a>
435
+ </li>
436
+ <li class="link">
437
+ <a href="interfaces/Schema-4.html" data-type="entity-link" >Schema</a>
438
+ </li>
439
+ <li class="link">
440
+ <a href="interfaces/Schema-5.html" data-type="entity-link" >Schema</a>
441
+ </li>
442
+ <li class="link">
443
+ <a href="interfaces/Schema-6.html" data-type="entity-link" >Schema</a>
444
+ </li>
445
+ <li class="link">
446
+ <a href="interfaces/Schema-7.html" data-type="entity-link" >Schema</a>
447
+ </li>
448
+ <li class="link">
449
+ <a href="interfaces/Schema-8.html" data-type="entity-link" >Schema</a>
450
+ </li>
451
+ <li class="link">
452
+ <a href="interfaces/Schema-9.html" data-type="entity-link" >Schema</a>
453
+ </li>
454
+ <li class="link">
455
+ <a href="interfaces/Schema-10.html" data-type="entity-link" >Schema</a>
456
+ </li>
457
+ <li class="link">
458
+ <a href="interfaces/Schema-11.html" data-type="entity-link" >Schema</a>
459
+ </li>
460
+ <li class="link">
461
+ <a href="interfaces/Schema-12.html" data-type="entity-link" >Schema</a>
462
+ </li>
463
+ <li class="link">
464
+ <a href="interfaces/Schema-13.html" data-type="entity-link" >Schema</a>
465
+ </li>
466
+ <li class="link">
467
+ <a href="interfaces/Schema-14.html" data-type="entity-link" >Schema</a>
468
+ </li>
469
+ <li class="link">
470
+ <a href="interfaces/Schema-15.html" data-type="entity-link" >Schema</a>
471
+ </li>
472
+ <li class="link">
473
+ <a href="interfaces/Schema-16.html" data-type="entity-link" >Schema</a>
474
+ </li>
475
+ <li class="link">
476
+ <a href="interfaces/Schema-17.html" data-type="entity-link" >Schema</a>
477
+ </li>
478
+ <li class="link">
479
+ <a href="interfaces/Schema-18.html" data-type="entity-link" >Schema</a>
480
+ </li>
481
+ <li class="link">
482
+ <a href="interfaces/Schema-19.html" data-type="entity-link" >Schema</a>
483
+ </li>
484
+ <li class="link">
485
+ <a href="interfaces/Schema-20.html" data-type="entity-link" >Schema</a>
486
+ </li>
487
+ <li class="link">
488
+ <a href="interfaces/SelectorEntry.html" data-type="entity-link" >SelectorEntry</a>
489
+ </li>
490
+ <li class="link">
491
+ <a href="interfaces/TextChange.html" data-type="entity-link" >TextChange</a>
492
+ </li>
368
493
  <li class="link">
369
494
  <a href="interfaces/ThemeState.html" data-type="entity-link" >ThemeState</a>
370
495
  </li>
@@ -372,10 +497,23 @@ customElements.define('compodoc-menu', class extends HTMLElement {
372
497
  <a href="interfaces/TranslationKeys.html" data-type="entity-link" >TranslationKeys</a>
373
498
  </li>
374
499
  <li class="link">
375
- <a href="interfaces/UIState.html" data-type="entity-link" >UIState</a>
500
+ <a href="interfaces/UIState.html" data-type="entity-link" >UIState&lt;BP &#x3D; any, DI &#x3D; any, AMD &#x3D;any, BPV &#x3D; any&gt;</a>
376
501
  </li>
377
502
  </ul>
378
503
  </li>
504
+ <li class="chapter">
505
+ <div class="simple menu-toggler" data-bs-toggle="collapse" ${ isNormalMode ? 'data-bs-target="#pipes-links"' :
506
+ 'data-bs-target="#xs-pipes-links"' }>
507
+ <span class="icon ion-md-funnel"></span>
508
+ <span>Pipes</span>
509
+ <span class="icon ion-ios-arrow-down"></span>
510
+ </div>
511
+ <ul class="links collapse " ${ isNormalMode ? 'id="pipes-links"' : 'id="xs-pipes-links"' }>
512
+ <li class="link">
513
+ <a href="pipes/TranslateMockPipe.html" data-type="entity-link" >TranslateMockPipe</a>
514
+ </li>
515
+ </ul>
516
+ </li>
379
517
  <li class="chapter">
380
518
  <div class="simple menu-toggler" data-bs-toggle="collapse" ${ isNormalMode ? 'data-bs-target="#miscellaneous-links"'
381
519
  : 'data-bs-target="#xs-miscellaneous-links"' }>
@@ -406,4 +544,4 @@ customElements.define('compodoc-menu', class extends HTMLElement {
406
544
  `);
407
545
  this.innerHTML = tp.strings;
408
546
  }
409
- });
547
+ });
package/docs/js/routes.js CHANGED
@@ -15,6 +15,65 @@ document.addEventListener('DOMContentLoaded', function () {
15
15
  return lazyModuleName;
16
16
  }
17
17
 
18
+ function foundLazyComponentWithPath(path) {
19
+ var split = path.split('#'),
20
+ lazyComponentName = split[1];
21
+ return lazyComponentName;
22
+ }
23
+
24
+ function safeHref(href) {
25
+ return String(href || '').replace(/"/g, '&quot;');
26
+ }
27
+
28
+ function resolveNodeHref(d) {
29
+ if (!d) {
30
+ return '';
31
+ }
32
+
33
+ if (d.href) {
34
+ return d.href;
35
+ }
36
+
37
+ if (d.component && d.component !== 'default') {
38
+ return './components/' + d.component + '.html';
39
+ }
40
+
41
+ if (d.module && d.module !== 'default') {
42
+ return './modules/' + d.module + '.html';
43
+ }
44
+
45
+ if (d.loadComponent) {
46
+ var lazyComponent = foundLazyComponentWithPath(d.loadComponent);
47
+ if (lazyComponent && lazyComponent !== 'default') {
48
+ return './components/' + lazyComponent + '.html';
49
+ }
50
+ }
51
+
52
+ if (d.loadChildren) {
53
+ var lazyModule = foundLazyModuleWithPath(d.loadChildren);
54
+ if (lazyModule && lazyModule !== 'default') {
55
+ return './modules/' + lazyModule + '.html';
56
+ }
57
+ }
58
+
59
+ return '';
60
+ }
61
+
62
+ function wrapLabelWithLink(label, href) {
63
+ if (!href) {
64
+ return label;
65
+ }
66
+ return '<a href="' + safeHref(href) + '" target="_top">' + label + '</a>';
67
+ }
68
+
69
+ function withLeadingSlash(routeValue) {
70
+ var value = String(routeValue || '');
71
+ if (value.length === 0) {
72
+ return '/';
73
+ }
74
+ return value.charAt(0) === '/' ? value : '/' + value;
75
+ }
76
+
18
77
  function getBB(selection) {
19
78
  selection.each(function (d) {
20
79
  d.bbox = this.getBBox();
@@ -26,16 +85,32 @@ document.addEventListener('DOMContentLoaded', function () {
26
85
  var tree = ROUTES_INDEX;
27
86
 
28
87
  function cleanStringChildren(obj) {
88
+ if (!obj || typeof obj !== 'object') {
89
+ return;
90
+ }
29
91
  for (var property in obj) {
30
- if (obj.hasOwnProperty(property)) {
31
- if (property === 'children' && typeof obj[property] === 'object') {
32
- for (var i = obj[property].length - 1; i >= 0; i--) {
33
- if (typeof obj[property][i] === 'string') {
34
- obj[property].splice(i, 1);
92
+ if (Object.prototype.hasOwnProperty.call(obj, property)) {
93
+ if (property === 'children') {
94
+ if (typeof obj[property] === 'string') {
95
+ obj[property] = [];
96
+ continue;
97
+ }
98
+
99
+ if (Array.isArray(obj[property])) {
100
+ for (var i = obj[property].length - 1; i >= 0; i--) {
101
+ if (
102
+ typeof obj[property][i] !== 'object' ||
103
+ obj[property][i] === null
104
+ ) {
105
+ obj[property].splice(i, 1);
106
+ }
35
107
  }
108
+ } else if (obj[property] && typeof obj[property] === 'object') {
109
+ obj[property] = [];
36
110
  }
37
111
  }
38
- if (typeof obj[property] === 'object') {
112
+
113
+ if (obj[property] && typeof obj[property] === 'object') {
39
114
  cleanStringChildren(obj[property]);
40
115
  }
41
116
  }
@@ -84,6 +159,17 @@ document.addEventListener('DOMContentLoaded', function () {
84
159
  dy: 0
85
160
  });
86
161
 
162
+ infos_group
163
+ .style('cursor', function (d) {
164
+ return resolveNodeHref(d) ? 'pointer' : null;
165
+ })
166
+ .on('click', function (d) {
167
+ var href = resolveNodeHref(d);
168
+ if (href) {
169
+ window.location.href = href;
170
+ }
171
+ });
172
+
87
173
  //Node icon
88
174
  infos_group
89
175
  .append('text')
@@ -118,56 +204,66 @@ document.addEventListener('DOMContentLoaded', function () {
118
204
  // if kind === module name + module
119
205
  // if kind === component component + path
120
206
  var _name = '';
207
+ var nodeHref = resolveNodeHref(d);
121
208
  if (d.kind === 'module') {
122
209
  if (d.module) {
123
210
  _name +=
124
- '<tspan x="0" dy="1.4em"><a href="./modules/' +
125
- d.module +
126
- '.html">' +
127
- d.module +
128
- '</a></tspan>';
211
+ '<tspan x="0" dy="1.4em">' +
212
+ wrapLabelWithLink(d.module, nodeHref || './modules/' + d.module + '.html') +
213
+ '</tspan>';
129
214
  if (d.name) {
130
215
  _name += '<tspan x="0" dy="1.4em">' + d.name + '</tspan>';
131
216
  }
132
217
  } else {
133
- _name += '<tspan x="0" dy="1.4em">' + htmlEntities(d.name) + '</tspan>';
218
+ _name +=
219
+ '<tspan x="0" dy="1.4em">' +
220
+ wrapLabelWithLink(htmlEntities(d.name), nodeHref) +
221
+ '</tspan>';
134
222
  }
135
223
  } else if (d.kind === 'component') {
136
- _name += '<tspan x="0" dy="1.4em">' + (d.path || d.name) + '</tspan>';
224
+ _name +=
225
+ '<tspan x="0" dy="1.4em">' +
226
+ wrapLabelWithLink(d.path || d.name, nodeHref) +
227
+ '</tspan>';
137
228
  if (d.component) {
138
- _name +=
139
- '<tspan x="0" dy="1.4em"><a href="./components/' +
140
- d.component +
141
- '.html">' +
142
- d.component +
143
- '</a></tspan>';
144
- } else if (d.name && d.name.includes('Component')) {
145
229
  _name +=
146
230
  '<tspan x="0" dy="1.4em">' +
147
- d.name +
231
+ wrapLabelWithLink(d.component, nodeHref) +
148
232
  '</tspan>';
233
+ } else if (d.name && d.name.includes('Component')) {
234
+ _name += '<tspan x="0" dy="1.4em">' + wrapLabelWithLink(d.name, nodeHref) + '</tspan>';
149
235
  }
150
236
  if (d.outlet) {
151
237
  _name += '<tspan x="0" dy="1.4em">&lt;outlet&gt; : ' + d.outlet + '</tspan>';
152
238
  }
153
239
  } else {
154
- _name += '<tspan x="0" dy="1.4em">/' + (d.path || d.name) + '</tspan>';
240
+ if (d.kind === 'route-redirect') {
241
+ var fromPath = d.path === '' ? "''" : withLeadingSlash(d.path || '');
242
+ var redirectTo = withLeadingSlash(d.redirectTo || d.name);
243
+ _name += '<tspan x="0" dy="1.4em">' + fromPath + ' &rarr; ' + redirectTo + '</tspan>';
244
+ if (d.pathMatch) {
245
+ _name += '<tspan x="0" dy="1.4em">pathMatch: ' + d.pathMatch + '</tspan>';
246
+ }
247
+ } else {
248
+ _name +=
249
+ '<tspan x="0" dy="1.4em">' +
250
+ wrapLabelWithLink(withLeadingSlash(d.path || d.name), nodeHref) +
251
+ '</tspan>';
252
+ }
155
253
  if (d.component) {
156
254
  _name +=
157
- '<tspan x="0" dy="1.4em"><a href="./components/' +
158
- d.component +
159
- '.html">' +
160
- d.component +
161
- '</a></tspan>';
255
+ '<tspan x="0" dy="1.4em">' +
256
+ wrapLabelWithLink(d.component, nodeHref) +
257
+ '</tspan>';
162
258
  }
163
259
  if (d.loadChildren) {
164
260
  var moduleName = foundLazyModuleWithPath(d.loadChildren);
165
- _name +=
166
- '<tspan x="0" dy="1.4em"><a href="./modules/' +
167
- moduleName +
168
- '.html">' +
169
- moduleName +
170
- '</a></tspan>';
261
+ if (moduleName && moduleName !== 'default') {
262
+ _name +=
263
+ '<tspan x="0" dy="1.4em">' +
264
+ wrapLabelWithLink(moduleName, './modules/' + moduleName + '.html') +
265
+ '</tspan>';
266
+ }
171
267
  }
172
268
  if (d.canActivate) {
173
269
  _name += '<tspan x="0" dy="1.4em">&#10003; canActivate</tspan>';
@@ -181,10 +277,10 @@ document.addEventListener('DOMContentLoaded', function () {
181
277
  if (d.canLoad) {
182
278
  _name += '<tspan x="0" dy="1.4em">&#8594; canLoad</tspan>';
183
279
  }
184
- if (d.redirectTo) {
280
+ if (d.kind !== 'route-redirect' && d.redirectTo) {
185
281
  _name += '<tspan x="0" dy="1.4em">&rarr; ' + d.redirectTo + '</tspan>';
186
282
  }
187
- if (d.pathMatch) {
283
+ if (d.kind !== 'route-redirect' && d.pathMatch) {
188
284
  _name += '<tspan x="0" dy="1.4em">&gt; ' + d.pathMatch + '</tspan>';
189
285
  }
190
286
  if (d.outlet) {
@@ -266,11 +362,16 @@ document.addEventListener('DOMContentLoaded', function () {
266
362
 
267
363
  var area_ave = area_sum / nodes.length;
268
364
  var scale = 80 / Math.sqrt(area_ave);
365
+ var depthHorizontalSpacing = 40;
269
366
 
270
367
  function svg_x(node_y) {
271
368
  return node_y - ymin;
272
369
  }
273
370
 
371
+ function projected_x(node) {
372
+ return svg_x(node.y) + (node.depth || 0) * depthHorizontalSpacing;
373
+ }
374
+
274
375
  function svg_y(node_x) {
275
376
  return (node_x - xmin) * scale;
276
377
  }
@@ -279,11 +380,11 @@ document.addEventListener('DOMContentLoaded', function () {
279
380
  var nodebox_vertical_margin = Math.min(y_size_min * scale, 3);
280
381
 
281
382
  node.attr('transform', function (d) {
282
- return 'translate(' + svg_x(d.y) + ',' + svg_y(d.x) + ')';
383
+ return 'translate(' + projected_x(d) + ',' + svg_y(d.x) + ')';
283
384
  });
284
385
 
285
386
  var diagonal = d3.svg.diagonal().projection(function (d) {
286
- return [svg_x(d.y), svg_y(d.x)];
387
+ return [projected_x(d), svg_y(d.x)];
287
388
  });
288
389
 
289
390
  var links = engine.links(nodes);
@@ -8,6 +8,8 @@
8
8
  $searchTitle,
9
9
  $searchResultsCount,
10
10
  $searchQuery,
11
+ $searchInputs,
12
+ $searchClearButtons,
11
13
  $mainContainer,
12
14
  $xsMenu;
13
15
 
@@ -160,12 +162,44 @@
160
162
  $searchInputs.forEach((item, index) => {
161
163
  item.value = '';
162
164
  });
165
+ syncSearchClearButtons();
166
+ });
167
+ }
168
+
169
+ function getSearchInputContainer(element) {
170
+ var current = element;
171
+ while (current && current !== document) {
172
+ if (current.id === 'book-search-input') {
173
+ return current;
174
+ }
175
+ current = current.parentNode;
176
+ }
177
+ return null;
178
+ }
179
+
180
+ function syncSearchClearButtons() {
181
+ if (!$searchInputs || !$searchClearButtons) {
182
+ return;
183
+ }
184
+
185
+ var hasValue = false;
186
+ $searchInputs.forEach((input) => {
187
+ if (input.value && input.value.length > 0) {
188
+ hasValue = true;
189
+ }
190
+ });
191
+
192
+ $searchClearButtons.forEach((button) => {
193
+ button.classList.toggle('is-visible', hasValue);
163
194
  });
164
195
  }
165
196
 
166
197
  function bindSearch() {
167
198
  // Bind DOM
168
199
  $searchInputs = document.querySelectorAll('#book-search-input input');
200
+ $searchClearButtons = document.querySelectorAll(
201
+ '#book-search-input [data-search-input-clear]'
202
+ );
169
203
 
170
204
  $searchResults = document.querySelector('.search-results');
171
205
  $searchList = $searchResults.querySelector('.search-results-list');
@@ -194,11 +228,13 @@
194
228
  // HTML5 (IE9 & others)
195
229
  item.addEventListener('input', function (e) {
196
230
  handleUpdate(this);
231
+ syncSearchClearButtons();
197
232
  });
198
233
  // Workaround for IE < 9
199
234
  item.addEventListener('propertychange', function (e) {
200
235
  if (e.originalEvent.propertyName == 'value') {
201
236
  handleUpdate(this);
237
+ syncSearchClearButtons();
202
238
  }
203
239
  });
204
240
  // Push to history on blur
@@ -212,6 +248,31 @@
212
248
  }
213
249
  });
214
250
  });
251
+
252
+ $searchClearButtons.forEach((button) => {
253
+ button.addEventListener('click', function (e) {
254
+ e.preventDefault();
255
+
256
+ var container = getSearchInputContainer(this);
257
+ var containerInput = container ? container.querySelector('input') : null;
258
+ var nextValue = '';
259
+
260
+ $searchInputs.forEach((input) => {
261
+ input.value = nextValue;
262
+ });
263
+
264
+ if (containerInput) {
265
+ handleUpdate(containerInput);
266
+ containerInput.focus();
267
+ } else if ($searchInputs.length > 0) {
268
+ handleUpdate($searchInputs[0]);
269
+ }
270
+
271
+ syncSearchClearButtons();
272
+ });
273
+ });
274
+
275
+ syncSearchClearButtons();
215
276
  }
216
277
 
217
278
  function launchSearchFromQueryString() {
@@ -221,6 +282,7 @@
221
282
  $searchInputs.forEach((item, index) => {
222
283
  item.value = q;
223
284
  });
285
+ syncSearchClearButtons();
224
286
  // Launch search
225
287
  launchSearch(q);
226
288
  }