@snabcentr/client-ui 4.16.0 → 4.17.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 (47) hide show
  1. package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +11 -21
  2. package/esm2022/providers/index.mjs +1 -2
  3. package/esm2022/public-api.mjs +2 -1
  4. package/esm2022/samples/sc-sample.module.mjs +3 -10
  5. package/esm2022/services/index.mjs +2 -1
  6. package/esm2022/services/sc-scripts.service.mjs +106 -0
  7. package/esm2022/smart-captcha/index.mjs +5 -0
  8. package/esm2022/smart-captcha/interfaces/index.mjs +6 -0
  9. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-api.mjs +2 -0
  10. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-event.mjs +2 -0
  11. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-language.mjs +2 -0
  12. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-render-params.mjs +2 -0
  13. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-settings.mjs +2 -0
  14. package/esm2022/smart-captcha/interfaces/sc-smart-captcha-window.mjs +2 -0
  15. package/esm2022/smart-captcha/sc-smart-captcha.component.mjs +167 -0
  16. package/esm2022/smart-captcha/services/index.mjs +2 -0
  17. package/esm2022/smart-captcha/services/sc-smart-captcha-loader.service.mjs +87 -0
  18. package/esm2022/smart-captcha/tokens/index.mjs +3 -0
  19. package/esm2022/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.mjs +8 -0
  20. package/esm2022/smart-captcha/tokens/sc-smart-captcha-settings.token.mjs +6 -0
  21. package/feedback/feedback-form/sc-feedback-form.component.d.ts +1 -1
  22. package/fesm2022/snabcentr-client-ui.mjs +367 -64
  23. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  24. package/package.json +1 -2
  25. package/providers/index.d.ts +0 -1
  26. package/public-api.d.ts +1 -0
  27. package/release_notes.tmp +3 -3
  28. package/samples/sc-sample.module.d.ts +1 -2
  29. package/services/index.d.ts +1 -0
  30. package/services/sc-scripts.service.d.ts +51 -0
  31. package/smart-captcha/index.d.ts +4 -0
  32. package/smart-captcha/interfaces/index.d.ts +5 -0
  33. package/smart-captcha/interfaces/sc-smart-captcha-api.d.ts +36 -0
  34. package/smart-captcha/interfaces/sc-smart-captcha-event.d.ts +4 -0
  35. package/smart-captcha/interfaces/sc-smart-captcha-language.d.ts +4 -0
  36. package/smart-captcha/interfaces/sc-smart-captcha-render-params.d.ts +16 -0
  37. package/smart-captcha/interfaces/sc-smart-captcha-settings.d.ts +16 -0
  38. package/smart-captcha/interfaces/sc-smart-captcha-window.d.ts +14 -0
  39. package/smart-captcha/sc-smart-captcha.component.d.ts +92 -0
  40. package/smart-captcha/services/index.d.ts +1 -0
  41. package/smart-captcha/services/sc-smart-captcha-loader.service.d.ts +50 -0
  42. package/smart-captcha/tokens/index.d.ts +2 -0
  43. package/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.d.ts +5 -0
  44. package/smart-captcha/tokens/sc-smart-captcha-settings.token.d.ts +6 -0
  45. package/styles/tailwind/tailwind.scss +40 -2
  46. package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +0 -30
  47. package/providers/cleanup-recaptcha-artifacts.d.ts +0 -7
@@ -0,0 +1,6 @@
1
+ export * from './sc-smart-captcha-api';
2
+ export * from './sc-smart-captcha-event';
3
+ export * from './sc-smart-captcha-language';
4
+ export * from './sc-smart-captcha-render-params';
5
+ export * from './sc-smart-captcha-settings';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc21hcnQtY2FwdGNoYS9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2Mtc21hcnQtY2FwdGNoYS1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1zbWFydC1jYXB0Y2hhLWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2Mtc21hcnQtY2FwdGNoYS1sYW5ndWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXNtYXJ0LWNhcHRjaGEtcmVuZGVyLXBhcmFtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXNtYXJ0LWNhcHRjaGEtc2V0dGluZ3MnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc21hcnQtY2FwdGNoYS9pbnRlcmZhY2VzL3NjLXNtYXJ0LWNhcHRjaGEtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY1NtYXJ0Q2FwdGNoYUV2ZW50IH0gZnJvbSAnLi9zYy1zbWFydC1jYXB0Y2hhLWV2ZW50JztcbmltcG9ydCB7IFNjU21hcnRDYXB0Y2hhUmVuZGVyUGFyYW1zIH0gZnJvbSAnLi9zYy1zbWFydC1jYXB0Y2hhLXJlbmRlci1wYXJhbXMnO1xuXG4vKipcbiAqIEFQSSBZYW5kZXggU21hcnRDYXB0Y2hhLCDQtNC+0YHRgtGD0L/QvdC+0LUg0LIgYHdpbmRvdy5zbWFydENhcHRjaGFgINC/0L7RgdC70LUg0LfQsNCz0YDRg9C30LrQuCDRgdC60YDQuNC/0YLQsC5cbiAqXG4gKiBAc2VlIFvQnNC10YLQvtC00Ysgd2luZG93LnNtYXJ0Q2FwdGNoYV0oaHR0cHM6Ly95YW5kZXguY2xvdWQvcnUvZG9jcy9zbWFydGNhcHRjaGEvY29uY2VwdHMvd2lkZ2V0LW1ldGhvZHMjbWV0aG9kcylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY1NtYXJ0Q2FwdGNoYUFwaSB7XG4gICAgLyoqXG4gICAgICog0J7RgtGA0LjRgdC+0LLRi9Cy0LDQtdGCINCy0LjQtNC20LXRgiDQsiDQutC+0L3RgtC10LnQvdC10YDQtSDQuCDQstC+0LfQstGA0LDRidCw0LXRgiDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstC40LTQttC10YLQsCAo0LzQvtC20LXRgiDQsdGL0YLRjCDRgNCw0LLQtdC9IGAwYCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyINCa0L7QvdGC0LXQudC90LXRgCDQtNC70Y8g0LLQuNC00LbQtdGC0LAuXG4gICAgICogQHBhcmFtIHBhcmFtcyDQn9Cw0YDQsNC80LXRgtGA0Ysg0L7RgtGA0LjRgdC+0LLQutC4LlxuICAgICAqL1xuICAgIHJlbmRlcjogKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIHBhcmFtczogU2NTbWFydENhcHRjaGFSZW5kZXJQYXJhbXMpID0+IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCh0LHRgNCw0YHRi9Cy0LDQtdGCINCy0LjQtNC20LXRgiDQsiDQvdCw0YfQsNC70YzQvdC+0LUg0YHQvtGB0YLQvtGP0L3QuNC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdpZGdldElkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0LjQtNC20LXRgtCwLlxuICAgICAqL1xuICAgIHJlc2V0OiAod2lkZ2V0SWQ6IG51bWJlcikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINCy0LjQtNC20LXRgiDQuCDRgdC+0LfQtNCw0L3QvdGL0LUg0LjQvCDRjdC70LXQvNC10L3RgtGLINC4INC+0LHRgNCw0LHQvtGC0YfQuNC60LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2lkZ2V0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLQuNC00LbQtdGC0LAuXG4gICAgICovXG4gICAgZGVzdHJveTogKHdpZGdldElkOiBudW1iZXIpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LTQv9C40YHRi9Cy0LDQtdGCINC+0LHRgNCw0LHQvtGC0YfQuNC6INC90LAg0YHQvtCx0YvRgtC40LUg0LLQuNC00LbQtdGC0LAg0Lgg0LLQvtC30LLRgNCw0YnQsNC10YIg0YTRg9C90LrRhtC40Y4g0L7RgtC/0LjRgdC60LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2lkZ2V0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLQuNC00LbQtdGC0LAuXG4gICAgICogQHBhcmFtIGV2ZW50INCh0L7QsdGL0YLQuNC1INCy0LjQtNC20LXRgtCwLlxuICAgICAqIEBwYXJhbSBjYWxsYmFjayDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjywg0LTQu9GPINGB0L7QsdGL0YLQuNGPIGBzdWNjZXNzYCDQv9C+0LvRg9GH0LDQtdGCINGC0L7QutC10L0uXG4gICAgICovXG4gICAgc3Vic2NyaWJlOiAod2lkZ2V0SWQ6IG51bWJlciwgZXZlbnQ6IFNjU21hcnRDYXB0Y2hhRXZlbnQsIGNhbGxiYWNrOiAocGF5bG9hZD86IHVua25vd24pID0+IHZvaWQpID0+ICgpID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zbWFydC1jYXB0Y2hhL2ludGVyZmFjZXMvc2Mtc21hcnQtY2FwdGNoYS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQodC+0LHRi9GC0LjQtSDQstC40LTQttC10YLQsCBZYW5kZXggU21hcnRDYXB0Y2hhLCDQvdCwINC60L7RgtC+0YDQvtC1INC80L7QttC90L4g0L/QvtC00L/QuNGB0LDRgtGM0YHRjy5cbiAqL1xuZXhwb3J0IHR5cGUgU2NTbWFydENhcHRjaGFFdmVudCA9ICdjaGFsbGVuZ2UtdmlzaWJsZScgfCAnY2hhbGxlbmdlLWhpZGRlbicgfCAnbmV0d29yay1lcnJvcicgfCAnamF2YXNjcmlwdC1lcnJvcicgfCAnc3VjY2VzcycgfCAndG9rZW4tZXhwaXJlZCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1sYW5ndWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zbWFydC1jYXB0Y2hhL2ludGVyZmFjZXMvc2Mtc21hcnQtY2FwdGNoYS1sYW5ndWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQr9C30YvQuiDQstC40LTQttC10YLQsCBZYW5kZXggU21hcnRDYXB0Y2hhLlxuICovXG5leHBvcnQgdHlwZSBTY1NtYXJ0Q2FwdGNoYUxhbmd1YWdlID0gJ3J1JyB8ICdlbicgfCAnYmUnIHwgJ2trJyB8ICd0dCcgfCAndWsnIHwgJ3V6JyB8ICd0cic7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1yZW5kZXItcGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3NtYXJ0LWNhcHRjaGEvaW50ZXJmYWNlcy9zYy1zbWFydC1jYXB0Y2hhLXJlbmRlci1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjU21hcnRDYXB0Y2hhTGFuZ3VhZ2UgfSBmcm9tICcuL3NjLXNtYXJ0LWNhcHRjaGEtbGFuZ3VhZ2UnO1xuXG4vKipcbiAqINCf0LDRgNCw0LzQtdGC0YDRiyDQvtGC0YDQuNGB0L7QstC60Lgg0LLQuNC00LbQtdGC0LAgWWFuZGV4IFNtYXJ0Q2FwdGNoYS5cbiAqXG4gKiBAc2VlIFvQnNC10YLQvtC0IHJlbmRlcl0oaHR0cHM6Ly95YW5kZXguY2xvdWQvcnUvZG9jcy9zbWFydGNhcHRjaGEvY29uY2VwdHMvd2lkZ2V0LW1ldGhvZHMjcmVuZGVyKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjU21hcnRDYXB0Y2hhUmVuZGVyUGFyYW1zIHtcbiAgICAvKipcbiAgICAgKiDQmtC70Y7RhyDQutC70LjQtdC90YLRgdC60L7QuSDRh9Cw0YHRgtC4LlxuICAgICAqL1xuICAgIHNpdGVrZXk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCv0LfRi9C6INCy0LjQtNC20LXRgtCwLlxuICAgICAqL1xuICAgIGhsPzogU2NTbWFydENhcHRjaGFMYW5ndWFnZTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zbWFydC1jYXB0Y2hhL2ludGVyZmFjZXMvc2Mtc21hcnQtY2FwdGNoYS1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NTbWFydENhcHRjaGFMYW5ndWFnZSB9IGZyb20gJy4vc2Mtc21hcnQtY2FwdGNoYS1sYW5ndWFnZSc7XG5cbi8qKlxuICog0J3QsNGB0YLRgNC+0LnQutC4IFlhbmRleCBTbWFydENhcHRjaGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NTbWFydENhcHRjaGFTZXR0aW5ncyB7XG4gICAgLyoqXG4gICAgICog0JrQu9GO0Ycg0LrQu9C40LXQvdGC0YHQutC+0Lkg0YfQsNGB0YLQuC5cbiAgICAgKlxuICAgICAqIEBzZWUgW9Ca0LvRjtGH0Lgg0LrQsNC/0YfQuF0oaHR0cHM6Ly95YW5kZXguY2xvdWQvcnUvZG9jcy9zbWFydGNhcHRjaGEvY29uY2VwdHMva2V5cylcbiAgICAgKi9cbiAgICBzaXRla2V5OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQr9C30YvQuiDQstC40LTQttC10YLQsC5cbiAgICAgKi9cbiAgICBsYW5ndWFnZTogU2NTbWFydENhcHRjaGFMYW5ndWFnZTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS13aW5kb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc21hcnQtY2FwdGNoYS9pbnRlcmZhY2VzL3NjLXNtYXJ0LWNhcHRjaGEtd2luZG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY1NtYXJ0Q2FwdGNoYUFwaSB9IGZyb20gJy4vc2Mtc21hcnQtY2FwdGNoYS1hcGknO1xuXG4vKipcbiAqINCe0LrQvdC+INCx0YDQsNGD0LfQtdGA0LAg0YEgQVBJIFlhbmRleCBTbWFydENhcHRjaGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NTbWFydENhcHRjaGFXaW5kb3cgZXh0ZW5kcyBXaW5kb3cge1xuICAgIC8qKlxuICAgICAqIEFQSSBZYW5kZXggU21hcnRDYXB0Y2hhLCDQv9C+0Y/QstC70Y/QtdGC0YHRjyDQv9C+0YHQu9C1INC30LDQs9GA0YPQt9C60Lgg0YHQutGA0LjQv9GC0LAuXG4gICAgICovXG4gICAgc21hcnRDYXB0Y2hhPzogU2NTbWFydENhcHRjaGFBcGk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDQt9Cw0LPRgNGD0LfQutC4INGB0LrRgNC40L/RgtCwLCDQuNC80Y8g0LrQvtGC0L7RgNC+0LPQviDQv9C10YDQtdC00LDRkdGC0YHRjyDQsiDQv9Cw0YDQsNC80LXRgtGA0LUgYG9ubG9hZGAg0LDQtNGA0LXRgdCwINGB0LrRgNC40L/RgtCwLlxuICAgICAqL1xuICAgIHNjU21hcnRDYXB0Y2hhT25sb2FkPzogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,167 @@
1
+ /* eslint-disable no-use-before-define */
2
+ import { afterNextRender, ChangeDetectionStrategy, Component, DestroyRef, inject, NgZone, signal, viewChild } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import { tuiProvide } from '@taiga-ui/cdk';
6
+ import { TuiLink } from '@taiga-ui/core';
7
+ import { noop, tap } from 'rxjs';
8
+ import { ScSmartCaptchaLoaderService } from './services/sc-smart-captcha-loader.service';
9
+ import { SC_SMART_CAPTCHA_SETTINGS } from './tokens/sc-smart-captcha-settings.token';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * Виджет Yandex SmartCaptcha. Значение поля ввода - токен прохождения проверки, `null` пока проверка не пройдена или токен истёк.
13
+ */
14
+ export class ScSmartCaptchaComponent {
15
+ /**
16
+ * Инициализирует экземпляр класса {@link ScSmartCaptchaComponent}.
17
+ */
18
+ constructor() {
19
+ /**
20
+ * Контейнер, в котором отрисовывается виджет.
21
+ */
22
+ this.container = viewChild.required('container');
23
+ /**
24
+ * Настройки Yandex SmartCaptcha.
25
+ */
26
+ this.settings = inject(SC_SMART_CAPTCHA_SETTINGS);
27
+ /**
28
+ * Сервис загрузки скрипта Yandex SmartCaptcha.
29
+ */
30
+ this.loader = inject(ScSmartCaptchaLoaderService);
31
+ /**
32
+ * {@link NgZone} для отрисовки виджета вне зоны Angular и возврата его событий в зону.
33
+ */
34
+ this.ngZone = inject(NgZone);
35
+ /**
36
+ * Ссылка для автоматического управления уничтожением зависимостей.
37
+ */
38
+ this.destroyRef = inject(DestroyRef);
39
+ /**
40
+ * Признак того, что капчу не удалось загрузить.
41
+ */
42
+ this.hasError = signal(false);
43
+ /**
44
+ * Функции отписки от событий виджета.
45
+ */
46
+ this.unsubscribers = [];
47
+ /**
48
+ * Обработчик изменения значения поля ввода.
49
+ */
50
+ this.onChange = noop;
51
+ /**
52
+ * Обработчик касания поля ввода.
53
+ */
54
+ this.onTouched = noop;
55
+ afterNextRender(() => {
56
+ this.load();
57
+ });
58
+ this.destroyRef.onDestroy(() => {
59
+ this.destroyWidget();
60
+ });
61
+ }
62
+ /** @inheritDoc */
63
+ writeValue(token) {
64
+ const { api, widgetId } = this;
65
+ if (!token && api && widgetId !== undefined) {
66
+ this.ngZone.runOutsideAngular(() => {
67
+ api.reset(widgetId);
68
+ });
69
+ }
70
+ }
71
+ /** @inheritDoc */
72
+ registerOnChange(onChange) {
73
+ this.onChange = onChange;
74
+ }
75
+ /** @inheritDoc */
76
+ registerOnTouched(onTouched) {
77
+ this.onTouched = onTouched;
78
+ }
79
+ /**
80
+ * Повторяет загрузку капчи после ошибки.
81
+ */
82
+ retry() {
83
+ this.hasError.set(false);
84
+ this.load();
85
+ }
86
+ /**
87
+ * Загружает API Yandex SmartCaptcha и отрисовывает виджет (API приходит вне зоны Angular). При ошибке загрузки или отрисовки показывает сообщение.
88
+ */
89
+ load() {
90
+ this.loader.api$
91
+ .pipe(tap((api) => {
92
+ this.render(api);
93
+ }), takeUntilDestroyed(this.destroyRef))
94
+ .subscribe({
95
+ error: () => {
96
+ this.showError();
97
+ },
98
+ });
99
+ }
100
+ /**
101
+ * Отрисовывает виджет и подписывается на его события.
102
+ *
103
+ * @param api API Yandex SmartCaptcha.
104
+ */
105
+ render(api) {
106
+ const widgetId = api.render(this.container().nativeElement, { sitekey: this.settings.sitekey, hl: this.settings.language });
107
+ this.api = api;
108
+ this.widgetId = widgetId;
109
+ this.unsubscribers = [
110
+ api.subscribe(widgetId, 'success', (token) => {
111
+ this.updateValue(typeof token === 'string' ? token : null);
112
+ }),
113
+ api.subscribe(widgetId, 'token-expired', () => {
114
+ this.updateValue(null);
115
+ api.reset(widgetId);
116
+ }),
117
+ api.subscribe(widgetId, 'javascript-error', () => {
118
+ this.showError();
119
+ }),
120
+ ];
121
+ }
122
+ /**
123
+ * Передаёт форме новое значение токена.
124
+ *
125
+ * @param token Токен прохождения проверки.
126
+ */
127
+ updateValue(token) {
128
+ this.ngZone.run(() => {
129
+ this.onChange(token);
130
+ this.onTouched();
131
+ });
132
+ }
133
+ /**
134
+ * Удаляет виджет, очищает токен и показывает сообщение об ошибке.
135
+ */
136
+ showError() {
137
+ this.destroyWidget();
138
+ this.ngZone.run(() => {
139
+ this.hasError.set(true);
140
+ this.onChange(null);
141
+ });
142
+ }
143
+ /**
144
+ * Удаляет виджет вместе с созданными им элементами и обработчиками.
145
+ */
146
+ destroyWidget() {
147
+ this.unsubscribers.forEach((unsubscribe) => {
148
+ unsubscribe();
149
+ });
150
+ this.unsubscribers = [];
151
+ const { api, widgetId } = this;
152
+ if (api && widgetId !== undefined) {
153
+ this.ngZone.runOutsideAngular(() => {
154
+ api.destroy(widgetId);
155
+ });
156
+ }
157
+ this.api = undefined;
158
+ this.widgetId = undefined;
159
+ }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSmartCaptchaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScSmartCaptchaComponent, isStandalone: true, selector: "sc-smart-captcha", providers: [tuiProvide(NG_VALUE_ACCESSOR, ScSmartCaptchaComponent, true)], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #container\n class=\"min-h-[7.375rem]\"\n [class.hidden]=\"hasError()\"\n></div>\n@if (hasError()) {\n <p\n role=\"alert\"\n class=\"text-body-s text-tui-text-negative\"\n >\n \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443 \u00AB\u042F \u043D\u0435 \u0440\u043E\u0431\u043E\u0442\u00BB.\n <button\n tuiLink\n type=\"button\"\n (click)=\"retry()\"\n >\n \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C\n </button>\n </p>\n}\n", dependencies: [{ kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSmartCaptchaComponent, decorators: [{
164
+ type: Component,
165
+ args: [{ standalone: true, selector: 'sc-smart-captcha', imports: [TuiLink], providers: [tuiProvide(NG_VALUE_ACCESSOR, ScSmartCaptchaComponent, true)], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"min-h-[7.375rem]\"\n [class.hidden]=\"hasError()\"\n></div>\n@if (hasError()) {\n <p\n role=\"alert\"\n class=\"text-body-s text-tui-text-negative\"\n >\n \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443 \u00AB\u042F \u043D\u0435 \u0440\u043E\u0431\u043E\u0442\u00BB.\n <button\n tuiLink\n type=\"button\"\n (click)=\"retry()\"\n >\n \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C\n </button>\n </p>\n}\n" }]
166
+ }], ctorParameters: () => [] });
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc21hcnQtY2FwdGNoYS9zYy1zbWFydC1jYXB0Y2hhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zbWFydC1jYXB0Y2hhL3NjLXNtYXJ0LWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYyxNQUFNLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZLLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlqQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFFckY7O0dBRUc7QUFTSCxNQUFNLE9BQU8sdUJBQXVCO0lBd0RoQzs7T0FFRztJQUNIO1FBMURBOztXQUVHO1FBQ2MsY0FBUyxHQUFvQyxTQUFTLENBQUMsUUFBUSxDQUEwQixXQUFXLENBQUMsQ0FBQztRQUV2SDs7V0FFRztRQUNjLGFBQVEsR0FBMkIsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFdEY7O1dBRUc7UUFDYyxXQUFNLEdBQWdD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QUFJLENBQUM7UUFFL0IsSUFBSSxHQUFHLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUMvQixHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7K0dBdExRLHVCQUF1QjttR0FBdkIsdUJBQXVCLCtEQUhyQixDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxrSkN0QjdFLGlwQkFvQkEsNENEQ2MsT0FBTzs7NEZBSVIsdUJBQXVCO2tCQVJuQyxTQUFTO2lDQUNNLElBQUksWUFDTixrQkFBa0IsV0FFbkIsQ0FBQyxPQUFPLENBQUMsYUFDUCxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsMkJBQTJCLElBQUksQ0FBQyxDQUFDLG1CQUN4RCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cblxuaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBpbmplY3QsIE5nWm9uZSwgU2lnbmFsLCBzaWduYWwsIHZpZXdDaGlsZCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHR1aVByb3ZpZGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aUxpbmsgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBub29wLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NTbWFydENhcHRjaGFBcGkgfSBmcm9tICcuL2ludGVyZmFjZXMvc2Mtc21hcnQtY2FwdGNoYS1hcGknO1xuaW1wb3J0IHsgU2NTbWFydENhcHRjaGFTZXR0aW5ncyB9IGZyb20gJy4vaW50ZXJmYWNlcy9zYy1zbWFydC1jYXB0Y2hhLXNldHRpbmdzJztcbmltcG9ydCB7IFNjU21hcnRDYXB0Y2hhTG9hZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2Mtc21hcnQtY2FwdGNoYS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTQ19TTUFSVF9DQVBUQ0hBX1NFVFRJTkdTIH0gZnJvbSAnLi90b2tlbnMvc2Mtc21hcnQtY2FwdGNoYS1zZXR0aW5ncy50b2tlbic7XG5cbi8qKlxuICog0JLQuNC00LbQtdGCIFlhbmRleCBTbWFydENhcHRjaGEuINCX0L3QsNGH0LXQvdC40LUg0L/QvtC70Y8g0LLQstC+0LTQsCAtINGC0L7QutC10L0g0L/RgNC+0YXQvtC20LTQtdC90LjRjyDQv9GA0L7QstC10YDQutC4LCBgbnVsbGAg0L/QvtC60LAg0L/RgNC+0LLQtdGA0LrQsCDQvdC1INC/0YDQvtC50LTQtdC90LAg0LjQu9C4INGC0L7QutC10L0g0LjRgdGC0ZHQui5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLXNtYXJ0LWNhcHRjaGEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1zbWFydC1jYXB0Y2hhLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbVHVpTGlua10sXG4gICAgcHJvdmlkZXJzOiBbdHVpUHJvdmlkZShOR19WQUxVRV9BQ0NFU1NPUiwgU2NTbWFydENhcHRjaGFDb21wb25lbnQsIHRydWUpXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NTbWFydENhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgLyoqXG4gICAgICog0JrQvtC90YLQtdC50L3QtdGALCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0YDQuNGB0L7QstGL0LLQsNC10YLRgdGPINCy0LjQtNC20LXRgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lcjogU2lnbmFsPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2NvbnRhaW5lcicpO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNGB0YLRgNC+0LnQutC4IFlhbmRleCBTbWFydENhcHRjaGEuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nczogU2NTbWFydENhcHRjaGFTZXR0aW5ncyA9IGluamVjdChTQ19TTUFSVF9DQVBUQ0hBX1NFVFRJTkdTKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQt9Cw0LPRgNGD0LfQutC4INGB0LrRgNC40L/RgtCwIFlhbmRleCBTbWFydENhcHRjaGEuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkZXI6IFNjU21hcnRDYXB0Y2hhTG9hZGVyU2VydmljZSA9IGluamVjdChTY1NtYXJ0Q2FwdGNoYUxvYWRlclNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE5nWm9uZX0g0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuCDQstC40LTQttC10YLQsCDQstC90LUg0LfQvtC90YsgQW5ndWxhciDQuCDQstC+0LfQstGA0LDRgtCwINC10LPQviDRgdC+0LHRi9GC0LjQuSDQsiDQt9C+0L3Rgy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0LTQu9GPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LPQviDRg9C/0YDQsNCy0LvQtdC90LjRjyDRg9C90LjRh9GC0L7QttC10L3QuNC10Lwg0LfQsNCy0LjRgdC40LzQvtGB0YLQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDRh9GC0L4g0LrQsNC/0YfRgyDQvdC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzRXJyb3I6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIEFQSSBZYW5kZXggU21hcnRDYXB0Y2hhLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0YDQuNGB0L7QstCw0L0g0LLQuNC00LbQtdGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgYXBpPzogU2NTbWFydENhcHRjaGFBcGk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQvtGC0YDQuNGB0L7QstCw0L3QvdC+0LPQviDQstC40LTQttC10YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHdpZGdldElkPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0KTRg9C90LrRhtC40Lgg0L7RgtC/0LjRgdC60Lgg0L7RgiDRgdC+0LHRi9GC0LjQuSDQstC40LTQttC10YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlcnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDQuNC30LzQtdC90LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh0b2tlbjogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDQutCw0YHQsNC90LjRjyDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gbm9vcDtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NTbWFydENhcHRjaGFDb21wb25lbnR9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveVdpZGdldCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh0b2tlbjogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGFwaSwgd2lkZ2V0SWQgfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0b2tlbiAmJiBhcGkgJiYgd2lkZ2V0SWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGFwaS5yZXNldCh3aWRnZXRJZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodG9rZW46IHN0cmluZyB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtCy0YLQvtGA0Y/QtdGCINC30LDQs9GA0YPQt9C60YMg0LrQsNC/0YfQuCDQv9C+0YHQu9C1INC+0YjQuNCx0LrQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmV0cnkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNCz0YDRg9C20LDQtdGCIEFQSSBZYW5kZXggU21hcnRDYXB0Y2hhINC4INC+0YLRgNC40YHQvtCy0YvQstCw0LXRgiDQstC40LTQttC10YIgKEFQSSDQv9GA0LjRhdC+0LTQuNGCINCy0L3QtSDQt9C+0L3RiyBBbmd1bGFyKS4g0J/RgNC4INC+0YjQuNCx0LrQtSDQt9Cw0LPRgNGD0LfQutC4INC40LvQuCDQvtGC0YDQuNGB0L7QstC60Lgg0L/QvtC60LDQt9GL0LLQsNC10YIg0YHQvtC+0LHRidC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkZXIuYXBpJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChhcGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIoYXBpKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7RgtGA0LjRgdC+0LLRi9Cy0LDQtdGCINCy0LjQtNC20LXRgiDQuCDQv9C+0LTQv9C40YHRi9Cy0LDQtdGC0YHRjyDQvdCwINC10LPQviDRgdC+0LHRi9GC0LjRjy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcGkgQVBJIFlhbmRleCBTbWFydENhcHRjaGEuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW5kZXIoYXBpOiBTY1NtYXJ0Q2FwdGNoYUFwaSk6IHZvaWQge1xuICAgICAgICBjb25zdCB3aWRnZXRJZCA9IGFwaS5yZW5kZXIodGhpcy5jb250YWluZXIoKS5uYXRpdmVFbGVtZW50LCB7IHNpdGVrZXk6IHRoaXMuc2V0dGluZ3Muc2l0ZWtleSwgaGw6IHRoaXMuc2V0dGluZ3MubGFuZ3VhZ2UgfSk7XG5cbiAgICAgICAgdGhpcy5hcGkgPSBhcGk7XG4gICAgICAgIHRoaXMud2lkZ2V0SWQgPSB3aWRnZXRJZDtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZXJzID0gW1xuICAgICAgICAgICAgYXBpLnN1YnNjcmliZSh3aWRnZXRJZCwgJ3N1Y2Nlc3MnLCAodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycgPyB0b2tlbiA6IG51bGwpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBhcGkuc3Vic2NyaWJlKHdpZGdldElkLCAndG9rZW4tZXhwaXJlZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICAgIGFwaS5yZXNldCh3aWRnZXRJZCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGFwaS5zdWJzY3JpYmUod2lkZ2V0SWQsICdqYXZhc2NyaXB0LWVycm9yJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdC00LDRkdGCINGE0L7RgNC80LUg0L3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INGC0L7QutC10L3QsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0b2tlbiDQotC+0LrQtdC9INC/0YDQvtGF0L7QttC00LXQvdC40Y8g0L/RgNC+0LLQtdGA0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlKHRva2VuOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRva2VuKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINCy0LjQtNC20LXRgiwg0L7Rh9C40YnQsNC10YIg0YLQvtC60LXQvSDQuCDQv9C+0LrQsNC30YvQstCw0LXRgiDRgdC+0L7QsdGJ0LXQvdC40LUg0L7QsSDQvtGI0LjQsdC60LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaG93RXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveVdpZGdldCgpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNFcnJvci5zZXQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQstC40LTQttC10YIg0LLQvNC10YHRgtC1INGBINGB0L7Qt9C00LDQvdC90YvQvNC4INC40Lwg0Y3Qu9C10LzQtdC90YLQsNC80Lgg0Lgg0L7QsdGA0LDQsdC+0YLRh9C40LrQsNC80LguXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZXN0cm95V2lkZ2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlcnMuZm9yRWFjaCgodW5zdWJzY3JpYmUpID0+IHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlcnMgPSBbXTtcblxuICAgICAgICBjb25zdCB7IGFwaSwgd2lkZ2V0SWQgfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFwaSAmJiB3aWRnZXRJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXBpLmRlc3Ryb3kod2lkZ2V0SWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFwaSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy53aWRnZXRJZCA9IHVuZGVmaW5lZDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgI2NvbnRhaW5lclxuICAgIGNsYXNzPVwibWluLWgtWzcuMzc1cmVtXVwiXG4gICAgW2NsYXNzLmhpZGRlbl09XCJoYXNFcnJvcigpXCJcbj48L2Rpdj5cbkBpZiAoaGFzRXJyb3IoKSkge1xuICAgIDxwXG4gICAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LXMgdGV4dC10dWktdGV4dC1uZWdhdGl2ZVwiXG4gICAgPlxuICAgICAgICDQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDQv9GA0L7QstC10YDQutGDIMKr0K8g0L3QtSDRgNC+0LHQvtGCwrsuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJldHJ5KClcIlxuICAgICAgICA+XG4gICAgICAgICAgICDQn9C+0LLRgtC+0YDQuNGC0YxcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9wPlxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './sc-smart-captcha-loader.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc21hcnQtY2FwdGNoYS9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zYy1zbWFydC1jYXB0Y2hhLWxvYWRlci5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,87 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { WA_WINDOW } from '@ng-web-apis/common';
3
+ import { IS_BROWSER } from '@snabcentr/client-core';
4
+ import { tuiZonefree } from '@taiga-ui/cdk';
5
+ import { defer, EMPTY, ignoreElements, merge, Observable, of, shareReplay, timeout } from 'rxjs';
6
+ import { ScScriptsService } from '../../services/sc-scripts.service';
7
+ import { SC_SMART_CAPTCHA_LOAD_TIMEOUT } from '../tokens/sc-smart-captcha-load-timeout.token';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Сервис загрузки скрипта Yandex SmartCaptcha.
11
+ */
12
+ export class ScSmartCaptchaLoaderService {
13
+ constructor() {
14
+ /**
15
+ * Сервис для вставки внешних скриптов.
16
+ */
17
+ this.scriptsService = inject(ScScriptsService);
18
+ /**
19
+ * Окно браузера с API Yandex SmartCaptcha.
20
+ */
21
+ this.window = inject(WA_WINDOW);
22
+ /**
23
+ * Признак того, что приложение запущено в браузере.
24
+ */
25
+ this.isBrowser = inject(IS_BROWSER);
26
+ /**
27
+ * Время ожидания загрузки скрипта в миллисекундах.
28
+ */
29
+ this.loadTimeout = inject(SC_SMART_CAPTCHA_LOAD_TIMEOUT);
30
+ /**
31
+ * Имя функции окна, которую скрипт вызывает после загрузки.
32
+ */
33
+ this.onloadCallbackName = 'scSmartCaptchaOnload';
34
+ /**
35
+ * Адрес скрипта.
36
+ */
37
+ this.scriptUrl = `https://smartcaptcha.cloud.yandex.ru/captcha.js?render=onload&onload=${this.onloadCallbackName}`;
38
+ /**
39
+ * Загрузка API, общая для всех виджетов. Скрипт загружается один раз; отписка и истечение ожидания у подписчика загрузку не прерывают, после ошибки следующая подписка загружает скрипт заново.
40
+ */
41
+ this.loading$ = defer(() => this.load$()).pipe(shareReplay(1));
42
+ /**
43
+ * {@link Observable} API Yandex SmartCaptcha. Значения и ошибки приходят вне зоны Angular, ожидание первого значения ограничено {@link SC_SMART_CAPTCHA_LOAD_TIMEOUT}.
44
+ */
45
+ this.api$ = this.loading$.pipe(timeout({ first: this.loadTimeout }), tuiZonefree());
46
+ }
47
+ /**
48
+ * Возвращает API Yandex SmartCaptcha, при необходимости загружая скрипт. На сервере ничего не возвращает.
49
+ */
50
+ load$() {
51
+ if (!this.isBrowser) {
52
+ return EMPTY;
53
+ }
54
+ if (this.window.smartCaptcha) {
55
+ return of(this.window.smartCaptcha);
56
+ }
57
+ return merge(this.onload$(), this.scriptsService.loadScript$(this.scriptUrl).pipe(ignoreElements()));
58
+ }
59
+ /**
60
+ * Ждёт вызова функции из параметра `onload` адреса скрипта и возвращает API, которое скрипт к этому моменту создал.
61
+ */
62
+ onload$() {
63
+ return new Observable((subscriber) => {
64
+ this.window[this.onloadCallbackName] = () => {
65
+ if (this.window.smartCaptcha) {
66
+ subscriber.next(this.window.smartCaptcha);
67
+ subscriber.complete();
68
+ }
69
+ else {
70
+ subscriber.error(new Error('Yandex SmartCaptcha API is unavailable'));
71
+ }
72
+ };
73
+ return () => {
74
+ this.window[this.onloadCallbackName] = undefined;
75
+ };
76
+ });
77
+ }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSmartCaptchaLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
79
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSmartCaptchaLoaderService, providedIn: 'root' }); }
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSmartCaptchaLoaderService, decorators: [{
82
+ type: Injectable,
83
+ args: [{
84
+ providedIn: 'root',
85
+ }]
86
+ }] });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zbWFydC1jYXB0Y2hhL3NlcnZpY2VzL3NjLXNtYXJ0LWNhcHRjaGEtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQUU5Rjs7R0FFRztBQUlILE1BQU0sT0FBTywyQkFBMkI7SUFIeEM7UUFJSTs7V0FFRztRQUNjLG1CQUFjLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdFOztXQUVHO1FBQ2MsV0FBTSxHQUF5QixNQUFNLENBQXVCLFNBQVMsQ0FBQyxDQUFDO1FBRXhGOztXQUVHO1FBQ2MsY0FBUyxHQUFZLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RDs7V0FFRztRQUNjLGdCQUFXLEdBQVcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFN0U7O1dBRUc7UUFDYyx1QkFBa0IsR0FBRyxzQkFBMkQsQ0FBQztRQUVsRzs7V0FFRztRQUNjLGNBQVMsR0FBVyx3RUFBd0UsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFdkk7O1dBRUc7UUFDYyxhQUFRLEdBQWtDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUc7O1dBRUc7UUFDYSxTQUFJLEdBQWtDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBb0NqSTtJQWxDRzs7T0FFRztJQUNLLEtBQUs7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7T0FFRztJQUNLLE9BQU87UUFDWCxPQUFPLElBQUksVUFBVSxDQUFvQixDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBUyxFQUFFO2dCQUM5QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDMUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixDQUFDO3FCQUFNLENBQUM7b0JBQ0osVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLENBQUM7WUFDTCxDQUFDLENBQUM7WUFFRixPQUFPLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQztZQUNyRCxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBMUVRLDJCQUEyQjttSEFBM0IsMkJBQTJCLGNBRnhCLE1BQU07OzRGQUVULDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdBX1dJTkRPVyB9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHsgSVNfQlJPV1NFUiB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgdHVpWm9uZWZyZWUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGRlZmVyLCBFTVBUWSwgaWdub3JlRWxlbWVudHMsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHRpbWVvdXQgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NTY3JpcHRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NjLXNjcmlwdHMuc2VydmljZSc7XG5pbXBvcnQgeyBTY1NtYXJ0Q2FwdGNoYUFwaSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2Mtc21hcnQtY2FwdGNoYS1hcGknO1xuaW1wb3J0IHsgU2NTbWFydENhcHRjaGFXaW5kb3cgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLXNtYXJ0LWNhcHRjaGEtd2luZG93JztcbmltcG9ydCB7IFNDX1NNQVJUX0NBUFRDSEFfTE9BRF9USU1FT1VUIH0gZnJvbSAnLi4vdG9rZW5zL3NjLXNtYXJ0LWNhcHRjaGEtbG9hZC10aW1lb3V0LnRva2VuJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LfQsNCz0YDRg9C30LrQuCDRgdC60YDQuNC/0YLQsCBZYW5kZXggU21hcnRDYXB0Y2hhLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1NtYXJ0Q2FwdGNoYUxvYWRlclNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0LLRgdGC0LDQstC60Lgg0LLQvdC10YjQvdC40YUg0YHQutGA0LjQv9GC0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcmlwdHNTZXJ2aWNlOiBTY1NjcmlwdHNTZXJ2aWNlID0gaW5qZWN0KFNjU2NyaXB0c1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J7QutC90L4g0LHRgNCw0YPQt9C10YDQsCDRgSBBUEkgWWFuZGV4IFNtYXJ0Q2FwdGNoYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogU2NTbWFydENhcHRjaGFXaW5kb3cgPSBpbmplY3Q8U2NTbWFydENhcHRjaGFXaW5kb3c+KFdBX1dJTkRPVyk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC/0YDQuNC70L7QttC10L3QuNC1INC30LDQv9GD0YnQtdC90L4g0LIg0LHRgNCw0YPQt9C10YDQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbiA9IGluamVjdChJU19CUk9XU0VSKTtcblxuICAgIC8qKlxuICAgICAqINCS0YDQtdC80Y8g0L7QttC40LTQsNC90LjRjyDQt9Cw0LPRgNGD0LfQutC4INGB0LrRgNC40L/RgtCwINCyINC80LjQu9C70LjRgdC10LrRg9C90LTQsNGFLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZFRpbWVvdXQ6IG51bWJlciA9IGluamVjdChTQ19TTUFSVF9DQVBUQ0hBX0xPQURfVElNRU9VVCk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC80Y8g0YTRg9C90LrRhtC40Lgg0L7QutC90LAsINC60L7RgtC+0YDRg9GOINGB0LrRgNC40L/RgiDQstGL0LfRi9Cy0LDQtdGCINC/0L7RgdC70LUg0LfQsNCz0YDRg9C30LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9ubG9hZENhbGxiYWNrTmFtZSA9ICdzY1NtYXJ0Q2FwdGNoYU9ubG9hZCcgc2F0aXNmaWVzIGtleW9mIFNjU21hcnRDYXB0Y2hhV2luZG93O1xuXG4gICAgLyoqXG4gICAgICog0JDQtNGA0LXRgSDRgdC60YDQuNC/0YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcmlwdFVybDogc3RyaW5nID0gYGh0dHBzOi8vc21hcnRjYXB0Y2hhLmNsb3VkLnlhbmRleC5ydS9jYXB0Y2hhLmpzP3JlbmRlcj1vbmxvYWQmb25sb2FkPSR7dGhpcy5vbmxvYWRDYWxsYmFja05hbWV9YDtcblxuICAgIC8qKlxuICAgICAqINCX0LDQs9GA0YPQt9C60LAgQVBJLCDQvtCx0YnQsNGPINC00LvRjyDQstGB0LXRhSDQstC40LTQttC10YLQvtCyLiDQodC60YDQuNC/0YIg0LfQsNCz0YDRg9C20LDQtdGC0YHRjyDQvtC00LjQvSDRgNCw0Lc7INC+0YLQv9C40YHQutCwINC4INC40YHRgtC10YfQtdC90LjQtSDQvtC20LjQtNCw0L3QuNGPINGDINC/0L7QtNC/0LjRgdGH0LjQutCwINC30LDQs9GA0YPQt9C60YMg0L3QtSDQv9GA0LXRgNGL0LLQsNGO0YIsINC/0L7RgdC70LUg0L7RiNC40LHQutC4INGB0LvQtdC00YPRjtGJ0LDRjyDQv9C+0LTQv9C40YHQutCwINC30LDQs9GA0YPQttCw0LXRgiDRgdC60YDQuNC/0YIg0LfQsNC90L7QstC+LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZyQ6IE9ic2VydmFibGU8U2NTbWFydENhcHRjaGFBcGk+ID0gZGVmZXIoKCkgPT4gdGhpcy5sb2FkJCgpKS5waXBlKHNoYXJlUmVwbGF5KDEpKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSBBUEkgWWFuZGV4IFNtYXJ0Q2FwdGNoYS4g0JfQvdCw0YfQtdC90LjRjyDQuCDQvtGI0LjQsdC60Lgg0L/RgNC40YXQvtC00Y/RgiDQstC90LUg0LfQvtC90YsgQW5ndWxhciwg0L7QttC40LTQsNC90LjQtSDQv9C10YDQstC+0LPQviDQt9C90LDRh9C10L3QuNGPINC+0LPRgNCw0L3QuNGH0LXQvdC+IHtAbGluayBTQ19TTUFSVF9DQVBUQ0hBX0xPQURfVElNRU9VVH0uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFwaSQ6IE9ic2VydmFibGU8U2NTbWFydENhcHRjaGFBcGk+ID0gdGhpcy5sb2FkaW5nJC5waXBlKHRpbWVvdXQoeyBmaXJzdDogdGhpcy5sb2FkVGltZW91dCB9KSwgdHVpWm9uZWZyZWUoKSk7XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiBBUEkgWWFuZGV4IFNtYXJ0Q2FwdGNoYSwg0L/RgNC4INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4INC30LDQs9GA0YPQttCw0Y8g0YHQutGA0LjQv9GCLiDQndCwINGB0LXRgNCy0LXRgNC1INC90LjRh9C10LPQviDQvdC1INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZCQoKTogT2JzZXJ2YWJsZTxTY1NtYXJ0Q2FwdGNoYUFwaT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy53aW5kb3cuc21hcnRDYXB0Y2hhKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy53aW5kb3cuc21hcnRDYXB0Y2hhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZXJnZSh0aGlzLm9ubG9hZCQoKSwgdGhpcy5zY3JpcHRzU2VydmljZS5sb2FkU2NyaXB0JCh0aGlzLnNjcmlwdFVybCkucGlwZShpZ25vcmVFbGVtZW50cygpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JbQtNGR0YIg0LLRi9C30L7QstCwINGE0YPQvdC60YbQuNC4INC40Lcg0L/QsNGA0LDQvNC10YLRgNCwIGBvbmxvYWRgINCw0LTRgNC10YHQsCDRgdC60YDQuNC/0YLQsCDQuCDQstC+0LfQstGA0LDRidCw0LXRgiBBUEksINC60L7RgtC+0YDQvtC1INGB0LrRgNC40L/RgiDQuiDRjdGC0L7QvNGDINC80L7QvNC10L3RgtGDINGB0L7Qt9C00LDQuy5cbiAgICAgKi9cbiAgICBwcml2YXRlIG9ubG9hZCQoKTogT2JzZXJ2YWJsZTxTY1NtYXJ0Q2FwdGNoYUFwaT4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8U2NTbWFydENhcHRjaGFBcGk+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLndpbmRvd1t0aGlzLm9ubG9hZENhbGxiYWNrTmFtZV0gPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMud2luZG93LnNtYXJ0Q2FwdGNoYSkge1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodGhpcy53aW5kb3cuc21hcnRDYXB0Y2hhKTtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IobmV3IEVycm9yKCdZYW5kZXggU21hcnRDYXB0Y2hhIEFQSSBpcyB1bmF2YWlsYWJsZScpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMud2luZG93W3RoaXMub25sb2FkQ2FsbGJhY2tOYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './sc-smart-captcha-load-timeout.token';
2
+ export * from './sc-smart-captcha-settings.token';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc21hcnQtY2FwdGNoYS90b2tlbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zYy1zbWFydC1jYXB0Y2hhLWxvYWQtdGltZW91dC50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3NjLXNtYXJ0LWNhcHRjaGEtc2V0dGluZ3MudG9rZW4nO1xuIl19
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Токен времени ожидания загрузки скрипта Yandex SmartCaptcha в миллисекундах.
4
+ */
5
+ export const SC_SMART_CAPTCHA_LOAD_TIMEOUT = new InjectionToken('SC_SMART_CAPTCHA_LOAD_TIMEOUT', {
6
+ factory: () => 20_000,
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1sb2FkLXRpbWVvdXQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvc21hcnQtY2FwdGNoYS90b2tlbnMvc2Mtc21hcnQtY2FwdGNoYS1sb2FkLXRpbWVvdXQudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUFTLCtCQUErQixFQUFFO0lBQ3JHLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNO0NBQ3hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDQstGA0LXQvNC10L3QuCDQvtC20LjQtNCw0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0YHQutGA0LjQv9GC0LAgWWFuZGV4IFNtYXJ0Q2FwdGNoYSDQsiDQvNC40LvQu9C40YHQtdC60YPQvdC00LDRhS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX1NNQVJUX0NBUFRDSEFfTE9BRF9USU1FT1VUID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ1NDX1NNQVJUX0NBUFRDSEFfTE9BRF9USU1FT1VUJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IDIwXzAwMCxcbn0pO1xuIl19
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Токен настроек Yandex SmartCaptcha. Задаётся приложением.
4
+ */
5
+ export const SC_SMART_CAPTCHA_SETTINGS = new InjectionToken('SC_SMART_CAPTCHA_SETTINGS');
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc21hcnQtY2FwdGNoYS1zZXR0aW5ncy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9zbWFydC1jYXB0Y2hhL3Rva2Vucy9zYy1zbWFydC1jYXB0Y2hhLXNldHRpbmdzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsMkJBQTJCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNjU21hcnRDYXB0Y2hhU2V0dGluZ3MgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLXNtYXJ0LWNhcHRjaGEtc2V0dGluZ3MnO1xuXG4vKipcbiAqINCi0L7QutC10L0g0L3QsNGB0YLRgNC+0LXQuiBZYW5kZXggU21hcnRDYXB0Y2hhLiDQl9Cw0LTQsNGR0YLRgdGPINC/0YDQuNC70L7QttC10L3QuNC10LwuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19TTUFSVF9DQVBUQ0hBX1NFVFRJTkdTID0gbmV3IEluamVjdGlvblRva2VuPFNjU21hcnRDYXB0Y2hhU2V0dGluZ3M+KCdTQ19TTUFSVF9DQVBUQ0hBX1NFVFRJTkdTJyk7XG4iXX0=
@@ -59,7 +59,7 @@ export declare class ScFeedbackFormComponent {
59
59
  */
60
60
  private readonly user$;
61
61
  /**
62
- * Поле ввода для recaptcha.
62
+ * Поле ввода токена капчи, имя `recaptcha` задано API.
63
63
  */
64
64
  protected readonly recaptchaControl: FormControl<string | null>;
65
65
  /**