valtech-components 2.0.595 → 2.0.597

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 (31) hide show
  1. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +206 -0
  2. package/esm2022/lib/components/molecules/content-reaction/types.mjs +2 -0
  3. package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +85 -0
  4. package/esm2022/lib/components/molecules/docs-section/types.mjs +2 -0
  5. package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +354 -0
  6. package/esm2022/lib/components/molecules/feedback-form/types.mjs +2 -0
  7. package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +188 -0
  8. package/esm2022/lib/components/templates/docs-page/types.mjs +2 -0
  9. package/esm2022/lib/services/ads/types.mjs +1 -1
  10. package/esm2022/lib/services/feedback/config.mjs +49 -0
  11. package/esm2022/lib/services/feedback/feedback.service.mjs +264 -0
  12. package/esm2022/lib/services/feedback/index.mjs +44 -0
  13. package/esm2022/lib/services/feedback/types.mjs +30 -0
  14. package/esm2022/public-api.mjs +10 -5
  15. package/fesm2022/valtech-components.mjs +1184 -4
  16. package/fesm2022/valtech-components.mjs.map +1 -1
  17. package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +57 -0
  18. package/lib/components/molecules/content-reaction/types.d.ts +71 -0
  19. package/lib/components/molecules/docs-section/docs-section.component.d.ts +29 -0
  20. package/lib/components/molecules/docs-section/types.d.ts +27 -0
  21. package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +58 -0
  22. package/lib/components/molecules/feedback-form/types.d.ts +54 -0
  23. package/lib/components/templates/docs-page/docs-page.component.d.ts +54 -0
  24. package/lib/components/templates/docs-page/types.d.ts +69 -0
  25. package/lib/services/ads/types.d.ts +10 -0
  26. package/lib/services/feedback/config.d.ts +35 -0
  27. package/lib/services/feedback/feedback.service.d.ts +115 -0
  28. package/lib/services/feedback/index.d.ts +40 -0
  29. package/lib/services/feedback/types.d.ts +173 -0
  30. package/package.json +1 -1
  31. package/public-api.d.ts +9 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2RvY3MtcGFnZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgZG9jcy1wYWdlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NzUGFnZU1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFBhZ2UgdGl0bGUgZGlzcGxheWVkIGFzIGgxLlxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogTGVhZCBwYXJhZ3JhcGggYmVsb3cgdGhlIHRpdGxlLlxuICAgKi9cbiAgbGVhZD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgYmFkZ2UgZGlzcGxheWVkIG5leHQgdG8gdGl0bGUgKGUuZy4sIFwiTmV3XCIsIFwiVXBkYXRlZFwiLCBcIkJldGFcIikuXG4gICAqL1xuICBiYWRnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQmFkZ2UgY29sb3IgdmFyaWFudC5cbiAgICogQGRlZmF1bHQgJ2RlZmF1bHQnXG4gICAqL1xuICBiYWRnZUNvbG9yPzogJ2RlZmF1bHQnIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Rhbmdlcic7XG5cbiAgLyoqXG4gICAqIFByZXZpb3VzIHBhZ2UgZm9yIG5hdmlnYXRpb24uXG4gICAqL1xuICBwcmV2aW91c1BhZ2U/OiBEb2NzUGFnZUxpbms7XG5cbiAgLyoqXG4gICAqIE5leHQgcGFnZSBmb3IgbmF2aWdhdGlvbi5cbiAgICovXG4gIG5leHRQYWdlPzogRG9jc1BhZ2VMaW5rO1xuXG4gIC8qKlxuICAgKiBpMThuIGxhYmVscyBmb3IgbmF2aWdhdGlvbi5cbiAgICovXG4gIG5hdkxhYmVscz86IHtcbiAgICBwcmV2aW91cz86IHN0cmluZztcbiAgICBuZXh0Pzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUT0MgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHRvYz86IHtcbiAgICAvKipcbiAgICAgKiBUT0MgdGl0bGUuXG4gICAgICogQGRlZmF1bHQgJ09uIHRoaXMgcGFnZSdcbiAgICAgKi9cbiAgICB0aXRsZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIFRPQy5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGhpZGU/OiBib29sZWFuO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDdXN0b20gQ1NTIGNsYXNzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGluayB0byBhbm90aGVyIGRvY3VtZW50YXRpb24gcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NzUGFnZUxpbmsge1xuICAvKipcbiAgICogRGlzcGxheSB0aXRsZSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSb3V0ZSBhcnJheSBmb3IgbmF2aWdhdGlvbi5cbiAgICovXG4gIHJvdXRlOiBzdHJpbmdbXTtcbn1cbiJdfQ==
@@ -20,4 +20,4 @@ export const AD_SIZE_MAP = {
20
20
  native: 'fluid',
21
21
  custom: 'fluid',
22
22
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2Fkcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQWtKSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBbUQ7SUFDekUsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN0QixTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ3JCLGtCQUFrQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztJQUM5QixpQkFBaUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDN0IsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztJQUN2QixVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ3RCLGVBQWUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDMUIsb0JBQW9CLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ2hDLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLE9BQU87SUFDZixNQUFNLEVBQUUsT0FBTztDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZHMgVHlwZXNcbiAqXG4gKiBUaXBvcyBlIGludGVyZmFjZXMgcGFyYSBlbCBzZXJ2aWNpbyBkZSBHb29nbGUgQWRTZW5zZS5cbiAqIFNpbXBsaWZpY2FkbyBwYXJhIHVzYXIgQWRTZW5zZSBlbiBsdWdhciBkZSBHUFQgKEFkIE1hbmFnZXIpLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJR1VSQUNJT05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb25maWd1cmFjaW9uIGRlbCBzZXJ2aWNpbyBkZSBBZHMuXG4gKiBQYXNhZGEgYSBwcm92aWRlVmFsdGVjaEFkcygpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcGxpY2FjaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbHRlY2hBZHNDb25maWcge1xuICAvKiogUHVibGlzaGVyIElEIGRlIEFkU2Vuc2UgKGZvcm1hdG86IGNhLXB1Yi1YWFhYWFhYWFhYWFhYWFhYKSAqL1xuICBhZENsaWVudDogc3RyaW5nO1xuXG4gIC8qKiBIYWJpbGl0YXIgbW9kbyBkZWJ1ZyAobXVlc3RyYSBpbmZvIGRlIGFkcyBlbiBjb25zb2xhKSAqL1xuICBkZWJ1Z01vZGU/OiBib29sZWFuO1xuXG4gIC8qKiBUZXN0IG1vZGUgLSB1c2EgYWRzIGRlIHBydWViYSBkdXJhbnRlIGRlc2Fycm9sbG8gKi9cbiAgdGVzdE1vZGU/OiBib29sZWFuO1xuXG4gIC8qKiBIYWJpbGl0YXIgQXV0byBBZHMgKEdvb2dsZSBkZWNpZGUgdWJpY2FjaW9uIGF1dG9tYXRpY2FtZW50ZSkgKi9cbiAgYXV0b0Fkcz86IGJvb2xlYW47XG5cbiAgLyoqIENhbGxiYWNrIGN1YW5kbyBzZSBjYXJnYSB1biBhZCAqL1xuICBvbkFkTG9hZGVkPzogKHNsb3RJZDogc3RyaW5nLCBpc0VtcHR5OiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8qKiBDYWxsYmFjayBjdWFuZG8gZmFsbGEgdW4gYWQgKi9cbiAgb25BZEVycm9yPzogKHNsb3RJZDogc3RyaW5nLCBlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG5cbiAgLyoqIFJ1dGFzIGRvbmRlIE5PIG1vc3RyYXIgYWRzIChyZWdleCBwYXR0ZXJucykgKi9cbiAgZXhjbHVkZVJvdXRlcz86IHN0cmluZ1tdO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBRCBTTE9UU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEZvcm1hdG8gZGUgYWQgcGFyYSBBZFNlbnNlLlxuICovXG5leHBvcnQgdHlwZSBBZEZvcm1hdCA9ICdhdXRvJyB8ICdmbHVpZCcgfCAncmVjdGFuZ2xlJyB8ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG5cbi8qKlxuICogQ29uZmlndXJhY2lvbiBkZSB1biBhZCBzbG90IGluZGl2aWR1YWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRTbG90Q29uZmlnIHtcbiAgLyoqIElEIHVuaWNvIGRlbCBzbG90ICh1c2FkbyBwYXJhIGVsIGRpdiBjb250YWluZXIpICovXG4gIHNsb3RJZDogc3RyaW5nO1xuXG4gIC8qKiBBZCBTbG90IElEIGRlIEFkU2Vuc2UgKG51bWVybyBkZSB1bmlkYWQgZGUgYW51bmNpbykgKi9cbiAgYWRTbG90Pzogc3RyaW5nO1xuXG4gIC8qKiBGb3JtYXRvIGRlbCBhZCAqL1xuICBmb3JtYXQ/OiBBZEZvcm1hdDtcblxuICAvKiogUmVzcG9uc2l2ZSAtIG9jdXBhIHRvZG8gZWwgYW5jaG8gZGlzcG9uaWJsZSAqL1xuICBmdWxsV2lkdGg/OiBib29sZWFuO1xuXG4gIC8qKiBDU1MgY2xhc3MgYWRpY2lvbmFsICovXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuXG4gIC8qKiBBbHR1cmEgbWluaW1hIG1pZW50cmFzIGNhcmdhICovXG4gIG1pbkhlaWdodD86IHN0cmluZztcblxuICAvKiogTW9zdHJhciBza2VsZXRvbiBtaWVudHJhcyBjYXJnYSAqL1xuICBzaG93U2tlbGV0b24/OiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFU1RBRE9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFc3RhZG8gZGUgdW4gYWQgc2xvdC5cbiAqL1xuZXhwb3J0IHR5cGUgQWRTbG90U3RhdGUgPVxuICB8ICdpZGxlJyAvLyBObyBjYXJnYWRvXG4gIHwgJ2xvYWRpbmcnIC8vIFNjcmlwdC9hZCBjYXJnYW5kb1xuICB8ICdyZW5kZXJlZCcgLy8gQWQgdmlzaWJsZVxuICB8ICdlbXB0eScgLy8gU2luIGFkIGRpc3BvbmlibGVcbiAgfCAnaGlkZGVuJyAvLyBVc3VhcmlvIHByZW1pdW0gbyBzaW4gY29uc2VudFxuICB8ICdlcnJvcic7IC8vIEVycm9yIGRlIGNhcmdhXG5cbi8qKlxuICogRXZlbnRvIGVtaXRpZG8gcG9yIGVsIHNlcnZpY2lvIGRlIGFkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZEV2ZW50IHtcbiAgdHlwZTogJ2xvYWRlZCcgfCAnZW1wdHknIHwgJ2Vycm9yJyB8ICd2aWV3YWJsZScgfCAnY2xpY2tlZCc7XG4gIHNsb3RJZDogc3RyaW5nO1xuICB0aW1lc3RhbXA6IERhdGU7XG4gIGlzRW1wdHk/OiBib29sZWFuO1xuICBlcnJvcj86IEVycm9yO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT05TRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXN0YWRvIGRlIGNvbnNlbnQgcGFyYSBhZHMgKG1hcGVhZG8gZGVzZGUgQW5hbHl0aWNzU2VydmljZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRzQ29uc2VudFN0YXRlIHtcbiAgLyoqIFBlcm1pdGUgYWxtYWNlbmFtaWVudG8gZGUgYWRzICovXG4gIGFkU3RvcmFnZTogYm9vbGVhbjtcblxuICAvKiogUGVybWl0ZSBwZXJzb25hbGl6YWNpb24gZGUgYWRzICovXG4gIGFkUGVyc29uYWxpemF0aW9uOiBib29sZWFuO1xuXG4gIC8qKiBQZXJtaXRlIGRhdG9zIGRlIHVzdWFyaW8gcGFyYSBhZHMgKi9cbiAgYWRVc2VyRGF0YTogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQURTRU5TRSAoR29vZ2xlIEFkU2Vuc2UpIFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBBZFNlbnNlIGdsb2JhbCBhcnJheSAqL1xuZXhwb3J0IHR5cGUgQWRTZW5zZUNvbW1hbmQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuLy8gRXh0ZW5kIFdpbmRvdyBpbnRlcmZhY2UgZm9yIGFkc2J5Z29vZ2xlXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIGFkc2J5Z29vZ2xlPzogQWRTZW5zZUNvbW1hbmRbXTtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMRUdBQ1kgVFlQRVMgKG1hbnRlbmlkb3MgcGFyYSBjb21wYXRpYmlsaWRhZClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQWRGb3JtYXQgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBBZFNsb3RTaXplID1cbiAgfCAnbGVhZGVyYm9hcmQnXG4gIHwgJ2JpbGxib2FyZCdcbiAgfCAnbWVkaXVtLXJlY3RhbmdsZSdcbiAgfCAnbGFyZ2UtcmVjdGFuZ2xlJ1xuICB8ICdoYWxmLXBhZ2UnXG4gIHwgJ3NreXNjcmFwZXInXG4gIHwgJ21vYmlsZS1iYW5uZXInXG4gIHwgJ21vYmlsZS1sZWFkZXJib2FyZCdcbiAgfCAnZmx1aWQnXG4gIHwgJ25hdGl2ZSdcbiAgfCAnY3VzdG9tJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBBZFNlbnNlIGhhbmRsZXMgc2l6ZXMgYXV0b21hdGljYWxseVxuICovXG5leHBvcnQgY29uc3QgQURfU0laRV9NQVA6IFJlY29yZDxBZFNsb3RTaXplLCBbbnVtYmVyLCBudW1iZXJdIHwgJ2ZsdWlkJz4gPSB7XG4gIGxlYWRlcmJvYXJkOiBbNzI4LCA5MF0sXG4gIGJpbGxib2FyZDogWzk3MCwgMjUwXSxcbiAgJ21lZGl1bS1yZWN0YW5nbGUnOiBbMzAwLCAyNTBdLFxuICAnbGFyZ2UtcmVjdGFuZ2xlJzogWzMzNiwgMjgwXSxcbiAgJ2hhbGYtcGFnZSc6IFszMDAsIDYwMF0sXG4gIHNreXNjcmFwZXI6IFsxNjAsIDYwMF0sXG4gICdtb2JpbGUtYmFubmVyJzogWzMyMCwgNTBdLFxuICAnbW9iaWxlLWxlYWRlcmJvYXJkJzogWzMyMCwgMTAwXSxcbiAgZmx1aWQ6ICdmbHVpZCcsXG4gIG5hdGl2ZTogJ2ZsdWlkJyxcbiAgY3VzdG9tOiAnZmx1aWQnLFxufTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBOb3QgdXNlZCB3aXRoIEFkU2Vuc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaXplTWFwcGluZyB7XG4gIHZpZXdwb3J0V2lkdGg6IG51bWJlcjtcbiAgc2l6ZXM6IChbbnVtYmVyLCBudW1iZXJdIHwgJ2ZsdWlkJylbXTtcbn1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2Fkcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQThKSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBbUQ7SUFDekUsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN0QixTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ3JCLGtCQUFrQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztJQUM5QixpQkFBaUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDN0IsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztJQUN2QixVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ3RCLGVBQWUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDMUIsb0JBQW9CLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ2hDLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLE9BQU87SUFDZixNQUFNLEVBQUUsT0FBTztDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZHMgVHlwZXNcbiAqXG4gKiBUaXBvcyBlIGludGVyZmFjZXMgcGFyYSBlbCBzZXJ2aWNpbyBkZSBHb29nbGUgQWRTZW5zZS5cbiAqIFNpbXBsaWZpY2FkbyBwYXJhIHVzYXIgQWRTZW5zZSBlbiBsdWdhciBkZSBHUFQgKEFkIE1hbmFnZXIpLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJR1VSQUNJT05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb25maWd1cmFjaW9uIGRlbCBzZXJ2aWNpbyBkZSBBZHMuXG4gKiBQYXNhZGEgYSBwcm92aWRlVmFsdGVjaEFkcygpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcGxpY2FjaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbHRlY2hBZHNDb25maWcge1xuICAvKiogUHVibGlzaGVyIElEIGRlIEFkU2Vuc2UgKGZvcm1hdG86IGNhLXB1Yi1YWFhYWFhYWFhYWFhYWFhYKSAqL1xuICBhZENsaWVudDogc3RyaW5nO1xuXG4gIC8qKiBIYWJpbGl0YXIgbW9kbyBkZWJ1ZyAobXVlc3RyYSBpbmZvIGRlIGFkcyBlbiBjb25zb2xhKSAqL1xuICBkZWJ1Z01vZGU/OiBib29sZWFuO1xuXG4gIC8qKiBUZXN0IG1vZGUgLSB1c2EgYWRzIGRlIHBydWViYSBkdXJhbnRlIGRlc2Fycm9sbG8gKi9cbiAgdGVzdE1vZGU/OiBib29sZWFuO1xuXG4gIC8qKiBIYWJpbGl0YXIgQXV0byBBZHMgKEdvb2dsZSBkZWNpZGUgdWJpY2FjaW9uIGF1dG9tYXRpY2FtZW50ZSkgKi9cbiAgYXV0b0Fkcz86IGJvb2xlYW47XG5cbiAgLyoqIENhbGxiYWNrIGN1YW5kbyBzZSBjYXJnYSB1biBhZCAqL1xuICBvbkFkTG9hZGVkPzogKHNsb3RJZDogc3RyaW5nLCBpc0VtcHR5OiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8qKiBDYWxsYmFjayBjdWFuZG8gZmFsbGEgdW4gYWQgKi9cbiAgb25BZEVycm9yPzogKHNsb3RJZDogc3RyaW5nLCBlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG5cbiAgLyoqIFJ1dGFzIGRvbmRlIE5PIG1vc3RyYXIgYWRzIChyZWdleCBwYXR0ZXJucykgKi9cbiAgZXhjbHVkZVJvdXRlcz86IHN0cmluZ1tdO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBRCBTTE9UU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEZvcm1hdG8gZGUgYWQgcGFyYSBBZFNlbnNlLlxuICovXG5leHBvcnQgdHlwZSBBZEZvcm1hdCA9ICdhdXRvJyB8ICdmbHVpZCcgfCAncmVjdGFuZ2xlJyB8ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG5cbi8qKlxuICogQ29uZmlndXJhY2lvbiBkZSB1biBhZCBzbG90IGluZGl2aWR1YWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRTbG90Q29uZmlnIHtcbiAgLyoqIElEIHVuaWNvIGRlbCBzbG90ICh1c2FkbyBwYXJhIGVsIGRpdiBjb250YWluZXIpICovXG4gIHNsb3RJZDogc3RyaW5nO1xuXG4gIC8qKiBBZCBTbG90IElEIGRlIEFkU2Vuc2UgKG51bWVybyBkZSB1bmlkYWQgZGUgYW51bmNpbykgKi9cbiAgYWRTbG90Pzogc3RyaW5nO1xuXG4gIC8qKiBGb3JtYXRvIGRlbCBhZCAqL1xuICBmb3JtYXQ/OiBBZEZvcm1hdDtcblxuICAvKiogUmVzcG9uc2l2ZSAtIG9jdXBhIHRvZG8gZWwgYW5jaG8gZGlzcG9uaWJsZSAqL1xuICBmdWxsV2lkdGg/OiBib29sZWFuO1xuXG4gIC8qKiBDU1MgY2xhc3MgYWRpY2lvbmFsICovXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuXG4gIC8qKiBBbHR1cmEgbWluaW1hIG1pZW50cmFzIGNhcmdhICovXG4gIG1pbkhlaWdodD86IHN0cmluZztcblxuICAvKiogTW9zdHJhciBza2VsZXRvbiBtaWVudHJhcyBjYXJnYSAqL1xuICBzaG93U2tlbGV0b24/OiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFU1RBRE9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFc3RhZG8gZGUgdW4gYWQgc2xvdC5cbiAqL1xuZXhwb3J0IHR5cGUgQWRTbG90U3RhdGUgPVxuICB8ICdpZGxlJyAvLyBObyBjYXJnYWRvXG4gIHwgJ2xvYWRpbmcnIC8vIFNjcmlwdC9hZCBjYXJnYW5kb1xuICB8ICdyZW5kZXJlZCcgLy8gQWQgdmlzaWJsZVxuICB8ICdlbXB0eScgLy8gU2luIGFkIGRpc3BvbmlibGVcbiAgfCAnaGlkZGVuJyAvLyBVc3VhcmlvIHByZW1pdW0gbyBzaW4gY29uc2VudFxuICB8ICdlcnJvcic7IC8vIEVycm9yIGRlIGNhcmdhXG5cbi8qKlxuICogRXZlbnRvIGVtaXRpZG8gcG9yIGVsIHNlcnZpY2lvIGRlIGFkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZEV2ZW50IHtcbiAgdHlwZTogJ2xvYWRlZCcgfCAnZW1wdHknIHwgJ2Vycm9yJyB8ICd2aWV3YWJsZScgfCAnY2xpY2tlZCc7XG4gIHNsb3RJZDogc3RyaW5nO1xuICB0aW1lc3RhbXA6IERhdGU7XG4gIGlzRW1wdHk/OiBib29sZWFuO1xuICBlcnJvcj86IEVycm9yO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT05TRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXN0YWRvIGRlIGNvbnNlbnQgcGFyYSBhZHMgKG1hcGVhZG8gZGVzZGUgQW5hbHl0aWNzU2VydmljZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRzQ29uc2VudFN0YXRlIHtcbiAgLyoqIFBlcm1pdGUgYWxtYWNlbmFtaWVudG8gZGUgYWRzICovXG4gIGFkU3RvcmFnZTogYm9vbGVhbjtcblxuICAvKiogUGVybWl0ZSBwZXJzb25hbGl6YWNpb24gZGUgYWRzICovXG4gIGFkUGVyc29uYWxpemF0aW9uOiBib29sZWFuO1xuXG4gIC8qKiBQZXJtaXRlIGRhdG9zIGRlIHVzdWFyaW8gcGFyYSBhZHMgKi9cbiAgYWRVc2VyRGF0YTogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQURTRU5TRSAoR29vZ2xlIEFkU2Vuc2UpIFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBBZFNlbnNlIGdsb2JhbCBhcnJheSAqL1xuZXhwb3J0IHR5cGUgQWRTZW5zZUNvbW1hbmQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuLy8gRXh0ZW5kIFdpbmRvdyBpbnRlcmZhY2UgZm9yIGFkc2J5Z29vZ2xlIGFuZCBnb29nbGV0YWcgKEdQVClcbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgYWRzYnlnb29nbGU/OiBBZFNlbnNlQ29tbWFuZFtdO1xuICAgIGdvb2dsZXRhZz86IEdvb2dsZVRhZztcbiAgfVxufVxuXG4vKiogR29vZ2xlIFB1Ymxpc2hlciBUYWdzIChHUFQpIGludGVyZmFjZSAqL1xuZXhwb3J0IGludGVyZmFjZSBHb29nbGVUYWcge1xuICBjbWQ6IEFycmF5PCgpID0+IHZvaWQ+O1xuICBwdWJhZHMoKTogR29vZ2xlVGFnUHViQWRzO1xufVxuXG4vKiogR1BUIFB1YkFkcyBzZXJ2aWNlICovXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZVRhZ1B1YkFkcyB7XG4gIHNldFJlcXVlc3ROb25QZXJzb25hbGl6ZWRBZHModmFsdWU6IDAgfCAxKTogdm9pZDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTEVHQUNZIFRZUEVTIChtYW50ZW5pZG9zIHBhcmEgY29tcGF0aWJpbGlkYWQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFkRm9ybWF0IGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgQWRTbG90U2l6ZSA9XG4gIHwgJ2xlYWRlcmJvYXJkJ1xuICB8ICdiaWxsYm9hcmQnXG4gIHwgJ21lZGl1bS1yZWN0YW5nbGUnXG4gIHwgJ2xhcmdlLXJlY3RhbmdsZSdcbiAgfCAnaGFsZi1wYWdlJ1xuICB8ICdza3lzY3JhcGVyJ1xuICB8ICdtb2JpbGUtYmFubmVyJ1xuICB8ICdtb2JpbGUtbGVhZGVyYm9hcmQnXG4gIHwgJ2ZsdWlkJ1xuICB8ICduYXRpdmUnXG4gIHwgJ2N1c3RvbSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgQWRTZW5zZSBoYW5kbGVzIHNpemVzIGF1dG9tYXRpY2FsbHlcbiAqL1xuZXhwb3J0IGNvbnN0IEFEX1NJWkVfTUFQOiBSZWNvcmQ8QWRTbG90U2l6ZSwgW251bWJlciwgbnVtYmVyXSB8ICdmbHVpZCc+ID0ge1xuICBsZWFkZXJib2FyZDogWzcyOCwgOTBdLFxuICBiaWxsYm9hcmQ6IFs5NzAsIDI1MF0sXG4gICdtZWRpdW0tcmVjdGFuZ2xlJzogWzMwMCwgMjUwXSxcbiAgJ2xhcmdlLXJlY3RhbmdsZSc6IFszMzYsIDI4MF0sXG4gICdoYWxmLXBhZ2UnOiBbMzAwLCA2MDBdLFxuICBza3lzY3JhcGVyOiBbMTYwLCA2MDBdLFxuICAnbW9iaWxlLWJhbm5lcic6IFszMjAsIDUwXSxcbiAgJ21vYmlsZS1sZWFkZXJib2FyZCc6IFszMjAsIDEwMF0sXG4gIGZsdWlkOiAnZmx1aWQnLFxuICBuYXRpdmU6ICdmbHVpZCcsXG4gIGN1c3RvbTogJ2ZsdWlkJyxcbn07XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTm90IHVzZWQgd2l0aCBBZFNlbnNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2l6ZU1hcHBpbmcge1xuICB2aWV3cG9ydFdpZHRoOiBudW1iZXI7XG4gIHNpemVzOiAoW251bWJlciwgbnVtYmVyXSB8ICdmbHVpZCcpW107XG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { InjectionToken, makeEnvironmentProviders, } from '@angular/core';
2
+ /**
3
+ * Token de inyección para la configuración de Feedback.
4
+ */
5
+ export const VALTECH_FEEDBACK_CONFIG = new InjectionToken('ValtechFeedbackConfig');
6
+ /**
7
+ * Configuración por defecto.
8
+ */
9
+ export const DEFAULT_FEEDBACK_CONFIG = {
10
+ feedbackPrefix: '/v1/feedback',
11
+ maxAttachments: 5,
12
+ maxFileSize: 10 * 1024 * 1024, // 10MB
13
+ allowedFileTypes: ['image/*', 'video/*', 'application/pdf'],
14
+ storagePath: 'feedback',
15
+ };
16
+ /**
17
+ * Provee el servicio de feedback a la aplicación Angular.
18
+ *
19
+ * @param config - Configuración de feedback
20
+ * @returns EnvironmentProviders para usar en bootstrapApplication
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // main.ts
25
+ * import { bootstrapApplication } from '@angular/platform-browser';
26
+ * import { provideValtechFeedback } from 'valtech-components';
27
+ * import { environment } from './environments/environment';
28
+ *
29
+ * bootstrapApplication(AppComponent, {
30
+ * providers: [
31
+ * provideValtechAuth({ apiUrl: environment.apiUrl }),
32
+ * provideValtechFeedback({
33
+ * apiUrl: environment.apiUrl,
34
+ * appId: 'my-app-name',
35
+ * }),
36
+ * ],
37
+ * });
38
+ * ```
39
+ */
40
+ export function provideValtechFeedback(config) {
41
+ const mergedConfig = {
42
+ ...DEFAULT_FEEDBACK_CONFIG,
43
+ ...config,
44
+ };
45
+ return makeEnvironmentProviders([
46
+ { provide: VALTECH_FEEDBACK_CONFIG, useValue: mergedConfig },
47
+ ]);
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9mZWVkYmFjay9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGNBQWMsRUFDZCx3QkFBd0IsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFHdkI7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQsdUJBQXVCLENBQ3hCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFtQztJQUNyRSxjQUFjLEVBQUUsY0FBYztJQUM5QixjQUFjLEVBQUUsQ0FBQztJQUNqQixXQUFXLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsT0FBTztJQUN0QyxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUM7SUFDM0QsV0FBVyxFQUFFLFVBQVU7Q0FDeEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsTUFBNkI7SUFFN0IsTUFBTSxZQUFZLEdBQTBCO1FBQzFDLEdBQUcsdUJBQXVCO1FBQzFCLEdBQUcsTUFBTTtLQUNWLENBQUM7SUFFRixPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7S0FDN0QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbHRlY2hGZWVkYmFja0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRva2VuIGRlIGlueWVjY2nDs24gcGFyYSBsYSBjb25maWd1cmFjacOzbiBkZSBGZWVkYmFjay5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfRkVFREJBQ0tfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFZhbHRlY2hGZWVkYmFja0NvbmZpZz4oXG4gICdWYWx0ZWNoRmVlZGJhY2tDb25maWcnXG4pO1xuXG4vKipcbiAqIENvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9GRUVEQkFDS19DT05GSUc6IFBhcnRpYWw8VmFsdGVjaEZlZWRiYWNrQ29uZmlnPiA9IHtcbiAgZmVlZGJhY2tQcmVmaXg6ICcvdjEvZmVlZGJhY2snLFxuICBtYXhBdHRhY2htZW50czogNSxcbiAgbWF4RmlsZVNpemU6IDEwICogMTAyNCAqIDEwMjQsIC8vIDEwTUJcbiAgYWxsb3dlZEZpbGVUeXBlczogWydpbWFnZS8qJywgJ3ZpZGVvLyonLCAnYXBwbGljYXRpb24vcGRmJ10sXG4gIHN0b3JhZ2VQYXRoOiAnZmVlZGJhY2snLFxufTtcblxuLyoqXG4gKiBQcm92ZWUgZWwgc2VydmljaW8gZGUgZmVlZGJhY2sgYSBsYSBhcGxpY2FjacOzbiBBbmd1bGFyLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBmZWVkYmFja1xuICogQHJldHVybnMgRW52aXJvbm1lbnRQcm92aWRlcnMgcGFyYSB1c2FyIGVuIGJvb3RzdHJhcEFwcGxpY2F0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIG1haW4udHNcbiAqIGltcG9ydCB7IGJvb3RzdHJhcEFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG4gKiBpbXBvcnQgeyBwcm92aWRlVmFsdGVjaEZlZWRiYWNrIH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuICpcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uKEFwcENvbXBvbmVudCwge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlVmFsdGVjaEF1dGgoeyBhcGlVcmw6IGVudmlyb25tZW50LmFwaVVybCB9KSxcbiAqICAgICBwcm92aWRlVmFsdGVjaEZlZWRiYWNrKHtcbiAqICAgICAgIGFwaVVybDogZW52aXJvbm1lbnQuYXBpVXJsLFxuICogICAgICAgYXBwSWQ6ICdteS1hcHAtbmFtZScsXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hGZWVkYmFjayhcbiAgY29uZmlnOiBWYWx0ZWNoRmVlZGJhY2tDb25maWdcbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgbWVyZ2VkQ29uZmlnOiBWYWx0ZWNoRmVlZGJhY2tDb25maWcgPSB7XG4gICAgLi4uREVGQVVMVF9GRUVEQkFDS19DT05GSUcsXG4gICAgLi4uY29uZmlnLFxuICB9O1xuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHsgcHJvdmlkZTogVkFMVEVDSF9GRUVEQkFDS19DT05GSUcsIHVzZVZhbHVlOiBtZXJnZWRDb25maWcgfSxcbiAgXSk7XG59XG4iXX0=
@@ -0,0 +1,264 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { firstValueFrom } from 'rxjs';
4
+ import { VALTECH_FEEDBACK_CONFIG } from './config';
5
+ import { FirestoreService } from '../firebase/firestore.service';
6
+ import { AuthService } from '../auth/auth.service';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Servicio para gestionar feedback de usuarios.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * @Component({...})
14
+ * export class MyComponent {
15
+ * private feedbackService = inject(FeedbackService);
16
+ *
17
+ * async submitFeedback() {
18
+ * const response = await this.feedbackService.createAsync(
19
+ * 'feedback',
20
+ * 'Mi comentario',
21
+ * 'Descripción detallada...'
22
+ * );
23
+ * console.log('Feedback enviado:', response.feedbackId);
24
+ * }
25
+ * }
26
+ * ```
27
+ */
28
+ export class FeedbackService {
29
+ constructor() {
30
+ this.config = inject(VALTECH_FEEDBACK_CONFIG);
31
+ this.http = inject(HttpClient);
32
+ this.firestore = inject(FirestoreService, { optional: true });
33
+ this.auth = inject(AuthService, { optional: true });
34
+ }
35
+ /**
36
+ * URL base para endpoints de feedback.
37
+ */
38
+ get baseUrl() {
39
+ return `${this.config.apiUrl}${this.config.feedbackPrefix}`;
40
+ }
41
+ /**
42
+ * Captura el contexto del dispositivo automáticamente.
43
+ */
44
+ captureDeviceContext() {
45
+ const ua = navigator.userAgent;
46
+ return {
47
+ browser: this.detectBrowser(ua),
48
+ os: this.detectOS(ua),
49
+ viewport: `${window.innerWidth}x${window.innerHeight}`,
50
+ language: navigator.language,
51
+ userAgent: ua,
52
+ pageUrl: window.location.href,
53
+ };
54
+ }
55
+ /**
56
+ * Crea un nuevo feedback.
57
+ *
58
+ * @param type - Tipo de feedback
59
+ * @param title - Título del feedback
60
+ * @param description - Descripción detallada
61
+ * @param attachments - URLs de archivos adjuntos (opcional)
62
+ * @param contentRef - Referencia a contenido específico (opcional)
63
+ * @returns Observable con la respuesta
64
+ */
65
+ create(type, title, description, attachments = [], contentRef) {
66
+ const request = {
67
+ type,
68
+ title,
69
+ description,
70
+ attachments,
71
+ contentRef,
72
+ deviceContext: this.captureDeviceContext(),
73
+ appId: this.config.appId,
74
+ };
75
+ return this.http.post(this.baseUrl, request);
76
+ }
77
+ /**
78
+ * Crea un nuevo feedback (versión async/await).
79
+ */
80
+ async createAsync(type, title, description, attachments = [], contentRef) {
81
+ return firstValueFrom(this.create(type, title, description, attachments, contentRef));
82
+ }
83
+ /**
84
+ * Obtiene un feedback por ID (solo el propietario).
85
+ *
86
+ * @param feedbackId - ID del feedback
87
+ * @returns Observable con la respuesta
88
+ */
89
+ getById(feedbackId) {
90
+ return this.http.get(`${this.baseUrl}/${feedbackId}`);
91
+ }
92
+ /**
93
+ * Obtiene un feedback por ID (versión async/await).
94
+ */
95
+ async getByIdAsync(feedbackId) {
96
+ return firstValueFrom(this.getById(feedbackId));
97
+ }
98
+ /**
99
+ * Valida si un archivo cumple con las restricciones.
100
+ */
101
+ validateFile(file) {
102
+ // Verificar tamaño
103
+ if (file.size > this.config.maxFileSize) {
104
+ const maxSizeMB = Math.round(this.config.maxFileSize / (1024 * 1024));
105
+ return {
106
+ valid: false,
107
+ error: `El archivo excede el tamaño máximo de ${maxSizeMB}MB`,
108
+ };
109
+ }
110
+ // Verificar tipo
111
+ const allowedTypes = this.config.allowedFileTypes || [];
112
+ const isAllowed = allowedTypes.some((pattern) => {
113
+ if (pattern.endsWith('/*')) {
114
+ const baseType = pattern.replace('/*', '');
115
+ return file.type.startsWith(baseType);
116
+ }
117
+ return file.type === pattern;
118
+ });
119
+ if (!isAllowed) {
120
+ return {
121
+ valid: false,
122
+ error: 'Tipo de archivo no permitido',
123
+ };
124
+ }
125
+ return { valid: true };
126
+ }
127
+ /**
128
+ * Obtiene la configuración actual del servicio.
129
+ */
130
+ getConfig() {
131
+ return this.config;
132
+ }
133
+ // =========================================================================
134
+ // Reaction Methods (Content feedback with emojis)
135
+ // =========================================================================
136
+ /**
137
+ * Verifica si el usuario ya dio feedback para una entidad específica.
138
+ *
139
+ * Primero intenta leer de Firebase (rápido, sin latencia de red al backend).
140
+ * Si Firebase no está disponible o falla, hace fallback a la API.
141
+ *
142
+ * @param entityType - Tipo de entidad (article, docs, feature, etc.)
143
+ * @param entityId - ID de la entidad
144
+ * @returns Promise con la respuesta de verificación
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * const check = await this.feedbackService.checkFeedback('article', 'art-123');
149
+ * if (check.hasFeedback) {
150
+ * console.log('Ya dio feedback:', check.reactionValue);
151
+ * }
152
+ * ```
153
+ */
154
+ async checkFeedback(entityType, entityId) {
155
+ // 1. Intentar Firebase primero (si está disponible)
156
+ if (this.firestore && this.auth) {
157
+ try {
158
+ const userId = this.auth.user()?.userId;
159
+ if (userId) {
160
+ // Path: feedback/{entityType}/{entityId}/{userId}
161
+ // FirestoreService agrega automáticamente el prefijo apps/{appId}/
162
+ const collectionPath = `feedback/${entityType}/${entityId}`;
163
+ const doc = await this.firestore.getDoc(collectionPath, userId);
164
+ if (doc) {
165
+ return {
166
+ operationId: '',
167
+ hasFeedback: true,
168
+ feedbackId: doc.feedbackId,
169
+ type: doc.type,
170
+ reactionValue: doc.reactionValue,
171
+ createdAt: doc.createdAt?.toISOString(),
172
+ };
173
+ }
174
+ // Doc no existe = no hay feedback
175
+ return { operationId: '', hasFeedback: false };
176
+ }
177
+ }
178
+ catch (error) {
179
+ console.warn('[FeedbackService] Firebase check failed, falling back to API:', error);
180
+ // Fallback a API
181
+ }
182
+ }
183
+ // 2. Fallback: llamar API
184
+ const params = new URLSearchParams({
185
+ appId: this.config.appId,
186
+ entityType,
187
+ entityId,
188
+ });
189
+ return firstValueFrom(this.http.get(`${this.baseUrl}/check?${params}`));
190
+ }
191
+ /**
192
+ * Crea o actualiza una reacción (feedback con emoji).
193
+ *
194
+ * @param entityRef - Referencia a la entidad
195
+ * @param value - Valor de la reacción (negative, neutral, positive)
196
+ * @param comment - Comentario opcional (máx 500 caracteres)
197
+ * @returns Promise con la respuesta
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const response = await this.feedbackService.createReaction(
202
+ * { entityType: 'article', entityId: 'art-123' },
203
+ * 'positive',
204
+ * 'Muy útil!'
205
+ * );
206
+ * ```
207
+ */
208
+ async createReaction(entityRef, value, comment) {
209
+ const request = {
210
+ type: 'reaction',
211
+ entityRef,
212
+ reactionValue: value,
213
+ description: comment || '',
214
+ deviceContext: this.captureDeviceContext(),
215
+ appId: this.config.appId,
216
+ };
217
+ return firstValueFrom(this.http.post(this.baseUrl, request));
218
+ }
219
+ // =========================================================================
220
+ // Helpers privados para detección de browser/OS
221
+ // =========================================================================
222
+ detectBrowser(ua) {
223
+ if (ua.includes('Edg/'))
224
+ return 'Edge';
225
+ if (ua.includes('Chrome/'))
226
+ return 'Chrome';
227
+ if (ua.includes('Firefox/'))
228
+ return 'Firefox';
229
+ if (ua.includes('Safari/') && !ua.includes('Chrome'))
230
+ return 'Safari';
231
+ if (ua.includes('Opera') || ua.includes('OPR/'))
232
+ return 'Opera';
233
+ return 'Unknown';
234
+ }
235
+ detectOS(ua) {
236
+ if (ua.includes('Windows NT 10'))
237
+ return 'Windows 10';
238
+ if (ua.includes('Windows NT 11'))
239
+ return 'Windows 11';
240
+ if (ua.includes('Windows'))
241
+ return 'Windows';
242
+ if (ua.includes('Mac OS X')) {
243
+ const match = ua.match(/Mac OS X (\d+[._]\d+)/);
244
+ if (match) {
245
+ return `macOS ${match[1].replace('_', '.')}`;
246
+ }
247
+ return 'macOS';
248
+ }
249
+ if (ua.includes('Android'))
250
+ return 'Android';
251
+ if (ua.includes('iPhone') || ua.includes('iPad'))
252
+ return 'iOS';
253
+ if (ua.includes('Linux'))
254
+ return 'Linux';
255
+ return 'Unknown';
256
+ }
257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeedbackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
258
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeedbackService, providedIn: 'root' }); }
259
+ }
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeedbackService, decorators: [{
261
+ type: Injectable,
262
+ args: [{ providedIn: 'root' }]
263
+ }] });
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvZmVlZGJhY2svZmVlZGJhY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFhbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVUsV0FBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FzUXhEO0lBcFFDOztPQUVHO0lBQ0gsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNsQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FB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RSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9ELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUN6QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOytHQXpRVSxlQUFlO21IQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVkFMVEVDSF9GRUVEQkFDS19DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBDcmVhdGVGZWVkYmFja1JlcXVlc3QsXG4gIENyZWF0ZUZlZWRiYWNrUmVzcG9uc2UsXG4gIEdldEZlZWRiYWNrUmVzcG9uc2UsXG4gIENoZWNrRmVlZGJhY2tSZXNwb25zZSxcbiAgRGV2aWNlQ29udGV4dCxcbiAgRmVlZGJhY2tUeXBlLFxuICBDb250ZW50UmVmLFxuICBFbnRpdHlSZWYsXG4gIFJlYWN0aW9uVmFsdWUsXG4gIEZlZWRiYWNrRmlyZXN0b3JlRG9jLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZpcmVzdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9maXJlYmFzZS9maXJlc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIGdlc3Rpb25hciBmZWVkYmFjayBkZSB1c3Vhcmlvcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogQENvbXBvbmVudCh7Li4ufSlcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIHByaXZhdGUgZmVlZGJhY2tTZXJ2aWNlID0gaW5qZWN0KEZlZWRiYWNrU2VydmljZSk7XG4gKlxuICogICBhc3luYyBzdWJtaXRGZWVkYmFjaygpIHtcbiAqICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZmVlZGJhY2tTZXJ2aWNlLmNyZWF0ZUFzeW5jKFxuICogICAgICAgJ2ZlZWRiYWNrJyxcbiAqICAgICAgICdNaSBjb21lbnRhcmlvJyxcbiAqICAgICAgICdEZXNjcmlwY2nDs24gZGV0YWxsYWRhLi4uJ1xuICogICAgICk7XG4gKiAgICAgY29uc29sZS5sb2coJ0ZlZWRiYWNrIGVudmlhZG86JywgcmVzcG9uc2UuZmVlZGJhY2tJZCk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZlZWRiYWNrU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KFZBTFRFQ0hfRkVFREJBQ0tfQ09ORklHKTtcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIGZpcmVzdG9yZSA9IGluamVjdChGaXJlc3RvcmVTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIFVSTCBiYXNlIHBhcmEgZW5kcG9pbnRzIGRlIGZlZWRiYWNrLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgYmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9JHt0aGlzLmNvbmZpZy5mZWVkYmFja1ByZWZpeH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcHR1cmEgZWwgY29udGV4dG8gZGVsIGRpc3Bvc2l0aXZvIGF1dG9tw6F0aWNhbWVudGUuXG4gICAqL1xuICBjYXB0dXJlRGV2aWNlQ29udGV4dCgpOiBEZXZpY2VDb250ZXh0IHtcbiAgICBjb25zdCB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJyb3dzZXI6IHRoaXMuZGV0ZWN0QnJvd3Nlcih1YSksXG4gICAgICBvczogdGhpcy5kZXRlY3RPUyh1YSksXG4gICAgICB2aWV3cG9ydDogYCR7d2luZG93LmlubmVyV2lkdGh9eCR7d2luZG93LmlubmVySGVpZ2h0fWAsXG4gICAgICBsYW5ndWFnZTogbmF2aWdhdG9yLmxhbmd1YWdlLFxuICAgICAgdXNlckFnZW50OiB1YSxcbiAgICAgIHBhZ2VVcmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYSB1biBudWV2byBmZWVkYmFjay5cbiAgICpcbiAgICogQHBhcmFtIHR5cGUgLSBUaXBvIGRlIGZlZWRiYWNrXG4gICAqIEBwYXJhbSB0aXRsZSAtIFTDrXR1bG8gZGVsIGZlZWRiYWNrXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIERlc2NyaXBjacOzbiBkZXRhbGxhZGFcbiAgICogQHBhcmFtIGF0dGFjaG1lbnRzIC0gVVJMcyBkZSBhcmNoaXZvcyBhZGp1bnRvcyAob3BjaW9uYWwpXG4gICAqIEBwYXJhbSBjb250ZW50UmVmIC0gUmVmZXJlbmNpYSBhIGNvbnRlbmlkbyBlc3BlY8OtZmljbyAob3BjaW9uYWwpXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29uIGxhIHJlc3B1ZXN0YVxuICAgKi9cbiAgY3JlYXRlKFxuICAgIHR5cGU6IEZlZWRiYWNrVHlwZSxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM6IHN0cmluZ1tdID0gW10sXG4gICAgY29udGVudFJlZj86IENvbnRlbnRSZWZcbiAgKTogT2JzZXJ2YWJsZTxDcmVhdGVGZWVkYmFja1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdDogQ3JlYXRlRmVlZGJhY2tSZXF1ZXN0ID0ge1xuICAgICAgdHlwZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBhdHRhY2htZW50cyxcbiAgICAgIGNvbnRlbnRSZWYsXG4gICAgICBkZXZpY2VDb250ZXh0OiB0aGlzLmNhcHR1cmVEZXZpY2VDb250ZXh0KCksXG4gICAgICBhcHBJZDogdGhpcy5jb25maWcuYXBwSWQsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDcmVhdGVGZWVkYmFja1Jlc3BvbnNlPih0aGlzLmJhc2VVcmwsIHJlcXVlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWEgdW4gbnVldm8gZmVlZGJhY2sgKHZlcnNpw7NuIGFzeW5jL2F3YWl0KS5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUFzeW5jKFxuICAgIHR5cGU6IEZlZWRiYWNrVHlwZSxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM6IHN0cmluZ1tdID0gW10sXG4gICAgY29udGVudFJlZj86IENvbnRlbnRSZWZcbiAgKTogUHJvbWlzZTxDcmVhdGVGZWVkYmFja1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5jcmVhdGUodHlwZSwgdGl0bGUsIGRlc2NyaXB0aW9uLCBhdHRhY2htZW50cywgY29udGVudFJlZilcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdW4gZmVlZGJhY2sgcG9yIElEIChzb2xvIGVsIHByb3BpZXRhcmlvKS5cbiAgICpcbiAgICogQHBhcmFtIGZlZWRiYWNrSWQgLSBJRCBkZWwgZmVlZGJhY2tcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb24gbGEgcmVzcHVlc3RhXG4gICAqL1xuICBnZXRCeUlkKGZlZWRiYWNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8R2V0RmVlZGJhY2tSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEdldEZlZWRiYWNrUmVzcG9uc2U+KGAke3RoaXMuYmFzZVVybH0vJHtmZWVkYmFja0lkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdW4gZmVlZGJhY2sgcG9yIElEICh2ZXJzacOzbiBhc3luYy9hd2FpdCkuXG4gICAqL1xuICBhc3luYyBnZXRCeUlkQXN5bmMoZmVlZGJhY2tJZDogc3RyaW5nKTogUHJvbWlzZTxHZXRGZWVkYmFja1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuZ2V0QnlJZChmZWVkYmFja0lkKSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhIHNpIHVuIGFyY2hpdm8gY3VtcGxlIGNvbiBsYXMgcmVzdHJpY2Npb25lcy5cbiAgICovXG4gIHZhbGlkYXRlRmlsZShmaWxlOiBGaWxlKTogeyB2YWxpZDogYm9vbGVhbjsgZXJyb3I/OiBzdHJpbmcgfSB7XG4gICAgLy8gVmVyaWZpY2FyIHRhbWHDsW9cbiAgICBpZiAoZmlsZS5zaXplID4gdGhpcy5jb25maWcubWF4RmlsZVNpemUhKSB7XG4gICAgICBjb25zdCBtYXhTaXplTUIgPSBNYXRoLnJvdW5kKHRoaXMuY29uZmlnLm1heEZpbGVTaXplISAvICgxMDI0ICogMTAyNCkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogYEVsIGFyY2hpdm8gZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke21heFNpemVNQn1NQmAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFZlcmlmaWNhciB0aXBvXG4gICAgY29uc3QgYWxsb3dlZFR5cGVzID0gdGhpcy5jb25maWcuYWxsb3dlZEZpbGVUeXBlcyB8fCBbXTtcbiAgICBjb25zdCBpc0FsbG93ZWQgPSBhbGxvd2VkVHlwZXMuc29tZSgocGF0dGVybikgPT4ge1xuICAgICAgaWYgKHBhdHRlcm4uZW5kc1dpdGgoJy8qJykpIHtcbiAgICAgICAgY29uc3QgYmFzZVR5cGUgPSBwYXR0ZXJuLnJlcGxhY2UoJy8qJywgJycpO1xuICAgICAgICByZXR1cm4gZmlsZS50eXBlLnN0YXJ0c1dpdGgoYmFzZVR5cGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbGUudHlwZSA9PT0gcGF0dGVybjtcbiAgICB9KTtcblxuICAgIGlmICghaXNBbGxvd2VkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiAnVGlwbyBkZSBhcmNoaXZvIG5vIHBlcm1pdGlkbycsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBjb25maWd1cmFjacOzbiBhY3R1YWwgZGVsIHNlcnZpY2lvLlxuICAgKi9cbiAgZ2V0Q29uZmlnKCk6IFJlYWRvbmx5PHR5cGVvZiB0aGlzLmNvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZztcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUmVhY3Rpb24gTWV0aG9kcyAoQ29udGVudCBmZWVkYmFjayB3aXRoIGVtb2ppcylcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIHlhIGRpbyBmZWVkYmFjayBwYXJhIHVuYSBlbnRpZGFkIGVzcGVjw61maWNhLlxuICAgKlxuICAgKiBQcmltZXJvIGludGVudGEgbGVlciBkZSBGaXJlYmFzZSAocsOhcGlkbywgc2luIGxhdGVuY2lhIGRlIHJlZCBhbCBiYWNrZW5kKS5cbiAgICogU2kgRmlyZWJhc2Ugbm8gZXN0w6EgZGlzcG9uaWJsZSBvIGZhbGxhLCBoYWNlIGZhbGxiYWNrIGEgbGEgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gZW50aXR5VHlwZSAtIFRpcG8gZGUgZW50aWRhZCAoYXJ0aWNsZSwgZG9jcywgZmVhdHVyZSwgZXRjLilcbiAgICogQHBhcmFtIGVudGl0eUlkIC0gSUQgZGUgbGEgZW50aWRhZFxuICAgKiBAcmV0dXJucyBQcm9taXNlIGNvbiBsYSByZXNwdWVzdGEgZGUgdmVyaWZpY2FjacOzblxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGNoZWNrID0gYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY2hlY2tGZWVkYmFjaygnYXJ0aWNsZScsICdhcnQtMTIzJyk7XG4gICAqIGlmIChjaGVjay5oYXNGZWVkYmFjaykge1xuICAgKiAgIGNvbnNvbGUubG9nKCdZYSBkaW8gZmVlZGJhY2s6JywgY2hlY2sucmVhY3Rpb25WYWx1ZSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBjaGVja0ZlZWRiYWNrKFxuICAgIGVudGl0eVR5cGU6IHN0cmluZyxcbiAgICBlbnRpdHlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8Q2hlY2tGZWVkYmFja1Jlc3BvbnNlPiB7XG4gICAgLy8gMS4gSW50ZW50YXIgRmlyZWJhc2UgcHJpbWVybyAoc2kgZXN0w6EgZGlzcG9uaWJsZSlcbiAgICBpZiAodGhpcy5maXJlc3RvcmUgJiYgdGhpcy5hdXRoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1c2VySWQgPSB0aGlzLmF1dGgudXNlcigpPy51c2VySWQ7XG4gICAgICAgIGlmICh1c2VySWQpIHtcbiAgICAgICAgICAvLyBQYXRoOiBmZWVkYmFjay97ZW50aXR5VHlwZX0ve2VudGl0eUlkfS97dXNlcklkfVxuICAgICAgICAgIC8vIEZpcmVzdG9yZVNlcnZpY2UgYWdyZWdhIGF1dG9tw6F0aWNhbWVudGUgZWwgcHJlZmlqbyBhcHBzL3thcHBJZH0vXG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvblBhdGggPSBgZmVlZGJhY2svJHtlbnRpdHlUeXBlfS8ke2VudGl0eUlkfWA7XG4gICAgICAgICAgY29uc3QgZG9jID0gYXdhaXQgdGhpcy5maXJlc3RvcmUuZ2V0RG9jPEZlZWRiYWNrRmlyZXN0b3JlRG9jPihcbiAgICAgICAgICAgIGNvbGxlY3Rpb25QYXRoLFxuICAgICAgICAgICAgdXNlcklkXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbklkOiAnJyxcbiAgICAgICAgICAgICAgaGFzRmVlZGJhY2s6IHRydWUsXG4gICAgICAgICAgICAgIGZlZWRiYWNrSWQ6IGRvYy5mZWVkYmFja0lkLFxuICAgICAgICAgICAgICB0eXBlOiBkb2MudHlwZSBhcyBGZWVkYmFja1R5cGUsXG4gICAgICAgICAgICAgIHJlYWN0aW9uVmFsdWU6IGRvYy5yZWFjdGlvblZhbHVlIGFzIFJlYWN0aW9uVmFsdWUsXG4gICAgICAgICAgICAgIGNyZWF0ZWRBdDogZG9jLmNyZWF0ZWRBdD8udG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRG9jIG5vIGV4aXN0ZSA9IG5vIGhheSBmZWVkYmFja1xuICAgICAgICAgIHJldHVybiB7IG9wZXJhdGlvbklkOiAnJywgaGFzRmVlZGJhY2s6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW0ZlZWRiYWNrU2VydmljZV0gRmlyZWJhc2UgY2hlY2sgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gQVBJOicsIGVycm9yKTtcbiAgICAgICAgLy8gRmFsbGJhY2sgYSBBUElcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAyLiBGYWxsYmFjazogbGxhbWFyIEFQSVxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgYXBwSWQ6IHRoaXMuY29uZmlnLmFwcElkLFxuICAgICAgZW50aXR5VHlwZSxcbiAgICAgIGVudGl0eUlkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwLmdldDxDaGVja0ZlZWRiYWNrUmVzcG9uc2U+KGAke3RoaXMuYmFzZVVybH0vY2hlY2s/JHtwYXJhbXN9YClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWEgbyBhY3R1YWxpemEgdW5hIHJlYWNjacOzbiAoZmVlZGJhY2sgY29uIGVtb2ppKS5cbiAgICpcbiAgICogQHBhcmFtIGVudGl0eVJlZiAtIFJlZmVyZW5jaWEgYSBsYSBlbnRpZGFkXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbG9yIGRlIGxhIHJlYWNjacOzbiAobmVnYXRpdmUsIG5ldXRyYWwsIHBvc2l0aXZlKVxuICAgKiBAcGFyYW0gY29tbWVudCAtIENvbWVudGFyaW8gb3BjaW9uYWwgKG3DoXggNTAwIGNhcmFjdGVyZXMpXG4gICAqIEByZXR1cm5zIFByb21pc2UgY29uIGxhIHJlc3B1ZXN0YVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY3JlYXRlUmVhY3Rpb24oXG4gICAqICAgeyBlbnRpdHlUeXBlOiAnYXJ0aWNsZScsIGVudGl0eUlkOiAnYXJ0LTEyMycgfSxcbiAgICogICAncG9zaXRpdmUnLFxuICAgKiAgICdNdXkgw7p0aWwhJ1xuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVJlYWN0aW9uKFxuICAgIGVudGl0eVJlZjogRW50aXR5UmVmLFxuICAgIHZhbHVlOiBSZWFjdGlvblZhbHVlLFxuICAgIGNvbW1lbnQ/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDcmVhdGVGZWVkYmFja1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdDogQ3JlYXRlRmVlZGJhY2tSZXF1ZXN0ID0ge1xuICAgICAgdHlwZTogJ3JlYWN0aW9uJyxcbiAgICAgIGVudGl0eVJlZixcbiAgICAgIHJlYWN0aW9uVmFsdWU6IHZhbHVlLFxuICAgICAgZGVzY3JpcHRpb246IGNvbW1lbnQgfHwgJycsXG4gICAgICBkZXZpY2VDb250ZXh0OiB0aGlzLmNhcHR1cmVEZXZpY2VDb250ZXh0KCksXG4gICAgICBhcHBJZDogdGhpcy5jb25maWcuYXBwSWQsXG4gICAgfTtcblxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cC5wb3N0PENyZWF0ZUZlZWRiYWNrUmVzcG9uc2U+KHRoaXMuYmFzZVVybCwgcmVxdWVzdClcbiAgICApO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBIZWxwZXJzIHByaXZhZG9zIHBhcmEgZGV0ZWNjacOzbiBkZSBicm93c2VyL09TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBwcml2YXRlIGRldGVjdEJyb3dzZXIodWE6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHVhLmluY2x1ZGVzKCdFZGcvJykpIHJldHVybiAnRWRnZSc7XG4gICAgaWYgKHVhLmluY2x1ZGVzKCdDaHJvbWUvJykpIHJldHVybiAnQ2hyb21lJztcbiAgICBpZiAodWEuaW5jbHVkZXMoJ0ZpcmVmb3gvJykpIHJldHVybiAnRmlyZWZveCc7XG4gICAgaWYgKHVhLmluY2x1ZGVzKCdTYWZhcmkvJykgJiYgIXVhLmluY2x1ZGVzKCdDaHJvbWUnKSkgcmV0dXJuICdTYWZhcmknO1xuICAgIGlmICh1YS5pbmNsdWRlcygnT3BlcmEnKSB8fCB1YS5pbmNsdWRlcygnT1BSLycpKSByZXR1cm4gJ09wZXJhJztcbiAgICByZXR1cm4gJ1Vua25vd24nO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RPUyh1YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodWEuaW5jbHVkZXMoJ1dpbmRvd3MgTlQgMTAnKSkgcmV0dXJuICdXaW5kb3dzIDEwJztcbiAgICBpZiAodWEuaW5jbHVkZXMoJ1dpbmRvd3MgTlQgMTEnKSkgcmV0dXJuICdXaW5kb3dzIDExJztcbiAgICBpZiAodWEuaW5jbHVkZXMoJ1dpbmRvd3MnKSkgcmV0dXJuICdXaW5kb3dzJztcbiAgICBpZiAodWEuaW5jbHVkZXMoJ01hYyBPUyBYJykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gdWEubWF0Y2goL01hYyBPUyBYIChcXGQrWy5fXVxcZCspLyk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGBtYWNPUyAke21hdGNoWzFdLnJlcGxhY2UoJ18nLCAnLicpfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gJ21hY09TJztcbiAgICB9XG4gICAgaWYgKHVhLmluY2x1ZGVzKCdBbmRyb2lkJykpIHJldHVybiAnQW5kcm9pZCc7XG4gICAgaWYgKHVhLmluY2x1ZGVzKCdpUGhvbmUnKSB8fCB1YS5pbmNsdWRlcygnaVBhZCcpKSByZXR1cm4gJ2lPUyc7XG4gICAgaWYgKHVhLmluY2x1ZGVzKCdMaW51eCcpKSByZXR1cm4gJ0xpbnV4JztcbiAgICByZXR1cm4gJ1Vua25vd24nO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Valtech Feedback Service
3
+ *
4
+ * Servicio para gestionar feedback de usuarios a nivel de plataforma.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // main.ts - Configuración
9
+ * import { provideValtechFeedback } from 'valtech-components';
10
+ *
11
+ * bootstrapApplication(AppComponent, {
12
+ * providers: [
13
+ * provideValtechAuth({ apiUrl: environment.apiUrl }),
14
+ * provideValtechFeedback({
15
+ * apiUrl: environment.apiUrl,
16
+ * appId: 'my-app-name',
17
+ * }),
18
+ * ],
19
+ * });
20
+ *
21
+ * // component.ts - Uso
22
+ * import { FeedbackService } from 'valtech-components';
23
+ *
24
+ * @Component({...})
25
+ * export class MyComponent {
26
+ * private feedbackService = inject(FeedbackService);
27
+ *
28
+ * async submitFeedback() {
29
+ * const response = await this.feedbackService.createAsync(
30
+ * 'feedback',
31
+ * 'Título',
32
+ * 'Descripción...'
33
+ * );
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ // Configuration
39
+ export { VALTECH_FEEDBACK_CONFIG, provideValtechFeedback, DEFAULT_FEEDBACK_CONFIG } from './config';
40
+ // Service
41
+ export { FeedbackService } from './feedback.service';
42
+ // Types
43
+ export { DEFAULT_FEEDBACK_TYPE_OPTIONS, } from './types';
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZlZWRiYWNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFFSCxnQkFBZ0I7QUFDaEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXBHLFVBQVU7QUFDVixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsUUFBUTtBQUNSLE9BQU8sRUFZTCw2QkFBNkIsR0FDOUIsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZhbHRlY2ggRmVlZGJhY2sgU2VydmljZVxuICpcbiAqIFNlcnZpY2lvIHBhcmEgZ2VzdGlvbmFyIGZlZWRiYWNrIGRlIHVzdWFyaW9zIGEgbml2ZWwgZGUgcGxhdGFmb3JtYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gbWFpbi50cyAtIENvbmZpZ3VyYWNpw7NuXG4gKiBpbXBvcnQgeyBwcm92aWRlVmFsdGVjaEZlZWRiYWNrIH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hBdXRoKHsgYXBpVXJsOiBlbnZpcm9ubWVudC5hcGlVcmwgfSksXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hGZWVkYmFjayh7XG4gKiAgICAgICBhcGlVcmw6IGVudmlyb25tZW50LmFwaVVybCxcbiAqICAgICAgIGFwcElkOiAnbXktYXBwLW5hbWUnLFxuICogICAgIH0pLFxuICogICBdLFxuICogfSk7XG4gKlxuICogLy8gY29tcG9uZW50LnRzIC0gVXNvXG4gKiBpbXBvcnQgeyBGZWVkYmFja1NlcnZpY2UgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgTXlDb21wb25lbnQge1xuICogICBwcml2YXRlIGZlZWRiYWNrU2VydmljZSA9IGluamVjdChGZWVkYmFja1NlcnZpY2UpO1xuICpcbiAqICAgYXN5bmMgc3VibWl0RmVlZGJhY2soKSB7XG4gKiAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZlZWRiYWNrU2VydmljZS5jcmVhdGVBc3luYyhcbiAqICAgICAgICdmZWVkYmFjaycsXG4gKiAgICAgICAnVMOtdHVsbycsXG4gKiAgICAgICAnRGVzY3JpcGNpw7NuLi4uJ1xuICogICAgICk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5cbi8vIENvbmZpZ3VyYXRpb25cbmV4cG9ydCB7IFZBTFRFQ0hfRkVFREJBQ0tfQ09ORklHLCBwcm92aWRlVmFsdGVjaEZlZWRiYWNrLCBERUZBVUxUX0ZFRURCQUNLX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcblxuLy8gU2VydmljZVxuZXhwb3J0IHsgRmVlZGJhY2tTZXJ2aWNlIH0gZnJvbSAnLi9mZWVkYmFjay5zZXJ2aWNlJztcblxuLy8gVHlwZXNcbmV4cG9ydCB7XG4gIFZhbHRlY2hGZWVkYmFja0NvbmZpZyxcbiAgRmVlZGJhY2tUeXBlLFxuICBGZWVkYmFja1N0YXR1cyxcbiAgQ29udGVudFR5cGUsXG4gIENvbnRlbnRSZWYsXG4gIERldmljZUNvbnRleHQsXG4gIEZlZWRiYWNrLFxuICBDcmVhdGVGZWVkYmFja1JlcXVlc3QsXG4gIENyZWF0ZUZlZWRiYWNrUmVzcG9uc2UsXG4gIEdldEZlZWRiYWNrUmVzcG9uc2UsXG4gIEZlZWRiYWNrVHlwZU9wdGlvbixcbiAgREVGQVVMVF9GRUVEQkFDS19UWVBFX09QVElPTlMsXG59IGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Configuración por defecto de tipos de feedback.
3
+ */
4
+ export const DEFAULT_FEEDBACK_TYPE_OPTIONS = [
5
+ {
6
+ value: 'issue',
7
+ label: 'Reportar problema',
8
+ description: 'Algo no funciona correctamente',
9
+ icon: 'bug-outline',
10
+ },
11
+ {
12
+ value: 'poor-content',
13
+ label: 'Contenido incorrecto',
14
+ description: 'Información incorrecta o desactualizada',
15
+ icon: 'document-text-outline',
16
+ },
17
+ {
18
+ value: 'feedback',
19
+ label: 'Comentario general',
20
+ description: 'Tu opinión o experiencia',
21
+ icon: 'chatbubble-outline',
22
+ },
23
+ {
24
+ value: 'suggestion',
25
+ label: 'Sugerencia',
26
+ description: 'Propuesta de mejora o nueva funcionalidad',
27
+ icon: 'bulb-outline',
28
+ },
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZlZWRiYWNrL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlKQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUF5QjtJQUNqRTtRQUNFLEtBQUssRUFBRSxPQUFPO1FBQ2QsS0FBSyxFQUFFLG1CQUFtQjtRQUMxQixXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLElBQUksRUFBRSxhQUFhO0tBQ3BCO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsY0FBYztRQUNyQixLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLFdBQVcsRUFBRSx5Q0FBeUM7UUFDdEQsSUFBSSxFQUFFLHVCQUF1QjtLQUM5QjtJQUNEO1FBQ0UsS0FBSyxFQUFFLFVBQVU7UUFDakIsS0FBSyxFQUFFLG9CQUFvQjtRQUMzQixXQUFXLEVBQUUsMEJBQTBCO1FBQ3ZDLElBQUksRUFBRSxvQkFBb0I7S0FDM0I7SUFDRDtRQUNFLEtBQUssRUFBRSxZQUFZO1FBQ25CLEtBQUssRUFBRSxZQUFZO1FBQ25CLFdBQVcsRUFBRSwyQ0FBMkM7UUFDeEQsSUFBSSxFQUFFLGNBQWM7S0FDckI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmFjacOzbiBkZWwgc2VydmljaW8gZGUgRmVlZGJhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdGVjaEZlZWRiYWNrQ29uZmlnIHtcbiAgLyoqIFVSTCBiYXNlIGRlIGxhIEFQSSAqL1xuICBhcGlVcmw6IHN0cmluZztcbiAgLyoqIElEIGRlIGxhIGFwbGljYWNpw7NuIChlajogJ215LXZhbHRlY2gtYXBwJykgKi9cbiAgYXBwSWQ6IHN0cmluZztcbiAgLyoqIFByZWZpam8gcGFyYSBlbmRwb2ludHMgKGRlZmF1bHQ6ICcvdjEvZmVlZGJhY2snKSAqL1xuICBmZWVkYmFja1ByZWZpeD86IHN0cmluZztcbiAgLyoqIE7Dum1lcm8gbcOheGltbyBkZSBhZGp1bnRvcyAoZGVmYXVsdDogNSkgKi9cbiAgbWF4QXR0YWNobWVudHM/OiBudW1iZXI7XG4gIC8qKiBUYW1hw7FvIG3DoXhpbW8gcG9yIGFyY2hpdm8gZW4gYnl0ZXMgKGRlZmF1bHQ6IDEwTUIpICovXG4gIG1heEZpbGVTaXplPzogbnVtYmVyO1xuICAvKiogVGlwb3MgZGUgYXJjaGl2byBwZXJtaXRpZG9zIChkZWZhdWx0OiBbJ2ltYWdlLyonLCAndmlkZW8vKicsICdhcHBsaWNhdGlvbi9wZGYnXSkgKi9cbiAgYWxsb3dlZEZpbGVUeXBlcz86IHN0cmluZ1tdO1xuICAvKiogUnV0YSBlbiBGaXJlYmFzZSBTdG9yYWdlIHBhcmEgYWRqdW50b3MgKGRlZmF1bHQ6ICdmZWVkYmFjaycpICovXG4gIHN0b3JhZ2VQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRpcG9zIGRlIGZlZWRiYWNrIGRpc3BvbmlibGVzLlxuICovXG5leHBvcnQgdHlwZSBGZWVkYmFja1R5cGUgPVxuICB8ICdpc3N1ZSdcbiAgfCAncG9vci1jb250ZW50J1xuICB8ICdmZWVkYmFjaydcbiAgfCAnc3VnZ2VzdGlvbidcbiAgfCAncmVhY3Rpb24nO1xuXG4vKipcbiAqIFZhbG9yIGRlIHJlYWNjacOzbiAocGFyYSBmZWVkYmFjayB0aXBvIGVtb2ppKS5cbiAqL1xuZXhwb3J0IHR5cGUgUmVhY3Rpb25WYWx1ZSA9ICduZWdhdGl2ZScgfCAnbmV1dHJhbCcgfCAncG9zaXRpdmUnO1xuXG4vKipcbiAqIEVzdGFkbyBkZSB1biBmZWVkYmFjay5cbiAqL1xuZXhwb3J0IHR5cGUgRmVlZGJhY2tTdGF0dXMgPSAnbmV3JyB8ICdyZXZpZXdlZCcgfCAncmVzb2x2ZWQnO1xuXG4vKipcbiAqIFRpcG9zIGRlIGNvbnRlbmlkbyBwYXJhIHJlZmVyZW5jaWEuXG4gKi9cbmV4cG9ydCB0eXBlIENvbnRlbnRUeXBlID1cbiAgfCAnYXJ0aWNsZSdcbiAgfCAnZmFxJ1xuICB8ICduZXdzJ1xuICB8ICdwYWdlJ1xuICB8ICdwcm9kdWN0J1xuICB8ICdldmVudCdcbiAgfCAnb3RoZXInO1xuXG4vKipcbiAqIFJlZmVyZW5jaWEgYSBjb250ZW5pZG8gZXNwZWPDrWZpY28uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudFJlZiB7XG4gIGNvbnRlbnRJZDogc3RyaW5nO1xuICBjb250ZW50VHlwZTogQ29udGVudFR5cGU7XG59XG5cbi8qKlxuICogUmVmZXJlbmNpYSBhIGVudGlkYWQgKHBhcmEgcmVhY3Rpb25zIHkgZmVlZGJhY2sgZGUgY29udGVuaWRvKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlSZWYge1xuICAvKiogVGlwbyBkZSBlbnRpZGFkOiAnYXJ0aWNsZScsICdkb2NzJywgJ2ZlYXR1cmUnLCAnYnVnJywgZXRjLiAqL1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7XG4gIC8qKiBJRCBkZSBsYSBlbnRpZGFkICovXG4gIGVudGl0eUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGV4dG8gZGVsIGRpc3Bvc2l0aXZvIGRlbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUNvbnRleHQge1xuICBicm93c2VyOiBzdHJpbmc7XG4gIG9zOiBzdHJpbmc7XG4gIHZpZXdwb3J0OiBzdHJpbmc7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHVzZXJBZ2VudDogc3RyaW5nO1xuICBwYWdlVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW50cmFkYSBkZSBmZWVkYmFjayBjb21wbGV0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZWVkYmFjayB7XG4gIGZlZWRiYWNrSWQ6IHN0cmluZztcbiAgYXBwSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHR5cGU6IEZlZWRiYWNrVHlwZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgYXR0YWNobWVudHM6IHN0cmluZ1tdO1xuICBjb250ZW50UmVmPzogQ29udGVudFJlZjtcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICByZWFjdGlvblZhbHVlPzogUmVhY3Rpb25WYWx1ZTtcbiAgZGV2aWNlQ29udGV4dDogRGV2aWNlQ29udGV4dDtcbiAgc3RhdHVzOiBGZWVkYmFja1N0YXR1cztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBjcmVhciBmZWVkYmFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVGZWVkYmFja1JlcXVlc3Qge1xuICB0eXBlOiBGZWVkYmFja1R5cGU7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYXR0YWNobWVudHM/OiBzdHJpbmdbXTtcbiAgY29udGVudFJlZj86IENvbnRlbnRSZWY7XG4gIGVudGl0eVJlZj86IEVudGl0eVJlZjtcbiAgcmVhY3Rpb25WYWx1ZT86IFJlYWN0aW9uVmFsdWU7XG4gIGRldmljZUNvbnRleHQ6IERldmljZUNvbnRleHQ7XG4gIGFwcElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgYWwgY3JlYXIgZmVlZGJhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRmVlZGJhY2tSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGZlZWRiYWNrSWQ6IHN0cmluZztcbiAgc3RhdHVzOiBGZWVkYmFja1N0YXR1cztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgYWwgb2J0ZW5lciBmZWVkYmFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRGZWVkYmFja1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZmVlZGJhY2s6IEZlZWRiYWNrO1xufVxuXG4vKipcbiAqIE9wY2lvbmVzIGRlIHRpcG8gZGUgZmVlZGJhY2sgcGFyYSBVSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZWVkYmFja1R5cGVPcHRpb24ge1xuICB2YWx1ZTogRmVlZGJhY2tUeXBlO1xuICBsYWJlbDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBkZSB0aXBvcyBkZSBmZWVkYmFjay5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRkVFREJBQ0tfVFlQRV9PUFRJT05TOiBGZWVkYmFja1R5cGVPcHRpb25bXSA9IFtcbiAge1xuICAgIHZhbHVlOiAnaXNzdWUnLFxuICAgIGxhYmVsOiAnUmVwb3J0YXIgcHJvYmxlbWEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQWxnbyBubyBmdW5jaW9uYSBjb3JyZWN0YW1lbnRlJyxcbiAgICBpY29uOiAnYnVnLW91dGxpbmUnLFxuICB9LFxuICB7XG4gICAgdmFsdWU6ICdwb29yLWNvbnRlbnQnLFxuICAgIGxhYmVsOiAnQ29udGVuaWRvIGluY29ycmVjdG8nLFxuICAgIGRlc2NyaXB0aW9uOiAnSW5mb3JtYWNpw7NuIGluY29ycmVjdGEgbyBkZXNhY3R1YWxpemFkYScsXG4gICAgaWNvbjogJ2RvY3VtZW50LXRleHQtb3V0bGluZScsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogJ2ZlZWRiYWNrJyxcbiAgICBsYWJlbDogJ0NvbWVudGFyaW8gZ2VuZXJhbCcsXG4gICAgZGVzY3JpcHRpb246ICdUdSBvcGluacOzbiBvIGV4cGVyaWVuY2lhJyxcbiAgICBpY29uOiAnY2hhdGJ1YmJsZS1vdXRsaW5lJyxcbiAgfSxcbiAge1xuICAgIHZhbHVlOiAnc3VnZ2VzdGlvbicsXG4gICAgbGFiZWw6ICdTdWdlcmVuY2lhJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3B1ZXN0YSBkZSBtZWpvcmEgbyBudWV2YSBmdW5jaW9uYWxpZGFkJyxcbiAgICBpY29uOiAnYnVsYi1vdXRsaW5lJyxcbiAgfSxcbl07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDaGVjayBGZWVkYmFjayBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXNwb25zZSBhbCB2ZXJpZmljYXIgc2kgZXhpc3RlIGZlZWRiYWNrIHBhcmEgdW5hIGVudGlkYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tGZWVkYmFja1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaGFzRmVlZGJhY2s6IGJvb2xlYW47XG4gIGZlZWRiYWNrSWQ/OiBzdHJpbmc7XG4gIHR5cGU/OiBGZWVkYmFja1R5cGU7XG4gIHJlYWN0aW9uVmFsdWU/OiBSZWFjdGlvblZhbHVlO1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMaXN0IEZlZWRiYWNrIFR5cGVzIChBZG1pbilcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGxpc3RhciBmZWVkYmFjayAoYWRtaW4pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RGZWVkYmFja1JlcXVlc3Qge1xuICBhcHBJZD86IHN0cmluZztcbiAgdHlwZT86IEZlZWRiYWNrVHlwZTtcbiAgc3RhdHVzPzogRmVlZGJhY2tTdGF0dXM7XG4gIGVudGl0eVR5cGU/OiBzdHJpbmc7XG4gIGVudGl0eUlkPzogc3RyaW5nO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIGRhdGVGcm9tPzogc3RyaW5nO1xuICBkYXRlVG8/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICBuZXh0VG9rZW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgYWwgbGlzdGFyIGZlZWRiYWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RGZWVkYmFja1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZmVlZGJhY2tzOiBGZWVkYmFja1tdO1xuICBuZXh0VG9rZW4/OiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGaXJlYmFzZSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBEb2N1bWVudG8gZGUgZmVlZGJhY2sgZW4gRmlyZXN0b3JlLlxuICogVXNhZG8gcGFyYSBsZWN0dXJhIHLDoXBpZGEgZGVsIGVzdGFkbyBkZSBmZWVkYmFjayBkZWwgdXN1YXJpby5cbiAqXG4gKiBQYXRoOiBhcHBzL3thcHBJZH0vZmVlZGJhY2sve2VudGl0eVR5cGV9L3tlbnRpdHlJZH0ve3VzZXJJZH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZWVkYmFja0ZpcmVzdG9yZURvYyB7XG4gIGlkPzogc3RyaW5nO1xuICBmZWVkYmFja0lkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcmVhY3Rpb25WYWx1ZTogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBEYXRlO1xuICB1cGRhdGVkQXQ/OiBEYXRlO1xufVxuIl19