valtech-components 2.0.949 → 2.0.951

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.
@@ -42,7 +42,7 @@ export const VALTECH_FOOTER_LOGO = {
42
42
  export const VALTECH_COMPANY_LINKS = {
43
43
  // Links legales con `external: true` → abren en tab nueva (target=_blank).
44
44
  legal: [
45
- { key: 'aboutUs', url: '/legal/about', kind: 'site', external: false },
45
+ { key: 'aboutUs', url: '/about', kind: 'site', external: false },
46
46
  { key: 'privacyPolicy', url: '/legal/privacy', kind: 'legal', external: true },
47
47
  { key: 'termsConditions', url: '/legal/terms', kind: 'legal', external: true },
48
48
  { key: 'cookiesPolicy', url: '/legal/cookies', kind: 'legal', external: true },
@@ -129,4 +129,4 @@ export function buildFooterLinks(links, t, resolver) {
129
129
  };
130
130
  });
131
131
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1mb290ZXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWcvY29tcGFueS1mb290ZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEM7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixHQUFHLEVBQUUsc0RBQXNEO1FBQzNELElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0QsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLHdDQUF3QyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7SUFDNUYsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSwrQ0FBK0MsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0lBQ2pHLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsaUNBQWlDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUNqRjtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLEdBQUcsRUFBRSwwREFBMEQ7UUFDL0QsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRCxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLHFDQUFxQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Q0FDcEYsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLGVBQWUsRUFBRSxhQUFhO0lBQzlCLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFNBQVMsRUFBRSxHQUFHO0NBQ2YsQ0FBQztBQXdCRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLDJFQUEyRTtJQUMzRSxLQUFLLEVBQUU7UUFDTCxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFF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RSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxPQUFPO1lBQ0wsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNqQixLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEtBQUs7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDMUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIENvbXBhbnkgRm9vdGVyIENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUaGlzIGNvbmZpZ3VyYXRpb24gaXMgc2hhcmVkIGFjcm9zcyBhbGwgVmFsdGVjaCBwcm9kdWN0czpcbiAqIC0gdWktZG9jc1xuICogLSBzaG93Y2FzZVxuICogLSBteXZhbHRlY2ggKGNvbXBhbnkgd2Vic2l0ZSlcbiAqXG4gKiBXaGVuIGxpbmtzIG9yIHNvY2lhbCBwcm9maWxlcyBjaGFuZ2UsIHVwZGF0ZSBoZXJlIGFuZCBwdWJsaXNoIGEgbmV3IHZlcnNpb24uXG4gKi9cblxuLyoqXG4gKiBTb2NpYWwgbWVkaWEgbGlua3MgZm9yIFZhbHRlY2hcbiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfU09DSUFMX0xJTktTID0gW1xuICB7XG4gICAgaWNvbjogJ2xvZ28tZmFjZWJvb2snLFxuICAgIHVybDogJ2h0dHBzOi8vbS5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9NjE1NTc2MTA3MzQ0NzAnLFxuICAgIG5hbWU6ICdGYWNlYm9vaycsXG4gIH0sXG4gIHsgaWNvbjogJ2xvZ28taW5zdGFncmFtJywgdXJsOiAnaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS92YWx0ZWNobHRkYS8nLCBuYW1lOiAnSW5zdGFncmFtJyB9LFxuICB7IGljb246ICdsb2dvLWxpbmtlZGluJywgdXJsOiAnaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvdmFsdGVjaGx0ZGEvJywgbmFtZTogJ0xpbmtlZEluJyB9LFxuICB7IGljb246ICdsb2dvLXR3aXR0ZXInLCB1cmw6ICdodHRwczovL3R3aXR0ZXIuY29tL3ZhbHRlY2hsdGRhJywgbmFtZTogJ1R3aXR0ZXInIH0sXG4gIHtcbiAgICBpY29uOiAnbG9nby15b3V0dWJlJyxcbiAgICB1cmw6ICdodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDdUY0RkdkVGlVWHhBTngxSFM0V2k1UScsXG4gICAgbmFtZTogJ1lvdVR1YmUnLFxuICB9LFxuICB7IGljb246ICdsb2dvLXRpa3RvaycsIHVybDogJ2h0dHBzOi8vd3d3LnRpa3Rvay5jb20vQHZhbHRlY2hsdGRhJywgbmFtZTogJ1Rpa1RvaycgfSxcbl07XG5cbi8qKlxuICogRm9vdGVyIGxvZ28gY29uZmlndXJhdGlvblxuICogVXNlcyBDU1MgdmFyaWFibGUgZm9yIGF1dG9tYXRpYyB0aGVtZS1hd2FyZSBsb2dvIHN3aXRjaGluZ1xuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GT09URVJfTE9HTyA9IHtcbiAgbG9nb0Nzc1ZhcmlhYmxlOiAnLS1tYWluLWxvZ28nLFxuICBsb2dvQWx0OiAnVmFsdGVjaCBMb2dvJyxcbiAgbG9nb1JvdXRlOiAnLycsXG59O1xuXG4vKipcbiAqIENvbXBhbnkgbGluayBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFueUxpbmsge1xuICAvKiogaTE4biBrZXkgZm9yIHRoZSBsaW5rIHRleHQgKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBVUkwgcGF0aCAocmVsYXRpdmUpIG9yIGFic29sdXRlIFVSTCAqL1xuICB1cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIEhpbnQgZm9yIGBMZWdhbExpbmtTZXJ2aWNlYCBhYm91dCB3aGljaCBhcHAgb3ducyB0aGlzIGxpbmsgaW4gYSBtdWx0aS1hcHAgZmFjdG9yeTpcbiAgICogLSBgJ2xlZ2FsJ2Ag4oCUIGNhbm9uaWNhbCBsZWdhbCBjb250ZW50ICh0ZXJtcywgcHJpdmFjeSwg4oCmKSDigJQgbGl2ZXMgb24gbWFpbiBzaXRlXG4gICAqIC0gYCdzaXRlJ2AgIOKAlCBtYXJrZXRpbmcvaW5mbyBwYWdlcyAoYWJvdXQsIGJsb2csIOKApikg4oCUIGxpdmVzIG9uIG1haW4gc2l0ZVxuICAgKiAtIGAnc3VwcG9ydCdgIOKAlCBzdXBwb3J0L2hlbHAg4oCUIHR5cGljYWxseSBwZXItYXBwIChlYWNoIHByb2R1Y3QgaGFzIG93biBzdXBwb3J0KVxuICAgKlxuICAgKiBJbiBzYXRlbGxpdGUgYXBwcyB3aXRoIGBwcm92aWRlVmFsdGVjaExlZ2FsKHsgYmFzZVVybCB9KWAsIGxpbmtzIHdpdGgga2luZFxuICAgKiBgJ2xlZ2FsJ2Agb3IgYCdzaXRlJ2AgZ2V0IHJld3JpdHRlbiB0byB0aGUgbWFpbiBzaXRlIFVSTC5cbiAgICovXG4gIGtpbmQ/OiAnbGVnYWwnIHwgJ3NpdGUnIHwgJ3N1cHBvcnQnO1xuICAvKiogRm9yY2Ugb3BlbnMgaW4gYSBuZXcgdGFiLiBSZXNvbHZlciBtYXkgYWxzbyBzZXQgdGhpcyB3aGVuIHJld3JpdGluZyBjcm9zcy1vcmlnaW4uICovXG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb21wYW55IGxpbmtzIG9yZ2FuaXplZCBieSBzZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxURUNIX0NPTVBBTllfTElOS1MgPSB7XG4gIC8vIExpbmtzIGxlZ2FsZXMgY29uIGBleHRlcm5hbDogdHJ1ZWAg4oaSIGFicmVuIGVuIHRhYiBudWV2YSAodGFyZ2V0PV9ibGFuaykuXG4gIGxlZ2FsOiBbXG4gICAgeyBrZXk6ICdhYm91dFVzJywgdXJsOiAnL2xlZ2FsL2Fib3V0Jywga2luZDogJ3NpdGUnLCBleHRlcm5hbDogZmFsc2UgfSxcbiAgICB7IGtleTogJ3ByaXZhY3lQb2xpY3knLCB1cmw6ICcvbGVnYWwvcHJpdmFjeScsIGtpbmQ6ICdsZWdhbCcsIGV4dGVybmFsOiB0cnVlIH0sXG4gICAgeyBrZXk6ICd0ZXJtc0NvbmRpdGlvbnMnLCB1cmw6ICcvbGVnYWwvdGVybXMnLCBraW5kOiAnbGVnYWwnLCBleHRlcm5hbDogdHJ1ZSB9LFxuICAgIHsga2V5OiAnY29va2llc1BvbGljeScsIHVybDogJy9sZWdhbC9jb29raWVzJywga2luZDogJ2xlZ2FsJywgZXh0ZXJuYWw6IHRydWUgfSxcbiAgICB7IGtleTogJ2xlZ2FsTm90aWNlJywgdXJsOiAnL2xlZ2FsL2xlZ2FsLW5vdGljZScsIGtpbmQ6ICdsZWdhbCcsIGV4dGVybmFsOiB0cnVlIH0sXG4gIF0gYXMgQ29tcGFueUxpbmtbXSxcbiAgc3VwcG9ydDogW1xuICAgIHsga2V5OiAnY29udGFjdFN1cHBvcnQnLCB1cmw6ICcvY29udGFjdCcsIGtpbmQ6ICdzdXBwb3J0JywgZXh0ZXJuYWw6IGZhbHNlIH0sXG4gICAgLy8gRkFRIOKAlCBww6FnaW5hIGRlZGljYWRhIGAvZmFxYCAoa2luZCAnc2l0ZSc6IHZpdmUgZW4gZWwgc2l0aW8gY29ycG9yYXRpdm87XG4gICAgLy8gZW4gYXBwcyBzYXRlbGxpdGUgc2UgcmVlc2NyaWJlIGFsIG1haW4gc2l0ZSB2w61hIExlZ2FsTGlua1NlcnZpY2UpLlxuICAgIHsga2V5OiAnZmFxJywgdXJsOiAnL2ZhcScsIGtpbmQ6ICdzaXRlJywgZXh0ZXJuYWw6IGZhbHNlIH0sXG4gICAgeyBrZXk6ICdmZWVkYmFjaycsIHVybDogJy9mZWVkYmFjaycsIGtpbmQ6ICdzdXBwb3J0JywgZXh0ZXJuYWw6IGZhbHNlIH0sXG4gIF0gYXMgQ29tcGFueUxpbmtbXSxcbn07XG5cbi8qKlxuICogaTE4biBrZXlzIGZvciB0aGUgZm9vdGVyIChMYXlvdXQgbmFtZXNwYWNlKVxuICogVGhlc2Ugc2hvdWxkIGJlIHJlZ2lzdGVyZWQgaW4gZWFjaCBhcHAncyBpMThuIGNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GT09URVJfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICAvLyBGb290ZXIgdGl0bGVzXG4gICAgZm9vdGVyTGVmdFRpdGxlOiAnSGFibGVtb3MnLFxuICAgIGZvb3RlclJpZ2h0VGl0bGU6ICdTb3BvcnRlJyxcbiAgICAvLyBMZWdhbCBsaW5rc1xuICAgIGFib3V0VXM6ICdOb3NvdHJvcycsXG4gICAgcHJpdmFjeVBvbGljeTogJ1BvbMOtdGljYSBkZSBwcml2YWNpZGFkJyxcbiAgICB0ZXJtc0NvbmRpdGlvbnM6ICdUw6lybWlub3MgeSBjb25kaWNpb25lcycsXG4gICAgY29va2llc1BvbGljeTogJ1BvbMOtdGljYSBkZSBjb29raWVzJyxcbiAgICBsZWdhbE5vdGljZTogJ0F2aXNvIGxlZ2FsJyxcbiAgICAvLyBTdXBwb3J0IGxpbmtzXG4gICAgY29udGFjdFN1cHBvcnQ6ICdDb250YWN0YXIgYSBzb3BvcnRlJyxcbiAgICBmYXE6ICdQcmVndW50YXMgZnJlY3VlbnRlcycsXG4gICAgZmVlZGJhY2s6ICdGZWVkYmFjaycsXG4gICAgLy8gQ29weXJpZ2h0IC0ge3llYXJ9IGlzIHJlcGxhY2VkIHdpdGggY3VycmVudCB5ZWFyXG4gICAgY29weXJpZ2h0VGV4dDpcbiAgICAgICfCqSB7eWVhcn0sIFNvbHVjaW9uZXMgVmFsdGVjaCBMdGRhLiBvIHN1cyBlbXByZXNhcyBhZmlsaWFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyByZXNlcnZhZG9zLicsXG4gIH0sXG4gIGVuOiB7XG4gICAgLy8gRm9vdGVyIHRpdGxlc1xuICAgIGZvb3RlckxlZnRUaXRsZTogXCJMZXQncyB0YWxrXCIsXG4gICAgZm9vdGVyUmlnaHRUaXRsZTogJ1N1cHBvcnQnLFxuICAgIC8vIExlZ2FsIGxpbmtzXG4gICAgYWJvdXRVczogJ0Fib3V0IFVzJyxcbiAgICBwcml2YWN5UG9saWN5OiAnUHJpdmFjeSBQb2xpY3knLFxuICAgIHRlcm1zQ29uZGl0aW9uczogJ1Rlcm1zICYgQ29uZGl0aW9ucycsXG4gICAgY29va2llc1BvbGljeTogJ0Nvb2tpZSBQb2xpY3knLFxuICAgIGxlZ2FsTm90aWNlOiAnTGVnYWwgTm90aWNlJyxcbiAgICAvLyBTdXBwb3J0IGxpbmtzXG4gICAgY29udGFjdFN1cHBvcnQ6ICdDb250YWN0IFN1cHBvcnQnLFxuICAgIGZhcTogJ0ZBUScsXG4gICAgZmVlZGJhY2s6ICdGZWVkYmFjaycsXG4gICAgLy8gQ29weXJpZ2h0IC0ge3llYXJ9IGlzIHJlcGxhY2VkIHdpdGggY3VycmVudCB5ZWFyXG4gICAgY29weXJpZ2h0VGV4dDogJ8KpIHt5ZWFyfSwgU29sdWNpb25lcyBWYWx0ZWNoIEx0ZGEuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLicsXG4gIH0sXG59O1xuXG4vKipcbiAqIERlZmF1bHQgbGFuZ3VhZ2Ugc2VsZWN0b3IgY29uZmlndXJhdGlvbiBmb3IgZm9vdGVyXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxURUNIX0xBTkdVQUdFX1NFTEVDVE9SID0ge1xuICBtb2RlOiAnZGVmYXVsdCcgYXMgY29uc3QsXG4gIHNob3dGbGFnczogdHJ1ZSxcbiAgc2hvd0xhYmVsOiBmYWxzZSxcbiAgZmlsbDogJ291dGxpbmUnIGFzIGNvbnN0LFxuICBzaXplOiAnZGVmYXVsdCcgYXMgY29uc3QsXG59O1xuXG4vKipcbiAqIE9wdGlvbmFsIFVSTCByZXNvbHZlciBhcHBsaWVkIHBlciBsaW5rIChlLmcuIGBMZWdhbExpbmtTZXJ2aWNlLnJlc29sdmUuYmluZChzdmMpYCkuXG4gKiBSZXR1cm5zIGB7IHVybCwgZXh0ZXJuYWw/IH1gIHRvIGFsbG93IGNyb3NzLW9yaWdpbiByZXdyaXRlcy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcGFueUxpbmtSZXNvbHZlciA9IChsaW5rOiBDb21wYW55TGluaykgPT4geyB1cmw6IHN0cmluZzsgZXh0ZXJuYWw/OiBib29sZWFuIH07XG5cbi8qKlxuICogSGVscGVyIHRvIGJ1aWxkIGZvb3RlciBsaW5rcyBmcm9tIGNvbXBhbnkgbGlua3MgY29uZmlnLlxuICpcbiAqIEBwYXJhbSBsaW5rcyAtIEFycmF5IG9mIGNvbXBhbnkgbGlua3NcbiAqIEBwYXJhbSB0IC0gVHJhbnNsYXRpb24gZnVuY3Rpb24gKGtleTogc3RyaW5nKSA9PiBzdHJpbmdcbiAqIEBwYXJhbSByZXNvbHZlciAtIE9wdGlvbmFsIHJlc29sdmVyIOKAlCB0eXBpY2FsbHkgYChsaW5rKSA9PiAoeyB1cmw6IGxlZ2FsTGluay5yZXNvbHZlKGxpbmsudXJsKSwgZXh0ZXJuYWw6IGxlZ2FsTGluay5pc0V4dGVybmFsKGxpbmsudXJsKSAmJiAobGluay5raW5kID09PSAnbGVnYWwnIHx8IGxpbmsua2luZCA9PT0gJ3NpdGUnKSB9KWAgdG8gcG9pbnQgY3Jvc3MtYXBwIGxlZ2FsL3NpdGUgbGlua3MgdG8gdGhlIG1haW4gc2l0ZS5cbiAqIEByZXR1cm5zIEFycmF5IG9mIGxpbmsgb2JqZWN0cyByZWFkeSBmb3IgRm9vdGVyTGlua3NNZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGb290ZXJMaW5rcyhcbiAgbGlua3M6IENvbXBhbnlMaW5rW10sXG4gIHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICByZXNvbHZlcj86IENvbXBhbnlMaW5rUmVzb2x2ZXJcbik6IEFycmF5PHtcbiAgdXJsOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbiAgZG93bmxvYWQ6IGJvb2xlYW47XG4gIGhvdmVyYWJsZTogYm9vbGVhbjtcbiAgdGFyZ2V0Pzogc3RyaW5nO1xufT4ge1xuICByZXR1cm4gbGlua3MubWFwKGxpbmsgPT4ge1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZXIgPyByZXNvbHZlcihsaW5rKSA6IHsgdXJsOiBsaW5rLnVybCwgZXh0ZXJuYWw6IGxpbmsuZXh0ZXJuYWwgfTtcbiAgICBjb25zdCBleHRlcm5hbCA9IHJlc29sdmVkLmV4dGVybmFsID8/IGxpbmsuZXh0ZXJuYWw7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVybDogcmVzb2x2ZWQudXJsLFxuICAgICAgdGV4dDogdChsaW5rLmtleSksXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgdG9rZW46ICcnLFxuICAgICAgZG93bmxvYWQ6IGZhbHNlLFxuICAgICAgaG92ZXJhYmxlOiB0cnVlLFxuICAgICAgLi4uKGV4dGVybmFsID8geyB0YXJnZXQ6ICdfYmxhbmsnIH0gOiB7fSksXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1mb290ZXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWcvY29tcGFueS1mb290ZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEM7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixHQUFHLEVBQUUsc0RBQXNEO1FBQzNELElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0QsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLHdDQUF3QyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7SUFDNUYsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSwrQ0FBK0MsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0lBQ2pHLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsaUNBQWlDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUNqRjtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLEdBQUcsRUFBRSwwREFBMEQ7UUFDL0QsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRCxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLHFDQUFxQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Q0FDcEYsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLGVBQWUsRUFBRSxhQUFhO0lBQzlCLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFNBQVMsRUFBRSxHQUFHO0NBQ2YsQ0FBQztBQXdCRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLDJFQUEyRTtJQUMzRSxLQUFLLEVBQUU7UUFDTCxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFF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RSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxPQUFPO1lBQ0wsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNqQixLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEtBQUs7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDMUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIENvbXBhbnkgRm9vdGVyIENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUaGlzIGNvbmZpZ3VyYXRpb24gaXMgc2hhcmVkIGFjcm9zcyBhbGwgVmFsdGVjaCBwcm9kdWN0czpcbiAqIC0gdWktZG9jc1xuICogLSBzaG93Y2FzZVxuICogLSBteXZhbHRlY2ggKGNvbXBhbnkgd2Vic2l0ZSlcbiAqXG4gKiBXaGVuIGxpbmtzIG9yIHNvY2lhbCBwcm9maWxlcyBjaGFuZ2UsIHVwZGF0ZSBoZXJlIGFuZCBwdWJsaXNoIGEgbmV3IHZlcnNpb24uXG4gKi9cblxuLyoqXG4gKiBTb2NpYWwgbWVkaWEgbGlua3MgZm9yIFZhbHRlY2hcbiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfU09DSUFMX0xJTktTID0gW1xuICB7XG4gICAgaWNvbjogJ2xvZ28tZmFjZWJvb2snLFxuICAgIHVybDogJ2h0dHBzOi8vbS5mYWNlYm9vay5jb20vcHJvZmlsZS5waHA/aWQ9NjE1NTc2MTA3MzQ0NzAnLFxuICAgIG5hbWU6ICdGYWNlYm9vaycsXG4gIH0sXG4gIHsgaWNvbjogJ2xvZ28taW5zdGFncmFtJywgdXJsOiAnaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS92YWx0ZWNobHRkYS8nLCBuYW1lOiAnSW5zdGFncmFtJyB9LFxuICB7IGljb246ICdsb2dvLWxpbmtlZGluJywgdXJsOiAnaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvdmFsdGVjaGx0ZGEvJywgbmFtZTogJ0xpbmtlZEluJyB9LFxuICB7IGljb246ICdsb2dvLXR3aXR0ZXInLCB1cmw6ICdodHRwczovL3R3aXR0ZXIuY29tL3ZhbHRlY2hsdGRhJywgbmFtZTogJ1R3aXR0ZXInIH0sXG4gIHtcbiAgICBpY29uOiAnbG9nby15b3V0dWJlJyxcbiAgICB1cmw6ICdodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDdUY0RkdkVGlVWHhBTngxSFM0V2k1UScsXG4gICAgbmFtZTogJ1lvdVR1YmUnLFxuICB9LFxuICB7IGljb246ICdsb2dvLXRpa3RvaycsIHVybDogJ2h0dHBzOi8vd3d3LnRpa3Rvay5jb20vQHZhbHRlY2hsdGRhJywgbmFtZTogJ1Rpa1RvaycgfSxcbl07XG5cbi8qKlxuICogRm9vdGVyIGxvZ28gY29uZmlndXJhdGlvblxuICogVXNlcyBDU1MgdmFyaWFibGUgZm9yIGF1dG9tYXRpYyB0aGVtZS1hd2FyZSBsb2dvIHN3aXRjaGluZ1xuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GT09URVJfTE9HTyA9IHtcbiAgbG9nb0Nzc1ZhcmlhYmxlOiAnLS1tYWluLWxvZ28nLFxuICBsb2dvQWx0OiAnVmFsdGVjaCBMb2dvJyxcbiAgbG9nb1JvdXRlOiAnLycsXG59O1xuXG4vKipcbiAqIENvbXBhbnkgbGluayBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFueUxpbmsge1xuICAvKiogaTE4biBrZXkgZm9yIHRoZSBsaW5rIHRleHQgKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBVUkwgcGF0aCAocmVsYXRpdmUpIG9yIGFic29sdXRlIFVSTCAqL1xuICB1cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIEhpbnQgZm9yIGBMZWdhbExpbmtTZXJ2aWNlYCBhYm91dCB3aGljaCBhcHAgb3ducyB0aGlzIGxpbmsgaW4gYSBtdWx0aS1hcHAgZmFjdG9yeTpcbiAgICogLSBgJ2xlZ2FsJ2Ag4oCUIGNhbm9uaWNhbCBsZWdhbCBjb250ZW50ICh0ZXJtcywgcHJpdmFjeSwg4oCmKSDigJQgbGl2ZXMgb24gbWFpbiBzaXRlXG4gICAqIC0gYCdzaXRlJ2AgIOKAlCBtYXJrZXRpbmcvaW5mbyBwYWdlcyAoYWJvdXQsIGJsb2csIOKApikg4oCUIGxpdmVzIG9uIG1haW4gc2l0ZVxuICAgKiAtIGAnc3VwcG9ydCdgIOKAlCBzdXBwb3J0L2hlbHAg4oCUIHR5cGljYWxseSBwZXItYXBwIChlYWNoIHByb2R1Y3QgaGFzIG93biBzdXBwb3J0KVxuICAgKlxuICAgKiBJbiBzYXRlbGxpdGUgYXBwcyB3aXRoIGBwcm92aWRlVmFsdGVjaExlZ2FsKHsgYmFzZVVybCB9KWAsIGxpbmtzIHdpdGgga2luZFxuICAgKiBgJ2xlZ2FsJ2Agb3IgYCdzaXRlJ2AgZ2V0IHJld3JpdHRlbiB0byB0aGUgbWFpbiBzaXRlIFVSTC5cbiAgICovXG4gIGtpbmQ/OiAnbGVnYWwnIHwgJ3NpdGUnIHwgJ3N1cHBvcnQnO1xuICAvKiogRm9yY2Ugb3BlbnMgaW4gYSBuZXcgdGFiLiBSZXNvbHZlciBtYXkgYWxzbyBzZXQgdGhpcyB3aGVuIHJld3JpdGluZyBjcm9zcy1vcmlnaW4uICovXG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb21wYW55IGxpbmtzIG9yZ2FuaXplZCBieSBzZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxURUNIX0NPTVBBTllfTElOS1MgPSB7XG4gIC8vIExpbmtzIGxlZ2FsZXMgY29uIGBleHRlcm5hbDogdHJ1ZWAg4oaSIGFicmVuIGVuIHRhYiBudWV2YSAodGFyZ2V0PV9ibGFuaykuXG4gIGxlZ2FsOiBbXG4gICAgeyBrZXk6ICdhYm91dFVzJywgdXJsOiAnL2Fib3V0Jywga2luZDogJ3NpdGUnLCBleHRlcm5hbDogZmFsc2UgfSxcbiAgICB7IGtleTogJ3ByaXZhY3lQb2xpY3knLCB1cmw6ICcvbGVnYWwvcHJpdmFjeScsIGtpbmQ6ICdsZWdhbCcsIGV4dGVybmFsOiB0cnVlIH0sXG4gICAgeyBrZXk6ICd0ZXJtc0NvbmRpdGlvbnMnLCB1cmw6ICcvbGVnYWwvdGVybXMnLCBraW5kOiAnbGVnYWwnLCBleHRlcm5hbDogdHJ1ZSB9LFxuICAgIHsga2V5OiAnY29va2llc1BvbGljeScsIHVybDogJy9sZWdhbC9jb29raWVzJywga2luZDogJ2xlZ2FsJywgZXh0ZXJuYWw6IHRydWUgfSxcbiAgICB7IGtleTogJ2xlZ2FsTm90aWNlJywgdXJsOiAnL2xlZ2FsL2xlZ2FsLW5vdGljZScsIGtpbmQ6ICdsZWdhbCcsIGV4dGVybmFsOiB0cnVlIH0sXG4gIF0gYXMgQ29tcGFueUxpbmtbXSxcbiAgc3VwcG9ydDogW1xuICAgIHsga2V5OiAnY29udGFjdFN1cHBvcnQnLCB1cmw6ICcvY29udGFjdCcsIGtpbmQ6ICdzdXBwb3J0JywgZXh0ZXJuYWw6IGZhbHNlIH0sXG4gICAgLy8gRkFRIOKAlCBww6FnaW5hIGRlZGljYWRhIGAvZmFxYCAoa2luZCAnc2l0ZSc6IHZpdmUgZW4gZWwgc2l0aW8gY29ycG9yYXRpdm87XG4gICAgLy8gZW4gYXBwcyBzYXRlbGxpdGUgc2UgcmVlc2NyaWJlIGFsIG1haW4gc2l0ZSB2w61hIExlZ2FsTGlua1NlcnZpY2UpLlxuICAgIHsga2V5OiAnZmFxJywgdXJsOiAnL2ZhcScsIGtpbmQ6ICdzaXRlJywgZXh0ZXJuYWw6IGZhbHNlIH0sXG4gICAgeyBrZXk6ICdmZWVkYmFjaycsIHVybDogJy9mZWVkYmFjaycsIGtpbmQ6ICdzdXBwb3J0JywgZXh0ZXJuYWw6IGZhbHNlIH0sXG4gIF0gYXMgQ29tcGFueUxpbmtbXSxcbn07XG5cbi8qKlxuICogaTE4biBrZXlzIGZvciB0aGUgZm9vdGVyIChMYXlvdXQgbmFtZXNwYWNlKVxuICogVGhlc2Ugc2hvdWxkIGJlIHJlZ2lzdGVyZWQgaW4gZWFjaCBhcHAncyBpMThuIGNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GT09URVJfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICAvLyBGb290ZXIgdGl0bGVzXG4gICAgZm9vdGVyTGVmdFRpdGxlOiAnSGFibGVtb3MnLFxuICAgIGZvb3RlclJpZ2h0VGl0bGU6ICdTb3BvcnRlJyxcbiAgICAvLyBMZWdhbCBsaW5rc1xuICAgIGFib3V0VXM6ICdOb3NvdHJvcycsXG4gICAgcHJpdmFjeVBvbGljeTogJ1BvbMOtdGljYSBkZSBwcml2YWNpZGFkJyxcbiAgICB0ZXJtc0NvbmRpdGlvbnM6ICdUw6lybWlub3MgeSBjb25kaWNpb25lcycsXG4gICAgY29va2llc1BvbGljeTogJ1BvbMOtdGljYSBkZSBjb29raWVzJyxcbiAgICBsZWdhbE5vdGljZTogJ0F2aXNvIGxlZ2FsJyxcbiAgICAvLyBTdXBwb3J0IGxpbmtzXG4gICAgY29udGFjdFN1cHBvcnQ6ICdDb250YWN0YXIgYSBzb3BvcnRlJyxcbiAgICBmYXE6ICdQcmVndW50YXMgZnJlY3VlbnRlcycsXG4gICAgZmVlZGJhY2s6ICdGZWVkYmFjaycsXG4gICAgLy8gQ29weXJpZ2h0IC0ge3llYXJ9IGlzIHJlcGxhY2VkIHdpdGggY3VycmVudCB5ZWFyXG4gICAgY29weXJpZ2h0VGV4dDpcbiAgICAgICfCqSB7eWVhcn0sIFNvbHVjaW9uZXMgVmFsdGVjaCBMdGRhLiBvIHN1cyBlbXByZXNhcyBhZmlsaWFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyByZXNlcnZhZG9zLicsXG4gIH0sXG4gIGVuOiB7XG4gICAgLy8gRm9vdGVyIHRpdGxlc1xuICAgIGZvb3RlckxlZnRUaXRsZTogXCJMZXQncyB0YWxrXCIsXG4gICAgZm9vdGVyUmlnaHRUaXRsZTogJ1N1cHBvcnQnLFxuICAgIC8vIExlZ2FsIGxpbmtzXG4gICAgYWJvdXRVczogJ0Fib3V0IFVzJyxcbiAgICBwcml2YWN5UG9saWN5OiAnUHJpdmFjeSBQb2xpY3knLFxuICAgIHRlcm1zQ29uZGl0aW9uczogJ1Rlcm1zICYgQ29uZGl0aW9ucycsXG4gICAgY29va2llc1BvbGljeTogJ0Nvb2tpZSBQb2xpY3knLFxuICAgIGxlZ2FsTm90aWNlOiAnTGVnYWwgTm90aWNlJyxcbiAgICAvLyBTdXBwb3J0IGxpbmtzXG4gICAgY29udGFjdFN1cHBvcnQ6ICdDb250YWN0IFN1cHBvcnQnLFxuICAgIGZhcTogJ0ZBUScsXG4gICAgZmVlZGJhY2s6ICdGZWVkYmFjaycsXG4gICAgLy8gQ29weXJpZ2h0IC0ge3llYXJ9IGlzIHJlcGxhY2VkIHdpdGggY3VycmVudCB5ZWFyXG4gICAgY29weXJpZ2h0VGV4dDogJ8KpIHt5ZWFyfSwgU29sdWNpb25lcyBWYWx0ZWNoIEx0ZGEuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLicsXG4gIH0sXG59O1xuXG4vKipcbiAqIERlZmF1bHQgbGFuZ3VhZ2Ugc2VsZWN0b3IgY29uZmlndXJhdGlvbiBmb3IgZm9vdGVyXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxURUNIX0xBTkdVQUdFX1NFTEVDVE9SID0ge1xuICBtb2RlOiAnZGVmYXVsdCcgYXMgY29uc3QsXG4gIHNob3dGbGFnczogdHJ1ZSxcbiAgc2hvd0xhYmVsOiBmYWxzZSxcbiAgZmlsbDogJ291dGxpbmUnIGFzIGNvbnN0LFxuICBzaXplOiAnZGVmYXVsdCcgYXMgY29uc3QsXG59O1xuXG4vKipcbiAqIE9wdGlvbmFsIFVSTCByZXNvbHZlciBhcHBsaWVkIHBlciBsaW5rIChlLmcuIGBMZWdhbExpbmtTZXJ2aWNlLnJlc29sdmUuYmluZChzdmMpYCkuXG4gKiBSZXR1cm5zIGB7IHVybCwgZXh0ZXJuYWw/IH1gIHRvIGFsbG93IGNyb3NzLW9yaWdpbiByZXdyaXRlcy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcGFueUxpbmtSZXNvbHZlciA9IChsaW5rOiBDb21wYW55TGluaykgPT4geyB1cmw6IHN0cmluZzsgZXh0ZXJuYWw/OiBib29sZWFuIH07XG5cbi8qKlxuICogSGVscGVyIHRvIGJ1aWxkIGZvb3RlciBsaW5rcyBmcm9tIGNvbXBhbnkgbGlua3MgY29uZmlnLlxuICpcbiAqIEBwYXJhbSBsaW5rcyAtIEFycmF5IG9mIGNvbXBhbnkgbGlua3NcbiAqIEBwYXJhbSB0IC0gVHJhbnNsYXRpb24gZnVuY3Rpb24gKGtleTogc3RyaW5nKSA9PiBzdHJpbmdcbiAqIEBwYXJhbSByZXNvbHZlciAtIE9wdGlvbmFsIHJlc29sdmVyIOKAlCB0eXBpY2FsbHkgYChsaW5rKSA9PiAoeyB1cmw6IGxlZ2FsTGluay5yZXNvbHZlKGxpbmsudXJsKSwgZXh0ZXJuYWw6IGxlZ2FsTGluay5pc0V4dGVybmFsKGxpbmsudXJsKSAmJiAobGluay5raW5kID09PSAnbGVnYWwnIHx8IGxpbmsua2luZCA9PT0gJ3NpdGUnKSB9KWAgdG8gcG9pbnQgY3Jvc3MtYXBwIGxlZ2FsL3NpdGUgbGlua3MgdG8gdGhlIG1haW4gc2l0ZS5cbiAqIEByZXR1cm5zIEFycmF5IG9mIGxpbmsgb2JqZWN0cyByZWFkeSBmb3IgRm9vdGVyTGlua3NNZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGb290ZXJMaW5rcyhcbiAgbGlua3M6IENvbXBhbnlMaW5rW10sXG4gIHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICByZXNvbHZlcj86IENvbXBhbnlMaW5rUmVzb2x2ZXJcbik6IEFycmF5PHtcbiAgdXJsOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbiAgZG93bmxvYWQ6IGJvb2xlYW47XG4gIGhvdmVyYWJsZTogYm9vbGVhbjtcbiAgdGFyZ2V0Pzogc3RyaW5nO1xufT4ge1xuICByZXR1cm4gbGlua3MubWFwKGxpbmsgPT4ge1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZXIgPyByZXNvbHZlcihsaW5rKSA6IHsgdXJsOiBsaW5rLnVybCwgZXh0ZXJuYWw6IGxpbmsuZXh0ZXJuYWwgfTtcbiAgICBjb25zdCBleHRlcm5hbCA9IHJlc29sdmVkLmV4dGVybmFsID8/IGxpbmsuZXh0ZXJuYWw7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVybDogcmVzb2x2ZWQudXJsLFxuICAgICAgdGV4dDogdChsaW5rLmtleSksXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgdG9rZW46ICcnLFxuICAgICAgZG93bmxvYWQ6IGZhbHNlLFxuICAgICAgaG92ZXJhYmxlOiB0cnVlLFxuICAgICAgLi4uKGV4dGVybmFsID8geyB0YXJnZXQ6ICdfYmxhbmsnIH0gOiB7fSksXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
@@ -56,10 +56,10 @@ export const VALTECH_SITE_PATHS = {
56
56
  support: '/contact',
57
57
  contact: '/contact',
58
58
  faq: '/faq',
59
- about: '/legal/about',
59
+ about: '/about',
60
60
  terms: '/legal/terms',
61
61
  privacy: '/legal/privacy',
62
62
  cookies: '/legal/cookies',
63
63
  legalNotice: '/legal/legal-notice',
64
64
  };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1saW5rcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbmZpZy9zaXRlLWxpbmtzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUtIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQStCO0lBQy9ELEtBQUssRUFBRSx1QkFBdUI7SUFDOUIsR0FBRyxFQUFFLCtCQUErQjtJQUNwQyxJQUFJLEVBQUUsdUJBQXVCO0NBQzlCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFnQztJQUNoRSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUN4QyxPQUFPLHFCQUFxQixDQUFDLEdBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLElBQUksRUFBRSxHQUFHO0lBQ1QsT0FBTyxFQUFFLFVBQVU7SUFDbkIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsR0FBRyxFQUFFLE1BQU07SUFDWCxLQUFLLEVBQUUsY0FBYztJQUNyQixLQUFLLEVBQUUsY0FBYztJQUNyQixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsV0FBVyxFQUFFLHFCQUFxQjtDQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFuZGFyZCBjcm9zcy1hcHAgc2l0ZSBsaW5rcyAoZW52LWF3YXJlKVxuICpcbiAqIEVuIGVsIGZhY3RvcnkgTXlWYWx0ZWNoIGNhZGEgcHJvZHVjdG8gc2F0w6lsaXRlIChzaG93Y2FzZSwgc2lnaWZ5LCDigKYpIGVubGF6YSBhXG4gKiBgd2ViYCDigJRsYSBsYW5kaW5nIGRlIG1hcmNh4oCUIHBhcmEgc29wb3J0ZSwgY29udGFjdG8geSBjb250ZW5pZG8gbGVnYWwuIGB3ZWJgXG4gKiBlcyBlbCBkdWXDsW8gY2Fuw7NuaWNvIGRlIGVzYXMgcnV0YXMuIEVzdGUgbcOzZHVsbyBjZW50cmFsaXphOlxuICpcbiAqICAxLiBFbCBtYXBhIGFtYmllbnRlIOKGkiBiYXNlIFVSTCBkZSBgd2ViYCAoYFZBTFRFQ0hfV0VCX0JBU0VfVVJMU2ApLlxuICogIDIuIEVsIGNhdMOhbG9nbyBkZSBwYXRocyBlc3TDoW5kYXIgcXVlIHZpdmVuIGVuIGB3ZWJgIChgVkFMVEVDSF9TSVRFX1BBVEhTYCkuXG4gKlxuICogRWwgYW1iaWVudGUgc2UgZGVjaWRlIGVuIEJVSUxEIFRJTUUgKGNhbXBvIGB2YWx0ZWNoRW52YCBlbiBlbCBgZW52aXJvbm1lbnQqLnRzYFxuICogZGUgY2FkYSBhcHApLCBpZ3VhbCBxdWUgYGFwaVVybGAuIEVzIGVsIG1lY2FuaXNtbyBtw6FzIGNvbmZpYWJsZTogZGV0ZWN0YXIgcG9yXG4gKiBob3N0bmFtZSBlbiBydW50aW1lIHNlIHJvbXBlIGNvbiBkb21pbmlvcyBjdXN0b20gLyBgd2ViLmFwcGAgLyB2YXJpYW50ZXMgZGVcbiAqIGxvY2FsaG9zdC5cbiAqXG4gKiBMYSByZXNvbHVjacOzbiByZWFsIChqb2luIGJhc2VVcmwgKyBwYXRoLCBhYnJpciBlbiB0YWIgbnVldmEsIGA/bGFuZz1gKSBsYSBoYWNlXG4gKiBgTGVnYWxMaW5rU2VydmljZWA7IGVzdGUgbcOzZHVsbyBzb2xvIGxlIGVudHJlZ2EgZWwgYGJhc2VVcmxgIGNvcnJlY3RvIHBvciBlbnYuXG4gKlxuICogQHNlZSBwcm92aWRlVmFsdGVjaFNpdGUg4oCUIHdpcmluZyBkZSB1bmEgc29sYSBsw61uZWEgcGFyYSBhcHBzIHNhdMOpbGl0ZS5cbiAqL1xuXG4vKiogQW1iaWVudGVzIGRlbCBmYWN0b3J5LiBDb2luY2lkZSBjb24gbG9zIGBlbnZpcm9ubWVudCoudHNgIGRlIGNhZGEgYXBwLiAqL1xuZXhwb3J0IHR5cGUgVmFsdGVjaEVudiA9ICdsb2NhbCcgfCAnZGV2JyB8ICdwcm9kJztcblxuLyoqXG4gKiBCYXNlIFVSTCBkZSBgd2ViYCAobGFuZGluZyBkZSBtYXJjYSkgcG9yIGFtYmllbnRlLlxuICpcbiAqIC0gYGxvY2FsYCDihpIgYG5nIHNlcnZlYCBkZSBgd2ViYCAocHVlcnRvIDgxMDApLlxuICogLSBgZGV2YCAgIOKGkiBwcm95ZWN0byBGaXJlYmFzZSBgbXl2YWx0ZWNoLWRldmAuXG4gKiAtIGBwcm9kYCAg4oaSIGRvbWluaW8gY3VzdG9tIGRlIHByb2R1Y2Npw7NuLlxuICpcbiAqIFNpbiB0cmFpbGluZyBzbGFzaCAobG8gYXN1bWUgYExlZ2FsTGlua1NlcnZpY2VgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfV0VCX0JBU0VfVVJMUzogUmVjb3JkPFZhbHRlY2hFbnYsIHN0cmluZz4gPSB7XG4gIGxvY2FsOiAnaHR0cDovL2xvY2FsaG9zdDo4MTAwJyxcbiAgZGV2OiAnaHR0cHM6Ly9teXZhbHRlY2gtZGV2LndlYi5hcHAnLFxuICBwcm9kOiAnaHR0cHM6Ly9teXZhbHRlY2guY29tJyxcbn07XG5cbi8qKlxuICogUmVzdWVsdmUgbGEgYmFzZSBVUkwgZGUgYHdlYmAgcGFyYSB1biBhbWJpZW50ZS5cbiAqXG4gKiBGYWxsYmFjayBhIGBwcm9kYCBjdWFuZG8gZWwgZW52IGVzIGRlc2Nvbm9jaWRvIG8gZmFsdGE6IGFudGUgbGEgZHVkYSwgYXB1bnRhclxuICogYSBwcm9kdWNjacOzbiBlcyBsbyBzZWd1cm8gKG51bmNhIGVubGF6YSBhIHVuIGhvc3QgbG9jYWwvZGV2IGluZXhpc3RlbnRlKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVXZWJCYXNlVXJsKGVudj86IFZhbHRlY2hFbnYgfCBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKGVudiAmJiBlbnYgaW4gVkFMVEVDSF9XRUJfQkFTRV9VUkxTKSB7XG4gICAgcmV0dXJuIFZBTFRFQ0hfV0VCX0JBU0VfVVJMU1tlbnYgYXMgVmFsdGVjaEVudl07XG4gIH1cbiAgcmV0dXJuIFZBTFRFQ0hfV0VCX0JBU0VfVVJMUy5wcm9kO1xufVxuXG4vKipcbiAqIENhdMOhbG9nbyBkZSBwYXRocyBlc3TDoW5kYXIgcXVlIHZpdmVuIGVuIGB3ZWJgLiBMYXMgYXBwcyByZXN1ZWx2ZW4gZXN0b3NcbiAqIGNvbnRyYSBsYSBiYXNlIFVSTCBkZWwgYW1iaWVudGUgdsOtYSBgTGVnYWxMaW5rU2VydmljZS5yZXNvbHZlKHBhdGgpYC5cbiAqXG4gKiBNYW50ZW5lciBhbGluZWFkbyBjb24gbGFzIHJ1dGFzIHJlYWxlcyBkZSBgd2ViL3NyYy9hcHAvYXBwLnJvdXRlcy50c2AgeSBjb25cbiAqIGBWQUxURUNIX0NPTVBBTllfTElOS1NgIChmb290ZXIpLlxuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9TSVRFX1BBVEhTID0ge1xuICBob21lOiAnLycsXG4gIHN1cHBvcnQ6ICcvY29udGFjdCcsXG4gIGNvbnRhY3Q6ICcvY29udGFjdCcsXG4gIGZhcTogJy9mYXEnLFxuICBhYm91dDogJy9sZWdhbC9hYm91dCcsXG4gIHRlcm1zOiAnL2xlZ2FsL3Rlcm1zJyxcbiAgcHJpdmFjeTogJy9sZWdhbC9wcml2YWN5JyxcbiAgY29va2llczogJy9sZWdhbC9jb29raWVzJyxcbiAgbGVnYWxOb3RpY2U6ICcvbGVnYWwvbGVnYWwtbm90aWNlJyxcbn0gYXMgY29uc3Q7XG5cbi8qKiBDbGF2ZSBkZSB1biBsaW5rIGVzdMOhbmRhciBkZWwgc2l0aW8gKGAnaG9tZScgfCAnc3VwcG9ydCcgfCDigKZgKS4gKi9cbmV4cG9ydCB0eXBlIFZhbHRlY2hTaXRlUGF0aEtleSA9IGtleW9mIHR5cGVvZiBWQUxURUNIX1NJVEVfUEFUSFM7XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1saW5rcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbmZpZy9zaXRlLWxpbmtzLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUtIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQStCO0lBQy9ELEtBQUssRUFBRSx1QkFBdUI7SUFDOUIsR0FBRyxFQUFFLCtCQUErQjtJQUNwQyxJQUFJLEVBQUUsdUJBQXVCO0NBQzlCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFnQztJQUNoRSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUN4QyxPQUFPLHFCQUFxQixDQUFDLEdBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLElBQUksRUFBRSxHQUFHO0lBQ1QsT0FBTyxFQUFFLFVBQVU7SUFDbkIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsR0FBRyxFQUFFLE1BQU07SUFDWCxLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxjQUFjO0lBQ3JCLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixXQUFXLEVBQUUscUJBQXFCO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YW5kYXJkIGNyb3NzLWFwcCBzaXRlIGxpbmtzIChlbnYtYXdhcmUpXG4gKlxuICogRW4gZWwgZmFjdG9yeSBNeVZhbHRlY2ggY2FkYSBwcm9kdWN0byBzYXTDqWxpdGUgKHNob3djYXNlLCBzaWdpZnksIOKApikgZW5sYXphIGFcbiAqIGB3ZWJgIOKAlGxhIGxhbmRpbmcgZGUgbWFyY2HigJQgcGFyYSBzb3BvcnRlLCBjb250YWN0byB5IGNvbnRlbmlkbyBsZWdhbC4gYHdlYmBcbiAqIGVzIGVsIGR1ZcOxbyBjYW7Ds25pY28gZGUgZXNhcyBydXRhcy4gRXN0ZSBtw7NkdWxvIGNlbnRyYWxpemE6XG4gKlxuICogIDEuIEVsIG1hcGEgYW1iaWVudGUg4oaSIGJhc2UgVVJMIGRlIGB3ZWJgIChgVkFMVEVDSF9XRUJfQkFTRV9VUkxTYCkuXG4gKiAgMi4gRWwgY2F0w6Fsb2dvIGRlIHBhdGhzIGVzdMOhbmRhciBxdWUgdml2ZW4gZW4gYHdlYmAgKGBWQUxURUNIX1NJVEVfUEFUSFNgKS5cbiAqXG4gKiBFbCBhbWJpZW50ZSBzZSBkZWNpZGUgZW4gQlVJTEQgVElNRSAoY2FtcG8gYHZhbHRlY2hFbnZgIGVuIGVsIGBlbnZpcm9ubWVudCoudHNgXG4gKiBkZSBjYWRhIGFwcCksIGlndWFsIHF1ZSBgYXBpVXJsYC4gRXMgZWwgbWVjYW5pc21vIG3DoXMgY29uZmlhYmxlOiBkZXRlY3RhciBwb3JcbiAqIGhvc3RuYW1lIGVuIHJ1bnRpbWUgc2Ugcm9tcGUgY29uIGRvbWluaW9zIGN1c3RvbSAvIGB3ZWIuYXBwYCAvIHZhcmlhbnRlcyBkZVxuICogbG9jYWxob3N0LlxuICpcbiAqIExhIHJlc29sdWNpw7NuIHJlYWwgKGpvaW4gYmFzZVVybCArIHBhdGgsIGFicmlyIGVuIHRhYiBudWV2YSwgYD9sYW5nPWApIGxhIGhhY2VcbiAqIGBMZWdhbExpbmtTZXJ2aWNlYDsgZXN0ZSBtw7NkdWxvIHNvbG8gbGUgZW50cmVnYSBlbCBgYmFzZVVybGAgY29ycmVjdG8gcG9yIGVudi5cbiAqXG4gKiBAc2VlIHByb3ZpZGVWYWx0ZWNoU2l0ZSDigJQgd2lyaW5nIGRlIHVuYSBzb2xhIGzDrW5lYSBwYXJhIGFwcHMgc2F0w6lsaXRlLlxuICovXG5cbi8qKiBBbWJpZW50ZXMgZGVsIGZhY3RvcnkuIENvaW5jaWRlIGNvbiBsb3MgYGVudmlyb25tZW50Ki50c2AgZGUgY2FkYSBhcHAuICovXG5leHBvcnQgdHlwZSBWYWx0ZWNoRW52ID0gJ2xvY2FsJyB8ICdkZXYnIHwgJ3Byb2QnO1xuXG4vKipcbiAqIEJhc2UgVVJMIGRlIGB3ZWJgIChsYW5kaW5nIGRlIG1hcmNhKSBwb3IgYW1iaWVudGUuXG4gKlxuICogLSBgbG9jYWxgIOKGkiBgbmcgc2VydmVgIGRlIGB3ZWJgIChwdWVydG8gODEwMCkuXG4gKiAtIGBkZXZgICAg4oaSIHByb3llY3RvIEZpcmViYXNlIGBteXZhbHRlY2gtZGV2YC5cbiAqIC0gYHByb2RgICDihpIgZG9taW5pbyBjdXN0b20gZGUgcHJvZHVjY2nDs24uXG4gKlxuICogU2luIHRyYWlsaW5nIHNsYXNoIChsbyBhc3VtZSBgTGVnYWxMaW5rU2VydmljZWApLlxuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9XRUJfQkFTRV9VUkxTOiBSZWNvcmQ8VmFsdGVjaEVudiwgc3RyaW5nPiA9IHtcbiAgbG9jYWw6ICdodHRwOi8vbG9jYWxob3N0OjgxMDAnLFxuICBkZXY6ICdodHRwczovL215dmFsdGVjaC1kZXYud2ViLmFwcCcsXG4gIHByb2Q6ICdodHRwczovL215dmFsdGVjaC5jb20nLFxufTtcblxuLyoqXG4gKiBSZXN1ZWx2ZSBsYSBiYXNlIFVSTCBkZSBgd2ViYCBwYXJhIHVuIGFtYmllbnRlLlxuICpcbiAqIEZhbGxiYWNrIGEgYHByb2RgIGN1YW5kbyBlbCBlbnYgZXMgZGVzY29ub2NpZG8gbyBmYWx0YTogYW50ZSBsYSBkdWRhLCBhcHVudGFyXG4gKiBhIHByb2R1Y2Npw7NuIGVzIGxvIHNlZ3VybyAobnVuY2EgZW5sYXphIGEgdW4gaG9zdCBsb2NhbC9kZXYgaW5leGlzdGVudGUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdlYkJhc2VVcmwoZW52PzogVmFsdGVjaEVudiB8IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICBpZiAoZW52ICYmIGVudiBpbiBWQUxURUNIX1dFQl9CQVNFX1VSTFMpIHtcbiAgICByZXR1cm4gVkFMVEVDSF9XRUJfQkFTRV9VUkxTW2VudiBhcyBWYWx0ZWNoRW52XTtcbiAgfVxuICByZXR1cm4gVkFMVEVDSF9XRUJfQkFTRV9VUkxTLnByb2Q7XG59XG5cbi8qKlxuICogQ2F0w6Fsb2dvIGRlIHBhdGhzIGVzdMOhbmRhciBxdWUgdml2ZW4gZW4gYHdlYmAuIExhcyBhcHBzIHJlc3VlbHZlbiBlc3Rvc1xuICogY29udHJhIGxhIGJhc2UgVVJMIGRlbCBhbWJpZW50ZSB2w61hIGBMZWdhbExpbmtTZXJ2aWNlLnJlc29sdmUocGF0aClgLlxuICpcbiAqIE1hbnRlbmVyIGFsaW5lYWRvIGNvbiBsYXMgcnV0YXMgcmVhbGVzIGRlIGB3ZWIvc3JjL2FwcC9hcHAucm91dGVzLnRzYCB5IGNvblxuICogYFZBTFRFQ0hfQ09NUEFOWV9MSU5LU2AgKGZvb3RlcikuXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxURUNIX1NJVEVfUEFUSFMgPSB7XG4gIGhvbWU6ICcvJyxcbiAgc3VwcG9ydDogJy9jb250YWN0JyxcbiAgY29udGFjdDogJy9jb250YWN0JyxcbiAgZmFxOiAnL2ZhcScsXG4gIGFib3V0OiAnL2Fib3V0JyxcbiAgdGVybXM6ICcvbGVnYWwvdGVybXMnLFxuICBwcml2YWN5OiAnL2xlZ2FsL3ByaXZhY3knLFxuICBjb29raWVzOiAnL2xlZ2FsL2Nvb2tpZXMnLFxuICBsZWdhbE5vdGljZTogJy9sZWdhbC9sZWdhbC1ub3RpY2UnLFxufSBhcyBjb25zdDtcblxuLyoqIENsYXZlIGRlIHVuIGxpbmsgZXN0w6FuZGFyIGRlbCBzaXRpbyAoYCdob21lJyB8ICdzdXBwb3J0JyB8IOKApmApLiAqL1xuZXhwb3J0IHR5cGUgVmFsdGVjaFNpdGVQYXRoS2V5ID0ga2V5b2YgdHlwZW9mIFZBTFRFQ0hfU0lURV9QQVRIUztcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL29yZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3JnVHlwZSA9ICdQUklWQVRFJyB8ICdQVUJMSUMnIHwgJ1BFUlNPTkFMJyB8ICdCVVNJTkVTUyc7XG5leHBvcnQgdHlwZSBPcmdQbGFuID0gJ2ZyZWUnIHwgJ3BybycgfCAnZW50ZXJwcmlzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5pemF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgcGxhbjogT3JnUGxhbjtcbiAgb3duZXJJZDogc3RyaW5nO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TXlPcmdzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBvcmdhbml6YXRpb25zOiBPcmdhbml6YXRpb25bXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgb3JnYW5pemF0aW9uOiBPcmdhbml6YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludml0ZVVzZXJSZXF1ZXN0IHtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52aXRlVXNlclJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaW52aXRlVXJsOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlYXZlT3JnUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGxlZnRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ01lbWJlciB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZ1tdO1xuICBhc3NpZ25lZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RPcmdNZW1iZXJzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZW1iZXJzOiBPcmdNZW1iZXJbXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlbmRpbmdJbnZpdGF0aW9uIHtcbiAgb3JnSWQ6IHN0cmluZztcbiAgb3JnTmFtZTogc3RyaW5nO1xuICByb2xlSWQ6IHN0cmluZztcbiAgaW52aXRlcklkOiBzdHJpbmc7XG4gIGludml0ZXJOYW1lOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQZW5kaW5nSW52aXRhdGlvbnNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGl0ZW1zOiBQZW5kaW5nSW52aXRhdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VwdEludml0YXRpb25SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIG9yZ05hbWU6IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnUm9sZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdE9yZ1JvbGVzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICByb2xlczogT3JnUm9sZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZU1lbWJlclJvbGVSZXF1ZXN0IHtcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlTWVtYmVyUm9sZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIHJvbGVJZDogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL29yZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3JnVHlwZSA9ICdQUklWQVRFJyB8ICdQVUJMSUMnIHwgJ1BFUlNPTkFMJyB8ICdCVVNJTkVTUyc7XG5leHBvcnQgdHlwZSBPcmdQbGFuID0gJ2ZyZWUnIHwgJ3BybycgfCAnZW50ZXJwcmlzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5pemF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgcGxhbjogT3JnUGxhbjtcbiAgb3duZXJJZDogc3RyaW5nO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TXlPcmdzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBvcmdhbml6YXRpb25zOiBPcmdhbml6YXRpb25bXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgb3JnYW5pemF0aW9uOiBPcmdhbml6YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludml0ZVVzZXJSZXF1ZXN0IHtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52aXRlVXNlclJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaW52aXRlVXJsOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlYXZlT3JnUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGxlZnRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ01lbWJlciB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZ1tdO1xuICBhc3NpZ25lZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RPcmdNZW1iZXJzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZW1iZXJzOiBPcmdNZW1iZXJbXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlbmRpbmdJbnZpdGF0aW9uIHtcbiAgb3JnSWQ6IHN0cmluZztcbiAgb3JnTmFtZTogc3RyaW5nO1xuICByb2xlSWQ6IHN0cmluZztcbiAgaW52aXRlcklkOiBzdHJpbmc7XG4gIGludml0ZXJOYW1lOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQZW5kaW5nSW52aXRhdGlvbnNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGl0ZW1zOiBQZW5kaW5nSW52aXRhdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VwdEludml0YXRpb25SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIG9yZ05hbWU6IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnUm9sZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIGlzU3lzdGVtPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0T3JnUm9sZXNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHJvbGVzOiBPcmdSb2xlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlTWVtYmVyUm9sZVJlcXVlc3Qge1xuICByb2xlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VNZW1iZXJSb2xlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.949';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45NDknO1xuIl19
5
+ export const VERSION = '2.0.951';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45NTEnO1xuIl19
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, InjectionToken, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, Injectable, DestroyRef, Inject, signal, computed, PLATFORM_ID, isDevMode, Optional, runInInjectionContext, effect, Pipe, TemplateRef, ViewContainerRef, input, Directive, EventEmitter, Component, Input, Output, ChangeDetectionStrategy, HostBinding, HostListener, NgZone, ViewChild, ChangeDetectorRef, ContentChild, output, ElementRef, Injector, isSignal, ViewEncapsulation } from '@angular/core';
2
+ import { inject, InjectionToken, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, Injectable, DestroyRef, Inject, signal, computed, PLATFORM_ID, isDevMode, Optional, runInInjectionContext, effect, Pipe, TemplateRef, ViewContainerRef, input, Directive, EventEmitter, Component, Input, Output, ChangeDetectionStrategy, HostBinding, HostListener, NgZone, ViewChild, ChangeDetectorRef, output, ContentChild, ElementRef, Injector, isSignal, ViewEncapsulation } from '@angular/core';
3
3
  import { BehaviorSubject, throwError, Subject, map, distinctUntilChanged, filter as filter$1, take as take$1, firstValueFrom, of, from, EMPTY, Observable, interval, debounceTime, switchMap as switchMap$1, catchError as catchError$1, takeUntil, isObservable, shareReplay, race, timer, forkJoin } from 'rxjs';
4
4
  import { catchError, switchMap, finalize, filter, take, map as map$1, tap, retry, timeout, debounceTime as debounceTime$1, takeUntil as takeUntil$1 } from 'rxjs/operators';
5
5
  import * as i1$3 from '@angular/common/http';
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
54
54
  * Current version of valtech-components.
55
55
  * This is automatically updated during the publish process.
56
56
  */
57
- const VERSION = '2.0.949';
57
+ const VERSION = '2.0.951';
58
58
 
59
59
  // Control de estado de refresco (singleton a nivel de módulo)
60
60
  let isRefreshing = false;
@@ -25120,91 +25120,126 @@ const FEATURES_LIST_DEFAULTS = {
25120
25120
  mode: 'vertical',
25121
25121
  gap: 'medium',
25122
25122
  alignment: 'start',
25123
+ imageShape: 'square',
25124
+ maxVisible: 0,
25123
25125
  };
25124
25126
 
25127
+ /**
25128
+ * Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
25129
+ * namespace `FeaturesList`. Cubre los labels de "ver más"/"ver menos".
25130
+ */
25131
+ const FEATURES_LIST_I18N = {
25132
+ es: { showMore: 'Ver más', showLess: 'Ver menos' },
25133
+ en: { showMore: 'Show more', showLess: 'Show less' },
25134
+ };
25125
25135
  /**
25126
25136
  * val-features-list
25127
25137
  *
25128
- * A component to display a list of features with icons, titles, and descriptions.
25129
- * Supports i18n for all text content.
25138
+ * Lista de features con icono **o imagen**, título y descripción. Soporta i18n,
25139
+ * colapso opcional ("ver más" cuando supera `maxVisible`) y un link al pie
25140
+ * (ej. "Find out more"). Útil para listas de settings, apps, beneficios.
25130
25141
  *
25131
25142
  * @example
25132
25143
  * ```html
25133
25144
  * <val-features-list
25134
25145
  * [props]="{
25135
25146
  * features: [
25136
- * { icon: 'flash-outline', titleKey: 'feature1Title', descriptionKey: 'feature1Desc' },
25137
- * { icon: 'color-palette-outline', titleKey: 'feature2Title', descriptionKey: 'feature2Desc' }
25147
+ * { icon: 'flash-outline', titleKey: 'Rápido', descriptionKey: 'Carga al instante' },
25148
+ * { image: '/logos/app.png', titleKey: 'Mi App', descriptionKey: 'Gestión de equipos', token: 'app' }
25138
25149
  * ],
25139
- * i18nNamespace: 'Features',
25140
- * iconColor: 'primary',
25141
- * mode: 'vertical'
25142
- * }"
25143
- * />
25144
- * ```
25145
- *
25146
- * @example With custom SVG icons
25147
- * ```html
25148
- * <val-features-list
25149
- * [props]="{
25150
- * features: [
25151
- * {
25152
- * icon: 'custom',
25153
- * svgPath: 'M13 2L3 14h9l-1 8 10-12h-9l1-8z',
25154
- * titleKey: 'Fast & Secure',
25155
- * descriptionKey: 'Modern authentication with OAuth and MFA'
25156
- * }
25157
- * ]
25150
+ * maxVisible: 3,
25151
+ * footerLink: { label: 'Ver todo', routerLink: '/apps' }
25158
25152
  * }"
25153
+ * (itemClick)="open($event)"
25159
25154
  * />
25160
25155
  * ```
25161
25156
  */
25162
25157
  class FeaturesListComponent {
25163
25158
  constructor() {
25164
25159
  this.i18n = inject(I18nService);
25160
+ this.navigation = inject(NavigationService);
25165
25161
  /** Component configuration */
25166
25162
  this.props = input.required();
25163
+ /** Emitido al tocar un item (con su `token`). */
25164
+ this.itemClick = output();
25165
+ /** Emitido al tocar el footer link (con su `token`). */
25166
+ this.footerClick = output();
25167
+ this._expanded = signal(false);
25168
+ this.expanded = this._expanded.asReadonly();
25167
25169
  /** Merged configuration with defaults */
25168
25170
  this.config = computed(() => ({
25169
25171
  ...FEATURES_LIST_DEFAULTS,
25170
25172
  ...this.props(),
25171
25173
  }));
25174
+ /** Items visibles según el estado de colapso. */
25175
+ this.visibleFeatures = computed(() => {
25176
+ const cfg = this.config();
25177
+ const all = cfg.features ?? [];
25178
+ if (cfg.maxVisible > 0 && !this._expanded() && all.length > cfg.maxVisible) {
25179
+ return all.slice(0, cfg.maxVisible);
25180
+ }
25181
+ return all;
25182
+ });
25183
+ /** Si hay items de sobra para colapsar/expandir. */
25184
+ this.canCollapse = computed(() => {
25185
+ const cfg = this.config();
25186
+ return cfg.maxVisible > 0 && (cfg.features?.length ?? 0) > cfg.maxVisible;
25187
+ });
25188
+ this.showMoreText = computed(() => {
25189
+ this.i18n.lang();
25190
+ return this.config().showMoreLabel || this.i18n.t('showMore', 'FeaturesList');
25191
+ });
25192
+ this.showLessText = computed(() => {
25193
+ this.i18n.lang();
25194
+ return this.config().showLessLabel || this.i18n.t('showLess', 'FeaturesList');
25195
+ });
25172
25196
  /** Resolved icon color (handles Ionic colors and CSS colors) */
25173
25197
  this.iconColorStyle = computed(() => {
25174
25198
  const color = this.config().iconColor;
25175
- // Check if it's an Ionic color variable
25176
25199
  if (color && !color.startsWith('#') && !color.startsWith('rgb')) {
25177
25200
  return `var(--ion-color-${color})`;
25178
25201
  }
25179
25202
  return color;
25180
25203
  });
25204
+ if (!this.i18n.hasNamespace('FeaturesList')) {
25205
+ this.i18n.registerContent('FeaturesList', FEATURES_LIST_I18N);
25206
+ }
25181
25207
  }
25182
- /**
25183
- * Get translated title or return direct text
25184
- */
25208
+ toggle() {
25209
+ this._expanded.set(!this._expanded());
25210
+ }
25211
+ onItem(feature) {
25212
+ if (feature.token != null) {
25213
+ this.itemClick.emit(feature.token);
25214
+ }
25215
+ }
25216
+ onFooter(event, link) {
25217
+ this.footerClick.emit(link.token);
25218
+ if (link.href) {
25219
+ event.preventDefault();
25220
+ this.navigation.openInNewTab(link.href);
25221
+ }
25222
+ }
25223
+ /** Get translated title or return direct text */
25185
25224
  getTitle(feature) {
25186
25225
  const namespace = this.props().i18nNamespace;
25187
25226
  if (namespace) {
25188
- // Track language changes
25189
25227
  this.i18n.lang();
25190
25228
  return this.i18n.t(feature.titleKey, namespace);
25191
25229
  }
25192
25230
  return feature.titleKey;
25193
25231
  }
25194
- /**
25195
- * Get translated description or return direct text
25196
- */
25232
+ /** Get translated description or return direct text */
25197
25233
  getDescription(feature) {
25198
25234
  const namespace = this.props().i18nNamespace;
25199
25235
  if (namespace) {
25200
- // Track language changes
25201
25236
  this.i18n.lang();
25202
25237
  return this.i18n.t(feature.descriptionKey, namespace);
25203
25238
  }
25204
25239
  return feature.descriptionKey;
25205
25240
  }
25206
25241
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeaturesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25207
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FeaturesListComponent, isStandalone: true, selector: "val-features-list", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
25242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FeaturesListComponent, isStandalone: true, selector: "val-features-list", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { itemClick: "itemClick", footerClick: "footerClick" }, ngImport: i0, template: `
25208
25243
  <div
25209
25244
  class="features-list"
25210
25245
  [class.features-list--vertical]="config().mode === 'vertical'"
@@ -25214,15 +25249,22 @@ class FeaturesListComponent {
25214
25249
  [class.features-list--gap-large]="config().gap === 'large'"
25215
25250
  [class.features-list--center]="config().alignment === 'center'"
25216
25251
  >
25217
- @for (feature of props().features; track feature.titleKey) {
25218
- <div class="feature">
25252
+ @for (feature of visibleFeatures(); track feature.titleKey) {
25253
+ <div class="feature" [class.feature--clickable]="feature.token != null" (click)="onItem(feature)">
25219
25254
  <div
25220
25255
  class="feature__icon"
25221
25256
  [style.color]="iconColorStyle()"
25222
25257
  [style.width.px]="config().iconSize"
25223
25258
  [style.height.px]="config().iconSize"
25224
25259
  >
25225
- @if (feature.icon === 'custom' && feature.svgPath) {
25260
+ @if (feature.image) {
25261
+ <img
25262
+ class="feature__image"
25263
+ [class.feature__image--circle]="config().imageShape === 'circle'"
25264
+ [src]="feature.image"
25265
+ [alt]="getTitle(feature)"
25266
+ />
25267
+ } @else if (feature.icon === 'custom' && feature.svgPath) {
25226
25268
  <svg
25227
25269
  [attr.width]="config().iconSize"
25228
25270
  [attr.height]="config().iconSize"
@@ -25235,7 +25277,7 @@ class FeaturesListComponent {
25235
25277
  >
25236
25278
  <path [attr.d]="feature.svgPath" />
25237
25279
  </svg>
25238
- } @else {
25280
+ } @else if (feature.icon) {
25239
25281
  <ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
25240
25282
  }
25241
25283
  </div>
@@ -25245,12 +25287,24 @@ class FeaturesListComponent {
25245
25287
  </div>
25246
25288
  </div>
25247
25289
  }
25290
+
25291
+ @if (canCollapse()) {
25292
+ <button type="button" class="features-list__more" (click)="toggle()">
25293
+ {{ expanded() ? showLessText() : showMoreText() }}
25294
+ </button>
25295
+ }
25296
+
25297
+ @if (config().footerLink; as link) {
25298
+ <a class="features-list__footer" [routerLink]="link.routerLink ?? null" (click)="onFooter($event, link)">
25299
+ {{ link.label }}
25300
+ </a>
25301
+ }
25248
25302
  </div>
25249
- `, isInline: true, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature__icon,:host-context(.ion-palette-dark) .feature__icon,:host-context(html.ion-palette-dark) .feature__icon,:host-context(body.dark) .feature__icon,:host-context([data-theme=\"dark\"]) .feature__icon{opacity:.9}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
25303
+ `, isInline: true, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
25250
25304
  }
25251
25305
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeaturesListComponent, decorators: [{
25252
25306
  type: Component,
25253
- args: [{ selector: 'val-features-list', standalone: true, imports: [CommonModule, IonIcon], template: `
25307
+ args: [{ selector: 'val-features-list', standalone: true, imports: [CommonModule, RouterLink, IonIcon], template: `
25254
25308
  <div
25255
25309
  class="features-list"
25256
25310
  [class.features-list--vertical]="config().mode === 'vertical'"
@@ -25260,15 +25314,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
25260
25314
  [class.features-list--gap-large]="config().gap === 'large'"
25261
25315
  [class.features-list--center]="config().alignment === 'center'"
25262
25316
  >
25263
- @for (feature of props().features; track feature.titleKey) {
25264
- <div class="feature">
25317
+ @for (feature of visibleFeatures(); track feature.titleKey) {
25318
+ <div class="feature" [class.feature--clickable]="feature.token != null" (click)="onItem(feature)">
25265
25319
  <div
25266
25320
  class="feature__icon"
25267
25321
  [style.color]="iconColorStyle()"
25268
25322
  [style.width.px]="config().iconSize"
25269
25323
  [style.height.px]="config().iconSize"
25270
25324
  >
25271
- @if (feature.icon === 'custom' && feature.svgPath) {
25325
+ @if (feature.image) {
25326
+ <img
25327
+ class="feature__image"
25328
+ [class.feature__image--circle]="config().imageShape === 'circle'"
25329
+ [src]="feature.image"
25330
+ [alt]="getTitle(feature)"
25331
+ />
25332
+ } @else if (feature.icon === 'custom' && feature.svgPath) {
25272
25333
  <svg
25273
25334
  [attr.width]="config().iconSize"
25274
25335
  [attr.height]="config().iconSize"
@@ -25281,7 +25342,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
25281
25342
  >
25282
25343
  <path [attr.d]="feature.svgPath" />
25283
25344
  </svg>
25284
- } @else {
25345
+ } @else if (feature.icon) {
25285
25346
  <ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
25286
25347
  }
25287
25348
  </div>
@@ -25291,9 +25352,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
25291
25352
  </div>
25292
25353
  </div>
25293
25354
  }
25355
+
25356
+ @if (canCollapse()) {
25357
+ <button type="button" class="features-list__more" (click)="toggle()">
25358
+ {{ expanded() ? showLessText() : showMoreText() }}
25359
+ </button>
25360
+ }
25361
+
25362
+ @if (config().footerLink; as link) {
25363
+ <a class="features-list__footer" [routerLink]="link.routerLink ?? null" (click)="onFooter($event, link)">
25364
+ {{ link.label }}
25365
+ </a>
25366
+ }
25294
25367
  </div>
25295
- `, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature__icon,:host-context(.ion-palette-dark) .feature__icon,:host-context(html.ion-palette-dark) .feature__icon,:host-context(body.dark) .feature__icon,:host-context([data-theme=\"dark\"]) .feature__icon{opacity:.9}\n"] }]
25296
- }] });
25368
+ `, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"] }]
25369
+ }], ctorParameters: () => [] });
25297
25370
 
25298
25371
  /**
25299
25372
  * val-footer-links
@@ -29533,9 +29606,9 @@ class AttachmentUploaderComponent {
29533
29606
  cameraOutline,
29534
29607
  checkmarkCircleOutline,
29535
29608
  closeCircleOutline,
29609
+ closeOutline,
29536
29610
  documentOutline,
29537
29611
  imageOutline,
29538
- trashOutline,
29539
29612
  });
29540
29613
  }
29541
29614
  async onFilesSelected(event) {
@@ -29593,11 +29666,11 @@ class AttachmentUploaderComponent {
29593
29666
  return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
29594
29667
  }
29595
29668
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AttachmentUploaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29596
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AttachmentUploaderComponent, isStandalone: true, selector: "val-attachment-uploader", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { attachmentsChange: "attachmentsChange" }, ngImport: i0, template: "<div class=\"attachment-uploader\">\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n\n <div class=\"attachment-actions\">\n <ion-button fill=\"outline\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"filePicker.click()\">\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <!-- label trick: native browser gesture forwarding \u2192 iOS/PWA no bloquea el picker -->\n <label class=\"camera-label\" [class.camera-label--disabled]=\"isDisabled()\">\n <input\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n [disabled]=\"isDisabled()\"\n (change)=\"onFilesSelected($event)\"\n />\n <ion-icon name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </label>\n </div>\n\n @if (maxReached()) {\n <ion-note color=\"warning\" class=\"max-note\">\n {{ i18n.t('attachMaxCount', '_global', { count: maxFiles().toString() }) }}\n </ion-note>\n } @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file.type.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ item.file.name }}</span>\n <span class=\"file-size\">{{ formatSize(item.file.size) }}</span>\n </div>\n\n @if (item.status === 'uploading') {\n <ion-spinner class=\"status-icon\" name=\"circular\"></ion-spinner>\n } @else if (item.status === 'ready') {\n <ion-icon class=\"status-icon\" name=\"checkmark-circle-outline\" color=\"success\"></ion-icon>\n } @else if (item.status === 'error') {\n <ion-icon class=\"status-icon\" name=\"close-circle-outline\" color=\"danger\"></ion-icon>\n } @if (item.status !== 'uploading') {\n <ion-button fill=\"clear\" size=\"small\" color=\"medium\" (click)=\"remove(item.id)\">\n <ion-icon slot=\"icon-only\" name=\"trash-outline\"></ion-icon>\n </ion-button>\n } @if (item.status === 'error' && item.error) {\n <ion-note color=\"danger\" class=\"error-note\">{{ item.error }}</ion-note>\n }\n </div>\n }\n </div>\n }\n</div>\n", styles: [".hidden-input{display:none}.camera-label{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:32px;font-size:14px;font-weight:500;border-radius:4px;border:1px solid currentColor;color:var(--ion-color-dark);background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s}.camera-label ion-icon{font-size:16px;flex-shrink:0}.camera-label--disabled{opacity:.4;pointer-events:none}.attachment-uploader{display:flex;flex-direction:column;gap:8px}.attachment-actions{display:flex;gap:8px;flex-wrap:wrap}.attachment-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:var(--ion-color-light);flex-wrap:wrap}.attachment-item.status-error{background:var(--ion-color-danger-tint)}.attachment-item.status-ready{background:var(--ion-color-success-tint)}.file-icon{font-size:20px;flex-shrink:0}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:12px;color:var(--ion-color-medium)}.status-icon{font-size:20px;flex-shrink:0}.error-note{font-size:11px;width:100%}.max-note{font-size:12px}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
29669
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AttachmentUploaderComponent, isStandalone: true, selector: "val-attachment-uploader", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { attachmentsChange: "attachmentsChange" }, ngImport: i0, template: "<div class=\"attachment-uploader\">\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n\n <div class=\"attachment-actions\">\n <ion-button fill=\"outline\" color=\"dark\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"filePicker.click()\">\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <!-- label trick: native browser gesture forwarding \u2192 iOS/PWA no bloquea el picker -->\n <label class=\"camera-label\" [class.camera-label--disabled]=\"isDisabled()\">\n <input\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n [disabled]=\"isDisabled()\"\n (change)=\"onFilesSelected($event)\"\n />\n <ion-icon name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </label>\n </div>\n\n @if (maxReached()) {\n <ion-note color=\"warning\" class=\"max-note\">\n {{ i18n.t('attachMaxCount', '_global', { count: maxFiles().toString() }) }}\n </ion-note>\n } @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file.type.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ item.file.name }}</span>\n <span class=\"file-size\">{{ formatSize(item.file.size) }}</span>\n </div>\n\n @if (item.status === 'uploading') {\n <ion-spinner class=\"status-icon\" name=\"circular\"></ion-spinner>\n } @else if (item.status === 'ready') {\n <ion-icon class=\"status-icon\" name=\"checkmark-circle-outline\" color=\"success\"></ion-icon>\n } @else if (item.status === 'error') {\n <ion-icon class=\"status-icon\" name=\"close-circle-outline\" color=\"danger\"></ion-icon>\n } @if (item.status !== 'uploading') {\n <ion-button fill=\"clear\" size=\"small\" color=\"dark\" (click)=\"remove(item.id)\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n } @if (item.status === 'error' && item.error) {\n <ion-note color=\"danger\" class=\"error-note\">{{ item.error }}</ion-note>\n }\n </div>\n }\n </div>\n }\n</div>\n", styles: [".hidden-input{display:none}.camera-label{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:32px;font-size:14px;font-weight:500;border-radius:4px;border:1px solid currentColor;color:var(--ion-color-dark);background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s}.camera-label ion-icon{font-size:16px;flex-shrink:0}.camera-label--disabled{opacity:.4;pointer-events:none}.attachment-uploader{display:flex;flex-direction:column;gap:8px}.attachment-actions{display:flex;gap:8px;flex-wrap:wrap}.attachment-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--ion-background-color, #fff);border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .08));flex-wrap:wrap}.attachment-item.status-error{border-color:var(--ion-color-danger)}.file-icon{font-size:22px;color:var(--ion-text-color);flex-shrink:0}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-name{font-size:13px;color:var(--ion-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:11px;color:var(--ion-color-medium)}:host-context(.dark) .attachment-item,:host-context(.ion-palette-dark) .attachment-item,:host-context(html.ion-palette-dark) .attachment-item,:host-context(body.dark) .attachment-item,:host-context([data-theme=dark]) .attachment-item{background:#ffffff0a;border-color:#ffffff1f}:host-context(.dark) .attachment-item.status-error,:host-context(.ion-palette-dark) .attachment-item.status-error,:host-context(html.ion-palette-dark) .attachment-item.status-error,:host-context(body.dark) .attachment-item.status-error,:host-context([data-theme=dark]) .attachment-item.status-error{border-color:var(--ion-color-danger)}.status-icon{font-size:20px;flex-shrink:0}.error-note{font-size:11px;width:100%}.max-note{font-size:12px}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
29597
29670
  }
29598
29671
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AttachmentUploaderComponent, decorators: [{
29599
29672
  type: Component,
29600
- args: [{ selector: 'val-attachment-uploader', standalone: true, imports: [IonButton, IonIcon, IonNote, IonSpinner], template: "<div class=\"attachment-uploader\">\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n\n <div class=\"attachment-actions\">\n <ion-button fill=\"outline\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"filePicker.click()\">\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <!-- label trick: native browser gesture forwarding \u2192 iOS/PWA no bloquea el picker -->\n <label class=\"camera-label\" [class.camera-label--disabled]=\"isDisabled()\">\n <input\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n [disabled]=\"isDisabled()\"\n (change)=\"onFilesSelected($event)\"\n />\n <ion-icon name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </label>\n </div>\n\n @if (maxReached()) {\n <ion-note color=\"warning\" class=\"max-note\">\n {{ i18n.t('attachMaxCount', '_global', { count: maxFiles().toString() }) }}\n </ion-note>\n } @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file.type.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ item.file.name }}</span>\n <span class=\"file-size\">{{ formatSize(item.file.size) }}</span>\n </div>\n\n @if (item.status === 'uploading') {\n <ion-spinner class=\"status-icon\" name=\"circular\"></ion-spinner>\n } @else if (item.status === 'ready') {\n <ion-icon class=\"status-icon\" name=\"checkmark-circle-outline\" color=\"success\"></ion-icon>\n } @else if (item.status === 'error') {\n <ion-icon class=\"status-icon\" name=\"close-circle-outline\" color=\"danger\"></ion-icon>\n } @if (item.status !== 'uploading') {\n <ion-button fill=\"clear\" size=\"small\" color=\"medium\" (click)=\"remove(item.id)\">\n <ion-icon slot=\"icon-only\" name=\"trash-outline\"></ion-icon>\n </ion-button>\n } @if (item.status === 'error' && item.error) {\n <ion-note color=\"danger\" class=\"error-note\">{{ item.error }}</ion-note>\n }\n </div>\n }\n </div>\n }\n</div>\n", styles: [".hidden-input{display:none}.camera-label{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:32px;font-size:14px;font-weight:500;border-radius:4px;border:1px solid currentColor;color:var(--ion-color-dark);background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s}.camera-label ion-icon{font-size:16px;flex-shrink:0}.camera-label--disabled{opacity:.4;pointer-events:none}.attachment-uploader{display:flex;flex-direction:column;gap:8px}.attachment-actions{display:flex;gap:8px;flex-wrap:wrap}.attachment-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:var(--ion-color-light);flex-wrap:wrap}.attachment-item.status-error{background:var(--ion-color-danger-tint)}.attachment-item.status-ready{background:var(--ion-color-success-tint)}.file-icon{font-size:20px;flex-shrink:0}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:12px;color:var(--ion-color-medium)}.status-icon{font-size:20px;flex-shrink:0}.error-note{font-size:11px;width:100%}.max-note{font-size:12px}\n"] }]
29673
+ args: [{ selector: 'val-attachment-uploader', standalone: true, imports: [IonButton, IonIcon, IonNote, IonSpinner], template: "<div class=\"attachment-uploader\">\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n\n <div class=\"attachment-actions\">\n <ion-button fill=\"outline\" color=\"dark\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"filePicker.click()\">\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <!-- label trick: native browser gesture forwarding \u2192 iOS/PWA no bloquea el picker -->\n <label class=\"camera-label\" [class.camera-label--disabled]=\"isDisabled()\">\n <input\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n [disabled]=\"isDisabled()\"\n (change)=\"onFilesSelected($event)\"\n />\n <ion-icon name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </label>\n </div>\n\n @if (maxReached()) {\n <ion-note color=\"warning\" class=\"max-note\">\n {{ i18n.t('attachMaxCount', '_global', { count: maxFiles().toString() }) }}\n </ion-note>\n } @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file.type.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ item.file.name }}</span>\n <span class=\"file-size\">{{ formatSize(item.file.size) }}</span>\n </div>\n\n @if (item.status === 'uploading') {\n <ion-spinner class=\"status-icon\" name=\"circular\"></ion-spinner>\n } @else if (item.status === 'ready') {\n <ion-icon class=\"status-icon\" name=\"checkmark-circle-outline\" color=\"success\"></ion-icon>\n } @else if (item.status === 'error') {\n <ion-icon class=\"status-icon\" name=\"close-circle-outline\" color=\"danger\"></ion-icon>\n } @if (item.status !== 'uploading') {\n <ion-button fill=\"clear\" size=\"small\" color=\"dark\" (click)=\"remove(item.id)\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n } @if (item.status === 'error' && item.error) {\n <ion-note color=\"danger\" class=\"error-note\">{{ item.error }}</ion-note>\n }\n </div>\n }\n </div>\n }\n</div>\n", styles: [".hidden-input{display:none}.camera-label{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:32px;font-size:14px;font-weight:500;border-radius:4px;border:1px solid currentColor;color:var(--ion-color-dark);background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s}.camera-label ion-icon{font-size:16px;flex-shrink:0}.camera-label--disabled{opacity:.4;pointer-events:none}.attachment-uploader{display:flex;flex-direction:column;gap:8px}.attachment-actions{display:flex;gap:8px;flex-wrap:wrap}.attachment-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--ion-background-color, #fff);border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .08));flex-wrap:wrap}.attachment-item.status-error{border-color:var(--ion-color-danger)}.file-icon{font-size:22px;color:var(--ion-text-color);flex-shrink:0}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-name{font-size:13px;color:var(--ion-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:11px;color:var(--ion-color-medium)}:host-context(.dark) .attachment-item,:host-context(.ion-palette-dark) .attachment-item,:host-context(html.ion-palette-dark) .attachment-item,:host-context(body.dark) .attachment-item,:host-context([data-theme=dark]) .attachment-item{background:#ffffff0a;border-color:#ffffff1f}:host-context(.dark) .attachment-item.status-error,:host-context(.ion-palette-dark) .attachment-item.status-error,:host-context(html.ion-palette-dark) .attachment-item.status-error,:host-context(body.dark) .attachment-item.status-error,:host-context([data-theme=dark]) .attachment-item.status-error{border-color:var(--ion-color-danger)}.status-icon{font-size:20px;flex-shrink:0}.error-note{font-size:11px;width:100%}.max-note{font-size:12px}\n"] }]
29601
29674
  }], ctorParameters: () => [] });
29602
29675
 
29603
29676
  /**
@@ -43800,7 +43873,7 @@ const VALTECH_SITE_PATHS = {
43800
43873
  support: '/contact',
43801
43874
  contact: '/contact',
43802
43875
  faq: '/faq',
43803
- about: '/legal/about',
43876
+ about: '/about',
43804
43877
  terms: '/legal/terms',
43805
43878
  privacy: '/legal/privacy',
43806
43879
  cookies: '/legal/cookies',
@@ -51306,7 +51379,7 @@ const VALTECH_FOOTER_LOGO = {
51306
51379
  const VALTECH_COMPANY_LINKS = {
51307
51380
  // Links legales con `external: true` → abren en tab nueva (target=_blank).
51308
51381
  legal: [
51309
- { key: 'aboutUs', url: '/legal/about', kind: 'site', external: false },
51382
+ { key: 'aboutUs', url: '/about', kind: 'site', external: false },
51310
51383
  { key: 'privacyPolicy', url: '/legal/privacy', kind: 'legal', external: true },
51311
51384
  { key: 'termsConditions', url: '/legal/terms', kind: 'legal', external: true },
51312
51385
  { key: 'cookiesPolicy', url: '/legal/cookies', kind: 'legal', external: true },