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.
- package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +206 -0
- package/esm2022/lib/components/molecules/content-reaction/types.mjs +2 -0
- package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +85 -0
- package/esm2022/lib/components/molecules/docs-section/types.mjs +2 -0
- package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +354 -0
- package/esm2022/lib/components/molecules/feedback-form/types.mjs +2 -0
- package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +188 -0
- package/esm2022/lib/components/templates/docs-page/types.mjs +2 -0
- package/esm2022/lib/services/ads/types.mjs +1 -1
- package/esm2022/lib/services/feedback/config.mjs +49 -0
- package/esm2022/lib/services/feedback/feedback.service.mjs +264 -0
- package/esm2022/lib/services/feedback/index.mjs +44 -0
- package/esm2022/lib/services/feedback/types.mjs +30 -0
- package/esm2022/public-api.mjs +10 -5
- package/fesm2022/valtech-components.mjs +1184 -4
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +57 -0
- package/lib/components/molecules/content-reaction/types.d.ts +71 -0
- package/lib/components/molecules/docs-section/docs-section.component.d.ts +29 -0
- package/lib/components/molecules/docs-section/types.d.ts +27 -0
- package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +58 -0
- package/lib/components/molecules/feedback-form/types.d.ts +54 -0
- package/lib/components/templates/docs-page/docs-page.component.d.ts +54 -0
- package/lib/components/templates/docs-page/types.d.ts +69 -0
- package/lib/services/ads/types.d.ts +10 -0
- package/lib/services/feedback/config.d.ts +35 -0
- package/lib/services/feedback/feedback.service.d.ts +115 -0
- package/lib/services/feedback/index.d.ts +40 -0
- package/lib/services/feedback/types.d.ts +173 -0
- package/package.json +1 -1
- 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,
|
|
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
|