@taiga-ui/addon-doc 3.57.0 → 3.59.0-canary.10da730

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 (245) hide show
  1. package/components/code/code.component.d.ts +1 -1
  2. package/components/copy/copy.component.d.ts +1 -1
  3. package/components/demo/demo.component.d.ts +3 -3
  4. package/components/doc-tab/doc-tab.component.d.ts +6 -0
  5. package/components/doc-tab/doc-tab.module.d.ts +8 -0
  6. package/components/documentation/documentation-property-connector.directive.d.ts +6 -4
  7. package/components/documentation/documentation.component.d.ts +1 -1
  8. package/components/documentation/documentation.module.d.ts +1 -1
  9. package/components/documentation/pipes/cleaner.pipe.d.ts +1 -1
  10. package/components/documentation/pipes/color.pipe.d.ts +1 -1
  11. package/components/documentation/pipes/inspect.pipe.d.ts +1 -1
  12. package/components/documentation/pipes/opacity.pipe.d.ts +1 -1
  13. package/components/documentation/pipes/optional.pipe.d.ts +1 -1
  14. package/components/documentation/pipes/primitive-polymorpheus-content.pipe.d.ts +1 -1
  15. package/components/documentation/pipes/strip-optional.pipe.d.ts +1 -1
  16. package/components/documentation/pipes/type-reference.pipe.d.ts +1 -1
  17. package/components/example/example-get-tabs.pipe.d.ts +1 -1
  18. package/components/example/example.component.d.ts +1 -1
  19. package/components/index.d.ts +2 -0
  20. package/components/internal/header/header.component.d.ts +1 -1
  21. package/components/internal/input-opacity/input-opacity.directive.d.ts +1 -1
  22. package/components/internal/see-also/see-also.component.d.ts +1 -1
  23. package/components/internal/source-code/source-code.component.d.ts +1 -1
  24. package/components/language-switcher/language-switcher.component.d.ts +3 -3
  25. package/components/main/main.component.d.ts +1 -1
  26. package/components/navigation/navigation.component.d.ts +8 -9
  27. package/components/page/page-tab.directive.d.ts +1 -1
  28. package/components/page/page.component.d.ts +1 -1
  29. package/directives/scroll-into-view/scroll-into-view.directive.d.ts +1 -1
  30. package/directives/text-code/text-code.directive.d.ts +1 -1
  31. package/{esm2015/addon-doc.module.js → esm2020/addon-doc.module.mjs} +4 -4
  32. package/esm2020/components/code/code.component.mjs +42 -0
  33. package/{esm2015/components/code/code.module.js → esm2020/components/code/code.module.mjs} +9 -11
  34. package/esm2020/components/copy/copy.component.mjs +35 -0
  35. package/{esm2015/components/copy/copy.module.js → esm2020/components/copy/copy.module.mjs} +5 -5
  36. package/esm2020/components/demo/demo.component.mjs +179 -0
  37. package/{esm2015/components/demo/demo.module.js → esm2020/components/demo/demo.module.mjs} +23 -25
  38. package/esm2020/components/doc-tab/doc-tab.component.mjs +17 -0
  39. package/esm2020/components/doc-tab/doc-tab.module.mjs +18 -0
  40. package/esm2020/components/documentation/documentation-property-connector.directive.mjs +141 -0
  41. package/esm2020/components/documentation/documentation.component.mjs +109 -0
  42. package/{esm2015/components/documentation/documentation.module.js → esm2020/components/documentation/documentation.module.mjs} +25 -25
  43. package/{esm2015/components/documentation/pipes/cleaner.pipe.js → esm2020/components/documentation/pipes/cleaner.pipe.mjs} +3 -3
  44. package/{esm2015/components/documentation/pipes/color.pipe.js → esm2020/components/documentation/pipes/color.pipe.mjs} +3 -3
  45. package/{esm2015/components/documentation/pipes/inspect.pipe.js → esm2020/components/documentation/pipes/inspect.pipe.mjs} +3 -3
  46. package/{esm2015/components/documentation/pipes/opacity.pipe.js → esm2020/components/documentation/pipes/opacity.pipe.mjs} +3 -3
  47. package/{esm2015/components/documentation/pipes/optional.pipe.js → esm2020/components/documentation/pipes/optional.pipe.mjs} +3 -3
  48. package/{esm2015/components/documentation/pipes/primitive-polymorpheus-content.pipe.js → esm2020/components/documentation/pipes/primitive-polymorpheus-content.pipe.mjs} +3 -3
  49. package/{esm2015/components/documentation/pipes/strip-optional.pipe.js → esm2020/components/documentation/pipes/strip-optional.pipe.mjs} +3 -3
  50. package/esm2020/components/documentation/pipes/type-reference.pipe.mjs +31 -0
  51. package/{esm2015/components/example/example-get-tabs.pipe.js → esm2020/components/example/example-get-tabs.pipe.mjs} +3 -3
  52. package/esm2020/components/example/example.component.mjs +150 -0
  53. package/{esm2015/components/example/example.module.js → esm2020/components/example/example.module.mjs} +13 -15
  54. package/esm2020/components/index.mjs +42 -0
  55. package/esm2020/components/internal/header/header.component.mjs +54 -0
  56. package/{esm2015/components/internal/header/header.module.js → esm2020/components/internal/header/header.module.mjs} +10 -12
  57. package/{esm2015/components/internal/input-opacity/input-opacity.directive.js → esm2020/components/internal/input-opacity/input-opacity.directive.mjs} +8 -8
  58. package/{esm2015/components/internal/input-opacity/input-opacity.module.js → esm2020/components/internal/input-opacity/input-opacity.module.mjs} +4 -4
  59. package/esm2020/components/internal/see-also/see-also.component.mjs +31 -0
  60. package/{esm2015/components/internal/see-also/see-also.module.js → esm2020/components/internal/see-also/see-also.module.mjs} +5 -5
  61. package/{esm2015/components/internal/source-code/source-code.component.js → esm2020/components/internal/source-code/source-code.component.mjs} +7 -11
  62. package/{esm2015/components/internal/source-code/source-code.module.js → esm2020/components/internal/source-code/source-code.module.mjs} +5 -5
  63. package/esm2020/components/language-switcher/language-switcher.component.mjs +61 -0
  64. package/{esm2015/components/language-switcher/language-switcher.module.js → esm2020/components/language-switcher/language-switcher.module.mjs} +9 -11
  65. package/esm2020/components/main/main.component.mjs +59 -0
  66. package/{esm2015/components/main/main.module.js → esm2020/components/main/main.module.mjs} +14 -16
  67. package/esm2020/components/navigation/navigation.component.mjs +213 -0
  68. package/{esm2015/components/navigation/navigation.module.js → esm2020/components/navigation/navigation.module.mjs} +24 -26
  69. package/esm2020/components/navigation/navigation.providers.mjs +48 -0
  70. package/{esm2015/components/page/page-tab.directive.js → esm2020/components/page/page-tab.directive.mjs} +3 -3
  71. package/esm2020/components/page/page.component.mjs +56 -0
  72. package/{esm2015/components/page/page.module.js → esm2020/components/page/page.module.mjs} +11 -13
  73. package/esm2020/directives/scroll-into-view/scroll-into-view.directive.mjs +44 -0
  74. package/{esm2015/directives/scroll-into-view/scroll-into-view.module.js → esm2020/directives/scroll-into-view/scroll-into-view.module.mjs} +4 -4
  75. package/{esm2015/directives/text-code/text-code.directive.js → esm2020/directives/text-code/text-code.directive.mjs} +3 -3
  76. package/{esm2015/directives/text-code/text-code.module.js → esm2020/directives/text-code/text-code.module.mjs} +4 -4
  77. package/{esm2015/services/theme-night.service.js → esm2020/services/theme-night.service.mjs} +4 -4
  78. package/{esm2015/services/theme.service.js → esm2020/services/theme.service.mjs} +4 -4
  79. package/esm2020/tokens/page-loaded.mjs +7 -0
  80. package/esm2020/tokens/pages.mjs +9 -0
  81. package/esm2020/utils/coerce-boolean.mjs +4 -0
  82. package/{esm2015/utils/coerce-value.js → esm2020/utils/coerce-value.mjs} +2 -2
  83. package/esm2020/utils/raw-load-record.mjs +11 -0
  84. package/esm2020/utils/raw-load.mjs +4 -0
  85. package/esm2020/utils/sort-pages.mjs +26 -0
  86. package/esm2020/utils/to-flat-map-pages.mjs +22 -0
  87. package/esm2020/utils/type-reference-parser.mjs +24 -0
  88. package/fesm2015/taiga-ui-addon-doc-components.mjs +1909 -0
  89. package/fesm2015/taiga-ui-addon-doc-components.mjs.map +1 -0
  90. package/fesm2015/taiga-ui-addon-doc-directives.mjs +99 -0
  91. package/fesm2015/taiga-ui-addon-doc-directives.mjs.map +1 -0
  92. package/fesm2015/{taiga-ui-addon-doc-interfaces.js → taiga-ui-addon-doc-interfaces.mjs} +1 -1
  93. package/fesm2015/taiga-ui-addon-doc-interfaces.mjs.map +1 -0
  94. package/fesm2015/{taiga-ui-addon-doc-languages.js → taiga-ui-addon-doc-languages.mjs} +1 -1
  95. package/fesm2015/taiga-ui-addon-doc-languages.mjs.map +1 -0
  96. package/fesm2015/taiga-ui-addon-doc-services.mjs +97 -0
  97. package/fesm2015/taiga-ui-addon-doc-services.mjs.map +1 -0
  98. package/fesm2015/{taiga-ui-addon-doc-tokens.js → taiga-ui-addon-doc-tokens.mjs} +2 -3
  99. package/fesm2015/taiga-ui-addon-doc-tokens.mjs.map +1 -0
  100. package/fesm2015/taiga-ui-addon-doc-types.mjs +4 -0
  101. package/fesm2015/taiga-ui-addon-doc-types.mjs.map +1 -0
  102. package/fesm2015/{taiga-ui-addon-doc-utils.js → taiga-ui-addon-doc-utils.mjs} +7 -6
  103. package/fesm2015/taiga-ui-addon-doc-utils.mjs.map +1 -0
  104. package/fesm2015/{taiga-ui-addon-doc.js → taiga-ui-addon-doc.mjs} +5 -5
  105. package/fesm2015/taiga-ui-addon-doc.mjs.map +1 -0
  106. package/fesm2020/taiga-ui-addon-doc-components.mjs +1879 -0
  107. package/fesm2020/taiga-ui-addon-doc-components.mjs.map +1 -0
  108. package/{fesm2015/taiga-ui-addon-doc-directives.js → fesm2020/taiga-ui-addon-doc-directives.mjs} +19 -20
  109. package/fesm2020/taiga-ui-addon-doc-directives.mjs.map +1 -0
  110. package/fesm2020/taiga-ui-addon-doc-interfaces.mjs +12 -0
  111. package/fesm2020/taiga-ui-addon-doc-interfaces.mjs.map +1 -0
  112. package/fesm2020/taiga-ui-addon-doc-languages.mjs +46 -0
  113. package/fesm2020/taiga-ui-addon-doc-languages.mjs.map +1 -0
  114. package/{fesm2015/taiga-ui-addon-doc-services.js → fesm2020/taiga-ui-addon-doc-services.mjs} +7 -7
  115. package/fesm2020/taiga-ui-addon-doc-services.mjs.map +1 -0
  116. package/fesm2020/taiga-ui-addon-doc-tokens.mjs +148 -0
  117. package/fesm2020/taiga-ui-addon-doc-tokens.mjs.map +1 -0
  118. package/fesm2020/taiga-ui-addon-doc-types.mjs +4 -0
  119. package/fesm2020/taiga-ui-addon-doc-types.mjs.map +1 -0
  120. package/fesm2020/taiga-ui-addon-doc-utils.mjs +275 -0
  121. package/fesm2020/taiga-ui-addon-doc-utils.mjs.map +1 -0
  122. package/fesm2020/taiga-ui-addon-doc.mjs +49 -0
  123. package/fesm2020/taiga-ui-addon-doc.mjs.map +1 -0
  124. package/interfaces/page.d.ts +3 -3
  125. package/package.json +115 -38
  126. package/styles/markdown.less +118 -0
  127. package/tokens/pages.d.ts +4 -2
  128. package/types/pages.d.ts +1 -1
  129. package/utils/type-reference-parser.d.ts +1 -1
  130. package/bundles/taiga-ui-addon-doc-components.umd.js +0 -2500
  131. package/bundles/taiga-ui-addon-doc-components.umd.js.map +0 -1
  132. package/bundles/taiga-ui-addon-doc-directives.umd.js +0 -140
  133. package/bundles/taiga-ui-addon-doc-directives.umd.js.map +0 -1
  134. package/bundles/taiga-ui-addon-doc-interfaces.umd.js +0 -22
  135. package/bundles/taiga-ui-addon-doc-interfaces.umd.js.map +0 -1
  136. package/bundles/taiga-ui-addon-doc-languages.umd.js +0 -54
  137. package/bundles/taiga-ui-addon-doc-languages.umd.js.map +0 -1
  138. package/bundles/taiga-ui-addon-doc-services.umd.js +0 -457
  139. package/bundles/taiga-ui-addon-doc-services.umd.js.map +0 -1
  140. package/bundles/taiga-ui-addon-doc-tokens.umd.js +0 -179
  141. package/bundles/taiga-ui-addon-doc-tokens.umd.js.map +0 -1
  142. package/bundles/taiga-ui-addon-doc-types.umd.js +0 -11
  143. package/bundles/taiga-ui-addon-doc-types.umd.js.map +0 -1
  144. package/bundles/taiga-ui-addon-doc-utils.umd.js +0 -671
  145. package/bundles/taiga-ui-addon-doc-utils.umd.js.map +0 -1
  146. package/bundles/taiga-ui-addon-doc.umd.js +0 -117
  147. package/bundles/taiga-ui-addon-doc.umd.js.map +0 -1
  148. package/components/package.json +0 -10
  149. package/components/taiga-ui-addon-doc-components.d.ts +0 -5
  150. package/directives/package.json +0 -10
  151. package/directives/taiga-ui-addon-doc-directives.d.ts +0 -5
  152. package/esm2015/components/code/code.component.js +0 -48
  153. package/esm2015/components/copy/copy.component.js +0 -42
  154. package/esm2015/components/demo/demo.component.js +0 -183
  155. package/esm2015/components/documentation/documentation-property-connector.directive.js +0 -127
  156. package/esm2015/components/documentation/documentation.component.js +0 -117
  157. package/esm2015/components/documentation/pipes/type-reference.pipe.js +0 -34
  158. package/esm2015/components/example/example.component.js +0 -152
  159. package/esm2015/components/index.js +0 -40
  160. package/esm2015/components/internal/header/header.component.js +0 -60
  161. package/esm2015/components/internal/see-also/see-also.component.js +0 -37
  162. package/esm2015/components/language-switcher/language-switcher.component.js +0 -67
  163. package/esm2015/components/main/main.component.js +0 -68
  164. package/esm2015/components/navigation/navigation.component.js +0 -223
  165. package/esm2015/components/navigation/navigation.providers.js +0 -48
  166. package/esm2015/components/page/page.component.js +0 -62
  167. package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +0 -45
  168. package/esm2015/tokens/page-loaded.js +0 -8
  169. package/esm2015/tokens/pages.js +0 -9
  170. package/esm2015/utils/coerce-boolean.js +0 -4
  171. package/esm2015/utils/raw-load-record.js +0 -14
  172. package/esm2015/utils/raw-load.js +0 -7
  173. package/esm2015/utils/sort-pages.js +0 -23
  174. package/esm2015/utils/to-flat-map-pages.js +0 -23
  175. package/esm2015/utils/type-reference-parser.js +0 -24
  176. package/fesm2015/taiga-ui-addon-doc-components.js +0 -1928
  177. package/fesm2015/taiga-ui-addon-doc-components.js.map +0 -1
  178. package/fesm2015/taiga-ui-addon-doc-directives.js.map +0 -1
  179. package/fesm2015/taiga-ui-addon-doc-interfaces.js.map +0 -1
  180. package/fesm2015/taiga-ui-addon-doc-languages.js.map +0 -1
  181. package/fesm2015/taiga-ui-addon-doc-services.js.map +0 -1
  182. package/fesm2015/taiga-ui-addon-doc-tokens.js.map +0 -1
  183. package/fesm2015/taiga-ui-addon-doc-types.js +0 -4
  184. package/fesm2015/taiga-ui-addon-doc-types.js.map +0 -1
  185. package/fesm2015/taiga-ui-addon-doc-utils.js.map +0 -1
  186. package/fesm2015/taiga-ui-addon-doc.js.map +0 -1
  187. package/interfaces/package.json +0 -10
  188. package/interfaces/taiga-ui-addon-doc-interfaces.d.ts +0 -5
  189. package/languages/package.json +0 -10
  190. package/languages/taiga-ui-addon-doc-languages.d.ts +0 -5
  191. package/services/package.json +0 -10
  192. package/services/taiga-ui-addon-doc-services.d.ts +0 -5
  193. package/taiga-ui-addon-doc.d.ts +0 -5
  194. package/tokens/package.json +0 -10
  195. package/tokens/taiga-ui-addon-doc-tokens.d.ts +0 -5
  196. package/types/package.json +0 -10
  197. package/types/taiga-ui-addon-doc-types.d.ts +0 -5
  198. package/utils/package.json +0 -10
  199. package/utils/taiga-ui-addon-doc-utils.d.ts +0 -5
  200. /package/{esm2015/components/example/example.options.js → esm2020/components/example/example.options.mjs} +0 -0
  201. /package/{esm2015/components/page/page.providers.js → esm2020/components/page/page.providers.mjs} +0 -0
  202. /package/{esm2015/components/taiga-ui-addon-doc-components.js → esm2020/components/taiga-ui-addon-doc-components.mjs} +0 -0
  203. /package/{esm2015/directives/index.js → esm2020/directives/index.mjs} +0 -0
  204. /package/{esm2015/directives/taiga-ui-addon-doc-directives.js → esm2020/directives/taiga-ui-addon-doc-directives.mjs} +0 -0
  205. /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  206. /package/{esm2015/interfaces/code-editor.js → esm2020/interfaces/code-editor.mjs} +0 -0
  207. /package/{esm2015/interfaces/demo-params.js → esm2020/interfaces/demo-params.mjs} +0 -0
  208. /package/{esm2015/interfaces/index.js → esm2020/interfaces/index.mjs} +0 -0
  209. /package/{esm2015/interfaces/page.js → esm2020/interfaces/page.mjs} +0 -0
  210. /package/{esm2015/interfaces/source-code-path-options.js → esm2020/interfaces/source-code-path-options.mjs} +0 -0
  211. /package/{esm2015/interfaces/taiga-ui-addon-doc-interfaces.js → esm2020/interfaces/taiga-ui-addon-doc-interfaces.mjs} +0 -0
  212. /package/{esm2015/languages/index.js → esm2020/languages/index.mjs} +0 -0
  213. /package/{esm2015/languages/russian.js → esm2020/languages/russian.mjs} +0 -0
  214. /package/{esm2015/languages/taiga-ui-addon-doc-languages.js → esm2020/languages/taiga-ui-addon-doc-languages.mjs} +0 -0
  215. /package/{esm2015/services/index.js → esm2020/services/index.mjs} +0 -0
  216. /package/{esm2015/services/taiga-ui-addon-doc-services.js → esm2020/services/taiga-ui-addon-doc-services.mjs} +0 -0
  217. /package/{esm2015/services/theme-night.options.js → esm2020/services/theme-night.options.mjs} +0 -0
  218. /package/{esm2015/services/theme.options.js → esm2020/services/theme.options.mjs} +0 -0
  219. /package/{esm2015/taiga-ui-addon-doc.js → esm2020/taiga-ui-addon-doc.mjs} +0 -0
  220. /package/{esm2015/tokens/code-actions.js → esm2020/tokens/code-actions.mjs} +0 -0
  221. /package/{esm2015/tokens/code-editor.js → esm2020/tokens/code-editor.mjs} +0 -0
  222. /package/{esm2015/tokens/default-tabs.js → esm2020/tokens/default-tabs.mjs} +0 -0
  223. /package/{esm2015/tokens/doc-icons.js → esm2020/tokens/doc-icons.mjs} +0 -0
  224. /package/{esm2015/tokens/example-content-processor.js → esm2020/tokens/example-content-processor.mjs} +0 -0
  225. /package/{esm2015/tokens/excluded-properties.js → esm2020/tokens/excluded-properties.mjs} +0 -0
  226. /package/{esm2015/tokens/i18n.js → esm2020/tokens/i18n.mjs} +0 -0
  227. /package/{esm2015/tokens/index.js → esm2020/tokens/index.mjs} +0 -0
  228. /package/{esm2015/tokens/logo.js → esm2020/tokens/logo.mjs} +0 -0
  229. /package/{esm2015/tokens/scroll-behavior.js → esm2020/tokens/scroll-behavior.mjs} +0 -0
  230. /package/{esm2015/tokens/see-also.js → esm2020/tokens/see-also.mjs} +0 -0
  231. /package/{esm2015/tokens/source-code.js → esm2020/tokens/source-code.mjs} +0 -0
  232. /package/{esm2015/tokens/taiga-ui-addon-doc-tokens.js → esm2020/tokens/taiga-ui-addon-doc-tokens.mjs} +0 -0
  233. /package/{esm2015/tokens/title.js → esm2020/tokens/title.mjs} +0 -0
  234. /package/{esm2015/tokens/type-reference-handler.js → esm2020/tokens/type-reference-handler.mjs} +0 -0
  235. /package/{esm2015/tokens/url-state-handler.js → esm2020/tokens/url-state-handler.mjs} +0 -0
  236. /package/{esm2015/types/index.js → esm2020/types/index.mjs} +0 -0
  237. /package/{esm2015/types/pages.js → esm2020/types/pages.mjs} +0 -0
  238. /package/{esm2015/types/taiga-ui-addon-doc-types.js → esm2020/types/taiga-ui-addon-doc-types.mjs} +0 -0
  239. /package/{esm2015/utils/generate-routes.js → esm2020/utils/generate-routes.mjs} +0 -0
  240. /package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
  241. /package/{esm2015/utils/inspect.js → esm2020/utils/inspect.mjs} +0 -0
  242. /package/{esm2015/utils/is-page-group.js → esm2020/utils/is-page-group.mjs} +0 -0
  243. /package/{esm2015/utils/parse-code-block.js → esm2020/utils/parse-code-block.mjs} +0 -0
  244. /package/{esm2015/utils/taiga-ui-addon-doc-utils.js → esm2020/utils/taiga-ui-addon-doc-utils.mjs} +0 -0
  245. /package/{esm2015/utils/transliterate-keyboard-layout.js → esm2020/utils/transliterate-keyboard-layout.mjs} +0 -0
@@ -1,183 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Location } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, TemplateRef, ViewChild, } from '@angular/core';
4
- import { FormGroup } from '@angular/forms';
5
- import { UrlSerializer } from '@angular/router';
6
- import { TUI_DOC_DEMO_TEXTS, TUI_DOC_URL_STATE_HANDLER } from '@taiga-ui/addon-doc/tokens';
7
- import { tuiCoerceValueIsTrue } from '@taiga-ui/addon-doc/utils';
8
- import { TUI_IS_MOBILE, tuiClamp, tuiCleanObject, TuiDestroyService, tuiPure, tuiPx, TuiResizeableDirective, tuiToInteger, } from '@taiga-ui/cdk';
9
- import { TuiModeDirective } from '@taiga-ui/core';
10
- import { TUI_ARROW_OPTIONS } from '@taiga-ui/kit';
11
- import { Subject } from 'rxjs';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@taiga-ui/core";
14
- import * as i2 from "@taiga-ui/kit";
15
- import * as i3 from "@angular/router";
16
- import * as i4 from "@angular/common";
17
- import * as i5 from "@angular/forms";
18
- import * as i6 from "@taiga-ui/cdk";
19
- const MIN_WIDTH = 160;
20
- export class TuiDocDemoComponent {
21
- constructor(options, isMobile, el, locationRef, urlSerializer, texts, urlStateHandler) {
22
- var _a, _b;
23
- this.options = options;
24
- this.isMobile = isMobile;
25
- this.el = el;
26
- this.locationRef = locationRef;
27
- this.urlSerializer = urlSerializer;
28
- this.texts = texts;
29
- this.urlStateHandler = urlStateHandler;
30
- this.control = null;
31
- this.sticky = true;
32
- this.template = null;
33
- this.updateOnVariants = ['change', 'blur', 'submit'];
34
- this.updateOn = this.params.updateOn || this.updateOnVariants[0];
35
- this.opaque = tuiCoerceValueIsTrue((_a = this.params.sandboxOpaque) !== null && _a !== void 0 ? _a : true);
36
- this.expanded = tuiCoerceValueIsTrue((_b = this.params.sandboxExpanded) !== null && _b !== void 0 ? _b : false);
37
- this.mode = this.params.tuiMode || null;
38
- this.sandboxWidth = tuiToInteger(this.params.sandboxWidth);
39
- this.change$ = new Subject();
40
- this.items = ['onLight', 'onDark'];
41
- }
42
- onResize() {
43
- this.updateWidth();
44
- this.onMouseUp();
45
- }
46
- onMouseUp() {
47
- this.updateUrl({ sandboxWidth: this.sandboxWidth });
48
- }
49
- ngOnInit() {
50
- this.createForm();
51
- this.updateWidth(this.sandboxWidth + this.delta);
52
- }
53
- onModeChange(mode) {
54
- this.mode = mode;
55
- this.updateUrl({ sandboxWidth: this.sandboxWidth });
56
- this.change$.next();
57
- }
58
- toggleDetails() {
59
- this.expanded = !this.expanded;
60
- this.updateUrl({ sandboxExpanded: this.expanded });
61
- }
62
- changeOpaque(opaque) {
63
- this.opaque = opaque;
64
- this.updateUrl({ sandboxOpaque: this.opaque });
65
- }
66
- updateOnChange(updateOn) {
67
- this.updateOn = updateOn;
68
- this.updateUrl({ updateOn });
69
- this.createForm();
70
- }
71
- updateWidth(width = NaN) {
72
- if (!this.resizer || !this.resizeable || !this.content) {
73
- return;
74
- }
75
- const safe = width || this.resizeable.nativeElement.clientWidth;
76
- const total = this.el.nativeElement.clientWidth;
77
- const clamped = Math.round(tuiClamp(safe, MIN_WIDTH, total)) - this.delta;
78
- const validated = safe < total ? clamped : NaN;
79
- this.resizer.nativeElement.textContent = String(clamped || '-');
80
- this.resizeable.nativeElement.style.width = validated ? tuiPx(safe) : '';
81
- this.sandboxWidth = validated;
82
- }
83
- get delta() {
84
- return this.resizeable && this.content
85
- ? this.resizeable.nativeElement.clientWidth -
86
- this.content.nativeElement.clientWidth
87
- : 0;
88
- }
89
- updateUrl(params) {
90
- const tree = this.getUrlTree();
91
- const { queryParams } = tree;
92
- delete queryParams.sandboxWidth;
93
- delete queryParams.tuiMode;
94
- tree.queryParams = Object.assign(Object.assign({}, queryParams), tuiCleanObject(Object.assign({ tuiMode: this.mode }, params)));
95
- this.locationRef.go(this.urlStateHandler(tree));
96
- }
97
- createForm() {
98
- const { control, updateOn } = this;
99
- if (control) {
100
- this.testForm = new FormGroup({ testValue: control }, { updateOn });
101
- }
102
- }
103
- getUrlTree() {
104
- return this.urlSerializer.parse(this.locationRef.path());
105
- }
106
- get params() {
107
- return this.getUrlTree().queryParams;
108
- }
109
- }
110
- TuiDocDemoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocDemoComponent, deps: [{ token: TUI_ARROW_OPTIONS }, { token: TUI_IS_MOBILE }, { token: ElementRef }, { token: Location }, { token: UrlSerializer }, { token: TUI_DOC_DEMO_TEXTS }, { token: TUI_DOC_URL_STATE_HANDLER }], target: i0.ɵɵFactoryTarget.Component });
111
- TuiDocDemoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocDemoComponent, selector: "tui-doc-demo", inputs: { control: "control", sticky: "sticky" }, host: { listeners: { "window:resize": "onResize()", "document:mouseup.silent": "onMouseUp()" }, properties: { "class._sticky": "this.sticky" } }, providers: [
112
- TuiDestroyService,
113
- {
114
- provide: TuiModeDirective,
115
- useExisting: forwardRef(() => TuiDocDemoComponent),
116
- },
117
- ], queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "resizeable", first: true, predicate: TuiResizeableDirective, descendants: true, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "resizer", first: true, predicate: ["resizer"], descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"t-bg-toggle\"\n [tuiMode]=\"null\"\n>\n <ng-template #tooltip>\n {{ texts[0] }}\n <a\n routerLink=\"/directives/mode\"\n tuiLink\n tuiMode=\"onDark\"\n >\n <code>tuiMode</code>\n </a>\n </ng-template>\n <ng-container *ngIf=\"isMobile; else desktop\">\n <tui-select\n tuiTextfieldSize=\"s\"\n class=\"t-mode\"\n [ngModel]=\"mode\"\n [tuiHintContent]=\"tooltip\"\n [tuiTextfieldCleaner]=\"true\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n tuiMode\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"items\"\n ></tui-data-list-wrapper>\n </tui-select>\n </ng-container>\n <ng-template #desktop>\n tuiMode:\n <tui-tooltip\n describeId=\"form\"\n [content]=\"tooltip\"\n ></tui-tooltip>\n <div\n tuiGroup\n class=\"t-group\"\n [collapsed]=\"true\"\n >\n <tui-radio-block\n nativeId=\"form\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [item]=\"null\"\n [ngModel]=\"mode\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n null\n </tui-radio-block>\n <tui-radio-block\n item=\"onDark\"\n nativeId=\"form\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [ngModel]=\"mode\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n onDark\n </tui-radio-block>\n <tui-radio-block\n item=\"onLight\"\n nativeId=\"form\"\n size=\"s\"\n class=\"tui-group__auto-width-item\"\n [hideRadio]=\"true\"\n [ngModel]=\"mode\"\n (ngModelChange)=\"onModeChange($event)\"\n >\n onLight\n </tui-radio-block>\n </div>\n </ng-template>\n <tui-checkbox-labeled\n size=\"m\"\n class=\"t-checkbox\"\n [ngModel]=\"opaque\"\n (ngModelChange)=\"changeOpaque($event)\"\n >\n {{ texts[1] }}\n </tui-checkbox-labeled>\n</div>\n<div\n tuiResizeable\n class=\"t-wrapper\"\n [class.t-wrapper_dark]=\"mode === 'onDark'\"\n [class.t-wrapper_gray]=\"mode === 'onLight'\"\n [class.t-wrapper_transparent]=\"!opaque\"\n>\n <div\n id=\"demo-content\"\n class=\"t-content\"\n >\n <div #content>\n <form\n *ngIf=\"testForm\"\n class=\"t-form\"\n [formGroup]=\"testForm\"\n >\n <div class=\"t-input-wrapper\">\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n </div>\n <button\n automation-id=\"tui-demo-button__toggle-details\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [iconRight]=\"icon\"\n (click)=\"toggleDetails()\"\n >\n {{ texts[2] }}\n </button>\n <ng-template #icon>\n <tui-svg\n class=\"t-icon\"\n [class.t-icon_rotated]=\"expanded\"\n [src]=\"options.iconSmall\"\n ></tui-svg>\n </ng-template>\n <tui-expand\n class=\"t-expand\"\n [expanded]=\"expanded\"\n >\n <ng-template tuiExpandContent>\n <pre class=\"t-value\">Form data: {{ testForm.value | json }}</pre>\n <div\n tuiGroup\n class=\"t-form-controls\"\n >\n <tui-select\n automation-id=\"tui-demo-select__expand-update-on\"\n tuiTextfieldSize=\"s\"\n class=\"t-select\"\n [ngModel]=\"updateOn\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"updateOnChange($event)\"\n >\n updateOn\n <tui-data-list-wrapper\n *tuiDataList\n [items]=\"updateOnVariants\"\n ></tui-data-list-wrapper>\n </tui-select>\n <button\n automation-id=\"tui-demo-button__reset-state\"\n size=\"s\"\n tuiButton\n type=\"reset\"\n class=\"tui-group__auto-width-item\"\n >\n Reset\n </button>\n <button\n automation-id=\"tui-demo-button__submit-state\"\n size=\"s\"\n tuiButton\n type=\"submit\"\n class=\"tui-group__auto-width-item\"\n >\n Submit\n </button>\n </div>\n </ng-template>\n </tui-expand>\n </form>\n <ng-content></ng-content>\n </div>\n </div>\n <div\n #resizer\n class=\"t-resizer\"\n [tuiResizer]=\"[1, 0]\"\n (tuiSizeChange)=\"updateWidth($event[0])\"\n ></div>\n</div>\n", styles: [":host{position:relative;display:block;min-width:100%;margin:1.5rem 0}.t-bg-toggle{position:absolute;bottom:calc(100% + .75rem);display:flex;align-items:center;justify-content:flex-end;pointer-events:none;width:100%}.t-bg-toggle>*{pointer-events:auto}.t-wrapper{box-shadow:var(--tui-shadow-dropdown);display:flex;border:1px solid var(--tui-base-03);border-radius:var(--tui-radius-m);max-width:100%;min-height:6rem;width:100%;min-width:10rem;background-color:var(--tui-base-01);overflow:hidden}.t-wrapper.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-base-02) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-base-02) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-base-02) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-base-02) 75%);background-size:1.25rem 1.25rem;background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0}.t-wrapper.t-wrapper_dark{background-color:#454e58;color:var(--tui-base-01)}.t-wrapper.t-wrapper_gray{background-color:#e5e7ea}.t-wrapper.t-wrapper_dark.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-focus) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-focus) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-focus) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-focus) 75%)}.t-wrapper.t-wrapper_gray.t-wrapper_transparent{background-image:linear-gradient(45deg,var(--tui-base-05) 25%,transparent 25%),linear-gradient(-45deg,var(--tui-base-05) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--tui-base-05) 75%),linear-gradient(-45deg,transparent 75%,var(--tui-base-05) 75%)}:host-context(tui-root._mobile) .t-wrapper{min-height:auto}.t-content{flex:1 1 0;min-width:0;padding:1.5rem;box-sizing:border-box;overflow:hidden}:host-context(tui-root._mobile) .t-content{padding:1rem}.t-form{display:flex;flex-wrap:wrap;align-items:flex-start}.t-input-wrapper{width:100%;margin-bottom:.5rem}.t-expand{width:100%}.t-icon{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}.t-icon_rotated{transform:rotate(180deg)}.t-value{flex:1;background:var(--tui-clear-inverse);padding:.75rem;border-radius:.25rem}.t-mode{width:12.5rem}.t-select{max-width:15rem}.t-resizer{box-shadow:var(--tui-shadow-dropdown);position:relative;width:3.5rem;min-height:inherit;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-left:1px solid var(--tui-base-03);outline:none;background:var(--tui-base-01);color:var(--tui-text-01)}.t-resizer:before,.t-resizer:after{content:\"\";position:absolute;top:.75rem;left:50%;bottom:calc(50% + 1rem);width:1px;background:var(--tui-base-04);box-shadow:-.25rem 0 var(--tui-base-04);transform:translate(0)}.t-resizer:after{bottom:.75rem;top:calc(50% + 1rem)}:host-context(tui-root._mobile) .t-resizer{display:none}.t-resizer-text{font:var(--tui-font-text-s);position:relative;z-index:1;padding:.75rem;background:var(--tui-base-01)}.wrapper_light .t-resizer-text{background:#3e464e}.t-group,.t-checkbox{margin-left:.75rem}.t-button,.t-form-controls{margin-top:.75rem}@supports ((position: -webkit-sticky) or (position: sticky)){@media screen and (min-height: 37.5rem){:host._sticky{position:-webkit-sticky;position:sticky;top:4.625rem;z-index:2}}}\n"], components: [{ type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { type: i2.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }, { type: i1.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId", "context"] }, { type: i2.TuiRadioBlockComponent, selector: "tui-radio-block", inputs: ["item", "identityMatcher", "contentAlign", "size", "hideRadio", "pseudoDisabled"] }, { type: i2.TuiCheckboxLabeledComponent, selector: "tui-checkbox-labeled", inputs: ["size"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], directives: [{ type: i1.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TuiSelectDirective, selector: "tui-select" }, { type: i1.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: ["tuiHintContent", "tuiHintDirection", "tuiHintAppearance", "tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i1.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { type: i1.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i1.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i6.TuiResizeableDirective, selector: "[tuiResizeable]" }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.TuiExpandContentDirective, selector: "[tuiExpandContent]" }, { type: i6.TuiResizerDirective, selector: "[tuiResizer]", inputs: ["tuiResizer"], outputs: ["tuiSizeChange"] }], pipes: { "json": i4.JsonPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
- __decorate([
119
- tuiPure
120
- ], TuiDocDemoComponent.prototype, "updateUrl", null);
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocDemoComponent, decorators: [{
122
- type: Component,
123
- args: [{
124
- selector: 'tui-doc-demo',
125
- templateUrl: './demo.template.html',
126
- styleUrls: ['./demo.style.less'],
127
- changeDetection: ChangeDetectionStrategy.OnPush,
128
- providers: [
129
- TuiDestroyService,
130
- {
131
- provide: TuiModeDirective,
132
- useExisting: forwardRef(() => TuiDocDemoComponent),
133
- },
134
- ],
135
- }]
136
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
137
- type: Inject,
138
- args: [TUI_ARROW_OPTIONS]
139
- }] }, { type: undefined, decorators: [{
140
- type: Inject,
141
- args: [TUI_IS_MOBILE]
142
- }] }, { type: i0.ElementRef, decorators: [{
143
- type: Inject,
144
- args: [ElementRef]
145
- }] }, { type: i4.Location, decorators: [{
146
- type: Inject,
147
- args: [Location]
148
- }] }, { type: i3.UrlSerializer, decorators: [{
149
- type: Inject,
150
- args: [UrlSerializer]
151
- }] }, { type: undefined, decorators: [{
152
- type: Inject,
153
- args: [TUI_DOC_DEMO_TEXTS]
154
- }] }, { type: undefined, decorators: [{
155
- type: Inject,
156
- args: [TUI_DOC_URL_STATE_HANDLER]
157
- }] }]; }, propDecorators: { resizeable: [{
158
- type: ViewChild,
159
- args: [TuiResizeableDirective, { static: true }]
160
- }], content: [{
161
- type: ViewChild,
162
- args: ['content', { static: true }]
163
- }], resizer: [{
164
- type: ViewChild,
165
- args: ['resizer', { static: true }]
166
- }], control: [{
167
- type: Input
168
- }], sticky: [{
169
- type: Input
170
- }, {
171
- type: HostBinding,
172
- args: ['class._sticky']
173
- }], template: [{
174
- type: ContentChild,
175
- args: [TemplateRef]
176
- }], onResize: [{
177
- type: HostListener,
178
- args: ['window:resize']
179
- }], onMouseUp: [{
180
- type: HostListener,
181
- args: ['document:mouseup.silent']
182
- }], updateUrl: [] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9kZW1vL2RlbW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZGVtby9kZW1vLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBUyxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsRUFDUixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsc0JBQXNCLEVBRXRCLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQUU3QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFldEIsTUFBTSxPQUFPLG1CQUFtQjtJQW1DNUIsWUFDd0MsT0FBd0IsRUFDNUIsUUFBaUIsRUFDWixFQUEyQixFQUM3QixXQUFxQixFQUNoQixhQUE0QixFQUMvQixLQUErQixFQUVuRCxlQUEwQzs7UUFQdkIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNaLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQy9CLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBRW5ELG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQWhDL0QsWUFBTyxHQUEyQixJQUFJLENBQUM7UUFJdkMsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdMLGFBQVEsR0FBZ0QsSUFBSSxDQUFDO1FBSTdELHFCQUFnQixHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQVUsQ0FBQztRQUVsRSxhQUFRLEdBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJELFdBQU0sR0FBRyxvQkFBb0IsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxtQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUNqRSxhQUFRLEdBQUcsb0JBQW9CLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsbUNBQUksS0FBSyxDQUFDLENBQUM7UUFDdEUsU0FBSSxHQUF5QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDekQsaUJBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU3QyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM5QixVQUFLLEdBQTZCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBVzlELENBQUM7SUFHSixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBR0QsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQTBCO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFlO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFzQztRQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixHQUFHO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEQsT0FBTztTQUNWO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUNoRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDMUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFZLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU87WUFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVc7Z0JBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFHTyxTQUFTLENBQUMsTUFBcUI7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9CLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFM0IsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDO1FBQ2hDLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUUzQixJQUFJLENBQUMsV0FBVyxtQ0FDVCxXQUFXLEdBQ1gsY0FBYyxpQkFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSyxNQUFNLEVBQUUsQ0FDckQsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sVUFBVTtRQUNkLE1BQU0sRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRWpDLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7U0FDbkU7SUFDTCxDQUFDO0lBRU8sVUFBVTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFZLE1BQU07UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDekMsQ0FBQzs7aUhBeElRLG1CQUFtQixrQkFvQ2hCLGlCQUFpQixhQUNqQixhQUFhLGFBQ2IsVUFBVSxhQUNWLFFBQVEsYUFDUixhQUFhLGFBQ2Isa0JBQWtCLGFBQ2xCLHlCQUF5QjtxR0ExQzVCLG1CQUFtQiwyT0FSakI7UUFDUCxpQkFBaUI7UUFDakI7WUFDSSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7U0FDckQ7S0FDSixnRUFtQmEsV0FBVyw0RkFoQmQsc0JBQXNCLG9RQ25EckMsa21NQW1MQTtBRHRCSTtJQURDLE9BQU87b0RBY1A7NEZBeEhRLG1CQUFtQjtrQkFiL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLHNCQUFzQjtvQkFDbkMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ2hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQjs0QkFDSSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzt5QkFDckQ7cUJBQ0o7aUJBQ0o7OzBCQXFDUSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLHlCQUF5Qjs0Q0F4Q3BCLFVBQVU7c0JBRDFCLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUloQyxPQUFPO3NCQUR2QixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSW5CLE9BQU87c0JBRHZCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJcEMsT0FBTztzQkFETixLQUFLO2dCQUtOLE1BQU07c0JBRkwsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxlQUFlO2dCQUluQixRQUFRO3NCQURoQixZQUFZO3VCQUFDLFdBQVc7Z0JBOEJ6QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZTtnQkFPN0IsU0FBUztzQkFEUixZQUFZO3VCQUFDLHlCQUF5QjtnQkF1RC9CLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtQYXJhbXMsIFVybFNlcmlhbGl6ZXIsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1R1aURlbW9QYXJhbXN9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9ET0NfREVNT19URVhUUywgVFVJX0RPQ19VUkxfU1RBVEVfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy90b2tlbnMnO1xuaW1wb3J0IHt0dWlDb2VyY2VWYWx1ZUlzVHJ1ZX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy91dGlscyc7XG5pbXBvcnQge1xuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpQ2xhbXAsXG4gICAgdHVpQ2xlYW5PYmplY3QsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlQeCxcbiAgICBUdWlSZXNpemVhYmxlRGlyZWN0aXZlLFxuICAgIFR1aVN0cmluZ0hhbmRsZXIsXG4gICAgdHVpVG9JbnRlZ2VyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpQnJpZ2h0bmVzcywgVHVpTW9kZURpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfQVJST1dfT1BUSU9OUywgVHVpQXJyb3dPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IE1JTl9XSURUSCA9IDE2MDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZG9jLWRlbW8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZW1vLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlbW8uc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVHVpTW9kZURpcmVjdGl2ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aURvY0RlbW9Db21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0RlbW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoVHVpUmVzaXplYWJsZURpcmVjdGl2ZSwge3N0YXRpYzogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVhYmxlPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50Jywge3N0YXRpYzogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50PzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdyZXNpemVyJywge3N0YXRpYzogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNpemVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9zdGlja3knKVxuICAgIHN0aWNreSA9IHRydWU7XG5cbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKVxuICAgIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCBudWxsID0gbnVsbDtcblxuICAgIHRlc3RGb3JtPzogRm9ybUdyb3VwO1xuXG4gICAgcmVhZG9ubHkgdXBkYXRlT25WYXJpYW50cyA9IFsnY2hhbmdlJywgJ2JsdXInLCAnc3VibWl0J10gYXMgY29uc3Q7XG5cbiAgICB1cGRhdGVPbjogJ2JsdXInIHwgJ2NoYW5nZScgfCAnc3VibWl0JyA9XG4gICAgICAgIHRoaXMucGFyYW1zLnVwZGF0ZU9uIHx8IHRoaXMudXBkYXRlT25WYXJpYW50c1swXTtcblxuICAgIG9wYXF1ZSA9IHR1aUNvZXJjZVZhbHVlSXNUcnVlKHRoaXMucGFyYW1zLnNhbmRib3hPcGFxdWUgPz8gdHJ1ZSk7XG4gICAgZXhwYW5kZWQgPSB0dWlDb2VyY2VWYWx1ZUlzVHJ1ZSh0aGlzLnBhcmFtcy5zYW5kYm94RXhwYW5kZWQgPz8gZmFsc2UpO1xuICAgIG1vZGU6IFR1aUJyaWdodG5lc3MgfCBudWxsID0gdGhpcy5wYXJhbXMudHVpTW9kZSB8fCBudWxsO1xuICAgIHNhbmRib3hXaWR0aCA9IHR1aVRvSW50ZWdlcih0aGlzLnBhcmFtcy5zYW5kYm94V2lkdGgpO1xuXG4gICAgcmVhZG9ubHkgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcmVhZG9ubHkgaXRlbXM6IHJlYWRvbmx5IFR1aUJyaWdodG5lc3NbXSA9IFsnb25MaWdodCcsICdvbkRhcmsnXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9BUlJPV19PUFRJT05TKSByZWFkb25seSBvcHRpb25zOiBUdWlBcnJvd09wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb25SZWY6IExvY2F0aW9uLFxuICAgICAgICBASW5qZWN0KFVybFNlcmlhbGl6ZXIpIHByaXZhdGUgcmVhZG9ubHkgdXJsU2VyaWFsaXplcjogVXJsU2VyaWFsaXplcixcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0RFTU9fVEVYVFMpIHJlYWRvbmx5IHRleHRzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10sXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19VUkxfU1RBVEVfSEFORExFUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1cmxTdGF0ZUhhbmRsZXI6IFR1aVN0cmluZ0hhbmRsZXI8VXJsVHJlZT4sXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgICAgICAgdGhpcy5vbk1vdXNlVXAoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwLnNpbGVudCcpXG4gICAgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVVybCh7c2FuZGJveFdpZHRoOiB0aGlzLnNhbmRib3hXaWR0aH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICAgICAgdGhpcy51cGRhdGVXaWR0aCh0aGlzLnNhbmRib3hXaWR0aCArIHRoaXMuZGVsdGEpO1xuICAgIH1cblxuICAgIG9uTW9kZUNoYW5nZShtb2RlOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgICAgICB0aGlzLnVwZGF0ZVVybCh7c2FuZGJveFdpZHRoOiB0aGlzLnNhbmRib3hXaWR0aH0pO1xuICAgICAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICAgIH1cblxuICAgIHRvZ2dsZURldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgICAgdGhpcy51cGRhdGVVcmwoe3NhbmRib3hFeHBhbmRlZDogdGhpcy5leHBhbmRlZH0pO1xuICAgIH1cblxuICAgIGNoYW5nZU9wYXF1ZShvcGFxdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGFxdWUgPSBvcGFxdWU7XG4gICAgICAgIHRoaXMudXBkYXRlVXJsKHtzYW5kYm94T3BhcXVlOiB0aGlzLm9wYXF1ZX0pO1xuICAgIH1cblxuICAgIHVwZGF0ZU9uQ2hhbmdlKHVwZGF0ZU9uOiAnYmx1cicgfCAnY2hhbmdlJyB8ICdzdWJtaXQnKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlT24gPSB1cGRhdGVPbjtcbiAgICAgICAgdGhpcy51cGRhdGVVcmwoe3VwZGF0ZU9ufSk7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVdpZHRoKHdpZHRoOiBudW1iZXIgPSBOYU4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlc2l6ZXIgfHwgIXRoaXMucmVzaXplYWJsZSB8fCAhdGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYWZlID0gd2lkdGggfHwgdGhpcy5yZXNpemVhYmxlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCBjbGFtcGVkID0gTWF0aC5yb3VuZCh0dWlDbGFtcChzYWZlLCBNSU5fV0lEVEgsIHRvdGFsKSkgLSB0aGlzLmRlbHRhO1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSBzYWZlIDwgdG90YWwgPyBjbGFtcGVkIDogTmFOO1xuXG4gICAgICAgIHRoaXMucmVzaXplci5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50ID0gU3RyaW5nKGNsYW1wZWQgfHwgJy0nKTtcbiAgICAgICAgdGhpcy5yZXNpemVhYmxlLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB2YWxpZGF0ZWQgPyB0dWlQeChzYWZlKSA6ICcnO1xuICAgICAgICB0aGlzLnNhbmRib3hXaWR0aCA9IHZhbGlkYXRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBkZWx0YSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNpemVhYmxlICYmIHRoaXMuY29udGVudFxuICAgICAgICAgICAgPyB0aGlzLnJlc2l6ZWFibGUubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICAgICAgOiAwO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSB1cGRhdGVVcmwocGFyYW1zOiBUdWlEZW1vUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLmdldFVybFRyZWUoKTtcbiAgICAgICAgY29uc3Qge3F1ZXJ5UGFyYW1zfSA9IHRyZWU7XG5cbiAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zLnNhbmRib3hXaWR0aDtcbiAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zLnR1aU1vZGU7XG5cbiAgICAgICAgdHJlZS5xdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgLi4udHVpQ2xlYW5PYmplY3Qoe3R1aU1vZGU6IHRoaXMubW9kZSwgLi4ucGFyYW1zfSksXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5sb2NhdGlvblJlZi5nbyh0aGlzLnVybFN0YXRlSGFuZGxlcih0cmVlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7Y29udHJvbCwgdXBkYXRlT259ID0gdGhpcztcblxuICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy50ZXN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe3Rlc3RWYWx1ZTogY29udHJvbH0sIHt1cGRhdGVPbn0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmxUcmVlKCk6IFVybFRyZWUge1xuICAgICAgICByZXR1cm4gdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHRoaXMubG9jYXRpb25SZWYucGF0aCgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwYXJhbXMoKTogUGFyYW1zIHwgVHVpRGVtb1BhcmFtcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVybFRyZWUoKS5xdWVyeVBhcmFtcztcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ0LWJnLXRvZ2dsZVwiXG4gICAgW3R1aU1vZGVdPVwibnVsbFwiXG4+XG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwPlxuICAgICAgICB7eyB0ZXh0c1swXSB9fVxuICAgICAgICA8YVxuICAgICAgICAgICAgcm91dGVyTGluaz1cIi9kaXJlY3RpdmVzL21vZGVcIlxuICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgdHVpTW9kZT1cIm9uRGFya1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxjb2RlPnR1aU1vZGU8L2NvZGU+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01vYmlsZTsgZWxzZSBkZXNrdG9wXCI+XG4gICAgICAgIDx0dWktc2VsZWN0XG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwic1wiXG4gICAgICAgICAgICBjbGFzcz1cInQtbW9kZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlXCJcbiAgICAgICAgICAgIFt0dWlIaW50Q29udGVudF09XCJ0b29sdGlwXCJcbiAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cInRydWVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB0dWlNb2RlXG4gICAgICAgICAgICA8dHVpLWRhdGEtbGlzdC13cmFwcGVyXG4gICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICAgICAgICAgID48L3R1aS1kYXRhLWxpc3Qtd3JhcHBlcj5cbiAgICAgICAgPC90dWktc2VsZWN0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVza3RvcD5cbiAgICAgICAgdHVpTW9kZTpcbiAgICAgICAgPHR1aS10b29sdGlwXG4gICAgICAgICAgICBkZXNjcmliZUlkPVwiZm9ybVwiXG4gICAgICAgICAgICBbY29udGVudF09XCJ0b29sdGlwXCJcbiAgICAgICAgPjwvdHVpLXRvb2x0aXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIHR1aUdyb3VwXG4gICAgICAgICAgICBjbGFzcz1cInQtZ3JvdXBcIlxuICAgICAgICAgICAgW2NvbGxhcHNlZF09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1yYWRpby1ibG9ja1xuICAgICAgICAgICAgICAgIG5hdGl2ZUlkPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHVpLWdyb3VwX19hdXRvLXdpZHRoLWl0ZW1cIlxuICAgICAgICAgICAgICAgIFtoaWRlUmFkaW9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwibnVsbFwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIDwvdHVpLXJhZGlvLWJsb2NrPlxuICAgICAgICAgICAgPHR1aS1yYWRpby1ibG9ja1xuICAgICAgICAgICAgICAgIGl0ZW09XCJvbkRhcmtcIlxuICAgICAgICAgICAgICAgIG5hdGl2ZUlkPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHVpLWdyb3VwX19hdXRvLXdpZHRoLWl0ZW1cIlxuICAgICAgICAgICAgICAgIFtoaWRlUmFkaW9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIG9uRGFya1xuICAgICAgICAgICAgPC90dWktcmFkaW8tYmxvY2s+XG4gICAgICAgICAgICA8dHVpLXJhZGlvLWJsb2NrXG4gICAgICAgICAgICAgICAgaXRlbT1cIm9uTGlnaHRcIlxuICAgICAgICAgICAgICAgIG5hdGl2ZUlkPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHVpLWdyb3VwX19hdXRvLXdpZHRoLWl0ZW1cIlxuICAgICAgICAgICAgICAgIFtoaWRlUmFkaW9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIG9uTGlnaHRcbiAgICAgICAgICAgIDwvdHVpLXJhZGlvLWJsb2NrPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDx0dWktY2hlY2tib3gtbGFiZWxlZFxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIGNsYXNzPVwidC1jaGVja2JveFwiXG4gICAgICAgIFtuZ01vZGVsXT1cIm9wYXF1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZU9wYXF1ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIHt7IHRleHRzWzFdIH19XG4gICAgPC90dWktY2hlY2tib3gtbGFiZWxlZD5cbjwvZGl2PlxuPGRpdlxuICAgIHR1aVJlc2l6ZWFibGVcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgW2NsYXNzLnQtd3JhcHBlcl9kYXJrXT1cIm1vZGUgPT09ICdvbkRhcmsnXCJcbiAgICBbY2xhc3MudC13cmFwcGVyX2dyYXldPVwibW9kZSA9PT0gJ29uTGlnaHQnXCJcbiAgICBbY2xhc3MudC13cmFwcGVyX3RyYW5zcGFyZW50XT1cIiFvcGFxdWVcIlxuPlxuICAgIDxkaXZcbiAgICAgICAgaWQ9XCJkZW1vLWNvbnRlbnRcIlxuICAgICAgICBjbGFzcz1cInQtY29udGVudFwiXG4gICAgPlxuICAgICAgICA8ZGl2ICNjb250ZW50PlxuICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICAqbmdJZj1cInRlc3RGb3JtXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtZm9ybVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJ0ZXN0Rm9ybVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInQtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRlbW8tYnV0dG9uX190b2dnbGUtZGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25SaWdodF09XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbHMoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0c1syXSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy50LWljb25fcm90YXRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm9wdGlvbnMuaWNvblNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdHVpLXN2Zz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDx0dWktZXhwYW5kXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1leHBhbmRcIlxuICAgICAgICAgICAgICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHR1aUV4cGFuZENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPVwidC12YWx1ZVwiPkZvcm0gZGF0YToge3sgdGVzdEZvcm0udmFsdWUgfCBqc29uIH19PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtZm9ybS1jb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1kZW1vLXNlbGVjdF9fZXhwYW5kLXVwZGF0ZS1vblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInVwZGF0ZU9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlT25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwidXBkYXRlT25WYXJpYW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3R1aS1kYXRhLWxpc3Qtd3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3R1aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWRlbW8tYnV0dG9uX19yZXNldC1zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHVpLWdyb3VwX19hdXRvLXdpZHRoLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktZGVtby1idXR0b25fX3N1Ym1pdC1zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInR1aS1ncm91cF9fYXV0by13aWR0aC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90dWktZXhwYW5kPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICNyZXNpemVyXG4gICAgICAgIGNsYXNzPVwidC1yZXNpemVyXCJcbiAgICAgICAgW3R1aVJlc2l6ZXJdPVwiWzEsIDBdXCJcbiAgICAgICAgKHR1aVNpemVDaGFuZ2UpPVwidXBkYXRlV2lkdGgoJGV2ZW50WzBdKVwiXG4gICAgPjwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,127 +0,0 @@
1
- import { Location } from '@angular/common';
2
- import { Directive, EventEmitter, Inject, Input, Output, TemplateRef, } from '@angular/core';
3
- import { ActivatedRoute, UrlSerializer } from '@angular/router';
4
- import { TUI_DOC_URL_STATE_HANDLER } from '@taiga-ui/addon-doc/tokens';
5
- import { tuiCoerceValue } from '@taiga-ui/addon-doc/utils';
6
- import { tuiIsNumber } from '@taiga-ui/cdk';
7
- import { BehaviorSubject, Subject } from 'rxjs';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/router";
11
- const SERIALIZED_SUFFIX = '$';
12
- // @bad TODO: refactor output and value sync
13
- export class TuiDocDocumentationPropertyConnectorDirective {
14
- constructor(template, locationRef, activatedRoute, urlSerializer, urlStateHandler) {
15
- this.template = template;
16
- this.locationRef = locationRef;
17
- this.activatedRoute = activatedRoute;
18
- this.urlSerializer = urlSerializer;
19
- this.urlStateHandler = urlStateHandler;
20
- this.documentationPropertyName = '';
21
- this.documentationPropertyMode = null;
22
- this.documentationPropertyType = '';
23
- this.documentationPropertyDeprecated = false;
24
- this.documentationPropertyValues = null;
25
- this.documentationPropertyValueChange = new EventEmitter();
26
- this.changed$ = new Subject();
27
- this.emits$ = new BehaviorSubject(1);
28
- }
29
- ngOnInit() {
30
- this.parseParams(this.activatedRoute.snapshot.queryParams);
31
- }
32
- get attrName() {
33
- switch (this.documentationPropertyMode) {
34
- case 'input':
35
- return `[${this.documentationPropertyName}]`;
36
- case 'output':
37
- return `(${this.documentationPropertyName})`;
38
- case 'input-output':
39
- return `[(${this.documentationPropertyName})]`;
40
- default:
41
- return this.documentationPropertyName;
42
- }
43
- }
44
- get hasItems() {
45
- return !!this.documentationPropertyValues;
46
- }
47
- get shouldShowValues() {
48
- return this.documentationPropertyMode !== 'output';
49
- }
50
- ngOnChanges() {
51
- this.changed$.next();
52
- }
53
- onValueChange(value) {
54
- this.documentationPropertyValue = value;
55
- this.documentationPropertyValueChange.emit(value);
56
- this.setQueryParam(value);
57
- }
58
- emitEvent(event) {
59
- // For more convenient debugging
60
- console.info(this.attrName, event);
61
- this.emits$.next(this.emits$.value + 1);
62
- }
63
- parseParams(params) {
64
- const propertyValue = params[this.documentationPropertyName];
65
- const propertyValueWithSuffix = params[`${this.documentationPropertyName}${SERIALIZED_SUFFIX}`];
66
- if (!propertyValue && !propertyValueWithSuffix) {
67
- return;
68
- }
69
- let value = !!propertyValueWithSuffix && this.documentationPropertyValues
70
- ? this.documentationPropertyValues[propertyValueWithSuffix]
71
- : tuiCoerceValue(propertyValue);
72
- if (this.documentationPropertyType === 'string' && tuiIsNumber(value)) {
73
- value = value.toString();
74
- }
75
- this.onValueChange(value);
76
- }
77
- setQueryParam(value) {
78
- const tree = this.urlSerializer.parse(this.locationRef.path());
79
- const isValueAvailableByKey = value instanceof Object;
80
- const computedValue = isValueAvailableByKey && this.documentationPropertyValues
81
- ? this.documentationPropertyValues.indexOf(value)
82
- : value;
83
- const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';
84
- const propName = this.documentationPropertyName + suffix;
85
- tree.queryParams = Object.assign(Object.assign({}, tree.queryParams), { [propName]: computedValue });
86
- this.locationRef.go(this.urlStateHandler(tree));
87
- }
88
- }
89
- TuiDocDocumentationPropertyConnectorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocDocumentationPropertyConnectorDirective, deps: [{ token: TemplateRef }, { token: Location }, { token: ActivatedRoute }, { token: UrlSerializer }, { token: TUI_DOC_URL_STATE_HANDLER }], target: i0.ɵɵFactoryTarget.Directive });
90
- TuiDocDocumentationPropertyConnectorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocDocumentationPropertyConnectorDirective, selector: "ng-template[documentationPropertyName]", inputs: { documentationPropertyName: "documentationPropertyName", documentationPropertyMode: "documentationPropertyMode", documentationPropertyType: "documentationPropertyType", documentationPropertyValue: "documentationPropertyValue", documentationPropertyDeprecated: "documentationPropertyDeprecated", documentationPropertyValues: "documentationPropertyValues" }, outputs: { documentationPropertyValueChange: "documentationPropertyValueChange" }, exportAs: ["documentationProperty"], usesOnChanges: true, ngImport: i0 });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocDocumentationPropertyConnectorDirective, decorators: [{
92
- type: Directive,
93
- args: [{
94
- selector: 'ng-template[documentationPropertyName]',
95
- exportAs: 'documentationProperty',
96
- }]
97
- }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
98
- type: Inject,
99
- args: [TemplateRef]
100
- }] }, { type: i1.Location, decorators: [{
101
- type: Inject,
102
- args: [Location]
103
- }] }, { type: i2.ActivatedRoute, decorators: [{
104
- type: Inject,
105
- args: [ActivatedRoute]
106
- }] }, { type: i2.UrlSerializer, decorators: [{
107
- type: Inject,
108
- args: [UrlSerializer]
109
- }] }, { type: undefined, decorators: [{
110
- type: Inject,
111
- args: [TUI_DOC_URL_STATE_HANDLER]
112
- }] }]; }, propDecorators: { documentationPropertyName: [{
113
- type: Input
114
- }], documentationPropertyMode: [{
115
- type: Input
116
- }], documentationPropertyType: [{
117
- type: Input
118
- }], documentationPropertyValue: [{
119
- type: Input
120
- }], documentationPropertyDeprecated: [{
121
- type: Input
122
- }], documentationPropertyValues: [{
123
- type: Input
124
- }], documentationPropertyValueChange: [{
125
- type: Output
126
- }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi1wcm9wZXJ0eS1jb25uZWN0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZG9jdW1lbnRhdGlvbi9kb2N1bWVudGF0aW9uLXByb3BlcnR5LWNvbm5lY3Rvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFVLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQy9FLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsV0FBVyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7OztBQUU5QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQVc5Qiw0Q0FBNEM7QUFLNUMsTUFBTSxPQUFPLDZDQUE2QztJQTRCdEQsWUFDa0MsUUFBOEMsRUFDekMsV0FBcUIsRUFDZixjQUE4QixFQUMvQixhQUE0QixFQUVuRCxlQUEwQztRQUw3QixhQUFRLEdBQVIsUUFBUSxDQUFzQztRQUN6QyxnQkFBVyxHQUFYLFdBQVcsQ0FBVTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUVuRCxvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUE5Qi9ELDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUcv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QUs7Z0JBSU4sMkJBQTJCO3NCQUQxQixLQUFLO2dCQUlHLGdDQUFnQztzQkFEeEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFBhcmFtcywgVXJsU2VyaWFsaXplciwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VFVJX0RPQ19VUkxfU1RBVEVfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy90b2tlbnMnO1xuaW1wb3J0IHt0dWlDb2VyY2VWYWx1ZX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWRvYy91dGlscyc7XG5pbXBvcnQge3R1aUlzTnVtYmVyLCBUdWlTdHJpbmdIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuY29uc3QgU0VSSUFMSVpFRF9TVUZGSVggPSAnJCc7XG5cbmV4cG9ydCB0eXBlIFR1aURvY3VtZW50YXRpb25Qcm9wZXJ0eVR5cGUgPSAnaW5wdXQtb3V0cHV0JyB8ICdpbnB1dCcgfCAnb3V0cHV0JyB8IG51bGw7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHVzZSB7QGxpbmsgVHVpRG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZX1cbiAqIFRPRE86IHJlbW92ZSBpbiB2NC4wXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCB0eXBlIERvY3VtZW50YXRpb25Qcm9wZXJ0eVR5cGUgPSBUdWlEb2N1bWVudGF0aW9uUHJvcGVydHlUeXBlO1xuXG4vLyBAYmFkIFRPRE86IHJlZmFjdG9yIG91dHB1dCBhbmQgdmFsdWUgc3luY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtkb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lXScsXG4gICAgZXhwb3J0QXM6ICdkb2N1bWVudGF0aW9uUHJvcGVydHknLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NEb2N1bWVudGF0aW9uUHJvcGVydHlDb25uZWN0b3JEaXJlY3RpdmU8VD5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gICAgQElucHV0KClcbiAgICBkb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGRvY3VtZW50YXRpb25Qcm9wZXJ0eU1vZGU6IFR1aURvY3VtZW50YXRpb25Qcm9wZXJ0eVR5cGUgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBkb2N1bWVudGF0aW9uUHJvcGVydHlUeXBlID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlITogVDtcblxuICAgIEBJbnB1dCgpXG4gICAgZG9jdW1lbnRhdGlvblByb3BlcnR5RGVwcmVjYXRlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBkb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXM6IHJlYWRvbmx5IFRbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICByZWFkb25seSBjaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICByZWFkb25seSBlbWl0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDEpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVGVtcGxhdGVSZWYpIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sXG4gICAgICAgIEBJbmplY3QoTG9jYXRpb24pIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb25SZWY6IExvY2F0aW9uLFxuICAgICAgICBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgQEluamVjdChVcmxTZXJpYWxpemVyKSBwcml2YXRlIHJlYWRvbmx5IHVybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX0RPQ19VUkxfU1RBVEVfSEFORExFUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1cmxTdGF0ZUhhbmRsZXI6IFR1aVN0cmluZ0hhbmRsZXI8VXJsVHJlZT4sXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyc2VQYXJhbXModGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyk7XG4gICAgfVxuXG4gICAgZ2V0IGF0dHJOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlNb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBbJHt0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWV9XWA7XG4gICAgICAgICAgICBjYXNlICdvdXRwdXQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBgKCR7dGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lfSlgO1xuICAgICAgICAgICAgY2FzZSAnaW5wdXQtb3V0cHV0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gYFsoJHt0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWV9KV1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGhhc0l0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlcztcbiAgICB9XG5cbiAgICBnZXQgc2hvdWxkU2hvd1ZhbHVlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TW9kZSAhPT0gJ291dHB1dCc7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlZCQubmV4dCgpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFF1ZXJ5UGFyYW0odmFsdWUpO1xuICAgIH1cblxuICAgIGVtaXRFdmVudChldmVudDogdW5rbm93bik6IHZvaWQge1xuICAgICAgICAvLyBGb3IgbW9yZSBjb252ZW5pZW50IGRlYnVnZ2luZ1xuICAgICAgICBjb25zb2xlLmluZm8odGhpcy5hdHRyTmFtZSwgZXZlbnQpO1xuXG4gICAgICAgIHRoaXMuZW1pdHMkLm5leHQodGhpcy5lbWl0cyQudmFsdWUgKyAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlUGFyYW1zKHBhcmFtczogUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5VmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHBhcmFtc1t0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWVdO1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeDogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIHBhcmFtc1tgJHt0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eU5hbWV9JHtTRVJJQUxJWkVEX1NVRkZJWH1gXTtcblxuICAgICAgICBpZiAoIXByb3BlcnR5VmFsdWUgJiYgIXByb3BlcnR5VmFsdWVXaXRoU3VmZml4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPVxuICAgICAgICAgICAgISFwcm9wZXJ0eVZhbHVlV2l0aFN1ZmZpeCAmJiB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlc1xuICAgICAgICAgICAgICAgID8gdGhpcy5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZXNbcHJvcGVydHlWYWx1ZVdpdGhTdWZmaXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgICAgIDogdHVpQ29lcmNlVmFsdWUocHJvcGVydHlWYWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSA9PT0gJ3N0cmluZycgJiYgdHVpSXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UodmFsdWUgYXMgVCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRRdWVyeVBhcmFtKHZhbHVlOiBUIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLmxvY2F0aW9uUmVmLnBhdGgoKSk7XG5cbiAgICAgICAgY29uc3QgaXNWYWx1ZUF2YWlsYWJsZUJ5S2V5ID0gdmFsdWUgaW5zdGFuY2VvZiBPYmplY3Q7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkVmFsdWUgPVxuICAgICAgICAgICAgaXNWYWx1ZUF2YWlsYWJsZUJ5S2V5ICYmIHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVzXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlcy5pbmRleE9mKHZhbHVlIGFzIFQpXG4gICAgICAgICAgICAgICAgOiB2YWx1ZTtcblxuICAgICAgICBjb25zdCBzdWZmaXggPSBpc1ZhbHVlQXZhaWxhYmxlQnlLZXkgPyBTRVJJQUxJWkVEX1NVRkZJWCA6ICcnO1xuICAgICAgICBjb25zdCBwcm9wTmFtZSA9IHRoaXMuZG9jdW1lbnRhdGlvblByb3BlcnR5TmFtZSArIHN1ZmZpeDtcblxuICAgICAgICB0cmVlLnF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgLi4udHJlZS5xdWVyeVBhcmFtcyxcbiAgICAgICAgICAgIFtwcm9wTmFtZV06IGNvbXB1dGVkVmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5sb2NhdGlvblJlZi5nbyh0aGlzLnVybFN0YXRlSGFuZGxlcih0cmVlKSk7XG4gICAgfVxufVxuIl19
@@ -1,117 +0,0 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Inject, Input, Self, } from '@angular/core';
3
- import { TUI_DOC_DOCUMENTATION_TEXTS, TUI_DOC_EXCLUDED_PROPERTIES, } from '@taiga-ui/addon-doc/tokens';
4
- import { EMPTY_QUERY, TuiDestroyService, tuiHexToRgb, tuiQueryListChanges, tuiWatch, } from '@taiga-ui/cdk';
5
- import { merge } from 'rxjs';
6
- import { switchMap, takeUntil } from 'rxjs/operators';
7
- import { TuiDocDocumentationPropertyConnectorDirective } from './documentation-property-connector.directive';
8
- import { TuiGetColorPipe } from './pipes/color.pipe';
9
- import { TuiGetOpacityPipe } from './pipes/opacity.pipe';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@taiga-ui/kit";
12
- import * as i2 from "@taiga-ui/core";
13
- import * as i3 from "@angular/common";
14
- import * as i4 from "@angular/forms";
15
- import * as i5 from "../internal/input-opacity/input-opacity.directive";
16
- import * as i6 from "@taiga-ui/cdk";
17
- import * as i7 from "./pipes/strip-optional.pipe";
18
- import * as i8 from "./pipes/optional.pipe";
19
- import * as i9 from "./pipes/type-reference.pipe";
20
- import * as i10 from "./pipes/cleaner.pipe";
21
- import * as i11 from "./pipes/inspect.pipe";
22
- import * as i12 from "./pipes/opacity.pipe";
23
- import * as i13 from "./pipes/color.pipe";
24
- import * as i14 from "./pipes/primitive-polymorpheus-content.pipe";
25
- // @bad TODO subscribe propertiesConnectors changes
26
- // @bad TODO refactor to make more flexible
27
- export class TuiDocDocumentationComponent {
28
- constructor(cdr, texts, excludedProperties, destroy$, getColor, getOpacity) {
29
- this.cdr = cdr;
30
- this.texts = texts;
31
- this.excludedProperties = excludedProperties;
32
- this.destroy$ = destroy$;
33
- this.getColor = getColor;
34
- this.getOpacity = getOpacity;
35
- this.heading = '';
36
- this.showValues = true;
37
- this.isAPI = false;
38
- this.propertiesConnectors = EMPTY_QUERY;
39
- this.activeItemIndex = 0;
40
- this.matcher = (item, exclusions) => !exclusions.has(item.documentationPropertyName);
41
- }
42
- ngAfterContentInit() {
43
- tuiQueryListChanges(this.propertiesConnectors)
44
- .pipe(switchMap(items => merge(...items.map(({ changed$ }) => changed$))), tuiWatch(this.cdr), takeUntil(this.destroy$))
45
- .subscribe();
46
- }
47
- get type() {
48
- return this.isAPI ? this.texts[0] : this.texts[1];
49
- }
50
- onColorChange(connector, color) {
51
- const opacity = this.getOpacity.transform(connector.documentationPropertyValue || '');
52
- if (opacity === 100) {
53
- connector.onValueChange(color);
54
- return;
55
- }
56
- const rgb = tuiHexToRgb(color).join(', ');
57
- const result = `rgba(${rgb}, ${opacity / 100})`;
58
- connector.onValueChange(result);
59
- }
60
- onOpacityChange(connector, opacity) {
61
- const hex = this.getColor.transform(connector.documentationPropertyValue || '');
62
- const rgb = tuiHexToRgb(hex);
63
- const result = `rgba(${rgb}, ${(opacity || 0) / 100})`;
64
- connector.onValueChange(result);
65
- }
66
- }
67
- TuiDocDocumentationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocDocumentationComponent, deps: [{ token: ChangeDetectorRef }, { token: TUI_DOC_DOCUMENTATION_TEXTS }, { token: TUI_DOC_EXCLUDED_PROPERTIES }, { token: TuiDestroyService, self: true }, { token: TuiGetColorPipe }, { token: TuiGetOpacityPipe }], target: i0.ɵɵFactoryTarget.Component });
68
- TuiDocDocumentationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDocDocumentationComponent, selector: "tui-doc-documentation", inputs: { heading: "heading", showValues: "showValues", isAPI: "isAPI" }, providers: [TuiGetColorPipe, TuiGetOpacityPipe, TuiDestroyService], queries: [{ propertyName: "propertiesConnectors", predicate: TuiDocDocumentationPropertyConnectorDirective }], ngImport: i0, template: "<h1\n *ngIf=\"heading\"\n class=\"t-heading\"\n>\n {{ heading }}\n</h1>\n<ng-content></ng-content>\n<ng-container *ngIf=\"$any(propertiesConnectors) | tuiFilter: matcher : excludedProperties as properties\">\n <table\n *ngIf=\"properties.length\"\n class=\"t-table\"\n >\n <tr class=\"t-row t-row_header\">\n <th class=\"t-th t-cell t-cell_prop\">{{ texts[2] }}</th>\n <th class=\"t-th\">{{ type }}</th>\n <th\n *ngIf=\"showValues && !isAPI\"\n class=\"t-th t-cell t-th_value\"\n >\n {{ texts[3] }}\n </th>\n </tr>\n <tr\n *ngFor=\"let propertyConnector of properties\"\n class=\"t-row\"\n [class.t-deprecated]=\"propertyConnector.documentationPropertyDeprecated\"\n >\n <td class=\"t-cell\">\n <div\n automation-id=\"tui-documentation__property-name\"\n class=\"t-property\"\n >\n <code [style.color]=\"'var(--tui-accent-active)'\">\n {{ propertyConnector.attrName | tuiStripOptionalPipe }}\n </code>\n <tui-badge\n *ngIf=\"propertyConnector.attrName | tuiIsOptionalPipe\"\n size=\"s\"\n value=\"Optional\"\n ></tui-badge>\n </div>\n <span\n *ngIf=\"propertyConnector.documentationPropertyDeprecated\"\n class=\"t-deprecated-label\"\n >\n deprecated\n </span>\n <ng-container [ngTemplateOutlet]=\"propertyConnector.template\"></ng-container>\n </td>\n <td class=\"t-cell\">\n <span class=\"type\">\n <code class=\"t-code-type\">\n <ng-container\n *ngFor=\"\n let item of propertyConnector.documentationPropertyType | tuiDocTypeReference;\n let last = last\n \"\n >\n <a\n *ngIf=\"item.reference; else default\"\n target=\"_blank\"\n class=\"t-code-reference\"\n [attr.href]=\"item.reference\"\n >\n {{ item.type }}\n </a>\n <ng-template #default>\n {{ item.type }}\n </ng-template>\n <span *ngIf=\"!last\">&nbsp;|&nbsp;</span>\n </ng-container>\n </code>\n </span>\n </td>\n <td\n *ngIf=\"showValues\"\n class=\"t-cell t-cell_value\"\n >\n <ng-container *ngIf=\"propertyConnector.shouldShowValues; else elseEmitter\">\n <tui-select\n *ngIf=\"propertyConnector.hasItems; else noItems\"\n tuiDropdownLimitWidth=\"min\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [tuiTextfieldCleaner]=\"propertyConnector.documentationPropertyType | tuiShowCleanerPipe\"\n [tuiTextfieldLabelOutside]=\"true\"\n [valueContent]=\"selectContent\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n >\n <code class=\"t-exception\">null</code>\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"selectContent\"\n [items]=\"propertyConnector.documentationPropertyValues\"\n ></tui-data-list-wrapper>\n </tui-select>\n <ng-template\n #selectContent\n let-data\n >\n <code>{{ data | tuiInspectAny }}</code>\n </ng-template>\n\n <ng-template #noItems>\n <ng-container [ngSwitch]=\"propertyConnector.documentationPropertyType\">\n <tui-toggle\n *ngSwitchCase=\"'boolean'\"\n size=\"l\"\n [nativeId]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [showIcons]=\"true\"\n (ngModelChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-toggle>\n\n <tui-primitive-textfield\n *ngSwitchCase=\"'string'\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiTextfieldLabelOutside]=\"true\"\n [value]=\"propertyConnector.documentationPropertyValue || ''\"\n (valueChange)=\"propertyConnector.onValueChange($event)\"\n ></tui-primitive-textfield>\n\n <div\n *ngSwitchCase=\"'color'\"\n tuiGroup\n >\n <tui-primitive-textfield\n tuiTextfieldSize=\"m\"\n [attr.id]=\"propertyConnector.attrName\"\n [tuiInputOpacity]=\"propertyConnector.documentationPropertyValue | tuiGetOpacity\"\n [tuiTextfieldLabelOutside]=\"true\"\n [value]=\"propertyConnector.documentationPropertyValue | tuiGetColorPipe\"\n (valueChange)=\"onColorChange(propertyConnector, $event)\"\n >\n <input\n tuiTextfield\n type=\"text\"\n />\n </tui-primitive-textfield>\n <tui-input-number\n tuiTextfieldSize=\"m\"\n [max]=\"100\"\n [min]=\"0\"\n [ngModel]=\"propertyConnector.documentationPropertyValue | tuiGetOpacity\"\n [step]=\"1\"\n (ngModelChange)=\"onOpacityChange(propertyConnector, $event)\"\n >\n Opacity\n </tui-input-number>\n </div>\n\n <tui-input-number\n *ngSwitchCase=\"'number'\"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [ngModel]=\"propertyConnector.documentationPropertyValue\"\n [step]=\"1\"\n [tuiTextfieldLabelOutside]=\"true\"\n (ngModelChange)=\"propertyConnector.onValueChange($event || 0)\"\n ></tui-input-number>\n\n <ng-container *ngSwitchCase=\"'PolymorpheusContent'\">\n <tui-primitive-textfield\n *ngIf=\"\n propertyConnector.documentationPropertyValue\n | tuiIsPrimitivePolymorpheusContentPipe\n \"\n tuiTextfieldSize=\"m\"\n [nativeId]=\"propertyConnector.attrName\"\n [tuiTextfieldCleaner]=\"true\"\n [tuiTextfieldLabelOutside]=\"true\"\n [value]=\"propertyConnector.documentationPropertyValue.toString()\"\n (valueChange)=\"propertyConnector.onValueChange($event)\"\n >\n Default content\n </tui-primitive-textfield>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-template #elseEmitter>\n <tui-notification\n class=\"t-output\"\n [@emitEvent]=\"propertyConnector.emits$ | async\"\n >\n Emit!\n </tui-notification>\n </ng-template>\n </td>\n </tr>\n </table>\n</ng-container>\n", styles: [":host{display:block;min-width:100%}.t-table{width:100%;table-layout:fixed}.t-row:not(:last-child){border-bottom:1px solid var(--tui-base-03)}:host-context(tui-root._mobile) .t-row{display:flex;flex-wrap:wrap}:host-context(tui-root._mobile) .t-row_header{display:none}.t-cell{padding:1rem 1rem .875rem}.t-cell:first-child{padding-left:0}.t-cell:last-child{padding-right:0}.t-cell_prop{width:40%}.t-cell_value{text-align:right}:host-context(tui-root._mobile) .t-cell{width:100%;height:auto;padding:.5rem 0;text-align:left}.t-th{padding:.5rem 1rem;color:var(--tui-text-02);font-weight:normal;text-align:left}.t-th_value{max-width:20rem;text-align:right}:host-context(tui-root._mobile) .t-th_value{width:9.375rem}.t-property{font:var(--tui-font-text-m);margin-bottom:.25rem;font-family:monospace;color:#8f75d1}:host-context(tui-root._mobile) .t-property{padding:.5rem 0}.t-type{font-family:monospace}.t-deprecated{background-color:var(--tui-error-bg);box-shadow:-1rem 0 var(--tui-error-bg),1rem 0 var(--tui-error-bg)}.t-deprecated-label{margin-right:.125rem;color:var(--tui-error-fill)}.t-exception{display:block;width:-webkit-max-content;width:max-content}.t-output{text-align:left;opacity:0}.t-heading{font:var(--tui-font-heading-4)}.t-code-type{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start}.t-code-reference{display:inline-flex;color:var(--tui-link);text-decoration:none;align-items:center;justify-content:center;grid-gap:3px;gap:3px}.t-code-reference:after{content:\"\";font-size:1rem;width:1rem;height:1rem;background:currentColor;-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1rem\" height=\"1rem\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>') center / 100%;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1rem\" height=\"1rem\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></svg>') center / 100%}\n"], components: [{ type: i1.TuiBadgeComponent, selector: "tui-badge", inputs: ["value", "size", "status", "hoverable"] }, { type: i1.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { type: i1.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels])", inputs: ["items"] }, { type: i1.TuiToggleComponent, selector: "tui-toggle", inputs: ["singleColor", "showIcons", "showLoader", "size"] }, { type: i2.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i2.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { type: i1.TuiInputNumberComponent, selector: "tui-input-number", inputs: ["min", "max", "decimal", "precision", "step", "prefix", "postfix"] }, { type: i2.TuiNotificationComponent, selector: "tui-notification", inputs: ["hasIcon", "icon", "status", "size", "hideClose"], outputs: ["close"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.TuiSelectDirective, selector: "tui-select" }, { type: i2.TuiDropdownOptionsDirective, selector: "[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]", inputs: ["tuiDropdownAlign", "tuiDropdownAppearance", "tuiDropdownDirection", "tuiDropdownLimitWidth", "tuiDropdownMinHeight", "tuiDropdownMaxHeight", "tuiDropdownOffset"] }, { type: i2.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { type: i2.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { type: i2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i2.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i5.TuiInputOpacityDirective, selector: "[tuiInputOpacity]", inputs: ["tuiInputOpacity"] }, { type: i1.TuiInputNumberDirective, selector: "tui-input-number" }], pipes: { "tuiFilter": i6.TuiFilterPipe, "tuiStripOptionalPipe": i7.TuiStripOptionalPipe, "tuiIsOptionalPipe": i8.TuiIsOptionalPipe, "tuiDocTypeReference": i9.TuiDocTypeReferencePipe, "tuiShowCleanerPipe": i10.TuiShowCleanerPipe, "tuiInspectAny": i11.TuiInspectPipe, "tuiGetOpacity": i12.TuiGetOpacityPipe, "tuiGetColorPipe": i13.TuiGetColorPipe, "tuiIsPrimitivePolymorpheusContentPipe": i14.TuiIsPrimitivePolymorpheusContentPipe, "async": i3.AsyncPipe }, animations: [
69
- trigger('emitEvent', [
70
- transition(':increment', [style({ opacity: 1 }), animate('500ms ease-in')]),
71
- ]),
72
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDocDocumentationComponent, decorators: [{
74
- type: Component,
75
- args: [{
76
- selector: 'tui-doc-documentation',
77
- templateUrl: './documentation.template.html',
78
- styleUrls: ['./documentation.style.less'],
79
- changeDetection: ChangeDetectionStrategy.OnPush,
80
- providers: [TuiGetColorPipe, TuiGetOpacityPipe, TuiDestroyService],
81
- animations: [
82
- trigger('emitEvent', [
83
- transition(':increment', [style({ opacity: 1 }), animate('500ms ease-in')]),
84
- ]),
85
- ],
86
- }]
87
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef, decorators: [{
88
- type: Inject,
89
- args: [ChangeDetectorRef]
90
- }] }, { type: undefined, decorators: [{
91
- type: Inject,
92
- args: [TUI_DOC_DOCUMENTATION_TEXTS]
93
- }] }, { type: Set, decorators: [{
94
- type: Inject,
95
- args: [TUI_DOC_EXCLUDED_PROPERTIES]
96
- }] }, { type: i6.TuiDestroyService, decorators: [{
97
- type: Self
98
- }, {
99
- type: Inject,
100
- args: [TuiDestroyService]
101
- }] }, { type: i13.TuiGetColorPipe, decorators: [{
102
- type: Inject,
103
- args: [TuiGetColorPipe]
104
- }] }, { type: i12.TuiGetOpacityPipe, decorators: [{
105
- type: Inject,
106
- args: [TuiGetOpacityPipe]
107
- }] }]; }, propDecorators: { heading: [{
108
- type: Input
109
- }], showValues: [{
110
- type: Input
111
- }], isAPI: [{
112
- type: Input
113
- }], propertiesConnectors: [{
114
- type: ContentChildren,
115
- args: [TuiDocDocumentationPropertyConnectorDirective]
116
- }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1kb2MvY29tcG9uZW50cy9kb2N1bWVudGF0aW9uL2RvY3VtZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvZG9jdW1lbnRhdGlvbi9kb2N1bWVudGF0aW9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUNOLEtBQUssRUFFTCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDJCQUEyQixFQUMzQiwyQkFBMkIsR0FDOUIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0gsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEVBRW5CLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRXZELG1EQUFtRDtBQUNuRCwyQ0FBMkM7QUFhM0MsTUFBTSxPQUFPLDRCQUE0QjtJQWdCckMs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QW9NQSxrMkxEN0pnQjtRQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDakIsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1NBQzVFLENBQUM7S0FDTDs0RkFFUSw0QkFBNEI7a0JBWnhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7b0JBQ3pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7b0JBQ2xFLFVBQVUsRUFBRTt3QkFDUixPQUFPLENBQUMsV0FBVyxFQUFFOzRCQUNqQixVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7eUJBQzVFLENBQUM7cUJBQ0w7aUJBQ0o7OzBCQWtCUSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsMkJBQTJCOzhCQUdOLEdBQUc7MEJBRC9CLE1BQU07MkJBQUMsMkJBQTJCOzswQkFFbEMsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUV4QixNQUFNOzJCQUFDLGVBQWU7OzBCQUV0QixNQUFNOzJCQUFDLGlCQUFpQjs0Q0F6QjdCLE9BQU87c0JBRE4sS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLG9CQUFvQjtzQkFEbkIsZUFBZTt1QkFBQyw2Q0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9ET0NfRE9DVU1FTlRBVElPTl9URVhUUyxcbiAgICBUVUlfRE9DX0VYQ0xVREVEX1BST1BFUlRJRVMsXG59IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1kb2MvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgRU1QVFlfUVVFUlksXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgdHVpSGV4VG9SZ2IsXG4gICAgdHVpUXVlcnlMaXN0Q2hhbmdlcyxcbiAgICBUdWlUeXBlZE1hdGNoZXIsXG4gICAgdHVpV2F0Y2gsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHttZXJnZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3N3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlfSBmcm9tICcuL2RvY3VtZW50YXRpb24tcHJvcGVydHktY29ubmVjdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aUdldENvbG9yUGlwZX0gZnJvbSAnLi9waXBlcy9jb2xvci5waXBlJztcbmltcG9ydCB7VHVpR2V0T3BhY2l0eVBpcGV9IGZyb20gJy4vcGlwZXMvb3BhY2l0eS5waXBlJztcblxuLy8gQGJhZCBUT0RPIHN1YnNjcmliZSBwcm9wZXJ0aWVzQ29ubmVjdG9ycyBjaGFuZ2VzXG4vLyBAYmFkIFRPRE8gcmVmYWN0b3IgdG8gbWFrZSBtb3JlIGZsZXhpYmxlXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kb2MtZG9jdW1lbnRhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50YXRpb24udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnRhdGlvbi5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbVHVpR2V0Q29sb3JQaXBlLCBUdWlHZXRPcGFjaXR5UGlwZSwgVHVpRGVzdHJveVNlcnZpY2VdLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignZW1pdEV2ZW50JywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmluY3JlbWVudCcsIFtzdHlsZSh7b3BhY2l0eTogMX0pLCBhbmltYXRlKCc1MDBtcyBlYXNlLWluJyldKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jRG9jdW1lbnRhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgaGVhZGluZyA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93VmFsdWVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaXNBUEkgPSBmYWxzZTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlKVxuICAgIHByb3BlcnRpZXNDb25uZWN0b3JzOiBRdWVyeUxpc3Q8VHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlPGFueT4+ID1cbiAgICAgICAgRU1QVFlfUVVFUlk7XG5cbiAgICBhY3RpdmVJdGVtSW5kZXggPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfRE9DX0RPQ1VNRU5UQVRJT05fVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IHRleHRzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZywgc3RyaW5nLCBzdHJpbmddLFxuICAgICAgICBASW5qZWN0KFRVSV9ET0NfRVhDTFVERURfUFJPUEVSVElFUylcbiAgICAgICAgcmVhZG9ubHkgZXhjbHVkZWRQcm9wZXJ0aWVzOiBTZXQ8c3RyaW5nPixcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChUdWlHZXRDb2xvclBpcGUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZ2V0Q29sb3I6IFR1aUdldENvbG9yUGlwZSxcbiAgICAgICAgQEluamVjdChUdWlHZXRPcGFjaXR5UGlwZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBnZXRPcGFjaXR5OiBUdWlHZXRPcGFjaXR5UGlwZSxcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHR1aVF1ZXJ5TGlzdENoYW5nZXModGhpcy5wcm9wZXJ0aWVzQ29ubmVjdG9ycylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChpdGVtcyA9PiBtZXJnZSguLi5pdGVtcy5tYXAoKHtjaGFuZ2VkJH0pID0+IGNoYW5nZWQkKSkpLFxuICAgICAgICAgICAgICAgIHR1aVdhdGNoKHRoaXMuY2RyKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNBUEkgPyB0aGlzLnRleHRzWzBdIDogdGhpcy50ZXh0c1sxXTtcbiAgICB9XG5cbiAgICBtYXRjaGVyOiBUdWlUeXBlZE1hdGNoZXI8XG4gICAgICAgIFtUdWlEb2NEb2N1bWVudGF0aW9uUHJvcGVydHlDb25uZWN0b3JEaXJlY3RpdmU8YW55PiwgU2V0PHN0cmluZz5dXG4gICAgPiA9IChpdGVtLCBleGNsdXNpb25zKSA9PiAhZXhjbHVzaW9ucy5oYXMoaXRlbS5kb2N1bWVudGF0aW9uUHJvcGVydHlOYW1lKTtcblxuICAgIG9uQ29sb3JDaGFuZ2UoXG4gICAgICAgIGNvbm5lY3RvcjogVHVpRG9jRG9jdW1lbnRhdGlvblByb3BlcnR5Q29ubmVjdG9yRGlyZWN0aXZlPHN0cmluZz4sXG4gICAgICAgIGNvbG9yOiBzdHJpbmcsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wYWNpdHkgPSB0aGlzLmdldE9wYWNpdHkudHJhbnNmb3JtKFxuICAgICAgICAgICAgY29ubmVjdG9yLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlIHx8ICcnLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChvcGFjaXR5ID09PSAxMDApIHtcbiAgICAgICAgICAgIGNvbm5lY3Rvci5vblZhbHVlQ2hhbmdlKGNvbG9yKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmdiID0gdHVpSGV4VG9SZ2IoY29sb3IpLmpvaW4oJywgJyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGByZ2JhKCR7cmdifSwgJHtvcGFjaXR5IC8gMTAwfSlgO1xuXG4gICAgICAgIGNvbm5lY3Rvci5vblZhbHVlQ2hhbmdlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgb25PcGFjaXR5Q2hhbmdlKFxuICAgICAgICBjb25uZWN0b3I6IFR1aURvY0RvY3VtZW50YXRpb25Qcm9wZXJ0eUNvbm5lY3RvckRpcmVjdGl2ZTxzdHJpbmc+LFxuICAgICAgICBvcGFjaXR5OiBudW1iZXIgfCBudWxsLFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBoZXggPSB0aGlzLmdldENvbG9yLnRyYW5zZm9ybShjb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWUgfHwgJycpO1xuICAgICAgICBjb25zdCByZ2IgPSB0dWlIZXhUb1JnYihoZXgpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBgcmdiYSgke3JnYn0sICR7KG9wYWNpdHkgfHwgMCkgLyAxMDB9KWA7XG5cbiAgICAgICAgY29ubmVjdG9yLm9uVmFsdWVDaGFuZ2UocmVzdWx0KTtcbiAgICB9XG59XG4iLCI8aDFcbiAgICAqbmdJZj1cImhlYWRpbmdcIlxuICAgIGNsYXNzPVwidC1oZWFkaW5nXCJcbj5cbiAgICB7eyBoZWFkaW5nIH19XG48L2gxPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiRhbnkocHJvcGVydGllc0Nvbm5lY3RvcnMpIHwgdHVpRmlsdGVyOiBtYXRjaGVyIDogZXhjbHVkZWRQcm9wZXJ0aWVzIGFzIHByb3BlcnRpZXNcIj5cbiAgICA8dGFibGVcbiAgICAgICAgKm5nSWY9XCJwcm9wZXJ0aWVzLmxlbmd0aFwiXG4gICAgICAgIGNsYXNzPVwidC10YWJsZVwiXG4gICAgPlxuICAgICAgICA8dHIgY2xhc3M9XCJ0LXJvdyB0LXJvd19oZWFkZXJcIj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInQtdGggdC1jZWxsIHQtY2VsbF9wcm9wXCI+e3sgdGV4dHNbMl0gfX08L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwidC10aFwiPnt7IHR5cGUgfX08L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93VmFsdWVzICYmICFpc0FQSVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXRoIHQtY2VsbCB0LXRoX3ZhbHVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0c1szXSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvcGVydHlDb25uZWN0b3Igb2YgcHJvcGVydGllc1wiXG4gICAgICAgICAgICBjbGFzcz1cInQtcm93XCJcbiAgICAgICAgICAgIFtjbGFzcy50LWRlcHJlY2F0ZWRdPVwicHJvcGVydHlDb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5RGVwcmVjYXRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInQtY2VsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1kb2N1bWVudGF0aW9uX19wcm9wZXJ0eS1uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxjb2RlIFtzdHlsZS5jb2xvcl09XCIndmFyKC0tdHVpLWFjY2VudC1hY3RpdmUpJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvcGVydHlDb25uZWN0b3IuYXR0ck5hbWUgfCB0dWlTdHJpcE9wdGlvbmFsUGlwZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktYmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvcGVydHlDb25uZWN0b3IuYXR0ck5hbWUgfCB0dWlJc09wdGlvbmFsUGlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIk9wdGlvbmFsXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdHVpLWJhZGdlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvcGVydHlDb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5RGVwcmVjYXRlZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1kZXByZWNhdGVkLWxhYmVsXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWRcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9wZXJ0eUNvbm5lY3Rvci50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInQtY2VsbFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICA8Y29kZSBjbGFzcz1cInQtY29kZS10eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIHByb3BlcnR5Q29ubmVjdG9yLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVR5cGUgfCB0dWlEb2NUeXBlUmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFzdCA9IGxhc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5yZWZlcmVuY2U7IGVsc2UgZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jb2RlLXJlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiaXRlbS5yZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50eXBlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50eXBlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsYXN0XCI+Jm5ic3A7fCZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2NvZGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1ZhbHVlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNlbGwgdC1jZWxsX3ZhbHVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHlDb25uZWN0b3Iuc2hvdWxkU2hvd1ZhbHVlczsgZWxzZSBlbHNlRW1pdHRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8dHVpLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9wZXJ0eUNvbm5lY3Rvci5oYXNJdGVtczsgZWxzZSBub0l0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aURyb3Bkb3duTGltaXRXaWR0aD1cIm1pblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmF0aXZlSWRdPVwicHJvcGVydHlDb25uZWN0b3IuYXR0ck5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicHJvcGVydHlDb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3R1aVRleHRmaWVsZENsZWFuZXJdPVwicHJvcGVydHlDb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VHlwZSB8IHR1aVNob3dDbGVhbmVyUGlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHVpVGV4dGZpZWxkTGFiZWxPdXRzaWRlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlQ29udGVudF09XCJzZWxlY3RDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInByb3BlcnR5Q29ubmVjdG9yLm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlIGNsYXNzPVwidC1leGNlcHRpb25cIj5udWxsPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtQ29udGVudF09XCJzZWxlY3RDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwicHJvcGVydHlDb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3R1aS1kYXRhLWxpc3Qtd3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPC90dWktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICNzZWxlY3RDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQtZGF0YVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT57eyBkYXRhIHwgdHVpSW5zcGVjdEFueSB9fTwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSXRlbXM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJwcm9wZXJ0eUNvbm5lY3Rvci5kb2N1bWVudGF0aW9uUHJvcGVydHlUeXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS10b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hdGl2ZUlkXT1cInByb3BlcnR5Q29ubmVjdG9yLmF0dHJOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicHJvcGVydHlDb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0ljb25zXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwcm9wZXJ0eUNvbm5lY3Rvci5vblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3R1aS10b2dnbGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmF0aXZlSWRdPVwicHJvcGVydHlDb25uZWN0b3IuYXR0ck5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aVRleHRmaWVsZExhYmVsT3V0c2lkZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByb3BlcnR5Q29ubmVjdG9yLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInByb3BlcnR5Q29ubmVjdG9yLm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInY29sb3InXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwicHJvcGVydHlDb25uZWN0b3IuYXR0ck5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aUlucHV0T3BhY2l0eV09XCJwcm9wZXJ0eUNvbm5lY3Rvci5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZSB8IHR1aUdldE9wYWNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aVRleHRmaWVsZExhYmVsT3V0c2lkZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJwcm9wZXJ0eUNvbm5lY3Rvci5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZSB8IHR1aUdldENvbG9yUGlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25Db2xvckNoYW5nZShwcm9wZXJ0eUNvbm5lY3RvciwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktaW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicHJvcGVydHlDb25uZWN0b3IuZG9jdW1lbnRhdGlvblByb3BlcnR5VmFsdWUgfCB0dWlHZXRPcGFjaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25PcGFjaXR5Q2hhbmdlKHByb3BlcnR5Q29ubmVjdG9yLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYXRpdmVJZF09XCJwcm9wZXJ0eUNvbm5lY3Rvci5hdHRyTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInByb3BlcnR5Q29ubmVjdG9yLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRMYWJlbE91dHNpZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInByb3BlcnR5Q29ubmVjdG9yLm9uVmFsdWVDaGFuZ2UoJGV2ZW50IHx8IDApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90dWktaW5wdXQtbnVtYmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1BvbHltb3JwaGV1c0NvbnRlbnQnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUNvbm5lY3Rvci5kb2N1bWVudGF0aW9uUHJvcGVydHlWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHR1aUlzUHJpbWl0aXZlUG9seW1vcnBoZXVzQ29udGVudFBpcGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRTaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmF0aXZlSWRdPVwicHJvcGVydHlDb25uZWN0b3IuYXR0ck5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aVRleHRmaWVsZENsZWFuZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHVpVGV4dGZpZWxkTGFiZWxPdXRzaWRlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByb3BlcnR5Q29ubmVjdG9yLmRvY3VtZW50YXRpb25Qcm9wZXJ0eVZhbHVlLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInByb3BlcnR5Q29ubmVjdG9yLm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VFbWl0dGVyPlxuICAgICAgICAgICAgICAgICAgICA8dHVpLW5vdGlmaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LW91dHB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbQGVtaXRFdmVudF09XCJwcm9wZXJ0eUNvbm5lY3Rvci5lbWl0cyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVtaXQhXG4gICAgICAgICAgICAgICAgICAgIDwvdHVpLW5vdGlmaWNhdGlvbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICA8L3RhYmxlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=