2020-11-21 16:44:48 +01:00
import * as questions from "../assets/tagRenderings/questions.json" ;
import * as icons from "../assets/tagRenderings/icons.json" ;
2021-07-04 20:36:19 +02:00
import { Utils } from "../Utils" ;
2021-08-07 23:11:34 +02:00
import TagRenderingConfig from "../Models/ThemeConfig/TagRenderingConfig" ;
2021-09-09 20:26:12 +02:00
import { TagRenderingConfigJson } from "../Models/ThemeConfig/Json/TagRenderingConfigJson" ;
2020-10-27 01:01:34 +01:00
export default class SharedTagRenderings {
2021-09-09 00:05:51 +02:00
public static SharedTagRendering : Map < string , TagRenderingConfig > = SharedTagRenderings . generatedSharedFields ( ) ;
2021-09-09 20:26:12 +02:00
public static SharedTagRenderingJson : Map < string , TagRenderingConfigJson > = SharedTagRenderings . generatedSharedFieldsJsons ( ) ;
2021-09-09 00:05:51 +02:00
public static SharedIcons : Map < string , TagRenderingConfig > = SharedTagRenderings . generatedSharedFields ( true ) ;
2020-10-27 01:01:34 +01:00
2021-09-09 00:05:51 +02:00
private static generatedSharedFields ( iconsOnly = false ) : Map < string , TagRenderingConfig > {
2021-09-09 20:26:12 +02:00
const configJsons = SharedTagRenderings . generatedSharedFieldsJsons ( iconsOnly )
const d = new Map < string , TagRenderingConfig > ( )
for ( const key of Array . from ( configJsons . keys ( ) ) ) {
2020-10-27 01:01:34 +01:00
try {
2021-11-07 16:34:51 +01:00
d . set ( key , new TagRenderingConfig ( configJsons . get ( key ) , ` SharedTagRenderings. ${ key } ` ) )
2020-10-27 01:01:34 +01:00
} catch ( e ) {
2021-09-09 00:05:51 +02:00
if ( ! Utils . runningFromConsole ) {
2021-07-04 20:36:19 +02:00
console . error ( "BUG: could not parse" , key , " from questions.json or icons.json - this error happened during the build step of the SharedTagRenderings" , e )
}
2020-10-27 01:01:34 +01:00
}
}
2021-09-09 20:26:12 +02:00
return d
}
private static generatedSharedFieldsJsons ( iconsOnly = false ) : Map < string , TagRenderingConfigJson > {
const dict = new Map < string , TagRenderingConfigJson > ( ) ;
2020-12-06 00:20:27 +01:00
if ( ! iconsOnly ) {
for ( const key in questions ) {
2021-09-09 20:26:12 +02:00
dict . set ( key , < TagRenderingConfigJson > questions [ key ] )
2020-12-06 00:20:27 +01:00
}
2020-11-21 16:44:48 +01:00
}
for ( const key in icons ) {
2021-09-09 20:26:12 +02:00
dict . set ( key , < TagRenderingConfigJson > icons [ key ] )
2020-11-21 16:44:48 +01:00
}
2021-11-08 03:00:58 +01:00
dict . forEach ( ( value , key ) = > value . id = key )
2020-12-06 00:20:27 +01:00
2020-10-27 01:01:34 +01:00
return dict ;
}
2021-11-10 18:42:31 +01:00
2020-10-27 01:01:34 +01:00
}