ngx-edu-sharing-ui 0.7.0 → 9.0.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 (367) hide show
  1. package/assets/scss/mixins.scss +4 -1
  2. package/assets/scss/variables.scss +3 -0
  3. package/esm2022/lib/actionbar/actionbar.component.mjs +188 -0
  4. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +134 -0
  5. package/esm2022/lib/directives/border-box-observer.directive.mjs +71 -0
  6. package/esm2022/lib/directives/check-text-overflow.directive.mjs +65 -0
  7. package/esm2022/lib/directives/drag-nodes/drag-nodes.mjs +14 -0
  8. package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +79 -0
  9. package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +49 -0
  10. package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +105 -0
  11. package/esm2022/lib/directives/focus-state.directive.mjs +44 -0
  12. package/esm2022/lib/directives/icon.directive.mjs +139 -0
  13. package/esm2022/lib/dropdown/dropdown.component.mjs +70 -0
  14. package/esm2022/lib/edu-sharing-ui-configuration.mjs +41 -0
  15. package/esm2022/lib/edu-sharing-ui.module.mjs +78 -0
  16. package/esm2022/lib/list-items/available-widgets.mjs +27 -0
  17. package/esm2022/lib/list-items/format-duration.pipe.mjs +20 -0
  18. package/esm2022/lib/list-items/list-base/list-base.component.mjs +46 -0
  19. package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +29 -0
  20. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +54 -0
  21. package/esm2022/lib/list-items/list-items.module.mjs +50 -0
  22. package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +41 -0
  23. package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +47 -0
  24. package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +24 -0
  25. package/esm2022/lib/list-items/list-text/list-text.component.mjs +106 -0
  26. package/esm2022/lib/list-items/list-widget.mjs +49 -0
  27. package/esm2022/lib/list-items/node-row/node-row.component.mjs +24 -0
  28. package/esm2022/lib/list-items/node-source.pipe.mjs +49 -0
  29. package/esm2022/lib/node-entries/combined-data-source.mjs +41 -0
  30. package/esm2022/lib/node-entries/custom-templates-data-source.mjs +7 -0
  31. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +21 -0
  32. package/esm2022/lib/node-entries/entries-model.mjs +23 -0
  33. package/esm2022/lib/node-entries/items-cap.mjs +47 -0
  34. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +34 -0
  35. package/esm2022/lib/node-entries/node-cache.mjs +65 -0
  36. package/esm2022/lib/node-entries/node-data-source-remote.mjs +4 -0
  37. package/esm2022/lib/node-entries/node-data-source.mjs +115 -0
  38. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +131 -0
  39. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +307 -0
  40. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +45 -0
  41. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +23 -0
  42. package/esm2022/lib/node-entries/node-entries-global.service.mjs +58 -0
  43. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +42 -0
  44. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +290 -0
  45. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +11 -0
  46. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +324 -0
  47. package/esm2022/lib/node-entries/node-entries.component.mjs +131 -0
  48. package/esm2022/lib/node-entries/node-entries.module.mjs +161 -0
  49. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +102 -0
  50. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +48 -0
  51. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +36 -0
  52. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +62 -0
  53. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +53 -0
  54. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +41 -0
  55. package/esm2022/lib/node-url/node-url.component.mjs +128 -0
  56. package/esm2022/lib/pipes/file-size.pipe.mjs +31 -0
  57. package/esm2022/lib/pipes/format-date.pipe.mjs +38 -0
  58. package/esm2022/lib/pipes/node-icon.pipe.mjs +18 -0
  59. package/esm2022/lib/pipes/node-image-size.pipe.mjs +24 -0
  60. package/esm2022/lib/pipes/node-image.pipe.mjs +55 -0
  61. package/esm2022/lib/pipes/node-person-name.pipe.mjs +50 -0
  62. package/esm2022/lib/pipes/node-title.pipe.mjs +19 -0
  63. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +33 -0
  64. package/esm2022/lib/pipes/replace-chars.pipe.mjs +29 -0
  65. package/esm2022/lib/pipes/vcard-name.pipe.mjs +19 -0
  66. package/esm2022/lib/services/abstract/app.service.mjs +3 -0
  67. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +10 -0
  68. package/esm2022/lib/services/abstract/options-helper.service.mjs +3 -0
  69. package/esm2022/lib/services/abstract/toast.service.mjs +3 -0
  70. package/esm2022/lib/services/accessibility.service.mjs +73 -0
  71. package/esm2022/lib/services/local-events.service.mjs +36 -0
  72. package/esm2022/lib/services/node-entries.service.mjs +137 -0
  73. package/esm2022/lib/services/node-helper.service.mjs +234 -0
  74. package/esm2022/lib/services/nodes-drag-drop.service.mjs +155 -0
  75. package/esm2022/lib/services/options-helper-data.service.mjs +134 -0
  76. package/esm2022/lib/services/repo-url.service.mjs +49 -0
  77. package/esm2022/lib/services/temporary-storage.service.mjs +48 -0
  78. package/esm2022/lib/services/ui.service.mjs +162 -0
  79. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +50 -0
  80. package/esm2022/lib/spinner/spinner.component.mjs +18 -0
  81. package/esm2022/lib/translations/fallback-translation-handler.mjs +6 -0
  82. package/esm2022/lib/translations/languages.mjs +5 -0
  83. package/esm2022/lib/translations/translation-loader.mjs +149 -0
  84. package/esm2022/lib/translations/translation-source.mjs +11 -0
  85. package/esm2022/lib/translations/translations.module.mjs +67 -0
  86. package/esm2022/lib/translations/translations.service.mjs +171 -0
  87. package/esm2022/lib/types/accessibillity.mjs +19 -0
  88. package/esm2022/lib/types/api-models.mjs +2 -0
  89. package/esm2022/lib/types/drag-drop.mjs +2 -0
  90. package/esm2022/lib/types/keyboard-shortcuts.mjs +11 -0
  91. package/esm2022/lib/types/list-item.mjs +41 -0
  92. package/esm2022/lib/types/option-item.mjs +174 -0
  93. package/esm2022/lib/types/workflow.mjs +25 -0
  94. package/esm2022/lib/util/DateHelper.mjs +200 -0
  95. package/esm2022/lib/util/VCard.mjs +278 -0
  96. package/esm2022/lib/util/color-helper.mjs +124 -0
  97. package/esm2022/lib/util/duration-helper.mjs +102 -0
  98. package/esm2022/lib/util/functions.mjs +13 -0
  99. package/esm2022/lib/util/helper.mjs +64 -0
  100. package/esm2022/lib/util/isNumeric.mjs +11 -0
  101. package/esm2022/lib/util/rest-helper.mjs +33 -0
  102. package/esm2022/lib/util/ui-animation.mjs +146 -0
  103. package/esm2022/lib/util/ui-constants.mjs +21 -0
  104. package/esm2022/module.mjs +76 -0
  105. package/esm2022/ngx-edu-sharing-ui.mjs +5 -0
  106. package/fesm2022/ngx-edu-sharing-ui.mjs +6509 -0
  107. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -0
  108. package/index.d.ts +5 -0
  109. package/lib/actionbar/actionbar.component.d.ts +74 -0
  110. package/lib/common/edu-sharing-ui-common.module.d.ts +32 -0
  111. package/lib/directives/border-box-observer.directive.d.ts +31 -0
  112. package/lib/directives/check-text-overflow.directive.d.ts +20 -0
  113. package/lib/directives/drag-nodes/drag-nodes.d.ts +16 -0
  114. package/lib/directives/drag-nodes/nodes-drag-source.directive.d.ts +37 -0
  115. package/lib/directives/drag-nodes/nodes-drag.directive.d.ts +17 -0
  116. package/lib/directives/drag-nodes/nodes-drop-target.directive.d.ts +22 -0
  117. package/lib/directives/focus-state.directive.d.ts +14 -0
  118. package/lib/directives/icon.directive.d.ts +46 -0
  119. package/lib/dropdown/dropdown.component.d.ts +40 -0
  120. package/lib/edu-sharing-ui-configuration.d.ts +11 -0
  121. package/lib/edu-sharing-ui.module.d.ts +19 -0
  122. package/lib/list-items/available-widgets.d.ts +13 -0
  123. package/lib/list-items/format-duration.pipe.d.ts +10 -0
  124. package/lib/list-items/list-base/list-base.component.d.ts +18 -0
  125. package/lib/list-items/list-collection-info/list-collection-info.component.d.ts +14 -0
  126. package/lib/list-items/list-counts/list-counts.component.d.ts +13 -0
  127. package/lib/list-items/list-items.module.d.ts +20 -0
  128. package/lib/list-items/list-node-license/list-node-license.component.d.ts +20 -0
  129. package/lib/list-items/list-node-replication-source/list-node-replication-source.component.d.ts +22 -0
  130. package/lib/list-items/list-node-workflow/list-node-workflow.component.d.ts +12 -0
  131. package/lib/list-items/list-text/list-text.component.d.ts +28 -0
  132. package/lib/list-items/list-widget.d.ts +32 -0
  133. package/lib/list-items/node-row/node-row.component.d.ts +12 -0
  134. package/lib/list-items/node-source.pipe.d.ts +16 -0
  135. package/lib/node-entries/combined-data-source.d.ts +19 -0
  136. package/{src/lib/node-entries/custom-templates-data-source.ts → lib/node-entries/custom-templates-data-source.d.ts} +2 -2
  137. package/lib/node-entries/drag-preview/drag-preview.component.d.ts +11 -0
  138. package/{src/lib/node-entries/entries-model.ts → lib/node-entries/entries-model.d.ts} +19 -47
  139. package/lib/node-entries/items-cap.d.ts +17 -0
  140. package/lib/node-entries/list-item-label.pipe.d.ts +14 -0
  141. package/lib/node-entries/node-cache.d.ts +17 -0
  142. package/{src/lib/node-entries/node-data-source-remote.ts → lib/node-entries/node-data-source-remote.d.ts} +2 -12
  143. package/lib/node-entries/node-data-source.d.ts +42 -0
  144. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +45 -0
  145. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +92 -0
  146. package/lib/node-entries/node-entries-card-small/node-entries-card-small.component.d.ts +23 -0
  147. package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +12 -0
  148. package/lib/node-entries/node-entries-global.service.d.ts +50 -0
  149. package/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.d.ts +17 -0
  150. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +76 -0
  151. package/{src/lib/node-entries/node-entries-templates.service.ts → lib/node-entries/node-entries-templates.service.d.ts} +6 -9
  152. package/lib/node-entries/node-entries-wrapper.component.d.ts +129 -0
  153. package/lib/node-entries/node-entries.component.d.ts +32 -0
  154. package/lib/node-entries/node-entries.module.d.ts +43 -0
  155. package/lib/node-entries/node-rating/node-rating.component.d.ts +26 -0
  156. package/lib/node-entries/node-stats-badges/node-stats-badges.component.d.ts +17 -0
  157. package/lib/node-entries/node-type-badge/node-type-badge.component.d.ts +21 -0
  158. package/lib/node-entries/option-button/option-button.component.d.ts +11 -0
  159. package/lib/node-entries/preview-image/preview-image.component.d.ts +22 -0
  160. package/lib/node-entries/sort-select-panel/sort-select-panel.component.d.ts +16 -0
  161. package/lib/node-url/node-url.component.d.ts +51 -0
  162. package/lib/pipes/file-size.pipe.d.ts +10 -0
  163. package/lib/pipes/format-date.pipe.d.ts +21 -0
  164. package/lib/pipes/node-icon.pipe.d.ts +11 -0
  165. package/lib/pipes/node-image-size.pipe.d.ts +8 -0
  166. package/lib/pipes/node-image.pipe.d.ts +28 -0
  167. package/lib/pipes/node-person-name.pipe.d.ts +10 -0
  168. package/lib/pipes/node-title.pipe.d.ts +11 -0
  169. package/lib/pipes/option-tooltip.pipe.d.ts +12 -0
  170. package/lib/pipes/replace-chars.pipe.d.ts +10 -0
  171. package/lib/pipes/vcard-name.pipe.d.ts +10 -0
  172. package/{src/lib/services/abstract/app.service.ts → lib/services/abstract/app.service.d.ts} +1 -1
  173. package/lib/services/abstract/keyboard-shortcuts.service.d.ts +11 -0
  174. package/lib/services/abstract/options-helper.service.d.ts +10 -0
  175. package/{src/lib/services/abstract/toast.service.ts → lib/services/abstract/toast.service.d.ts} +1 -2
  176. package/lib/services/accessibility.service.d.ts +18 -0
  177. package/{src/lib/services/local-events.service.ts → lib/services/local-events.service.d.ts} +7 -10
  178. package/lib/services/node-entries.service.d.ts +69 -0
  179. package/lib/services/node-helper.service.d.ts +56 -0
  180. package/lib/services/nodes-drag-drop.service.d.ts +41 -0
  181. package/lib/services/options-helper-data.service.d.ts +75 -0
  182. package/lib/services/repo-url.service.d.ts +25 -0
  183. package/lib/services/temporary-storage.service.d.ts +35 -0
  184. package/lib/services/ui.service.d.ts +41 -0
  185. package/lib/sort-dropdown/sort-dropdown.component.d.ts +15 -0
  186. package/lib/spinner/spinner.component.d.ts +7 -0
  187. package/lib/translations/fallback-translation-handler.d.ts +4 -0
  188. package/lib/translations/languages.d.ts +4 -0
  189. package/lib/translations/translation-loader.d.ts +51 -0
  190. package/{src/lib/translations/translation-source.ts → lib/translations/translation-source.d.ts} +4 -4
  191. package/lib/translations/translations.module.d.ts +15 -0
  192. package/lib/translations/translations.service.d.ts +30 -0
  193. package/lib/types/accessibillity.d.ts +15 -0
  194. package/{src/lib/types/drag-drop.ts → lib/types/drag-drop.d.ts} +0 -3
  195. package/lib/types/keyboard-shortcuts.d.ts +10 -0
  196. package/lib/types/list-item.d.ts +55 -0
  197. package/lib/types/option-item.d.ts +236 -0
  198. package/lib/types/workflow.d.ts +14 -0
  199. package/lib/util/DateHelper.d.ts +44 -0
  200. package/lib/util/VCard.d.ts +66 -0
  201. package/lib/util/color-helper.d.ts +25 -0
  202. package/lib/util/duration-helper.d.ts +14 -0
  203. package/lib/util/functions.d.ts +4 -0
  204. package/lib/util/helper.d.ts +20 -0
  205. package/lib/util/isNumeric.d.ts +5 -0
  206. package/lib/util/rest-helper.d.ts +10 -0
  207. package/lib/util/ui-animation.d.ts +39 -0
  208. package/lib/util/ui-constants.d.ts +18 -0
  209. package/{src/module.ts → module.d.ts} +0 -4
  210. package/package.json +23 -9
  211. package/.browserslistrc +0 -16
  212. package/.eslintrc.json +0 -44
  213. package/karma.conf.js +0 -42
  214. package/ng-package.json +0 -10
  215. package/src/lib/actionbar/actionbar.component.html +0 -59
  216. package/src/lib/actionbar/actionbar.component.scss +0 -123
  217. package/src/lib/actionbar/actionbar.component.ts +0 -174
  218. package/src/lib/common/edu-sharing-ui-common.module.ts +0 -80
  219. package/src/lib/directives/border-box-observer.directive.ts +0 -75
  220. package/src/lib/directives/check-text-overflow.directive.ts +0 -61
  221. package/src/lib/directives/drag-nodes/drag-nodes.ts +0 -32
  222. package/src/lib/directives/drag-nodes/nodes-drag-source.directive.ts +0 -79
  223. package/src/lib/directives/drag-nodes/nodes-drag.directive.ts +0 -43
  224. package/src/lib/directives/drag-nodes/nodes-drop-target.directive.ts +0 -116
  225. package/src/lib/directives/focus-state.directive.ts +0 -34
  226. package/src/lib/directives/icon.directive.ts +0 -142
  227. package/src/lib/directives/nodes-drop-target-legacy.directive.ts +0 -155
  228. package/src/lib/dropdown/dropdown.component.html +0 -32
  229. package/src/lib/dropdown/dropdown.component.scss +0 -67
  230. package/src/lib/dropdown/dropdown.component.ts +0 -71
  231. package/src/lib/edu-sharing-ui-configuration.ts +0 -47
  232. package/src/lib/edu-sharing-ui.module.ts +0 -49
  233. package/src/lib/list-items/available-widgets.ts +0 -30
  234. package/src/lib/list-items/format-duration.pipe.ts +0 -17
  235. package/src/lib/list-items/list-base/list-base.component.html +0 -52
  236. package/src/lib/list-items/list-base/list-base.component.ts +0 -44
  237. package/src/lib/list-items/list-collection-info/list-collection-info.component.html +0 -48
  238. package/src/lib/list-items/list-collection-info/list-collection-info.component.scss +0 -8
  239. package/src/lib/list-items/list-collection-info/list-collection-info.component.ts +0 -24
  240. package/src/lib/list-items/list-counts/list-counts.component.html +0 -1
  241. package/src/lib/list-items/list-counts/list-counts.component.scss +0 -3
  242. package/src/lib/list-items/list-counts/list-counts.component.ts +0 -59
  243. package/src/lib/list-items/list-items.module.ts +0 -33
  244. package/src/lib/list-items/list-node-license/list-node-license.component.html +0 -8
  245. package/src/lib/list-items/list-node-license/list-node-license.component.ts +0 -47
  246. package/src/lib/list-items/list-node-replication-source/list-node-replication-source.component.html +0 -11
  247. package/src/lib/list-items/list-node-replication-source/list-node-replication-source.component.ts +0 -60
  248. package/src/lib/list-items/list-node-workflow/list-node-workflow.component.html +0 -3
  249. package/src/lib/list-items/list-node-workflow/list-node-workflow.component.ts +0 -21
  250. package/src/lib/list-items/list-text/list-text.component.html +0 -176
  251. package/src/lib/list-items/list-text/list-text.component.scss +0 -3
  252. package/src/lib/list-items/list-text/list-text.component.ts +0 -107
  253. package/src/lib/list-items/list-widget.ts +0 -52
  254. package/src/lib/list-items/node-row/node-row.component.html +0 -31
  255. package/src/lib/list-items/node-row/node-row.component.scss +0 -50
  256. package/src/lib/list-items/node-row/node-row.component.ts +0 -16
  257. package/src/lib/list-items/node-source.pipe.ts +0 -48
  258. package/src/lib/node-entries/combined-data-source.ts +0 -51
  259. package/src/lib/node-entries/drag-preview/drag-preview.component.html +0 -6
  260. package/src/lib/node-entries/drag-preview/drag-preview.component.scss +0 -35
  261. package/src/lib/node-entries/drag-preview/drag-preview.component.ts +0 -15
  262. package/src/lib/node-entries/items-cap.ts +0 -54
  263. package/src/lib/node-entries/list-item-label.pipe.ts +0 -28
  264. package/src/lib/node-entries/mixins.scss +0 -23
  265. package/src/lib/node-entries/node-cache.spec.ts +0 -199
  266. package/src/lib/node-entries/node-cache.ts +0 -81
  267. package/src/lib/node-entries/node-data-source.ts +0 -148
  268. package/src/lib/node-entries/node-entries-card/node-entries-card.component.html +0 -167
  269. package/src/lib/node-entries/node-entries-card/node-entries-card.component.scss +0 -28
  270. package/src/lib/node-entries/node-entries-card/node-entries-card.component.ts +0 -132
  271. package/src/lib/node-entries/node-entries-card/node-entries-card.main.scss +0 -261
  272. package/src/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.html +0 -205
  273. package/src/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.scss +0 -181
  274. package/src/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.ts +0 -361
  275. package/src/lib/node-entries/node-entries-card-small/node-entries-card-small.component.html +0 -100
  276. package/src/lib/node-entries/node-entries-card-small/node-entries-card-small.component.scss +0 -46
  277. package/src/lib/node-entries/node-entries-card-small/node-entries-card-small.component.ts +0 -40
  278. package/src/lib/node-entries/node-entries-global-options/node-entries-global-options.component.html +0 -23
  279. package/src/lib/node-entries/node-entries-global-options/node-entries-global-options.component.scss +0 -58
  280. package/src/lib/node-entries/node-entries-global-options/node-entries-global-options.component.ts +0 -16
  281. package/src/lib/node-entries/node-entries-global.service.ts +0 -79
  282. package/src/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.html +0 -25
  283. package/src/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.scss +0 -32
  284. package/src/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.ts +0 -31
  285. package/src/lib/node-entries/node-entries-table/node-entries-table.component.html +0 -270
  286. package/src/lib/node-entries/node-entries-table/node-entries-table.component.scss +0 -169
  287. package/src/lib/node-entries/node-entries-table/node-entries-table.component.ts +0 -333
  288. package/src/lib/node-entries/node-entries-wrapper.component.ts +0 -363
  289. package/src/lib/node-entries/node-entries.component.html +0 -33
  290. package/src/lib/node-entries/node-entries.component.scss +0 -13
  291. package/src/lib/node-entries/node-entries.component.ts +0 -151
  292. package/src/lib/node-entries/node-entries.module.ts +0 -93
  293. package/src/lib/node-entries/node-rating/node-rating.component.html +0 -53
  294. package/src/lib/node-entries/node-rating/node-rating.component.scss +0 -31
  295. package/src/lib/node-entries/node-rating/node-rating.component.ts +0 -105
  296. package/src/lib/node-entries/node-stats-badges/node-stats-badges.component.html +0 -39
  297. package/src/lib/node-entries/node-stats-badges/node-stats-badges.component.scss +0 -44
  298. package/src/lib/node-entries/node-stats-badges/node-stats-badges.component.ts +0 -43
  299. package/src/lib/node-entries/node-type-badge/node-type-badge.component.html +0 -31
  300. package/src/lib/node-entries/node-type-badge/node-type-badge.component.scss +0 -5
  301. package/src/lib/node-entries/node-type-badge/node-type-badge.component.ts +0 -36
  302. package/src/lib/node-entries/option-button/option-button.component.ts +0 -42
  303. package/src/lib/node-entries/preview-image/preview-image.component.html +0 -19
  304. package/src/lib/node-entries/preview-image/preview-image.component.scss +0 -31
  305. package/src/lib/node-entries/preview-image/preview-image.component.ts +0 -47
  306. package/src/lib/node-entries/sort-select-panel/sort-select-panel.component.html +0 -27
  307. package/src/lib/node-entries/sort-select-panel/sort-select-panel.component.scss +0 -9
  308. package/src/lib/node-entries/sort-select-panel/sort-select-panel.component.ts +0 -26
  309. package/src/lib/node-url/node-url.component.html +0 -66
  310. package/src/lib/node-url/node-url.component.scss +0 -32
  311. package/src/lib/node-url/node-url.component.ts +0 -136
  312. package/src/lib/pipes/file-size.pipe.ts +0 -24
  313. package/src/lib/pipes/format-date.pipe.ts +0 -39
  314. package/src/lib/pipes/node-icon.pipe.ts +0 -11
  315. package/src/lib/pipes/node-image-size.pipe.ts +0 -18
  316. package/src/lib/pipes/node-image.pipe.ts +0 -71
  317. package/src/lib/pipes/node-person-name.pipe.ts +0 -41
  318. package/src/lib/pipes/node-title.pipe.ts +0 -12
  319. package/src/lib/pipes/option-tooltip.pipe.ts +0 -32
  320. package/src/lib/pipes/replace-chars.pipe.ts +0 -21
  321. package/src/lib/pipes/vcard-name.pipe.ts +0 -11
  322. package/src/lib/services/abstract/keyboard-shortcuts.service.ts +0 -10
  323. package/src/lib/services/abstract/options-helper.service.ts +0 -29
  324. package/src/lib/services/accessibility.service.ts +0 -101
  325. package/src/lib/services/node-entries.service.ts +0 -172
  326. package/src/lib/services/node-helper.service.ts +0 -239
  327. package/src/lib/services/nodes-drag-drop.service.ts +0 -165
  328. package/src/lib/services/options-helper-data.service.ts +0 -186
  329. package/src/lib/services/repo-url.service.ts +0 -46
  330. package/src/lib/services/temporary-storage.service.ts +0 -58
  331. package/src/lib/services/ui.service.ts +0 -182
  332. package/src/lib/sort-dropdown/sort-dropdown.component.html +0 -22
  333. package/src/lib/sort-dropdown/sort-dropdown.component.scss +0 -47
  334. package/src/lib/sort-dropdown/sort-dropdown.component.ts +0 -42
  335. package/src/lib/spinner/spinner.component.html +0 -14
  336. package/src/lib/spinner/spinner.component.scss +0 -141
  337. package/src/lib/spinner/spinner.component.ts +0 -12
  338. package/src/lib/translations/README.md +0 -44
  339. package/src/lib/translations/fallback-translation-handler.ts +0 -7
  340. package/src/lib/translations/languages.ts +0 -6
  341. package/src/lib/translations/translation-loader.spec.ts +0 -352
  342. package/src/lib/translations/translation-loader.ts +0 -189
  343. package/src/lib/translations/translations.module.ts +0 -49
  344. package/src/lib/translations/translations.service.spec.ts +0 -152
  345. package/src/lib/translations/translations.service.ts +0 -188
  346. package/src/lib/types/accessibillity.ts +0 -15
  347. package/src/lib/types/keyboard-shortcuts.ts +0 -29
  348. package/src/lib/types/list-item.ts +0 -67
  349. package/src/lib/types/option-item.ts +0 -247
  350. package/src/lib/types/workflow.ts +0 -35
  351. package/src/lib/util/DateHelper.spec.ts +0 -112
  352. package/src/lib/util/DateHelper.ts +0 -197
  353. package/src/lib/util/VCard.ts +0 -277
  354. package/src/lib/util/color-helper.ts +0 -125
  355. package/src/lib/util/duration-helper.spec.ts +0 -35
  356. package/src/lib/util/duration-helper.ts +0 -98
  357. package/src/lib/util/functions.ts +0 -15
  358. package/src/lib/util/helper.ts +0 -60
  359. package/src/lib/util/isNumeric.ts +0 -13
  360. package/src/lib/util/rest-helper.ts +0 -28
  361. package/src/lib/util/ui-animation.ts +0 -154
  362. package/src/lib/util/ui-constants.ts +0 -20
  363. package/src/test.ts +0 -28
  364. package/tsconfig.lib.json +0 -15
  365. package/tsconfig.lib.prod.json +0 -10
  366. package/tsconfig.spec.json +0 -17
  367. /package/{src/lib/types/api-models.ts → lib/types/api-models.d.ts} +0 -0
@@ -0,0 +1,124 @@
1
+ export class ColorHelper {
2
+ static cssColorToRgb(color) {
3
+ color = color.trim();
4
+ if (color.startsWith('rgb')) {
5
+ let result = /rgb.?\(\s*([\d]*)\s*,\s*([\d]*)\s*,\s*([\d*]*)\s*/i.exec(color);
6
+ return result ? [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])] : null;
7
+ }
8
+ let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(color);
9
+ return result
10
+ ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]
11
+ : null;
12
+ }
13
+ /**
14
+ * returns the estimated color brightness for a css color based on a pereceived brightness factor
15
+ * Value between [0,1] and -1 if the css string was not readable
16
+ * @param {string} color
17
+ * @returns {number}
18
+ */
19
+ static getColorBrightness(color) {
20
+ const rgb = ColorHelper.cssColorToRgb(color);
21
+ if (rgb) {
22
+ // return (rgb[0]*0.2126 + rgb[1]*0.7152 + rgb[2]*0.0722) / 255;
23
+ const a = rgb.map((v) => {
24
+ v /= 255;
25
+ return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
26
+ });
27
+ return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
28
+ }
29
+ return -1;
30
+ }
31
+ static getRatio(l1, l2) {
32
+ // calculate the color contrast ratio
33
+ return l1 > l2 ? (l2 + 0.05) / (l1 + 0.05) : (l1 + 0.05) / (l2 + 0.05);
34
+ }
35
+ /**
36
+ * returns 0 (black) or 1 (white)
37
+ * @param color
38
+ */
39
+ static getPreferredColor(color) {
40
+ if (!color) {
41
+ return PreferredColor.Black;
42
+ }
43
+ const brightness = ColorHelper.getColorBrightness(color);
44
+ const ratioBlack = ColorHelper.getRatio(0, brightness);
45
+ const ratioWhite = ColorHelper.getRatio(1, brightness);
46
+ return ratioBlack > ratioWhite ? PreferredColor.Black : PreferredColor.White;
47
+ }
48
+ static rgbToHex(rgb) {
49
+ return ('#' +
50
+ ColorHelper.componentToHex(rgb[0]) +
51
+ ColorHelper.componentToHex(rgb[1]) +
52
+ ColorHelper.componentToHex(rgb[2]));
53
+ }
54
+ static componentToHex(c) {
55
+ var hex = Math.max(0, Math.min(Math.round(c), 255)).toString(16);
56
+ return hex.length == 1 ? '0' + hex : hex;
57
+ }
58
+ static rgbToHsl(rgb) {
59
+ const r = rgb[0] / 255;
60
+ const g = rgb[1] / 255;
61
+ const b = rgb[2] / 255;
62
+ const max = Math.max(r, g, b);
63
+ const min = Math.min(r, g, b);
64
+ // tslint:disable-next-line:one-variable-per-declaration prefer-const
65
+ let h, s, l = (max + min) / 2;
66
+ if (max === min) {
67
+ h = s = 0;
68
+ }
69
+ else {
70
+ const d = max - min;
71
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
72
+ switch (max) {
73
+ case r:
74
+ h = (g - b) / d + (g < b ? 6 : 0);
75
+ break;
76
+ case g:
77
+ h = (b - r) / d + 2;
78
+ break;
79
+ case b:
80
+ h = (r - g) / d + 4;
81
+ break;
82
+ }
83
+ h /= 6;
84
+ }
85
+ return [h, s, l];
86
+ }
87
+ static hue2rgb(p, q, t) {
88
+ if (t < 0)
89
+ t += 1;
90
+ if (t > 1)
91
+ t -= 1;
92
+ if (t < 1 / 6)
93
+ return p + (q - p) * 6 * t;
94
+ if (t < 1 / 2)
95
+ return q;
96
+ if (t < 2 / 3)
97
+ return p + (q - p) * (2 / 3 - t) * 6;
98
+ return p;
99
+ }
100
+ static hslToRgb(hsl) {
101
+ const h = hsl[0];
102
+ const s = hsl[1];
103
+ const l = hsl[2];
104
+ // tslint:disable-next-line:one-variable-per-declaration
105
+ let r, g, b;
106
+ if (s === 0) {
107
+ r = g = b = l;
108
+ }
109
+ else {
110
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
111
+ const p = 2 * l - q;
112
+ r = ColorHelper.hue2rgb(p, q, h + 1 / 3);
113
+ g = ColorHelper.hue2rgb(p, q, h);
114
+ b = ColorHelper.hue2rgb(p, q, h - 1 / 3);
115
+ }
116
+ return [r * 255, g * 255, b * 255];
117
+ }
118
+ }
119
+ export var PreferredColor;
120
+ (function (PreferredColor) {
121
+ PreferredColor[PreferredColor["Black"] = 0] = "Black";
122
+ PreferredColor[PreferredColor["White"] = 1] = "White";
123
+ })(PreferredColor || (PreferredColor = {}));
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi91dGlsL2NvbG9yLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBVztJQUNiLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBYTtRQUNyQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixJQUFJLE1BQU0sR0FBRyxvREFBb0QsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzFGO1FBQ0QsSUFBSSxNQUFNLEdBQUcsMkNBQTJDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sTUFBTTtZQUNULENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUMxQyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsYUFB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QUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFcEIsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKO0FBQ0QsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN0QixxREFBSyxDQUFBO0lBQ0wscURBQUssQ0FBQTtBQUNULENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb2xvckhlbHBlciB7XG4gICAgcHVibGljIHN0YXRpYyBjc3NDb2xvclRvUmdiKGNvbG9yOiBzdHJpbmcpOiBudW1iZXJbXSB7XG4gICAgICAgIGNvbG9yID0gY29sb3IudHJpbSgpO1xuICAgICAgICBpZiAoY29sb3Iuc3RhcnRzV2l0aCgncmdiJykpIHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAvcmdiLj9cXChcXHMqKFtcXGRdKilcXHMqLFxccyooW1xcZF0qKVxccyosXFxzKihbXFxkKl0qKVxccyovaS5leGVjKGNvbG9yKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgPyBbcGFyc2VJbnQocmVzdWx0WzFdKSwgcGFyc2VJbnQocmVzdWx0WzJdKSwgcGFyc2VJbnQocmVzdWx0WzNdKV0gOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHQgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoY29sb3IpO1xuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgICAgICA/IFtwYXJzZUludChyZXN1bHRbMV0sIDE2KSwgcGFyc2VJbnQocmVzdWx0WzJdLCAxNiksIHBhcnNlSW50KHJlc3VsdFszXSwgMTYpXVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdGhlIGVzdGltYXRlZCBjb2xvciBicmlnaHRuZXNzIGZvciBhIGNzcyBjb2xvciBiYXNlZCBvbiBhIHBlcmVjZWl2ZWQgYnJpZ2h0bmVzcyBmYWN0b3JcbiAgICAgKiBWYWx1ZSBiZXR3ZWVuIFswLDFdIGFuZCAtMSBpZiB0aGUgY3NzIHN0cmluZyB3YXMgbm90IHJlYWRhYmxlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbG9yQnJpZ2h0bmVzcyhjb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHJnYiA9IENvbG9ySGVscGVyLmNzc0NvbG9yVG9SZ2IoY29sb3IpO1xuICAgICAgICBpZiAocmdiKSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gKHJnYlswXSowLjIxMjYgKyByZ2JbMV0qMC43MTUyICsgcmdiWzJdKjAuMDcyMikgLyAyNTU7XG4gICAgICAgICAgICBjb25zdCBhID0gcmdiLm1hcCgodikgPT4ge1xuICAgICAgICAgICAgICAgIHYgLz0gMjU1O1xuICAgICAgICAgICAgICAgIHJldHVybiB2IDw9IDAuMDM5MjggPyB2IC8gMTIuOTIgOiBNYXRoLnBvdygodiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYVswXSAqIDAuMjEyNiArIGFbMV0gKiAwLjcxNTIgKyBhWzJdICogMC4wNzIyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRSYXRpbyhsMTogbnVtYmVyLCBsMjogbnVtYmVyKSB7XG4gICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgY29sb3IgY29udHJhc3QgcmF0aW9cbiAgICAgICAgcmV0dXJuIGwxID4gbDIgPyAobDIgKyAwLjA1KSAvIChsMSArIDAuMDUpIDogKGwxICsgMC4wNSkgLyAobDIgKyAwLjA1KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogcmV0dXJucyAwIChibGFjaykgb3IgMSAod2hpdGUpXG4gICAgICogQHBhcmFtIGNvbG9yXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQcmVmZXJyZWRDb2xvcihjb2xvcjogc3RyaW5nKTogUHJlZmVycmVkQ29sb3Ige1xuICAgICAgICBpZiAoIWNvbG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJlZmVycmVkQ29sb3IuQmxhY2s7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYnJpZ2h0bmVzcyA9IENvbG9ySGVscGVyLmdldENvbG9yQnJpZ2h0bmVzcyhjb2xvcik7XG4gICAgICAgIGNvbnN0IHJhdGlvQmxhY2sgPSBDb2xvckhlbHBlci5nZXRSYXRpbygwLCBicmlnaHRuZXNzKTtcbiAgICAgICAgY29uc3QgcmF0aW9XaGl0ZSA9IENvbG9ySGVscGVyLmdldFJhdGlvKDEsIGJyaWdodG5lc3MpO1xuICAgICAgICByZXR1cm4gcmF0aW9CbGFjayA+IHJhdGlvV2hpdGUgPyBQcmVmZXJyZWRDb2xvci5CbGFjayA6IFByZWZlcnJlZENvbG9yLldoaXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmdiVG9IZXgocmdiOiBudW1iZXJbXSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAnIycgK1xuICAgICAgICAgICAgQ29sb3JIZWxwZXIuY29tcG9uZW50VG9IZXgocmdiWzBdKSArXG4gICAgICAgICAgICBDb2xvckhlbHBlci5jb21wb25lbnRUb0hleChyZ2JbMV0pICtcbiAgICAgICAgICAgIENvbG9ySGVscGVyLmNvbXBvbmVudFRvSGV4KHJnYlsyXSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcHVibGljIHN0YXRpYyBjb21wb25lbnRUb0hleChjOiBudW1iZXIpIHtcbiAgICAgICAgdmFyIGhleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKE1hdGgucm91bmQoYyksIDI1NSkpLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgcmV0dXJuIGhleC5sZW5ndGggPT0gMSA/ICcwJyArIGhleCA6IGhleDtcbiAgICB9XG4gICAgcHVibGljIHN0YXRpYyByZ2JUb0hzbChyZ2I6IG51bWJlcltdKSB7XG4gICAgICAgIGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgICAgIGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgICAgIGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm9uZS12YXJpYWJsZS1wZXItZGVjbGFyYXRpb24gcHJlZmVyLWNvbnN0XG4gICAgICAgIGxldCBoLFxuICAgICAgICAgICAgcyxcbiAgICAgICAgICAgIGwgPSAobWF4ICsgbWluKSAvIDI7XG4gICAgICAgIGlmIChtYXggPT09IG1pbikge1xuICAgICAgICAgICAgaCA9IHMgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZCA9IG1heCAtIG1pbjtcbiAgICAgICAgICAgIHMgPSBsID4gMC41ID8gZCAvICgyIC0gbWF4IC0gbWluKSA6IGQgLyAobWF4ICsgbWluKTtcblxuICAgICAgICAgICAgc3dpdGNoIChtYXgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIHI6XG4gICAgICAgICAgICAgICAgICAgIGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBnOlxuICAgICAgICAgICAgICAgICAgICBoID0gKGIgLSByKSAvIGQgKyAyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIGI6XG4gICAgICAgICAgICAgICAgICAgIGggPSAociAtIGcpIC8gZCArIDQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaCAvPSA2O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbaCwgcywgbF07XG4gICAgfVxuICAgIHByaXZhdGUgc3RhdGljIGh1ZTJyZ2IocDogbnVtYmVyLCBxOiBudW1iZXIsIHQ6IG51bWJlcikge1xuICAgICAgICBpZiAodCA8IDApIHQgKz0gMTtcbiAgICAgICAgaWYgKHQgPiAxKSB0IC09IDE7XG4gICAgICAgIGlmICh0IDwgMSAvIDYpIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xuICAgICAgICBpZiAodCA8IDEgLyAyKSByZXR1cm4gcTtcbiAgICAgICAgaWYgKHQgPCAyIC8gMykgcmV0dXJuIHAgKyAocSAtIHApICogKDIgLyAzIC0gdCkgKiA2O1xuICAgICAgICByZXR1cm4gcDtcbiAgICB9XG4gICAgcHVibGljIHN0YXRpYyBoc2xUb1JnYihoc2w6IG51bWJlcltdKSB7XG4gICAgICAgIGNvbnN0IGggPSBoc2xbMF07XG4gICAgICAgIGNvbnN0IHMgPSBoc2xbMV07XG4gICAgICAgIGNvbnN0IGwgPSBoc2xbMl07XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpvbmUtdmFyaWFibGUtcGVyLWRlY2xhcmF0aW9uXG4gICAgICAgIGxldCByLCBnLCBiO1xuICAgICAgICBpZiAocyA9PT0gMCkge1xuICAgICAgICAgICAgciA9IGcgPSBiID0gbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHEgPSBsIDwgMC41ID8gbCAqICgxICsgcykgOiBsICsgcyAtIGwgKiBzO1xuICAgICAgICAgICAgY29uc3QgcCA9IDIgKiBsIC0gcTtcblxuICAgICAgICAgICAgciA9IENvbG9ySGVscGVyLmh1ZTJyZ2IocCwgcSwgaCArIDEgLyAzKTtcbiAgICAgICAgICAgIGcgPSBDb2xvckhlbHBlci5odWUycmdiKHAsIHEsIGgpO1xuICAgICAgICAgICAgYiA9IENvbG9ySGVscGVyLmh1ZTJyZ2IocCwgcSwgaCAtIDEgLyAzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV07XG4gICAgfVxufVxuZXhwb3J0IGVudW0gUHJlZmVycmVkQ29sb3Ige1xuICAgIEJsYWNrLFxuICAgIFdoaXRlLFxufVxuIl19
@@ -0,0 +1,102 @@
1
+ export var DurationFormat;
2
+ (function (DurationFormat) {
3
+ /**
4
+ * format with colon, i.e. H:MM:SS
5
+ */
6
+ DurationFormat["Colon"] = "colon";
7
+ /**
8
+ * format with Hh Mm Ss
9
+ */
10
+ DurationFormat["Hms"] = "hms";
11
+ })(DurationFormat || (DurationFormat = {}));
12
+ export class DurationHelper {
13
+ static getDurationInSeconds(value) {
14
+ // PT1H5M23S
15
+ // or 00:00:00
16
+ // or 00:00
17
+ if (!value)
18
+ return 0;
19
+ try {
20
+ let result = value.split(':');
21
+ if (result.length == 3) {
22
+ let h = result[0] ? parseInt(result[0]) : 0;
23
+ let m = result[1] ? parseInt(result[1]) : 0;
24
+ let s = result[2] ? parseInt(result[2]) : 0;
25
+ let time = h * 60 * 60 + m * 60 + s;
26
+ return time;
27
+ }
28
+ if (result.length == 2) {
29
+ let m = result[0] ? parseInt(result[0]) : 0;
30
+ let s = result[1] ? parseInt(result[1]) : 0;
31
+ let time = m * 60 + s;
32
+ return time;
33
+ }
34
+ }
35
+ catch (e) {
36
+ return value;
37
+ }
38
+ try {
39
+ let regexp = new RegExp('PT(\\d+H)?(\\d+M)?(\\d+S)?');
40
+ let result = regexp.exec(value);
41
+ let h = result[1] ? parseInt(result[1]) : 0;
42
+ let m = result[2] ? parseInt(result[2]) : 0;
43
+ let s = result[3] ? parseInt(result[3]) : 0;
44
+ let time = h * 60 * 60 + m * 60 + s;
45
+ return time;
46
+ }
47
+ catch (e) {
48
+ return value;
49
+ }
50
+ }
51
+ static getDurationFormatted(duration, format = DurationFormat.Colon) {
52
+ let time = DurationHelper.getDurationInSeconds(duration);
53
+ if (!time)
54
+ return '';
55
+ let h = Math.floor(time / 60 / 60);
56
+ let m = Math.floor(Math.floor(time / 60) % 60);
57
+ let s = Math.floor(time % 60);
58
+ let options = {
59
+ minimumIntegerDigits: 2,
60
+ maximumFractionDigits: 0,
61
+ };
62
+ let numberFormat = new Intl.NumberFormat([], options);
63
+ let str = '';
64
+ /*
65
+ if(h>0) {
66
+ str = format.format(h) + "h";
67
+ }
68
+ if(m>0) {
69
+ if (str)
70
+ str += " ";
71
+ str += format.format(m) + "m";
72
+ }
73
+ if(s>0) {
74
+ if (str)
75
+ str += " ";
76
+ str += format.format(s) + "s";
77
+ }
78
+ */
79
+ if (format === DurationFormat.Colon) {
80
+ str =
81
+ numberFormat.format(h) +
82
+ ':' +
83
+ numberFormat.format(m) +
84
+ ':' +
85
+ numberFormat.format(s);
86
+ }
87
+ else {
88
+ if (h > 0) {
89
+ str += h + 'h';
90
+ }
91
+ if (m > 0) {
92
+ str += ' ' + m + 'm';
93
+ }
94
+ if (s > 0) {
95
+ str += ' ' + s + 's';
96
+ }
97
+ str = str.trim();
98
+ }
99
+ return str;
100
+ }
101
+ }
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi91dGlsL2R1cmF0aW9uLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQVNYO0FBVEQsV0FBWSxjQUFjO0lBQ3RCOztPQUVHO0lBQ0gsaUNBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsNkJBQVcsQ0FBQTtBQUNmLENBQUMsRUFUVyxjQUFjLEtBQWQsY0FBYyxRQVN6QjtBQUNELE1BQU0sT0FBTyxjQUFjO0lBQ2hCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFhO1FBQzVDLFlBQVk7UUFDWixjQUFjO1FBQ2QsV0FBVztRQUNYLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDckIsSUFBSTtZQUNBLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxJQUFJLEdBQUcs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Q0FBQyxDQUFDLENBQUM7b0JBQ3RCLEdBQUc7b0JBQ0gsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLEdBQUc7b0JBQ0gsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUN4QjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDUCxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7YUFDeEI7WUFDRCxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEdXJhdGlvbkZvcm1hdCB7XG4gICAgLyoqXG4gICAgICogZm9ybWF0IHdpdGggY29sb24sIGkuZS4gSDpNTTpTU1xuICAgICAqL1xuICAgIENvbG9uID0gJ2NvbG9uJyxcbiAgICAvKipcbiAgICAgKiBmb3JtYXQgd2l0aCBIaCBNbSBTc1xuICAgICAqL1xuICAgIEhtcyA9ICdobXMnLFxufVxuZXhwb3J0IGNsYXNzIER1cmF0aW9uSGVscGVyIHtcbiAgICBwdWJsaWMgc3RhdGljIGdldER1cmF0aW9uSW5TZWNvbmRzKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICAvLyBQVDFINU0yM1NcbiAgICAgICAgLy8gb3IgMDA6MDA6MDBcbiAgICAgICAgLy8gb3IgMDA6MDBcbiAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIDA7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID09IDMpIHtcbiAgICAgICAgICAgICAgICBsZXQgaCA9IHJlc3VsdFswXSA/IHBhcnNlSW50KHJlc3VsdFswXSkgOiAwO1xuICAgICAgICAgICAgICAgIGxldCBtID0gcmVzdWx0WzFdID8gcGFyc2VJbnQocmVzdWx0WzFdKSA6IDA7XG4gICAgICAgICAgICAgICAgbGV0IHMgPSByZXN1bHRbMl0gPyBwYXJzZUludChyZXN1bHRbMl0pIDogMDtcbiAgICAgICAgICAgICAgICBsZXQgdGltZSA9IGggKiA2MCAqIDYwICsgbSAqIDYwICsgcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID09IDIpIHtcbiAgICAgICAgICAgICAgICBsZXQgbSA9IHJlc3VsdFswXSA/IHBhcnNlSW50KHJlc3VsdFswXSkgOiAwO1xuICAgICAgICAgICAgICAgIGxldCBzID0gcmVzdWx0WzFdID8gcGFyc2VJbnQocmVzdWx0WzFdKSA6IDA7XG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSBtICogNjAgKyBzO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgYXMgdW5rbm93biBhcyBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCByZWdleHAgPSBuZXcgUmVnRXhwKCdQVChcXFxcZCtIKT8oXFxcXGQrTSk/KFxcXFxkK1MpPycpO1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlZ2V4cC5leGVjKHZhbHVlKTtcbiAgICAgICAgICAgIGxldCBoID0gcmVzdWx0WzFdID8gcGFyc2VJbnQocmVzdWx0WzFdKSA6IDA7XG4gICAgICAgICAgICBsZXQgbSA9IHJlc3VsdFsyXSA/IHBhcnNlSW50KHJlc3VsdFsyXSkgOiAwO1xuICAgICAgICAgICAgbGV0IHMgPSByZXN1bHRbM10gPyBwYXJzZUludChyZXN1bHRbM10pIDogMDtcbiAgICAgICAgICAgIGxldCB0aW1lID0gaCAqIDYwICogNjAgKyBtICogNjAgKyBzO1xuICAgICAgICAgICAgcmV0dXJuIHRpbWU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBhcyB1bmtub3duIGFzIG51bWJlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGdldER1cmF0aW9uRm9ybWF0dGVkKFxuICAgICAgICBkdXJhdGlvbjogc3RyaW5nLFxuICAgICAgICBmb3JtYXQ6IER1cmF0aW9uRm9ybWF0ID0gRHVyYXRpb25Gb3JtYXQuQ29sb24sXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHRpbWUgPSBEdXJhdGlvbkhlbHBlci5nZXREdXJhdGlvbkluU2Vjb25kcyhkdXJhdGlvbik7XG4gICAgICAgIGlmICghdGltZSkgcmV0dXJuICcnO1xuICAgICAgICBsZXQgaCA9IE1hdGguZmxvb3IodGltZSAvIDYwIC8gNjApO1xuICAgICAgICBsZXQgbSA9IE1hdGguZmxvb3IoTWF0aC5mbG9vcih0aW1lIC8gNjApICUgNjApO1xuICAgICAgICBsZXQgcyA9IE1hdGguZmxvb3IodGltZSAlIDYwKTtcbiAgICAgICAgbGV0IG9wdGlvbnM6IEludGwuTnVtYmVyRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1pbmltdW1JbnRlZ2VyRGlnaXRzOiAyLFxuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAwLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgbnVtYmVyRm9ybWF0ID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KFtdLCBvcHRpb25zKTtcbiAgICAgICAgbGV0IHN0ciA9ICcnO1xuICAgICAgICAvKlxuICAgICAgaWYoaD4wKSB7XG4gICAgICAgIHN0ciA9IGZvcm1hdC5mb3JtYXQoaCkgKyBcImhcIjtcbiAgICAgIH1cbiAgICAgIGlmKG0+MCkge1xuICAgICAgICBpZiAoc3RyKVxuICAgICAgICAgIHN0ciArPSBcIiBcIjtcbiAgICAgICAgc3RyICs9IGZvcm1hdC5mb3JtYXQobSkgKyBcIm1cIjtcbiAgICAgIH1cbiAgICAgIGlmKHM+MCkge1xuICAgICAgICBpZiAoc3RyKVxuICAgICAgICAgIHN0ciArPSBcIiBcIjtcbiAgICAgICAgc3RyICs9IGZvcm1hdC5mb3JtYXQocykgKyBcInNcIjtcbiAgICAgIH1cbiAgICAgICovXG4gICAgICAgIGlmIChmb3JtYXQgPT09IER1cmF0aW9uRm9ybWF0LkNvbG9uKSB7XG4gICAgICAgICAgICBzdHIgPVxuICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5mb3JtYXQoaCkgK1xuICAgICAgICAgICAgICAgICc6JyArXG4gICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LmZvcm1hdChtKSArXG4gICAgICAgICAgICAgICAgJzonICtcbiAgICAgICAgICAgICAgICBudW1iZXJGb3JtYXQuZm9ybWF0KHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGggPiAwKSB7XG4gICAgICAgICAgICAgICAgc3RyICs9IGggKyAnaCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobSA+IDApIHtcbiAgICAgICAgICAgICAgICBzdHIgKz0gJyAnICsgbSArICdtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzID4gMCkge1xuICAgICAgICAgICAgICAgIHN0ciArPSAnICcgKyBzICsgJ3MnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RyID0gc3RyLnRyaW0oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RyO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ export function notNull(value) {
2
+ return value !== undefined && value !== null;
3
+ }
4
+ export function isTrue(value) {
5
+ return value ?? false;
6
+ }
7
+ export function microTick() {
8
+ return Promise.resolve();
9
+ }
10
+ export function macroTick() {
11
+ return new Promise((resolve) => setTimeout(() => resolve()));
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi91dGlsL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsT0FBTyxDQUFJLEtBQVE7SUFDL0IsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBYztJQUNqQyxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTO0lBQ3JCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUNyQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbm90TnVsbDxUPih2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUcnVlKHZhbHVlOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID8/IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWljcm9UaWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvVGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZSgpKSk7XG59XG4iXX0=
@@ -0,0 +1,64 @@
1
+ import { isNumeric } from './isNumeric';
2
+ import { isArray } from 'lodash';
3
+ export class Helper {
4
+ static deepCopy(data) {
5
+ if (data == null)
6
+ return null;
7
+ return JSON.parse(JSON.stringify(data));
8
+ }
9
+ static deepCopyArray(data) {
10
+ if (!Array.isArray(data))
11
+ return data;
12
+ return data.slice();
13
+ }
14
+ /**
15
+ * Returns true if both objects have the same values stored
16
+ * will not work for classes including methods or similar dynamic data
17
+ * @param object1
18
+ * @param object2
19
+ * @returns {boolean}
20
+ */
21
+ static objectEquals(object1, object2) {
22
+ if (object1 == null)
23
+ return object2 == null;
24
+ if (object2 == null)
25
+ return object1 == null;
26
+ return JSON.stringify(object1) == JSON.stringify(object2);
27
+ }
28
+ /**
29
+ * get data from an object based on a dotted path
30
+ * also supports arrays like "array.0.key"
31
+ * @param nested the object to return the data from
32
+ * @param path the path of the field location in dotted notation
33
+ */
34
+ static getDotPathFromNestedObject(nested, path) {
35
+ const split = path.split('.');
36
+ let obj = nested;
37
+ for (let key of split) {
38
+ if (isNumeric(key)) {
39
+ obj = obj?.[parseInt(key)];
40
+ }
41
+ else {
42
+ if (isArray(obj)) {
43
+ return obj;
44
+ }
45
+ obj = obj?.[key];
46
+ }
47
+ }
48
+ return obj;
49
+ }
50
+ static filterObjectPropertyNested(obj, property) {
51
+ for (let i in obj) {
52
+ if (!obj.hasOwnProperty(i))
53
+ continue;
54
+ if (property.includes(i)) {
55
+ delete obj[i];
56
+ }
57
+ else if (typeof obj[i] === 'object') {
58
+ Helper.filterObjectPropertyNested(obj[i], property);
59
+ }
60
+ }
61
+ return obj;
62
+ }
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi91dGlsL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakMsTUFBTSxPQUFPLE1BQU07SUFDUixNQUFNLENBQUMsUUFBUSxDQUFDLElBQVM7UUFDNUIsSUFBSSxJQUFJLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBVztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUNqRCxJQUFJLE9BQU8sSUFBSSxJQUFJO1lBQUUsT0FBTyxPQUFPLElBQUksSUFBSSxDQUFDO1FBQzVDLElBQUksT0FBTyxJQUFJLElBQUk7WUFBRSxPQUFPLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLDBCQUEwQixDQUFDLE1BQVcsRUFBRSxJQUFZO1FBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxFQUFFO1lBQ25CLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQixHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0gsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2QsT0FBTyxHQUFHLENBQUM7aUJBQ2Q7Z0JBQ0QsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BCO1NBQ0o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFDTSxNQUFNLENBQUMsMEJBQTBCLENBQUMsR0FBUSxFQUFFLFFBQWtCO1FBQ2pFLEtBQUssSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2dCQUFFLFNBQVM7WUFDckMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQjtpQkFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN2RDtTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc051bWVyaWMgfSBmcm9tICcuL2lzTnVtZXJpYyc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNsYXNzIEhlbHBlciB7XG4gICAgcHVibGljIHN0YXRpYyBkZWVwQ29weShkYXRhOiBhbnkpIHtcbiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGRlZXBDb3B5QXJyYXkoZGF0YTogYW55W10pIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSByZXR1cm4gZGF0YTtcbiAgICAgICAgcmV0dXJuIGRhdGEuc2xpY2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgYm90aCBvYmplY3RzIGhhdmUgdGhlIHNhbWUgdmFsdWVzIHN0b3JlZFxuICAgICAqIHdpbGwgbm90IHdvcmsgZm9yIGNsYXNzZXMgaW5jbHVkaW5nIG1ldGhvZHMgb3Igc2ltaWxhciBkeW5hbWljIGRhdGFcbiAgICAgKiBAcGFyYW0gb2JqZWN0MVxuICAgICAqIEBwYXJhbSBvYmplY3QyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBvYmplY3RFcXVhbHMob2JqZWN0MTogYW55LCBvYmplY3QyOiBhbnkpIHtcbiAgICAgICAgaWYgKG9iamVjdDEgPT0gbnVsbCkgcmV0dXJuIG9iamVjdDIgPT0gbnVsbDtcbiAgICAgICAgaWYgKG9iamVjdDIgPT0gbnVsbCkgcmV0dXJuIG9iamVjdDEgPT0gbnVsbDtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iamVjdDEpID09IEpTT04uc3RyaW5naWZ5KG9iamVjdDIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBkYXRhIGZyb20gYW4gb2JqZWN0IGJhc2VkIG9uIGEgZG90dGVkIHBhdGhcbiAgICAgKiBhbHNvIHN1cHBvcnRzIGFycmF5cyBsaWtlIFwiYXJyYXkuMC5rZXlcIlxuICAgICAqIEBwYXJhbSBuZXN0ZWQgdGhlIG9iamVjdCB0byByZXR1cm4gdGhlIGRhdGEgZnJvbVxuICAgICAqIEBwYXJhbSBwYXRoIHRoZSBwYXRoIG9mIHRoZSBmaWVsZCBsb2NhdGlvbiBpbiBkb3R0ZWQgbm90YXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldERvdFBhdGhGcm9tTmVzdGVkT2JqZWN0KG5lc3RlZDogYW55LCBwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgICAgIGxldCBvYmogPSBuZXN0ZWQ7XG4gICAgICAgIGZvciAobGV0IGtleSBvZiBzcGxpdCkge1xuICAgICAgICAgICAgaWYgKGlzTnVtZXJpYyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgb2JqID0gb2JqPy5bcGFyc2VJbnQoa2V5KV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JqID0gb2JqPy5ba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGZpbHRlck9iamVjdFByb3BlcnR5TmVzdGVkKG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nW10pIHtcbiAgICAgICAgZm9yIChsZXQgaSBpbiBvYmopIHtcbiAgICAgICAgICAgIGlmICghb2JqLmhhc093blByb3BlcnR5KGkpKSBjb250aW51ZTtcbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5pbmNsdWRlcyhpKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbaV07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmpbaV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgSGVscGVyLmZpbHRlck9iamVjdFByb3BlcnR5TmVzdGVkKG9ialtpXSwgcHJvcGVydHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copy paste from rxjs/util/isNumeric since importing it from there will trigger a warning about
3
+ * CommonJS or AMD dependencies and indeed increase the bundle size a bit.
4
+ */
5
+ // From https://github.com/ReactiveX/rxjs/blob/6.x/src/internal/util/isArray.ts
6
+ const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();
7
+ // From https://github.com/ReactiveX/rxjs/blob/6.x/src/internal/util/isNumeric.ts
8
+ export function isNumeric(val) {
9
+ return !isArray(val) && val - parseFloat(val) + 1 >= 0;
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNOdW1lcmljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi91dGlsL2lzTnVtZXJpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCwrRUFBK0U7QUFDL0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FDbEIsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUksQ0FBTSxFQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVyRixpRkFBaUY7QUFDakYsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFRO0lBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHkgcGFzdGUgZnJvbSByeGpzL3V0aWwvaXNOdW1lcmljIHNpbmNlIGltcG9ydGluZyBpdCBmcm9tIHRoZXJlIHdpbGwgdHJpZ2dlciBhIHdhcm5pbmcgYWJvdXRcbiAqIENvbW1vbkpTIG9yIEFNRCBkZXBlbmRlbmNpZXMgYW5kIGluZGVlZCBpbmNyZWFzZSB0aGUgYnVuZGxlIHNpemUgYSBiaXQuXG4gKi9cblxuLy8gRnJvbSBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvYmxvYi82Lngvc3JjL2ludGVybmFsL3V0aWwvaXNBcnJheS50c1xuY29uc3QgaXNBcnJheSA9ICgoKSA9PlxuICAgIEFycmF5LmlzQXJyYXkgfHwgKDxUPih4OiBhbnkpOiB4IGlzIFRbXSA9PiB4ICYmIHR5cGVvZiB4Lmxlbmd0aCA9PT0gJ251bWJlcicpKSgpO1xuXG4vLyBGcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZVgvcnhqcy9ibG9iLzYueC9zcmMvaW50ZXJuYWwvdXRpbC9pc051bWVyaWMudHNcbmV4cG9ydCBmdW5jdGlvbiBpc051bWVyaWModmFsOiBhbnkpOiB2YWwgaXMgbnVtYmVyIHwgc3RyaW5nIHtcbiAgICByZXR1cm4gIWlzQXJyYXkodmFsKSAmJiB2YWwgLSBwYXJzZUZsb2F0KHZhbCkgKyAxID49IDA7XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { RestConstants } from 'ngx-edu-sharing-api';
2
+ /**
3
+ * Different helper functions, may be used globally
4
+ */
5
+ export class RestHelper {
6
+ static { this.SPACES_STORE_REF = 'workspace://SpacesStore/'; }
7
+ static getName(node) {
8
+ if (node.name)
9
+ return node.name;
10
+ if (node.title)
11
+ return node.title;
12
+ if (node.ref)
13
+ return node.ref.id;
14
+ return null;
15
+ }
16
+ static getTitle(node) {
17
+ if (node?.title)
18
+ return node.title;
19
+ if (node?.name) {
20
+ return node?.name;
21
+ }
22
+ if (node?.properties) {
23
+ return RestHelper.getTitleFromProperties(node?.properties);
24
+ }
25
+ return '';
26
+ }
27
+ static getTitleFromProperties(properties) {
28
+ return properties[RestConstants.LOM_PROP_TITLE]
29
+ ? properties[RestConstants.LOM_PROP_TITLE]
30
+ : properties[RestConstants.CM_NAME];
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3V0aWwvcmVzdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFRLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7YUFDRixxQkFBZ0IsR0FBRywwQkFBMEIsQ0FBQztJQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVU7UUFDN0IsSUFBSSxJQUFJLEVBQUUsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDWixPQUFPLElBQUksRUFBRSxJQUFJLENBQUM7U0FDckI7UUFDRCxJQUFJLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbEIsT0FBTyxVQUFVLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzlEO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ00sTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQWU7UUFDaEQsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7WUFDMUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUsIFJlc3RDb25zdGFudHMgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbi8qKlxuICogRGlmZmVyZW50IGhlbHBlciBmdW5jdGlvbnMsIG1heSBiZSB1c2VkIGdsb2JhbGx5XG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0SGVscGVyIHtcbiAgICBwcm90ZWN0ZWQgc3RhdGljIFNQQUNFU19TVE9SRV9SRUYgPSAnd29ya3NwYWNlOi8vU3BhY2VzU3RvcmUvJztcbiAgICBwdWJsaWMgc3RhdGljIGdldE5hbWUobm9kZTogTm9kZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChub2RlLm5hbWUpIHJldHVybiBub2RlLm5hbWU7XG4gICAgICAgIGlmIChub2RlLnRpdGxlKSByZXR1cm4gbm9kZS50aXRsZTtcbiAgICAgICAgaWYgKG5vZGUucmVmKSByZXR1cm4gbm9kZS5yZWYuaWQ7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGdldFRpdGxlKG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgICAgICBpZiAobm9kZT8udGl0bGUpIHJldHVybiBub2RlLnRpdGxlO1xuICAgICAgICBpZiAobm9kZT8ubmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGU/Lm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGU/LnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBSZXN0SGVscGVyLmdldFRpdGxlRnJvbVByb3BlcnRpZXMobm9kZT8ucHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGdldFRpdGxlRnJvbVByb3BlcnRpZXMocHJvcGVydGllczogYW55KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNbUmVzdENvbnN0YW50cy5MT01fUFJPUF9USVRMRV1cbiAgICAgICAgICAgID8gcHJvcGVydGllc1tSZXN0Q29uc3RhbnRzLkxPTV9QUk9QX1RJVExFXVxuICAgICAgICAgICAgOiBwcm9wZXJ0aWVzW1Jlc3RDb25zdGFudHMuQ01fTkFNRV07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,146 @@
1
+ import { style, animate, transition, state } from '@angular/animations';
2
+ export class UIAnimation {
3
+ static { this.ANIMATION_TIME_FAST = 100; }
4
+ static { this.ANIMATION_TIME_NORMAL = 200; }
5
+ static { this.ANIMATION_TIME_SLOW = 300; }
6
+ static fade(time = UIAnimation.ANIMATION_TIME_NORMAL) {
7
+ return [
8
+ transition(':enter', [style({ opacity: 0 }), animate(time, style({ opacity: 1 }))]),
9
+ transition(':leave', [animate(time, style({ opacity: 0 }))]),
10
+ ];
11
+ }
12
+ static fromBottom(time = UIAnimation.ANIMATION_TIME_NORMAL) {
13
+ return [
14
+ transition(':enter', [
15
+ style({ transform: 'translateY(100%)' }),
16
+ animate(time, style({ transform: 'translateY(0)' })),
17
+ ]),
18
+ transition(':leave', [
19
+ style({ transform: 'translateY(0)' }),
20
+ animate(time, style({ transform: 'translateY(100%)' })),
21
+ ]),
22
+ ];
23
+ }
24
+ static fromLeft(time = UIAnimation.ANIMATION_TIME_NORMAL) {
25
+ return [
26
+ transition(':enter', [
27
+ style({ transform: 'translateX(-100%)' }),
28
+ animate(time, style({ transform: 'translateX(0)' })),
29
+ ]),
30
+ transition(':leave', [
31
+ style({ transform: 'translateX(0)' }),
32
+ animate(time, style({ transform: 'translateX(-100%)' })),
33
+ ]),
34
+ ];
35
+ }
36
+ static fromRight(time = UIAnimation.ANIMATION_TIME_NORMAL) {
37
+ return [
38
+ transition(':enter', [
39
+ style({ transform: 'translateX(100%)' }),
40
+ animate(time, style({ transform: 'translateX(0)' })),
41
+ ]),
42
+ transition(':leave', [
43
+ style({ transform: 'translateX(0)' }),
44
+ animate(time, style({ transform: 'translateX(100%)' })),
45
+ ]),
46
+ ];
47
+ }
48
+ static infobarBottom(time = UIAnimation.ANIMATION_TIME_NORMAL) {
49
+ return [
50
+ transition(':enter', [
51
+ style({ bottom: '-70px' }),
52
+ animate(time + 'ms ease', style({ bottom: '0' })),
53
+ ]),
54
+ transition(':leave', [
55
+ style({ bottom: '0' }),
56
+ animate(time + 'ms ease', style({ bottom: '-70px' })),
57
+ ]),
58
+ ];
59
+ }
60
+ /**
61
+ * Useful animation for opening any overflow menus
62
+ * @param time
63
+ * @returns {AnimationStateTransitionMetadata[]}
64
+ */
65
+ static openOverlay(time = UIAnimation.ANIMATION_TIME_NORMAL) {
66
+ return [
67
+ transition(':enter', [
68
+ style({ 'transform-origin': '50% 0%', transform: 'scaleY(0.5)', opacity: 0 }),
69
+ animate(time, style({ transform: 'scaleY(1)', opacity: 1 })),
70
+ ]),
71
+ transition(':leave', [
72
+ style({ 'transform-origin': '50% 0%', transform: 'scaleY(1)', opacity: 1 }),
73
+ animate(time, style({ transform: 'scaleY(0.5)', opacity: 0 })),
74
+ ]),
75
+ ];
76
+ }
77
+ /**
78
+ * Useful animation for opening any overflow menus - inverted (from bottom to top)
79
+ * @param time
80
+ * @returns {AnimationStateTransitionMetadata[]}
81
+ */
82
+ static openOverlayBottom(time = UIAnimation.ANIMATION_TIME_NORMAL) {
83
+ return [
84
+ transition(':enter', [
85
+ style({ 'transform-origin': '50% 100%', transform: 'scaleY(0.5)', opacity: 0 }),
86
+ animate(time, style({ transform: 'scaleY(1)', opacity: 1 })),
87
+ ]),
88
+ transition(':leave', [
89
+ style({ 'transform-origin': '50% 100%', transform: 'scaleY(1)', opacity: 1 }),
90
+ animate(time, style({ transform: 'scaleY(0.5)', opacity: 0 })),
91
+ ]),
92
+ ];
93
+ }
94
+ /**
95
+ * Useful animation to switch different content insides a dialog (navigating between contents)
96
+ * @param time
97
+ * @returns {AnimationStateTransitionMetadata[]}
98
+ */
99
+ static switchDialog(time = UIAnimation.ANIMATION_TIME_NORMAL) {
100
+ return [
101
+ transition(':enter', [
102
+ style({ 'transform-origin': '50% 0%', transform: 'scaleY(0)', opacity: 0 }),
103
+ animate(time, style({ transform: 'scaleY(1)', opacity: 1 })),
104
+ ]),
105
+ ];
106
+ }
107
+ /**
108
+ * Useful animation to switch different content insides a dialog (navigating between contents)
109
+ * This is a special variant which does work without ngIf fields, it will remove display states
110
+ */
111
+ static switchDialogBoolean(time = UIAnimation.ANIMATION_TIME_NORMAL) {
112
+ return [
113
+ state('false', style({
114
+ opacity: 0,
115
+ 'transform-origin': '50% 0%',
116
+ transform: 'scaleY(0)',
117
+ display: 'none',
118
+ })),
119
+ state('true', style({ opacity: 1, 'transform-origin': '50% 0%', transform: 'scaleY(100%)' })),
120
+ transition('false => true', [style({ display: '' }), animate(time + 'ms ease-in-out')]),
121
+ transition('true => false', [animate(time + 'ms ease-in-out')]),
122
+ ];
123
+ }
124
+ /**
125
+ * Useful animation for showing any modal cards
126
+ * @param time
127
+ * @returns {AnimationStateTransitionMetadata[]}
128
+ */
129
+ static cardAnimation(time = UIAnimation.ANIMATION_TIME_NORMAL) {
130
+ return [
131
+ transition(':enter', [
132
+ style({
133
+ 'transform-origin': '50% 0%',
134
+ transform: 'scaleY(0.5) translateY(-100%)',
135
+ opacity: 0,
136
+ }),
137
+ animate(time + 'ms ease', style({ transform: 'scaleY(1) translateY(0)', opacity: 1 })),
138
+ ]),
139
+ transition(':leave', [
140
+ style({ 'transform-origin': '50% 0%', opacity: 1 }),
141
+ animate(time + 'ms ease', style({ opacity: 0 })),
142
+ ]),
143
+ ];
144
+ }
145
+ }
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi91dGlsL3VpLWFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQVcsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsTUFBTSxPQUFPLFdBQVc7YUFDTix3QkFBbUIsR0FBRyxHQUFHLENBQUM7YUFDMUIsMEJBQXFCLEdBQUcsR0FBRyxDQUFDO2FBQzVCLHdCQUFtQixHQUFHLEdBQUcsQ0FBQztJQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMscUJBQXFCO1FBQ3ZELE9BQU87WUFDSCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9ELENBQUM7SUFDTixDQUFDO0lBQ00sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLHFCQUFxQjtRQUM3RCxPQUFPO1lBQ0gsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7YUFDdkQsQ0FBQztZQUNG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QUFDO1lBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsS0FBSyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDbkQsQ0FBQztTQUNMLENBQUM7SUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3R5bGUsIGFuaW1hdGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5leHBvcnQgY2xhc3MgVUlBbmltYXRpb24ge1xuICAgIHB1YmxpYyBzdGF0aWMgQU5JTUFUSU9OX1RJTUVfRkFTVCA9IDEwMDtcbiAgICBwdWJsaWMgc3RhdGljIEFOSU1BVElPTl9USU1FX05PUk1BTCA9IDIwMDtcbiAgICBwdWJsaWMgc3RhdGljIEFOSU1BVElPTl9USU1FX1NMT1cgPSAzMDA7XG4gICAgcHVibGljIHN0YXRpYyBmYWRlKHRpbWUgPSBVSUFuaW1hdGlvbi5BTklNQVRJT05fVElNRV9OT1JNQUwpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUodGltZSwgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKV0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW2FuaW1hdGUodGltZSwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Cb3R0b20odGltZSA9IFVJQW5pbWF0aW9uLkFOSU1BVElPTl9USU1FX05PUk1BTCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgxMDAlKScgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSh0aW1lLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSh0aW1lLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGZyb21MZWZ0KHRpbWUgPSBVSUFuaW1hdGlvbi5BTklNQVRJT05fVElNRV9OT1JNQUwpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEwMCUpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKHRpbWUsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKHRpbWUsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGZyb21SaWdodCh0aW1lOiBudW1iZXIgfCBzdHJpbmcgPSBVSUFuaW1hdGlvbi5BTklNQVRJT05fVElNRV9OT1JNQUwpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUodGltZSwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUodGltZSwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgcHVibGljIHN0YXRpYyBpbmZvYmFyQm90dG9tKHRpbWUgPSBVSUFuaW1hdGlvbi5BTklNQVRJT05fVElNRV9OT1JNQUwpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IGJvdHRvbTogJy03MHB4JyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKHRpbWUgKyAnbXMgZWFzZScsIHN0eWxlKHsgYm90dG9tOiAnMCcgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBib3R0b206ICcwJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKHRpbWUgKyAnbXMgZWFzZScsIHN0eWxlKHsgYm90dG9tOiAnLTcwcHgnIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVc2VmdWwgYW5pbWF0aW9uIGZvciBvcGVuaW5nIGFueSBvdmVyZmxvdyBtZW51c1xuICAgICAqIEBwYXJhbSB0aW1lXG4gICAgICogQHJldHVybnMge0FuaW1hdGlvblN0YXRlVHJhbnNpdGlvbk1ldGFkYXRhW119XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBvcGVuT3ZlcmxheSh0aW1lID0gVUlBbmltYXRpb24uQU5JTUFUSU9OX1RJTUVfTk9STUFMKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyAndHJhbnNmb3JtLW9yaWdpbic6ICc1MCUgMCUnLCB0cmFuc2Zvcm06ICdzY2FsZVkoMC41KScsIG9wYWNpdHk6IDAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSh0aW1lLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlWSgxKScsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyAndHJhbnNmb3JtLW9yaWdpbic6ICc1MCUgMCUnLCB0cmFuc2Zvcm06ICdzY2FsZVkoMSknLCBvcGFjaXR5OiAxIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUodGltZSwgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZVkoMC41KScsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVzZWZ1bCBhbmltYXRpb24gZm9yIG9wZW5pbmcgYW55IG92ZXJmbG93IG1lbnVzIC0gaW52ZXJ0ZWQgKGZyb20gYm90dG9tIHRvIHRvcClcbiAgICAgKiBAcGFyYW0gdGltZVxuICAgICAqIEByZXR1cm5zIHtBbmltYXRpb25TdGF0ZVRyYW5zaXRpb25NZXRhZGF0YVtdfVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgb3Blbk92ZXJsYXlCb3R0b20odGltZSA9IFVJQW5pbWF0aW9uLkFOSU1BVElPTl9USU1FX05PUk1BTCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgJ3RyYW5zZm9ybS1vcmlnaW4nOiAnNTAlIDEwMCUnLCB0cmFuc2Zvcm06ICdzY2FsZVkoMC41KScsIG9wYWNpdHk6IDAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSh0aW1lLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlWSgxKScsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyAndHJhbnNmb3JtLW9yaWdpbic6ICc1MCUgMTAwJScsIHRyYW5zZm9ybTogJ3NjYWxlWSgxKScsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSh0aW1lLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlWSgwLjUpJywgb3BhY2l0eTogMCB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlZnVsIGFuaW1hdGlvbiB0byBzd2l0Y2ggZGlmZmVyZW50IGNvbnRlbnQgaW5zaWRlcyBhIGRpYWxvZyAobmF2aWdhdGluZyBiZXR3ZWVuIGNvbnRlbnRzKVxuICAgICAqIEBwYXJhbSB0aW1lXG4gICAgICogQHJldHVybnMge0FuaW1hdGlvblN0YXRlVHJhbnNpdGlvbk1ldGFkYXRhW119XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hEaWFsb2codGltZSA9IFVJQW5pbWF0aW9uLkFOSU1BVElPTl9USU1FX05PUk1BTCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgJ3RyYW5zZm9ybS1vcmlnaW4nOiAnNTAlIDAlJywgdHJhbnNmb3JtOiAnc2NhbGVZKDApJywgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKHRpbWUsIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGVZKDEpJywgb3BhY2l0eTogMSB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlZnVsIGFuaW1hdGlvbiB0byBzd2l0Y2ggZGlmZmVyZW50IGNvbnRlbnQgaW5zaWRlcyBhIGRpYWxvZyAobmF2aWdhdGluZyBiZXR3ZWVuIGNvbnRlbnRzKVxuICAgICAqIFRoaXMgaXMgYSBzcGVjaWFsIHZhcmlhbnQgd2hpY2ggZG9lcyB3b3JrIHdpdGhvdXQgbmdJZiBmaWVsZHMsIGl0IHdpbGwgcmVtb3ZlIGRpc3BsYXkgc3RhdGVzXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzd2l0Y2hEaWFsb2dCb29sZWFuKHRpbWUgPSBVSUFuaW1hdGlvbi5BTklNQVRJT05fVElNRV9OT1JNQUwpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdmYWxzZScsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICAndHJhbnNmb3JtLW9yaWdpbic6ICc1MCUgMCUnLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVkoMCknLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3RydWUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgJ3RyYW5zZm9ybS1vcmlnaW4nOiAnNTAlIDAlJywgdHJhbnNmb3JtOiAnc2NhbGVZKDEwMCUpJyB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB0cnVlJywgW3N0eWxlKHsgZGlzcGxheTogJycgfSksIGFuaW1hdGUodGltZSArICdtcyBlYXNlLWluLW91dCcpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgW2FuaW1hdGUodGltZSArICdtcyBlYXNlLWluLW91dCcpXSksXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVzZWZ1bCBhbmltYXRpb24gZm9yIHNob3dpbmcgYW55IG1vZGFsIGNhcmRzXG4gICAgICogQHBhcmFtIHRpbWVcbiAgICAgKiBAcmV0dXJucyB7QW5pbWF0aW9uU3RhdGVUcmFuc2l0aW9uTWV0YWRhdGFbXX1cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNhcmRBbmltYXRpb24odGltZSA9IFVJQW5pbWF0aW9uLkFOSU1BVElPTl9USU1FX05PUk1BTCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiAnNTAlIDAlJyxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVZKDAuNSkgdHJhbnNsYXRlWSgtMTAwJSknLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgKyAnbXMgZWFzZScsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGVZKDEpIHRyYW5zbGF0ZVkoMCknLCBvcGFjaXR5OiAxIH0pLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7ICd0cmFuc2Zvcm0tb3JpZ2luJzogJzUwJSAwJScsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSh0aW1lICsgJ21zIGVhc2UnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,21 @@
1
+ export class UIConstants {
2
+ static { this.ROUTER_PREFIX = 'components/'; }
3
+ // also declared in scss!
4
+ static { this.MOBILE_WIDTH = 700; }
5
+ static { this.MOBILE_HEIGHT = 750; }
6
+ static { this.MOBILE_HEIGHT_WITH_KEYBOARD = 550; }
7
+ static { this.MOBILE_STAGE = 100; }
8
+ static { this.MOBILE_TAB_SWITCH_WIDTH = UIConstants.MOBILE_WIDTH + UIConstants.MOBILE_STAGE * 2; }
9
+ static { this.MEDIA_QUERY_MIN_WIDTH = 'min-width'; }
10
+ static { this.MEDIA_QUERY_MAX_WIDTH = 'max-width'; }
11
+ static { this.MEDIA_QUERY_MIN_HEIGHT = 'min-height'; }
12
+ static { this.MEDIA_QUERY_MAX_HEIGHT = 'max-height'; }
13
+ static { this.QUERY_PARAM_LIST_VIEW_TYPE = 'displayType'; }
14
+ }
15
+ export var OPEN_URL_MODE;
16
+ (function (OPEN_URL_MODE) {
17
+ OPEN_URL_MODE[OPEN_URL_MODE["Current"] = 0] = "Current";
18
+ OPEN_URL_MODE[OPEN_URL_MODE["Blank"] = 1] = "Blank";
19
+ OPEN_URL_MODE[OPEN_URL_MODE["BlankSystemBrowser"] = 2] = "BlankSystemBrowser";
20
+ })(OPEN_URL_MODE || (OPEN_URL_MODE = {}));
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi91dGlsL3VpLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBVzthQUNOLGtCQUFhLEdBQUcsYUFBYSxDQUFDO0lBQzVDLHlCQUF5QjthQUNYLGlCQUFZLEdBQUcsR0FBRyxDQUFDO2FBQ25CLGtCQUFhLEdBQUcsR0FBRyxDQUFDO2FBQ3BCLGdDQUEyQixHQUFHLEdBQUcsQ0FBQzthQUNsQyxpQkFBWSxHQUFHLEdBQUcsQ0FBQzthQUNuQiw0QkFBdUIsR0FBRyxXQUFXLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO2FBQ2xGLDBCQUFxQixHQUFHLFdBQVcsQ0FBQzthQUNwQywwQkFBcUIsR0FBRyxXQUFXLENBQUM7YUFDcEMsMkJBQXNCLEdBQUcsWUFBWSxDQUFDO2FBQ3RDLDJCQUFzQixHQUFHLFlBQVksQ0FBQzthQUV0QywrQkFBMEIsR0FBRyxhQUFhLENBQUM7O0FBRTdELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsdURBQU8sQ0FBQTtJQUNQLG1EQUFLLENBQUE7SUFDTCw2RUFBa0IsQ0FBQTtBQUN0QixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVUlDb25zdGFudHMge1xuICAgIHB1YmxpYyBzdGF0aWMgUk9VVEVSX1BSRUZJWCA9ICdjb21wb25lbnRzLyc7XG4gICAgLy8gYWxzbyBkZWNsYXJlZCBpbiBzY3NzIVxuICAgIHB1YmxpYyBzdGF0aWMgTU9CSUxFX1dJRFRIID0gNzAwO1xuICAgIHB1YmxpYyBzdGF0aWMgTU9CSUxFX0hFSUdIVCA9IDc1MDtcbiAgICBwdWJsaWMgc3RhdGljIE1PQklMRV9IRUlHSFRfV0lUSF9LRVlCT0FSRCA9IDU1MDtcbiAgICBwdWJsaWMgc3RhdGljIE1PQklMRV9TVEFHRSA9IDEwMDtcbiAgICBwdWJsaWMgc3RhdGljIE1PQklMRV9UQUJfU1dJVENIX1dJRFRIID0gVUlDb25zdGFudHMuTU9CSUxFX1dJRFRIICsgVUlDb25zdGFudHMuTU9CSUxFX1NUQUdFICogMjtcbiAgICBwdWJsaWMgc3RhdGljIE1FRElBX1FVRVJZX01JTl9XSURUSCA9ICdtaW4td2lkdGgnO1xuICAgIHB1YmxpYyBzdGF0aWMgTUVESUFfUVVFUllfTUFYX1dJRFRIID0gJ21heC13aWR0aCc7XG4gICAgcHVibGljIHN0YXRpYyBNRURJQV9RVUVSWV9NSU5fSEVJR0hUID0gJ21pbi1oZWlnaHQnO1xuICAgIHB1YmxpYyBzdGF0aWMgTUVESUFfUVVFUllfTUFYX0hFSUdIVCA9ICdtYXgtaGVpZ2h0JztcblxuICAgIHB1YmxpYyBzdGF0aWMgUVVFUllfUEFSQU1fTElTVF9WSUVXX1RZUEUgPSAnZGlzcGxheVR5cGUnO1xufVxuZXhwb3J0IGVudW0gT1BFTl9VUkxfTU9ERSB7XG4gICAgQ3VycmVudCwgLy8gQ3VycmVudCBXaW5kb3csIG9yIEluIEFwcCBicm93c2VyIG9uIGNvcmRvdmFcbiAgICBCbGFuaywgLy8gTmV3IFdpbmRvdywgb3IgSW4gQXBwIGJyb3dzZXIgb24gY29yZG92YVxuICAgIEJsYW5rU3lzdGVtQnJvd3NlciwgLy8gTmV3IFdpbmRvdywgb3Igc3lzdGVtIGJyb3dzZXIgb24gY29yZG92YVxufVxuIl19