ngx-tethys 18.2.7 → 19.0.0-next.1

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 (943) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/badge/badge.component.d.ts +21 -3
  3. package/cascader/cascader-search-option.component.d.ts +6 -3
  4. package/core/store/store.d.ts +1 -1
  5. package/date-picker/abstract-picker.component.d.ts +1 -1
  6. package/date-picker/abstract-picker.directive.d.ts +1 -1
  7. package/date-picker/lib/calendar/calendar-header.component.d.ts +1 -1
  8. package/date-picker/lib/calendar/calendar-table.component.d.ts +1 -1
  9. package/date-range/date-range.component.d.ts +12 -2
  10. package/divider/divider.component.d.ts +2 -8
  11. package/dropdown/dropdown-menu.component.d.ts +1 -1
  12. package/empty/empty.component.d.ts +1 -4
  13. package/fesm2022/ngx-tethys-action.mjs +12 -12
  14. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  15. package/fesm2022/ngx-tethys-affix.mjs +8 -8
  16. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  17. package/fesm2022/ngx-tethys-alert.mjs +12 -12
  18. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  19. package/fesm2022/ngx-tethys-anchor.mjs +11 -13
  20. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  21. package/fesm2022/ngx-tethys-arrow-switcher.mjs +9 -9
  22. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  23. package/fesm2022/ngx-tethys-autocomplete.mjs +20 -20
  24. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  25. package/fesm2022/ngx-tethys-avatar.mjs +26 -26
  26. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  27. package/fesm2022/ngx-tethys-back-top.mjs +10 -10
  28. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  29. package/fesm2022/ngx-tethys-badge.mjs +9 -9
  30. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-breadcrumb.mjs +13 -15
  32. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-button.mjs +16 -16
  34. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-calendar.mjs +20 -20
  36. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-card.mjs +15 -15
  38. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-carousel.mjs +15 -15
  40. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-cascader.mjs +23 -24
  42. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
  44. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-collapse.mjs +12 -12
  46. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-color-picker.mjs +38 -38
  48. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-comment.mjs +15 -15
  50. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-copy.mjs +8 -8
  52. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-core.mjs +21 -21
  54. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-date-picker.mjs +141 -141
  56. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-date-range.mjs +14 -14
  58. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-dialog.mjs +27 -28
  60. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-divider.mjs +8 -9
  62. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-dot.mjs +8 -8
  64. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  65. package/fesm2022/ngx-tethys-drag-drop.mjs +20 -20
  66. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  67. package/fesm2022/ngx-tethys-dropdown.mjs +47 -48
  68. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-empty.mjs +12 -12
  70. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-flexible-text.mjs +8 -8
  72. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-form.mjs +44 -44
  74. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -14
  76. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-grid.mjs +35 -38
  78. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-guider.mjs +18 -18
  80. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-i18n.mjs +3 -3
  82. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-icon.mjs +11 -11
  84. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-image.mjs +19 -19
  86. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-input-number.mjs +11 -11
  88. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-input.mjs +23 -23
  90. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-layout.mjs +63 -64
  92. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-list.mjs +19 -19
  94. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-loading.mjs +9 -9
  96. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-mention.mjs +12 -12
  98. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-menu.mjs +29 -29
  100. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-message.mjs +25 -26
  102. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-nav.mjs +24 -25
  104. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  106. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  107. package/fesm2022/ngx-tethys-pagination.mjs +15 -15
  108. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  109. package/fesm2022/ngx-tethys-popover.mjs +23 -23
  110. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  111. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  112. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  113. package/fesm2022/ngx-tethys-property-operation.mjs +12 -12
  114. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  115. package/fesm2022/ngx-tethys-property.mjs +12 -12
  116. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  117. package/fesm2022/ngx-tethys-radio.mjs +15 -15
  118. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  119. package/fesm2022/ngx-tethys-rate.mjs +12 -13
  120. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  121. package/fesm2022/ngx-tethys-resizable.mjs +17 -19
  122. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  123. package/fesm2022/ngx-tethys-result.mjs +9 -9
  124. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  125. package/fesm2022/ngx-tethys-segment.mjs +13 -13
  126. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  127. package/fesm2022/ngx-tethys-select.mjs +16 -16
  128. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  129. package/fesm2022/ngx-tethys-shared.mjs +70 -70
  130. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  131. package/fesm2022/ngx-tethys-skeleton.mjs +23 -28
  132. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  133. package/fesm2022/ngx-tethys-slide.mjs +34 -35
  134. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  135. package/fesm2022/ngx-tethys-slider.mjs +9 -9
  136. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  137. package/fesm2022/ngx-tethys-space.mjs +12 -12
  138. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  139. package/fesm2022/ngx-tethys-statistic.mjs +9 -9
  140. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  141. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  142. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  143. package/fesm2022/ngx-tethys-strength.mjs +8 -8
  144. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  145. package/fesm2022/ngx-tethys-switch.mjs +9 -9
  146. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  147. package/fesm2022/ngx-tethys-table.mjs +23 -23
  148. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-tabs.mjs +15 -16
  150. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  152. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  154. package/fesm2022/ngx-tethys-time-picker.mjs +24 -24
  155. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  156. package/fesm2022/ngx-tethys-timeline.mjs +15 -16
  157. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-tooltip.mjs +16 -16
  159. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-transfer.mjs +13 -13
  161. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys-tree-select.mjs +13 -13
  163. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  164. package/fesm2022/ngx-tethys-tree.mjs +19 -19
  165. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  166. package/fesm2022/ngx-tethys-typography.mjs +15 -15
  167. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  168. package/fesm2022/ngx-tethys-upload.mjs +17 -17
  169. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  170. package/fesm2022/ngx-tethys-util.mjs +2 -18
  171. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-vote.mjs +9 -9
  173. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-watermark.mjs +8 -8
  175. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys.mjs +1 -1
  177. package/fesm2022/ngx-tethys.mjs.map +1 -1
  178. package/input/input.component.d.ts +1 -1
  179. package/layout/header.component.d.ts +21 -3
  180. package/menu/group/menu-group.component.d.ts +6 -30
  181. package/message/abstract/abstract-message-container.component.d.ts +1 -1
  182. package/message/abstract/abstract-message.component.d.ts +1 -1
  183. package/nav/nav.component.d.ts +2 -2
  184. package/package.json +4 -172
  185. package/pagination/pagination.component.d.ts +45 -5
  186. package/property/property-item.component.d.ts +4 -2
  187. package/schematics/dependencies.js +3 -3
  188. package/schematics/ng-add/index.js +7 -3
  189. package/schematics/ng-update/core/complete.js +1 -2
  190. package/schematics/ng-update/migration-collection.json +4 -4
  191. package/schematics/ng-update/{update-18 → update-19}/index.js +4 -5
  192. package/schematics/ng-update/{update-18 → update-19}/index.spec.js +4 -4
  193. package/schematics/testing/get-json-content.js +1 -2
  194. package/schematics/testing/test-app.js +1 -2
  195. package/schematics/testing/test-project.js +1 -2
  196. package/schematics/testing/test-workspace.d.ts +0 -2
  197. package/schematics/testing/test-workspace.js +2 -2
  198. package/schematics/utils/create-tree-compiler-host.js +1 -2
  199. package/schematics/utils/create-tree-ts-parse-config-host.js +2 -2
  200. package/schematics/utils/get-angular-json.js +1 -2
  201. package/schematics/utils/get-project.js +1 -2
  202. package/schematics/utils/get-workspace-tsconfig.js +1 -2
  203. package/schematics/utils/package-config.js +2 -3
  204. package/schematics/utils/update-file.service.js +2 -2
  205. package/schematics/version.d.ts +1 -1
  206. package/schematics/version.js +1 -1
  207. package/shared/base-form-check.component.d.ts +1 -1
  208. package/shared/option/list-option/list-option.component.d.ts +1 -4
  209. package/shared/select/styles/select.mixin.scss +2 -1
  210. package/skeleton/skeleton-rectangle.component.d.ts +1 -4
  211. package/skeleton/stylized/bullet-list.component.d.ts +1 -9
  212. package/styles/bootstrap/utilities/_background.scss +2 -1
  213. package/styles/bootstrap/utilities/_text.scss +1 -1
  214. package/table/table.component.d.ts +1 -1
  215. package/upload/file-select-base.d.ts +1 -1
  216. package/esm2022/action/action.component.mjs +0 -174
  217. package/esm2022/action/action.module.mjs +0 -19
  218. package/esm2022/action/actions.component.mjs +0 -57
  219. package/esm2022/action/index.mjs +0 -4
  220. package/esm2022/action/ngx-tethys-action.mjs +0 -5
  221. package/esm2022/affix/affix.component.mjs +0 -243
  222. package/esm2022/affix/affix.module.mjs +0 -18
  223. package/esm2022/affix/index.mjs +0 -3
  224. package/esm2022/affix/ngx-tethys-affix.mjs +0 -5
  225. package/esm2022/affix/respond-events.mjs +0 -11
  226. package/esm2022/alert/alert.component.mjs +0 -98
  227. package/esm2022/alert/alert.directive.mjs +0 -25
  228. package/esm2022/alert/alert.module.mjs +0 -19
  229. package/esm2022/alert/index.mjs +0 -4
  230. package/esm2022/alert/ngx-tethys-alert.mjs +0 -5
  231. package/esm2022/anchor/anchor-link.component.mjs +0 -106
  232. package/esm2022/anchor/anchor.component.mjs +0 -266
  233. package/esm2022/anchor/anchor.module.mjs +0 -20
  234. package/esm2022/anchor/index.mjs +0 -4
  235. package/esm2022/anchor/ngx-tethys-anchor.mjs +0 -5
  236. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +0 -130
  237. package/esm2022/arrow-switcher/index.mjs +0 -3
  238. package/esm2022/arrow-switcher/module.mjs +0 -21
  239. package/esm2022/arrow-switcher/ngx-tethys-arrow-switcher.mjs +0 -5
  240. package/esm2022/autocomplete/autocomplete.component.mjs +0 -182
  241. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +0 -275
  242. package/esm2022/autocomplete/index.mjs +0 -8
  243. package/esm2022/autocomplete/module.mjs +0 -67
  244. package/esm2022/autocomplete/ngx-tethys-autocomplete.mjs +0 -5
  245. package/esm2022/autocomplete/overlay/autocomplete-animations.mjs +0 -10
  246. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +0 -64
  247. package/esm2022/autocomplete/overlay/autocomplete-ref.mjs +0 -18
  248. package/esm2022/autocomplete/overlay/autocomplete.config.mjs +0 -18
  249. package/esm2022/autocomplete/overlay/autocomplete.options.mjs +0 -6
  250. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +0 -127
  251. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +0 -76
  252. package/esm2022/avatar/avatar.component.mjs +0 -179
  253. package/esm2022/avatar/avatar.module.mjs +0 -33
  254. package/esm2022/avatar/avatar.pipe.mjs +0 -91
  255. package/esm2022/avatar/avatar.service.mjs +0 -27
  256. package/esm2022/avatar/index.mjs +0 -6
  257. package/esm2022/avatar/ngx-tethys-avatar.mjs +0 -5
  258. package/esm2022/back-top/back-top.component.mjs +0 -126
  259. package/esm2022/back-top/back-top.module.mjs +0 -18
  260. package/esm2022/back-top/index.mjs +0 -3
  261. package/esm2022/back-top/ngx-tethys-back-top.mjs +0 -5
  262. package/esm2022/badge/badge.component.mjs +0 -238
  263. package/esm2022/badge/badge.module.mjs +0 -18
  264. package/esm2022/badge/index.mjs +0 -3
  265. package/esm2022/badge/ngx-tethys-badge.mjs +0 -5
  266. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +0 -49
  267. package/esm2022/breadcrumb/breadcrumb.component.mjs +0 -115
  268. package/esm2022/breadcrumb/index.mjs +0 -4
  269. package/esm2022/breadcrumb/module.mjs +0 -21
  270. package/esm2022/breadcrumb/ngx-tethys-breadcrumb.mjs +0 -5
  271. package/esm2022/button/button-group.component.mjs +0 -90
  272. package/esm2022/button/button-icon.component.mjs +0 -166
  273. package/esm2022/button/button.component.mjs +0 -216
  274. package/esm2022/button/button.module.mjs +0 -20
  275. package/esm2022/button/index.mjs +0 -5
  276. package/esm2022/button/ngx-tethys-button.mjs +0 -5
  277. package/esm2022/calendar/calendar-cells.mjs +0 -35
  278. package/esm2022/calendar/calendar-header.component.mjs +0 -117
  279. package/esm2022/calendar/calendar.component.mjs +0 -122
  280. package/esm2022/calendar/index.mjs +0 -5
  281. package/esm2022/calendar/module.mjs +0 -63
  282. package/esm2022/calendar/ngx-tethys-calendar.mjs +0 -5
  283. package/esm2022/card/card.component.mjs +0 -48
  284. package/esm2022/card/card.module.mjs +0 -19
  285. package/esm2022/card/content.component.mjs +0 -58
  286. package/esm2022/card/header.component.mjs +0 -42
  287. package/esm2022/card/index.mjs +0 -5
  288. package/esm2022/card/ngx-tethys-card.mjs +0 -5
  289. package/esm2022/carousel/carousel-item.directive.mjs +0 -37
  290. package/esm2022/carousel/carousel.component.mjs +0 -290
  291. package/esm2022/carousel/carousel.service.mjs +0 -74
  292. package/esm2022/carousel/engine/carousel-base.mjs +0 -43
  293. package/esm2022/carousel/engine/carousel-fade.mjs +0 -46
  294. package/esm2022/carousel/engine/carousel-noop.mjs +0 -28
  295. package/esm2022/carousel/engine/carousel-slide.mjs +0 -62
  296. package/esm2022/carousel/engine/index.mjs +0 -5
  297. package/esm2022/carousel/index.mjs +0 -5
  298. package/esm2022/carousel/module.mjs +0 -21
  299. package/esm2022/carousel/ngx-tethys-carousel.mjs +0 -5
  300. package/esm2022/carousel/typings.mjs +0 -2
  301. package/esm2022/cascader/cascader-li.component.mjs +0 -81
  302. package/esm2022/cascader/cascader-search-option.component.mjs +0 -73
  303. package/esm2022/cascader/cascader.component.mjs +0 -768
  304. package/esm2022/cascader/cascader.service.mjs +0 -558
  305. package/esm2022/cascader/index.mjs +0 -5
  306. package/esm2022/cascader/module.mjs +0 -62
  307. package/esm2022/cascader/ngx-tethys-cascader.mjs +0 -5
  308. package/esm2022/cascader/types.mjs +0 -2
  309. package/esm2022/checkbox/checkbox.component.mjs +0 -51
  310. package/esm2022/checkbox/index.mjs +0 -4
  311. package/esm2022/checkbox/module.mjs +0 -18
  312. package/esm2022/checkbox/ngx-tethys-checkbox.mjs +0 -5
  313. package/esm2022/collapse/collapse-item.component.mjs +0 -88
  314. package/esm2022/collapse/collapse.component.mjs +0 -79
  315. package/esm2022/collapse/index.mjs +0 -4
  316. package/esm2022/collapse/module.mjs +0 -22
  317. package/esm2022/collapse/ngx-tethys-collapse.mjs +0 -5
  318. package/esm2022/color-picker/color-picker-custom-panel.component.mjs +0 -38
  319. package/esm2022/color-picker/color-picker-panel.component.mjs +0 -100
  320. package/esm2022/color-picker/color-picker.component.mjs +0 -289
  321. package/esm2022/color-picker/constant.mjs +0 -73
  322. package/esm2022/color-picker/coordinates.directive.mjs +0 -73
  323. package/esm2022/color-picker/helpers/color.class.mjs +0 -281
  324. package/esm2022/color-picker/helpers/colors-table.class.mjs +0 -155
  325. package/esm2022/color-picker/helpers/rgba.class.mjs +0 -34
  326. package/esm2022/color-picker/index.mjs +0 -14
  327. package/esm2022/color-picker/module.mjs +0 -72
  328. package/esm2022/color-picker/ngx-tethys-color-picker.mjs +0 -5
  329. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +0 -64
  330. package/esm2022/color-picker/parts/hue/hue.component.mjs +0 -54
  331. package/esm2022/color-picker/parts/indicator/indicator.component.mjs +0 -26
  332. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +0 -61
  333. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +0 -68
  334. package/esm2022/comment/comment-actions.directive.mjs +0 -19
  335. package/esm2022/comment/comment-content.directive.mjs +0 -19
  336. package/esm2022/comment/comment.component.mjs +0 -30
  337. package/esm2022/comment/comment.module.mjs +0 -41
  338. package/esm2022/comment/index.mjs +0 -5
  339. package/esm2022/comment/ngx-tethys-comment.mjs +0 -5
  340. package/esm2022/copy/copy.directive.mjs +0 -101
  341. package/esm2022/copy/index.mjs +0 -3
  342. package/esm2022/copy/module.mjs +0 -18
  343. package/esm2022/copy/ngx-tethys-copy.mjs +0 -5
  344. package/esm2022/core/animation/animation-consts.mjs +0 -23
  345. package/esm2022/core/animation/collapse.mjs +0 -12
  346. package/esm2022/core/animation/fade.mjs +0 -7
  347. package/esm2022/core/animation/index.mjs +0 -2
  348. package/esm2022/core/animation/public-api.mjs +0 -6
  349. package/esm2022/core/animation/thumb.mjs +0 -12
  350. package/esm2022/core/animation/zoom.mjs +0 -66
  351. package/esm2022/core/behaviors/constructor.mjs +0 -5
  352. package/esm2022/core/behaviors/control-value-accessor.mjs +0 -17
  353. package/esm2022/core/behaviors/decorators.mjs +0 -47
  354. package/esm2022/core/behaviors/disabled.mjs +0 -17
  355. package/esm2022/core/behaviors/focus-control.mjs +0 -31
  356. package/esm2022/core/behaviors/index.mjs +0 -11
  357. package/esm2022/core/behaviors/initialized.mjs +0 -12
  358. package/esm2022/core/behaviors/loading-done.mjs +0 -12
  359. package/esm2022/core/behaviors/mixin.mjs +0 -5
  360. package/esm2022/core/behaviors/tabindex.mjs +0 -21
  361. package/esm2022/core/behaviors/unsubscribe.mjs +0 -23
  362. package/esm2022/core/click-positioner.mjs +0 -36
  363. package/esm2022/core/color/color.mjs +0 -13
  364. package/esm2022/core/color/index.mjs +0 -2
  365. package/esm2022/core/debounce-time.mjs +0 -11
  366. package/esm2022/core/event-dispatchers/index.mjs +0 -2
  367. package/esm2022/core/index.mjs +0 -16
  368. package/esm2022/core/ngx-tethys-core.mjs +0 -5
  369. package/esm2022/core/overlay/abstract-overlay-container.mjs +0 -53
  370. package/esm2022/core/overlay/abstract-overlay-ref.mjs +0 -160
  371. package/esm2022/core/overlay/abstract-overlay.config.mjs +0 -70
  372. package/esm2022/core/overlay/abstract-overlay.service.mjs +0 -158
  373. package/esm2022/core/overlay/index.mjs +0 -10
  374. package/esm2022/core/overlay/interface.mjs +0 -2
  375. package/esm2022/core/overlay/overlay-position-map.mjs +0 -88
  376. package/esm2022/core/overlay/overlay.directive.mjs +0 -175
  377. package/esm2022/core/overlay/portal-directives.mjs +0 -47
  378. package/esm2022/core/overlay/utils.mjs +0 -69
  379. package/esm2022/core/request-animation.mjs +0 -41
  380. package/esm2022/core/scroll-to.service.mjs +0 -33
  381. package/esm2022/core/scroll.mjs +0 -83
  382. package/esm2022/core/spacing/index.mjs +0 -2
  383. package/esm2022/core/spacing/spacing.mjs +0 -17
  384. package/esm2022/core/store/action-state.mjs +0 -11
  385. package/esm2022/core/store/action.mjs +0 -48
  386. package/esm2022/core/store/actions-stream.mjs +0 -2
  387. package/esm2022/core/store/index.mjs +0 -4
  388. package/esm2022/core/store/store.mjs +0 -125
  389. package/esm2022/core/store/types.mjs +0 -6
  390. package/esm2022/core/store/utils.mjs +0 -14
  391. package/esm2022/core/theme/index.mjs +0 -3
  392. package/esm2022/core/theme/store.mjs +0 -42
  393. package/esm2022/core/theme/theme.mjs +0 -9
  394. package/esm2022/core/translate.mjs +0 -22
  395. package/esm2022/core/update-host-class.service.mjs +0 -60
  396. package/esm2022/date-picker/abstract-picker.component.mjs +0 -318
  397. package/esm2022/date-picker/abstract-picker.directive.mjs +0 -218
  398. package/esm2022/date-picker/base-picker.component.mjs +0 -249
  399. package/esm2022/date-picker/date-helper.service.mjs +0 -37
  400. package/esm2022/date-picker/date-picker.component.mjs +0 -41
  401. package/esm2022/date-picker/date-picker.config.mjs +0 -103
  402. package/esm2022/date-picker/date-picker.directive.mjs +0 -39
  403. package/esm2022/date-picker/date-picker.module.mjs +0 -117
  404. package/esm2022/date-picker/date-picker.service.mjs +0 -31
  405. package/esm2022/date-picker/index.mjs +0 -37
  406. package/esm2022/date-picker/inner-types.mjs +0 -2
  407. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +0 -98
  408. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +0 -92
  409. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +0 -105
  410. package/esm2022/date-picker/lib/date/date-header.component.mjs +0 -35
  411. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +0 -24
  412. package/esm2022/date-picker/lib/date/date-table.component.mjs +0 -149
  413. package/esm2022/date-picker/lib/date/types.mjs +0 -2
  414. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +0 -388
  415. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +0 -42
  416. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +0 -81
  417. package/esm2022/date-picker/lib/lib-packer.module.mjs +0 -123
  418. package/esm2022/date-picker/lib/month/month-header.component.mjs +0 -27
  419. package/esm2022/date-picker/lib/month/month-table.component.mjs +0 -97
  420. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +0 -566
  421. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +0 -196
  422. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +0 -98
  423. package/esm2022/date-picker/lib/year/year-header.component.mjs +0 -39
  424. package/esm2022/date-picker/lib/year/year-table.component.mjs +0 -100
  425. package/esm2022/date-picker/month-picker.component.mjs +0 -45
  426. package/esm2022/date-picker/ngx-tethys-date-picker.mjs +0 -5
  427. package/esm2022/date-picker/picker.component.mjs +0 -273
  428. package/esm2022/date-picker/picker.pipes.mjs +0 -112
  429. package/esm2022/date-picker/picker.util.mjs +0 -220
  430. package/esm2022/date-picker/picker.validators.mjs +0 -79
  431. package/esm2022/date-picker/quarter-picker.component.mjs +0 -48
  432. package/esm2022/date-picker/range-picker.component.mjs +0 -39
  433. package/esm2022/date-picker/range-picker.directive.mjs +0 -39
  434. package/esm2022/date-picker/standard-types.mjs +0 -2
  435. package/esm2022/date-picker/week-picker.component.mjs +0 -40
  436. package/esm2022/date-picker/year-picker.component.mjs +0 -48
  437. package/esm2022/date-range/date-range.class.mjs +0 -6
  438. package/esm2022/date-range/date-range.component.mjs +0 -255
  439. package/esm2022/date-range/index.mjs +0 -5
  440. package/esm2022/date-range/module.mjs +0 -50
  441. package/esm2022/date-range/ngx-tethys-date-range.mjs +0 -5
  442. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +0 -50
  443. package/esm2022/dialog/body/dialog-body.component.mjs +0 -49
  444. package/esm2022/dialog/confirm/confirm.component.mjs +0 -77
  445. package/esm2022/dialog/confirm/token.mjs +0 -3
  446. package/esm2022/dialog/confirm.config.mjs +0 -29
  447. package/esm2022/dialog/dialog-animations.mjs +0 -19
  448. package/esm2022/dialog/dialog-container.component.mjs +0 -169
  449. package/esm2022/dialog/dialog-ref.mjs +0 -35
  450. package/esm2022/dialog/dialog.config.mjs +0 -62
  451. package/esm2022/dialog/dialog.module.mjs +0 -91
  452. package/esm2022/dialog/dialog.options.mjs +0 -6
  453. package/esm2022/dialog/dialog.service.mjs +0 -145
  454. package/esm2022/dialog/footer/dialog-footer.component.mjs +0 -51
  455. package/esm2022/dialog/header/dialog-header.component.mjs +0 -87
  456. package/esm2022/dialog/index.mjs +0 -12
  457. package/esm2022/dialog/ngx-tethys-dialog.mjs +0 -5
  458. package/esm2022/divider/divider.component.mjs +0 -117
  459. package/esm2022/divider/divider.module.mjs +0 -20
  460. package/esm2022/divider/index.mjs +0 -3
  461. package/esm2022/divider/ngx-tethys-divider.mjs +0 -5
  462. package/esm2022/dot/dot.component.mjs +0 -111
  463. package/esm2022/dot/dot.module.mjs +0 -17
  464. package/esm2022/dot/index.mjs +0 -3
  465. package/esm2022/dot/ngx-tethys-dot.mjs +0 -5
  466. package/esm2022/drag-drop/drag-content.directive.mjs +0 -32
  467. package/esm2022/drag-drop/drag-drop.class.mjs +0 -7
  468. package/esm2022/drag-drop/drag-drop.service.mjs +0 -23
  469. package/esm2022/drag-drop/drag-handle.directive.mjs +0 -43
  470. package/esm2022/drag-drop/drag-ref.mjs +0 -225
  471. package/esm2022/drag-drop/drag.directive.mjs +0 -71
  472. package/esm2022/drag-drop/drop-container.class.mjs +0 -6
  473. package/esm2022/drag-drop/drop-container.directive.mjs +0 -129
  474. package/esm2022/drag-drop/index.mjs +0 -10
  475. package/esm2022/drag-drop/module.mjs +0 -27
  476. package/esm2022/drag-drop/ngx-tethys-drag-drop.mjs +0 -5
  477. package/esm2022/dropdown/dropdown-active.directive.mjs +0 -66
  478. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +0 -210
  479. package/esm2022/dropdown/dropdown-menu.component.mjs +0 -156
  480. package/esm2022/dropdown/dropdown-submenu.component.mjs +0 -83
  481. package/esm2022/dropdown/dropdown.directive.mjs +0 -189
  482. package/esm2022/dropdown/index.mjs +0 -7
  483. package/esm2022/dropdown/module.mjs +0 -79
  484. package/esm2022/dropdown/ngx-tethys-dropdown.mjs +0 -5
  485. package/esm2022/empty/empty.component.mjs +0 -183
  486. package/esm2022/empty/empty.config.mjs +0 -17
  487. package/esm2022/empty/empty.module.mjs +0 -21
  488. package/esm2022/empty/index.mjs +0 -4
  489. package/esm2022/empty/ngx-tethys-empty.mjs +0 -5
  490. package/esm2022/empty/svgs.mjs +0 -207
  491. package/esm2022/flexible-text/flexible-text.component.mjs +0 -157
  492. package/esm2022/flexible-text/flexible-text.module.mjs +0 -19
  493. package/esm2022/flexible-text/index.mjs +0 -3
  494. package/esm2022/flexible-text/ngx-tethys-flexible-text.mjs +0 -5
  495. package/esm2022/form/form-group-error/form-group-error.component.mjs +0 -53
  496. package/esm2022/form/form-group-label.directive.mjs +0 -49
  497. package/esm2022/form/form-group.component.mjs +0 -145
  498. package/esm2022/form/form-submit.directive.mjs +0 -40
  499. package/esm2022/form/form-validator-loader.mjs +0 -134
  500. package/esm2022/form/form-validator.service.mjs +0 -252
  501. package/esm2022/form/form.class.mjs +0 -8
  502. package/esm2022/form/form.directive.mjs +0 -158
  503. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +0 -53
  504. package/esm2022/form/index.mjs +0 -12
  505. package/esm2022/form/module.mjs +0 -104
  506. package/esm2022/form/ngx-tethys-form.mjs +0 -5
  507. package/esm2022/form/validator/confirm-validator.directive.mjs +0 -33
  508. package/esm2022/form/validator/index.mjs +0 -5
  509. package/esm2022/form/validator/max-validator.directive.mjs +0 -41
  510. package/esm2022/form/validator/min-validator.directive.mjs +0 -41
  511. package/esm2022/form/validator/unique-validator.directive.mjs +0 -52
  512. package/esm2022/fullscreen/fullscreen-launch.directive.mjs +0 -18
  513. package/esm2022/fullscreen/fullscreen-ref.mjs +0 -151
  514. package/esm2022/fullscreen/fullscreen.component.mjs +0 -78
  515. package/esm2022/fullscreen/fullscreen.config.mjs +0 -6
  516. package/esm2022/fullscreen/fullscreen.module.mjs +0 -17
  517. package/esm2022/fullscreen/fullscreen.service.mjs +0 -47
  518. package/esm2022/fullscreen/index.mjs +0 -7
  519. package/esm2022/fullscreen/ngx-tethys-fullscreen.mjs +0 -5
  520. package/esm2022/grid/flex.mjs +0 -179
  521. package/esm2022/grid/grid.token.mjs +0 -5
  522. package/esm2022/grid/index.mjs +0 -7
  523. package/esm2022/grid/module.mjs +0 -56
  524. package/esm2022/grid/ngx-tethys-grid.mjs +0 -5
  525. package/esm2022/grid/thy-col.directive.mjs +0 -66
  526. package/esm2022/grid/thy-grid-item.component.mjs +0 -60
  527. package/esm2022/grid/thy-grid.component.mjs +0 -256
  528. package/esm2022/grid/thy-row.directive.mjs +0 -59
  529. package/esm2022/guider/guider-hint/guider-hint.component.mjs +0 -52
  530. package/esm2022/guider/guider-manager.mjs +0 -39
  531. package/esm2022/guider/guider-ref.mjs +0 -133
  532. package/esm2022/guider/guider-step-ref.mjs +0 -242
  533. package/esm2022/guider/guider.class.mjs +0 -15
  534. package/esm2022/guider/guider.directive.mjs +0 -50
  535. package/esm2022/guider/guider.module.mjs +0 -24
  536. package/esm2022/guider/guider.service.mjs +0 -76
  537. package/esm2022/guider/index.mjs +0 -9
  538. package/esm2022/guider/ngx-tethys-guider.mjs +0 -5
  539. package/esm2022/guider/utils.mjs +0 -10
  540. package/esm2022/i18n/i18n.mjs +0 -9
  541. package/esm2022/i18n/i18n.service.mjs +0 -45
  542. package/esm2022/i18n/i18n.token.mjs +0 -10
  543. package/esm2022/i18n/index.mjs +0 -10
  544. package/esm2022/i18n/locale.mjs +0 -13
  545. package/esm2022/i18n/locales/de-de.mjs +0 -134
  546. package/esm2022/i18n/locales/en-us.mjs +0 -155
  547. package/esm2022/i18n/locales/ja-jp.mjs +0 -134
  548. package/esm2022/i18n/locales/zh-hans.mjs +0 -134
  549. package/esm2022/i18n/locales/zh-hant.mjs +0 -134
  550. package/esm2022/i18n/ngx-tethys-i18n.mjs +0 -5
  551. package/esm2022/icon/config.mjs +0 -8
  552. package/esm2022/icon/icon-registry.mjs +0 -340
  553. package/esm2022/icon/icon.component.mjs +0 -198
  554. package/esm2022/icon/icon.module.mjs +0 -20
  555. package/esm2022/icon/index.mjs +0 -5
  556. package/esm2022/icon/ngx-tethys-icon.mjs +0 -5
  557. package/esm2022/image/image-group.component.mjs +0 -32
  558. package/esm2022/image/image.class.mjs +0 -2
  559. package/esm2022/image/image.config.mjs +0 -21
  560. package/esm2022/image/image.directive.mjs +0 -130
  561. package/esm2022/image/image.service.mjs +0 -58
  562. package/esm2022/image/index.mjs +0 -9
  563. package/esm2022/image/module.mjs +0 -67
  564. package/esm2022/image/ngx-tethys-image.mjs +0 -5
  565. package/esm2022/image/preview/image-preview-ref.mjs +0 -32
  566. package/esm2022/image/preview/image-preview.component.mjs +0 -413
  567. package/esm2022/image/utils.mjs +0 -13
  568. package/esm2022/input/index.mjs +0 -7
  569. package/esm2022/input/input-count.component.mjs +0 -68
  570. package/esm2022/input/input-group.component.mjs +0 -161
  571. package/esm2022/input/input-search.component.mjs +0 -152
  572. package/esm2022/input/input.component.mjs +0 -142
  573. package/esm2022/input/input.directive.mjs +0 -63
  574. package/esm2022/input/module.mjs +0 -51
  575. package/esm2022/input/ngx-tethys-input.mjs +0 -5
  576. package/esm2022/input-number/index.mjs +0 -3
  577. package/esm2022/input-number/input-number.component.mjs +0 -362
  578. package/esm2022/input-number/module.mjs +0 -22
  579. package/esm2022/input-number/ngx-tethys-input-number.mjs +0 -5
  580. package/esm2022/layout/content-main.component.mjs +0 -42
  581. package/esm2022/layout/content-section.component.mjs +0 -42
  582. package/esm2022/layout/content.component.mjs +0 -42
  583. package/esm2022/layout/header.component.mjs +0 -125
  584. package/esm2022/layout/index.mjs +0 -11
  585. package/esm2022/layout/layout.component.mjs +0 -47
  586. package/esm2022/layout/layout.module.mjs +0 -121
  587. package/esm2022/layout/ngx-tethys-layout.mjs +0 -5
  588. package/esm2022/layout/sidebar-content.component.mjs +0 -41
  589. package/esm2022/layout/sidebar-footer.component.mjs +0 -41
  590. package/esm2022/layout/sidebar-header.component.mjs +0 -54
  591. package/esm2022/layout/sidebar.component.mjs +0 -405
  592. package/esm2022/list/index.mjs +0 -7
  593. package/esm2022/list/list-item-meta.component.mjs +0 -38
  594. package/esm2022/list/list-item.component.mjs +0 -25
  595. package/esm2022/list/list.component.mjs +0 -41
  596. package/esm2022/list/list.module.mjs +0 -22
  597. package/esm2022/list/ngx-tethys-list.mjs +0 -5
  598. package/esm2022/list/selection/selection-list.mjs +0 -393
  599. package/esm2022/list/selection/selection.interface.mjs +0 -2
  600. package/esm2022/loading/index.mjs +0 -3
  601. package/esm2022/loading/loading.component.mjs +0 -54
  602. package/esm2022/loading/loading.module.mjs +0 -17
  603. package/esm2022/loading/ngx-tethys-loading.mjs +0 -5
  604. package/esm2022/mention/adapter/adapter.mjs +0 -20
  605. package/esm2022/mention/adapter/editable.adapter.mjs +0 -48
  606. package/esm2022/mention/adapter/index.mjs +0 -16
  607. package/esm2022/mention/adapter/textarea.adapter.mjs +0 -58
  608. package/esm2022/mention/caret-positioner.mjs +0 -194
  609. package/esm2022/mention/index.mjs +0 -5
  610. package/esm2022/mention/interfaces.mjs +0 -2
  611. package/esm2022/mention/mention.directive.mjs +0 -160
  612. package/esm2022/mention/mention.module.mjs +0 -23
  613. package/esm2022/mention/ngx-tethys-mention.mjs +0 -5
  614. package/esm2022/mention/suggestions/suggestions.component.mjs +0 -80
  615. package/esm2022/menu/divider/menu-divider.component.mjs +0 -21
  616. package/esm2022/menu/group/menu-group.component.mjs +0 -187
  617. package/esm2022/menu/index.mjs +0 -9
  618. package/esm2022/menu/item/action/menu-item-action.component.mjs +0 -75
  619. package/esm2022/menu/item/icon/menu-item-icon.component.mjs +0 -33
  620. package/esm2022/menu/item/menu-item.component.mjs +0 -42
  621. package/esm2022/menu/item/name/menu-item-name.component.mjs +0 -32
  622. package/esm2022/menu/menu.component.mjs +0 -39
  623. package/esm2022/menu/menu.module.mjs +0 -49
  624. package/esm2022/menu/ngx-tethys-menu.mjs +0 -5
  625. package/esm2022/message/abstract/abstract-message-container.component.mjs +0 -26
  626. package/esm2022/message/abstract/abstract-message-queue.service.mjs +0 -34
  627. package/esm2022/message/abstract/abstract-message-ref.mjs +0 -22
  628. package/esm2022/message/abstract/abstract-message.component.mjs +0 -76
  629. package/esm2022/message/abstract/abstract-message.service.mjs +0 -29
  630. package/esm2022/message/abstract/index.mjs +0 -6
  631. package/esm2022/message/index.mjs +0 -9
  632. package/esm2022/message/message-container.component.mjs +0 -45
  633. package/esm2022/message/message-queue.service.mjs +0 -25
  634. package/esm2022/message/message-ref.mjs +0 -4
  635. package/esm2022/message/message.component.mjs +0 -61
  636. package/esm2022/message/message.config.mjs +0 -14
  637. package/esm2022/message/message.service.mjs +0 -92
  638. package/esm2022/message/module.mjs +0 -24
  639. package/esm2022/message/ngx-tethys-message.mjs +0 -5
  640. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +0 -43
  641. package/esm2022/nav/icon-nav/icon-nav.component.mjs +0 -45
  642. package/esm2022/nav/index.mjs +0 -7
  643. package/esm2022/nav/nav-ink-bar.directive.mjs +0 -79
  644. package/esm2022/nav/nav-item.directive.mjs +0 -98
  645. package/esm2022/nav/nav.component.mjs +0 -410
  646. package/esm2022/nav/nav.module.mjs +0 -54
  647. package/esm2022/nav/nav.pipe.mjs +0 -24
  648. package/esm2022/nav/ngx-tethys-nav.mjs +0 -5
  649. package/esm2022/ngx-tethys.mjs +0 -5
  650. package/esm2022/notify/index.mjs +0 -8
  651. package/esm2022/notify/module.mjs +0 -24
  652. package/esm2022/notify/ngx-tethys-notify.mjs +0 -5
  653. package/esm2022/notify/notify-container.component.mjs +0 -31
  654. package/esm2022/notify/notify-queue.service.mjs +0 -30
  655. package/esm2022/notify/notify-ref.mjs +0 -4
  656. package/esm2022/notify/notify.component.mjs +0 -99
  657. package/esm2022/notify/notify.config.mjs +0 -14
  658. package/esm2022/notify/notify.service.mjs +0 -97
  659. package/esm2022/pagination/index.mjs +0 -6
  660. package/esm2022/pagination/ngx-tethys-pagination.mjs +0 -5
  661. package/esm2022/pagination/pagination.class.mjs +0 -2
  662. package/esm2022/pagination/pagination.component.mjs +0 -366
  663. package/esm2022/pagination/pagination.config.mjs +0 -30
  664. package/esm2022/pagination/pagination.module.mjs +0 -43
  665. package/esm2022/pagination/pagination.pipe.mjs +0 -53
  666. package/esm2022/popover/body/popover-body.component.mjs +0 -25
  667. package/esm2022/popover/header/popover-header.component.mjs +0 -54
  668. package/esm2022/popover/index.mjs +0 -10
  669. package/esm2022/popover/module.mjs +0 -47
  670. package/esm2022/popover/ngx-tethys-popover.mjs +0 -5
  671. package/esm2022/popover/popover-animations.mjs +0 -22
  672. package/esm2022/popover/popover-container.component.mjs +0 -125
  673. package/esm2022/popover/popover-ref.mjs +0 -25
  674. package/esm2022/popover/popover.config.mjs +0 -38
  675. package/esm2022/popover/popover.directive.mjs +0 -157
  676. package/esm2022/popover/popover.options.mjs +0 -6
  677. package/esm2022/popover/popover.service.mjs +0 -201
  678. package/esm2022/progress/index.mjs +0 -6
  679. package/esm2022/progress/interfaces.mjs +0 -2
  680. package/esm2022/progress/ngx-tethys-progress.mjs +0 -5
  681. package/esm2022/progress/progress-circle.component.mjs +0 -136
  682. package/esm2022/progress/progress-strip.component.mjs +0 -54
  683. package/esm2022/progress/progress.component.mjs +0 -142
  684. package/esm2022/progress/progress.module.mjs +0 -20
  685. package/esm2022/property/index.mjs +0 -4
  686. package/esm2022/property/module.mjs +0 -20
  687. package/esm2022/property/ngx-tethys-property.mjs +0 -5
  688. package/esm2022/property/properties.component.mjs +0 -59
  689. package/esm2022/property/property-item.component.mjs +0 -175
  690. package/esm2022/property-operation/group/property-operation-group.component.mjs +0 -20
  691. package/esm2022/property-operation/index.mjs +0 -4
  692. package/esm2022/property-operation/module.mjs +0 -21
  693. package/esm2022/property-operation/ngx-tethys-property-operation.mjs +0 -5
  694. package/esm2022/property-operation/property-operation.component.mjs +0 -183
  695. package/esm2022/public-api.mjs +0 -2
  696. package/esm2022/radio/button/radio-button.component.mjs +0 -56
  697. package/esm2022/radio/group/radio-group.component.mjs +0 -138
  698. package/esm2022/radio/index.mjs +0 -5
  699. package/esm2022/radio/module.mjs +0 -20
  700. package/esm2022/radio/ngx-tethys-radio.mjs +0 -5
  701. package/esm2022/radio/radio.component.mjs +0 -58
  702. package/esm2022/rate/index.mjs +0 -4
  703. package/esm2022/rate/module.mjs +0 -23
  704. package/esm2022/rate/ngx-tethys-rate.mjs +0 -5
  705. package/esm2022/rate/rate-item.component.mjs +0 -76
  706. package/esm2022/rate/rate.component.mjs +0 -244
  707. package/esm2022/resizable/index.mjs +0 -8
  708. package/esm2022/resizable/interface.mjs +0 -2
  709. package/esm2022/resizable/module.mjs +0 -19
  710. package/esm2022/resizable/ngx-tethys-resizable.mjs +0 -5
  711. package/esm2022/resizable/resizable.directive.mjs +0 -363
  712. package/esm2022/resizable/resizable.service.mjs +0 -69
  713. package/esm2022/resizable/resize-handle.component.mjs +0 -104
  714. package/esm2022/resizable/resize-handles.component.mjs +0 -64
  715. package/esm2022/resizable/utils.mjs +0 -14
  716. package/esm2022/result/index.mjs +0 -3
  717. package/esm2022/result/ngx-tethys-result.mjs +0 -5
  718. package/esm2022/result/result.component.mjs +0 -43
  719. package/esm2022/result/result.module.mjs +0 -17
  720. package/esm2022/segment/index.mjs +0 -5
  721. package/esm2022/segment/ngx-tethys-segment.mjs +0 -5
  722. package/esm2022/segment/segment-item.component.mjs +0 -87
  723. package/esm2022/segment/segment.component.mjs +0 -143
  724. package/esm2022/segment/segment.module.mjs +0 -20
  725. package/esm2022/segment/segment.token.mjs +0 -3
  726. package/esm2022/segment/types.mjs +0 -2
  727. package/esm2022/select/custom-select/custom-select.component.mjs +0 -904
  728. package/esm2022/select/index.mjs +0 -5
  729. package/esm2022/select/module.mjs +0 -62
  730. package/esm2022/select/native-select/native-select.component.mjs +0 -98
  731. package/esm2022/select/ngx-tethys-select.mjs +0 -5
  732. package/esm2022/select/select.config.mjs +0 -21
  733. package/esm2022/shared/base-form-check.component.mjs +0 -120
  734. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +0 -57
  735. package/esm2022/shared/directives/thy-autofocus.directive.mjs +0 -60
  736. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +0 -39
  737. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +0 -43
  738. package/esm2022/shared/directives/thy-drag-drop.directive.mjs +0 -51
  739. package/esm2022/shared/directives/thy-enter.directive.mjs +0 -43
  740. package/esm2022/shared/directives/thy-scroll.directive.mjs +0 -84
  741. package/esm2022/shared/directives/thy-show.mjs +0 -59
  742. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +0 -57
  743. package/esm2022/shared/directives/view-outlet.directive.mjs +0 -85
  744. package/esm2022/shared/index.mjs +0 -16
  745. package/esm2022/shared/ng-transclude.directive.mjs +0 -32
  746. package/esm2022/shared/ngx-tethys-shared.mjs +0 -5
  747. package/esm2022/shared/option/group/option-group.component.mjs +0 -92
  748. package/esm2022/shared/option/index.mjs +0 -9
  749. package/esm2022/shared/option/list-option/list-option.component.mjs +0 -96
  750. package/esm2022/shared/option/module.mjs +0 -29
  751. package/esm2022/shared/option/option-group.component.mjs +0 -25
  752. package/esm2022/shared/option/option.component.mjs +0 -181
  753. package/esm2022/shared/option/option.token.mjs +0 -14
  754. package/esm2022/shared/option/options-container.component.mjs +0 -29
  755. package/esm2022/shared/option/select-option-base.mjs +0 -3
  756. package/esm2022/shared/select/index.mjs +0 -3
  757. package/esm2022/shared/select/module.mjs +0 -27
  758. package/esm2022/shared/select/select-control/select-control.component.mjs +0 -280
  759. package/esm2022/shared/shared.module.mjs +0 -71
  760. package/esm2022/skeleton/index.mjs +0 -9
  761. package/esm2022/skeleton/module.mjs +0 -27
  762. package/esm2022/skeleton/ngx-tethys-skeleton.mjs +0 -5
  763. package/esm2022/skeleton/skeleton-circle.component.mjs +0 -92
  764. package/esm2022/skeleton/skeleton-rectangle.component.mjs +0 -100
  765. package/esm2022/skeleton/skeleton.component.mjs +0 -32
  766. package/esm2022/skeleton/skeleton.config.mjs +0 -8
  767. package/esm2022/skeleton/stylized/bullet-list.component.mjs +0 -124
  768. package/esm2022/skeleton/stylized/list.component.mjs +0 -95
  769. package/esm2022/skeleton/stylized/paragraph.component.mjs +0 -107
  770. package/esm2022/slide/drawer/drawer-container.directive.mjs +0 -21
  771. package/esm2022/slide/index.mjs +0 -13
  772. package/esm2022/slide/ngx-tethys-slide.mjs +0 -5
  773. package/esm2022/slide/slide-animations.mjs +0 -24
  774. package/esm2022/slide/slide-body/slide-body-section.component.mjs +0 -41
  775. package/esm2022/slide/slide-body/slide-body.component.mjs +0 -25
  776. package/esm2022/slide/slide-container.component.mjs +0 -192
  777. package/esm2022/slide/slide-footer/slide-footer.component.mjs +0 -26
  778. package/esm2022/slide/slide-header/slide-header.component.mjs +0 -59
  779. package/esm2022/slide/slide-layout/slide-layout.component.mjs +0 -27
  780. package/esm2022/slide/slide-ref.service.mjs +0 -32
  781. package/esm2022/slide/slide.config.mjs +0 -38
  782. package/esm2022/slide/slide.module.mjs +0 -65
  783. package/esm2022/slide/slide.service.mjs +0 -104
  784. package/esm2022/slider/index.mjs +0 -3
  785. package/esm2022/slider/ngx-tethys-slider.mjs +0 -5
  786. package/esm2022/slider/slider.component.mjs +0 -346
  787. package/esm2022/slider/slider.module.mjs +0 -19
  788. package/esm2022/space/index.mjs +0 -3
  789. package/esm2022/space/ngx-tethys-space.mjs +0 -5
  790. package/esm2022/space/space.component.mjs +0 -88
  791. package/esm2022/space/space.module.mjs +0 -17
  792. package/esm2022/statistic/index.mjs +0 -3
  793. package/esm2022/statistic/ngx-tethys-statistic.mjs +0 -5
  794. package/esm2022/statistic/statistic.component.mjs +0 -184
  795. package/esm2022/statistic/statistic.module.mjs +0 -20
  796. package/esm2022/stepper/index.mjs +0 -6
  797. package/esm2022/stepper/ngx-tethys-stepper.mjs +0 -5
  798. package/esm2022/stepper/step-header.component.mjs +0 -40
  799. package/esm2022/stepper/step.component.mjs +0 -32
  800. package/esm2022/stepper/stepper-button.directive.mjs +0 -56
  801. package/esm2022/stepper/stepper.component.mjs +0 -105
  802. package/esm2022/stepper/stepper.module.mjs +0 -21
  803. package/esm2022/strength/index.mjs +0 -3
  804. package/esm2022/strength/ngx-tethys-strength.mjs +0 -5
  805. package/esm2022/strength/strength.component.mjs +0 -122
  806. package/esm2022/strength/strength.module.mjs +0 -17
  807. package/esm2022/switch/index.mjs +0 -3
  808. package/esm2022/switch/ngx-tethys-switch.mjs +0 -5
  809. package/esm2022/switch/switch.component.mjs +0 -181
  810. package/esm2022/switch/switch.module.mjs +0 -17
  811. package/esm2022/table/enums/column-skeleton-type.mjs +0 -8
  812. package/esm2022/table/enums/index.mjs +0 -2
  813. package/esm2022/table/index.mjs +0 -9
  814. package/esm2022/table/ngx-tethys-table.mjs +0 -5
  815. package/esm2022/table/pipes/drag.pipe.mjs +0 -20
  816. package/esm2022/table/pipes/table.pipe.mjs +0 -20
  817. package/esm2022/table/table-column.component.mjs +0 -200
  818. package/esm2022/table/table-skeleton.component.mjs +0 -165
  819. package/esm2022/table/table.component.mjs +0 -966
  820. package/esm2022/table/table.interface.mjs +0 -7
  821. package/esm2022/table/table.module.mjs +0 -75
  822. package/esm2022/tabs/index.mjs +0 -5
  823. package/esm2022/tabs/ngx-tethys-tabs.mjs +0 -5
  824. package/esm2022/tabs/tab-content.component.mjs +0 -52
  825. package/esm2022/tabs/tab.component.mjs +0 -36
  826. package/esm2022/tabs/tabs.component.mjs +0 -139
  827. package/esm2022/tabs/tabs.module.mjs +0 -21
  828. package/esm2022/tabs/types.mjs +0 -2
  829. package/esm2022/tag/index.mjs +0 -4
  830. package/esm2022/tag/ngx-tethys-tag.mjs +0 -5
  831. package/esm2022/tag/tag.component.mjs +0 -109
  832. package/esm2022/tag/tag.module.mjs +0 -19
  833. package/esm2022/tag/tags.component.mjs +0 -24
  834. package/esm2022/testing/data-transfer.mjs +0 -55
  835. package/esm2022/testing/dispatcher-events.mjs +0 -46
  836. package/esm2022/testing/element-focus.mjs +0 -18
  837. package/esm2022/testing/events.mjs +0 -145
  838. package/esm2022/testing/index.mjs +0 -8
  839. package/esm2022/testing/ngx-tethys-testing.mjs +0 -5
  840. package/esm2022/testing/thy-icon.mjs +0 -50
  841. package/esm2022/testing/type-in-element.mjs +0 -20
  842. package/esm2022/testing/xhr-mock.mjs +0 -100
  843. package/esm2022/time-picker/index.mjs +0 -8
  844. package/esm2022/time-picker/inner/inner-time-picker.class.mjs +0 -2
  845. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +0 -239
  846. package/esm2022/time-picker/inner/inner-time-picker.config.mjs +0 -45
  847. package/esm2022/time-picker/inner/inner-time-picker.store.mjs +0 -134
  848. package/esm2022/time-picker/ngx-tethys-time-picker.mjs +0 -5
  849. package/esm2022/time-picker/time-picker-controls.util.mjs +0 -118
  850. package/esm2022/time-picker/time-picker-panel.component.mjs +0 -265
  851. package/esm2022/time-picker/time-picker.component.mjs +0 -363
  852. package/esm2022/time-picker/time-picker.module.mjs +0 -54
  853. package/esm2022/time-picker/time-picker.utils.mjs +0 -131
  854. package/esm2022/timeline/index.mjs +0 -5
  855. package/esm2022/timeline/ngx-tethys-timeline.mjs +0 -5
  856. package/esm2022/timeline/timeline-item.component.mjs +0 -59
  857. package/esm2022/timeline/timeline.component.mjs +0 -156
  858. package/esm2022/timeline/timeline.module.mjs +0 -21
  859. package/esm2022/timeline/timeline.service.mjs +0 -17
  860. package/esm2022/tooltip/index.mjs +0 -9
  861. package/esm2022/tooltip/interface.mjs +0 -2
  862. package/esm2022/tooltip/ngx-tethys-tooltip.mjs +0 -5
  863. package/esm2022/tooltip/tooltip-animations.mjs +0 -23
  864. package/esm2022/tooltip/tooltip-ref.mjs +0 -147
  865. package/esm2022/tooltip/tooltip.component.mjs +0 -103
  866. package/esm2022/tooltip/tooltip.config.mjs +0 -17
  867. package/esm2022/tooltip/tooltip.directive.mjs +0 -150
  868. package/esm2022/tooltip/tooltip.module.mjs +0 -22
  869. package/esm2022/tooltip/tooltip.service.mjs +0 -28
  870. package/esm2022/transfer/index.mjs +0 -5
  871. package/esm2022/transfer/ngx-tethys-transfer.mjs +0 -5
  872. package/esm2022/transfer/transfer-list.component.mjs +0 -154
  873. package/esm2022/transfer/transfer.component.mjs +0 -180
  874. package/esm2022/transfer/transfer.interface.mjs +0 -6
  875. package/esm2022/transfer/transfer.module.mjs +0 -50
  876. package/esm2022/tree/index.mjs +0 -7
  877. package/esm2022/tree/ngx-tethys-tree.mjs +0 -5
  878. package/esm2022/tree/tree-abstract.mjs +0 -3
  879. package/esm2022/tree/tree-node.class.mjs +0 -93
  880. package/esm2022/tree/tree-node.component.mjs +0 -212
  881. package/esm2022/tree/tree.class.mjs +0 -15
  882. package/esm2022/tree/tree.component.mjs +0 -648
  883. package/esm2022/tree/tree.module.mjs +0 -74
  884. package/esm2022/tree/tree.pipe.mjs +0 -26
  885. package/esm2022/tree/tree.service.mjs +0 -187
  886. package/esm2022/tree-select/index.mjs +0 -4
  887. package/esm2022/tree-select/module.mjs +0 -52
  888. package/esm2022/tree-select/ngx-tethys-tree-select.mjs +0 -5
  889. package/esm2022/tree-select/tree-select.class.mjs +0 -2
  890. package/esm2022/tree-select/tree-select.component.mjs +0 -653
  891. package/esm2022/types/common.mjs +0 -2
  892. package/esm2022/types/dictionary.mjs +0 -2
  893. package/esm2022/types/index.mjs +0 -4
  894. package/esm2022/types/ngx-tethys-types.mjs +0 -5
  895. package/esm2022/types/pagination.mjs +0 -2
  896. package/esm2022/typography/bg-color.directive.mjs +0 -51
  897. package/esm2022/typography/index.mjs +0 -5
  898. package/esm2022/typography/module.mjs +0 -21
  899. package/esm2022/typography/ngx-tethys-typography.mjs +0 -5
  900. package/esm2022/typography/text/text.component.mjs +0 -23
  901. package/esm2022/typography/text-color.directive.mjs +0 -52
  902. package/esm2022/upload/constant.mjs +0 -75
  903. package/esm2022/upload/file-drop.directive.mjs +0 -166
  904. package/esm2022/upload/file-select-base.mjs +0 -75
  905. package/esm2022/upload/file-select.component.mjs +0 -98
  906. package/esm2022/upload/index.mjs +0 -7
  907. package/esm2022/upload/module.mjs +0 -22
  908. package/esm2022/upload/ngx-tethys-upload.mjs +0 -5
  909. package/esm2022/upload/types.mjs +0 -2
  910. package/esm2022/upload/upload.config.mjs +0 -21
  911. package/esm2022/upload/upload.service.mjs +0 -169
  912. package/esm2022/upload/util.mjs +0 -27
  913. package/esm2022/util/date/functions.mjs +0 -84
  914. package/esm2022/util/date/tiny-date.mjs +0 -362
  915. package/esm2022/util/dom.mjs +0 -247
  916. package/esm2022/util/helpers/helpers.mjs +0 -293
  917. package/esm2022/util/helpers/index.mjs +0 -2
  918. package/esm2022/util/immutable.mjs +0 -108
  919. package/esm2022/util/index.mjs +0 -16
  920. package/esm2022/util/keycodes.mjs +0 -2
  921. package/esm2022/util/logger/index.mjs +0 -2
  922. package/esm2022/util/logger/logger.mjs +0 -42
  923. package/esm2022/util/ng.mjs +0 -7
  924. package/esm2022/util/ngx-tethys-util.mjs +0 -5
  925. package/esm2022/util/references.mjs +0 -84
  926. package/esm2022/version.mjs +0 -3
  927. package/esm2022/vote/index.mjs +0 -3
  928. package/esm2022/vote/ngx-tethys-vote.mjs +0 -5
  929. package/esm2022/vote/vote.component.mjs +0 -130
  930. package/esm2022/vote/vote.module.mjs +0 -20
  931. package/esm2022/watermark/config.mjs +0 -20
  932. package/esm2022/watermark/index.mjs +0 -3
  933. package/esm2022/watermark/ngx-tethys-watermark.mjs +0 -5
  934. package/esm2022/watermark/watermark.directive.mjs +0 -178
  935. package/esm2022/watermark/watermark.module.mjs +0 -19
  936. package/schematics/ng-update/update-18/complete.d.ts +0 -3
  937. package/schematics/ng-update/update-18/complete.js +0 -13
  938. /package/schematics/ng-update/{update-18 → update-19}/class-name-migration.d.ts +0 -0
  939. /package/schematics/ng-update/{update-18 → update-19}/class-name-migration.js +0 -0
  940. /package/schematics/ng-update/{update-18 → update-19}/index.d.ts +0 -0
  941. /package/schematics/ng-update/{update-18 → update-19}/index.spec.d.ts +0 -0
  942. /package/schematics/ng-update/{update-18 → update-19}/update-data.d.ts +0 -0
  943. /package/schematics/ng-update/{update-18 → update-19}/update-data.js +0 -0
@@ -1,247 +0,0 @@
1
- import { ElementRef } from '@angular/core';
2
- import * as helpers from './helpers';
3
- const proto = Element.prototype;
4
- const vendor = proto.matches ||
5
- proto['matchesSelector'] ||
6
- proto['webkitMatchesSelector'] ||
7
- proto['mozMatchesSelector'] ||
8
- proto['msMatchesSelector'] ||
9
- proto['oMatchesSelector'];
10
- export function fallbackMatches(el, selector) {
11
- const nodes = el.parentNode.querySelectorAll(selector);
12
- for (let i = 0; i < nodes.length; i++) {
13
- if (nodes[i] === el) {
14
- return true;
15
- }
16
- }
17
- return false;
18
- }
19
- /**
20
- * Match `el` to `selector`.
21
- */
22
- export function match(el, selector) {
23
- if (vendor) {
24
- return vendor.call(el, selector);
25
- }
26
- return fallbackMatches(el, selector);
27
- }
28
- export function isDocument(element) {
29
- return ((typeof element !== 'undefined' && element instanceof Document) || (element.nodeType && element.nodeType === element.DOCUMENT_NODE));
30
- }
31
- export function isElement(element) {
32
- return ((typeof HTMLElement !== 'undefined' && element instanceof HTMLElement) ||
33
- (element && element.nodeType && element.nodeType === element.ELEMENT_NODE));
34
- }
35
- export function getWindow(elem) {
36
- return elem != null && elem === elem.window ? elem : elem.nodeType === 9 && elem.defaultView;
37
- }
38
- export function getElementOffset(elem) {
39
- let docElem, win, rect, doc;
40
- if (!elem) {
41
- return;
42
- }
43
- // Support: IE<=11+
44
- // Running getBoundingClientRect on a
45
- // disconnected node in IE throws an error
46
- if (!elem.getClientRects().length) {
47
- return { top: 0, left: 0 };
48
- }
49
- rect = elem.getBoundingClientRect();
50
- // Make sure element is not hidden (display: none)
51
- if (rect.width || rect.height) {
52
- doc = elem.ownerDocument;
53
- win = getWindow(doc);
54
- docElem = doc.documentElement;
55
- return {
56
- top: rect.top + win.pageYOffset - docElem.clientTop,
57
- left: rect.left + win.pageXOffset - docElem.clientLeft,
58
- height: rect.height,
59
- width: rect.width
60
- };
61
- }
62
- return rect;
63
- }
64
- export function getOffset(element, container) {
65
- if (!element || !element.getClientRects().length) {
66
- return null;
67
- }
68
- const rect = element.getBoundingClientRect();
69
- if (rect.width || rect.height) {
70
- if (container === window) {
71
- const documentElement = element.ownerDocument.documentElement;
72
- return {
73
- top: rect.top - documentElement.clientTop,
74
- left: rect.left - documentElement.clientLeft
75
- };
76
- }
77
- const containerRect = container.getBoundingClientRect();
78
- return {
79
- top: rect.top - containerRect.top,
80
- left: rect.left - containerRect.left
81
- };
82
- }
83
- return rect;
84
- }
85
- export function getClientSize() {
86
- const width = document.documentElement.clientWidth;
87
- const height = window.innerHeight || document.documentElement.clientHeight;
88
- return {
89
- width,
90
- height
91
- };
92
- }
93
- export function getHTMLElementBySelector(selector, defaultElementRef) {
94
- if (!selector) {
95
- return defaultElementRef.nativeElement;
96
- }
97
- else if (selector === 'body') {
98
- return document.body;
99
- }
100
- else if (helpers.isString(selector)) {
101
- return document.querySelector(selector);
102
- }
103
- else if (selector instanceof ElementRef) {
104
- return selector.nativeElement;
105
- }
106
- else {
107
- return selector;
108
- }
109
- }
110
- export function isInputOrTextarea(element) {
111
- return ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;
112
- }
113
- export function isWindow(container) {
114
- return typeof window !== 'undefined' && container === window;
115
- }
116
- export function getContainerRect(container) {
117
- return !isWindow(container)
118
- ? container.getBoundingClientRect()
119
- : {
120
- top: 0,
121
- left: 0,
122
- bottom: 0
123
- };
124
- }
125
- export function getStyleAsText(styles) {
126
- if (!styles) {
127
- return '';
128
- }
129
- return Object.keys(styles)
130
- .map(key => {
131
- const val = styles[key];
132
- return `${key}:${typeof val === 'string' ? val : val + 'px'}`;
133
- })
134
- .join(';');
135
- }
136
- export function isTouchEvent(event) {
137
- return event.type.startsWith('touch');
138
- }
139
- /**
140
- * Assert wrapper element whether only contains icon.
141
- */
142
- export function assertIconOnly(wrapperElement) {
143
- const listOfNode = Array.from(wrapperElement.childNodes);
144
- const iconCount = listOfNode.filter(node => ['THY-ICON', 'I'].includes(node.nodeName)).length;
145
- const noText = listOfNode.every(node => node.nodeName !== '#text');
146
- const noSpan = listOfNode.every(node => node.nodeName !== 'SPAN');
147
- const isIconOnly = noSpan && noText && iconCount >= 1;
148
- return isIconOnly;
149
- }
150
- /**
151
- *
152
- * calc position x,y point
153
- *
154
- * CASE (width <= clientWidth && height <= clientHeight):
155
- *
156
- * ------------- clientWidth -------------
157
- * | |
158
- * | ------ width ------ |
159
- * | | | |
160
- * | | | |
161
- * client height | |
162
- * Height | | |
163
- * | | | |
164
- * | ------------------- |
165
- * | |
166
- * | |
167
- * ---------------------------------------
168
- * fixedPosition = { x: 0, y: 0 }
169
- *
170
- *
171
- *
172
- * CASE (width > clientWidth || height > clientHeight):
173
- *
174
- * ------------- clientWidth -------------
175
- * | | |
176
- * | top |
177
- * | | |
178
- * |--left--|--------------- width -----------------
179
- * | | |
180
- * client | |
181
- * Height | |
182
- * | | |
183
- * | | |
184
- * | height |
185
- * | | |
186
- * ---------| |
187
- * | |
188
- * | |
189
- * | |
190
- * ----------------------------------------
191
- *
192
- *
193
- * - left || top > 0
194
- * left -> 0 || top -> 0
195
- *
196
- * - (left + width) < clientWidth || (top + height) < clientHeight
197
- * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight
198
- *
199
- * DEFAULT:
200
- * - hold position
201
- *
202
- */
203
- export function getFitContentPosition(params) {
204
- let fixPos = {};
205
- if (params.width <= params.clientWidth && params.height <= params.clientHeight) {
206
- fixPos = {
207
- x: 0,
208
- y: 0
209
- };
210
- }
211
- if (params.width > params.clientWidth || params.height > params.clientHeight) {
212
- fixPos = {
213
- x: fitPoint(params.left, params.width, params.clientWidth),
214
- y: fitPoint(params.top, params.height, params.clientHeight)
215
- };
216
- }
217
- return fixPos;
218
- }
219
- function fitPoint(start, size, clientSize) {
220
- const startAddSize = start + size;
221
- const offsetStart = (size - clientSize) / 2;
222
- let distance = null;
223
- if (size > clientSize) {
224
- if (start > 0) {
225
- distance = offsetStart;
226
- }
227
- if (start < 0 && startAddSize < clientSize) {
228
- distance = -offsetStart;
229
- }
230
- }
231
- else {
232
- if (start < 0 || startAddSize > clientSize) {
233
- distance = start < 0 ? offsetStart : -offsetStart;
234
- }
235
- }
236
- return distance;
237
- }
238
- export function elementMatchClosest(element, selectors) {
239
- let matched = false;
240
- if (element && element.closest) {
241
- matched = !!helpers.coerceArray(selectors).find(selector => {
242
- return element.closest(selector);
243
- });
244
- }
245
- return matched;
246
- }
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUNoQyxNQUFNLE1BQU0sR0FDUixLQUFLLENBQUMsT0FBTztJQUNiLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QixLQUFLLENBQUMsdUJBQXVCLENBQUM7SUFDOUIsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQzNCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUMxQixLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUU5QixNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQWtCLEVBQUUsUUFBZ0I7SUFDaEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxFQUFrQixFQUFFLFFBQWdCO0lBQ3RELElBQUksTUFBTSxFQUFFLENBQUM7UUFDVCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQyxFQUFFLEVB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bEYsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QixPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tICcuL2hlbHBlcnMnO1xuXG5jb25zdCBwcm90byA9IEVsZW1lbnQucHJvdG90eXBlO1xuY29uc3QgdmVuZG9yID1cbiAgICBwcm90by5tYXRjaGVzIHx8XG4gICAgcHJvdG9bJ21hdGNoZXNTZWxlY3RvciddIHx8XG4gICAgcHJvdG9bJ3dlYmtpdE1hdGNoZXNTZWxlY3RvciddIHx8XG4gICAgcHJvdG9bJ21vek1hdGNoZXNTZWxlY3RvciddIHx8XG4gICAgcHJvdG9bJ21zTWF0Y2hlc1NlbGVjdG9yJ10gfHxcbiAgICBwcm90b1snb01hdGNoZXNTZWxlY3RvciddO1xuXG5leHBvcnQgZnVuY3Rpb24gZmFsbGJhY2tNYXRjaGVzKGVsOiBFbGVtZW50IHwgTm9kZSwgc2VsZWN0b3I6IHN0cmluZykge1xuICAgIGNvbnN0IG5vZGVzID0gZWwucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChub2Rlc1tpXSA9PT0gZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbi8qKlxuICogTWF0Y2ggYGVsYCB0byBgc2VsZWN0b3JgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goZWw6IEVsZW1lbnQgfCBOb2RlLCBzZWxlY3Rvcjogc3RyaW5nKSB7XG4gICAgaWYgKHZlbmRvcikge1xuICAgICAgICByZXR1cm4gdmVuZG9yLmNhbGwoZWwsIHNlbGVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrTWF0Y2hlcyhlbCwgc2VsZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEb2N1bWVudChlbGVtZW50OiBhbnkpOiBlbGVtZW50IGlzIERvY3VtZW50IHtcbiAgICByZXR1cm4gKFxuICAgICAgICAodHlwZW9mIGVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGVsZW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudCkgfHwgKGVsZW1lbnQubm9kZVR5cGUgJiYgZWxlbWVudC5ub2RlVHlwZSA9PT0gZWxlbWVudC5ET0NVTUVOVF9OT0RFKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VsZW1lbnQoZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHR5cGVvZiBIVE1MRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB8fFxuICAgICAgICAoZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IGVsZW1lbnQuRUxFTUVOVF9OT0RFKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaW5kb3coZWxlbTogYW55KSB7XG4gICAgcmV0dXJuIGVsZW0gIT0gbnVsbCAmJiBlbGVtID09PSBlbGVtLndpbmRvdyA/IGVsZW0gOiBlbGVtLm5vZGVUeXBlID09PSA5ICYmIGVsZW0uZGVmYXVsdFZpZXc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50T2Zmc2V0KGVsZW06IEhUTUxFbGVtZW50KSB7XG4gICAgbGV0IGRvY0VsZW0sIHdpbiwgcmVjdCwgZG9jO1xuXG4gICAgaWYgKCFlbGVtKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gU3VwcG9ydDogSUU8PTExK1xuICAgIC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGFcbiAgICAvLyBkaXNjb25uZWN0ZWQgbm9kZSBpbiBJRSB0aHJvd3MgYW4gZXJyb3JcbiAgICBpZiAoIWVsZW0uZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07XG4gICAgfVxuICAgIHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgLy8gTWFrZSBzdXJlIGVsZW1lbnQgaXMgbm90IGhpZGRlbiAoZGlzcGxheTogbm9uZSlcbiAgICBpZiAocmVjdC53aWR0aCB8fCByZWN0LmhlaWdodCkge1xuICAgICAgICBkb2MgPSBlbGVtLm93bmVyRG9jdW1lbnQ7XG4gICAgICAgIHdpbiA9IGdldFdpbmRvdyhkb2MpO1xuICAgICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiByZWN0LnRvcCArIHdpbi5wYWdlWU9mZnNldCAtIGRvY0VsZW0uY2xpZW50VG9wLFxuICAgICAgICAgICAgbGVmdDogcmVjdC5sZWZ0ICsgd2luLnBhZ2VYT2Zmc2V0IC0gZG9jRWxlbS5jbGllbnRMZWZ0LFxuICAgICAgICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiByZWN0LndpZHRoXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiByZWN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250YWluZXI6IEhUTUxFbGVtZW50IHwgV2luZG93KTogeyBsZWZ0OiBudW1iZXI7IHRvcDogbnVtYmVyIH0gfCBudWxsIHtcbiAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgaWYgKHJlY3Qud2lkdGggfHwgcmVjdC5oZWlnaHQpIHtcbiAgICAgICAgaWYgKGNvbnRhaW5lciA9PT0gd2luZG93KSB7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQhLmRvY3VtZW50RWxlbWVudCE7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRvcDogcmVjdC50b3AgLSBkb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wLFxuICAgICAgICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCAtIGRvY3VtZW50RWxlbWVudC5jbGllbnRMZWZ0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSAoY29udGFpbmVyIGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogcmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCxcbiAgICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiByZWN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50U2l6ZSgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICB9O1xufVxuXG5leHBvcnQgdHlwZSBFbGVtZW50U2VsZWN0b3IgPSBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBzdHJpbmc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIVE1MRWxlbWVudEJ5U2VsZWN0b3Ioc2VsZWN0b3I6IEVsZW1lbnRTZWxlY3RvciwgZGVmYXVsdEVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKCFzZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdG9yID09PSAnYm9keScpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmJvZHk7XG4gICAgfSBlbHNlIGlmIChoZWxwZXJzLmlzU3RyaW5nKHNlbGVjdG9yKSkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvciBhcyBzdHJpbmcpO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0b3IgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3Rvci5uYXRpdmVFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RvciBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lucHV0T3JUZXh0YXJlYShlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBbJ0lOUFVUJywgJ1RFWFRBUkVBJ10uaW5kZXhPZihlbGVtZW50Lm5vZGVOYW1lKSA+PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNXaW5kb3coY29udGFpbmVyOiBFbGVtZW50IHwgV2luZG93KTogY29udGFpbmVyIGlzIFdpbmRvdyB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIGNvbnRhaW5lciA9PT0gd2luZG93O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZVJlY3Qge1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgYm90dG9tPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGFpbmVyUmVjdChjb250YWluZXI6IEVsZW1lbnQgfCBXaW5kb3cpOiBTaW1wbGVSZWN0IHtcbiAgICByZXR1cm4gIWlzV2luZG93KGNvbnRhaW5lcilcbiAgICAgICAgPyBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgYm90dG9tOiAwXG4gICAgICAgICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0eWxlQXNUZXh0KHN0eWxlcz86IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFzdHlsZXMpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhzdHlsZXMpXG4gICAgICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IHN0eWxlc1trZXldO1xuICAgICAgICAgICAgcmV0dXJuIGAke2tleX06JHt0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/IHZhbCA6IHZhbCArICdweCd9YDtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJzsnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVG91Y2hFdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBldmVudCBpcyBUb3VjaEV2ZW50IHtcbiAgICByZXR1cm4gZXZlbnQudHlwZS5zdGFydHNXaXRoKCd0b3VjaCcpO1xufVxuXG4vKipcbiAqIEFzc2VydCB3cmFwcGVyIGVsZW1lbnQgd2hldGhlciBvbmx5IGNvbnRhaW5zIGljb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJY29uT25seSh3cmFwcGVyRWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxpc3RPZk5vZGUgPSBBcnJheS5mcm9tKHdyYXBwZXJFbGVtZW50LmNoaWxkTm9kZXMpO1xuICAgIGNvbnN0IGljb25Db3VudCA9IGxpc3RPZk5vZGUuZmlsdGVyKG5vZGUgPT4gWydUSFktSUNPTicsICdJJ10uaW5jbHVkZXMobm9kZS5ub2RlTmFtZSkpLmxlbmd0aDtcbiAgICBjb25zdCBub1RleHQgPSBsaXN0T2ZOb2RlLmV2ZXJ5KG5vZGUgPT4gbm9kZS5ub2RlTmFtZSAhPT0gJyN0ZXh0Jyk7XG4gICAgY29uc3Qgbm9TcGFuID0gbGlzdE9mTm9kZS5ldmVyeShub2RlID0+IG5vZGUubm9kZU5hbWUgIT09ICdTUEFOJyk7XG4gICAgY29uc3QgaXNJY29uT25seSA9IG5vU3BhbiAmJiBub1RleHQgJiYgaWNvbkNvdW50ID49IDE7XG4gICAgcmV0dXJuIGlzSWNvbk9ubHk7XG59XG5cbi8qKlxuICpcbiAqIGNhbGMgcG9zaXRpb24geCx5IHBvaW50XG4gKlxuICogQ0FTRSAod2lkdGggPD0gY2xpZW50V2lkdGggJiYgaGVpZ2h0IDw9IGNsaWVudEhlaWdodCk6XG4gKlxuICogLS0tLS0tLS0tLS0tLSBjbGllbnRXaWR0aCAtLS0tLS0tLS0tLS0tXG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgIC0tLS0tLSB3aWR0aCAtLS0tLS0gICAgICAgICAgfFxuICogfCAgICAgICAgfCAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHxcbiAqIGNsaWVudCAgIGhlaWdodCAgICAgICAgICAgIHwgICAgICAgICAgfFxuICogSGVpZ2h0ICAgfCAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHxcbiAqIHwgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogZml4ZWRQb3NpdGlvbiA9IHsgeDogMCwgeTogMCB9XG4gKlxuICpcbiAqXG4gKiBDQVNFICh3aWR0aCA+IGNsaWVudFdpZHRoIHx8IGhlaWdodCA+IGNsaWVudEhlaWdodCk6XG4gKlxuICogLS0tLS0tLS0tLS0tLSBjbGllbnRXaWR0aCAtLS0tLS0tLS0tLS0tXG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgIHRvcCAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS1sZWZ0LS18LS0tLS0tLS0tLS0tLS0tIHdpZHRoIC0tLS0tLS0tLS0tLS0tLS0tXG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiBjbGllbnQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiBIZWlnaHQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICBoZWlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAtLS0tLS0tLS18ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICpcbiAqIC0gbGVmdCB8fCB0b3AgPiAwXG4gKiAgIGxlZnQgLT4gMCB8fCB0b3AgLT4gMFxuICpcbiAqIC0gKGxlZnQgKyB3aWR0aCkgPCBjbGllbnRXaWR0aCB8fCAodG9wICsgaGVpZ2h0KSA8IGNsaWVudEhlaWdodFxuICogLSBsZWZ0IHwgdG9wICsgd2lkdGggfCBoZWlnaHQgPCBjbGllbnRXaWR0aCB8IGNsaWVudEhlaWdodCAtPiBCYWNrIGxlZnQgfCB0b3AgKyB3aWR0aCB8IGhlaWdodCA9PT0gY2xpZW50V2lkdGggfCBjbGllbnRIZWlnaHRcbiAqXG4gKiBERUZBVUxUOlxuICogLSBob2xkIHBvc2l0aW9uXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rml0Q29udGVudFBvc2l0aW9uKHBhcmFtczoge1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGNsaWVudFdpZHRoOiBudW1iZXI7XG4gICAgY2xpZW50SGVpZ2h0OiBudW1iZXI7XG59KTogeyB4PzogbnVtYmVyOyB5PzogbnVtYmVyIH0ge1xuICAgIGxldCBmaXhQb3MgPSB7fTtcblxuICAgIGlmIChwYXJhbXMud2lkdGggPD0gcGFyYW1zLmNsaWVudFdpZHRoICYmIHBhcmFtcy5oZWlnaHQgPD0gcGFyYW1zLmNsaWVudEhlaWdodCkge1xuICAgICAgICBmaXhQb3MgPSB7XG4gICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgeTogMFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMud2lkdGggPiBwYXJhbXMuY2xpZW50V2lkdGggfHwgcGFyYW1zLmhlaWdodCA+IHBhcmFtcy5jbGllbnRIZWlnaHQpIHtcbiAgICAgICAgZml4UG9zID0ge1xuICAgICAgICAgICAgeDogZml0UG9pbnQocGFyYW1zLmxlZnQsIHBhcmFtcy53aWR0aCwgcGFyYW1zLmNsaWVudFdpZHRoKSxcbiAgICAgICAgICAgIHk6IGZpdFBvaW50KHBhcmFtcy50b3AsIHBhcmFtcy5oZWlnaHQsIHBhcmFtcy5jbGllbnRIZWlnaHQpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpeFBvcztcbn1cblxuZnVuY3Rpb24gZml0UG9pbnQoc3RhcnQ6IG51bWJlciwgc2l6ZTogbnVtYmVyLCBjbGllbnRTaXplOiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBzdGFydEFkZFNpemUgPSBzdGFydCArIHNpemU7XG4gICAgY29uc3Qgb2Zmc2V0U3RhcnQgPSAoc2l6ZSAtIGNsaWVudFNpemUpIC8gMjtcbiAgICBsZXQgZGlzdGFuY2U6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHNpemUgPiBjbGllbnRTaXplKSB7XG4gICAgICAgIGlmIChzdGFydCA+IDApIHtcbiAgICAgICAgICAgIGRpc3RhbmNlID0gb2Zmc2V0U3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0IDwgMCAmJiBzdGFydEFkZFNpemUgPCBjbGllbnRTaXplKSB7XG4gICAgICAgICAgICBkaXN0YW5jZSA9IC1vZmZzZXRTdGFydDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzdGFydCA8IDAgfHwgc3RhcnRBZGRTaXplID4gY2xpZW50U2l6ZSkge1xuICAgICAgICAgICAgZGlzdGFuY2UgPSBzdGFydCA8IDAgPyBvZmZzZXRTdGFydCA6IC1vZmZzZXRTdGFydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkaXN0YW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnRNYXRjaENsb3Nlc3QoZWxlbWVudDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBsZXQgbWF0Y2hlZCA9IGZhbHNlO1xuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuY2xvc2VzdCkge1xuICAgICAgICBtYXRjaGVkID0gISFoZWxwZXJzLmNvZXJjZUFycmF5KHNlbGVjdG9ycykuZmluZChzZWxlY3RvciA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5jbG9zZXN0KHNlbGVjdG9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRjaGVkO1xufVxuIl19
@@ -1,293 +0,0 @@
1
- import { _isNumberValue, coerceCssPixelValue as coerceCssPixel } from '@angular/cdk/coercion';
2
- import { ElementRef, TemplateRef } from '@angular/core';
3
- export function isUndefined(value) {
4
- return value === undefined;
5
- }
6
- export function isNull(value) {
7
- return value === null;
8
- }
9
- export function isUndefinedOrNull(value) {
10
- return isUndefined(value) || isNull(value);
11
- }
12
- export function isArray(value) {
13
- return value && baseGetTag(value) === '[object Array]';
14
- }
15
- export function isEmpty(value) {
16
- return !(isArray(value) && value.length > 0);
17
- }
18
- export function isString(value) {
19
- return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');
20
- }
21
- function isObjectLike(value) {
22
- return value !== null && typeof value === 'object';
23
- }
24
- function baseGetTag(value) {
25
- const objectProto = Object.prototype;
26
- const hasOwnProperty = objectProto.hasOwnProperty;
27
- const toString = objectProto.toString;
28
- const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;
29
- if (value == null) {
30
- return value === undefined ? '[object Undefined]' : '[object Null]';
31
- }
32
- if (!(symToStringTag && symToStringTag in Object(value))) {
33
- return toString.call(value);
34
- }
35
- const isOwn = hasOwnProperty.call(value, symToStringTag);
36
- const tag = value[symToStringTag];
37
- let unmasked = false;
38
- try {
39
- value[symToStringTag] = undefined;
40
- unmasked = true;
41
- }
42
- catch (e) { }
43
- const result = toString.call(value);
44
- if (unmasked) {
45
- if (isOwn) {
46
- value[symToStringTag] = tag;
47
- }
48
- else {
49
- delete value[symToStringTag];
50
- }
51
- }
52
- return result;
53
- }
54
- export function isNumber(value) {
55
- return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');
56
- }
57
- export function isObject(value) {
58
- // Avoid a V8 JIT bug in Chrome 19-20.
59
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
60
- const type = typeof value;
61
- return !!value && (type === 'object' || type === 'function');
62
- }
63
- export function isFunction(value) {
64
- const type = typeof value;
65
- return !!value && type === 'function';
66
- }
67
- export function isDate(value) {
68
- const type = typeof value;
69
- return !!value && type === 'object' && !!value.getTime;
70
- }
71
- export function coerceArray(value) {
72
- return Array.isArray(value) ? value : [value];
73
- }
74
- export function get(object, path, defaultValue) {
75
- const paths = path.split('.');
76
- let result = object[paths.shift()];
77
- while (result && paths.length) {
78
- result = result[paths.shift()];
79
- }
80
- return result === undefined ? defaultValue : result;
81
- }
82
- export function set(object, path, value) {
83
- if (object == null) {
84
- return object;
85
- }
86
- const paths = path.split('.');
87
- let index = -1;
88
- const length = paths.length;
89
- const lastIndex = length - 1;
90
- let nested = object;
91
- while (nested !== null && ++index < length) {
92
- const key = paths[index];
93
- if (isObject(nested)) {
94
- if (index === lastIndex) {
95
- nested[key] = value;
96
- nested = nested[key];
97
- break;
98
- }
99
- else {
100
- if (nested[key] == null) {
101
- nested[key] = {};
102
- }
103
- }
104
- }
105
- nested = nested[key];
106
- }
107
- return object;
108
- }
109
- export function isBoolean(value) {
110
- return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');
111
- }
112
- export function isClass(value) {
113
- return isFunction(value) && /^\s*class\s+/.test(value.toString());
114
- }
115
- export function htmlElementIsEmpty(element) {
116
- if (element && element.childNodes) {
117
- const nodes = element.childNodes;
118
- for (let i = 0; i < nodes.length; i++) {
119
- const node = nodes[i];
120
- if (node.nodeType === Node.ELEMENT_NODE && node.outerHTML.toString().trim().length !== 0) {
121
- return false;
122
- }
123
- else if (node.nodeType === Node.TEXT_NODE && node.textContent.toString().trim().length !== 0) {
124
- return false;
125
- }
126
- else if (node.nodeType !== Node.COMMENT_NODE) {
127
- return false;
128
- }
129
- }
130
- }
131
- return true;
132
- }
133
- export function hexToRgb(hexValue, alpha) {
134
- const rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
135
- const hex = hexValue.replace(rgx, (m, r, g, b) => r + r + g + g + b + b);
136
- const rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
137
- if (!rgb)
138
- return;
139
- const resultR = parseInt(rgb[1], 16);
140
- const resultG = parseInt(rgb[2], 16);
141
- const resultB = parseInt(rgb[3], 16);
142
- if (!isUndefinedOrNull(alpha)) {
143
- return `rgba(${resultR}, ${resultG}, ${resultB}, ${alpha})`;
144
- }
145
- else {
146
- return `rgb(${resultR}, ${resultG}, ${resultB})`;
147
- }
148
- }
149
- export function dateToUnixTimestamp(date) {
150
- if (isNumber(date)) {
151
- if (date.toString().length === 10) {
152
- return date;
153
- }
154
- else {
155
- return parseInt((date / 1000).toFixed(0), 10);
156
- }
157
- }
158
- else {
159
- return parseInt((date.getTime() / 1000).toFixed(0), 10);
160
- }
161
- }
162
- export function clamp(value, min = 0, max = 100) {
163
- return Math.max(min, Math.min(max, value));
164
- }
165
- export function keyBy(array, key) {
166
- const result = {};
167
- array.forEach(item => {
168
- const keyValue = item[key];
169
- result[keyValue] = item;
170
- });
171
- return result;
172
- }
173
- export function indexKeyBy(array, key) {
174
- const result = {};
175
- array.forEach((item, index) => {
176
- const keyValue = item[key];
177
- result[keyValue] = index;
178
- });
179
- return result;
180
- }
181
- function upperFirst(string) {
182
- return string.slice(0, 1).toUpperCase() + string.slice(1);
183
- }
184
- export function camelCase(values) {
185
- if (isArray(values)) {
186
- return values.reduce((result, word, index) => {
187
- word = word.toLowerCase();
188
- return result + (index ? upperFirst(word) : word);
189
- }, '');
190
- }
191
- else {
192
- return;
193
- }
194
- }
195
- export function generateRandomStr() {
196
- return Math.random().toString(36).substring(2);
197
- }
198
- export function isTemplateRef(value) {
199
- return value instanceof TemplateRef;
200
- }
201
- export function isHTMLElement(value) {
202
- return value instanceof HTMLElement;
203
- }
204
- export function isElementRef(value) {
205
- return value instanceof ElementRef;
206
- }
207
- /**
208
- * fix angular cdk's coerceBooleanProperty will transform 0 to true
209
- */
210
- export function coerceBooleanProperty(value) {
211
- if (value === '' || (value && value !== 'false')) {
212
- return true;
213
- }
214
- else {
215
- return false;
216
- }
217
- }
218
- /**
219
- * @deprecated Please use Angular cdk's coerceNumberProperty instead
220
- */
221
- export function coerceNumberValue(value, fallbackValue = 0) {
222
- return _isNumberValue(value) ? Number(value) : fallbackValue;
223
- }
224
- /**
225
- * @deprecated Please use Angular cdk's coerceCssPixelValue instead
226
- */
227
- export function coerceCssPixelValue(value) {
228
- value = _isNumberValue(value) ? Number(value) : value;
229
- return coerceCssPixel(value);
230
- }
231
- export function valueFunctionProp(prop, ...args) {
232
- return typeof prop === 'function' ? prop(...args) : prop;
233
- }
234
- export function shallowEqual(objA, objB) {
235
- if (objA === objB) {
236
- return true;
237
- }
238
- if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
239
- return false;
240
- }
241
- const keysA = Object.keys(objA);
242
- const keysB = Object.keys(objB);
243
- if (keysA.length !== keysB.length) {
244
- return false;
245
- }
246
- const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
247
- for (let idx = 0; idx < keysA.length; idx++) {
248
- const key = keysA[idx];
249
- if (!bHasOwnProperty(key)) {
250
- return false;
251
- }
252
- if (objA[key] !== objB[key]) {
253
- return false;
254
- }
255
- }
256
- return true;
257
- }
258
- export function concatArray(items, originalItems = []) {
259
- let _originalItems = [];
260
- if (!originalItems) {
261
- _originalItems = [];
262
- }
263
- else {
264
- _originalItems = coerceArray(originalItems);
265
- }
266
- if (items) {
267
- if (isArray(items)) {
268
- return [..._originalItems, ...items];
269
- }
270
- else {
271
- return [..._originalItems, items];
272
- }
273
- }
274
- else {
275
- return _originalItems;
276
- }
277
- }
278
- export function humanizeBytes(bytes, noSpace = false, fractionDigits = 1) {
279
- if (bytes === 0) {
280
- return '0 Byte';
281
- }
282
- const k = 1024;
283
- const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
284
- const i = Math.floor(Math.log(bytes) / Math.log(k));
285
- return parseFloat((bytes / Math.pow(k, i)).toFixed(fractionDigits)) + (noSpace ? '' : ' ') + sizes[i];
286
- }
287
- export function isFloat(value) {
288
- if (!value) {
289
- return false;
290
- }
291
- return /^[-+]?([0-9]+([.][0-9]*)?|[.][0-9]+)([Ee][-+]?[0-9]+)?$/.test(value);
292
- }
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91dGlsL2hlbHBlcnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNsQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBVTtJQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBVSxLQUFVO0lBQ3ZDLE9BQU8sS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFXO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVc7SUFDaEMsT0FBTyxPQUFPLEtBQUssSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLGlCQUFpQixDQUFDLENBQUM7QUFDM0gsQ0FBQztBQUVELFNB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QUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFNUQsT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBYTtJQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyx5REFBeUQsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9pc051bWJlclZhbHVlLCBjb2VyY2VDc3NQaXhlbFZhbHVlIGFzIGNvZXJjZUNzc1BpeGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZTogYW55KTogdmFsdWUgaXMgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbCh2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVsbCB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRPck51bGwodmFsdWU6IGFueSk6IHZhbHVlIGlzIHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiBpc1VuZGVmaW5lZCh2YWx1ZSkgfHwgaXNOdWxsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXk8VCA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIEFycmF5PFQ+IHtcbiAgICByZXR1cm4gdmFsdWUgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlPzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEoaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZT86IGFueSk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCAoIWlzQXJyYXkodmFsdWUpICYmIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IFN0cmluZ10nKTtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xufVxuXG5mdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG4gICAgY29uc3QgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcbiAgICBjb25zdCB0b1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuICAgIGNvbnN0IHN5bVRvU3RyaW5nVGFnID0gdHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/ICdbb2JqZWN0IFVuZGVmaW5lZF0nIDogJ1tvYmplY3QgTnVsbF0nO1xuICAgIH1cbiAgICBpZiAoIShzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKSkge1xuICAgICAgICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGlzT3duID0gaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWcpO1xuICAgIGNvbnN0IHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICBsZXQgdW5tYXNrZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgICAgIHVubWFza2VkID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgaWYgKHVubWFza2VkKSB7XG4gICAgICAgIGlmIChpc093bikge1xuICAgICAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IE51bWJlcl0nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIC8vIEF2b2lkIGEgVjggSklUIGJ1ZyBpbiBDaHJvbWUgMTktMjAuXG4gICAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMjkxIGZvciBtb3JlIGRldGFpbHMuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEYXRlIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGUgPT09ICdvYmplY3QnICYmICEhdmFsdWUuZ2V0VGltZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUFycmF5PFQ+KHZhbHVlOiBUIHwgVFtdKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQob2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KTogYW55IHtcbiAgICBjb25zdCBwYXRocyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgcmVzdWx0ID0gb2JqZWN0W3BhdGhzLnNoaWZ0KCldO1xuICAgIHdoaWxlIChyZXN1bHQgJiYgcGF0aHMubGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdFtwYXRocy5zaGlmdCgpXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0KG9iamVjdDogYW55LCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG4gICAgY29uc3QgcGF0aHMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGluZGV4ID0gLTE7XG4gICAgY29uc3QgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgIGNvbnN0IGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgbGV0IG5lc3RlZCA9IG9iamVjdDtcbiAgICB3aGlsZSAobmVzdGVkICE9PSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gcGF0aHNbaW5kZXhdO1xuICAgICAgICBpZiAoaXNPYmplY3QobmVzdGVkKSkge1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBuZXN0ZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobmVzdGVkW2tleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBuZXN0ZWRba2V5XSA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgQm9vbGVhbl0nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2xhc3ModmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbih2YWx1ZSkgJiYgL15cXHMqY2xhc3NcXHMrLy50ZXN0KHZhbHVlLnRvU3RyaW5nKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbEVsZW1lbnRJc0VtcHR5KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5jaGlsZE5vZGVzKSB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gZWxlbWVudC5jaGlsZE5vZGVzO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgKG5vZGUgYXMgSFRNTEVsZW1lbnQpLm91dGVySFRNTC50b1N0cmluZygpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFICYmIG5vZGUudGV4dENvbnRlbnQudG9TdHJpbmcoKS50cmltKCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlICE9PSBOb2RlLkNPTU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhleFRvUmdiKGhleFZhbHVlOiBzdHJpbmcsIGFscGhhPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCByZ3ggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xuICAgIGNvbnN0IGhleCA9IGhleFZhbHVlLnJlcGxhY2Uocmd4LCAobTogYW55LCByOiBhbnksIGc6IGFueSwgYjogYW55KSA9PiByICsgciArIGcgKyBnICsgYiArIGIpO1xuICAgIGNvbnN0IHJnYiA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXgpO1xuICAgIGlmICghcmdiKSByZXR1cm47XG4gICAgY29uc3QgcmVzdWx0UiA9IHBhcnNlSW50KHJnYlsxXSwgMTYpO1xuICAgIGNvbnN0IHJlc3VsdEcgPSBwYXJzZUludChyZ2JbMl0sIDE2KTtcbiAgICBjb25zdCByZXN1bHRCID0gcGFyc2VJbnQocmdiWzNdLCAxNik7XG4gICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhbHBoYSkpIHtcbiAgICAgICAgcmV0dXJuIGByZ2JhKCR7cmVzdWx0Un0sICR7cmVzdWx0R30sICR7cmVzdWx0Qn0sICR7YWxwaGF9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGByZ2IoJHtyZXN1bHRSfSwgJHtyZXN1bHRHfSwgJHtyZXN1bHRCfSlgO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb1VuaXhUaW1lc3RhbXAoZGF0ZTogRGF0ZSB8IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGlzTnVtYmVyKGRhdGUpKSB7XG4gICAgICAgIGlmIChkYXRlLnRvU3RyaW5nKCkubGVuZ3RoID09PSAxMCkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUgYXMgbnVtYmVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KCgoZGF0ZSBhcyBudW1iZXIpIC8gMTAwMCkudG9GaXhlZCgwKSwgMTApO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KCgoZGF0ZSBhcyBEYXRlKS5nZXRUaW1lKCkgLyAxMDAwKS50b0ZpeGVkKDApLCAxMCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAodmFsdWU6IG51bWJlciwgbWluID0gMCwgbWF4ID0gMTAwKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbiwgTWF0aC5taW4obWF4LCB2YWx1ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2V5Qnk8VD4oYXJyYXk6IFRbXSwga2V5OiBUIGV4dGVuZHMgb2JqZWN0ID8ga2V5b2YgVCA6IG5ldmVyKTogeyBba2V5OiBzdHJpbmddOiBUIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBUIH0gPSB7fTtcbiAgICBhcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBrZXlWYWx1ZSA9IGl0ZW1ba2V5XTtcbiAgICAgICAgKHJlc3VsdCBhcyBhbnkpW2tleVZhbHVlXSA9IGl0ZW07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZGV4S2V5Qnk8VD4oYXJyYXk6IFRbXSwga2V5OiBUIGV4dGVuZHMgb2JqZWN0ID8ga2V5b2YgVCA6IG5ldmVyKTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gICAgYXJyYXkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qga2V5VmFsdWUgPSBpdGVtW2tleV07XG4gICAgICAgIChyZXN1bHQgYXMgYW55KVtrZXlWYWx1ZV0gPSBpbmRleDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB1cHBlckZpcnN0KHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyaW5nLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbENhc2UodmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKGlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICByZXR1cm4gdmFsdWVzLnJlZHVjZSgocmVzdWx0LCB3b3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgd29yZCA9IHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyB1cHBlckZpcnN0KHdvcmQpIDogd29yZCk7XG4gICAgICAgIH0sICcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSYW5kb21TdHIoKSB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVSZWY8QyA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPEM+IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQodmFsdWU6IGFueSk6IHZhbHVlIGlzIEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudFJlZih2YWx1ZTogYW55KTogdmFsdWUgaXMgRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudFJlZjtcbn1cblxuLyoqXG4gKiBmaXggYW5ndWxhciBjZGsncyBjb2VyY2VCb29sZWFuUHJvcGVydHkgd2lsbCB0cmFuc2Zvcm0gMCB0byB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgPT09ICcnIHx8ICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJ2ZhbHNlJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRnVuY3Rpb25Qcm9wPFQ+ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VOdW1iZXJWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIEFuZ3VsYXIgY2RrJ3MgY29lcmNlTnVtYmVyUHJvcGVydHkgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlTnVtYmVyVmFsdWU8RD4odmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2s6IEQpOiBudW1iZXIgfCBEO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIEFuZ3VsYXIgY2RrJ3MgY29lcmNlTnVtYmVyUHJvcGVydHkgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlTnVtYmVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2tWYWx1ZTogbnVtYmVyID0gMCk6IG51bWJlciB7XG4gICAgcmV0dXJuIF9pc051bWJlclZhbHVlKHZhbHVlKSA/IE51bWJlcih2YWx1ZSkgOiBmYWxsYmFja1ZhbHVlO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VDc3NQaXhlbFZhbHVlIGluc3RlYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFsdWUgPSBfaXNOdW1iZXJWYWx1ZSh2YWx1ZSkgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gICAgcmV0dXJuIGNvZXJjZUNzc1BpeGVsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnVuY3Rpb25Qcm9wPFQ+KHByb3A6IEZ1bmN0aW9uUHJvcDxUPiwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICByZXR1cm4gdHlwZW9mIHByb3AgPT09ICdmdW5jdGlvbicgPyBwcm9wKC4uLmFyZ3MpIDogcHJvcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBPzogUmVjb3JkPHN0cmluZywgYW55Piwgb2JqQj86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAob2JqQSA9PT0gb2JqQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8ICFvYmpBIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCAhb2JqQikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBiSGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmJpbmQob2JqQik7XG5cbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBrZXlzQS5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNBW2lkeF07XG4gICAgICAgIGlmICghYkhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqQVtrZXldICE9PSBvYmpCW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0QXJyYXk8VEl0ZW0+KGl0ZW1zOiBUSXRlbSB8IFRJdGVtW10sIG9yaWdpbmFsSXRlbXM6IFRJdGVtIHwgVEl0ZW1bXSA9IFtdKTogVEl0ZW1bXSB7XG4gICAgbGV0IF9vcmlnaW5hbEl0ZW1zOiBUSXRlbVtdID0gW107XG4gICAgaWYgKCFvcmlnaW5hbEl0ZW1zKSB7XG4gICAgICAgIF9vcmlnaW5hbEl0ZW1zID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX29yaWdpbmFsSXRlbXMgPSBjb2VyY2VBcnJheShvcmlnaW5hbEl0ZW1zKTtcbiAgICB9XG4gICAgaWYgKGl0ZW1zKSB7XG4gICAgICAgIGlmIChpc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5fb3JpZ2luYWxJdGVtcywgLi4uaXRlbXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5fb3JpZ2luYWxJdGVtcywgaXRlbXNdO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIF9vcmlnaW5hbEl0ZW1zO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh1bWFuaXplQnl0ZXMoYnl0ZXM6IG51bWJlciwgbm9TcGFjZSA9IGZhbHNlLCBmcmFjdGlvbkRpZ2l0cyA9IDEpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJzAgQnl0ZSc7XG4gICAgfVxuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXM6IHN0cmluZ1tdID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQiddO1xuICAgIGNvbnN0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZnJhY3Rpb25EaWdpdHMpKSArIChub1NwYWNlID8gJycgOiAnICcpICsgc2l6ZXNbaV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zsb2F0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gL15bLStdPyhbMC05XSsoWy5dWzAtOV0qKT98Wy5dWzAtOV0rKShbRWVdWy0rXT9bMC05XSspPyQvLnRlc3QodmFsdWUpO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './helpers';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdXRpbC9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==