angular-toolbox 1.4.6 → 1.5.0

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 (277) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/angular-toolbox.mjs +159 -166
  3. package/fesm2022/angular-toolbox.mjs.map +1 -1
  4. package/package.json +1 -3
  5. package/esm2022/angular-toolbox.mjs +0 -5
  6. package/esm2022/lib/angular-toolbox.module.mjs +0 -25
  7. package/esm2022/lib/collection/array-list-event-type.enum.mjs +0 -30
  8. package/esm2022/lib/collection/array-list.event.mjs +0 -23
  9. package/esm2022/lib/collection/array-list.mjs +0 -158
  10. package/esm2022/lib/collection/index.mjs +0 -11
  11. package/esm2022/lib/component/angular-toolbox-logo/angular-toolbox-logo.component.mjs +0 -18
  12. package/esm2022/lib/component/dropdown/dropdown.component.mjs +0 -139
  13. package/esm2022/lib/component/index.mjs +0 -11
  14. package/esm2022/lib/component/layout/border-layout/border-layout.component.mjs +0 -149
  15. package/esm2022/lib/component/layout/border-layout/util/border-layout-bounds-manager.mjs +0 -211
  16. package/esm2022/lib/component/layout/border-layout/util/border-layout-renderer.mjs +0 -267
  17. package/esm2022/lib/component/layout/border-layout/util/resize-method.mjs +0 -9
  18. package/esm2022/lib/component/layout/border-layout-container/border-layout-container.component.mjs +0 -145
  19. package/esm2022/lib/component/layout/index.mjs +0 -3
  20. package/esm2022/lib/core/abstract/abstract-subscription-manager.mjs +0 -113
  21. package/esm2022/lib/core/abstract/abstract-version-manager.mjs +0 -37
  22. package/esm2022/lib/core/abstract/index.mjs +0 -3
  23. package/esm2022/lib/core/bridge/app-bridge.mjs +0 -76
  24. package/esm2022/lib/core/error/app-bridge-error.mjs +0 -24
  25. package/esm2022/lib/core/error/http-mock-service-error.mjs +0 -26
  26. package/esm2022/lib/core/error/index.mjs +0 -5
  27. package/esm2022/lib/core/error/integrity-error.mjs +0 -26
  28. package/esm2022/lib/core/error/subscription-error.mjs +0 -26
  29. package/esm2022/lib/core/impl/index.mjs +0 -2
  30. package/esm2022/lib/core/impl/lang/identifiable-component.mjs +0 -47
  31. package/esm2022/lib/core/impl/lang/index.mjs +0 -2
  32. package/esm2022/lib/core/impl/version/version.impl.mjs +0 -36
  33. package/esm2022/lib/core/index.mjs +0 -4
  34. package/esm2022/lib/directive/anchor-link.directive.mjs +0 -62
  35. package/esm2022/lib/directive/button-role.directive.mjs +0 -102
  36. package/esm2022/lib/directive/content-renderer.directive.mjs +0 -61
  37. package/esm2022/lib/directive/index.mjs +0 -5
  38. package/esm2022/lib/directive/navigate-to-url.directive.mjs +0 -51
  39. package/esm2022/lib/directive/navigation-directive-base.mjs +0 -23
  40. package/esm2022/lib/framework/dialog/dialog-backdrop-type.enum.mjs +0 -23
  41. package/esm2022/lib/framework/dialog/dialog-backdrop.type.mjs +0 -9
  42. package/esm2022/lib/framework/dialog/dialog-default-config.mjs +0 -15
  43. package/esm2022/lib/framework/dialog/dialog-outlet-event-type.mjs +0 -9
  44. package/esm2022/lib/framework/dialog/dialog-outlet.event.mjs +0 -33
  45. package/esm2022/lib/framework/dialog/dialog-service.error.mjs +0 -27
  46. package/esm2022/lib/framework/dialog/dialog-service.mjs +0 -67
  47. package/esm2022/lib/framework/dialog/dialog.config.mjs +0 -9
  48. package/esm2022/lib/framework/dialog/dialog.outlet.mjs +0 -94
  49. package/esm2022/lib/framework/dialog/index.mjs +0 -16
  50. package/esm2022/lib/framework/index.mjs +0 -6
  51. package/esm2022/lib/framework/logging/connector/console-log-connector.mjs +0 -48
  52. package/esm2022/lib/framework/logging/connector/default-log-connector.mjs +0 -34
  53. package/esm2022/lib/framework/logging/connector/html-log-connector.mjs +0 -177
  54. package/esm2022/lib/framework/logging/connector/index.mjs +0 -4
  55. package/esm2022/lib/framework/logging/impl/abstract-logger.mjs +0 -100
  56. package/esm2022/lib/framework/logging/impl/index.mjs +0 -3
  57. package/esm2022/lib/framework/logging/impl/log-impl.mjs +0 -31
  58. package/esm2022/lib/framework/logging/index.mjs +0 -4
  59. package/esm2022/lib/framework/logging/util/index.mjs +0 -4
  60. package/esm2022/lib/framework/logging/util/log.builder.mjs +0 -28
  61. package/esm2022/lib/framework/logging/util/log.constant.mjs +0 -24
  62. package/esm2022/lib/framework/logging/util/log.util.mjs +0 -142
  63. package/esm2022/lib/framework/mock/documentation/component/atx-mock-description/atx-mock-description.component.mjs +0 -27
  64. package/esm2022/lib/framework/mock/documentation/component/atx-mock-documentation/atx-mock-documentation.component.mjs +0 -77
  65. package/esm2022/lib/framework/mock/documentation/component/atx-mock-full-description/atx-mock-full-description.component.mjs +0 -27
  66. package/esm2022/lib/framework/mock/documentation/component/atx-mock-methods/atx-mock-methods.component.mjs +0 -71
  67. package/esm2022/lib/framework/mock/documentation/component/atx-mock-param/atx-mock-param.component.mjs +0 -27
  68. package/esm2022/lib/framework/mock/documentation/index.mjs +0 -2
  69. package/esm2022/lib/framework/mock/documentation/model/business/full-description.type.mjs +0 -9
  70. package/esm2022/lib/framework/mock/documentation/model/business/method-doc-descriptor.type.mjs +0 -9
  71. package/esm2022/lib/framework/mock/http/config/http-mock-parameters.mjs +0 -9
  72. package/esm2022/lib/framework/mock/http/config/http-mock.decorator.mjs +0 -48
  73. package/esm2022/lib/framework/mock/http/config/index.mjs +0 -3
  74. package/esm2022/lib/framework/mock/http/config/route-mock-config.mjs +0 -9
  75. package/esm2022/lib/framework/mock/http/core/data-storage.mjs +0 -9
  76. package/esm2022/lib/framework/mock/http/core/response-delay.mjs +0 -9
  77. package/esm2022/lib/framework/mock/http/event/event-target.impl.mjs +0 -136
  78. package/esm2022/lib/framework/mock/http/event/progress-event-mock.mjs +0 -48
  79. package/esm2022/lib/framework/mock/http/index.mjs +0 -4
  80. package/esm2022/lib/framework/mock/http/logging/http-mock-logger.mjs +0 -15
  81. package/esm2022/lib/framework/mock/http/logging/http-mock-logging-metadata.builder.mjs +0 -35
  82. package/esm2022/lib/framework/mock/http/path-to-regexp/constants.mjs +0 -111
  83. package/esm2022/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.mjs +0 -34
  84. package/esm2022/lib/framework/mock/http/path-to-regexp/get-flags.mjs +0 -28
  85. package/esm2022/lib/framework/mock/http/path-to-regexp/iter.mjs +0 -76
  86. package/esm2022/lib/framework/mock/http/path-to-regexp/lexer.mjs +0 -96
  87. package/esm2022/lib/framework/mock/http/path-to-regexp/loose-replacer.mjs +0 -28
  88. package/esm2022/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.mjs +0 -17
  89. package/esm2022/lib/framework/mock/http/path-to-regexp/model/encode.mjs +0 -17
  90. package/esm2022/lib/framework/mock/http/path-to-regexp/model/key.mjs +0 -17
  91. package/esm2022/lib/framework/mock/http/path-to-regexp/model/lex-token.mjs +0 -17
  92. package/esm2022/lib/framework/mock/http/path-to-regexp/model/lexer-type.mjs +0 -17
  93. package/esm2022/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.mjs +0 -17
  94. package/esm2022/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.mjs +0 -17
  95. package/esm2022/lib/framework/mock/http/path-to-regexp/model/parse-options.mjs +0 -17
  96. package/esm2022/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.mjs +0 -17
  97. package/esm2022/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.mjs +0 -17
  98. package/esm2022/lib/framework/mock/http/path-to-regexp/model/simple-tokens.mjs +0 -30
  99. package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.mjs +0 -17
  100. package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-type.mjs +0 -17
  101. package/esm2022/lib/framework/mock/http/path-to-regexp/model/token.mjs +0 -17
  102. package/esm2022/lib/framework/mock/http/path-to-regexp/string-to-token-data.mjs +0 -87
  103. package/esm2022/lib/framework/mock/http/path-to-regexp/to-key-regexp.mjs +0 -41
  104. package/esm2022/lib/framework/mock/http/path-to-regexp/to-stringify.mjs +0 -29
  105. package/esm2022/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.mjs +0 -49
  106. package/esm2022/lib/framework/mock/http/path-to-regexp/token-data.mjs +0 -33
  107. package/esm2022/lib/framework/mock/http/util/data-storage.builder.mjs +0 -37
  108. package/esm2022/lib/framework/mock/http/util/fetch-client-response-type.enum.mjs +0 -40
  109. package/esm2022/lib/framework/mock/http/util/fetch-client.builder.mjs +0 -52
  110. package/esm2022/lib/framework/mock/http/util/http-headers-mock.builder.mjs +0 -138
  111. package/esm2022/lib/framework/mock/http/util/http-headers.util.mjs +0 -71
  112. package/esm2022/lib/framework/mock/http/util/http-method-ref.enum.mjs +0 -60
  113. package/esm2022/lib/framework/mock/http/util/http-mock-max-delay.mjs +0 -12
  114. package/esm2022/lib/framework/mock/http/util/http-mock-response-delay.util.mjs +0 -33
  115. package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +0 -141
  116. package/esm2022/lib/framework/mock/http/util/http-status-text-finder.mjs +0 -146
  117. package/esm2022/lib/framework/mock/http/util/http-status-text.enum.mjs +0 -260
  118. package/esm2022/lib/framework/mock/http/util/index.mjs +0 -8
  119. package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +0 -372
  120. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.impl.mjs +0 -30
  121. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.mjs +0 -20
  122. package/esm2022/lib/framework/mock/http/xhr/index.mjs +0 -2
  123. package/esm2022/lib/framework/mock/http/xhr/xhr-base.mjs +0 -123
  124. package/esm2022/lib/framework/mock/http/xhr/xhr-proxy-impl.mjs +0 -178
  125. package/esm2022/lib/framework/mock/http-monitoring-console/component/abstract/log-renderer-base.mjs +0 -34
  126. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.mjs +0 -29
  127. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.mjs +0 -40
  128. package/esm2022/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.mjs +0 -62
  129. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.mjs +0 -62
  130. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.mjs +0 -45
  131. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.mjs +0 -35
  132. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.mjs +0 -70
  133. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/request-info-renderer/request-info-renderer.component.mjs +0 -43
  134. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/request-list-renderer/request-list-renderer.component.mjs +0 -116
  135. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.mjs +0 -89
  136. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.mjs +0 -115
  137. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/spinner/spinner.component.mjs +0 -22
  138. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.mjs +0 -81
  139. package/esm2022/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.mjs +0 -91
  140. package/esm2022/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.mjs +0 -59
  141. package/esm2022/lib/framework/mock/http-monitoring-console/index.mjs +0 -2
  142. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.mjs +0 -40
  143. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.mjs +0 -9
  144. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.mjs +0 -9
  145. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.mjs +0 -14
  146. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-timeline-data.mjs +0 -9
  147. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.mjs +0 -9
  148. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.mjs +0 -9
  149. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.mjs +0 -9
  150. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.mjs +0 -9
  151. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.mjs +0 -9
  152. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.mjs +0 -9
  153. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.mjs +0 -9
  154. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.mjs +0 -9
  155. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.mjs +0 -105
  156. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.controller.mjs +0 -96
  157. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.state.mjs +0 -126
  158. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-user-action.service.mjs +0 -40
  159. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-body-type.mjs +0 -50
  160. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-type-class.mjs +0 -45
  161. package/esm2022/lib/framework/mock/http-monitoring-console/util/data.util.mjs +0 -95
  162. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/body-converter.mjs +0 -40
  163. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/body-serializer.mjs +0 -58
  164. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/form-data-serializer.mjs +0 -33
  165. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/hmfl-builder.mjs +0 -27
  166. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/http-request-converter.mjs +0 -62
  167. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/http-response-converter.mjs +0 -50
  168. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-converter.mjs +0 -43
  169. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-headers-converter.mjs +0 -53
  170. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-message.util.mjs +0 -30
  171. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-metadata-converter.mjs +0 -45
  172. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/request-metadata-converter.mjs +0 -47
  173. package/esm2022/lib/framework/mock/http-monitoring-console/util/size.util.mjs +0 -57
  174. package/esm2022/lib/framework/mock/http-monitoring-console/util/timeline.util.mjs +0 -28
  175. package/esm2022/lib/framework/mock/http-monitoring-console/util/url.util.mjs +0 -51
  176. package/esm2022/lib/model/business/index.mjs +0 -8
  177. package/esm2022/lib/model/business/lang/app-bridge-command.mjs +0 -9
  178. package/esm2022/lib/model/business/lang/destroyable.mjs +0 -9
  179. package/esm2022/lib/model/business/lang/identifiable.mjs +0 -9
  180. package/esm2022/lib/model/business/lang/index.mjs +0 -5
  181. package/esm2022/lib/model/business/lang/instantiable.mjs +0 -9
  182. package/esm2022/lib/model/business/logging/atx-logger-config.provider.mjs +0 -21
  183. package/esm2022/lib/model/business/logging/http-mock-logging-constant.enum.mjs +0 -34
  184. package/esm2022/lib/model/business/logging/index.mjs +0 -8
  185. package/esm2022/lib/model/business/logging/log-connector.mjs +0 -9
  186. package/esm2022/lib/model/business/logging/log-level.enum.mjs +0 -34
  187. package/esm2022/lib/model/business/logging/log.mjs +0 -9
  188. package/esm2022/lib/model/business/logging/logger-config.mjs +0 -9
  189. package/esm2022/lib/model/business/logging/logger.mjs +0 -2
  190. package/esm2022/lib/model/business/logging/transactional-logger.mjs +0 -9
  191. package/esm2022/lib/model/business/mock/http/config/http-mock-production-policy.enum.mjs +0 -27
  192. package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.mjs +0 -9
  193. package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.provider.mjs +0 -33
  194. package/esm2022/lib/model/business/mock/http/config/index.mjs +0 -4
  195. package/esm2022/lib/model/business/mock/http/fetch-client.mjs +0 -14
  196. package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +0 -9
  197. package/esm2022/lib/model/business/mock/http/http-mock-config.mjs +0 -9
  198. package/esm2022/lib/model/business/mock/http/http-mock-endpoint-descriptor.mjs +0 -9
  199. package/esm2022/lib/model/business/mock/http/http-mock-endpoint.mjs +0 -9
  200. package/esm2022/lib/model/business/mock/http/http-mock-error.mjs +0 -9
  201. package/esm2022/lib/model/business/mock/http/http-mock-interceptor.mjs +0 -9
  202. package/esm2022/lib/model/business/mock/http/http-mock-method-descriptor.mjs +0 -9
  203. package/esm2022/lib/model/business/mock/http/http-mock-parameter-descriptor.mjs +0 -9
  204. package/esm2022/lib/model/business/mock/http/http-mock-request-metadata.mjs +0 -9
  205. package/esm2022/lib/model/business/mock/http/http-response-mock.mjs +0 -9
  206. package/esm2022/lib/model/business/mock/http/index.mjs +0 -15
  207. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-metadata.mjs +0 -9
  208. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.mjs +0 -9
  209. package/esm2022/lib/model/business/mock/http/logging/index.mjs +0 -3
  210. package/esm2022/lib/model/business/mock/http/xhr-proxy.mjs +0 -9
  211. package/esm2022/lib/model/business/navigator/battery-manager.mjs +0 -9
  212. package/esm2022/lib/model/business/navigator/connection-type.mjs +0 -9
  213. package/esm2022/lib/model/business/navigator/effective-connection-type.mjs +0 -9
  214. package/esm2022/lib/model/business/navigator/index.mjs +0 -5
  215. package/esm2022/lib/model/business/navigator/network-information.mjs +0 -9
  216. package/esm2022/lib/model/business/subscription/index.mjs +0 -2
  217. package/esm2022/lib/model/business/subscription/subscription-manager.mjs +0 -9
  218. package/esm2022/lib/model/business/ui/dark-mode-config.mjs +0 -9
  219. package/esm2022/lib/model/business/ui/dark-mode-config.provider.mjs +0 -43
  220. package/esm2022/lib/model/business/ui/dark-mode.constant.mjs +0 -16
  221. package/esm2022/lib/model/business/ui/dropdown/dropdown-event-type.enum.mjs +0 -22
  222. package/esm2022/lib/model/business/ui/dropdown/dropdown-position.mjs +0 -9
  223. package/esm2022/lib/model/business/ui/dropdown/dropdown-state.mjs +0 -9
  224. package/esm2022/lib/model/business/ui/dropdown/dropdown.event.mjs +0 -27
  225. package/esm2022/lib/model/business/ui/dropdown/index.mjs +0 -6
  226. package/esm2022/lib/model/business/ui/dropdown/popover-state.mjs +0 -9
  227. package/esm2022/lib/model/business/ui/index.mjs +0 -8
  228. package/esm2022/lib/model/business/ui/layout/index.mjs +0 -6
  229. package/esm2022/lib/model/business/ui/layout/layout-constraints.mjs +0 -9
  230. package/esm2022/lib/model/business/ui/layout/layout-drag-event-type.enum.mjs +0 -26
  231. package/esm2022/lib/model/business/ui/layout/layout-drag.event.mjs +0 -23
  232. package/esm2022/lib/model/business/ui/layout/layout-region.error.mjs +0 -22
  233. package/esm2022/lib/model/business/ui/layout/layout-region.mjs +0 -35
  234. package/esm2022/lib/model/business/ui/scroll-behavior.type.mjs +0 -9
  235. package/esm2022/lib/model/business/ui/window/index.mjs +0 -5
  236. package/esm2022/lib/model/business/ui/window/window-feature-state.mjs +0 -22
  237. package/esm2022/lib/model/business/ui/window/window-init.mjs +0 -9
  238. package/esm2022/lib/model/business/ui/window/window-ref.mjs +0 -9
  239. package/esm2022/lib/model/business/ui/window/window-target.mjs +0 -34
  240. package/esm2022/lib/model/business/version/index.mjs +0 -5
  241. package/esm2022/lib/model/business/version/version-config.mjs +0 -9
  242. package/esm2022/lib/model/business/version/version-config.provider.mjs +0 -40
  243. package/esm2022/lib/model/business/version/version-manager.mjs +0 -10
  244. package/esm2022/lib/model/business/version/version.mjs +0 -10
  245. package/esm2022/lib/model/index.mjs +0 -3
  246. package/esm2022/lib/model/service/index.mjs +0 -6
  247. package/esm2022/lib/model/service/logging/index.mjs +0 -2
  248. package/esm2022/lib/model/service/logging/logger-service.mjs +0 -41
  249. package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +0 -279
  250. package/esm2022/lib/model/service/mock/http/index.mjs +0 -3
  251. package/esm2022/lib/model/service/mock/http/logging/atx-http-mock-console.service.mjs +0 -92
  252. package/esm2022/lib/model/service/mock/http/logging/http-mock-logging-service.mjs +0 -117
  253. package/esm2022/lib/model/service/mock/http/logging/index.mjs +0 -3
  254. package/esm2022/lib/model/service/subscription/subscription.service.mjs +0 -30
  255. package/esm2022/lib/model/service/ui/app-bridge.service.mjs +0 -142
  256. package/esm2022/lib/model/service/ui/dark-mode.service.mjs +0 -183
  257. package/esm2022/lib/model/service/ui/index.mjs +0 -5
  258. package/esm2022/lib/model/service/ui/scroll.service.mjs +0 -93
  259. package/esm2022/lib/model/service/ui/window/abstract-window.service.mjs +0 -49
  260. package/esm2022/lib/model/service/ui/window/index.mjs +0 -3
  261. package/esm2022/lib/model/service/ui/window/window.service.mjs +0 -103
  262. package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +0 -37
  263. package/esm2022/lib/model/service/version/index.mjs +0 -3
  264. package/esm2022/lib/model/service/version/version.service.mjs +0 -35
  265. package/esm2022/lib/pipe/index.mjs +0 -2
  266. package/esm2022/lib/pipe/safe/safe-html.pipe.mjs +0 -34
  267. package/esm2022/lib/util/aria-role.constant.mjs +0 -16
  268. package/esm2022/lib/util/default-scroll-behavior.mjs +0 -13
  269. package/esm2022/lib/util/empty-string.const.mjs +0 -12
  270. package/esm2022/lib/util/http-mocking-framework-config.manager.mjs +0 -129
  271. package/esm2022/lib/util/index.mjs +0 -6
  272. package/esm2022/lib/util/js-type.mjs +0 -40
  273. package/esm2022/lib/util/uuid.mjs +0 -126
  274. package/esm2022/lib/util/version.util.mjs +0 -44
  275. package/esm2022/lib/util/window/window-features-builder.mjs +0 -90
  276. package/esm2022/lib/util/window/window-header-tag-util.mjs +0 -42
  277. package/esm2022/public-api.mjs +0 -20
@@ -1,267 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Pascal ECHEMANN. All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be found in
6
- * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
- */
8
- import { EventEmitter } from '@angular/core';
9
- import { EMPTY_STRING } from '../../../../util';
10
- import { LayoutDragEvent, LayoutDragEventType, LayoutRegion, LayoutRegionError } from '../../../../model';
11
- import { IdentifiableComponent } from '../../../../core';
12
- import { BorderLayoutBoundsManager } from './border-layout-bounds-manager';
13
- /**
14
- * @private
15
- */
16
- const MOUSEMOVE = "mousemove";
17
- /**
18
- * @private
19
- */
20
- const MOUSEUP = "mouseup";
21
- /**
22
- * @private
23
- */
24
- const REGION_ERR_MSG = "A container with the same identifier has already been registered: ";
25
- /**
26
- * @private
27
- */
28
- const LAYOUT_ERR_MSG = "No layout container has been registered.";
29
- /**
30
- * @private
31
- * A controller object responsible for handling user actions on a `BorderLayout` container.
32
- */
33
- export class BorderLayoutRenderer extends IdentifiableComponent {
34
- /**
35
- * @private
36
- */
37
- constructor(subscribeSvc, document) {
38
- super();
39
- this.subscribeSvc = subscribeSvc;
40
- this.document = document;
41
- /**
42
- * Emits events each time the user starts, or stops dragging handle.
43
- */
44
- this.userAction = new EventEmitter();
45
- /**
46
- * @private
47
- */
48
- this.containerList = [];
49
- /**
50
- * @private
51
- */
52
- this.storedStopHandler = null;
53
- /**
54
- * @private
55
- */
56
- this.storedMoveHandler = null;
57
- this.boundsManager = new BorderLayoutBoundsManager();
58
- }
59
- /**
60
- * Add the list `BorderLayoutContainer` objects associated with the main container to this controller.
61
- *
62
- * @param containers the list `BorderLayoutContainer` objects associated with the main container.
63
- */
64
- addContainers(containers) {
65
- let regionValidator = EMPTY_STRING;
66
- containers.forEach(container => {
67
- const constraints = container.constraints;
68
- const r = constraints.region;
69
- if (regionValidator.indexOf(r) !== -1)
70
- throw new LayoutRegionError(REGION_ERR_MSG + r);
71
- regionValidator += r;
72
- this.subscribeSvc.register(this, container.resizeStart.subscribe(container => this.resizeEnter(container)));
73
- this.boundsManager.initBounds(container);
74
- this.containerList.push(container);
75
- });
76
- }
77
- ;
78
- /**
79
- * Sets the reference to the HTML container associated with the main container.
80
- *
81
- * @param lytContainer The reference to the HTML container associated with the main container.
82
- */
83
- setLayoutContainer(lytContainer) {
84
- this.lytContainerElm = lytContainer;
85
- }
86
- ;
87
- /**
88
- * @private
89
- * For test purpose only.
90
- * Returns the reference to the internal `BorderLayoutBoundsManager` instance.
91
- */
92
- getBoundsManager() {
93
- return this.boundsManager;
94
- }
95
- /**
96
- * Changes the constraints of the region specified by the `LayoutConstraints.region` property.
97
- *
98
- * @param constraints The new constraints of the associated region.
99
- */
100
- setConstraints(constraints) {
101
- const region = constraints.region;
102
- const container = this.containerList.find((container) => container.constraints.region === region);
103
- if (!container)
104
- throw new LayoutRegionError(`Invalid region: no container with the region '${region}' has been found.`);
105
- if (constraints.size === undefined)
106
- constraints.size = container.getSize();
107
- container.constraints = constraints;
108
- this.paint();
109
- }
110
- /**
111
- * Makes this object elligible for garbage collection.
112
- */
113
- destroy() {
114
- if (this.storedStopHandler) {
115
- this.document.removeEventListener(MOUSEMOVE, this.storedMoveHandler);
116
- this.document.removeEventListener(MOUSEUP, this.storedStopHandler);
117
- this.deleteStoredHandlers();
118
- }
119
- this.subscribeSvc.clearAll(this);
120
- this.lytContainerElm = null;
121
- this.boundsManager.destroy();
122
- this.boundsManager = null;
123
- this.containerList.length = 0;
124
- this.containerList = null;
125
- }
126
- /**
127
- * Forces the layout of all `BorderLayoutContainer` objects associated with the main container.
128
- */
129
- paint() {
130
- this.checkLytContainer();
131
- this.render(this.lytContainerElm.offsetWidth);
132
- }
133
- /**
134
- * Returns the `BorderLayoutContainer` component associated with the specified region.
135
- *
136
- * @param region The region for which to retreive the container.
137
- *
138
- * @returns The `BorderLayoutContainer` component associated with the specified region,
139
- * or `undefined` whether no container has been found.
140
- */
141
- getBorderLayoutContainer(region) {
142
- return this.containerList.find((c) => c.constraints.region === region);
143
- }
144
- /**
145
- * Resizes the specified region of the associated container.
146
- *
147
- * @param region The region to resize.
148
- * @param size The new size of the region to resize.
149
- *
150
- * @returns `true` whether the specified region has been resized; `false` otherwise.
151
- */
152
- resizeRegion(region, size) {
153
- if (region === LayoutRegion.CENTER)
154
- return false;
155
- const container = this.getBorderLayoutContainer(region);
156
- if (!container)
157
- return false;
158
- container.setSize(size);
159
- this.boundsManager.initBounds(container);
160
- this.paint();
161
- return true;
162
- }
163
- /**
164
- * @private
165
- */
166
- resizeEnter(container) {
167
- this.checkLytContainer();
168
- const lytNativeElm = this.lytContainerElm;
169
- const width = lytNativeElm.offsetWidth;
170
- const height = lytNativeElm.offsetHeight;
171
- const bounds = lytNativeElm.getBoundingClientRect();
172
- const constraints = container.constraints;
173
- const region = constraints.region;
174
- const minSize = constraints.minSize;
175
- const maxSize = constraints.maxSize;
176
- const doc = this.document;
177
- let size = 0;
178
- this.boundsManager.setOrigin(bounds.x, bounds.y);
179
- let resizeMethod = this.boundsManager.getResizeMethod(region);
180
- container.selected = true;
181
- const onMoveHandler = (event) => {
182
- event.stopPropagation();
183
- event.preventDefault();
184
- size = resizeMethod(event, width, height, minSize, maxSize);
185
- container.setSize(size);
186
- this.render(width);
187
- this.fireEvent(container, LayoutDragEventType.DRAGGING);
188
- };
189
- const onStopHandler = (event) => {
190
- event.stopPropagation();
191
- event.preventDefault();
192
- doc.removeEventListener(MOUSEMOVE, onMoveHandler);
193
- doc.removeEventListener(MOUSEUP, onStopHandler);
194
- this.deleteStoredHandlers();
195
- container.selected = false;
196
- size = resizeMethod(event, width, height, minSize, maxSize);
197
- container.setSize(size);
198
- this.render(width);
199
- this.fireEvent(container, LayoutDragEventType.DRAG_STOP);
200
- };
201
- this.storedMoveHandler = onMoveHandler;
202
- this.storedStopHandler = onStopHandler;
203
- this.fireEvent(container, LayoutDragEventType.DRAG_START);
204
- doc.addEventListener(MOUSEMOVE, onMoveHandler);
205
- doc.addEventListener(MOUSEUP, onStopHandler);
206
- }
207
- /**
208
- * @private
209
- */
210
- fireEvent(target, type) {
211
- const evt = new LayoutDragEvent(target, type);
212
- this.userAction.emit(evt);
213
- }
214
- /**
215
- * @private
216
- */
217
- render(width) {
218
- const bounds = this.boundsManager.getBounds();
219
- const top = bounds.top;
220
- const bottom = bounds.bottom;
221
- const left = bounds.left;
222
- const right = bounds.right;
223
- const cList = this.containerList;
224
- let cursor = cList.length - 1;
225
- while (cursor >= 0) {
226
- const cont = cList[cursor];
227
- const r = cont.constraints.region;
228
- cursor--;
229
- if (r === LayoutRegion.NORTH || r === LayoutRegion.SOUTH)
230
- continue;
231
- if (r === LayoutRegion.WEST) {
232
- cont.setTopPos(top);
233
- cont.setRightPos(width - left);
234
- cont.setBottomPos(bottom - top);
235
- continue;
236
- }
237
- if (r === LayoutRegion.CENTER) {
238
- cont.setTopPos(top);
239
- cont.setLeftPos(left);
240
- cont.setRightPos(right - left);
241
- cont.setBottomPos(bottom - top);
242
- continue;
243
- }
244
- if (r === LayoutRegion.EAST) {
245
- cont.setTopPos(top);
246
- cont.setLeftPos(width - (right - left));
247
- cont.setBottomPos(bottom - top);
248
- continue;
249
- }
250
- }
251
- ;
252
- }
253
- /**
254
- * @private
255
- */
256
- checkLytContainer() {
257
- if (!this.lytContainerElm)
258
- throw new ReferenceError(LAYOUT_ERR_MSG);
259
- }
260
- /**
261
- * @private
262
- */
263
- deleteStoredHandlers() {
264
- this.storedMoveHandler = this.storedStopHandler = null;
265
- }
266
- }
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWxheW91dC1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2NvbXBvbmVudC9sYXlvdXQvYm9yZGVyLWxheW91dC91dGlsL2JvcmRlci1sYXlvdXQtcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFrQyxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUF5QyxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pMLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFOztHQUVHO0FBQ0gsTUFBTSxTQUFTLEdBQVEsV0FBVyxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEdBQVEsU0FBUyxDQUFDO0FBRS9COztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQVcsb0VBQW9FLENBQUM7QUFFcEc7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBVywwQ0FBMEMsQ0FBQztBQUUxRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEscUJBQXFCO0lBZ0M3RDs7T0FFRztJQUNILFlBQW9CLFlBQWlDLEVBQ2pDLFFBQWtCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRlUsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFsQ3RDOztXQUVHO1FBQ2EsZUFBVSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTy9FOztXQUVHO1FBQ0ssa0JBQWEsR0FBNEIs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Q0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLFNBQVM7WUFDWCxDQUFDO1FBQ0gsQ0FBQztRQUFBLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDekQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQm9yZGVyTGF5b3V0Q29udGFpbmVyIH0gZnJvbSAnLi4vLi4vYm9yZGVyLWxheW91dC1jb250YWluZXIvYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbCc7XHJcbmltcG9ydCB7IERlc3Ryb3lhYmxlLCBMYXlvdXRDb25zdHJhaW50cywgTGF5b3V0RHJhZ0V2ZW50LCBMYXlvdXREcmFnRXZlbnRUeXBlLCBMYXlvdXRSZWdpb24sIExheW91dFJlZ2lvblR5cGUsIFN1YnNjcmlwdGlvblNlcnZpY2UsIExheW91dFJlZ2lvbkVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwnO1xyXG5pbXBvcnQgeyBJZGVudGlmaWFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlJztcclxuaW1wb3J0IHsgQm9yZGVyTGF5b3V0Qm91bmRzTWFuYWdlciB9IGZyb20gJy4vYm9yZGVyLWxheW91dC1ib3VuZHMtbWFuYWdlcic7XHJcbmltcG9ydCB7IFJlc2l6ZU1ldGhvZCB9IGZyb20gJy4vcmVzaXplLW1ldGhvZCc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IE1PVVNFTU9WRTogYW55ID0gXCJtb3VzZW1vdmVcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgTU9VU0VVUDogYW55ID0gXCJtb3VzZXVwXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IFJFR0lPTl9FUlJfTVNHOiBzdHJpbmcgPSBcIkEgY29udGFpbmVyIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllciBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQ6IFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBMQVlPVVRfRVJSX01TRzogc3RyaW5nID0gXCJObyBsYXlvdXQgY29udGFpbmVyIGhhcyBiZWVuIHJlZ2lzdGVyZWQuXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSBjb250cm9sbGVyIG9iamVjdCByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdXNlciBhY3Rpb25zIG9uIGEgYEJvcmRlckxheW91dGAgY29udGFpbmVyLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJvcmRlckxheW91dFJlbmRlcmVyIGV4dGVuZHMgSWRlbnRpZmlhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgRGVzdHJveWFibGUge1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBldmVudHMgZWFjaCB0aW1lIHRoZSB1c2VyIHN0YXJ0cywgb3Igc3RvcHMgZHJhZ2dpbmcgaGFuZGxlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB1c2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8TGF5b3V0RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGx5dENvbnRhaW5lckVsbSE6IEhUTUxEaXZFbGVtZW50O1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb250YWluZXJMaXN0OiBCb3JkZXJMYXlvdXRDb250YWluZXJbXSA9IFtdO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBib3VuZHNNYW5hZ2VyOiBCb3JkZXJMYXlvdXRCb3VuZHNNYW5hZ2VyOyBcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHN0b3JlZFN0b3BIYW5kbGVyOiBhbnkgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmVkTW92ZUhhbmRsZXI6IGFueSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdWJzY3JpYmVTdmM6IFN1YnNjcmlwdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIgPSBuZXcgQm9yZGVyTGF5b3V0Qm91bmRzTWFuYWdlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBsaXN0IGBCb3JkZXJMYXlvdXRDb250YWluZXJgIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGNvbnRhaW5lciB0byB0aGlzIGNvbnRyb2xsZXIuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGNvbnRhaW5lcnMgdGhlIGxpc3QgYEJvcmRlckxheW91dENvbnRhaW5lcmAgb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGggdGhlIG1haW4gY29udGFpbmVyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRDb250YWluZXJzKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxCb3JkZXJMYXlvdXRDb250YWluZXI+KTogdm9pZCB7XHJcbiAgICBsZXQgcmVnaW9uVmFsaWRhdG9yOiBzdHJpbmcgPSBFTVBUWV9TVFJJTkc7XHJcbiAgICBjb250YWluZXJzLmZvckVhY2goY29udGFpbmVyID0+IHtcclxuICAgICAgY29uc3QgY29uc3RyYWludHM6IExheW91dENvbnN0cmFpbnRzID0gY29udGFpbmVyLmNvbnN0cmFpbnRzO1xyXG4gICAgICBjb25zdCByOiBzdHJpbmcgPSBjb25zdHJhaW50cy5yZWdpb24gYXMgc3RyaW5nO1xyXG4gICAgICBpZiAocmVnaW9uVmFsaWRhdG9yLmluZGV4T2YocikgIT09IC0xKSB0aHJvdyBuZXcgTGF5b3V0UmVnaW9uRXJyb3IoUkVHSU9OX0VSUl9NU0cgKyByKTtcclxuICAgICAgcmVnaW9uVmFsaWRhdG9yICs9IHI7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlU3ZjLnJlZ2lzdGVyKHRoaXMsXHJcbiAgICAgICAgY29udGFpbmVyLnJlc2l6ZVN0YXJ0LnN1YnNjcmliZShjb250YWluZXI9PiB0aGlzLnJlc2l6ZUVudGVyKGNvbnRhaW5lcikpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuYm91bmRzTWFuYWdlci5pbml0Qm91bmRzKGNvbnRhaW5lcik7XHJcbiAgICAgIHRoaXMuY29udGFpbmVyTGlzdC5wdXNoKGNvbnRhaW5lcik7XHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIEhUTUwgY29udGFpbmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGx5dENvbnRhaW5lciBUaGUgcmVmZXJlbmNlIHRvIHRoZSBIVE1MIGNvbnRhaW5lciBhc3NvY2lhdGVkIHdpdGggdGhlIG1haW4gY29udGFpbmVyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRMYXlvdXRDb250YWluZXIobHl0Q29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5seXRDb250YWluZXJFbG0gPSBseXRDb250YWluZXI7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBGb3IgdGVzdCBwdXJwb3NlIG9ubHkuXHJcbiAgICogUmV0dXJucyB0aGUgcmVmZXJlbmNlIHRvIHRoZSBpbnRlcm5hbCBgQm9yZGVyTGF5b3V0Qm91bmRzTWFuYWdlcmAgaW5zdGFuY2UuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEJvdW5kc01hbmFnZXIoKTogQm9yZGVyTGF5b3V0Qm91bmRzTWFuYWdlciB7XHJcbiAgICByZXR1cm4gdGhpcy5ib3VuZHNNYW5hZ2VyOyBcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlcyB0aGUgY29uc3RyYWludHMgb2YgdGhlIHJlZ2lvbiBzcGVjaWZpZWQgYnkgdGhlIGBMYXlvdXRDb25zdHJhaW50cy5yZWdpb25gIHByb3BlcnR5LlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb25zdHJhaW50cyBUaGUgbmV3IGNvbnN0cmFpbnRzIG9mIHRoZSBhc3NvY2lhdGVkIHJlZ2lvbi5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0Q29uc3RyYWludHMoY29uc3RyYWludHM6IExheW91dENvbnN0cmFpbnRzKTogdm9pZCB7XHJcbiAgICBjb25zdCByZWdpb246IExheW91dFJlZ2lvblR5cGUgPSBjb25zdHJhaW50cy5yZWdpb24gYXMgTGF5b3V0UmVnaW9uVHlwZTtcclxuICAgIGNvbnN0IGNvbnRhaW5lcjogQm9yZGVyTGF5b3V0Q29udGFpbmVyIHwgdW5kZWZpbmVkID0gdGhpcy5jb250YWluZXJMaXN0LmZpbmQoKGNvbnRhaW5lcjogQm9yZGVyTGF5b3V0Q29udGFpbmVyKSA9PiBjb250YWluZXIuY29uc3RyYWludHMucmVnaW9uID09PSByZWdpb24pO1xyXG4gICAgaWYgKCFjb250YWluZXIpIHRocm93IG5ldyBMYXlvdXRSZWdpb25FcnJvcihgSW52YWxpZCByZWdpb246IG5vIGNvbnRhaW5lciB3aXRoIHRoZSByZWdpb24gJyR7cmVnaW9ufScgaGFzIGJlZW4gZm91bmQuYCk7XHJcbiAgICBpZiAoY29uc3RyYWludHMuc2l6ZSA9PT0gdW5kZWZpbmVkKSBjb25zdHJhaW50cy5zaXplID0gY29udGFpbmVyLmdldFNpemUoKTtcclxuICAgIGNvbnRhaW5lci5jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzO1xyXG4gICAgdGhpcy5wYWludCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgdGhpcyBvYmplY3QgZWxsaWdpYmxlIGZvciBnYXJiYWdlIGNvbGxlY3Rpb24uXHJcbiAgICovXHJcbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdG9yZWRTdG9wSGFuZGxlcikge1xyXG4gICAgICB0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoTU9VU0VNT1ZFLCB0aGlzLnN0b3JlZE1vdmVIYW5kbGVyKTtcclxuICAgICAgdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKE1PVVNFVVAsIHRoaXMuc3RvcmVkU3RvcEhhbmRsZXIpO1xyXG4gICAgICB0aGlzLmRlbGV0ZVN0b3JlZEhhbmRsZXJzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN1YnNjcmliZVN2Yy5jbGVhckFsbCh0aGlzKTtcclxuICAgIHRoaXMubHl0Q29udGFpbmVyRWxtID0gbnVsbCBhcyBhbnk7XHJcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5ib3VuZHNNYW5hZ2VyID0gbnVsbCBhcyBhbnk7XHJcbiAgICB0aGlzLmNvbnRhaW5lckxpc3QubGVuZ3RoID0gMDtcclxuICAgIHRoaXMuY29udGFpbmVyTGlzdCA9IG51bGwgYXMgYW55O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9yY2VzIHRoZSBsYXlvdXQgb2YgYWxsIGBCb3JkZXJMYXlvdXRDb250YWluZXJgIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGNvbnRhaW5lci5cclxuICAgKi9cclxuICBwdWJsaWMgcGFpbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrTHl0Q29udGFpbmVyKCk7XHJcbiAgICB0aGlzLnJlbmRlcih0aGlzLmx5dENvbnRhaW5lckVsbS5vZmZzZXRXaWR0aCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVnaW9uLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSByZWdpb24gVGhlIHJlZ2lvbiBmb3Igd2hpY2ggdG8gcmV0cmVpdmUgdGhlIGNvbnRhaW5lci5cclxuICAgKiBcclxuICAgKiBAcmV0dXJucyBUaGUgYEJvcmRlckxheW91dENvbnRhaW5lcmAgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHJlZ2lvbixcclxuICAgKiAgICAgICAgICBvciBgdW5kZWZpbmVkYCB3aGV0aGVyIG5vIGNvbnRhaW5lciBoYXMgYmVlbiBmb3VuZC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Qm9yZGVyTGF5b3V0Q29udGFpbmVyKHJlZ2lvbjogTGF5b3V0UmVnaW9uVHlwZSk6IEJvcmRlckxheW91dENvbnRhaW5lciB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWluZXJMaXN0LmZpbmQoKGM6IEJvcmRlckxheW91dENvbnRhaW5lcik9PiBjLmNvbnN0cmFpbnRzLnJlZ2lvbiA9PT0gcmVnaW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2l6ZXMgdGhlIHNwZWNpZmllZCByZWdpb24gb2YgdGhlIGFzc29jaWF0ZWQgY29udGFpbmVyLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSByZWdpb24gVGhlIHJlZ2lvbiB0byByZXNpemUuXHJcbiAgICogQHBhcmFtIHNpemUgVGhlIG5ldyBzaXplIG9mIHRoZSByZWdpb24gdG8gcmVzaXplLlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIGB0cnVlYCB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGhhcyBiZWVuIHJlc2l6ZWQ7IGBmYWxzZWAgb3RoZXJ3aXNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZXNpemVSZWdpb24ocmVnaW9uOiBMYXlvdXRSZWdpb24sIHNpemU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHJlZ2lvbiA9PT0gTGF5b3V0UmVnaW9uLkNFTlRFUikgcmV0dXJuIGZhbHNlO1xyXG4gICAgY29uc3QgY29udGFpbmVyOiBCb3JkZXJMYXlvdXRDb250YWluZXIgfCB1bmRlZmluZWQgPSB0aGlzLmdldEJvcmRlckxheW91dENvbnRhaW5lcihyZWdpb24pO1xyXG4gICAgaWYgKCFjb250YWluZXIpIHJldHVybiBmYWxzZTtcclxuICAgIGNvbnRhaW5lci5zZXRTaXplKHNpemUpO1xyXG4gICAgdGhpcy5ib3VuZHNNYW5hZ2VyLmluaXRCb3VuZHMoY29udGFpbmVyKTtcclxuICAgIHRoaXMucGFpbnQoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHJlc2l6ZUVudGVyKGNvbnRhaW5lcjogQm9yZGVyTGF5b3V0Q29udGFpbmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrTHl0Q29udGFpbmVyKCk7XHJcbiAgICBjb25zdCBseXROYXRpdmVFbG06IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5seXRDb250YWluZXJFbG07XHJcbiAgICBjb25zdCB3aWR0aDogbnVtYmVyID0gbHl0TmF0aXZlRWxtLm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3QgaGVpZ2h0OiBudW1iZXIgPSBseXROYXRpdmVFbG0ub2Zmc2V0SGVpZ2h0O1xyXG4gICAgY29uc3QgYm91bmRzOiBET01SZWN0ID0gbHl0TmF0aXZlRWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgY29uc3RyYWludHM6IExheW91dENvbnN0cmFpbnRzID0gY29udGFpbmVyLmNvbnN0cmFpbnRzO1xyXG4gICAgY29uc3QgcmVnaW9uOiBMYXlvdXRSZWdpb24gPSBjb25zdHJhaW50cy5yZWdpb24gYXMgTGF5b3V0UmVnaW9uO1xyXG4gICAgY29uc3QgbWluU2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gY29uc3RyYWludHMubWluU2l6ZTtcclxuICAgIGNvbnN0IG1heFNpemU6IG51bWJlciB8IHVuZGVmaW5lZCA9IGNvbnN0cmFpbnRzLm1heFNpemU7XHJcbiAgICBjb25zdCBkb2M6IERvY3VtZW50ID0gdGhpcy5kb2N1bWVudDtcclxuICAgIGxldCBzaXplOiBudW1iZXIgPSAwO1xyXG4gICAgdGhpcy5ib3VuZHNNYW5hZ2VyLnNldE9yaWdpbihib3VuZHMueCwgYm91bmRzLnkpO1xyXG4gICAgbGV0IHJlc2l6ZU1ldGhvZDogUmVzaXplTWV0aG9kID0gdGhpcy5ib3VuZHNNYW5hZ2VyLmdldFJlc2l6ZU1ldGhvZChyZWdpb24pO1xyXG4gICAgY29udGFpbmVyLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IG9uTW92ZUhhbmRsZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpPT4ge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgc2l6ZSA9IHJlc2l6ZU1ldGhvZChldmVudCwgd2lkdGgsIGhlaWdodCwgbWluU2l6ZSwgbWF4U2l6ZSk7XHJcbiAgICAgIGNvbnRhaW5lci5zZXRTaXplKHNpemUpO1xyXG4gICAgICB0aGlzLnJlbmRlcih3aWR0aCk7XHJcbiAgICAgIHRoaXMuZmlyZUV2ZW50KGNvbnRhaW5lciwgTGF5b3V0RHJhZ0V2ZW50VHlwZS5EUkFHR0lORyk7XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgb25TdG9wSGFuZGxlciA9IChldmVudDogTW91c2VFdmVudCk9PiB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihNT1VTRU1PVkUsIG9uTW92ZUhhbmRsZXIpO1xyXG4gICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihNT1VTRVVQLCBvblN0b3BIYW5kbGVyKTtcclxuICAgICAgdGhpcy5kZWxldGVTdG9yZWRIYW5kbGVycygpO1xyXG4gICAgICBjb250YWluZXIuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgc2l6ZSA9IHJlc2l6ZU1ldGhvZChldmVudCwgd2lkdGgsIGhlaWdodCwgbWluU2l6ZSwgbWF4U2l6ZSk7XHJcbiAgICAgIGNvbnRhaW5lci5zZXRTaXplKHNpemUpO1xyXG4gICAgICB0aGlzLnJlbmRlcih3aWR0aCk7XHJcbiAgICAgIHRoaXMuZmlyZUV2ZW50KGNvbnRhaW5lciwgTGF5b3V0RHJhZ0V2ZW50VHlwZS5EUkFHX1NUT1ApO1xyXG4gICAgfTtcclxuICAgIHRoaXMuc3RvcmVkTW92ZUhhbmRsZXIgPSBvbk1vdmVIYW5kbGVyO1xyXG4gICAgdGhpcy5zdG9yZWRTdG9wSGFuZGxlciA9IG9uU3RvcEhhbmRsZXI7XHJcbiAgICB0aGlzLmZpcmVFdmVudChjb250YWluZXIsIExheW91dERyYWdFdmVudFR5cGUuRFJBR19TVEFSVCk7XHJcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihNT1VTRU1PVkUsIG9uTW92ZUhhbmRsZXIpO1xyXG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoTU9VU0VVUCwgb25TdG9wSGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmlyZUV2ZW50KHRhcmdldDogQm9yZGVyTGF5b3V0Q29udGFpbmVyLCB0eXBlOiBMYXlvdXREcmFnRXZlbnRUeXBlKTogdm9pZCB7XHJcbiAgICBjb25zdCBldnQ6IExheW91dERyYWdFdmVudCA9IG5ldyBMYXlvdXREcmFnRXZlbnQodGFyZ2V0LCB0eXBlKTtcclxuICAgIHRoaXMudXNlckFjdGlvbi5lbWl0KGV2dCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVuZGVyKHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGJvdW5kczogRE9NUmVjdCA9IHRoaXMuYm91bmRzTWFuYWdlci5nZXRCb3VuZHMoKTtcclxuICAgIGNvbnN0IHRvcDogbnVtYmVyID0gYm91bmRzLnRvcDtcclxuICAgIGNvbnN0IGJvdHRvbTogbnVtYmVyID0gYm91bmRzLmJvdHRvbTtcclxuICAgIGNvbnN0IGxlZnQ6IG51bWJlciA9IGJvdW5kcy5sZWZ0O1xyXG4gICAgY29uc3QgcmlnaHQ6IG51bWJlciA9IGJvdW5kcy5yaWdodDtcclxuICAgIGNvbnN0IGNMaXN0OiBCb3JkZXJMYXlvdXRDb250YWluZXJbXSA9IHRoaXMuY29udGFpbmVyTGlzdDtcclxuICAgIGxldCBjdXJzb3I6IG51bWJlciA9IGNMaXN0Lmxlbmd0aCAtIDE7XHJcbiAgICB3aGlsZShjdXJzb3IgPj0gMCkge1xyXG4gICAgICBjb25zdCBjb250OiBCb3JkZXJMYXlvdXRDb250YWluZXIgPSBjTGlzdFtjdXJzb3JdO1xyXG4gICAgICBjb25zdCByOiBMYXlvdXRSZWdpb24gPSBjb250LmNvbnN0cmFpbnRzLnJlZ2lvbiBhcyBMYXlvdXRSZWdpb247XHJcbiAgICAgIGN1cnNvci0tO1xyXG4gICAgICBpZiAociA9PT0gTGF5b3V0UmVnaW9uLk5PUlRIIHx8IHIgPT09IExheW91dFJlZ2lvbi5TT1VUSCkgY29udGludWU7XHJcbiAgICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uV0VTVCkge1xyXG4gICAgICAgIGNvbnQuc2V0VG9wUG9zKHRvcCk7XHJcbiAgICAgICAgY29udC5zZXRSaWdodFBvcyh3aWR0aCAtIGxlZnQpO1xyXG4gICAgICAgIGNvbnQuc2V0Qm90dG9tUG9zKGJvdHRvbSAtIHRvcCk7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5DRU5URVIpIHtcclxuICAgICAgICBjb250LnNldFRvcFBvcyh0b3ApO1xyXG4gICAgICAgIGNvbnQuc2V0TGVmdFBvcyhsZWZ0KTtcclxuICAgICAgICBjb250LnNldFJpZ2h0UG9zKHJpZ2h0IC0gbGVmdCk7XHJcbiAgICAgICAgY29udC5zZXRCb3R0b21Qb3MoYm90dG9tIC0gdG9wKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAociA9PT0gTGF5b3V0UmVnaW9uLkVBU1QpIHtcclxuICAgICAgICBjb250LnNldFRvcFBvcyh0b3ApO1xyXG4gICAgICAgIGNvbnQuc2V0TGVmdFBvcyh3aWR0aCAtIChyaWdodCAtIGxlZnQpKTtcclxuICAgICAgICBjb250LnNldEJvdHRvbVBvcyhib3R0b20gLSB0b3ApO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGNoZWNrTHl0Q29udGFpbmVyKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmx5dENvbnRhaW5lckVsbSkgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKExBWU9VVF9FUlJfTVNHKTtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGRlbGV0ZVN0b3JlZEhhbmRsZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZWRNb3ZlSGFuZGxlciA9IHRoaXMuc3RvcmVkU3RvcEhhbmRsZXIgPSBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Pascal ECHEMANN. All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be found in
6
- * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
- */
8
- export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2NvbXBvbmVudC9sYXlvdXQvYm9yZGVyLWxheW91dC91dGlsL3Jlc2l6ZS1tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBBIGNvbnZlbmllbnQgdHlwZSB0aGF0IGRlc2NyaWJlcyBtZXRob2RzIHVzZWQgdG8gY29tcHV0ZSB0aGUgc2l6ZSBvZiBhIGBCb3JkZXJsYXlvdXRDb250YWluZXJgIG9iamVjdCxcbiAqIGRlcGVuZGluZyBvbiBpdHMgcmVnaW9uLlxuICovXG5leHBvcnQgdHlwZSBSZXNpemVNZXRob2QgPSAoZXZlbnQ6IE1vdXNlRXZlbnQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBtaW5TaXplOiBudW1iZXIgfCB1bmRlZmluZWQsIG1heFNpemU6IG51bWJlciB8IHVuZGVmaW5lZCk9PiBudW1iZXI7XG4iXX0=
@@ -1,145 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Pascal ECHEMANN. All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be found in
6
- * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
- */
8
- import { Component, Input, HostBinding, EventEmitter } from '@angular/core';
9
- import { LayoutRegion } from '../../../model';
10
- import * as i0 from "@angular/core";
11
- /**
12
- * @private
13
- */
14
- const PX = "px";
15
- /**
16
- * A container that defines the region of a `BorderLayout` component instance.
17
- */
18
- export class BorderLayoutContainer {
19
- /**
20
- * Gets the CSS class associated with the region constraint of the `BorderLayoutContainer` object.
21
- */
22
- get class() {
23
- return this.region;
24
- }
25
- /**
26
- * Gets or sets the constraints for this `BorderLayoutContainer` object.
27
- */
28
- get constraints() {
29
- return this.atxConstraints;
30
- }
31
- set constraints(constraints) {
32
- this.atxConstraints = constraints;
33
- this.region = constraints.region;
34
- if (constraints.resizable)
35
- this.initHandle();
36
- else
37
- this.resizable = false;
38
- this.setSize(constraints.size);
39
- }
40
- /**
41
- * @private
42
- */
43
- constructor(elRef) {
44
- this.elRef = elRef;
45
- /**
46
- * @private
47
- * Indicates to the parent `BorderLayout` instance that the user starts to resize this container.
48
- */
49
- this.resizeStart = new EventEmitter(false);
50
- /**
51
- * @private
52
- */
53
- this.selected = false;
54
- /**
55
- * @private
56
- */
57
- this.resizable = false;
58
- this.style = this.elRef.nativeElement.style;
59
- }
60
- /**
61
- * Sets the size of this container depending on the specified region.
62
- *
63
- * @param size The new size for this container, in pixels.
64
- */
65
- setSize(size) {
66
- const r = this.region;
67
- if (r === LayoutRegion.CENTER)
68
- return;
69
- if (r === LayoutRegion.NORTH || r === LayoutRegion.SOUTH) {
70
- this.size = size ? size : 50;
71
- this.style.height = this.size + PX;
72
- return;
73
- }
74
- if (r === LayoutRegion.EAST || r === LayoutRegion.WEST) {
75
- this.size = size ? size : 100;
76
- this.style.width = this.size + PX;
77
- }
78
- }
79
- /**
80
- * Returns the size of the container, in pixels.
81
- *
82
- * @returns The size of the container.
83
- */
84
- getSize() {
85
- return this.size;
86
- }
87
- /**
88
- * Sets the left-hand side position of this container.
89
- *
90
- * @param position The left-hand side position of this container, in pixels.
91
- */
92
- setLeftPos(position) {
93
- this.style.left = position + PX;
94
- }
95
- /**
96
- * Sets the right-hand side position of this container.
97
- *
98
- * @param position The right-hand side position of this container, in pixels.
99
- */
100
- setRightPos(position) {
101
- this.style.right = position + PX;
102
- }
103
- /**
104
- * Sets the top position of this container.
105
- *
106
- * @param position The top position of this container, in pixels.
107
- */
108
- setTopPos(position) {
109
- this.style.top = position + PX;
110
- }
111
- /**
112
- * Sets the bottom position of this container.
113
- *
114
- * @param position The bottom position of this container, in pixels.
115
- */
116
- setBottomPos(position) {
117
- this.style.bottom = position + PX;
118
- }
119
- /**
120
- * @private
121
- */
122
- resizetart() {
123
- this.resizeStart.emit(this);
124
- }
125
- /**
126
- * @private
127
- */
128
- initHandle() {
129
- if (this.region === LayoutRegion.CENTER)
130
- return;
131
- this.resizable = true;
132
- }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayoutContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: BorderLayoutContainer, isStandalone: true, selector: "atx-border-layout-container", inputs: { constraints: "constraints" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}:host.north{position:absolute;z-index:10;top:0;left:0;right:0}:host.north>.atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host.west{position:absolute;z-index:5;left:0;height:unset!important}:host.west>.atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.east{position:absolute;z-index:5;right:0;height:unset!important}:host.east>.atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host.south>.atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host.center{position:absolute}.atx-handle{position:absolute}.atx-handle:hover,.atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }); }
135
- }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayoutContainer, decorators: [{
137
- type: Component,
138
- args: [{ selector: 'atx-border-layout-container', standalone: true, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}:host.north{position:absolute;z-index:10;top:0;left:0;right:0}:host.north>.atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host.west{position:absolute;z-index:5;left:0;height:unset!important}:host.west>.atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.east{position:absolute;z-index:5;right:0;height:unset!important}:host.east>.atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host.south>.atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host.center{position:absolute}.atx-handle{position:absolute}.atx-handle:hover,.atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
139
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
140
- type: HostBinding,
141
- args: ['class']
142
- }], constraints: [{
143
- type: Input
144
- }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvY29tcG9uZW50L2xheW91dC9ib3JkZXItbGF5b3V0LWNvbnRhaW5lci9ib3JkZXItbGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb21wb25lbnQvbGF5b3V0L2JvcmRlci1sYXlvdXQtY29udGFpbmVyL2JvcmRlci1sYXlvdXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFakU7O0dBRUc7QUFDSCxNQUFNLEVBQUUsR0FBVyxJQUFJLENBQUM7QUFFeEI7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDOztPQUVHO0lBQ0gsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUEyQkQ7O09BRUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUNXLFdBQVcsQ0FBQyxXQUE4QjtRQUNuRCxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFzQixDQUFDO1FBQ2pELElBQUcsV0FBVyxDQUFDLFNBQVM7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7O1lBQ3ZDLElBQUks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KlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGF5b3V0Q29uc3RyYWludHMsIExheW91dFJlZ2lvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgUFg6IHN0cmluZyA9IFwicHhcIjtcclxuXHJcbi8qKlxyXG4gKiBBIGNvbnRhaW5lciB0aGF0IGRlZmluZXMgdGhlIHJlZ2lvbiBvZiBhIGBCb3JkZXJMYXlvdXRgIGNvbXBvbmVudCBpbnN0YW5jZS5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXR4LWJvcmRlci1sYXlvdXQtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JvcmRlci1sYXlvdXQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm9yZGVyTGF5b3V0Q29udGFpbmVyIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBJbmRpY2F0ZXMgdG8gdGhlIHBhcmVudCBgQm9yZGVyTGF5b3V0YCBpbnN0YW5jZSB0aGF0IHRoZSB1c2VyIHN0YXJ0cyB0byByZXNpemUgdGhpcyBjb250YWluZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHJlc2l6ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Qm9yZGVyTGF5b3V0Q29udGFpbmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdGVkOiBCb29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIENTUyBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZ2lvbiBjb25zdHJhaW50IG9mIHRoZSBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBvYmplY3QuXHJcbiAgICovXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCByZWdpb24hOiBMYXlvdXRSZWdpb247XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhdHhDb25zdHJhaW50cyE6IExheW91dENvbnN0cmFpbnRzO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2l6ZSE6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBHZXRzIG9yIHNldHMgdGhlIGNvbnN0cmFpbnRzIGZvciB0aGlzIGBCb3JkZXJMYXlvdXRDb250YWluZXJgIG9iamVjdC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGNvbnN0cmFpbnRzKCk6IExheW91dENvbnN0cmFpbnRzICB7XHJcbiAgICByZXR1cm4gdGhpcy5hdHhDb25zdHJhaW50cztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzOiBMYXlvdXRDb25zdHJhaW50cykge1xyXG4gICAgdGhpcy5hdHhDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzO1xyXG4gICAgdGhpcy5yZWdpb24gPSBjb25zdHJhaW50cy5yZWdpb24gYXMgTGF5b3V0UmVnaW9uO1xyXG4gICAgaWYoY29uc3RyYWludHMucmVzaXphYmxlKSB0aGlzLmluaXRIYW5kbGUoKTtcclxuICAgIGVsc2UgdGhpcy5yZXNpemFibGUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2V0U2l6ZShjb25zdHJhaW50cy5zaXplKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHNpemUgb2YgdGhpcyBjb250YWluZXIgZGVwZW5kaW5nIG9uIHRoZSBzcGVjaWZpZWQgcmVnaW9uLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBzaXplIFRoZSBuZXcgc2l6ZSBmb3IgdGhpcyBjb250YWluZXIsIGluIHBpeGVscy5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHI6IExheW91dFJlZ2lvbiA9IHRoaXMucmVnaW9uO1xyXG4gICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5DRU5URVIpIHJldHVybjtcclxuICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uTk9SVEggfHwgciA9PT0gTGF5b3V0UmVnaW9uLlNPVVRIKSB7XHJcbiAgICAgIHRoaXMuc2l6ZSA9IHNpemUgPyBzaXplIDogNTA7XHJcbiAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zaXplICsgUFg7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uRUFTVCB8fCByID09PSBMYXlvdXRSZWdpb24uV0VTVCkge1xyXG4gICAgICB0aGlzLnNpemUgPSBzaXplID8gc2l6ZSA6IDEwMDtcclxuICAgICAgdGhpcy5zdHlsZS53aWR0aCA9IHRoaXMuc2l6ZSArIFBYO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyLCBpbiBwaXhlbHMuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lci5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGxlZnQtaGFuZCBzaWRlIHBvc2l0aW9uIG9mIHRoaXMgY29udGFpbmVyLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgbGVmdC1oYW5kIHNpZGUgcG9zaXRpb24gb2YgdGhpcyBjb250YWluZXIsIGluIHBpeGVscy5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0TGVmdFBvcyhwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0eWxlLmxlZnQgPSBwb3NpdGlvbiArIFBYO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgcmlnaHQtaGFuZCBzaWRlIHBvc2l0aW9uIG9mIHRoaXMgY29udGFpbmVyLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgcmlnaHQtaGFuZCBzaWRlIHBvc2l0aW9uIG9mIHRoaXMgY29udGFpbmVyLCBpbiBwaXhlbHMuXHJcbiAgICovXHJcbiAgcHVibGljIHNldFJpZ2h0UG9zKHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc3R5bGUucmlnaHQgPSBwb3NpdGlvbiArIFBYO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0b3AgcG9zaXRpb24gb2YgdGhpcyBjb250YWluZXIuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSB0b3AgcG9zaXRpb24gb2YgdGhpcyBjb250YWluZXIsIGluIHBpeGVscy5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0VG9wUG9zKHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc3R5bGUudG9wID0gcG9zaXRpb24gKyBQWDtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgYm90dG9tIHBvc2l0aW9uIG9mIHRoaXMgY29udGFpbmVyLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgYm90dG9tIHBvc2l0aW9uIG9mIHRoaXMgY29udGFpbmVyLCBpbiBwaXhlbHMuXHJcbiAgICovXHJcbiAgcHVibGljIHNldEJvdHRvbVBvcyhwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0eWxlLmJvdHRvbSA9IHBvc2l0aW9uICsgUFg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCByZXNpemV0YXJ0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNpemVTdGFydC5lbWl0KHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGluaXRIYW5kbGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZWdpb24gPT09IExheW91dFJlZ2lvbi5DRU5URVIpIHJldHVybjtcclxuICAgIHRoaXMucmVzaXphYmxlID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuIiwiPCEtLVxuICogTElDRU5TRVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2Vcbi0tPlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5AaWYgKHJlc2l6YWJsZSkge1xuICAgIDxkaXYgY2xhc3M9XCJhdHgtaGFuZGxlXCIgW2NsYXNzLmF0eC1oYW5kbGUtc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIiAobW91c2Vkb3duKT1cInJlc2l6ZXRhcnQoKVwiPjwvZGl2PlxufVxuIl19
@@ -1,3 +0,0 @@
1
- export * from "./border-layout/border-layout.component";
2
- export * from "./border-layout-container/border-layout-container.component";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb21wb25lbnQvbGF5b3V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2REFBNkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2JvcmRlci1sYXlvdXQvYm9yZGVyLWxheW91dC5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vYm9yZGVyLWxheW91dC1jb250YWluZXIvYm9yZGVyLWxheW91dC1jb250YWluZXIuY29tcG9uZW50XCI7Il19
@@ -1,113 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Pascal ECHEMANN. All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be found in
6
- * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
- */
8
- import { SubscriptionError } from '../error';
9
- import { IdentifiableComponent } from '../impl';
10
- import { STRING } from '../../util';
11
- /**
12
- * The abstract class for all services that implement the `SubscriptionManager` interface.
13
- */
14
- export class AbstractSubscriptionManager {
15
- constructor() {
16
- /**
17
- * @private
18
- * Stores an internal reference to the last reference used with the `register()`
19
- * method.
20
- */
21
- this._lastRef = null;
22
- /**
23
- * @private
24
- * The internal `Subscription` instances storage.
25
- */
26
- this._subMap = new Map();
27
- }
28
- /**
29
- * Stores a new `Subscription` instance associated with the specified reference.
30
- *
31
- * @param ref The reference for which to store a new `Subscription` instance.
32
- * Can be either a string or an `Identifiable` object.
33
- * @param subscription The `Subscription` instance to register.
34
- *
35
- * @returns A reference to this `SubscriptionService` instance.
36
- */
37
- register(ref, subscription) {
38
- const REF = this.getRef(ref);
39
- this._lastRef = REF;
40
- if (!this._subMap.has(REF))
41
- this._subMap.set(REF, []);
42
- this._subMap.get(REF)?.push(subscription);
43
- return this;
44
- }
45
- /**
46
- * Stores a new `Subscription` instance associated with the reference specified
47
- * by the last `register()` method invokation.
48
- *
49
- * @param subscription The `Subscription` instance to register.
50
- *
51
- * @returns A reference to this `SubscriptionService` instance.
52
- */
53
- append(subscription) {
54
- if (!this._lastRef)
55
- throw new SubscriptionError("Illegal Access Error: you must call the register() method before invoking the append() method.");
56
- return this.register(this._lastRef, subscription);
57
- }
58
- /**
59
- * Unsubscribes and removes all `Subscription` instances associated with the specified reference.
60
- *
61
- * @param ref The reference for which to remove all `Subscription` instances.
62
- * Can be either a string or an `Identifiable` object.
63
- *
64
- * @returns `true` whether the specified reference exists; `false` otherwise.
65
- */
66
- clearAll(ref) {
67
- const REF = this.getRef(ref);
68
- let result = false;
69
- if (this._lastRef === REF)
70
- this._lastRef = null;
71
- if (this._subMap.has(REF)) {
72
- this._subMap.get(REF)?.forEach(subscription => {
73
- if (!subscription.closed)
74
- subscription.unsubscribe();
75
- });
76
- this._subMap.delete(REF);
77
- result = true;
78
- }
79
- return result;
80
- }
81
- /**
82
- * Returns all `Subscription` instances associated with the specified reference.
83
- *
84
- * @param ref The reference for which to remove get `Subscription` instances.
85
- * Can be either a string or an `Identifiable` object.
86
- *
87
- * @returns All `Subscription` instances associated with the specified reference, or
88
- * `null` whether the specified reference does not exists.
89
- */
90
- get(ref) {
91
- return this._subMap.get(this.getRef(ref)) || null;
92
- }
93
- /**
94
- * @private
95
- * Returns the string reference for the regsitration process.
96
- *
97
- * @param ref The reference to be used the regsitration process.
98
- * Can be either a string or an `Identifiable` object.
99
- *
100
- * @returns the string reference for the regsitration process.
101
- */
102
- getRef(ref) {
103
- let targetRef;
104
- if (typeof ref === STRING)
105
- targetRef = ref;
106
- else if (ref instanceof IdentifiableComponent)
107
- targetRef = ref.getID().toString();
108
- else
109
- throw new TypeError("ref must be of type of string or Identifiable");
110
- return targetRef;
111
- }
112
- }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc3Vic2NyaXB0aW9uLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb3JlL2Fic3RyYWN0L2Fic3RyYWN0LXN1YnNjcmlwdGlvbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQzs7R0FFRztBQUNILE1BQU0sT0FBZ0IsMkJBQTJCO0lBQWpEO1FBRUk7Ozs7V0FJRztRQUNLLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRXZDOzs7V0FHRztRQUNLLFlBQU8sR0FBcUMsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFtRi9GLENBQUM7SUFqRkc7Ozs7Ozs7O09BUUc7SUFDSSxRQUFRLENBQUMsR0FBMEIsRUFBRSxZQUEwQjtRQUNsRSxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFlBQTBCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxnR0FBZ0csQ0FBQyxDQUFDO1FBQ2xKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksUUFBUSxDQUFDLEdBQTBCO1FBQ3RDLE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO29CQUFFLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEdBQUcsQ0FBQyxHQUEwQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssTUFBTSxDQUFDLEdBQTBCO1FBQ3JDLElBQUksU0FBaUIsQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxLQUFLLE1BQU07WUFBRSxTQUFTLEdBQUcsR0FBYSxDQUFDO2FBQ2hELElBQUksR0FBRyxZQUFZLHFCQUFxQjtZQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7O1lBQzdFLE1BQU0sSUFBSSxTQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUMxRSxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIFxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElkZW50aWZpYWJsZSwgU3Vic2NyaXB0aW9uTWFuYWdlciB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3InO1xuaW1wb3J0IHsgSWRlbnRpZmlhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1wbCc7XG5pbXBvcnQgeyBTVFJJTkcgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBUaGUgYWJzdHJhY3QgY2xhc3MgZm9yIGFsbCBzZXJ2aWNlcyB0aGF0IGltcGxlbWVudCB0aGUgYFN1YnNjcmlwdGlvbk1hbmFnZXJgIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3Vic2NyaXB0aW9uTWFuYWdlciBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbk1hbmFnZXIge1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBTdG9yZXMgYW4gaW50ZXJuYWwgcmVmZXJlbmNlIHRvIHRoZSBsYXN0IHJlZmVyZW5jZSB1c2VkIHdpdGggdGhlIGByZWdpc3RlcigpYFxuICAgICAqIG1ldGhvZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9sYXN0UmVmOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogVGhlIGludGVybmFsIGBTdWJzY3JpcHRpb25gIGluc3RhbmNlcyBzdG9yYWdlLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3N1Yk1hcDogTWFwPHN0cmluZywgQXJyYXk8U3Vic2NyaXB0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8U3Vic2NyaXB0aW9uPj4oKTtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIG5ldyBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZWZlcmVuY2UuXG4gICAgICogXG4gICAgICogQHBhcmFtIHJlZiBUaGUgcmVmZXJlbmNlIGZvciB3aGljaCB0byBzdG9yZSBhIG5ldyBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZS5cbiAgICAgKiAgICAgICAgICAgIENhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYElkZW50aWZpYWJsZWAgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBzdWJzY3JpcHRpb24gVGhlIGBTdWJzY3JpcHRpb25gIGluc3RhbmNlIHRvIHJlZ2lzdGVyLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYFN1YnNjcmlwdGlvblNlcnZpY2VgIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlcihyZWY6IHN0cmluZyB8IElkZW50aWZpYWJsZSwgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24pOiBTdWJzY3JpcHRpb25NYW5hZ2VyIHtcbiAgICAgICAgY29uc3QgUkVGOiBzdHJpbmcgPSB0aGlzLmdldFJlZihyZWYpO1xuICAgICAgICB0aGlzLl9sYXN0UmVmID0gUkVGO1xuICAgICAgICBpZiAoIXRoaXMuX3N1Yk1hcC5oYXMoUkVGKSkgdGhpcy5fc3ViTWFwLnNldChSRUYsIFtdKTtcbiAgICAgICAgdGhpcy5fc3ViTWFwLmdldChSRUYpPy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyBhIG5ldyBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZmVyZW5jZSBzcGVjaWZpZWRcbiAgICAgKiBieSB0aGUgbGFzdCBgcmVnaXN0ZXIoKWAgbWV0aG9kIGludm9rYXRpb24uXG4gICAgICogXG4gICAgICogQHBhcmFtIHN1YnNjcmlwdGlvbiBUaGUgYFN1YnNjcmlwdGlvbmAgaW5zdGFuY2UgdG8gcmVnaXN0ZXIuXG4gICAgICogXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgU3Vic2NyaXB0aW9uU2VydmljZWAgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIGFwcGVuZChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbik6IFN1YnNjcmlwdGlvbk1hbmFnZXIge1xuICAgICAgICBpZiAoIXRoaXMuX2xhc3RSZWYpIHRocm93IG5ldyBTdWJzY3JpcHRpb25FcnJvcihcIklsbGVnYWwgQWNjZXNzIEVycm9yOiB5b3UgbXVzdCBjYWxsIHRoZSByZWdpc3RlcigpIG1ldGhvZCBiZWZvcmUgaW52b2tpbmcgdGhlIGFwcGVuZCgpIG1ldGhvZC5cIik7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyKHRoaXMuX2xhc3RSZWYsIHN1YnNjcmlwdGlvbik7XG4gICAgfVxuIFxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlcyBhbmQgcmVtb3ZlcyBhbGwgYFN1YnNjcmlwdGlvbmAgaW5zdGFuY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHJlZmVyZW5jZS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcmVmIFRoZSByZWZlcmVuY2UgZm9yIHdoaWNoIHRvIHJlbW92ZSBhbGwgYFN1YnNjcmlwdGlvbmAgaW5zdGFuY2VzLlxuICAgICAqICAgICAgICAgICAgQ2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbiBgSWRlbnRpZmlhYmxlYCBvYmplY3QuXG4gICAgICogXG4gICAgICogQHJldHVybnMgYHRydWVgIHdoZXRoZXIgdGhlIHNwZWNpZmllZCByZWZlcmVuY2UgZXhpc3RzOyBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXJBbGwocmVmOiBzdHJpbmcgfCBJZGVudGlmaWFibGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgUkVGOiBzdHJpbmcgPSB0aGlzLmdldFJlZihyZWYpO1xuICAgICAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLl9sYXN0UmVmID09PSBSRUYpIHRoaXMuX2xhc3RSZWYgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5fc3ViTWFwLmhhcyhSRUYpKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJNYXAuZ2V0KFJFRik/LmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN1YnNjcmlwdGlvbi5jbG9zZWQpIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fc3ViTWFwLmRlbGV0ZShSRUYpO1xuICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIGBTdWJzY3JpcHRpb25gIGluc3RhbmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZWZlcmVuY2UuXG4gICAgICogXG4gICAgICogQHBhcmFtIHJlZiBUaGUgcmVmZXJlbmNlIGZvciB3aGljaCB0byByZW1vdmUgZ2V0IGBTdWJzY3JpcHRpb25gIGluc3RhbmNlcy5cbiAgICAgKiAgICAgICAgICAgIENhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYElkZW50aWZpYWJsZWAgb2JqZWN0LlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEFsbCBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVmZXJlbmNlLCBvciBcbiAgICAgKiAgICAgICAgICBgbnVsbGAgd2hldGhlciB0aGUgc3BlY2lmaWVkIHJlZmVyZW5jZSBkb2VzIG5vdCBleGlzdHMuXG4gICAgICovXG4gICAgcHVibGljIGdldChyZWY6IHN0cmluZyB8IElkZW50aWZpYWJsZSk6IEFycmF5PFN1YnNjcmlwdGlvbj4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1Yk1hcC5nZXQodGhpcy5nZXRSZWYocmVmKSkgfHwgbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZSBcbiAgICAgKiBSZXR1cm5zIHRoZSBzdHJpbmcgcmVmZXJlbmNlIGZvciB0aGUgcmVnc2l0cmF0aW9uIHByb2Nlc3MuIFxuICAgICAqIFxuICAgICAqIEBwYXJhbSByZWYgVGhlIHJlZmVyZW5jZSB0byBiZSB1c2VkIHRoZSByZWdzaXRyYXRpb24gcHJvY2Vzcy4gXG4gICAgICogICAgICAgICAgICBDYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGBJZGVudGlmaWFibGVgIG9iamVjdC5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHJlZmVyZW5jZSBmb3IgdGhlIHJlZ3NpdHJhdGlvbiBwcm9jZXNzLiBcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFJlZihyZWY6IHN0cmluZyB8IElkZW50aWZpYWJsZSk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0YXJnZXRSZWY6IHN0cmluZztcbiAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFNUUklORykgdGFyZ2V0UmVmID0gcmVmIGFzIHN0cmluZztcbiAgICAgICAgZWxzZSBpZiAocmVmIGluc3RhbmNlb2YgSWRlbnRpZmlhYmxlQ29tcG9uZW50KSB0YXJnZXRSZWYgPSByZWYuZ2V0SUQoKS50b1N0cmluZygpO1xuICAgICAgICBlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoXCJyZWYgbXVzdCBiZSBvZiB0eXBlIG9mIHN0cmluZyBvciBJZGVudGlmaWFibGVcIik7XG4gICAgICAgIHJldHVybiB0YXJnZXRSZWY7XG4gICAgfVxufVxuIl19