@wizishop/img-manager 0.2.109 → 14.0.9

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 (302) hide show
  1. package/assets/i18n/en.json +1 -1
  2. package/assets/i18n/fr.json +1 -1
  3. package/esm2020/lib/animations/easeInOut/ease-in-out.animation.mjs +12 -0
  4. package/esm2020/lib/animations/insertRemove/insert-remove.animation.mjs +9 -0
  5. package/esm2020/lib/animations/listAnnimation/list.animation.mjs +16 -0
  6. package/esm2020/lib/components/canva-btn/canva-btn.component.mjs +67 -0
  7. package/esm2020/lib/components/images-view/images-actions-handler.mjs +151 -0
  8. package/esm2020/lib/components/images-view/images-view.component.mjs +474 -0
  9. package/esm2020/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +66 -0
  10. package/esm2020/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +68 -0
  11. package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +48 -0
  12. package/esm2020/lib/components/img-editor/cropper/cropper.component.mjs +307 -0
  13. package/esm2020/lib/components/img-editor/img-editor.component.mjs +109 -0
  14. package/esm2020/lib/components/img-editor/info-section/info-section.component.mjs +54 -0
  15. package/esm2020/lib/components/img-selection/img-selection.component.mjs +59 -0
  16. package/esm2020/lib/components/img-tabs/img-tabs.component.mjs +122 -0
  17. package/esm2020/lib/components/img-upload/img-upload.component.mjs +118 -0
  18. package/esm2020/lib/components/loader/loader.component.mjs +21 -0
  19. package/esm2020/lib/components/pexels-lib/pexels-lib.component.mjs +200 -0
  20. package/esm2020/lib/components/shared/alert/alert.component.mjs +27 -0
  21. package/esm2020/lib/components/shared/checkbox/checkbox.component.mjs +52 -0
  22. package/esm2020/lib/components/shared/dropdown/dropdown.component.mjs +21 -0
  23. package/esm2020/lib/components/shared/input-search/input-search.component.mjs +54 -0
  24. package/esm2020/lib/components/shared/pagination/page-selector/page-selector.component.mjs +49 -0
  25. package/esm2020/lib/components/shared/pagination/pagination.component.mjs +49 -0
  26. package/esm2020/lib/components/shared/select/call-to-action.model.mjs +2 -0
  27. package/esm2020/lib/components/shared/select/select-items.dto.mjs +2 -0
  28. package/esm2020/lib/components/shared/select/select.component.mjs +110 -0
  29. package/esm2020/lib/components/shared/table/table.component.mjs +116 -0
  30. package/esm2020/lib/components/upload-list/upload-list.component.mjs +79 -0
  31. package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +37 -0
  32. package/esm2020/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +24 -0
  33. package/esm2020/lib/directives/auto-hide.directive.mjs +48 -0
  34. package/esm2020/lib/directives/copy-to-clipboard.directive.mjs +37 -0
  35. package/esm2020/lib/directives/drag-drop.directive.mjs +57 -0
  36. package/esm2020/lib/directives/loading.directive.mjs +42 -0
  37. package/esm2020/lib/directives/table/checkBoxRow.directive.mjs +114 -0
  38. package/esm2020/lib/directives/table/column.directive.mjs +45 -0
  39. package/esm2020/lib/directives/table/columnHeader.directive.mjs +204 -0
  40. package/esm2020/lib/directives/table/raw.directive.mjs +31 -0
  41. package/esm2020/lib/directives/zindex-toggle.directive.mjs +42 -0
  42. package/esm2020/lib/dto/ImgManagerDisplayConfig.dto.mjs +2 -0
  43. package/esm2020/lib/dto/canva-create-design.dto.mjs +4 -0
  44. package/esm2020/lib/dto/canva.dto.mjs +4 -0
  45. package/esm2020/lib/dto/config/apis/api.dto.mjs +9 -0
  46. package/esm2020/lib/dto/config/external/external-config.dto.mjs +3 -0
  47. package/esm2020/lib/dto/config/image-cdn/image-cdn-config.dto.mjs +10 -0
  48. package/esm2020/lib/dto/export-dtos.api.mjs +11 -0
  49. package/esm2020/lib/dto/img-editor-config.dto.mjs +2 -0
  50. package/esm2020/lib/dto/img-manager.dto.mjs +2 -0
  51. package/esm2020/lib/dto/pexels-img.dto.mjs +2 -0
  52. package/esm2020/lib/dto/picture-name-update.dto.mjs +2 -0
  53. package/esm2020/lib/dto/stateDisplayed.dto.mjs +2 -0
  54. package/esm2020/lib/dto/tabDisplayed.dto.mjs +2 -0
  55. package/esm2020/lib/dto/wizi-block-media.dto.mjs +3 -0
  56. package/esm2020/lib/pipes/images/img-src.pipe.mjs +28 -0
  57. package/esm2020/lib/pipes/number-to-array.pipe.mjs +16 -0
  58. package/esm2020/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +28 -0
  59. package/esm2020/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +53 -0
  60. package/esm2020/lib/pipes/pagination/text/custom-text.pipe.mjs +35 -0
  61. package/esm2020/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +25 -0
  62. package/esm2020/lib/pipes/select/select-filters.pipe.mjs +19 -0
  63. package/esm2020/lib/services/alert.service.mjs +53 -0
  64. package/esm2020/lib/services/canva.service.mjs +159 -0
  65. package/esm2020/lib/services/config/external-config.service.mjs +49 -0
  66. package/esm2020/lib/services/config/img-cdn.service.mjs +28 -0
  67. package/esm2020/lib/services/dom.service.mjs +36 -0
  68. package/{esm2015/lib/services/img-event.service.js → esm2020/lib/services/img-event.service.mjs} +11 -12
  69. package/esm2020/lib/services/img-manager.service.mjs +138 -0
  70. package/{esm2015/lib/services/img-selection.service.js → esm2020/lib/services/img-selection.service.mjs} +11 -12
  71. package/esm2020/lib/services/pexels.service.mjs +62 -0
  72. package/esm2020/lib/services/rename-picture.service.mjs +68 -0
  73. package/esm2020/lib/services/table/filters-table.service.mjs +63 -0
  74. package/{esm2015/lib/services/user-settings.service.js → esm2020/lib/services/user-settings.service.mjs} +11 -12
  75. package/esm2020/lib/wz-img-manager.component.mjs +186 -0
  76. package/esm2020/lib/wz-img-manager.module.mjs +193 -0
  77. package/esm2020/public-api.mjs +11 -0
  78. package/esm2020/wizishop-img-manager.mjs +5 -0
  79. package/fesm2015/wizishop-img-manager.mjs +4134 -0
  80. package/fesm2015/wizishop-img-manager.mjs.map +1 -0
  81. package/fesm2020/wizishop-img-manager.mjs +4140 -0
  82. package/fesm2020/wizishop-img-manager.mjs.map +1 -0
  83. package/index.d.ts +5 -0
  84. package/lib/components/canva-btn/canva-btn.component.d.ts +9 -6
  85. package/lib/components/images-view/images-actions-handler.d.ts +3 -0
  86. package/lib/components/images-view/images-view.component.d.ts +3 -0
  87. package/lib/components/images-view/mosaic-view/img-card/img-card.component.d.ts +3 -0
  88. package/lib/components/images-view/mosaic-view/mosaic-view.component.d.ts +3 -0
  89. package/lib/components/images-view/table-view/table-view.component.d.ts +3 -0
  90. package/lib/components/img-editor/cropper/cropper.component.d.ts +6 -3
  91. package/lib/components/img-editor/img-editor.component.d.ts +3 -0
  92. package/lib/components/img-editor/info-section/info-section.component.d.ts +3 -0
  93. package/lib/components/img-selection/img-selection.component.d.ts +3 -0
  94. package/lib/components/img-tabs/img-tabs.component.d.ts +3 -0
  95. package/lib/components/img-upload/img-upload.component.d.ts +4 -1
  96. package/lib/components/loader/loader.component.d.ts +3 -0
  97. package/lib/components/pexels-lib/pexels-lib.component.d.ts +3 -0
  98. package/lib/components/shared/alert/alert.component.d.ts +3 -0
  99. package/lib/components/shared/checkbox/checkbox.component.d.ts +3 -0
  100. package/lib/components/shared/dropdown/dropdown.component.d.ts +3 -0
  101. package/lib/components/shared/input-search/input-search.component.d.ts +3 -0
  102. package/lib/components/shared/pagination/page-selector/page-selector.component.d.ts +3 -0
  103. package/lib/components/shared/pagination/pagination.component.d.ts +3 -0
  104. package/lib/components/shared/select/select.component.d.ts +3 -0
  105. package/lib/components/shared/table/table.component.d.ts +3 -0
  106. package/lib/components/upload-list/upload-list.component.d.ts +3 -0
  107. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +3 -0
  108. package/lib/directives/abstract-debounce/debounce-keyup.directive.d.ts +3 -0
  109. package/lib/directives/auto-hide.directive.d.ts +3 -0
  110. package/lib/directives/copy-to-clipboard.directive.d.ts +3 -0
  111. package/lib/directives/drag-drop.directive.d.ts +3 -0
  112. package/lib/directives/loading.directive.d.ts +3 -0
  113. package/lib/directives/table/checkBoxRow.directive.d.ts +3 -0
  114. package/lib/directives/table/column.directive.d.ts +3 -0
  115. package/lib/directives/table/columnHeader.directive.d.ts +3 -0
  116. package/lib/directives/table/raw.directive.d.ts +3 -0
  117. package/lib/directives/zindex-toggle.directive.d.ts +3 -0
  118. package/lib/dto/pexels-img.dto.d.ts +1 -0
  119. package/lib/pipes/images/img-src.pipe.d.ts +3 -0
  120. package/lib/pipes/number-to-array.pipe.d.ts +3 -0
  121. package/lib/pipes/pagination/array-total-pages/array-pages.pipe.d.ts +3 -0
  122. package/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.d.ts +7 -1
  123. package/lib/pipes/pagination/text/custom-text.pipe.d.ts +3 -0
  124. package/lib/pipes/pagination/total-pages/is-last-page.pipe.d.ts +3 -0
  125. package/lib/pipes/select/select-filters.pipe.d.ts +3 -0
  126. package/lib/services/alert.service.d.ts +3 -0
  127. package/lib/services/canva.service.d.ts +3 -0
  128. package/lib/services/config/external-config.service.d.ts +3 -0
  129. package/lib/services/config/img-cdn.service.d.ts +3 -0
  130. package/lib/services/dom.service.d.ts +3 -0
  131. package/lib/services/img-event.service.d.ts +3 -0
  132. package/lib/services/img-manager.service.d.ts +5 -2
  133. package/lib/services/img-selection.service.d.ts +3 -0
  134. package/lib/services/pexels.service.d.ts +7 -4
  135. package/lib/services/rename-picture.service.d.ts +3 -0
  136. package/lib/services/table/filters-table.service.d.ts +3 -0
  137. package/lib/services/user-settings.service.d.ts +3 -0
  138. package/lib/wz-img-manager.component.d.ts +3 -0
  139. package/lib/wz-img-manager.module.d.ts +56 -0
  140. package/package.json +47 -29
  141. package/wizishop-img-manager-14.0.9.tgz +0 -0
  142. package/wz-img-manager.scss +4 -404
  143. package/bundles/wizishop-img-manager.umd.js +0 -5077
  144. package/bundles/wizishop-img-manager.umd.js.map +0 -1
  145. package/bundles/wizishop-img-manager.umd.min.js +0 -16
  146. package/bundles/wizishop-img-manager.umd.min.js.map +0 -1
  147. package/esm2015/lib/animations/easeInOut/ease-in-out.animation.js +0 -12
  148. package/esm2015/lib/animations/insertRemove/insert-remove.animation.js +0 -9
  149. package/esm2015/lib/animations/listAnnimation/list.animation.js +0 -16
  150. package/esm2015/lib/components/canva-btn/canva-btn.component.js +0 -70
  151. package/esm2015/lib/components/images-view/images-actions-handler.js +0 -180
  152. package/esm2015/lib/components/images-view/images-view.component.js +0 -492
  153. package/esm2015/lib/components/images-view/mosaic-view/img-card/img-card.component.js +0 -84
  154. package/esm2015/lib/components/images-view/mosaic-view/mosaic-view.component.js +0 -79
  155. package/esm2015/lib/components/images-view/table-view/table-view.component.js +0 -49
  156. package/esm2015/lib/components/img-editor/cropper/cropper.component.js +0 -300
  157. package/esm2015/lib/components/img-editor/img-editor.component.js +0 -112
  158. package/esm2015/lib/components/img-editor/info-section/info-section.component.js +0 -59
  159. package/esm2015/lib/components/img-selection/img-selection.component.js +0 -62
  160. package/esm2015/lib/components/img-tabs/img-tabs.component.js +0 -131
  161. package/esm2015/lib/components/img-upload/img-upload.component.js +0 -125
  162. package/esm2015/lib/components/loader/loader.component.js +0 -28
  163. package/esm2015/lib/components/pexels-lib/pexels-lib.component.js +0 -208
  164. package/esm2015/lib/components/shared/alert/alert.component.js +0 -37
  165. package/esm2015/lib/components/shared/checkbox/checkbox.component.js +0 -69
  166. package/esm2015/lib/components/shared/dropdown/dropdown.component.js +0 -26
  167. package/esm2015/lib/components/shared/input-search/input-search.component.js +0 -62
  168. package/esm2015/lib/components/shared/pagination/page-selector/page-selector.component.js +0 -55
  169. package/esm2015/lib/components/shared/pagination/pagination.component.js +0 -51
  170. package/esm2015/lib/components/shared/select/call-to-action.model.js +0 -1
  171. package/esm2015/lib/components/shared/select/select-items.dto.js +0 -1
  172. package/esm2015/lib/components/shared/select/select.component.js +0 -133
  173. package/esm2015/lib/components/shared/table/table.component.js +0 -133
  174. package/esm2015/lib/components/upload-list/upload-list.component.js +0 -87
  175. package/esm2015/lib/directives/abstract-debounce/abstract-debounce.directive.js +0 -40
  176. package/esm2015/lib/directives/abstract-debounce/debounce-keyup.directive.js +0 -26
  177. package/esm2015/lib/directives/auto-hide.directive.js +0 -55
  178. package/esm2015/lib/directives/copy-to-clipboard.directive.js +0 -40
  179. package/esm2015/lib/directives/drag-drop.directive.js +0 -68
  180. package/esm2015/lib/directives/loading.directive.js +0 -44
  181. package/esm2015/lib/directives/table/checkBoxRow.directive.js +0 -128
  182. package/esm2015/lib/directives/table/column.directive.js +0 -49
  183. package/esm2015/lib/directives/table/columnHeader.directive.js +0 -221
  184. package/esm2015/lib/directives/table/raw.directive.js +0 -33
  185. package/esm2015/lib/directives/zindex-toggle.directive.js +0 -49
  186. package/esm2015/lib/dto/ImgManagerDisplayConfig.dto.js +0 -1
  187. package/esm2015/lib/dto/canva-create-design.dto.js +0 -4
  188. package/esm2015/lib/dto/canva.dto.js +0 -4
  189. package/esm2015/lib/dto/config/apis/api.dto.js +0 -9
  190. package/esm2015/lib/dto/config/external/external-config.dto.js +0 -3
  191. package/esm2015/lib/dto/config/image-cdn/image-cdn-config.dto.js +0 -10
  192. package/esm2015/lib/dto/export-dtos.api.js +0 -5
  193. package/esm2015/lib/dto/img-editor-config.dto.js +0 -1
  194. package/esm2015/lib/dto/img-manager.dto.js +0 -1
  195. package/esm2015/lib/dto/pexels-img.dto.js +0 -1
  196. package/esm2015/lib/dto/picture-name-update.dto.js +0 -1
  197. package/esm2015/lib/dto/stateDisplayed.dto.js +0 -1
  198. package/esm2015/lib/dto/tabDisplayed.dto.js +0 -1
  199. package/esm2015/lib/dto/wizi-block-media.dto.js +0 -3
  200. package/esm2015/lib/pipes/images/img-src.pipe.js +0 -29
  201. package/esm2015/lib/pipes/number-to-array.pipe.js +0 -14
  202. package/esm2015/lib/pipes/pagination/array-total-pages/array-pages.pipe.js +0 -26
  203. package/esm2015/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.js +0 -51
  204. package/esm2015/lib/pipes/pagination/text/custom-text.pipe.js +0 -36
  205. package/esm2015/lib/pipes/pagination/total-pages/is-last-page.pipe.js +0 -23
  206. package/esm2015/lib/pipes/select/select-filters.pipe.js +0 -17
  207. package/esm2015/lib/services/alert.service.js +0 -59
  208. package/esm2015/lib/services/canva.service.js +0 -171
  209. package/esm2015/lib/services/config/external-config.service.js +0 -55
  210. package/esm2015/lib/services/config/img-cdn.service.js +0 -29
  211. package/esm2015/lib/services/dom.service.js +0 -36
  212. package/esm2015/lib/services/img-manager.service.js +0 -142
  213. package/esm2015/lib/services/pexels.service.js +0 -70
  214. package/esm2015/lib/services/rename-picture.service.js +0 -74
  215. package/esm2015/lib/services/table/filters-table.service.js +0 -67
  216. package/esm2015/lib/wz-img-manager.component.js +0 -212
  217. package/esm2015/lib/wz-img-manager.module.js +0 -132
  218. package/esm2015/public-api.js +0 -11
  219. package/esm2015/wizishop-img-manager.js +0 -57
  220. package/esm5/lib/animations/easeInOut/ease-in-out.animation.js +0 -12
  221. package/esm5/lib/animations/insertRemove/insert-remove.animation.js +0 -9
  222. package/esm5/lib/animations/listAnnimation/list.animation.js +0 -16
  223. package/esm5/lib/components/canva-btn/canva-btn.component.js +0 -72
  224. package/esm5/lib/components/images-view/images-actions-handler.js +0 -183
  225. package/esm5/lib/components/images-view/images-view.component.js +0 -535
  226. package/esm5/lib/components/images-view/mosaic-view/img-card/img-card.component.js +0 -87
  227. package/esm5/lib/components/images-view/mosaic-view/mosaic-view.component.js +0 -82
  228. package/esm5/lib/components/images-view/table-view/table-view.component.js +0 -52
  229. package/esm5/lib/components/img-editor/cropper/cropper.component.js +0 -312
  230. package/esm5/lib/components/img-editor/img-editor.component.js +0 -115
  231. package/esm5/lib/components/img-editor/info-section/info-section.component.js +0 -64
  232. package/esm5/lib/components/img-selection/img-selection.component.js +0 -64
  233. package/esm5/lib/components/img-tabs/img-tabs.component.js +0 -133
  234. package/esm5/lib/components/img-upload/img-upload.component.js +0 -138
  235. package/esm5/lib/components/loader/loader.component.js +0 -29
  236. package/esm5/lib/components/pexels-lib/pexels-lib.component.js +0 -216
  237. package/esm5/lib/components/shared/alert/alert.component.js +0 -38
  238. package/esm5/lib/components/shared/checkbox/checkbox.component.js +0 -71
  239. package/esm5/lib/components/shared/dropdown/dropdown.component.js +0 -27
  240. package/esm5/lib/components/shared/input-search/input-search.component.js +0 -68
  241. package/esm5/lib/components/shared/pagination/page-selector/page-selector.component.js +0 -64
  242. package/esm5/lib/components/shared/pagination/pagination.component.js +0 -56
  243. package/esm5/lib/components/shared/select/call-to-action.model.js +0 -1
  244. package/esm5/lib/components/shared/select/select-items.dto.js +0 -1
  245. package/esm5/lib/components/shared/select/select.component.js +0 -136
  246. package/esm5/lib/components/shared/table/table.component.js +0 -135
  247. package/esm5/lib/components/upload-list/upload-list.component.js +0 -103
  248. package/esm5/lib/directives/abstract-debounce/abstract-debounce.directive.js +0 -42
  249. package/esm5/lib/directives/abstract-debounce/debounce-keyup.directive.js +0 -28
  250. package/esm5/lib/directives/auto-hide.directive.js +0 -57
  251. package/esm5/lib/directives/copy-to-clipboard.directive.js +0 -42
  252. package/esm5/lib/directives/drag-drop.directive.js +0 -69
  253. package/esm5/lib/directives/loading.directive.js +0 -46
  254. package/esm5/lib/directives/table/checkBoxRow.directive.js +0 -137
  255. package/esm5/lib/directives/table/column.directive.js +0 -50
  256. package/esm5/lib/directives/table/columnHeader.directive.js +0 -229
  257. package/esm5/lib/directives/table/raw.directive.js +0 -34
  258. package/esm5/lib/directives/zindex-toggle.directive.js +0 -54
  259. package/esm5/lib/dto/ImgManagerDisplayConfig.dto.js +0 -1
  260. package/esm5/lib/dto/canva-create-design.dto.js +0 -8
  261. package/esm5/lib/dto/canva.dto.js +0 -8
  262. package/esm5/lib/dto/config/apis/api.dto.js +0 -11
  263. package/esm5/lib/dto/config/external/external-config.dto.js +0 -7
  264. package/esm5/lib/dto/config/image-cdn/image-cdn-config.dto.js +0 -12
  265. package/esm5/lib/dto/export-dtos.api.js +0 -5
  266. package/esm5/lib/dto/img-editor-config.dto.js +0 -1
  267. package/esm5/lib/dto/img-manager.dto.js +0 -1
  268. package/esm5/lib/dto/pexels-img.dto.js +0 -1
  269. package/esm5/lib/dto/picture-name-update.dto.js +0 -1
  270. package/esm5/lib/dto/stateDisplayed.dto.js +0 -1
  271. package/esm5/lib/dto/tabDisplayed.dto.js +0 -1
  272. package/esm5/lib/dto/wizi-block-media.dto.js +0 -7
  273. package/esm5/lib/pipes/images/img-src.pipe.js +0 -30
  274. package/esm5/lib/pipes/number-to-array.pipe.js +0 -17
  275. package/esm5/lib/pipes/pagination/array-total-pages/array-pages.pipe.js +0 -29
  276. package/esm5/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.js +0 -54
  277. package/esm5/lib/pipes/pagination/text/custom-text.pipe.js +0 -37
  278. package/esm5/lib/pipes/pagination/total-pages/is-last-page.pipe.js +0 -26
  279. package/esm5/lib/pipes/select/select-filters.pipe.js +0 -20
  280. package/esm5/lib/services/alert.service.js +0 -62
  281. package/esm5/lib/services/canva.service.js +0 -181
  282. package/esm5/lib/services/config/external-config.service.js +0 -56
  283. package/esm5/lib/services/config/img-cdn.service.js +0 -34
  284. package/esm5/lib/services/dom.service.js +0 -39
  285. package/esm5/lib/services/img-event.service.js +0 -46
  286. package/esm5/lib/services/img-manager.service.js +0 -143
  287. package/esm5/lib/services/img-selection.service.js +0 -143
  288. package/esm5/lib/services/pexels.service.js +0 -72
  289. package/esm5/lib/services/rename-picture.service.js +0 -88
  290. package/esm5/lib/services/table/filters-table.service.js +0 -68
  291. package/esm5/lib/services/user-settings.service.js +0 -30
  292. package/esm5/lib/wz-img-manager.component.js +0 -228
  293. package/esm5/lib/wz-img-manager.module.js +0 -131
  294. package/esm5/public-api.js +0 -11
  295. package/esm5/wizishop-img-manager.js +0 -57
  296. package/fesm2015/wizishop-img-manager.js +0 -4533
  297. package/fesm2015/wizishop-img-manager.js.map +0 -1
  298. package/fesm5/wizishop-img-manager.js +0 -4814
  299. package/fesm5/wizishop-img-manager.js.map +0 -1
  300. package/wizishop-img-manager-0.2.109.tgz +0 -0
  301. package/wizishop-img-manager.d.ts +0 -56
  302. package/wizishop-img-manager.metadata.json +0 -1
@@ -1,84 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, Input, Output, EventEmitter } from '@angular/core';
3
- import { ImgEventService } from '../../../../services/img-event.service';
4
- import { HttpClient } from '@angular/common/http';
5
- import { ImgManagerService } from '../../../../services/img-manager.service';
6
- import { ImgSelectionService } from '../../../../services/img-selection.service';
7
- import { ImgCDNService } from '../../../../services/config/img-cdn.service';
8
- import { ImgManagerConfigService } from '../../../../services/config/external-config.service';
9
- import { TranslateService } from '@ngx-translate/core';
10
- import { ImagesActionHandler } from '../../images-actions-handler';
11
- import { easeInOut } from '../../../../animations/easeInOut/ease-in-out.animation';
12
- import { AlertService } from '../../../../services/alert.service';
13
- let ImgCardComponent = class ImgCardComponent extends ImagesActionHandler {
14
- constructor(imgManager, imgSelectionService, http, imgCDNService, imgEventCardService, alertService, translateService, externalService) {
15
- super(imgManager, imgSelectionService, http, imgCDNService, imgEventCardService, alertService, translateService, externalService);
16
- this.focusInput = false;
17
- this.toggleImgSelected = new EventEmitter();
18
- this.switchDisplayWindow = new EventEmitter();
19
- this.isUploadSection = false;
20
- this.activeConfirmDelete = false;
21
- }
22
- ngOnInit() {
23
- this.isUploadSection = this.tabDisplayed === 'img-upload';
24
- }
25
- displayLargeWindow() {
26
- this.switchDisplayWindow.emit(true);
27
- }
28
- onToggleImgSelected() {
29
- this.toggleImgSelected.next();
30
- }
31
- };
32
- ImgCardComponent.ctorParameters = () => [
33
- { type: ImgManagerService },
34
- { type: ImgSelectionService },
35
- { type: HttpClient },
36
- { type: ImgCDNService },
37
- { type: ImgEventService },
38
- { type: AlertService },
39
- { type: TranslateService },
40
- { type: ImgManagerConfigService }
41
- ];
42
- __decorate([
43
- Input(),
44
- __metadata("design:type", String)
45
- ], ImgCardComponent.prototype, "tabDisplayed", void 0);
46
- __decorate([
47
- Input(),
48
- __metadata("design:type", Boolean)
49
- ], ImgCardComponent.prototype, "fullSize", void 0);
50
- __decorate([
51
- Input(),
52
- __metadata("design:type", Object)
53
- ], ImgCardComponent.prototype, "picture", void 0);
54
- __decorate([
55
- Input(),
56
- __metadata("design:type", Number)
57
- ], ImgCardComponent.prototype, "index", void 0);
58
- __decorate([
59
- Output(),
60
- __metadata("design:type", EventEmitter)
61
- ], ImgCardComponent.prototype, "toggleImgSelected", void 0);
62
- __decorate([
63
- Output(),
64
- __metadata("design:type", EventEmitter)
65
- ], ImgCardComponent.prototype, "switchDisplayWindow", void 0);
66
- ImgCardComponent = __decorate([
67
- Component({
68
- selector: 'img-card',
69
- template: "<div class=\"addCssPriority\" [@easeInOut]=\"'in'\" [ngClass]=\"{ 'fullSize': fullSize }\">\n <div class=\"img-card\">\n <div class=\"img-card__container\"\n [ngClass]=\"{\n 'smallDisplay': stateDisplayed === 'small' || isUploadSection,\n 'imgSelected': picture.selected,\n 'deletion': picture.deleted}\">\n <img\n class=\"img-card__container__img\"\n [src]=\"picture.file_name | imgSrc : '400'\"\n [alt]=\"picture.display_name\"\n (click)=\"onToggleImgSelected()\"\n (error)=\"picture.imgNotLoaded=true;onPictureNotLoading($event);\"\n />\n <div\n class=\"img-card__container__config\"\n *ngIf=\"!picture.deleted && stateDisplayed !== 'small'\"\n >\n <button class=\"size\"><i class=\"fal fa-image-polaroid\"></i><span>{{picture.raw_height}}x{{picture.raw_width}}</span></button>\n <button class=\"dl\" (click)=\"onDownloadImg(picture.display_name, picture.file_name)\"><i class=\"fal fa-download\"></i><span>{{ 'ImgManager.ImgCard.download' | translate }}</span></button>\n <button class=\"edit\" (click)=\"onEdit(picture)\"><i class=\"far fa-crop-alt\"></i><span>{{ 'ImgManager.ImgCard.edit' | translate }}</span></button>\n <button class=\"deleted\" (click)=\"activeConfirmDelete = true;\"><i class=\"fal fa-times\"></i><span>{{ 'ImgManager.ImgCard.del' | translate }}</span></button>\n <button class=\"selected\" (click)=\"onToggleImgSelected()\" *ngIf=\"stateDisplayed !== 'window'\">\n <i *ngIf=\"!picture.selected\" class=\"fal fa-square\"></i>\n <i *ngIf=\"picture.selected\" class=\"fas fa-check-square checked\"></i>\n <span>{{ 'ImgManager.ImgCard.select' | translate }}</span>\n </button>\n </div>\n <div\n class=\"img-card__container__config img-card__container__config--small\"\n *ngIf=\"!picture.deleted && stateDisplayed === 'small'\"\n >\n <button class=\"show-edit\" (click)=\"displayLargeWindow()\"><i class=\"fas fa-edit\"></i></button>\n </div>\n <div class=\"img-card__container__delete\" [ngClass]=\"{ 'show' : activeConfirmDelete}\">\n <span>{{ 'ImgManager.ImgCard.confirmDeleteImg' | translate }}</span>\n <div>\n <button (click)=\"activeConfirmDelete = false;\">{{ 'no' | translate }}</button>\n <button (click)=\"onRemoveImg(picture);activeConfirmDelete = false;\">{{ 'yes' | translate }}</button>\n </div>\n </div>\n <div class=\"img-card__container__valid\" *ngIf=\"stateDisplayed === 'small' && tabDisplayed == 'img-upload'\">\n <i class=\"far fa-check\"></i>\n <span>{{ 'ImgManager.ImgCard.validImgSmall' | translate }}</span>\n </div>\n <div\n *ngIf=\"picture.imgNotLoaded\"\n class=\"img-card__container__overlay\"\n [ngClass]=\"{'img-card__container__overlay--smallDisplay': stateDisplayed === 'small' || isUploadSection}\">\n <i (click)=\"onToggleImgSelected()\" class=\"fad fa-folder-times\"></i>\n </div>\n <span btnLoadingAnim class=\"btnLoadingAnnimation\" *ngIf=\"picture.deleted\"></span>\n\n </div>\n <div\n class=\"img-card__nameContainer\"\n [ngClass]=\"{'smallNameDisplay': stateDisplayed === 'small' || isUploadSection, 'focus': focusInput}\">\n <input\n type=\"text\"\n class=\"wzImgMngInput img-card__nameContainer__name\"\n [(ngModel)]=\"picture.display_name\"\n (ngModelChange)=\"onNameChange(picture.id_file)\"\n (focus)=\"previousName=picture.display_name;focusInput = true;\"\n (blur)=\"focusInput = false;\"\n >\n <span>{{picture.display_name}}</span>\n </div>\n\n </div>\n</div>\n",
70
- animations: [
71
- easeInOut
72
- ]
73
- }),
74
- __metadata("design:paramtypes", [ImgManagerService,
75
- ImgSelectionService,
76
- HttpClient,
77
- ImgCDNService,
78
- ImgEventService,
79
- AlertService,
80
- TranslateService,
81
- ImgManagerConfigService])
82
- ], ImgCardComponent);
83
- export { ImgCardComponent };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvbW9zYWljLXZpZXcvaW1nLWNhcmQvaW1nLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3REFBd0QsQ0FBQTtBQUVsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFTbEUsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBaUIsU0FBUSxtQkFBbUI7SUFxQnZELFlBQ0UsVUFBNkIsRUFDN0IsbUJBQXdDLEVBQ3hDLElBQWdCLEVBQ2hCLGFBQTRCLEVBQzVCLG1CQUFvQyxFQUNwQyxZQUEwQixFQUMxQixnQkFBa0MsRUFDbEMsZUFBd0M7UUFFeEMsS0FBSyxDQUNILFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsSUFBSSxFQUNKLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixlQUFlLENBQ2hCLENBQUM7UUE5QkosZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixzQkFBaUIsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczRCx3QkFBbUIsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRSxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7SUFzQjVCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQztJQUM1RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGLENBQUE7O1lBaENlLGlCQUFpQjtZQUNSLG1CQUFtQjtZQUNsQyxVQUFVO1lBQ0QsYUFBYTtZQUNQLGVBQWU7WUFDdEIsWUFBWTtZQUNSLGdCQUFnQjtZQUNqQix1QkFBdUI7O0FBMUIxQztJQURDLEtBQUssRUFBRTs7c0RBQ21CO0FBRTNCO0lBREMsS0FBSyxFQUFFOztrREFDVTtBQUVsQjtJQURDLEtBQUssRUFBRTs7aURBQ2U7QUFFdkI7SUFEQyxLQUFLLEVBQUU7OytDQUNNO0FBSWQ7SUFEQyxNQUFNLEVBQUU7OEJBQ1UsWUFBWTsyREFBNEI7QUFHM0Q7SUFEQyxNQUFNLEVBQUU7OEJBQ1ksWUFBWTs2REFBK0I7QUFoQnJELGdCQUFnQjtJQVA1QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsVUFBVTtRQUNwQiw0NUhBQXdDO1FBQ3hDLFVBQVUsRUFBRTtZQUNWLFNBQVM7U0FDVjtLQUNGLENBQUM7cUNBdUJjLGlCQUFpQjtRQUNSLG1CQUFtQjtRQUNsQyxVQUFVO1FBQ0QsYUFBYTtRQUNQLGVBQWU7UUFDdEIsWUFBWTtRQUNSLGdCQUFnQjtRQUNqQix1QkFBdUI7R0E3Qi9CLGdCQUFnQixDQXNENUI7U0F0RFksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJy4uLy4uLy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ0NETlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9jb25maWcvaW1nLWNkbi5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ01hbmFnZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvY29uZmlnL2V4dGVybmFsLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEltYWdlc0FjdGlvbkhhbmRsZXIgfSBmcm9tICcuLi8uLi9pbWFnZXMtYWN0aW9ucy1oYW5kbGVyJztcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbidcbmltcG9ydCB7IHRhYkRpc3BsYXllZCB9IGZyb20gJy4uLy4uLy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltZy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltZy1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIGVhc2VJbk91dFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltZ0NhcmRDb21wb25lbnQgZXh0ZW5kcyBJbWFnZXNBY3Rpb25IYW5kbGVyIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICB0YWJEaXNwbGF5ZWQ6IHRhYkRpc3BsYXllZDtcbiAgQElucHV0KClcbiAgZnVsbFNpemU6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHBpY3R1cmU6IEltZ1BpY3R1cmVEVE87XG4gIEBJbnB1dCgpXG4gIGluZGV4OiBudW1iZXI7XG4gIGZvY3VzSW5wdXQgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgdG9nZ2xlSW1nU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgc3dpdGNoRGlzcGxheVdpbmRvdzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGlzVXBsb2FkU2VjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBhY3RpdmVDb25maXJtRGVsZXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaW1nTWFuYWdlcjogSW1nTWFuYWdlclNlcnZpY2UsXG4gICAgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGltZ0NETlNlcnZpY2U6IEltZ0NETlNlcnZpY2UsXG4gICAgaW1nRXZlbnRDYXJkU2VydmljZTogSW1nRXZlbnRTZXJ2aWNlLFxuICAgIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZXh0ZXJuYWxTZXJ2aWNlOiBJbWdNYW5hZ2VyQ29uZmlnU2VydmljZVxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGltZ01hbmFnZXIsXG4gICAgICBpbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgaHR0cCxcbiAgICAgIGltZ0NETlNlcnZpY2UsXG4gICAgICBpbWdFdmVudENhcmRTZXJ2aWNlLFxuICAgICAgYWxlcnRTZXJ2aWNlLFxuICAgICAgdHJhbnNsYXRlU2VydmljZSxcbiAgICAgIGV4dGVybmFsU2VydmljZVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzVXBsb2FkU2VjdGlvbiA9IHRoaXMudGFiRGlzcGxheWVkID09PSAnaW1nLXVwbG9hZCc7XG4gIH1cblxuICBkaXNwbGF5TGFyZ2VXaW5kb3coKTogdm9pZCB7XG4gICAgdGhpcy5zd2l0Y2hEaXNwbGF5V2luZG93LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBvblRvZ2dsZUltZ1NlbGVjdGVkKCkge1xuICAgIHRoaXMudG9nZ2xlSW1nU2VsZWN0ZWQubmV4dCgpO1xuICB9XG59XG4iXX0=
@@ -1,79 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Component, EventEmitter, Input, Output } from '@angular/core';
4
- import { TranslateService } from '@ngx-translate/core';
5
- import { listAnnimation } from '../../../animations/listAnnimation/list.animation';
6
- import { AlertService } from '../../../services/alert.service';
7
- import { ImgManagerConfigService } from '../../../services/config/external-config.service';
8
- import { ImgCDNService } from '../../../services/config/img-cdn.service';
9
- import { ImgEventService } from '../../../services/img-event.service';
10
- import { ImgManagerService } from '../../../services/img-manager.service';
11
- import { ImgSelectionService } from '../../../services/img-selection.service';
12
- import { ImagesActionHandler } from '../images-actions-handler';
13
- let MosaicViewComponent = class MosaicViewComponent extends ImagesActionHandler {
14
- constructor(imgManager, imgSelectionService, http, imgCDNService, imgEventCardService, alertService, translateService, externalService) {
15
- super(imgManager, imgSelectionService, http, imgCDNService, imgEventCardService, alertService, translateService, externalService);
16
- this.nbFakeImg = 0;
17
- this.switchDisplayWindow = new EventEmitter();
18
- }
19
- ngOnInit() {
20
- }
21
- onSearchChange(event) {
22
- // Reset table filters
23
- this.tableFilters.sort = undefined;
24
- this.tableFilters.order = undefined;
25
- this.tableFilters.currentPage = 1;
26
- this.filtersChange.emit(this.tableFilters);
27
- }
28
- onCardRenamePicture(pictureRenamed) {
29
- this.pictureNameChange.next(pictureRenamed);
30
- }
31
- switchDisplayWindowCard() {
32
- this.switchDisplayWindow.emit(true);
33
- }
34
- };
35
- MosaicViewComponent.ctorParameters = () => [
36
- { type: ImgManagerService },
37
- { type: ImgSelectionService },
38
- { type: HttpClient },
39
- { type: ImgCDNService },
40
- { type: ImgEventService },
41
- { type: AlertService },
42
- { type: TranslateService },
43
- { type: ImgManagerConfigService }
44
- ];
45
- __decorate([
46
- Input(),
47
- __metadata("design:type", String)
48
- ], MosaicViewComponent.prototype, "tabDisplayed", void 0);
49
- __decorate([
50
- Input(),
51
- __metadata("design:type", Boolean)
52
- ], MosaicViewComponent.prototype, "fullSize", void 0);
53
- __decorate([
54
- Input(),
55
- __metadata("design:type", Number)
56
- ], MosaicViewComponent.prototype, "nbFakeImg", void 0);
57
- __decorate([
58
- Output(),
59
- __metadata("design:type", EventEmitter)
60
- ], MosaicViewComponent.prototype, "switchDisplayWindow", void 0);
61
- MosaicViewComponent = __decorate([
62
- Component({
63
- selector: 'mosaic-view',
64
- template: "<div class=\"mosaic\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small', 'mosaic--displayPexelsImg': displayPexelsResults}\">\n <!-- Search section -->\n <div\n class=\"mosaic__search\"\n [ngClass]=\"{'mosaic__search--small': stateDisplayed === 'small'}\"\n *ngIf=\"tabDisplayed !== 'img-upload'\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"onSearchChange($event)\"\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\n [smallPadding]=\"stateDisplayed === 'small'\"\n ></wz-input-search>\n </div>\n\n <!-- Cards section -->\n <div\n class=\"mosaic__container__cards\"\n [ngClass]=\"{'mosaic__container__cards--padding': stateDisplayed !== 'window'}\"\n [@listAnimation]=\"picturesList.length\"\n *ngIf=\"!isLoading && !displayPexelsResults\"\n >\n <img-card\n *ngFor=\"let picture of picturesList; let index = index;\"\n [picture]=\"picture\"\n [stateDisplayed]=\"stateDisplayed\"\n [tabDisplayed]=\"tabDisplayed\"\n [disable]=\"disable\"\n (toggleImgSelected)=\"onToggleSelectImg(index)\"\n (pictureNameChange)=\"onCardRenamePicture($event)\"\n (switchDisplayWindow)=\"switchDisplayWindowCard()\"\n [fullSize]=\"fullSize\"\n ></img-card>\n <div\n *ngFor=\"let fakeImg of nbFakeImg | numberToArray\"\n class=\"mosaic__container__cards__fakeImg\"\n [ngClass]=\"{'mosaic__container__cards__fakeImg--smallFakeImg': stateDisplayed === 'small' || tabDisplayed === 'img-upload'}\">\n </div>\n </div>\n <!-- Loader section -->\n <div class=\"mosaic__container__loader\" *ngIf=\"isLoading\">\n <wz-loader [small]=\"true\"></wz-loader>\n </div>\n\n <!-- Pagination section -->\n <div class=\"mosaic__pagination\" *ngIf=\"picturesList.length && tabDisplayed !== 'img-upload' && !displayPexelsResults\" >\n <wz-pagination\n [pagination]=\"tableFilters\"\n (pageChange)=\"onFiltersChange()\"\n >\n </wz-pagination>\n </div>\n\n</div>\n",
65
- animations: [
66
- listAnnimation
67
- ]
68
- }),
69
- __metadata("design:paramtypes", [ImgManagerService,
70
- ImgSelectionService,
71
- HttpClient,
72
- ImgCDNService,
73
- ImgEventService,
74
- AlertService,
75
- TranslateService,
76
- ImgManagerConfigService])
77
- ], MosaicViewComponent);
78
- export { MosaicViewComponent };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9zYWljLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvbW9zYWljLXZpZXcvbW9zYWljLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFTaEUsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBb0IsU0FBUSxtQkFBbUI7SUFXMUQsWUFDRSxVQUE2QixFQUM3QixtQkFBd0MsRUFDeEMsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsbUJBQW9DLEVBQ3BDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxlQUF3QztRQUV4QyxLQUFLLENBQ0gsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixJQUFJLEVBQ0osYUFBYSxFQUNiLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGVBQWUsQ0FDaEIsQ0FBQztRQXZCSixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBRXRCLHdCQUFtQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBc0JoRSxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxjQUFpQztRQUNuRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YsQ0FBQTs7WUF2Q2UsaUJBQWlCO1lBQ1IsbUJBQW1CO1lBQ2xDLFVBQVU7WUFDRCxhQUFhO1lBQ1AsZUFBZTtZQUN0QixZQUFZO1lBQ1IsZ0JBQWdCO1lBQ2pCLHVCQUF1Qjs7QUFoQjFDO0lBREMsS0FBSyxFQUFFOzt5REFDbUI7QUFFM0I7SUFEQyxLQUFLLEVBQUU7O3FEQUNVO0FBRWxCO0lBREMsS0FBSyxFQUFFOztzREFDYztBQUV0QjtJQURDLE1BQU0sRUFBRTs4QkFDWSxZQUFZO2dFQUErQjtBQVRyRCxtQkFBbUI7SUFQL0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGFBQWE7UUFDdkIsOGpFQUEyQztRQUMzQyxVQUFVLEVBQUU7WUFDVixjQUFjO1NBQ2Y7S0FDRixDQUFDO3FDQWFjLGlCQUFpQjtRQUNSLG1CQUFtQjtRQUNsQyxVQUFVO1FBQ0QsYUFBYTtRQUNQLGVBQWU7UUFDdEIsWUFBWTtRQUNSLGdCQUFnQjtRQUNqQix1QkFBdUI7R0FuQi9CLG1CQUFtQixDQW1EL0I7U0FuRFksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBsaXN0QW5uaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uL2FuaW1hdGlvbnMvbGlzdEFubmltYXRpb24vbGlzdC5hbmltYXRpb24nO1xuaW1wb3J0IHsgUGljdHVyZU5hbWVVcGRhdGUsIHRhYkRpc3BsYXllZCB9IGZyb20gJy4uLy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpZy9leHRlcm5hbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdDRE5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlnL2ltZy1jZG4uc2VydmljZSc7XG5pbXBvcnQgeyBJbWdFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbWctZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltZy1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1nU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltZy1zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJbWFnZXNBY3Rpb25IYW5kbGVyIH0gZnJvbSAnLi4vaW1hZ2VzLWFjdGlvbnMtaGFuZGxlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vc2FpYy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vc2FpYy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIGxpc3RBbm5pbWF0aW9uXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTW9zYWljVmlld0NvbXBvbmVudCBleHRlbmRzIEltYWdlc0FjdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xuICBASW5wdXQoKVxuICBmdWxsU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgbmJGYWtlSW1nOiBudW1iZXIgPSAwO1xuICBAT3V0cHV0KClcbiAgc3dpdGNoRGlzcGxheVdpbmRvdzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBpbWdDRE5TZXJ2aWNlOiBJbWdDRE5TZXJ2aWNlLFxuICAgIGltZ0V2ZW50Q2FyZFNlcnZpY2U6IEltZ0V2ZW50U2VydmljZSxcbiAgICBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIGV4dGVybmFsU2VydmljZTogSW1nTWFuYWdlckNvbmZpZ1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBpbWdNYW5hZ2VyLFxuICAgICAgaW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICAgIGh0dHAsXG4gICAgICBpbWdDRE5TZXJ2aWNlLFxuICAgICAgaW1nRXZlbnRDYXJkU2VydmljZSxcbiAgICAgIGFsZXJ0U2VydmljZSxcbiAgICAgIHRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICBleHRlcm5hbFNlcnZpY2VcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBvblNlYXJjaENoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgLy8gUmVzZXQgdGFibGUgZmlsdGVyc1xuICAgIHRoaXMudGFibGVGaWx0ZXJzLnNvcnQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50YWJsZUZpbHRlcnMub3JkZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZS5lbWl0KHRoaXMudGFibGVGaWx0ZXJzKTtcbiAgfVxuXG4gIG9uQ2FyZFJlbmFtZVBpY3R1cmUocGljdHVyZVJlbmFtZWQ6IFBpY3R1cmVOYW1lVXBkYXRlKSB7XG4gICAgdGhpcy5waWN0dXJlTmFtZUNoYW5nZS5uZXh0KHBpY3R1cmVSZW5hbWVkKTtcbiAgfVxuXG4gIHN3aXRjaERpc3BsYXlXaW5kb3dDYXJkKCkge1xuICAgIHRoaXMuc3dpdGNoRGlzcGxheVdpbmRvdy5lbWl0KHRydWUpO1xuICB9XG59XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Component } from '@angular/core';
4
- import { TranslateService } from '@ngx-translate/core';
5
- import { listAnnimation } from '../../../animations/listAnnimation/list.animation';
6
- import { AlertService } from '../../../services/alert.service';
7
- import { ImgManagerConfigService } from '../../../services/config/external-config.service';
8
- import { ImgCDNService } from '../../../services/config/img-cdn.service';
9
- import { ImgEventService } from '../../../services/img-event.service';
10
- import { ImgManagerService } from '../../../services/img-manager.service';
11
- import { ImgSelectionService } from '../../../services/img-selection.service';
12
- import { ImagesActionHandler } from '../images-actions-handler';
13
- let TableViewComponent = class TableViewComponent extends ImagesActionHandler {
14
- constructor(imgManager, imgSelectionService, http, imgCDNService, imgEventCardService, alertService, translateService, externalService) {
15
- super(imgManager, imgSelectionService, http, imgCDNService, imgEventCardService, alertService, translateService, externalService);
16
- this.dataTableName = 'imgagesView'; // Name of your table
17
- }
18
- ngOnInit() {
19
- }
20
- };
21
- TableViewComponent.ctorParameters = () => [
22
- { type: ImgManagerService },
23
- { type: ImgSelectionService },
24
- { type: HttpClient },
25
- { type: ImgCDNService },
26
- { type: ImgEventService },
27
- { type: AlertService },
28
- { type: TranslateService },
29
- { type: ImgManagerConfigService }
30
- ];
31
- TableViewComponent = __decorate([
32
- Component({
33
- selector: 'table-view',
34
- template: "<div class=\"table-view\" [@listAnimation]=\"picturesList.length\">\n <wz-table\n [checkbox]=\"true\"\n (toggleAllCheckBox)=\"onToggleAllCheckBoxRow($event)\"\n [(tableFilters)]=\"tableFilters\"\n (tableFiltersChange)=\"onFiltersChange()\"\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\n [disablePagniation]=\"displayPexelsResults\"\n [isLoading]=\"isLoading\"\n >\n <!-- Header Section -->\n <div\n headerCell\n [headerName]=\"'ImgManager.ImgList.titleImgName' | translate\"\n columnSize=\"2\"\n sortName=\"name\"\n ></div>\n <div\n headerCell\n centerCell=\"center\"\n [headerName]=\"'ImgManager.ImgList.titleResolution' | translate\"\n ></div>\n <div headerCell columnSize=\"0\"></div>\n\n <!-- Body Section -->\n <div\n tableRow\n checkBoxRow\n [checkBoxValue]=\"picture.delSelected\"\n (checkBoxValueChange)=\"onToggleDelSelection(index)\"\n *ngFor=\"let picture of picturesList; let index = index\"\n >\n\n <div tableColumn columnSize=\"2\">\n <div class=\"table-view__row__container\">\n <div\n class=\"table-view__row__container__imgContainer\"\n [ngClass]=\"{'imgSelected': picture.selected}\"\n (click)=\"onToggleSelectImg(index)\">\n <img\n class=\"table-view__row__container__imgContainer__img\"\n [src]=\"picture.file_name | imgSrc : '100'\"\n alt=\"picture.display_name\"\n [ngClass]=\"{'pictureDeletion': picture.deleted}\"\n (error)=\"picture.imgNotLoaded=true;onPictureNotLoading($event);\"\n />\n <!-- If the img is not loaded, or the link is broken, an icon is displayed -->\n <div\n *ngIf=\"picture.imgNotLoaded\"\n class=\"table-view__row__container__imgContainer__overlay\"\n >\n <i class=\"fad fa-folder-times\"></i>\n </div>\n </div>\n <input\n type=\"text\"\n class=\"wzImgMngInput table-view__row__container__name\"\n [(ngModel)]=\"picture.display_name\"\n (focus)=\"previousName=picture.display_name\"\n (blur)=\"onNameChange(picture.id_file)\"\n (click)=\"onToggleDelSelection(index)\"\n [ngClass]=\"{'desabled': picture.deleted}\"\n [disabled]=\"picture.deleted\"\n >\n </div>\n </div>\n\n <div\n tableColumn\n centerCell=\"center\"\n (click)=\"onToggleDelSelection(index)\"\n >\n <p class=\"grey\">{{picture.raw_height}}x{{picture.raw_width}}</p>\n </div>\n\n <div tableColumn centerCell=\"center\" columnSize=\"0\" class=\"table-view__dropdown-options\">\n <!-- Dropdown -->\n <dropdown dropdownId=\"dropdown-options\" [disable]=\"picture.deleted\">\n <ng-container label>\n <div class=\"table-view__dropdown-options__label rotate\">\n <span> <i class=\"far fa-ellipsis-h is-size-4\" aria-haspopup=\"true\" aria-controls=\"dropdown-menu\"> </i> </span>\n </div>\n </ng-container>\n <ng-container item>\n <div\n class=\"dropdown-item\"\n (click)=\"onDownloadImg(picture.display_name, picture.file_name)\"\n >\n <i class=\"far fa-download download\"></i>&nbsp;\n <p>{{ 'ImgManager.ImgList.download' | translate }}</p>\n </div>\n </ng-container>\n <ng-container item>\n <div\n class=\"dropdown-item\"\n (click)=\"onEdit(picture)\"\n >\n <i class=\"far fa-crop-alt edit\"></i>&nbsp;\n <p>{{ 'ImgManager.ImgList.edit' | translate }}</p>\n </div>\n </ng-container>\n <ng-container item>\n <div\n class=\"dropdown-item\"\n (click)=\"onRemoveImg(picture)\"\n >\n <i class=\"fal fa-times deleted\"></i>&nbsp;\n <p>{{ 'ImgManager.ImgList.remove' | translate }}</p>\n </div>\n </ng-container>\n </dropdown>\n </div>\n </div>\n </wz-table>\n</div>\n",
35
- animations: [
36
- listAnnimation
37
- ]
38
- }),
39
- __metadata("design:paramtypes", [ImgManagerService,
40
- ImgSelectionService,
41
- HttpClient,
42
- ImgCDNService,
43
- ImgEventService,
44
- AlertService,
45
- TranslateService,
46
- ImgManagerConfigService])
47
- ], TableViewComponent);
48
- export { TableViewComponent };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbWFnZXMtdmlldy90YWJsZS12aWV3L3RhYmxlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFTaEUsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBbUIsU0FBUSxtQkFBbUI7SUFHdkQsWUFDRSxVQUE2QixFQUM3QixtQkFBd0MsRUFDeEMsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsbUJBQW9DLEVBQ3BDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxlQUF3QztRQUV4QyxLQUFLLENBQ0gsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixJQUFJLEVBQ0osYUFBYSxFQUNiLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGVBQWUsQ0FDaEIsQ0FBQztRQXJCSixrQkFBYSxHQUFXLGFBQWEsQ0FBQyxDQUFDLHFCQUFxQjtJQXNCNUQsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0NBRUosQ0FBQTs7WUF4QmlCLGlCQUFpQjtZQUNSLG1CQUFtQjtZQUNsQyxVQUFVO1lBQ0QsYUFBYTtZQUNQLGVBQWU7WUFDdEIsWUFBWTtZQUNSLGdCQUFnQjtZQUNqQix1QkFBdUI7O0FBWGpDLGtCQUFrQjtJQVA5QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsWUFBWTtRQUN0QixveUlBQTBDO1FBQzFDLFVBQVUsRUFBRTtZQUNWLGNBQWM7U0FDZjtLQUNGLENBQUM7cUNBS2dCLGlCQUFpQjtRQUNSLG1CQUFtQjtRQUNsQyxVQUFVO1FBQ0QsYUFBYTtRQUNQLGVBQWU7UUFDdEIsWUFBWTtRQUNSLGdCQUFnQjtRQUNqQix1QkFBdUI7R0FYakMsa0JBQWtCLENBNEI5QjtTQTVCWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGxpc3RBbm5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYW5pbWF0aW9ucy9saXN0QW5uaW1hdGlvbi9saXN0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ01hbmFnZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlnL2V4dGVybmFsLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ0NETlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb25maWcvaW1nLWNkbi5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ0V2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltZy1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEltYWdlc0FjdGlvbkhhbmRsZXIgfSBmcm9tICcuLi9pbWFnZXMtYWN0aW9ucy1oYW5kbGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIGxpc3RBbm5pbWF0aW9uXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVWaWV3Q29tcG9uZW50IGV4dGVuZHMgSW1hZ2VzQWN0aW9uSGFuZGxlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgZGF0YVRhYmxlTmFtZTogc3RyaW5nID0gJ2ltZ2FnZXNWaWV3JzsgLy8gTmFtZSBvZiB5b3VyIHRhYmxlXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgICAgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICBpbWdDRE5TZXJ2aWNlOiBJbWdDRE5TZXJ2aWNlLFxuICAgICAgaW1nRXZlbnRDYXJkU2VydmljZTogSW1nRXZlbnRTZXJ2aWNlLFxuICAgICAgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgICB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgZXh0ZXJuYWxTZXJ2aWNlOiBJbWdNYW5hZ2VyQ29uZmlnU2VydmljZVxuICAgICkge1xuICAgICAgc3VwZXIoXG4gICAgICAgIGltZ01hbmFnZXIsXG4gICAgICAgIGltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgICAgIGh0dHAsXG4gICAgICAgIGltZ0NETlNlcnZpY2UsXG4gICAgICAgIGltZ0V2ZW50Q2FyZFNlcnZpY2UsXG4gICAgICAgIGFsZXJ0U2VydmljZSxcbiAgICAgICAgdHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgZXh0ZXJuYWxTZXJ2aWNlXG4gICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgIH1cblxufVxuIl19
@@ -1,300 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, Input, Output, EventEmitter } from '@angular/core';
3
- import { Subject } from 'rxjs';
4
- import { insertRemove } from '../../../animations/insertRemove/insert-remove.animation';
5
- import { ImgCDNService } from '../../../services/config/img-cdn.service';
6
- let CropperComponent = class CropperComponent {
7
- constructor(imgCDNService) {
8
- this.imgCDNService = imgCDNService;
9
- this._isImgModified = false;
10
- this.isImgModifiedChange = new EventEmitter();
11
- this.editClosed = new EventEmitter();
12
- this.currentCroppedImageChange = new EventEmitter();
13
- this.msgFailLoad = 'ImgManager.ImgEditor.msgFailLoad';
14
- this.isNameModified = false;
15
- this.isCropperReady = false; // Use to not display the crop validation btn, after the img is loaded or changed
16
- this.currentCroppedImage = ''; // Img modified return in base64
17
- this.isCropped = false;
18
- this.isLoading = false;
19
- this._isImgCropped = false;
20
- this.imgCropperChange = new Subject();
21
- this.skipNextImgCropped = 1;
22
- this.imageChangedEvent = '';
23
- this.croppedImage = '';
24
- this.canvasRotation = 0;
25
- this.rotation = 0;
26
- this.scale = 1;
27
- this.showCropper = false;
28
- this.containWithinAspectRatio = false;
29
- this.transform = {};
30
- // dropdown list
31
- this.resolutionConfig = [
32
- {
33
- label: 'ImgManager.ImgEditor.config.origin',
34
- config: {
35
- maintainAspectRatio: true
36
- },
37
- },
38
- {
39
- label: 'ImgManager.ImgEditor.config.free',
40
- config: {
41
- maintainAspectRatio: false
42
- },
43
- active: true
44
- },
45
- {
46
- label: 'ImgManager.ImgEditor.config.square',
47
- config: {
48
- maintainAspectRatio: true,
49
- aspectRatio: 1 / 1
50
- }
51
- },
52
- {
53
- label: 'ImgManager.ImgEditor.config.Portrait',
54
- config: {
55
- maintainAspectRatio: true,
56
- aspectRatio: 3 / 4
57
- }
58
- },
59
- {
60
- label: 'ImgManager.ImgEditor.config.landscape',
61
- config: {
62
- maintainAspectRatio: true,
63
- aspectRatio: 5 / 3
64
- }
65
- }
66
- ];
67
- this.rotationConfig = [
68
- {
69
- label: 'ImgManager.ImgEditor.config.schedule',
70
- icon: "fal fa-redo-alt",
71
- method: "rotateRight",
72
- active: true
73
- },
74
- {
75
- label: 'ImgManager.ImgEditor.config.AntiSchedule',
76
- icon: "fal fa-undo-alt",
77
- method: "rotateLeft"
78
- },
79
- {
80
- label: 'ImgManager.ImgEditor.config.flipVert',
81
- icon: "fal fa-sort-alt",
82
- method: "flipVertical"
83
- },
84
- {
85
- label: 'ImgManager.ImgEditor.config.flipHoriz',
86
- icon: "fal fa-exchange-alt",
87
- method: "flipHorizontal"
88
- }
89
- ];
90
- this.zoomConfig = [
91
- {
92
- label: 'ImgManager.ImgEditor.config.zoom',
93
- icon: "fal fa-search-plus",
94
- method: "zoomIn",
95
- active: true
96
- },
97
- {
98
- label: 'ImgManager.ImgEditor.config.dezoom',
99
- icon: "fal fa-search-minus",
100
- method: "zoomOut"
101
- }
102
- ];
103
- // Img cropper variables
104
- this.imgCropperConfig = {
105
- maintainAspectRatio: false,
106
- aspectRatio: undefined
107
- };
108
- }
109
- set isImgModified(isImgModified) {
110
- this._isImgModified = isImgModified;
111
- if (!isImgModified) {
112
- this.restartEdit();
113
- }
114
- }
115
- get isImgModified() {
116
- return this._isImgModified;
117
- }
118
- set isImgCropped(isImgCropped) {
119
- setTimeout(() => {
120
- this._isImgCropped = isImgCropped;
121
- }, 0);
122
- }
123
- get isImgCropped() {
124
- return this._isImgCropped;
125
- }
126
- ngOnInit() {
127
- this.init();
128
- this.detectImgCropperChange();
129
- }
130
- init() {
131
- this.imgRoute = this.getRAWImgRoute();
132
- this.imgType = this.getImgType();
133
- this.croppedImage = null;
134
- this.setDefautAspectRatio();
135
- }
136
- getRAWImgRoute() {
137
- return this.imgCDNService.getUrlImg('raw') + this.imgToEdit.file_name;
138
- }
139
- getImgType() {
140
- return this.imgToEdit.file_name ? this.imgToEdit.file_name.split('.').pop() : undefined;
141
- }
142
- setDefautAspectRatio() {
143
- const height = parseInt(this.imgToEdit.raw_height);
144
- const width = parseInt(this.imgToEdit.raw_width);
145
- this.defaultAspectRatio = height / width;
146
- this.resolutionConfig[0].config.aspectRatio = this.defaultAspectRatio;
147
- this.imgCropperConfig.aspectRatio = this.defaultAspectRatio;
148
- }
149
- onEditClosed(msgKey) {
150
- this.editClosed.emit(msgKey);
151
- }
152
- onRestart() {
153
- this.isImgModifiedChange.emit(false);
154
- }
155
- restartEdit() {
156
- this.init();
157
- this.resetConfCropper();
158
- }
159
- onImgModified() {
160
- this.isImgModified = true;
161
- this.isImgModifiedChange.emit(true);
162
- }
163
- ////// Img cropper methods ////////////////////////////////////////////////////////////////////////////////////////////////////////
164
- /* Cropper output events */
165
- fileChangeEvent(event) {
166
- this.imageChangedEvent = event;
167
- }
168
- imageCropped(event) {
169
- this.imgCropperChange.next();
170
- this.currentCroppedImage = event.base64;
171
- this.currentCroppedImageChange.emit(this.currentCroppedImage);
172
- }
173
- imageLoaded() {
174
- this.showCropper = true;
175
- }
176
- cropperReady() {
177
- this.isCropperReady = true;
178
- }
179
- loadImageFailed() {
180
- this.onEditClosed(this.msgFailLoad);
181
- }
182
- /* Resize functions */
183
- changeResolutionSize(index) {
184
- this.setActiveItem(this.resolutionConfig, index);
185
- const config = this.resolutionConfig[index].config;
186
- this.setCropperProperties(config);
187
- }
188
- confirmCrop() {
189
- setTimeout(() => {
190
- this.imgRoute = null;
191
- this.croppedImage = this.currentCroppedImage;
192
- this.skipNextImgCropped = 2;
193
- this.isImgCropped = false;
194
- }, 0);
195
- this.resetConfCropper();
196
- this.onImgModified();
197
- }
198
- resetConfCropper() {
199
- this.scale = 1;
200
- this.rotation = 0;
201
- this.canvasRotation = 0;
202
- this.transform = {};
203
- }
204
- setActiveItem(array, index) {
205
- // Set active-item class for the dropdown
206
- array.forEach((item, indexItem) => {
207
- item.active = indexItem === index ? true : false;
208
- });
209
- }
210
- setCropperProperties(config) {
211
- for (const property in config) {
212
- this.imgCropperConfig[property] = config[property];
213
- }
214
- }
215
- detectImgCropperChange() {
216
- this.imgCropperChange
217
- .subscribe(() => {
218
- this.skipNextImgCropped--;
219
- if (this.skipNextImgCropped >= 0) {
220
- return;
221
- }
222
- this.skipNextImgCropped = 0;
223
- this.isImgCropped = true;
224
- });
225
- }
226
- /* Rotations functions */
227
- rotateLeft() {
228
- this.canvasRotation--;
229
- this.flipAfterRotate();
230
- this.onImgModified();
231
- }
232
- rotateRight() {
233
- this.canvasRotation++;
234
- this.flipAfterRotate();
235
- this.onImgModified();
236
- }
237
- flipHorizontal() {
238
- this.transform = Object.assign(Object.assign({}, this.transform), { flipH: !this.transform.flipH });
239
- this.onImgModified();
240
- }
241
- flipVertical() {
242
- this.transform = Object.assign(Object.assign({}, this.transform), { flipV: !this.transform.flipV });
243
- this.onImgModified();
244
- }
245
- flipAfterRotate() {
246
- const flippedH = this.transform.flipH;
247
- const flippedV = this.transform.flipV;
248
- this.transform = Object.assign(Object.assign({}, this.transform), { flipH: flippedV, flipV: flippedH });
249
- }
250
- /* Zoom functions */
251
- zoomOut() {
252
- this.scale -= this.scale < 0.2 ? 0 : .1;
253
- this.transform = Object.assign(Object.assign({}, this.transform), { scale: this.scale });
254
- this.onImgModified();
255
- }
256
- zoomIn() {
257
- this.scale += .1;
258
- this.transform = Object.assign(Object.assign({}, this.transform), { scale: this.scale });
259
- this.onImgModified();
260
- }
261
- applyMethod(method) {
262
- this[method](); // call the method contains in zoomConfig or rotationConfig
263
- }
264
- };
265
- CropperComponent.ctorParameters = () => [
266
- { type: ImgCDNService }
267
- ];
268
- __decorate([
269
- Input(),
270
- __metadata("design:type", Object)
271
- ], CropperComponent.prototype, "imgToEdit", void 0);
272
- __decorate([
273
- Input(),
274
- __metadata("design:type", Boolean),
275
- __metadata("design:paramtypes", [Boolean])
276
- ], CropperComponent.prototype, "isImgModified", null);
277
- __decorate([
278
- Output(),
279
- __metadata("design:type", Object)
280
- ], CropperComponent.prototype, "isImgModifiedChange", void 0);
281
- __decorate([
282
- Output(),
283
- __metadata("design:type", Object)
284
- ], CropperComponent.prototype, "editClosed", void 0);
285
- __decorate([
286
- Output(),
287
- __metadata("design:type", Object)
288
- ], CropperComponent.prototype, "currentCroppedImageChange", void 0);
289
- CropperComponent = __decorate([
290
- Component({
291
- selector: 'cropper',
292
- template: "<div class=\"img-editor__container__toolsContainer\">\n\n <div *ngIf=\"isImgCropped\">\n <div\n class=\"img-editor__container__toolsContainer__tool img-editor__container__toolsContainer__tool--button\"\n (click)=\"confirmCrop()\"\n [nwbToolTip]=\"'ImgManager.ImgEditor.ValidtToolTip' | translate\"\n nwbToolTipPosition=\"left\"\n >\n <i class=\"far fa-check\"></i>\n <p>{{ 'ImgManager.ImgEditor.Valid' | translate }}</p>\n </div>\n </div>\n\n <!-- Resolution -->\n <dropdown dropdownId=\"dropdown-resolution\">\n <ng-container label>\n <div\n class=\"img-editor__container__toolsContainer__tool\"\n >\n <i class=\"far fa-crop\"></i>\n <p>{{ 'ImgManager.ImgEditor.crop' | translate }}</p>\n </div>\n </ng-container>\n <ng-container item *ngFor=\"let item of resolutionConfig; let index = index;\">\n <div\n class=\"dropdown-item\"\n [ngClass]=\"{'active-item': item.active}\"\n (click)=\"changeResolutionSize(index)\">\n <p>{{item.label | translate}}</p>\n </div>\n </ng-container>\n </dropdown>\n\n <!-- Zoom -->\n <dropdown dropdownId=\"dropdown-rotation\">\n <ng-container label>\n <div class=\"img-editor__container__toolsContainer__tool\" (click)=\"zoomIn()\">\n <i class=\"far fa-expand-arrows-alt\"></i>\n <p>{{ 'ImgManager.ImgEditor.display' | translate }}</p>\n </div>\n </ng-container>\n <ng-container item *ngFor=\"let item of zoomConfig; let index = index;\">\n <div\n class=\"dropdown-item\"\n [ngClass]=\"{'active-item': item.active}\"\n (click)=\"applyMethod(item.method)\">\n <i *ngIf=\"item.icon\" [ngClass]=\"item.icon\"></i>\n <p>{{item.label | translate}}</p>\n </div>\n </ng-container>\n </dropdown>\n\n <!-- Rotation -->\n <dropdown dropdownId=\"dropdown-rotation\" dropDownMenuClass=\"img-editor__container__toolsContainer__RotationDropdown\">\n <ng-container label>\n <div class=\"img-editor__container__toolsContainer__tool\" (click)=\"rotateRight()\">\n <i class=\"far fa-redo\"></i>\n <p>{{ 'ImgManager.ImgEditor.rotation' | translate }}</p>\n </div>\n </ng-container>\n <ng-container item *ngFor=\"let item of rotationConfig; let index = index;\">\n <div\n class=\"dropdown-item\"\n [ngClass]=\"{'active-item': item.active}\"\n (click)=\"applyMethod(item.method)\">\n <i *ngIf=\"item.icon\" [ngClass]=\"item.icon\"></i>\n <p>{{item.label | translate}}</p>\n </div>\n </ng-container>\n </dropdown>\n\n <div\n class=\"img-editor__container__toolsContainer__tool\"\n (click)=\"onRestart()\"\n @insertRemoveAnnim\n >\n <i class=\"far fa-retweet-alt\"></i>\n <p>{{ 'ImgManager.ImgEditor.restart' | translate }}</p>\n </div>\n</div>\n\n<div class=\"img-editor__image-cropper\" >\n <image-cropper\n [imageURL]=\"imgRoute\"\n [imageBase64]=\"croppedImage\"\n [maintainAspectRatio]=\"imgCropperConfig.maintainAspectRatio\"\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\n [aspectRatio]=\"imgCropperConfig.aspectRatio\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"false\"\n [canvasRotation]=\"canvasRotation\"\n [transform]=\"transform\"\n [alignImage]=\"'center'\"\n [style.display]=\"showCropper ? null : 'none'\"\n [format]=\"imgType\"\n [backgroundColor]=\"'white'\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded()\"\n (cropperReady)=\"cropperReady()\"\n (loadImageFailed)=\"loadImageFailed()\"\n ></image-cropper>\n</div>\n",
293
- animations: [
294
- insertRemove
295
- ]
296
- }),
297
- __metadata("design:paramtypes", [ImgCDNService])
298
- ], CropperComponent);
299
- export { CropperComponent };
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbWctZWRpdG9yL2Nyb3BwZXIvY3JvcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFHeEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBU3pFLElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0lBK0kzQixZQUNVLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBakk5QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUd4Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBR2xELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2hDLDhCQUF5QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdkQsZ0JBQVcsR0FBVyxrQ0FBa0MsQ0FBQztRQUV6RCxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxtQkFBYyxHQUFZLEtBQUssQ0FBQyxDQUFDLGlGQUFpRjtRQUNsSCx3QkFBbUIsR0FBVyxFQUFFLENBQUMsQ0FBQyxnQ0FBZ0M7UUFDbEUsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBVS9CLHFCQUFnQixHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3RELHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUsvQixzQkFBaUIsR0FBUSxFQUFF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Q1YsWUFBWTtTQUNiO0tBQ0YsQ0FBQztxQ0FpSnlCLGFBQWE7R0FoSjNCLGdCQUFnQixDQWlWNUI7U0FqVlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZWRFdmVudCwgSW1hZ2VUcmFuc2Zvcm0gfSBmcm9tICduZ3gtaW1hZ2UtY3JvcHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbnNlcnRSZW1vdmUgfSBmcm9tICcuLi8uLi8uLi9hbmltYXRpb25zL2luc2VydFJlbW92ZS9pbnNlcnQtcmVtb3ZlLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBDcm9wcGVyQ29uZmlnRFRPLCBJbWdDcm9wcGVyQ29uZmlnRFRPIH0gZnJvbSAnLi4vLi4vLi4vZHRvL2ltZy1lZGl0b3ItY29uZmlnLmR0byc7XG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPIH0gZnJvbSAnLi4vLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XG5pbXBvcnQgeyBJbWdDRE5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlnL2ltZy1jZG4uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nyb3BwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JvcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBpbnNlcnRSZW1vdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcm9wcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBpbWdUb0VkaXQ6IEltZ1BpY3R1cmVEVE87XG5cbiAgQElucHV0KClcbiAgc2V0IGlzSW1nTW9kaWZpZWQoaXNJbWdNb2RpZmllZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzSW1nTW9kaWZpZWQgPSBpc0ltZ01vZGlmaWVkO1xuICAgIGlmICghaXNJbWdNb2RpZmllZCkge1xuICAgICAgdGhpcy5yZXN0YXJ0RWRpdCgpO1xuICAgIH1cbiAgfVxuICBnZXQgaXNJbWdNb2RpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNJbWdNb2RpZmllZDtcbiAgfVxuICBwcml2YXRlIF9pc0ltZ01vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIGlzSW1nTW9kaWZpZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGVkaXRDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIGN1cnJlbnRDcm9wcGVkSW1hZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBtc2dGYWlsTG9hZDogc3RyaW5nID0gJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLm1zZ0ZhaWxMb2FkJztcblxuICBpc05hbWVNb2RpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0Nyb3BwZXJSZWFkeTogYm9vbGVhbiA9IGZhbHNlOyAvLyBVc2UgdG8gbm90IGRpc3BsYXkgdGhlIGNyb3AgdmFsaWRhdGlvbiBidG4sIGFmdGVyIHRoZSBpbWcgaXMgbG9hZGVkIG9yIGNoYW5nZWRcbiAgY3VycmVudENyb3BwZWRJbWFnZTogc3RyaW5nID0gJyc7IC8vIEltZyBtb2RpZmllZCByZXR1cm4gaW4gYmFzZTY0XG4gIGlzQ3JvcHBlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBfaXNJbWdDcm9wcGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHNldCBpc0ltZ0Nyb3BwZWQoaXNJbWdDcm9wcGVkOiBib29sZWFuKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9pc0ltZ0Nyb3BwZWQgPSBpc0ltZ0Nyb3BwZWQ7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXQgaXNJbWdDcm9wcGVkKCkgOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNJbWdDcm9wcGVkO1xuICB9XG4gIGltZ0Nyb3BwZXJDaGFuZ2U6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBza2lwTmV4dEltZ0Nyb3BwZWQ6IG51bWJlciA9IDE7XG5cbiAgLy8gSW1hZ2UgQ3JvcHBlciBwcm9wZXJ0aWVzXG4gIGltZ1R5cGU6IHN0cmluZztcbiAgaW1nUm91dGU6IHN0cmluZztcbiAgaW1hZ2VDaGFuZ2VkRXZlbnQ6IGFueSA9ICcnO1xuICBjcm9wcGVkSW1hZ2U6IGFueSA9ICcnO1xuICBjYW52YXNSb3RhdGlvbiA9IDA7XG4gIHJvdGF0aW9uID0gMDtcbiAgc2NhbGUgPSAxO1xuICBzaG93Q3JvcHBlciA9IGZhbHNlO1xuICBjb250YWluV2l0aGluQXNwZWN0UmF0aW8gPSBmYWxzZTtcbiAgdHJhbnNmb3JtOiBJbWFnZVRyYW5zZm9ybSA9IHt9O1xuXG4gIGRlZmF1bHRBc3BlY3RSYXRpbzogbnVtYmVyO1xuXG4gIC8vIGRyb3Bkb3duIGxpc3RcbiAgcmVzb2x1dGlvbkNvbmZpZzpJbWdDcm9wcGVyQ29uZmlnRFRPW10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdJbWdNYW5hZ2VyLkltZ0VkaXRvci5jb25maWcub3JpZ2luJyxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiB0cnVlXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdJbWdNYW5hZ2VyLkltZ0VkaXRvci5jb25maWcuZnJlZScsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2VcbiAgICAgIH0sXG4gICAgICBhY3RpdmU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnSW1nTWFuYWdlci5JbWdFZGl0b3IuY29uZmlnLnNxdWFyZScsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcbiAgICAgICAgYXNwZWN0UmF0aW86IDEgLyAxXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLmNvbmZpZy5Qb3J0cmFpdCcsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcbiAgICAgICAgYXNwZWN0UmF0aW86IDMgLyA0XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLmNvbmZpZy5sYW5kc2NhcGUnLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IHRydWUsXG4gICAgICAgIGFzcGVjdFJhdGlvOiA1IC8gM1xuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICByb3RhdGlvbkNvbmZpZzpJbWdDcm9wcGVyQ29uZmlnRFRPW10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdJbWdNYW5hZ2VyLkltZ0VkaXRvci5jb25maWcuc2NoZWR1bGUnLFxuICAgICAgaWNvbjogXCJmYWwgZmEtcmVkby1hbHRcIixcbiAgICAgIG1ldGhvZDogXCJyb3RhdGVSaWdodFwiLFxuICAgICAgYWN0aXZlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLmNvbmZpZy5BbnRpU2NoZWR1bGUnLFxuICAgICAgaWNvbjogXCJmYWwgZmEtdW5kby1hbHRcIixcbiAgICAgIG1ldGhvZDogXCJyb3RhdGVMZWZ0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnSW1nTWFuYWdlci5JbWdFZGl0b3IuY29uZmlnLmZsaXBWZXJ0JyxcbiAgICAgIGljb246IFwiZmFsIGZhLXNvcnQtYWx0XCIsXG4gICAgICBtZXRob2Q6IFwiZmxpcFZlcnRpY2FsXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnSW1nTWFuYWdlci5JbWdFZGl0b3IuY29uZmlnLmZsaXBIb3JpeicsXG4gICAgICBpY29uOiBcImZhbCBmYS1leGNoYW5nZS1hbHRcIixcbiAgICAgIG1ldGhvZDogXCJmbGlwSG9yaXpvbnRhbFwiXG4gICAgfVxuICBdO1xuXG4gIHpvb21Db25maWc6SW1nQ3JvcHBlckNvbmZpZ0RUT1tdID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnSW1nTWFuYWdlci5JbWdFZGl0b3IuY29uZmlnLnpvb20nLFxuICAgICAgaWNvbjogXCJmYWwgZmEtc2VhcmNoLXBsdXNcIixcbiAgICAgIG1ldGhvZDogXCJ6b29tSW5cIixcbiAgICAgIGFjdGl2ZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdJbWdNYW5hZ2VyLkltZ0VkaXRvci5jb25maWcuZGV6b29tJyxcbiAgICAgIGljb246IFwiZmFsIGZhLXNlYXJjaC1taW51c1wiLFxuICAgICAgbWV0aG9kOiBcInpvb21PdXRcIlxuICAgIH1cbiAgXTtcblxuICAvLyBJbWcgY3JvcHBlciB2YXJpYWJsZXNcbiAgaW1nQ3JvcHBlckNvbmZpZzpDcm9wcGVyQ29uZmlnRFRPID0ge1xuICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxuICAgIGFzcGVjdFJhdGlvOiB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW1nQ0ROU2VydmljZTogSW1nQ0ROU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdCgpO1xuICAgIHRoaXMuZGV0ZWN0SW1nQ3JvcHBlckNoYW5nZSgpO1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLmltZ1JvdXRlID0gdGhpcy5nZXRSQVdJbWdSb3V0ZSgpO1xuICAgIHRoaXMuaW1nVHlwZSA9IHRoaXMuZ2V0SW1nVHlwZSgpO1xuICAgIHRoaXMuY3JvcHBlZEltYWdlID0gbnVsbDtcbiAgICB0aGlzLnNldERlZmF1dEFzcGVjdFJhdGlvKCk7XG4gIH1cblxuICBnZXRSQVdJbWdSb3V0ZSgpe1xuICAgIHJldHVybiB0aGlzLmltZ0NETlNlcnZpY2UuZ2V0VXJsSW1nKCdyYXcnKSArIHRoaXMuaW1nVG9FZGl0LmZpbGVfbmFtZTtcbiAgfVxuXG4gIGdldEltZ1R5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1nVG9FZGl0LmZpbGVfbmFtZSA/IHRoaXMuaW1nVG9FZGl0LmZpbGVfbmFtZS5zcGxpdCgnLicpLnBvcCgpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc2V0RGVmYXV0QXNwZWN0UmF0aW8oKSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gcGFyc2VJbnQodGhpcy5pbWdUb0VkaXQucmF3X2hlaWdodCk7XG4gICAgY29uc3Qgd2lkdGggPSBwYXJzZUludCh0aGlzLmltZ1RvRWRpdC5yYXdfd2lkdGgpO1xuICAgIHRoaXMuZGVmYXVsdEFzcGVjdFJhdGlvID0gaGVpZ2h0IC8gd2lkdGg7XG4gICAgdGhpcy5yZXNvbHV0aW9uQ29uZmlnWzBdLmNvbmZpZy5hc3BlY3RSYXRpbyA9IHRoaXMuZGVmYXVsdEFzcGVjdFJhdGlvO1xuICAgIHRoaXMuaW1nQ3JvcHBlckNvbmZpZy5hc3BlY3RSYXRpbyA9IHRoaXMuZGVmYXVsdEFzcGVjdFJhdGlvO1xuICB9XG5cbiAgb25FZGl0Q2xvc2VkKG1zZ0tleT86IHN0cmluZykge1xuICAgIHRoaXMuZWRpdENsb3NlZC5lbWl0KG1zZ0tleSk7XG4gIH1cblxuICBvblJlc3RhcnQoKSB7XG4gICAgdGhpcy5pc0ltZ01vZGlmaWVkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgcmVzdGFydEVkaXQoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gICAgdGhpcy5yZXNldENvbmZDcm9wcGVyKCk7XG4gIH1cblxuICBvbkltZ01vZGlmaWVkKCkge1xuICAgIHRoaXMuaXNJbWdNb2RpZmllZCA9IHRydWU7XG4gICAgdGhpcy5pc0ltZ01vZGlmaWVkQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICAvLy8vLy8gSW1nIGNyb3BwZXIgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIC8qIENyb3BwZXIgb3V0cHV0IGV2ZW50cyAqL1xuXG4gIGZpbGVDaGFuZ2VFdmVudChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZUNoYW5nZWRFdmVudCA9IGV2ZW50O1xuICB9XG5cbiAgaW1hZ2VDcm9wcGVkKGV2ZW50OiBJbWFnZUNyb3BwZWRFdmVudCkge1xuICAgIHRoaXMuaW1nQ3JvcHBlckNoYW5nZS5uZXh0KCk7XG5cbiAgICB0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UgPSBldmVudC5iYXNlNjQ7XG4gICAgdGhpcy5jdXJyZW50Q3JvcHBlZEltYWdlQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50Q3JvcHBlZEltYWdlKTtcbiAgfVxuXG4gIGltYWdlTG9hZGVkKCkge1xuICAgIHRoaXMuc2hvd0Nyb3BwZXIgPSB0cnVlO1xuICB9XG5cbiAgY3JvcHBlclJlYWR5KCkge1xuICAgIHRoaXMuaXNDcm9wcGVyUmVhZHkgPSB0cnVlO1xuICB9XG5cbiAgbG9hZEltYWdlRmFpbGVkKCkge1xuICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnRmFpbExvYWQpO1xuICB9XG5cbiAgLyogUmVzaXplIGZ1bmN0aW9ucyAqL1xuXG4gIGNoYW5nZVJlc29sdXRpb25TaXplKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5yZXNvbHV0aW9uQ29uZmlnLCBpbmRleCk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5yZXNvbHV0aW9uQ29uZmlnW2luZGV4XS5jb25maWc7XG4gICAgdGhpcy5zZXRDcm9wcGVyUHJvcGVydGllcyhjb25maWcpO1xuICB9XG5cbiAgY29uZmlybUNyb3AoKSB7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgLy8gQXZvaWQgaW1hZ2UtY3JvcHBlciBlcnJvclxuICAgICAgdGhpcy5pbWdSb3V0ZSA9IG51bGw7XG4gICAgICB0aGlzLmNyb3BwZWRJbWFnZSA9IHRoaXMuY3VycmVudENyb3BwZWRJbWFnZTtcbiAgICAgIHRoaXMuc2tpcE5leHRJbWdDcm9wcGVkID0gMjtcbiAgICAgIHRoaXMuaXNJbWdDcm9wcGVkID0gZmFsc2U7XG4gICAgfSwgMCk7XG5cbiAgICB0aGlzLnJlc2V0Q29uZkNyb3BwZXIoKTtcbiAgICB0aGlzLm9uSW1nTW9kaWZpZWQoKTtcbiAgfVxuXG4gIHJlc2V0Q29uZkNyb3BwZXIoKSB7XG4gICAgdGhpcy5zY2FsZSA9IDE7XG4gICAgdGhpcy5yb3RhdGlvbiA9IDA7XG4gICAgdGhpcy5jYW52YXNSb3RhdGlvbiA9IDA7XG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7fTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlSXRlbShhcnJheTphbnlbXSwgaW5kZXg6IG51bWJlcikge1xuICAgIC8vIFNldCBhY3RpdmUtaXRlbSBjbGFzcyBmb3IgdGhlIGRyb3Bkb3duXG4gICAgYXJyYXkuZm9yRWFjaCgoaXRlbSwgaW5kZXhJdGVtKSA9PiB7XG4gICAgICBpdGVtLmFjdGl2ZSA9IGluZGV4SXRlbSA9PT0gaW5kZXggPyB0cnVlIDogZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldENyb3BwZXJQcm9wZXJ0aWVzKGNvbmZpZzogYW55KSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBjb25maWcpIHtcbiAgICAgIHRoaXMuaW1nQ3JvcHBlckNvbmZpZ1twcm9wZXJ0eV0gPSBjb25maWdbcHJvcGVydHldO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0SW1nQ3JvcHBlckNoYW5nZSgpIHtcbiAgICB0aGlzLmltZ0Nyb3BwZXJDaGFuZ2VcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNraXBOZXh0SW1nQ3JvcHBlZC0tO1xuICAgICAgICBpZiAodGhpcy5za2lwTmV4dEltZ0Nyb3BwZWQgPj0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNraXBOZXh0SW1nQ3JvcHBlZCA9IDA7XG4gICAgICAgIHRoaXMuaXNJbWdDcm9wcGVkID0gdHJ1ZTtcbiAgICB9KVxuXG4gIH1cblxuICAvKiBSb3RhdGlvbnMgZnVuY3Rpb25zICovXG5cbiAgcm90YXRlTGVmdCgpIHtcbiAgICAgIHRoaXMuY2FudmFzUm90YXRpb24tLTtcbiAgICAgIHRoaXMuZmxpcEFmdGVyUm90YXRlKCk7XG4gICAgICB0aGlzLm9uSW1nTW9kaWZpZWQoKTtcbiAgfVxuXG4gIHJvdGF0ZVJpZ2h0KCkge1xuICAgICAgdGhpcy5jYW52YXNSb3RhdGlvbisrO1xuICAgICAgdGhpcy5mbGlwQWZ0ZXJSb3RhdGUoKTtcbiAgICAgIHRoaXMub25JbWdNb2RpZmllZCgpO1xuICB9XG5cbiAgZmxpcEhvcml6b250YWwoKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybSA9IHtcbiAgICAgICAgICAuLi50aGlzLnRyYW5zZm9ybSxcbiAgICAgICAgICBmbGlwSDogIXRoaXMudHJhbnNmb3JtLmZsaXBIXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkltZ01vZGlmaWVkKCk7XG4gIH1cblxuICBmbGlwVmVydGljYWwoKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybSA9IHtcbiAgICAgICAgICAuLi50aGlzLnRyYW5zZm9ybSxcbiAgICAgICAgICBmbGlwVjogIXRoaXMudHJhbnNmb3JtLmZsaXBWXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkltZ01vZGlmaWVkKCk7XG4gIH1cblxuICBwcml2YXRlIGZsaXBBZnRlclJvdGF0ZSgpIHtcbiAgICBjb25zdCBmbGlwcGVkSCA9IHRoaXMudHJhbnNmb3JtLmZsaXBIO1xuICAgIGNvbnN0IGZsaXBwZWRWID0gdGhpcy50cmFuc2Zvcm0uZmxpcFY7XG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7XG4gICAgICAgIC4uLnRoaXMudHJhbnNmb3JtLFxuICAgICAgICBmbGlwSDogZmxpcHBlZFYsXG4gICAgICAgIGZsaXBWOiBmbGlwcGVkSFxuICAgIH07XG4gIH1cblxuICAvKiBab29tIGZ1bmN0aW9ucyAqL1xuXG4gIHpvb21PdXQoKSB7XG4gICAgICB0aGlzLnNjYWxlIC09ICB0aGlzLnNjYWxlIDwgMC4yPyAwIDogLjE7XG4gICAgICB0aGlzLnRyYW5zZm9ybSA9IHtcbiAgICAgICAgICAuLi50aGlzLnRyYW5zZm9ybSxcbiAgICAgICAgICBzY2FsZTogdGhpcy5zY2FsZVxuICAgICAgfTtcbiAgICAgIHRoaXMub25JbWdNb2RpZmllZCgpO1xuICB9XG5cbiAgem9vbUluKCkge1xuICAgICAgdGhpcy5zY2FsZSArPSAuMTtcbiAgICAgIHRoaXMudHJhbnNmb3JtID0ge1xuICAgICAgICAgIC4uLnRoaXMudHJhbnNmb3JtLFxuICAgICAgICAgIHNjYWxlOiB0aGlzLnNjYWxlXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkltZ01vZGlmaWVkKCk7XG4gIH1cblxuICBhcHBseU1ldGhvZChtZXRob2Q6IHN0cmluZykge1xuICAgIHRoaXNbbWV0aG9kXSgpOyAvLyBjYWxsIHRoZSBtZXRob2QgY29udGFpbnMgaW4gem9vbUNvbmZpZyBvciByb3RhdGlvbkNvbmZpZ1xuICB9XG59XG4iXX0=