@sme.up/ketchup 11.0.0-SNAPSHOT-20241029160403 → 11.0.0-SNAPSHOT-20241030100919

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/cjs/{f-cell-51f23dcb.js → f-cell-784e142a.js} +4 -4
  2. package/dist/cjs/{f-cell-51f23dcb.js.map → f-cell-784e142a.js.map} +1 -1
  3. package/dist/cjs/{f-chip-b49adf5f.js → f-chip-af09446d.js} +2 -2
  4. package/dist/cjs/{f-chip-b49adf5f.js.map → f-chip-af09446d.js.map} +1 -1
  5. package/dist/cjs/{f-paginator-utils-5d1c3cbe.js → f-paginator-utils-662821e2.js} +2 -2
  6. package/dist/cjs/{f-paginator-utils-5d1c3cbe.js.map → f-paginator-utils-662821e2.js.map} +1 -1
  7. package/dist/cjs/{f-text-field-03d5cda6.js → f-text-field-02d9d284.js} +2 -2
  8. package/dist/cjs/{f-text-field-03d5cda6.js.map → f-text-field-02d9d284.js.map} +1 -1
  9. package/dist/cjs/index.cjs.js +1 -1
  10. package/dist/cjs/kup-accordion.cjs.entry.js +1 -1
  11. package/dist/cjs/kup-activity-timeline.cjs.entry.js +2 -2
  12. package/dist/cjs/kup-autocomplete_28.cjs.entry.js +6 -6
  13. package/dist/cjs/kup-box.cjs.entry.js +6 -6
  14. package/dist/cjs/kup-calendar.cjs.entry.js +2 -2
  15. package/dist/cjs/kup-card-list.cjs.entry.js +1 -1
  16. package/dist/cjs/kup-cell.cjs.entry.js +4 -4
  17. package/dist/cjs/kup-dashboard.cjs.entry.js +2 -2
  18. package/dist/cjs/{kup-data-table-helper-5f2f9608.js → kup-data-table-helper-d5528bc5.js} +2 -2
  19. package/dist/cjs/{kup-data-table-helper-5f2f9608.js.map → kup-data-table-helper-d5528bc5.js.map} +1 -1
  20. package/dist/cjs/kup-drawer.cjs.entry.js +1 -1
  21. package/dist/cjs/kup-echart.cjs.entry.js +1 -1
  22. package/dist/cjs/kup-editor.cjs.entry.js +1 -1
  23. package/dist/cjs/kup-family-tree.cjs.entry.js +1 -1
  24. package/dist/cjs/kup-grid.cjs.entry.js +1 -1
  25. package/dist/cjs/kup-htm.cjs.entry.js +1 -1
  26. package/dist/cjs/kup-iframe.cjs.entry.js +1 -1
  27. package/dist/cjs/kup-image-list.cjs.entry.js +4 -4
  28. package/dist/cjs/kup-input-panel.cjs.entry.js +4 -4
  29. package/dist/cjs/kup-lazy.cjs.entry.js +1 -1
  30. package/dist/cjs/kup-magic-box.cjs.entry.js +1 -1
  31. package/dist/cjs/{kup-manager-51a6b521.js → kup-manager-189eaf63.js} +107 -80
  32. package/dist/cjs/kup-manager-189eaf63.js.map +1 -0
  33. package/dist/cjs/kup-nav-bar.cjs.entry.js +1 -1
  34. package/dist/cjs/kup-numeric-picker.cjs.entry.js +2 -2
  35. package/dist/cjs/kup-pdf.cjs.entry.js +1 -1
  36. package/dist/cjs/kup-photo-frame.cjs.entry.js +1 -1
  37. package/dist/cjs/kup-planner.cjs.entry.js +2 -2
  38. package/dist/cjs/kup-probe.cjs.entry.js +1 -1
  39. package/dist/cjs/kup-qlik.cjs.entry.js +1 -1
  40. package/dist/cjs/kup-snackbar.cjs.entry.js +1 -1
  41. package/dist/cjs/kup-typography-list.cjs.entry.js +1 -1
  42. package/dist/cjs/kup-typography.cjs.entry.js +3 -2
  43. package/dist/cjs/kup-typography.cjs.entry.js.map +1 -1
  44. package/dist/collection/components/kup-typography/assets/fonts/IBMPlexMono-Regular.woff +0 -0
  45. package/dist/collection/components/kup-typography/assets/fonts/IBMPlexMono-Regular.woff2 +0 -0
  46. package/dist/collection/components/kup-typography/assets/fonts/IBMPlexSans-Regular.woff +0 -0
  47. package/dist/collection/components/kup-typography/assets/fonts/IBMPlexSans-Regular.woff2 +0 -0
  48. package/dist/collection/components/kup-typography/kup-typography.js +2 -1
  49. package/dist/collection/components/kup-typography/kup-typography.js.map +1 -1
  50. package/dist/collection/managers/kup-theme/kup-theme-declarations.js +9 -0
  51. package/dist/collection/managers/kup-theme/kup-theme-declarations.js.map +1 -1
  52. package/dist/collection/managers/kup-theme/kup-theme.js +17 -14
  53. package/dist/collection/managers/kup-theme/kup-theme.js.map +1 -1
  54. package/dist/components/kup-manager.js +106 -79
  55. package/dist/components/kup-manager.js.map +1 -1
  56. package/dist/components/kup-typography.js +2 -1
  57. package/dist/components/kup-typography.js.map +1 -1
  58. package/dist/esm/{f-cell-a11f1068.js → f-cell-9f52a30a.js} +4 -4
  59. package/dist/esm/{f-cell-a11f1068.js.map → f-cell-9f52a30a.js.map} +1 -1
  60. package/dist/esm/{f-chip-6a8151c3.js → f-chip-dd98e13c.js} +2 -2
  61. package/dist/esm/{f-chip-6a8151c3.js.map → f-chip-dd98e13c.js.map} +1 -1
  62. package/dist/esm/{f-paginator-utils-1b1bf83b.js → f-paginator-utils-72800ef7.js} +2 -2
  63. package/dist/esm/{f-paginator-utils-1b1bf83b.js.map → f-paginator-utils-72800ef7.js.map} +1 -1
  64. package/dist/esm/{f-text-field-ba253046.js → f-text-field-81c7e63b.js} +2 -2
  65. package/dist/esm/{f-text-field-ba253046.js.map → f-text-field-81c7e63b.js.map} +1 -1
  66. package/dist/esm/index.js +1 -1
  67. package/dist/esm/kup-accordion.entry.js +1 -1
  68. package/dist/esm/kup-activity-timeline.entry.js +2 -2
  69. package/dist/esm/kup-autocomplete_28.entry.js +6 -6
  70. package/dist/esm/kup-box.entry.js +6 -6
  71. package/dist/esm/kup-calendar.entry.js +2 -2
  72. package/dist/esm/kup-card-list.entry.js +1 -1
  73. package/dist/esm/kup-cell.entry.js +4 -4
  74. package/dist/esm/kup-dashboard.entry.js +2 -2
  75. package/dist/esm/{kup-data-table-helper-cf099214.js → kup-data-table-helper-52b21f9e.js} +2 -2
  76. package/dist/esm/{kup-data-table-helper-cf099214.js.map → kup-data-table-helper-52b21f9e.js.map} +1 -1
  77. package/dist/esm/kup-drawer.entry.js +1 -1
  78. package/dist/esm/kup-echart.entry.js +1 -1
  79. package/dist/esm/kup-editor.entry.js +1 -1
  80. package/dist/esm/kup-family-tree.entry.js +1 -1
  81. package/dist/esm/kup-grid.entry.js +1 -1
  82. package/dist/esm/kup-htm.entry.js +1 -1
  83. package/dist/esm/kup-iframe.entry.js +1 -1
  84. package/dist/esm/kup-image-list.entry.js +4 -4
  85. package/dist/esm/kup-input-panel.entry.js +4 -4
  86. package/dist/esm/kup-lazy.entry.js +1 -1
  87. package/dist/esm/kup-magic-box.entry.js +1 -1
  88. package/dist/esm/{kup-manager-58202f14.js → kup-manager-ee1e7cd4.js} +107 -80
  89. package/dist/esm/kup-manager-ee1e7cd4.js.map +1 -0
  90. package/dist/esm/kup-nav-bar.entry.js +1 -1
  91. package/dist/esm/kup-numeric-picker.entry.js +2 -2
  92. package/dist/esm/kup-pdf.entry.js +1 -1
  93. package/dist/esm/kup-photo-frame.entry.js +1 -1
  94. package/dist/esm/kup-planner.entry.js +2 -2
  95. package/dist/esm/kup-probe.entry.js +1 -1
  96. package/dist/esm/kup-qlik.entry.js +1 -1
  97. package/dist/esm/kup-snackbar.entry.js +1 -1
  98. package/dist/esm/kup-typography-list.entry.js +1 -1
  99. package/dist/esm/kup-typography.entry.js +3 -2
  100. package/dist/esm/kup-typography.entry.js.map +1 -1
  101. package/dist/ketchup/assets/fonts/IBMPlexMono-Regular.woff +0 -0
  102. package/dist/ketchup/assets/fonts/IBMPlexMono-Regular.woff2 +0 -0
  103. package/dist/ketchup/assets/fonts/IBMPlexSans-Regular.woff +0 -0
  104. package/dist/ketchup/assets/fonts/IBMPlexSans-Regular.woff2 +0 -0
  105. package/dist/ketchup/index.esm.js +1 -1
  106. package/dist/ketchup/ketchup.esm.js +1 -1
  107. package/dist/ketchup/{p-0b4f9fbd.entry.js → p-15ed7d99.entry.js} +2 -2
  108. package/dist/ketchup/{p-c670c1ae.js → p-1cb80f82.js} +2 -2
  109. package/dist/ketchup/{p-01ff9884.js → p-2049ede1.js} +2 -2
  110. package/dist/ketchup/{p-7c94e917.entry.js → p-20bae24d.entry.js} +2 -2
  111. package/dist/ketchup/{p-1b82fe39.entry.js → p-24ff4213.entry.js} +2 -2
  112. package/dist/ketchup/{p-8452e252.entry.js → p-25355f43.entry.js} +2 -2
  113. package/dist/ketchup/{p-a44b1d04.entry.js → p-2bf4b018.entry.js} +2 -2
  114. package/dist/ketchup/{p-32042eb5.entry.js → p-2ebedaaa.entry.js} +2 -2
  115. package/dist/ketchup/{p-2724b666.js → p-3dde5808.js} +2 -2
  116. package/dist/ketchup/{p-838b6a2f.entry.js → p-444237dd.entry.js} +2 -2
  117. package/dist/ketchup/{p-837824a9.entry.js → p-48e9e28a.entry.js} +2 -2
  118. package/dist/ketchup/{p-56e04d74.js → p-49a79002.js} +4 -4
  119. package/dist/ketchup/p-49a79002.js.map +1 -0
  120. package/dist/ketchup/{p-05da2b79.entry.js → p-4a98256d.entry.js} +2 -2
  121. package/dist/ketchup/{p-6ea6f43e.entry.js → p-5ae04be3.entry.js} +2 -2
  122. package/dist/ketchup/{p-d6761118.entry.js → p-602cd520.entry.js} +2 -2
  123. package/dist/ketchup/{p-fb33b3c1.entry.js → p-69012c53.entry.js} +2 -2
  124. package/dist/ketchup/{p-824a75e1.entry.js → p-6e258e44.entry.js} +2 -2
  125. package/dist/ketchup/{p-6278ee25.entry.js → p-6e7863c6.entry.js} +2 -2
  126. package/dist/ketchup/{p-ffc02752.entry.js → p-70d05775.entry.js} +2 -2
  127. package/dist/ketchup/{p-879a4c67.entry.js → p-724a3fdb.entry.js} +2 -2
  128. package/dist/ketchup/p-724a3fdb.entry.js.map +1 -0
  129. package/dist/ketchup/{p-c3bc85c3.entry.js → p-7728ffb2.entry.js} +2 -2
  130. package/dist/ketchup/{p-17992b1b.entry.js → p-7fbb3587.entry.js} +2 -2
  131. package/dist/ketchup/{p-81e39d58.entry.js → p-80928c2c.entry.js} +2 -2
  132. package/dist/ketchup/{p-5cc75efb.entry.js → p-8de170dd.entry.js} +2 -2
  133. package/dist/ketchup/{p-8dacbd87.entry.js → p-92f8f2a8.entry.js} +2 -2
  134. package/dist/ketchup/{p-8a6b8754.entry.js → p-a5329b0b.entry.js} +2 -2
  135. package/dist/ketchup/{p-22a17b5a.js → p-b2875c24.js} +2 -2
  136. package/dist/ketchup/{p-d2bf9725.entry.js → p-b8c8d7b8.entry.js} +2 -2
  137. package/dist/ketchup/{p-6a532839.js → p-ba47d93e.js} +2 -2
  138. package/dist/ketchup/{p-4ac3481d.entry.js → p-bec9fb36.entry.js} +2 -2
  139. package/dist/ketchup/{p-f6103b1d.entry.js → p-dd80dcd1.entry.js} +2 -2
  140. package/dist/ketchup/{p-c40ad67f.entry.js → p-f08e6820.entry.js} +2 -2
  141. package/dist/ketchup/{p-c4129003.entry.js → p-f0be4c49.entry.js} +2 -2
  142. package/dist/ketchup/{p-2292af7c.entry.js → p-f28e4d30.entry.js} +2 -2
  143. package/dist/ketchup/{p-a27d4e3d.entry.js → p-fd00900c.entry.js} +2 -2
  144. package/dist/types/managers/kup-theme/kup-theme-declarations.d.ts +6 -1
  145. package/dist/types/managers/kup-theme/kup-theme.d.ts +1 -4
  146. package/package.json +1 -1
  147. package/dist/cjs/kup-manager-51a6b521.js.map +0 -1
  148. package/dist/esm/kup-manager-58202f14.js.map +0 -1
  149. package/dist/ketchup/p-56e04d74.js.map +0 -1
  150. package/dist/ketchup/p-879a4c67.entry.js.map +0 -1
  151. /package/dist/ketchup/{p-0b4f9fbd.entry.js.map → p-15ed7d99.entry.js.map} +0 -0
  152. /package/dist/ketchup/{p-c670c1ae.js.map → p-1cb80f82.js.map} +0 -0
  153. /package/dist/ketchup/{p-01ff9884.js.map → p-2049ede1.js.map} +0 -0
  154. /package/dist/ketchup/{p-7c94e917.entry.js.map → p-20bae24d.entry.js.map} +0 -0
  155. /package/dist/ketchup/{p-1b82fe39.entry.js.map → p-24ff4213.entry.js.map} +0 -0
  156. /package/dist/ketchup/{p-8452e252.entry.js.map → p-25355f43.entry.js.map} +0 -0
  157. /package/dist/ketchup/{p-a44b1d04.entry.js.map → p-2bf4b018.entry.js.map} +0 -0
  158. /package/dist/ketchup/{p-32042eb5.entry.js.map → p-2ebedaaa.entry.js.map} +0 -0
  159. /package/dist/ketchup/{p-2724b666.js.map → p-3dde5808.js.map} +0 -0
  160. /package/dist/ketchup/{p-838b6a2f.entry.js.map → p-444237dd.entry.js.map} +0 -0
  161. /package/dist/ketchup/{p-837824a9.entry.js.map → p-48e9e28a.entry.js.map} +0 -0
  162. /package/dist/ketchup/{p-05da2b79.entry.js.map → p-4a98256d.entry.js.map} +0 -0
  163. /package/dist/ketchup/{p-6ea6f43e.entry.js.map → p-5ae04be3.entry.js.map} +0 -0
  164. /package/dist/ketchup/{p-d6761118.entry.js.map → p-602cd520.entry.js.map} +0 -0
  165. /package/dist/ketchup/{p-fb33b3c1.entry.js.map → p-69012c53.entry.js.map} +0 -0
  166. /package/dist/ketchup/{p-824a75e1.entry.js.map → p-6e258e44.entry.js.map} +0 -0
  167. /package/dist/ketchup/{p-6278ee25.entry.js.map → p-6e7863c6.entry.js.map} +0 -0
  168. /package/dist/ketchup/{p-ffc02752.entry.js.map → p-70d05775.entry.js.map} +0 -0
  169. /package/dist/ketchup/{p-c3bc85c3.entry.js.map → p-7728ffb2.entry.js.map} +0 -0
  170. /package/dist/ketchup/{p-17992b1b.entry.js.map → p-7fbb3587.entry.js.map} +0 -0
  171. /package/dist/ketchup/{p-81e39d58.entry.js.map → p-80928c2c.entry.js.map} +0 -0
  172. /package/dist/ketchup/{p-5cc75efb.entry.js.map → p-8de170dd.entry.js.map} +0 -0
  173. /package/dist/ketchup/{p-8dacbd87.entry.js.map → p-92f8f2a8.entry.js.map} +0 -0
  174. /package/dist/ketchup/{p-8a6b8754.entry.js.map → p-a5329b0b.entry.js.map} +0 -0
  175. /package/dist/ketchup/{p-22a17b5a.js.map → p-b2875c24.js.map} +0 -0
  176. /package/dist/ketchup/{p-d2bf9725.entry.js.map → p-b8c8d7b8.entry.js.map} +0 -0
  177. /package/dist/ketchup/{p-6a532839.js.map → p-ba47d93e.js.map} +0 -0
  178. /package/dist/ketchup/{p-4ac3481d.entry.js.map → p-bec9fb36.entry.js.map} +0 -0
  179. /package/dist/ketchup/{p-f6103b1d.entry.js.map → p-dd80dcd1.entry.js.map} +0 -0
  180. /package/dist/ketchup/{p-c40ad67f.entry.js.map → p-f08e6820.entry.js.map} +0 -0
  181. /package/dist/ketchup/{p-c4129003.entry.js.map → p-f0be4c49.entry.js.map} +0 -0
  182. /package/dist/ketchup/{p-2292af7c.entry.js.map → p-f28e4d30.entry.js.map} +0 -0
  183. /package/dist/ketchup/{p-a27d4e3d.entry.js.map → p-fd00900c.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"kup-theme.js","sourceRoot":"","sources":["../../../src/managers/kup-theme/kup-theme.ts"],"names":[],"mappings":"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","sourcesContent":["import type { KupDom } from '../kup-manager/kup-manager-declarations';\nimport type {\n GenericObject,\n KupComponent,\n KupTagNames,\n} from '../../types/GenericTypes';\nimport { getAssetPath } from '@stencil/core';\nimport * as themesJson from './themes.json';\nimport * as applicationCSS from './kup-theme-application.css';\nimport * as componentCSS from './kup-theme-component.css';\nimport * as fButtonCSS from '../../f-components/f-button/f-button.css';\nimport * as fCellCSS from '../../f-components/f-cell/f-cell.css';\nimport * as fCheckboxCSS from '../../f-components/f-checkbox/f-checkbox.css';\nimport * as fChipCSS from '../../f-components/f-chip/f-chip.css';\nimport * as fImageCSS from '../../f-components/f-image/f-image.css';\nimport * as fPaginatorCSS from '../../f-components/f-paginator/f-paginator.css';\nimport * as fProgressBarCSS from '../../f-components/f-progress-bar/f-progress-bar.css';\nimport * as fRadioCSS from '../../f-components/f-radio/f-radio.css';\nimport * as fRatingCSS from '../../f-components/f-rating/f-rating.css';\nimport * as fSwitchCSS from '../../f-components/f-switch/f-switch.css';\nimport * as fTextFieldCSS from '../../f-components/f-text-field/f-text-field.css';\nimport * as FTypographyCSS from '../../f-components/f-typography/f-typography.css';\nimport * as rippleCSS from './mdc-ripple.css';\nimport {\n editorUsers,\n fButtonUsers,\n fCellUsers,\n fCheckboxUsers,\n fChipUsers,\n fImageUsers,\n fPaginatorUsers,\n fProgressBarUsers,\n fRadioUsers,\n fRatingUsers,\n fSwitchUsers,\n fTypographyUsers,\n fTextFieldUsers,\n KupThemeColor,\n KupThemeCSSVariables,\n KupThemeHSLValues,\n KupThemeIcons,\n KupThemeJSON,\n KupThemeRGBValues,\n masterCustomStyle,\n rippleUsers,\n} from './kup-theme-declarations';\nimport { KupDebugCategory } from '../kup-debug/kup-debug-declarations';\nimport { FTypography } from '../../f-components/f-typography/f-typography';\n\nconst dom: KupDom = document.documentElement as KupDom;\n\n/**\n * Theme manager, handles everything about theming, customStyles and color utilities.\n * @module KupTheme\n */\nexport class KupTheme {\n cssVars: Partial<KupThemeCSSVariables>;\n list: KupThemeJSON;\n managedComponents: Set<KupComponent>;\n name: string;\n styleTag: HTMLStyleElement;\n /**\n * Initializes KupTheme.\n */\n constructor(list?: KupThemeJSON, name?: string) {\n this.cssVars = {};\n this.list = list ? list : themesJson['default'];\n this.managedComponents = new Set();\n this.name = name ? name : 'octane';\n this.styleTag = dom\n .querySelector('head')\n .appendChild(document.createElement('style'));\n }\n /**\n * Sets the CSS variables of the theme.\n */\n private imports(): string {\n const imports: string[] = this.list[this.name].imports\n ? this.list[this.name].imports\n : [];\n let css: string = '';\n for (let index = 0; index < imports.length; index++) {\n css += '@import ' + imports[index] + ';';\n }\n return css;\n }\n /**\n * Sets the CSS variables of the theme.\n */\n private cssVariables(): string {\n const variables: KupThemeCSSVariables =\n this.list[this.name].cssVariables;\n let css: string = '';\n for (let key in variables) {\n if (variables.hasOwnProperty(key)) {\n const val: string = variables[key];\n this.cssVars[key] = val;\n css += key + ': ' + val + ';';\n if (key.indexOf('color') > -1) {\n const computedColor: KupThemeColor = this.colorCheck(val);\n const rgbKey: string = key + '-rgb';\n const hKey: string = key + '-h';\n const sKey: string = key + '-s';\n const lKey: string = key + '-l';\n const rgbVal: string = computedColor.rgbValues;\n const hue: string = computedColor.hue;\n const saturation: string = computedColor.saturation;\n const lightness: string = computedColor.lightness;\n this.cssVars[rgbKey] = rgbVal;\n this.cssVars[hKey] = hue;\n this.cssVars[lKey] = lightness;\n this.cssVars[sKey] = saturation;\n css += rgbKey + ': ' + rgbVal + ';';\n css += hKey + ': ' + hue + ';';\n css += lKey + ': ' + lightness + ';';\n css += sKey + ': ' + saturation + ';';\n }\n }\n }\n return css;\n }\n /**\n * Sets the icon variables of the theme.\n */\n private icons(): string {\n const icons: KupThemeIcons = this.list[this.name].icons;\n let css: string = '';\n for (var key in icons) {\n if (icons.hasOwnProperty(key)) {\n const val = `url('${getAssetPath(\n `./assets/svg/${icons[key]}.svg`\n )}') no-repeat center`;\n this.cssVars[key] = val;\n css += key + ': ' + val + ';';\n }\n }\n return css;\n }\n /**\n * Refreshed managed components to apply theme customStyles.\n */\n private customStyle(): void {\n this.managedComponents.forEach(function (comp) {\n if (comp.isConnected) {\n comp.refresh();\n }\n });\n }\n /**\n * Sets the theme using this.name or the function's argument.\n * @param {string} name - When present, this theme will be set.\n */\n set(name?: string, list?: KupThemeJSON): void {\n if (name) {\n this.name = name;\n }\n if (list) {\n this.list = list;\n }\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Setting theme to: ' + this.name + '.'\n );\n if (!this.list[this.name]) {\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Invalid theme name, falling back to default (\"ketchup\").'\n );\n this.name = 'ketchup';\n }\n\n this.cssVars = {};\n this.styleTag.innerText =\n this.imports() +\n ' :root[kup-theme=\"' +\n this.name +\n '\"]{' +\n this.cssVariables() +\n this.icons() +\n '}' +\n applicationCSS['default'];\n this.customStyle();\n\n document.documentElement.setAttribute('kup-theme', this.name);\n document.dispatchEvent(new CustomEvent('kup-theme-change'));\n }\n /**\n * Gets the name of available themes.\n * @returns {Array<string>} Array of themes' names.\n */\n getThemes(): Array<string> {\n const themes: Array<string> = [];\n for (var key in this.list) {\n if (this.list.hasOwnProperty(key)) {\n themes.push(key);\n }\n }\n return themes;\n }\n /**\n * This method will just refresh the current theme.\n */\n refresh(): void {\n try {\n this.styleTag.innerText =\n ':root[kup-theme=\"' +\n this.name +\n '\"]{' +\n this.cssVariables() +\n this.icons() +\n '}';\n this.customStyle();\n dom.ketchup.debug.logMessage(\n 'kup-theme',\n 'Theme ' + dom.getAttribute('kup-theme') + ' refreshed.'\n );\n document.dispatchEvent(new CustomEvent('kup-theme-refresh'));\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'kup-theme',\n 'Theme not refreshed.',\n KupDebugCategory.WARNING\n );\n }\n }\n /**\n * Registers a KupComponent in KupTheme, in order to be properly refreshed whenever the theme changes.\n * @param {any} comp - The component calling this function.\n */\n register(comp: any): void {\n this.managedComponents.add(comp.rootElement ? comp.rootElement : comp);\n }\n /**\n * Unregisters a KupComponent, so it won't be refreshed when the theme changes.\n * @param {any} comp - The component calling this function.\n */\n unregister(comp: any): void {\n if (this.managedComponents) {\n this.managedComponents.delete(\n comp.rootElement ? comp.rootElement : comp\n );\n }\n }\n /**\n * Combines global (style every component should have), theme's and component's customStyles, returning the result.\n * @param comp - The component calling this function.\n * @returns {string} Combined customStyle.\n */\n setKupStyle(comp: KupComponent): string {\n const styles: GenericObject = this.list[this.name].customStyles;\n const tagName: KupTagNames = comp.tagName as KupTagNames;\n let completeStyle = componentCSS['default'];\n if (styles && styles[masterCustomStyle]) {\n completeStyle += styles[masterCustomStyle];\n }\n if (styles && styles[comp.tagName]) {\n completeStyle += ' ' + styles[comp.tagName];\n }\n if (comp.customStyle) {\n completeStyle += ' ' + comp.customStyle;\n }\n if (tagName) {\n if (fButtonUsers.includes(tagName)) {\n completeStyle += fButtonCSS['default'];\n }\n if (fCellUsers.includes(tagName)) {\n completeStyle += fCellCSS['default'];\n }\n if (fCheckboxUsers.includes(tagName)) {\n completeStyle += fCheckboxCSS['default'];\n }\n if (fChipUsers.includes(tagName)) {\n completeStyle += fChipCSS['default'];\n }\n if (fImageUsers.includes(tagName)) {\n completeStyle += fImageCSS['default'];\n }\n if (fPaginatorUsers.includes(tagName)) {\n completeStyle += fPaginatorCSS['default'];\n }\n if (fProgressBarUsers.includes(tagName)) {\n completeStyle += fProgressBarCSS['default'];\n }\n if (fRadioUsers.includes(tagName)) {\n completeStyle += fRadioCSS['default'];\n }\n if (fRatingUsers.includes(tagName)) {\n completeStyle += fRatingCSS['default'];\n }\n if (fSwitchUsers.includes(tagName)) {\n completeStyle += fSwitchCSS['default'];\n }\n if (fTypographyUsers.includes(tagName)) {\n completeStyle += FTypographyCSS['default'];\n }\n if (fTextFieldUsers.includes(tagName)) {\n completeStyle += fTextFieldCSS['default'];\n }\n if (editorUsers.includes(tagName)) {\n completeStyle += applicationCSS['default'];\n }\n if (rippleUsers.includes(tagName)) {\n completeStyle += rippleCSS['default'];\n }\n }\n return completeStyle ? completeStyle : null;\n }\n /**\n * Checks whether on a given color the text should be white or black.\n * @param {string} color - Color used to check the contrast.\n * @returns {string} \"white\" or \"black\".\n */\n colorContrast(color: string): string {\n color = this.colorCheck(color).rgbColor;\n const colorValues: string[] = color.replace(/[^\\d,.]/g, '').split(',');\n const brightness: number = Math.round(\n (parseInt(colorValues[0]) * 299 +\n parseInt(colorValues[1]) * 587 +\n parseInt(colorValues[2]) * 114) /\n 1000\n );\n return brightness > 125 ? 'black' : 'white';\n }\n /**\n * Generates a random HEX color.\n * @param {number} brightness - Brightness of the color generated (0-255).\n * @returns {string} Random HEX color.\n */\n randomColor(brightness: number): string {\n function randomChannel(brightness: number) {\n var r = 255 - brightness;\n var n = 0 | (Math.random() * r + brightness);\n var s = n.toString(16);\n return s.length == 1 ? '0' + s : s;\n }\n return (\n '#' +\n randomChannel(brightness) +\n randomChannel(brightness) +\n randomChannel(brightness)\n );\n }\n /**\n * Sets a random theme between those specified in this.list (excludes \"print\" and \"test\") and different from the currently used one.\n */\n randomTheme(): void {\n let themes: string[] = [];\n for (var key in this.list) {\n if (this.list.hasOwnProperty(key)) {\n if (key !== 'test' && key !== 'print') {\n themes.push(key);\n }\n }\n }\n if (themes.length > 0) {\n let index = null;\n while (index === null || themes[index] === this.name) {\n index = Math.floor(Math.random() * Math.floor(themes.length));\n }\n this.set(themes[index]);\n } else {\n dom.ketchup.debug.logMessage(\n 'kup-theme',\n \"Couldn't set a random theme: no themes available!\",\n KupDebugCategory.WARNING\n );\n }\n }\n /**\n * Returns HEX, RGB, HSL, HSL values and RGB values from a given color.\n * @param {string} color - Input color.\n * @returns {KupThemeColor} Object of color values: hexColor (\"#ffffff\"), hslColor (\"hsl(255,100%,100%)\"), hslValues (\"255,100%,100%\"), rgbColor (\"rgb(255,255,255)\") and rgbValues (\"255,255,255\").\n */\n colorCheck(color: string): KupThemeColor {\n //Testing whether the color is transparent, if it is a fall back value will be returned matching the background-color\n if (color === 'transparent') {\n color = this.cssVars['--kup-background-color'];\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Received TRANSPARENT color, converted to ' +\n color +\n ' (theme background).'\n );\n }\n\n const altRgbRe: RegExp = /R(\\d{1,3})G(\\d{1,3})B(\\d{1,3})/;\n const altRgb: boolean = altRgbRe.test(color);\n if (altRgb) {\n const parts: RegExpMatchArray = color.match(altRgbRe);\n color = 'rgb(' + parts[1] + ',' + parts[2] + ',' + parts[3] + ')';\n }\n\n let isHex: boolean = color.substring(0, 1) === '#';\n const isHsl: boolean = color.substring(0, 3).toLowerCase() === 'hsl';\n const isRgb: boolean = color.substring(0, 3).toLowerCase() === 'rgb';\n\n //If true, supposedly it's a code word\n if (!isHex && !isHsl && !isRgb) {\n const oldColor: string = color;\n color = this.codeToHex(color);\n isHex = color.substring(0, 1) === '#' ? true : false;\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Received CODE NAME color ' +\n oldColor +\n ', converted to ' +\n color +\n '.'\n );\n }\n\n //Testing whether the color is \"hex\" value or \"hsl\"\n let hexColor: string = null;\n let rgbColor: string = null;\n let hslColor: string = null;\n let hslValues: string = null;\n let hue: string = null;\n let lightness: string = null;\n let saturation: string = null;\n\n if (isHex || isHsl) {\n const oldColor: string = color;\n let rgbColorObj: KupThemeRGBValues = null;\n if (isHex) {\n hexColor = color;\n rgbColorObj = this.hexToRgb(color);\n } else {\n hslColor = color;\n const regexp: RegExp =\n /hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\)/g;\n const hsl: string[] = regexp.exec(color).slice(1);\n hslValues = hsl[0] + ',' + hsl[1] + ',' + hsl[2];\n hue = hsl[0];\n saturation = hsl[2];\n lightness = hsl[1];\n const h: number = parseInt(hue.replace('deg', ''));\n const s: number = parseInt(saturation.replace('%', '')) / 100;\n const l: number = parseInt(lightness.replace('%', '')) / 100;\n rgbColorObj = this.hslToRgb(h, s, l);\n }\n try {\n color =\n 'rgb(' +\n rgbColorObj.r +\n ',' +\n rgbColorObj.g +\n ',' +\n rgbColorObj.b +\n ')';\n if (isHex) {\n const hsl: KupThemeHSLValues = this.rgbToHsl(\n rgbColorObj.r,\n rgbColorObj.g,\n rgbColorObj.b\n );\n hue = hsl.h.toString();\n saturation = hsl.s.toString() + '%';\n lightness = hsl.l.toString() + '%';\n hslValues = hue + ',' + saturation + ',' + lightness;\n hslColor = 'hsl(' + hslValues + ')';\n } else {\n hexColor = this.rgbToHex(\n rgbColorObj.r,\n rgbColorObj.g,\n rgbColorObj.b\n );\n }\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Received HEX color ' +\n oldColor +\n ', converted to ' +\n color +\n '.'\n );\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Invalid color: ' + color + '.'\n );\n }\n }\n\n let rgbValues: string = null;\n const values: RegExpMatchArray = color.match(\n /rgba?\\((\\d{1,3}), ?(\\d{1,3}), ?(\\d{1,3})\\)?(?:, ?(\\d(?:\\.\\d?))\\))?/\n );\n\n try {\n rgbValues = values[1] + ',' + values[2] + ',' + values[3];\n rgbColor = color;\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Color not converted to rgb values: ' + color + '.'\n );\n }\n\n if (!hexColor) {\n try {\n hexColor = this.rgbToHex(\n parseInt(values[1]),\n parseInt(values[2]),\n parseInt(values[3])\n );\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Color not converted to hex value: ' + color + '.'\n );\n }\n }\n\n if (!hslColor || !hslValues) {\n try {\n const hsl: KupThemeHSLValues = this.rgbToHsl(\n parseInt(values[1]),\n parseInt(values[2]),\n parseInt(values[3])\n );\n hue = hsl.h.toString();\n saturation = hsl.s.toString() + '%';\n lightness = hsl.l.toString() + '%';\n hslValues = hsl.h + ',' + hsl.s + '%,' + hsl.l + '%';\n hslColor = 'hsl(' + hsl.h + ',' + hsl.s + '%,' + hsl.l + '%)';\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Color not converted to hex value: ' + color + '.'\n );\n }\n }\n\n return {\n hexColor: hexColor,\n hslColor: hslColor,\n hslValues: hslValues,\n hue: hue,\n lightness: lightness,\n saturation: saturation,\n rgbColor: rgbColor,\n rgbValues: rgbValues,\n };\n }\n /**\n * Converts an HEX color to its RGB values.\n * @param {string} hex - Hex code.\n * @returns {KupThemeRGBValues} Object containing RGB values.\n */\n hexToRgb(hex: string): KupThemeRGBValues {\n var result: RegExpExecArray =\n /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null;\n }\n /**\n * Converts an HSL color to its RGB values.\n * @param {number} h - Hue (range [0, 360)).\n * @param {number} s - Saturation (range [0, 1)).\n * @param {number} l - Lightness (range [0, 1)).\n * @returns {Array} RGB values.\n */\n hslToRgb(h: number, s: number, l: number): KupThemeRGBValues {\n if (h == undefined) {\n return { r: 0, g: 0, b: 0 };\n }\n\n let huePrime: number = h / 60;\n const chroma: number = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent: number =\n chroma * (1 - Math.abs((huePrime % 2) - 1));\n\n huePrime = Math.floor(huePrime);\n let red: number, green: number, blue: number;\n\n if (huePrime === 0) {\n red = chroma;\n green = secondComponent;\n blue = 0;\n } else if (huePrime === 1) {\n red = secondComponent;\n green = chroma;\n blue = 0;\n } else if (huePrime === 2) {\n red = 0;\n green = chroma;\n blue = secondComponent;\n } else if (huePrime === 3) {\n red = 0;\n green = secondComponent;\n blue = chroma;\n } else if (huePrime === 4) {\n red = secondComponent;\n green = 0;\n blue = chroma;\n } else if (huePrime === 5) {\n red = chroma;\n green = 0;\n blue = secondComponent;\n }\n\n const lightnessAdjustment: number = l - chroma / 2;\n red += lightnessAdjustment;\n green += lightnessAdjustment;\n blue += lightnessAdjustment;\n return {\n r: Math.round(red * 255),\n g: Math.round(green * 255),\n b: Math.round(blue * 255),\n };\n }\n /**\n * Converts a color in RGB format to the corresponding HEX color.\n * @param {number} r - Red channel value.\n * @param {number} g - Green channel value.\n * @param {number} b - Blue channel value.\n * @returns {string} HEX color.\n */\n rgbToHex(r: number, g: number, b: number): string {\n return (\n '#' + this.valueToHex(r) + this.valueToHex(g) + this.valueToHex(b)\n );\n }\n /**\n * Converts a color in RGB format to the corresponding HSL color.\n * @param {number} r - Red channel value.\n * @param {number} g - Green channel value.\n * @param {number} b - Blue channel value.\n * @returns {KupThemeHSLValues} Object containing HSL values.\n */\n rgbToHsl(r: number, g: number, b: number): KupThemeHSLValues {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n\n // Find greatest and smallest channel values\n const cmin: number = Math.min(r, g, b),\n cmax: number = Math.max(r, g, b),\n delta: number = cmax - cmin;\n let h: number = 0,\n s: number = 0,\n l: number = 0;\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0;\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6;\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2;\n // Blue is max\n else h = (r - g) / delta + 4;\n\n h = Math.round(h * 60);\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360;\n\n // Calculate lightness\n l = (cmax + cmin) / 2;\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n\n return { h: h, s: s, l: l };\n }\n /**\n * Converts a single RGB value to the corresponding HEX value.\n * @param {number} c - Color value.\n * @returns {string} HEX value.\n */\n valueToHex(c: number): string {\n const hex: string = c.toString(16);\n return hex.length == 1 ? '0' + hex : hex;\n }\n /**\n * Converts a color code word to the corresponding HEX value.\n * @param {string} color - Color code word.\n * @returns {string} HEX value.\n */\n codeToHex(color: string): string {\n const colorCodes: GenericObject = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n };\n if (colorCodes[color.toLowerCase()]) {\n return colorCodes[color.toLowerCase()];\n } else {\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Could not decode color ' + color + '!'\n );\n return color;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"kup-theme.js","sourceRoot":"","sources":["../../../src/managers/kup-theme/kup-theme.ts"],"names":[],"mappings":"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","sourcesContent":["import type { KupDom } from '../kup-manager/kup-manager-declarations';\nimport type {\n GenericObject,\n KupComponent,\n KupTagNames,\n} from '../../types/GenericTypes';\nimport { getAssetPath } from '@stencil/core';\nimport * as themesJson from './themes.json';\nimport * as applicationCSS from './kup-theme-application.css';\nimport * as componentCSS from './kup-theme-component.css';\nimport * as fButtonCSS from '../../f-components/f-button/f-button.css';\nimport * as fCellCSS from '../../f-components/f-cell/f-cell.css';\nimport * as fCheckboxCSS from '../../f-components/f-checkbox/f-checkbox.css';\nimport * as fChipCSS from '../../f-components/f-chip/f-chip.css';\nimport * as fImageCSS from '../../f-components/f-image/f-image.css';\nimport * as fPaginatorCSS from '../../f-components/f-paginator/f-paginator.css';\nimport * as fProgressBarCSS from '../../f-components/f-progress-bar/f-progress-bar.css';\nimport * as fRadioCSS from '../../f-components/f-radio/f-radio.css';\nimport * as fRatingCSS from '../../f-components/f-rating/f-rating.css';\nimport * as fSwitchCSS from '../../f-components/f-switch/f-switch.css';\nimport * as fTextFieldCSS from '../../f-components/f-text-field/f-text-field.css';\nimport * as FTypographyCSS from '../../f-components/f-typography/f-typography.css';\nimport * as rippleCSS from './mdc-ripple.css';\nimport {\n editorUsers,\n fButtonUsers,\n fCellUsers,\n fCheckboxUsers,\n fChipUsers,\n fImageUsers,\n fPaginatorUsers,\n fProgressBarUsers,\n fRadioUsers,\n fRatingUsers,\n fSwitchUsers,\n fTypographyUsers,\n fTextFieldUsers,\n KupThemeColor,\n KupThemeCSSVariables,\n KupThemeHSLValues,\n KupThemeIcons,\n KupThemeJSON,\n KupThemeRGBValues,\n masterCustomStyle,\n rippleUsers,\n KupThemeFontFamilyMap,\n} from './kup-theme-declarations';\nimport { KupDebugCategory } from '../kup-debug/kup-debug-declarations';\n\nconst dom: KupDom = document.documentElement as KupDom;\n\n/**\n * Theme manager, handles everything about theming, customStyles and color utilities.\n * @module KupTheme\n */\nexport class KupTheme {\n cssVars: Partial<KupThemeCSSVariables>;\n list: KupThemeJSON;\n managedComponents: Set<KupComponent>;\n name: string;\n styleTag: HTMLStyleElement;\n /**\n * Initializes KupTheme.\n */\n constructor(list?: KupThemeJSON, name?: string) {\n this.cssVars = {};\n this.list = list ? list : themesJson['default'];\n this.managedComponents = new Set();\n this.name = name ? name : 'octane';\n this.styleTag = dom\n .querySelector('head')\n .appendChild(document.createElement('style'));\n }\n\n private fonts(): string {\n const theme = this.list[this.name];\n\n let fonts = '';\n if (theme.fonts) {\n theme.fonts.forEach((f) => {\n const fontPath = getAssetPath(`./assets/fonts/${f}`);\n const fontFace = `@font-face {\n font-family: ${KupThemeFontFamilyMap[f]};\n src: url('${fontPath}.woff2') format('woff2'),\n url('${fontPath}.woff') format('woff');\n }`;\n fonts += fontFace;\n });\n }\n\n return fonts;\n }\n /**\n * Sets the CSS variables of the theme.\n */\n private cssVariables(): string {\n const variables: KupThemeCSSVariables =\n this.list[this.name].cssVariables;\n let css: string = '';\n for (let key in variables) {\n if (variables.hasOwnProperty(key)) {\n const val: string = variables[key];\n this.cssVars[key] = val;\n css += key + ': ' + val + ';';\n if (key.indexOf('color') > -1) {\n const computedColor: KupThemeColor = this.colorCheck(val);\n const rgbKey: string = key + '-rgb';\n const hKey: string = key + '-h';\n const sKey: string = key + '-s';\n const lKey: string = key + '-l';\n const rgbVal: string = computedColor.rgbValues;\n const hue: string = computedColor.hue;\n const saturation: string = computedColor.saturation;\n const lightness: string = computedColor.lightness;\n this.cssVars[rgbKey] = rgbVal;\n this.cssVars[hKey] = hue;\n this.cssVars[lKey] = lightness;\n this.cssVars[sKey] = saturation;\n css += rgbKey + ': ' + rgbVal + ';';\n css += hKey + ': ' + hue + ';';\n css += lKey + ': ' + lightness + ';';\n css += sKey + ': ' + saturation + ';';\n }\n }\n }\n return css;\n }\n /**\n * Sets the icon variables of the theme.\n */\n private icons(): string {\n const icons: KupThemeIcons = this.list[this.name].icons;\n let css: string = '';\n for (var key in icons) {\n if (icons.hasOwnProperty(key)) {\n const val = `url('${getAssetPath(\n `./assets/svg/${icons[key]}.svg`\n )}') no-repeat center`;\n this.cssVars[key] = val;\n css += key + ': ' + val + ';';\n }\n }\n return css;\n }\n /**\n * Refreshed managed components to apply theme customStyles.\n */\n private customStyle(): void {\n this.managedComponents.forEach(function (comp) {\n if (comp.isConnected) {\n comp.refresh();\n }\n });\n }\n /**\n * Sets the theme using this.name or the function's argument.\n * @param {string} name - When present, this theme will be set.\n */\n set(name?: string, list?: KupThemeJSON): void {\n if (name) {\n this.name = name;\n }\n if (list) {\n this.list = list;\n }\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Setting theme to: ' + this.name + '.'\n );\n if (!this.list[this.name]) {\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Invalid theme name, falling back to default (\"ketchup\").'\n );\n this.name = 'ketchup';\n }\n\n this.cssVars = {};\n this.styleTag.innerText =\n this.fonts() +\n ' :root[kup-theme=\"' +\n this.name +\n '\"]{' +\n this.cssVariables() +\n this.icons() +\n '}' +\n applicationCSS['default'];\n this.customStyle();\n\n document.documentElement.setAttribute('kup-theme', this.name);\n document.dispatchEvent(new CustomEvent('kup-theme-change'));\n }\n /**\n * Gets the name of available themes.\n * @returns {Array<string>} Array of themes' names.\n */\n getThemes(): Array<string> {\n const themes: Array<string> = [];\n for (var key in this.list) {\n if (this.list.hasOwnProperty(key)) {\n themes.push(key);\n }\n }\n return themes;\n }\n /**\n * This method will just refresh the current theme.\n */\n refresh(): void {\n try {\n this.styleTag.innerText =\n ':root[kup-theme=\"' +\n this.name +\n '\"]{' +\n this.cssVariables() +\n this.icons() +\n '}';\n this.customStyle();\n dom.ketchup.debug.logMessage(\n 'kup-theme',\n 'Theme ' + dom.getAttribute('kup-theme') + ' refreshed.'\n );\n document.dispatchEvent(new CustomEvent('kup-theme-refresh'));\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'kup-theme',\n 'Theme not refreshed.',\n KupDebugCategory.WARNING\n );\n }\n }\n /**\n * Registers a KupComponent in KupTheme, in order to be properly refreshed whenever the theme changes.\n * @param {any} comp - The component calling this function.\n */\n register(comp: any): void {\n this.managedComponents.add(comp.rootElement ? comp.rootElement : comp);\n }\n /**\n * Unregisters a KupComponent, so it won't be refreshed when the theme changes.\n * @param {any} comp - The component calling this function.\n */\n unregister(comp: any): void {\n if (this.managedComponents) {\n this.managedComponents.delete(\n comp.rootElement ? comp.rootElement : comp\n );\n }\n }\n /**\n * Combines global (style every component should have), theme's and component's customStyles, returning the result.\n * @param comp - The component calling this function.\n * @returns {string} Combined customStyle.\n */\n setKupStyle(comp: KupComponent): string {\n const styles: GenericObject = this.list[this.name].customStyles;\n const tagName: KupTagNames = comp.tagName as KupTagNames;\n let completeStyle = componentCSS['default'];\n if (styles && styles[masterCustomStyle]) {\n completeStyle += styles[masterCustomStyle];\n }\n if (styles && styles[comp.tagName]) {\n completeStyle += ' ' + styles[comp.tagName];\n }\n if (comp.customStyle) {\n completeStyle += ' ' + comp.customStyle;\n }\n if (tagName) {\n if (fButtonUsers.includes(tagName)) {\n completeStyle += fButtonCSS['default'];\n }\n if (fCellUsers.includes(tagName)) {\n completeStyle += fCellCSS['default'];\n }\n if (fCheckboxUsers.includes(tagName)) {\n completeStyle += fCheckboxCSS['default'];\n }\n if (fChipUsers.includes(tagName)) {\n completeStyle += fChipCSS['default'];\n }\n if (fImageUsers.includes(tagName)) {\n completeStyle += fImageCSS['default'];\n }\n if (fPaginatorUsers.includes(tagName)) {\n completeStyle += fPaginatorCSS['default'];\n }\n if (fProgressBarUsers.includes(tagName)) {\n completeStyle += fProgressBarCSS['default'];\n }\n if (fRadioUsers.includes(tagName)) {\n completeStyle += fRadioCSS['default'];\n }\n if (fRatingUsers.includes(tagName)) {\n completeStyle += fRatingCSS['default'];\n }\n if (fSwitchUsers.includes(tagName)) {\n completeStyle += fSwitchCSS['default'];\n }\n if (fTypographyUsers.includes(tagName)) {\n completeStyle += FTypographyCSS['default'];\n }\n if (fTextFieldUsers.includes(tagName)) {\n completeStyle += fTextFieldCSS['default'];\n }\n if (editorUsers.includes(tagName)) {\n completeStyle += applicationCSS['default'];\n }\n if (rippleUsers.includes(tagName)) {\n completeStyle += rippleCSS['default'];\n }\n }\n return completeStyle ? completeStyle : null;\n }\n /**\n * Checks whether on a given color the text should be white or black.\n * @param {string} color - Color used to check the contrast.\n * @returns {string} \"white\" or \"black\".\n */\n colorContrast(color: string): string {\n color = this.colorCheck(color).rgbColor;\n const colorValues: string[] = color.replace(/[^\\d,.]/g, '').split(',');\n const brightness: number = Math.round(\n (parseInt(colorValues[0]) * 299 +\n parseInt(colorValues[1]) * 587 +\n parseInt(colorValues[2]) * 114) /\n 1000\n );\n return brightness > 125 ? 'black' : 'white';\n }\n /**\n * Generates a random HEX color.\n * @param {number} brightness - Brightness of the color generated (0-255).\n * @returns {string} Random HEX color.\n */\n randomColor(brightness: number): string {\n function randomChannel(brightness: number) {\n var r = 255 - brightness;\n var n = 0 | (Math.random() * r + brightness);\n var s = n.toString(16);\n return s.length == 1 ? '0' + s : s;\n }\n return (\n '#' +\n randomChannel(brightness) +\n randomChannel(brightness) +\n randomChannel(brightness)\n );\n }\n /**\n * Sets a random theme between those specified in this.list (excludes \"print\" and \"test\") and different from the currently used one.\n */\n randomTheme(): void {\n let themes: string[] = [];\n for (var key in this.list) {\n if (this.list.hasOwnProperty(key)) {\n if (key !== 'test' && key !== 'print') {\n themes.push(key);\n }\n }\n }\n if (themes.length > 0) {\n let index = null;\n while (index === null || themes[index] === this.name) {\n index = Math.floor(Math.random() * Math.floor(themes.length));\n }\n this.set(themes[index]);\n } else {\n dom.ketchup.debug.logMessage(\n 'kup-theme',\n \"Couldn't set a random theme: no themes available!\",\n KupDebugCategory.WARNING\n );\n }\n }\n /**\n * Returns HEX, RGB, HSL, HSL values and RGB values from a given color.\n * @param {string} color - Input color.\n * @returns {KupThemeColor} Object of color values: hexColor (\"#ffffff\"), hslColor (\"hsl(255,100%,100%)\"), hslValues (\"255,100%,100%\"), rgbColor (\"rgb(255,255,255)\") and rgbValues (\"255,255,255\").\n */\n colorCheck(color: string): KupThemeColor {\n //Testing whether the color is transparent, if it is a fall back value will be returned matching the background-color\n if (color === 'transparent') {\n color = this.cssVars['--kup-background-color'];\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Received TRANSPARENT color, converted to ' +\n color +\n ' (theme background).'\n );\n }\n\n const altRgbRe: RegExp = /R(\\d{1,3})G(\\d{1,3})B(\\d{1,3})/;\n const altRgb: boolean = altRgbRe.test(color);\n if (altRgb) {\n const parts: RegExpMatchArray = color.match(altRgbRe);\n color = 'rgb(' + parts[1] + ',' + parts[2] + ',' + parts[3] + ')';\n }\n\n let isHex: boolean = color.substring(0, 1) === '#';\n const isHsl: boolean = color.substring(0, 3).toLowerCase() === 'hsl';\n const isRgb: boolean = color.substring(0, 3).toLowerCase() === 'rgb';\n\n //If true, supposedly it's a code word\n if (!isHex && !isHsl && !isRgb) {\n const oldColor: string = color;\n color = this.codeToHex(color);\n isHex = color.substring(0, 1) === '#' ? true : false;\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Received CODE NAME color ' +\n oldColor +\n ', converted to ' +\n color +\n '.'\n );\n }\n\n //Testing whether the color is \"hex\" value or \"hsl\"\n let hexColor: string = null;\n let rgbColor: string = null;\n let hslColor: string = null;\n let hslValues: string = null;\n let hue: string = null;\n let lightness: string = null;\n let saturation: string = null;\n\n if (isHex || isHsl) {\n const oldColor: string = color;\n let rgbColorObj: KupThemeRGBValues = null;\n if (isHex) {\n hexColor = color;\n rgbColorObj = this.hexToRgb(color);\n } else {\n hslColor = color;\n const regexp: RegExp =\n /hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\)/g;\n const hsl: string[] = regexp.exec(color).slice(1);\n hslValues = hsl[0] + ',' + hsl[1] + ',' + hsl[2];\n hue = hsl[0];\n saturation = hsl[2];\n lightness = hsl[1];\n const h: number = parseInt(hue.replace('deg', ''));\n const s: number = parseInt(saturation.replace('%', '')) / 100;\n const l: number = parseInt(lightness.replace('%', '')) / 100;\n rgbColorObj = this.hslToRgb(h, s, l);\n }\n try {\n color =\n 'rgb(' +\n rgbColorObj.r +\n ',' +\n rgbColorObj.g +\n ',' +\n rgbColorObj.b +\n ')';\n if (isHex) {\n const hsl: KupThemeHSLValues = this.rgbToHsl(\n rgbColorObj.r,\n rgbColorObj.g,\n rgbColorObj.b\n );\n hue = hsl.h.toString();\n saturation = hsl.s.toString() + '%';\n lightness = hsl.l.toString() + '%';\n hslValues = hue + ',' + saturation + ',' + lightness;\n hslColor = 'hsl(' + hslValues + ')';\n } else {\n hexColor = this.rgbToHex(\n rgbColorObj.r,\n rgbColorObj.g,\n rgbColorObj.b\n );\n }\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Received HEX color ' +\n oldColor +\n ', converted to ' +\n color +\n '.'\n );\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Invalid color: ' + color + '.'\n );\n }\n }\n\n let rgbValues: string = null;\n const values: RegExpMatchArray = color.match(\n /rgba?\\((\\d{1,3}), ?(\\d{1,3}), ?(\\d{1,3})\\)?(?:, ?(\\d(?:\\.\\d?))\\))?/\n );\n\n try {\n rgbValues = values[1] + ',' + values[2] + ',' + values[3];\n rgbColor = color;\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Color not converted to rgb values: ' + color + '.'\n );\n }\n\n if (!hexColor) {\n try {\n hexColor = this.rgbToHex(\n parseInt(values[1]),\n parseInt(values[2]),\n parseInt(values[3])\n );\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Color not converted to hex value: ' + color + '.'\n );\n }\n }\n\n if (!hslColor || !hslValues) {\n try {\n const hsl: KupThemeHSLValues = this.rgbToHsl(\n parseInt(values[1]),\n parseInt(values[2]),\n parseInt(values[3])\n );\n hue = hsl.h.toString();\n saturation = hsl.s.toString() + '%';\n lightness = hsl.l.toString() + '%';\n hslValues = hsl.h + ',' + hsl.s + '%,' + hsl.l + '%';\n hslColor = 'hsl(' + hsl.h + ',' + hsl.s + '%,' + hsl.l + '%)';\n } catch (error) {\n dom.ketchup.debug.logMessage(\n 'theme-manager',\n 'Color not converted to hex value: ' + color + '.'\n );\n }\n }\n\n return {\n hexColor: hexColor,\n hslColor: hslColor,\n hslValues: hslValues,\n hue: hue,\n lightness: lightness,\n saturation: saturation,\n rgbColor: rgbColor,\n rgbValues: rgbValues,\n };\n }\n /**\n * Converts an HEX color to its RGB values.\n * @param {string} hex - Hex code.\n * @returns {KupThemeRGBValues} Object containing RGB values.\n */\n hexToRgb(hex: string): KupThemeRGBValues {\n var result: RegExpExecArray =\n /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null;\n }\n /**\n * Converts an HSL color to its RGB values.\n * @param {number} h - Hue (range [0, 360)).\n * @param {number} s - Saturation (range [0, 1)).\n * @param {number} l - Lightness (range [0, 1)).\n * @returns {Array} RGB values.\n */\n hslToRgb(h: number, s: number, l: number): KupThemeRGBValues {\n if (h == undefined) {\n return { r: 0, g: 0, b: 0 };\n }\n\n let huePrime: number = h / 60;\n const chroma: number = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent: number =\n chroma * (1 - Math.abs((huePrime % 2) - 1));\n\n huePrime = Math.floor(huePrime);\n let red: number, green: number, blue: number;\n\n if (huePrime === 0) {\n red = chroma;\n green = secondComponent;\n blue = 0;\n } else if (huePrime === 1) {\n red = secondComponent;\n green = chroma;\n blue = 0;\n } else if (huePrime === 2) {\n red = 0;\n green = chroma;\n blue = secondComponent;\n } else if (huePrime === 3) {\n red = 0;\n green = secondComponent;\n blue = chroma;\n } else if (huePrime === 4) {\n red = secondComponent;\n green = 0;\n blue = chroma;\n } else if (huePrime === 5) {\n red = chroma;\n green = 0;\n blue = secondComponent;\n }\n\n const lightnessAdjustment: number = l - chroma / 2;\n red += lightnessAdjustment;\n green += lightnessAdjustment;\n blue += lightnessAdjustment;\n return {\n r: Math.round(red * 255),\n g: Math.round(green * 255),\n b: Math.round(blue * 255),\n };\n }\n /**\n * Converts a color in RGB format to the corresponding HEX color.\n * @param {number} r - Red channel value.\n * @param {number} g - Green channel value.\n * @param {number} b - Blue channel value.\n * @returns {string} HEX color.\n */\n rgbToHex(r: number, g: number, b: number): string {\n return (\n '#' + this.valueToHex(r) + this.valueToHex(g) + this.valueToHex(b)\n );\n }\n /**\n * Converts a color in RGB format to the corresponding HSL color.\n * @param {number} r - Red channel value.\n * @param {number} g - Green channel value.\n * @param {number} b - Blue channel value.\n * @returns {KupThemeHSLValues} Object containing HSL values.\n */\n rgbToHsl(r: number, g: number, b: number): KupThemeHSLValues {\n // Make r, g, and b fractions of 1\n r /= 255;\n g /= 255;\n b /= 255;\n\n // Find greatest and smallest channel values\n const cmin: number = Math.min(r, g, b),\n cmax: number = Math.max(r, g, b),\n delta: number = cmax - cmin;\n let h: number = 0,\n s: number = 0,\n l: number = 0;\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0;\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6;\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2;\n // Blue is max\n else h = (r - g) / delta + 4;\n\n h = Math.round(h * 60);\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360;\n\n // Calculate lightness\n l = (cmax + cmin) / 2;\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n\n return { h: h, s: s, l: l };\n }\n /**\n * Converts a single RGB value to the corresponding HEX value.\n * @param {number} c - Color value.\n * @returns {string} HEX value.\n */\n valueToHex(c: number): string {\n const hex: string = c.toString(16);\n return hex.length == 1 ? '0' + hex : hex;\n }\n /**\n * Converts a color code word to the corresponding HEX value.\n * @param {string} color - Color code word.\n * @returns {string} HEX value.\n */\n codeToHex(color: string): string {\n const colorCodes: GenericObject = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n };\n if (colorCodes[color.toLowerCase()]) {\n return colorCodes[color.toLowerCase()];\n } else {\n dom.ketchup.debug.logMessage(\n 'theme manager',\n 'Could not decode color ' + color + '!'\n );\n return color;\n }\n }\n}\n"]}