ngx-sp-infra 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/2a/a3/eba6ea21e2e566c49202226aa3c1a4d439fa0a2c077374e48d864f20f5f804dbd931f042ddaa359fd35903a0bd3663a223e24dc11e1ec44501cc688a0a9c +1 -0
  2. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/46/44/91b55887c08130e8014b3dbe56b69c0c29f4e127bceafcd610165f4c8e77fefa799ab68c415c1b45cc4fa114565650f3fc3c258e1dc7b792935cbee43fa7 +1 -0
  3. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/7e/62/f8e6238b8f05aeaee2346bcaeda2226be7ab048d3b15e3dbbdf37170d9d7fade0fdfc6cc265d1ecc1b47509c962115d0d4b9a503907d6790c632e191001b +1 -0
  4. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/8d/53/ad58764bc240411378ae1c47c0c20525da378a3b143795a11bc3fdbf6c9cde6fb2de6c3947d673d5872b9ce205d6274114b3b4dfd27609a636df7fd0b600 +1 -0
  5. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/9e/70/9fc33090191a9df303901910a34f5d1cc7ea38ac92e21006bf923a814a4dffe9ad5b7357989f95d4e371cd00318c29339ec3e935832e84f3571ba0ed5f25 +1 -0
  6. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/a1/3a/6a6f351adef4b7c8b7d643b092ca26e0ceeb2a285456285f866504493c9c7db8d420d3a4f282c699a11f2f9933c828c8f8388f28e96372408d7b456f32a1 +1 -0
  7. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/d3/e3/2852d10551b620a4dfaabb1268bf0ac681e206bfb66451e18ac43a2e5c7cdc8a75291e3a1a4038129f3e40cc11317edffe8434d7110d9579585a25843e15 +1 -0
  8. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/f2/ee/05ff4c2260f161b6295a8507440a1b86c0f666f313866e5bf1de6829ae5fe384d6612d732d09c815fe515bd3d6379ed5f8136cf4a4e228b322309840240e +1 -0
  9. package/.angular/cache/16.2.0/ng-packagr/content-v2/sha512/fe/15/fb0370939f075c14617e0d5fd8411f76edb53e439e19683e5c4554ae7cabd0387c922f6ec6893ced3321ed77df2c851b82eea6a70b38b7396f68493eea19 +1 -0
  10. package/.angular/cache/16.2.0/ng-packagr/index-v5/10/17/ae308ad3e0cad0afd27bf9eafe0177fdb23b463e70e0dd30d23c117517f6 +2 -0
  11. package/.angular/cache/16.2.0/ng-packagr/index-v5/14/18/88eabde022c32e7a38011f4ab6f7945e52f018be1abbe6a96864f8f9e22c +2 -0
  12. package/.angular/cache/16.2.0/ng-packagr/index-v5/1c/b7/dcd00bf2f1de70eab7d9e1d9601fbd87f49d46c7b49671d81ccd4b20b3f1 +2 -0
  13. package/.angular/cache/16.2.0/ng-packagr/index-v5/4b/31/217b5311dae6305f9b5dc82062276c77f272d61fc3e27c2df5eb0d6b1fb7 +2 -0
  14. package/.angular/cache/16.2.0/ng-packagr/index-v5/6a/b0/e5091f9ee02b3fcac9821e92cc5113d6b0593bd8bacfb5cbac7dfca306c3 +2 -0
  15. package/.angular/cache/16.2.0/ng-packagr/index-v5/9b/66/70a7c5990683795072c8b98eb25407b36f55f8efa8d2e0bdef67a8e989ab +2 -0
  16. package/.angular/cache/16.2.0/ng-packagr/index-v5/a6/8b/af2670adca8f5d06d3d9577ffad4449e4897eaf85de2f4e7f43f93934a16 +2 -0
  17. package/.angular/cache/16.2.0/ng-packagr/index-v5/da/da/502cfd37a0e9e7f413a569ccf28dc682f9e942ec5e460c93c1dd7c4e531f +3 -0
  18. package/.angular/cache/16.2.0/ng-packagr/index-v5/f3/8b/4e00bb8eddd473ae09b0b5dee39fa8416aee7b659a770d18c767e5027992 +2 -0
  19. package/.editorconfig +16 -0
  20. package/README.md +27 -0
  21. package/angular.json +41 -0
  22. package/dist/ngx-sp-infra/README.md +12 -0
  23. package/dist/ngx-sp-infra/esm2022/lib/infra.module.mjs +137 -0
  24. package/dist/ngx-sp-infra/esm2022/lib/message/alert/alert.component.mjs +32 -0
  25. package/dist/ngx-sp-infra/esm2022/lib/message/confirm/confirm.component.mjs +52 -0
  26. package/dist/ngx-sp-infra/esm2022/lib/message/confirm-modal/confirm-modal.component.mjs +72 -0
  27. package/dist/ngx-sp-infra/esm2022/lib/message/message-enum.mjs +23 -0
  28. package/dist/ngx-sp-infra/esm2022/lib/message/message.service.mjs +132 -0
  29. package/dist/ngx-sp-infra/esm2022/lib/message/save/save.component.mjs +46 -0
  30. package/dist/ngx-sp-infra/esm2022/lib/models/DownloadArquivos.mjs +3 -0
  31. package/dist/ngx-sp-infra/esm2022/lib/models/email-model.mjs +35 -0
  32. package/dist/ngx-sp-infra/esm2022/lib/models/ierror.mjs +2 -0
  33. package/dist/ngx-sp-infra/esm2022/lib/models/ipagination.mjs +2 -0
  34. package/dist/ngx-sp-infra/esm2022/lib/models/report-file.mjs +7 -0
  35. package/dist/ngx-sp-infra/esm2022/lib/models/ret-error.mjs +3 -0
  36. package/dist/ngx-sp-infra/esm2022/lib/models/ret-feedback-message.mjs +7 -0
  37. package/dist/ngx-sp-infra/esm2022/lib/models/ret-report-file.mjs +3 -0
  38. package/dist/ngx-sp-infra/esm2022/lib/pipes/cpf-cnpj.pipe.mjs +23 -0
  39. package/dist/ngx-sp-infra/esm2022/lib/pipes/currency.pipe.mjs +16 -0
  40. package/dist/ngx-sp-infra/esm2022/lib/pipes/to-url.pipe.mjs +32 -0
  41. package/dist/ngx-sp-infra/esm2022/lib/utils/check-url-and-method.service.mjs +70 -0
  42. package/dist/ngx-sp-infra/esm2022/lib/utils/form-utils.mjs +38 -0
  43. package/dist/ngx-sp-infra/esm2022/lib/utils/ip-service.service.mjs +22 -0
  44. package/dist/ngx-sp-infra/esm2022/lib/utils/settings.service.mjs +32 -0
  45. package/dist/ngx-sp-infra/esm2022/lib/utils/utils.mjs +335 -0
  46. package/dist/ngx-sp-infra/esm2022/lib/validators/cpf-cnpj.validator.directive.mjs +24 -0
  47. package/dist/ngx-sp-infra/esm2022/lib/validators/cpf-cnpj.validator.mjs +54 -0
  48. package/dist/ngx-sp-infra/esm2022/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.mjs +35 -0
  49. package/dist/ngx-sp-infra/esm2022/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.mjs +28 -0
  50. package/dist/ngx-sp-infra/esm2022/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.mjs +21 -0
  51. package/dist/ngx-sp-infra/esm2022/lib/widgets/click-outside/clickoutside.directive.mjs +167 -0
  52. package/dist/ngx-sp-infra/esm2022/lib/widgets/combobox/combobox.component.mjs +545 -0
  53. package/dist/ngx-sp-infra/esm2022/lib/widgets/combobox/pipes/filter-by.pipe.mjs +44 -0
  54. package/dist/ngx-sp-infra/esm2022/lib/widgets/combobox/pipes/limit-to.pipe.mjs +19 -0
  55. package/dist/ngx-sp-infra/esm2022/lib/widgets/field-control-error/field-control-error.component.mjs +23 -0
  56. package/dist/ngx-sp-infra/esm2022/lib/widgets/field-error-message/field-error-message.component.mjs +33 -0
  57. package/dist/ngx-sp-infra/esm2022/lib/widgets/loading/loading.component.mjs +12 -0
  58. package/dist/ngx-sp-infra/esm2022/lib/widgets/loading-button/loading-button.component.mjs +15 -0
  59. package/dist/ngx-sp-infra/esm2022/lib/widgets/ordering/ordering.component.mjs +56 -0
  60. package/dist/ngx-sp-infra/esm2022/lib/widgets/svg-storage/svg-storage.component.mjs +94 -0
  61. package/dist/ngx-sp-infra/esm2022/lib/widgets/tree/models/ret-tree.mjs +3 -0
  62. package/dist/ngx-sp-infra/esm2022/lib/widgets/tree/models/tree-item.mjs +7 -0
  63. package/dist/ngx-sp-infra/esm2022/lib/widgets/tree/pipes/search-tree.pipe.mjs +17 -0
  64. package/dist/ngx-sp-infra/esm2022/lib/widgets/tree/tree.component.mjs +91 -0
  65. package/dist/ngx-sp-infra/esm2022/ngx-sp-infra.mjs +5 -0
  66. package/dist/ngx-sp-infra/esm2022/public-api.mjs +51 -0
  67. package/dist/ngx-sp-infra/fesm2022/ngx-sp-infra.mjs +2313 -0
  68. package/dist/ngx-sp-infra/fesm2022/ngx-sp-infra.mjs.map +1 -0
  69. package/dist/ngx-sp-infra/index.d.ts +5 -0
  70. package/dist/ngx-sp-infra/lib/infra.module.d.ts +32 -0
  71. package/dist/ngx-sp-infra/lib/message/alert/alert.component.d.ts +14 -0
  72. package/dist/ngx-sp-infra/lib/message/confirm/confirm.component.d.ts +22 -0
  73. package/dist/ngx-sp-infra/lib/message/confirm-modal/confirm-modal.component.d.ts +33 -0
  74. package/dist/ngx-sp-infra/lib/message/message-enum.d.ts +20 -0
  75. package/dist/ngx-sp-infra/lib/message/message.service.d.ts +31 -0
  76. package/dist/ngx-sp-infra/lib/message/save/save.component.d.ts +21 -0
  77. package/dist/ngx-sp-infra/lib/models/DownloadArquivos.d.ts +11 -0
  78. package/dist/ngx-sp-infra/lib/models/email-model.d.ts +30 -0
  79. package/dist/ngx-sp-infra/lib/models/ierror.d.ts +4 -0
  80. package/dist/ngx-sp-infra/lib/models/ipagination.d.ts +5 -0
  81. package/dist/ngx-sp-infra/lib/models/report-file.d.ts +4 -0
  82. package/dist/ngx-sp-infra/lib/models/ret-error.d.ts +5 -0
  83. package/dist/ngx-sp-infra/lib/models/ret-feedback-message.d.ts +7 -0
  84. package/dist/ngx-sp-infra/lib/models/ret-report-file.d.ts +7 -0
  85. package/dist/ngx-sp-infra/lib/pipes/cpf-cnpj.pipe.d.ts +7 -0
  86. package/dist/ngx-sp-infra/lib/pipes/currency.pipe.d.ts +7 -0
  87. package/dist/ngx-sp-infra/lib/pipes/to-url.pipe.d.ts +16 -0
  88. package/dist/ngx-sp-infra/lib/utils/check-url-and-method.service.d.ts +35 -0
  89. package/dist/ngx-sp-infra/lib/utils/form-utils.d.ts +7 -0
  90. package/dist/ngx-sp-infra/lib/utils/ip-service.service.d.ts +9 -0
  91. package/dist/ngx-sp-infra/lib/utils/settings.service.d.ts +9 -0
  92. package/dist/ngx-sp-infra/lib/utils/utils.d.ts +58 -0
  93. package/dist/ngx-sp-infra/lib/validators/cpf-cnpj.validator.d.ts +18 -0
  94. package/dist/ngx-sp-infra/lib/validators/cpf-cnpj.validator.directive.d.ts +7 -0
  95. package/dist/ngx-sp-infra/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.d.ts +29 -0
  96. package/dist/ngx-sp-infra/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.d.ts +14 -0
  97. package/dist/ngx-sp-infra/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.d.ts +10 -0
  98. package/dist/ngx-sp-infra/lib/widgets/click-outside/clickoutside.directive.d.ts +40 -0
  99. package/dist/ngx-sp-infra/lib/widgets/combobox/combobox.component.d.ts +174 -0
  100. package/dist/ngx-sp-infra/lib/widgets/combobox/pipes/filter-by.pipe.d.ts +10 -0
  101. package/dist/ngx-sp-infra/lib/widgets/combobox/pipes/limit-to.pipe.d.ts +7 -0
  102. package/dist/ngx-sp-infra/lib/widgets/field-control-error/field-control-error.component.d.ts +12 -0
  103. package/dist/ngx-sp-infra/lib/widgets/field-error-message/field-error-message.component.d.ts +14 -0
  104. package/dist/ngx-sp-infra/lib/widgets/loading/loading.component.d.ts +6 -0
  105. package/dist/ngx-sp-infra/lib/widgets/loading-button/loading-button.component.d.ts +7 -0
  106. package/dist/ngx-sp-infra/lib/widgets/ordering/ordering.component.d.ts +18 -0
  107. package/dist/ngx-sp-infra/lib/widgets/svg-storage/svg-storage.component.d.ts +16 -0
  108. package/dist/ngx-sp-infra/lib/widgets/tree/models/ret-tree.d.ts +7 -0
  109. package/dist/ngx-sp-infra/lib/widgets/tree/models/tree-item.d.ts +11 -0
  110. package/dist/ngx-sp-infra/lib/widgets/tree/pipes/search-tree.pipe.d.ts +8 -0
  111. package/dist/ngx-sp-infra/lib/widgets/tree/tree.component.d.ts +20 -0
  112. package/dist/ngx-sp-infra/package.json +37 -0
  113. package/dist/ngx-sp-infra/public-api.d.ts +47 -0
  114. package/package.json +43 -0
  115. package/projects/ngx-sp-infra/README.md +12 -0
  116. package/projects/ngx-sp-infra/karma.conf.js +44 -0
  117. package/projects/ngx-sp-infra/ng-package.json +7 -0
  118. package/projects/ngx-sp-infra/package-lock.json +225 -0
  119. package/projects/ngx-sp-infra/package.json +18 -0
  120. package/projects/ngx-sp-infra/src/lib/infra.module.ts +85 -0
  121. package/projects/ngx-sp-infra/src/lib/message/alert/alert.component.html +6 -0
  122. package/projects/ngx-sp-infra/src/lib/message/alert/alert.component.scss +5 -0
  123. package/projects/ngx-sp-infra/src/lib/message/alert/alert.component.ts +39 -0
  124. package/projects/ngx-sp-infra/src/lib/message/confirm/confirm.component.html +15 -0
  125. package/projects/ngx-sp-infra/src/lib/message/confirm/confirm.component.scss +0 -0
  126. package/projects/ngx-sp-infra/src/lib/message/confirm/confirm.component.ts +52 -0
  127. package/projects/ngx-sp-infra/src/lib/message/confirm-modal/confirm-modal.component.html +39 -0
  128. package/projects/ngx-sp-infra/src/lib/message/confirm-modal/confirm-modal.component.scss +0 -0
  129. package/projects/ngx-sp-infra/src/lib/message/confirm-modal/confirm-modal.component.ts +73 -0
  130. package/projects/ngx-sp-infra/src/lib/message/message-enum.ts +21 -0
  131. package/projects/ngx-sp-infra/src/lib/message/message.service.ts +169 -0
  132. package/projects/ngx-sp-infra/src/lib/message/save/save.component.html +35 -0
  133. package/projects/ngx-sp-infra/src/lib/message/save/save.component.scss +110 -0
  134. package/projects/ngx-sp-infra/src/lib/message/save/save.component.ts +44 -0
  135. package/projects/ngx-sp-infra/src/lib/models/DownloadArquivos.ts +12 -0
  136. package/projects/ngx-sp-infra/src/lib/models/email-model.ts +33 -0
  137. package/projects/ngx-sp-infra/src/lib/models/ierror.ts +4 -0
  138. package/projects/ngx-sp-infra/src/lib/models/ipagination.ts +5 -0
  139. package/projects/ngx-sp-infra/src/lib/models/report-file.ts +4 -0
  140. package/projects/ngx-sp-infra/src/lib/models/ret-error.ts +6 -0
  141. package/projects/ngx-sp-infra/src/lib/models/ret-feedback-message.ts +8 -0
  142. package/projects/ngx-sp-infra/src/lib/models/ret-report-file.ts +8 -0
  143. package/projects/ngx-sp-infra/src/lib/pipes/cpf-cnpj.pipe.ts +21 -0
  144. package/projects/ngx-sp-infra/src/lib/pipes/currency.pipe.ts +13 -0
  145. package/projects/ngx-sp-infra/src/lib/pipes/to-url.pipe.ts +33 -0
  146. package/projects/ngx-sp-infra/src/lib/utils/check-url-and-method.service.ts +84 -0
  147. package/projects/ngx-sp-infra/src/lib/utils/form-utils.ts +50 -0
  148. package/projects/ngx-sp-infra/src/lib/utils/ip-service.service.ts +22 -0
  149. package/projects/ngx-sp-infra/src/lib/utils/settings.service.ts +32 -0
  150. package/projects/ngx-sp-infra/src/lib/utils/utils.ts +427 -0
  151. package/projects/ngx-sp-infra/src/lib/validators/cpf-cnpj.validator.directive.ts +14 -0
  152. package/projects/ngx-sp-infra/src/lib/validators/cpf-cnpj.validator.ts +74 -0
  153. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.css +0 -0
  154. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.html +3 -0
  155. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/infra-breadcrumb/infra-breadcrumb.component.ts +34 -0
  156. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.css +0 -0
  157. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.html +1 -0
  158. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/infra-breadcrumb-item/infra-breadcrumb-item.component.ts +29 -0
  159. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.css +0 -0
  160. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.html +5 -0
  161. package/projects/ngx-sp-infra/src/lib/widgets/breadcrumb/portalrh-breadcrumb/breadcrumb.component.ts +18 -0
  162. package/projects/ngx-sp-infra/src/lib/widgets/click-outside/clickoutside.directive.ts +183 -0
  163. package/projects/ngx-sp-infra/src/lib/widgets/combobox/combobox.component.html +40 -0
  164. package/projects/ngx-sp-infra/src/lib/widgets/combobox/combobox.component.scss +185 -0
  165. package/projects/ngx-sp-infra/src/lib/widgets/combobox/combobox.component.ts +637 -0
  166. package/projects/ngx-sp-infra/src/lib/widgets/combobox/combobox.service.ts +15 -0
  167. package/projects/ngx-sp-infra/src/lib/widgets/combobox/pipes/filter-by.pipe.ts +38 -0
  168. package/projects/ngx-sp-infra/src/lib/widgets/combobox/pipes/limit-to.pipe.ts +13 -0
  169. package/projects/ngx-sp-infra/src/lib/widgets/field-control-error/field-control-error.component.css +0 -0
  170. package/projects/ngx-sp-infra/src/lib/widgets/field-control-error/field-control-error.component.html +4 -0
  171. package/projects/ngx-sp-infra/src/lib/widgets/field-control-error/field-control-error.component.ts +18 -0
  172. package/projects/ngx-sp-infra/src/lib/widgets/field-error-message/field-error-message.component.css +0 -0
  173. package/projects/ngx-sp-infra/src/lib/widgets/field-error-message/field-error-message.component.html +4 -0
  174. package/projects/ngx-sp-infra/src/lib/widgets/field-error-message/field-error-message.component.ts +35 -0
  175. package/projects/ngx-sp-infra/src/lib/widgets/loading/loading.component.css +7 -0
  176. package/projects/ngx-sp-infra/src/lib/widgets/loading/loading.component.html +4 -0
  177. package/projects/ngx-sp-infra/src/lib/widgets/loading/loading.component.ts +12 -0
  178. package/projects/ngx-sp-infra/src/lib/widgets/loading-button/loading-button.component.css +3 -0
  179. package/projects/ngx-sp-infra/src/lib/widgets/loading-button/loading-button.component.html +2 -0
  180. package/projects/ngx-sp-infra/src/lib/widgets/loading-button/loading-button.component.ts +13 -0
  181. package/projects/ngx-sp-infra/src/lib/widgets/ordering/ordering.component.html +23 -0
  182. package/projects/ngx-sp-infra/src/lib/widgets/ordering/ordering.component.scss +0 -0
  183. package/projects/ngx-sp-infra/src/lib/widgets/ordering/ordering.component.ts +50 -0
  184. package/projects/ngx-sp-infra/src/lib/widgets/svg-storage/svg-storage.component.html +728 -0
  185. package/projects/ngx-sp-infra/src/lib/widgets/svg-storage/svg-storage.component.scss +0 -0
  186. package/projects/ngx-sp-infra/src/lib/widgets/svg-storage/svg-storage.component.ts +105 -0
  187. package/projects/ngx-sp-infra/src/lib/widgets/tree/README.md +33 -0
  188. package/projects/ngx-sp-infra/src/lib/widgets/tree/models/ret-tree.ts +8 -0
  189. package/projects/ngx-sp-infra/src/lib/widgets/tree/models/tree-item.ts +11 -0
  190. package/projects/ngx-sp-infra/src/lib/widgets/tree/pipes/search-tree.pipe.ts +15 -0
  191. package/projects/ngx-sp-infra/src/lib/widgets/tree/tree.component.html +51 -0
  192. package/projects/ngx-sp-infra/src/lib/widgets/tree/tree.component.scss +57 -0
  193. package/projects/ngx-sp-infra/src/lib/widgets/tree/tree.component.ts +88 -0
  194. package/projects/ngx-sp-infra/src/public-api.ts +58 -0
  195. package/projects/ngx-sp-infra/src/test.ts +15 -0
  196. package/projects/ngx-sp-infra/tsconfig.lib.json +15 -0
  197. package/projects/ngx-sp-infra/tsconfig.lib.prod.json +10 -0
  198. package/projects/ngx-sp-infra/tsconfig.spec.json +17 -0
  199. package/sp-ng-infra-0.0.0.tgz +0 -0
  200. package/tsconfig.json +42 -0
@@ -0,0 +1,54 @@
1
+ //Origem https://pedrohtbranco.com.br/validacao-cpf-e-cnpj-com-angular-12/
2
+ export class CpfCnpjValidator {
3
+ static { this.cpfLength = 11; }
4
+ static { this.cnpjLength = 14; }
5
+ /**
6
+ * Calcula o dígito verificador do CPF ou CNPJ.
7
+ */
8
+ static buildDigit(arr) {
9
+ const isCpf = arr.length < CpfCnpjValidator.cpfLength;
10
+ const digit = arr
11
+ .map((val, idx) => val * ((!isCpf ? idx % 8 : idx) + 2))
12
+ .reduce((total, current) => total + current) % CpfCnpjValidator.cpfLength;
13
+ if (digit < 2 && isCpf) {
14
+ return 0;
15
+ }
16
+ else if (digit < 2) {
17
+ return 0;
18
+ }
19
+ return CpfCnpjValidator.cpfLength - digit;
20
+ }
21
+ /**
22
+ * Valida um CPF ou CNPJ de acordo com seu dígito verificador.
23
+ */
24
+ static validate(c) {
25
+ const cpfCnpj = c.value.replace(/\D/g, '');
26
+ if (cpfCnpj === '') {
27
+ return null;
28
+ }
29
+ // Verifica o tamanho da string.
30
+ if ([CpfCnpjValidator.cpfLength, CpfCnpjValidator.cnpjLength].indexOf(cpfCnpj.length) < 0) {
31
+ return { cpcnpjInvalid: true };
32
+ }
33
+ // Verifica se todos os dígitos são iguais, exceto para CPF com dígitos zerados.
34
+ if (/^([0-9])\1*$/.test(cpfCnpj) && cpfCnpj !== '00000000000') {
35
+ return { cpcnpjInvalid: true };
36
+ }
37
+ // A seguir é realizado o cálculo verificador.
38
+ const cpfCnpjArr = cpfCnpj.split('').reverse().slice(2);
39
+ cpfCnpjArr.unshift(CpfCnpjValidator.buildDigit(cpfCnpjArr));
40
+ cpfCnpjArr.unshift(CpfCnpjValidator.buildDigit(cpfCnpjArr));
41
+ if (cpfCnpj !== cpfCnpjArr.reverse().join('')) {
42
+ // Dígito verificador não é válido, resultando em falha.
43
+ return { cpcnpjInvalidDigit: true };
44
+ }
45
+ return null;
46
+ }
47
+ /**
48
+ * Implementa a interface de um validator.
49
+ */
50
+ validate(c) {
51
+ return CpfCnpjValidator.validate(c);
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWNucGoudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvdmFsaWRhdG9ycy9jcGYtY25wai52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsMkVBQTJFO0FBRTNFLE1BQU0sT0FBTyxnQkFBZ0I7YUFFcEIsY0FBUyxHQUFHLEVBQUUsQ0FBQzthQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7SUFFdkI7O01BRUU7SUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQWE7UUFFN0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7UUFDdEQsTUFBTSxLQUFLLEdBQUcsR0FBRzthQUNkLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3ZELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7UUFFNUUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssRUFBRTtZQUN0QixPQUFPLENBQUMsQ0FBQztTQUNWO2FBQ0ksSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUNsQjtZQUNFLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUdEOztNQUVFO0lBQ0YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFrQjtRQUVoQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFM0MsSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2hDO1FBRUQsZ0ZBQWdGO1FBQ2hGLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLEtBQUssYUFBYSxFQUFFO1lBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDaEM7UUFFRCw4Q0FBOEM7UUFDOUMsTUFBTSxVQUFVLEdBQWEsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM1RCxVQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRTVELElBQUksT0FBTyxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDN0Msd0RBQXdEO1lBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNyQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztNQUVFO0lBQ0YsUUFBUSxDQUFDLENBQWtCO1FBQ3pCLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vT3JpZ2VtICBodHRwczovL3BlZHJvaHRicmFuY28uY29tLmJyL3ZhbGlkYWNhby1jcGYtZS1jbnBqLWNvbS1hbmd1bGFyLTEyL1xyXG5cclxuZXhwb3J0IGNsYXNzIENwZkNucGpWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xyXG5cclxuICBzdGF0aWMgY3BmTGVuZ3RoID0gMTE7XHJcbiAgc3RhdGljIGNucGpMZW5ndGggPSAxNDtcclxuXHJcbiAgLyoqXHJcbiAgKiBDYWxjdWxhIG8gZMOtZ2l0byB2ZXJpZmljYWRvciBkbyBDUEYgb3UgQ05QSi5cclxuICAqL1xyXG4gIHN0YXRpYyBidWlsZERpZ2l0KGFycjogbnVtYmVyW10pOiBudW1iZXIge1xyXG5cclxuICAgIGNvbnN0IGlzQ3BmID0gYXJyLmxlbmd0aCA8IENwZkNucGpWYWxpZGF0b3IuY3BmTGVuZ3RoO1xyXG4gICAgY29uc3QgZGlnaXQgPSBhcnJcclxuICAgICAgLm1hcCgodmFsLCBpZHgpID0+IHZhbCAqICgoIWlzQ3BmID8gaWR4ICUgOCA6IGlkeCkgKyAyKSlcclxuICAgICAgLnJlZHVjZSgodG90YWwsIGN1cnJlbnQpID0+IHRvdGFsICsgY3VycmVudCkgJSBDcGZDbnBqVmFsaWRhdG9yLmNwZkxlbmd0aDtcclxuXHJcbiAgICBpZiAoZGlnaXQgPCAyICYmIGlzQ3BmKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfSBcclxuICAgIGVsc2UgaWYgKGRpZ2l0IDwgMikgXHJcbiAgICB7IFxyXG4gICAgICByZXR1cm4gMDsgXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIENwZkNucGpWYWxpZGF0b3IuY3BmTGVuZ3RoIC0gZGlnaXQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiBWYWxpZGEgdW0gQ1BGIG91IENOUEogZGUgYWNvcmRvIGNvbSBzZXUgZMOtZ2l0byB2ZXJpZmljYWRvci5cclxuICAqL1xyXG4gIHN0YXRpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcblxyXG4gICAgY29uc3QgY3BmQ25waiA9IGMudmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTtcclxuXHJcbiAgICBpZiAoY3BmQ25waiA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmVyaWZpY2EgbyB0YW1hbmhvIGRhIHN0cmluZy5cclxuICAgIGlmIChbQ3BmQ25walZhbGlkYXRvci5jcGZMZW5ndGgsIENwZkNucGpWYWxpZGF0b3IuY25wakxlbmd0aF0uaW5kZXhPZihjcGZDbnBqLmxlbmd0aCkgPCAwKSB7XHJcbiAgICAgIHJldHVybiB7IGNwY25wakludmFsaWQ6IHRydWUgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWZXJpZmljYSBzZSB0b2RvcyBvcyBkw61naXRvcyBzw6NvIGlndWFpcywgZXhjZXRvIHBhcmEgQ1BGIGNvbSBkw61naXRvcyB6ZXJhZG9zLlxyXG4gICAgaWYgKC9eKFswLTldKVxcMSokLy50ZXN0KGNwZkNucGopICYmIGNwZkNucGogIT09ICcwMDAwMDAwMDAwMCcpIHtcclxuICAgICAgcmV0dXJuIHsgY3BjbnBqSW52YWxpZDogdHJ1ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEEgc2VndWlyIMOpIHJlYWxpemFkbyBvIGPDoWxjdWxvIHZlcmlmaWNhZG9yLlxyXG4gICAgY29uc3QgY3BmQ25wakFycjogbnVtYmVyW10gPSBjcGZDbnBqLnNwbGl0KCcnKS5yZXZlcnNlKCkuc2xpY2UoMik7XHJcblxyXG4gICAgY3BmQ25wakFyci51bnNoaWZ0KENwZkNucGpWYWxpZGF0b3IuYnVpbGREaWdpdChjcGZDbnBqQXJyKSk7XHJcbiAgICBjcGZDbnBqQXJyLnVuc2hpZnQoQ3BmQ25walZhbGlkYXRvci5idWlsZERpZ2l0KGNwZkNucGpBcnIpKTtcclxuXHJcbiAgICBpZiAoY3BmQ25waiAhPT0gY3BmQ25wakFyci5yZXZlcnNlKCkuam9pbignJykpIHtcclxuICAgICAgLy8gRMOtZ2l0byB2ZXJpZmljYWRvciBuw6NvIMOpIHbDoWxpZG8sIHJlc3VsdGFuZG8gZW0gZmFsaGEuXHJcbiAgICAgIHJldHVybiB7IGNwY25wakludmFsaWREaWdpdDogdHJ1ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBJbXBsZW1lbnRhIGEgaW50ZXJmYWNlIGRlIHVtIHZhbGlkYXRvci5cclxuICAqL1xyXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIHJldHVybiBDcGZDbnBqVmFsaWRhdG9yLnZhbGlkYXRlKGMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Breadcrumbs padrão Sispro.
5
+ *
6
+ * ## Utilização
7
+ *
8
+ * Colocar o componente infra-breadcrumb com elementos li que possuem o seletor infra-breadcrumb-item.
9
+ * Como demonstrado da seguinte forma:
10
+ *
11
+ * <infra-breadcrumb>
12
+ * <li infra-breadcrumb-item>
13
+ * <a routerLinkActive="/home">Home</a>
14
+ * </li>
15
+ * <li infra-breadcrumb-item>
16
+ * Consultar
17
+ * </li>
18
+ * </infra-breadcrumb>
19
+ *
20
+ * ## Peculiaridades
21
+ *
22
+ * Não é necessário colocar o item como ativo pois ele verifica se algum dos filhos do elemento li é
23
+ * uma âncora (<a></a>)
24
+ *
25
+ */
26
+ export class InfraBreadcrumbComponent {
27
+ constructor() { }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: InfraBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: InfraBreadcrumbComponent, selector: "infra-breadcrumb", ngImport: i0, template: "<ol class=\"breadcrumb position\">\n <ng-content></ng-content>\n</ol>", styles: [""] }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: InfraBreadcrumbComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'infra-breadcrumb', template: "<ol class=\"breadcrumb position\">\n <ng-content></ng-content>\n</ol>" }]
34
+ }], ctorParameters: function () { return []; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL2JyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFDMUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFNSCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLGdCQUFnQixDQUFDOzhHQUZOLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHdEQzdCckMsMEVBRUs7OzJGRDJCUSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vKipcbiAqIEJyZWFkY3J1bWJzIHBhZHLDo28gU2lzcHJvLlxuICogXG4gKiAjIyBVdGlsaXphw6fDo29cbiAqIFxuICogQ29sb2NhciBvIGNvbXBvbmVudGUgaW5mcmEtYnJlYWRjcnVtYiBjb20gZWxlbWVudG9zIGxpIHF1ZSBwb3NzdWVtIG8gc2VsZXRvciBpbmZyYS1icmVhZGNydW1iLWl0ZW0uXG4gKiBDb21vIGRlbW9uc3RyYWRvIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICogXG4gKiAgPGluZnJhLWJyZWFkY3J1bWI+XG4gKiAgICA8bGkgaW5mcmEtYnJlYWRjcnVtYi1pdGVtPlxuICogICAgICA8YSByb3V0ZXJMaW5rQWN0aXZlPVwiL2hvbWVcIj5Ib21lPC9hPlxuICogICAgPC9saT5cbiAqICAgIDxsaSBpbmZyYS1icmVhZGNydW1iLWl0ZW0+XG4gKiAgICAgIENvbnN1bHRhclxuICogICAgPC9saT5cbiAqICA8L2luZnJhLWJyZWFkY3J1bWI+XG4gKiBcbiAqICMjIFBlY3VsaWFyaWRhZGVzXG4gKiBcbiAqIE7Do28gw6kgbmVjZXNzw6FyaW8gY29sb2NhciBvIGl0ZW0gY29tbyBhdGl2byBwb2lzIGVsZSB2ZXJpZmljYSBzZSBhbGd1bSBkb3MgZmlsaG9zIGRvIGVsZW1lbnRvIGxpIMOpXG4gKiB1bWEgw6JuY29yYSAoPGE+PC9hPilcbiAqIFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbmZyYS1icmVhZGNydW1iJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZnJhLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmZyYS1icmVhZGNydW1iLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbmZyYUJyZWFkY3J1bWJDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbn1cbiIsIjxvbCBjbGFzcz1cImJyZWFkY3J1bWIgcG9zaXRpb25cIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L29sPiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Item da lista padrão da Sispro.
5
+ *
6
+ * Deve ser utilizado em conjunto com o InfraBreadCrumb
7
+ */
8
+ export class InfraBreadcrumbItemComponent {
9
+ constructor(elem) {
10
+ this.elem = elem;
11
+ }
12
+ ngOnInit() {
13
+ this.elem.nativeElement.classList.add("breadcrumb-item");
14
+ if (this.elem.nativeElement.children.length > 0) {
15
+ let isAnchor = this.elem.nativeElement.children[0] instanceof HTMLAnchorElement;
16
+ if (isAnchor) {
17
+ this.elem.nativeElement.classList.add("active");
18
+ }
19
+ }
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: InfraBreadcrumbItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: InfraBreadcrumbItemComponent, selector: "li[infra-breadcrumb-item]", ngImport: i0, template: "<ng-content></ng-content>", styles: [""] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: InfraBreadcrumbItemComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'li[infra-breadcrumb-item]', template: "<ng-content></ng-content>" }]
27
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iLWl0ZW0vaW5mcmEtYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iLWl0ZW0vaW5mcmEtYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQU0sZUFBZSxDQUFDOztBQUU5RDs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxZQUFvQixJQUFxQztRQUFyQyxTQUFJLEdBQUosSUFBSSxDQUFpQztJQUFJLENBQUM7SUFFOUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUV4RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxpQkFBaUIsQ0FBQztZQUVoRixJQUFJLFFBQVEsRUFBRTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Y7SUFDSCxDQUFDOzhHQWRVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLGlFQ2J6QywyQkFBeUI7OzJGRGFaLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFFRSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEl0ZW0gZGEgbGlzdGEgcGFkcsOjbyBkYSBTaXNwcm8uXG4gKiBcbiAqIERldmUgc2VyIHV0aWxpemFkbyBlbSBjb25qdW50byBjb20gbyBJbmZyYUJyZWFkQ3J1bWJcbiAqL1xuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlbaW5mcmEtYnJlYWRjcnVtYi1pdGVtXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZyYS1icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmZyYS1icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEluZnJhQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbTogRWxlbWVudFJlZjxIVE1MRGF0YUxpc3RFbGVtZW50PikgeyB9XG4gIFxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiYnJlYWRjcnVtYi1pdGVtXCIpXG4gICAgXG4gICAgaWYgKHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBpc0FuY2hvciA9IHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdIGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQ7XG4gICAgICBcbiAgICAgIGlmIChpc0FuY2hvcikge1xuICAgICAgICB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BreadcrumbComponent {
4
+ constructor() {
5
+ this.menu = '';
6
+ this.opcao = '';
7
+ }
8
+ ngOnInit() {
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: BreadcrumbComponent, selector: "app-breadcrumb", inputs: { menu: "menu", opcao: "opcao" }, ngImport: i0, template: "<!-- Breadcrumb -->\n<ol class=\"breadcrumb\">\n <li class=\"breadcrumb-item active\">{{ menu }}</li>\n <li class=\"breadcrumb-item\">{{ opcao }}</li>\n</ol>\n", styles: [""] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: BreadcrumbComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'app-breadcrumb', template: "<!-- Breadcrumb -->\n<ol class=\"breadcrumb\">\n <li class=\"breadcrumb-item active\">{{ menu }}</li>\n <li class=\"breadcrumb-item\">{{ opcao }}</li>\n</ol>\n" }]
16
+ }], ctorParameters: function () { return []; }, propDecorators: { menu: [{
17
+ type: Input
18
+ }], opcao: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL2JyZWFkY3J1bWIvcG9ydGFscmgtYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvYnJlYWRjcnVtYi9wb3J0YWxyaC1icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT3pELE1BQU0sT0FBTyxtQkFBbUI7SUFLOUI7UUFIUyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBVyxFQUFFLENBQUM7SUFFWixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzhHQVJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGdHQ1BoQyx1S0FLQTs7MkZERWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjswRUFNakIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYnJlYWRjcnVtYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIFxuICBASW5wdXQoKSBtZW51OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgb3BjYW86IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxufVxuIiwiPCEtLSBCcmVhZGNydW1iIC0tPlxuPG9sIGNsYXNzPVwiYnJlYWRjcnVtYlwiPlxuICAgIDxsaSBjbGFzcz1cImJyZWFkY3J1bWItaXRlbSBhY3RpdmVcIj57eyBtZW51IH19PC9saT5cbiAgICA8bGkgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW1cIj57eyBvcGNhbyB9fTwvbGk+XG48L29sPlxuIl19
@@ -0,0 +1,167 @@
1
+ import { Directive, EventEmitter, Inject, Input, Output, } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class ClickOutsideDirective {
5
+ constructor(_el, _ngZone, document) {
6
+ this._el = _el;
7
+ this._ngZone = _ngZone;
8
+ this.document = document;
9
+ this.clickOutsideEnabled = true;
10
+ this.attachOutsideOnClick = false;
11
+ this.delayClickOutsideInit = false;
12
+ this.emitOnBlur = false;
13
+ this.exclude = '';
14
+ this.excludeBeforeClick = false;
15
+ this.clickOutsideEvents = '';
16
+ this.clickOutside = new EventEmitter();
17
+ this._nodesExcluded = [];
18
+ this._events = ['click'];
19
+ this._initOnClickBody = this._initOnClickBody.bind(this);
20
+ this._onClickBody = this._onClickBody.bind(this);
21
+ this._onWindowBlur = this._onWindowBlur.bind(this);
22
+ }
23
+ ngOnInit() {
24
+ this._init();
25
+ }
26
+ ngOnDestroy() {
27
+ this._removeClickOutsideListener();
28
+ this._removeAttachOutsideOnClickListener();
29
+ this._removeWindowBlurListener();
30
+ }
31
+ ngOnChanges(changes) {
32
+ if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {
33
+ this._init();
34
+ }
35
+ }
36
+ _init() {
37
+ if (this.clickOutsideEvents !== '') {
38
+ this._events = this.clickOutsideEvents.split(',').map(e => e.trim());
39
+ }
40
+ this._excludeCheck();
41
+ if (this.attachOutsideOnClick) {
42
+ this._initAttachOutsideOnClickListener();
43
+ }
44
+ else {
45
+ this._initOnClickBody();
46
+ }
47
+ if (this.emitOnBlur) {
48
+ this._initWindowBlurListener();
49
+ }
50
+ }
51
+ _initOnClickBody() {
52
+ if (this.delayClickOutsideInit) {
53
+ setTimeout(this._initClickOutsideListener.bind(this));
54
+ }
55
+ else {
56
+ this._initClickOutsideListener();
57
+ }
58
+ }
59
+ _excludeCheck() {
60
+ if (this.exclude) {
61
+ try {
62
+ const nodes = Array.from(this.document.querySelectorAll(this.exclude));
63
+ if (nodes) {
64
+ this._nodesExcluded = nodes;
65
+ }
66
+ }
67
+ catch (err) {
68
+ console.error('[ng-click-outside] Check your exclude selector syntax.', err);
69
+ }
70
+ }
71
+ }
72
+ _onClickBody(ev) {
73
+ if (!this.clickOutsideEnabled) {
74
+ return;
75
+ }
76
+ if (this.excludeBeforeClick) {
77
+ this._excludeCheck();
78
+ }
79
+ if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {
80
+ this._emit(ev);
81
+ if (this.attachOutsideOnClick) {
82
+ this._removeClickOutsideListener();
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * Resolves problem with outside click on iframe
88
+ * @see https://github.com/arkon/ng-click-outside/issues/32
89
+ */
90
+ _onWindowBlur(ev) {
91
+ setTimeout(() => {
92
+ if (!this.document.hidden) {
93
+ this._emit(ev);
94
+ }
95
+ });
96
+ }
97
+ _emit(ev) {
98
+ if (!this.clickOutsideEnabled) {
99
+ return;
100
+ }
101
+ this._ngZone.run(() => this.clickOutside.emit(ev));
102
+ }
103
+ _shouldExclude(target) {
104
+ for (let excludedNode of this._nodesExcluded) {
105
+ if (excludedNode.contains(target)) {
106
+ return true;
107
+ }
108
+ }
109
+ return false;
110
+ }
111
+ _initClickOutsideListener() {
112
+ this._ngZone.runOutsideAngular(() => {
113
+ this._events.forEach(e => this.document.addEventListener(e, this._onClickBody));
114
+ });
115
+ }
116
+ _removeClickOutsideListener() {
117
+ this._ngZone.runOutsideAngular(() => {
118
+ this._events.forEach(e => this.document.removeEventListener(e, this._onClickBody));
119
+ });
120
+ }
121
+ _initAttachOutsideOnClickListener() {
122
+ this._ngZone.runOutsideAngular(() => {
123
+ this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));
124
+ });
125
+ }
126
+ _removeAttachOutsideOnClickListener() {
127
+ this._ngZone.runOutsideAngular(() => {
128
+ this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));
129
+ });
130
+ }
131
+ _initWindowBlurListener() {
132
+ this._ngZone.runOutsideAngular(() => {
133
+ window.addEventListener('blur', this._onWindowBlur);
134
+ });
135
+ }
136
+ _removeWindowBlurListener() {
137
+ this._ngZone.runOutsideAngular(() => {
138
+ window.removeEventListener('blur', this._onWindowBlur);
139
+ });
140
+ }
141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
142
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.2", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: { clickOutsideEnabled: "clickOutsideEnabled", attachOutsideOnClick: "attachOutsideOnClick", delayClickOutsideInit: "delayClickOutsideInit", emitOnBlur: "emitOnBlur", exclude: "exclude", excludeBeforeClick: "excludeBeforeClick", clickOutsideEvents: "clickOutsideEvents" }, outputs: { clickOutside: "clickOutside" }, usesOnChanges: true, ngImport: i0 }); }
143
+ }
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ClickOutsideDirective, decorators: [{
145
+ type: Directive,
146
+ args: [{ selector: '[clickOutside]' }]
147
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: Document, decorators: [{
148
+ type: Inject,
149
+ args: [DOCUMENT]
150
+ }] }]; }, propDecorators: { clickOutsideEnabled: [{
151
+ type: Input
152
+ }], attachOutsideOnClick: [{
153
+ type: Input
154
+ }], delayClickOutsideInit: [{
155
+ type: Input
156
+ }], emitOnBlur: [{
157
+ type: Input
158
+ }], exclude: [{
159
+ type: Input
160
+ }], excludeBeforeClick: [{
161
+ type: Input
162
+ }], clickOutsideEvents: [{
163
+ type: Input
164
+ }], clickOutside: [{
165
+ type: Output
166
+ }] } });
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2tvdXRzaWRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvY2xpY2stb3V0c2lkZS9jbGlja291dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBS0wsTUFBTSxHQUVGLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLHFCQUFxQjtJQWtCckMsWUFDVSxHQUFlLEVBQ2YsT0FBZSxFQUNHLFFBQWtCO1FBRnBDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ0csYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5CckMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV2QixpQkFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWhFLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxZQUFPLEdBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFNekMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztR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O3NCQUEzQixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdEluamVjdCxcblx0SW5wdXQsXG5cdE5nWm9uZSxcblx0T25DaGFuZ2VzLFxuXHRPbkRlc3Ryb3ksXG5cdE9uSW5pdCxcblx0T3V0cHV0LFxuXHRTaW1wbGVDaGFuZ2VzLFxuICAgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gICAgaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbiAgICBcbiAgICBARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1tjbGlja091dHNpZGVdJ30pXG4gICAgZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIFxuXHRASW5wdXQoKSBjbGlja091dHNpZGVFbmFibGVkID0gdHJ1ZTtcbiAgICBcblx0QElucHV0KCkgYXR0YWNoT3V0c2lkZU9uQ2xpY2sgPSBmYWxzZTtcblx0QElucHV0KCkgZGVsYXlDbGlja091dHNpZGVJbml0ID0gZmFsc2U7XG5cdEBJbnB1dCgpIGVtaXRPbkJsdXIgPSBmYWxzZTtcbiAgICBcblx0QElucHV0KCkgZXhjbHVkZSA9ICcnO1xuXHRASW5wdXQoKSBleGNsdWRlQmVmb3JlQ2xpY2sgPSBmYWxzZTtcbiAgICBcblx0QElucHV0KCkgY2xpY2tPdXRzaWRlRXZlbnRzID0gJyc7XG4gICAgXG5cdEBPdXRwdXQoKSBjbGlja091dHNpZGU6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIFxuXHRwcml2YXRlIF9ub2Rlc0V4Y2x1ZGVkOiBBcnJheTxIVE1MRWxlbWVudD4gPSBbXTtcblx0cHJpdmF0ZSBfZXZlbnRzOiBBcnJheTxzdHJpbmc+ID0gWydjbGljayddO1xuICAgIFxuXHRjb25zdHJ1Y3Rvcihcblx0ICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcblx0ICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcblx0ICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCkge1xuXHQgIHRoaXMuX2luaXRPbkNsaWNrQm9keSA9IHRoaXMuX2luaXRPbkNsaWNrQm9keS5iaW5kKHRoaXMpO1xuXHQgIHRoaXMuX29uQ2xpY2tCb2R5ID0gdGhpcy5fb25DbGlja0JvZHkuYmluZCh0aGlzKTtcblx0ICB0aGlzLl9vbldpbmRvd0JsdXIgPSB0aGlzLl9vbldpbmRvd0JsdXIuYmluZCh0aGlzKTtcblx0fVxuICAgIFxuXHRuZ09uSW5pdCgpIHtcblx0ICB0aGlzLl9pbml0KCk7XG5cdH1cbiAgICBcblx0bmdPbkRlc3Ryb3koKSB7XG5cdCAgdGhpcy5fcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0ICB0aGlzLl9yZW1vdmVBdHRhY2hPdXRzaWRlT25DbGlja0xpc3RlbmVyKCk7XG5cdCAgdGhpcy5fcmVtb3ZlV2luZG93Qmx1ckxpc3RlbmVyKCk7XG5cdH1cbiAgICBcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHQgIGlmIChjaGFuZ2VzWydhdHRhY2hPdXRzaWRlT25DbGljayddIHx8IGNoYW5nZXNbJ2V4Y2x1ZGUnXSB8fCBjaGFuZ2VzWydlbWl0T25CbHVyJ10pIHtcblx0ICAgIHRoaXMuX2luaXQoKTtcblx0ICB9XG5cdH1cbiAgICBcblx0cHJpdmF0ZSBfaW5pdCgpIHtcblx0ICBpZiAodGhpcy5jbGlja091dHNpZGVFdmVudHMgIT09ICcnKSB7XG5cdCAgICB0aGlzLl9ldmVudHMgPSB0aGlzLmNsaWNrT3V0c2lkZUV2ZW50cy5zcGxpdCgnLCcpLm1hcChlID0+IGUudHJpbSgpKTtcblx0ICB9XG4gICAgXG5cdCAgdGhpcy5fZXhjbHVkZUNoZWNrKCk7XG4gICAgXG5cdCAgaWYgKHRoaXMuYXR0YWNoT3V0c2lkZU9uQ2xpY2spIHtcblx0ICAgIHRoaXMuX2luaXRBdHRhY2hPdXRzaWRlT25DbGlja0xpc3RlbmVyKCk7XG5cdCAgfSBlbHNlIHtcblx0ICAgIHRoaXMuX2luaXRPbkNsaWNrQm9keSgpO1xuXHQgIH1cbiAgICBcblx0ICBpZiAodGhpcy5lbWl0T25CbHVyKSB7XG5cdCAgICB0aGlzLl9pbml0V2luZG93Qmx1ckxpc3RlbmVyKCk7XG5cdCAgfVxuXHR9XG4gICAgXG5cdHByaXZhdGUgX2luaXRPbkNsaWNrQm9keSgpIHtcblx0ICBpZiAodGhpcy5kZWxheUNsaWNrT3V0c2lkZUluaXQpIHtcblx0ICAgIHNldFRpbWVvdXQodGhpcy5faW5pdENsaWNrT3V0c2lkZUxpc3RlbmVyLmJpbmQodGhpcykpO1xuXHQgIH0gZWxzZSB7XG5cdCAgICB0aGlzLl9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0ICB9XG5cdH1cbiAgICBcblx0cHJpdmF0ZSBfZXhjbHVkZUNoZWNrKCkge1xuXHQgIGlmICh0aGlzLmV4Y2x1ZGUpIHtcblx0ICAgIHRyeSB7XG5cdFx0Y29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLmV4Y2x1ZGUpKSBhcyBBcnJheTxIVE1MRWxlbWVudD47XG5cdFx0aWYgKG5vZGVzKSB7XG5cdFx0ICB0aGlzLl9ub2Rlc0V4Y2x1ZGVkID0gbm9kZXM7XG5cdFx0fVxuXHQgICAgfSBjYXRjaCAoZXJyKSB7XG5cdFx0Y29uc29sZS5lcnJvcignW25nLWNsaWNrLW91dHNpZGVdIENoZWNrIHlvdXIgZXhjbHVkZSBzZWxlY3RvciBzeW50YXguJywgZXJyKTtcblx0ICAgIH1cblx0ICB9XG5cdH1cbiAgICBcblx0cHJpdmF0ZSBfb25DbGlja0JvZHkoZXY6IEV2ZW50KSB7XG5cdCAgaWYgKCF0aGlzLmNsaWNrT3V0c2lkZUVuYWJsZWQpIHtcblx0ICAgIHJldHVybjtcblx0ICB9XG4gICAgXG5cdCAgaWYgKHRoaXMuZXhjbHVkZUJlZm9yZUNsaWNrKSB7XG5cdCAgICB0aGlzLl9leGNsdWRlQ2hlY2soKTtcblx0ICB9XG4gICAgXG5cdCAgaWYgKCF0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2LnRhcmdldCkgJiYgIXRoaXMuX3Nob3VsZEV4Y2x1ZGUoZXYudGFyZ2V0KSkge1xuXHQgICAgdGhpcy5fZW1pdChldik7XG4gICAgXG5cdCAgICBpZiAodGhpcy5hdHRhY2hPdXRzaWRlT25DbGljaykge1xuXHRcdHRoaXMuX3JlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cdCAgICB9XG5cdCAgfVxuXHR9XG4gICAgXG5cdC8qKlxuXHQgKiBSZXNvbHZlcyBwcm9ibGVtIHdpdGggb3V0c2lkZSBjbGljayBvbiBpZnJhbWVcblx0ICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXJrb24vbmctY2xpY2stb3V0c2lkZS9pc3N1ZXMvMzJcblx0ICovXG5cdHByaXZhdGUgX29uV2luZG93Qmx1cihldjogRXZlbnQpIHtcblx0ICBzZXRUaW1lb3V0KCgpID0+IHtcblx0ICAgIGlmICghdGhpcy5kb2N1bWVudC5oaWRkZW4pIHtcblx0XHR0aGlzLl9lbWl0KGV2KTtcblx0ICAgIH1cblx0ICB9KTtcblx0fVxuICAgIFxuXHRwcml2YXRlIF9lbWl0KGV2OiBFdmVudCkge1xuXHQgIGlmICghdGhpcy5jbGlja091dHNpZGVFbmFibGVkKSB7XG5cdCAgICByZXR1cm47XG5cdCAgfVxuICAgIFxuXHQgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5jbGlja091dHNpZGUuZW1pdChldikpO1xuXHR9XG4gICAgXG5cdHByaXZhdGUgX3Nob3VsZEV4Y2x1ZGUodGFyZ2V0OiBhbnkpOiBib29sZWFuIHtcblx0ICBmb3IgKGxldCBleGNsdWRlZE5vZGUgb2YgdGhpcy5fbm9kZXNFeGNsdWRlZCkge1xuXHQgICAgaWYgKGV4Y2x1ZGVkTm9kZS5jb250YWlucyh0YXJnZXQpKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdCAgICB9XG5cdCAgfVxuICAgIFxuXHQgIHJldHVybiBmYWxzZTtcblx0fVxuICAgIFxuXHRwcml2YXRlIF9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIoKSB7XG5cdCAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0ICAgIHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX29uQ2xpY2tCb2R5KSk7XG5cdCAgfSk7XG5cdH1cbiAgICBcblx0cHJpdmF0ZSBfcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKSB7XG5cdCAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0ICAgIHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGUsIHRoaXMuX29uQ2xpY2tCb2R5KSk7XG5cdCAgfSk7XG5cdH1cbiAgICBcblx0cHJpdmF0ZSBfaW5pdEF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKSB7XG5cdCAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0ICAgIHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX2luaXRPbkNsaWNrQm9keSkpO1xuXHQgIH0pO1xuXHR9XG4gICAgXG5cdHByaXZhdGUgX3JlbW92ZUF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKSB7XG5cdCAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0ICAgIHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGUsIHRoaXMuX2luaXRPbkNsaWNrQm9keSkpO1xuXHQgIH0pO1xuXHR9XG4gICAgXG5cdHByaXZhdGUgX2luaXRXaW5kb3dCbHVyTGlzdGVuZXIoKSB7XG5cdCAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5fb25XaW5kb3dCbHVyKTtcblx0ICB9KTtcblx0fVxuICAgIFxuXHRwcml2YXRlIF9yZW1vdmVXaW5kb3dCbHVyTGlzdGVuZXIoKSB7XG5cdCAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0ICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5fb25XaW5kb3dCbHVyKTtcblx0ICB9KTtcblx0fVxuICAgIFxuICAgIH0iXX0=