{"version":3,"file":"/Users/anthonygubler/development/dojo-org/widgets/src/radio-group/middleware.ts","sourceRoot":"","sources":["middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAOhF,MAAM,MAAM,GAAG,sBAAsB,EAAoB,CAAC;AAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;IAChE,OAAO,CAAC,OAAgC,EAAE,YAAoB,EAAE,KAAc,EAAE,EAAE;QACjF,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEnD,IAAI,oBAAoB,KAAK,YAAY,EAAE;gBAC1C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;aACpC;SACD;QAED,OAAO,CAAC,GAAW,EAAE,EAAE;YAGtB,SAAS,OAAO,CAAC,OAAiB;gBACjC,MAAM,aAAa,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAExE,IAAI,OAAO,KAAK,SAAS,EAAE;oBAC1B,OAAO,aAAa,KAAK,GAAG,CAAC;iBAC7B;qBAAM,IAAI,OAAO,IAAI,aAAa,KAAK,GAAG,EAAE;oBAC5C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,CAAC;iBACb;YACF,CAAC;YAED,OAAO;gBACN,OAAO;aACP,CAAC;QACH,CAAC,CAAC;IACH,CAAC,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { create } from '@dojo/framework/core/vdom';\nimport { createICacheMiddleware } from '@dojo/framework/core/middleware/icache';\n\ninterface RadioGroupICache {\n\tinitial: string;\n\tvalue: string;\n}\n\nconst icache = createICacheMiddleware<RadioGroupICache>();\nconst factory = create({ icache });\n\nexport const radioGroup = factory(({ middleware: { icache } }) => {\n\treturn (onValue: (value: string) => void, initialValue: string, value?: string) => {\n\t\tif (value === undefined) {\n\t\t\tconst existingInitialValue = icache.get('initial');\n\n\t\t\tif (existingInitialValue !== initialValue) {\n\t\t\t\ticache.set('value', initialValue);\n\t\t\t\ticache.set('initial', initialValue);\n\t\t\t}\n\t\t}\n\n\t\treturn (key: string) => {\n\t\t\tfunction checked(): boolean;\n\t\t\tfunction checked(checked: boolean): void;\n\t\t\tfunction checked(checked?: boolean): boolean | void {\n\t\t\t\tconst existingValue = value === undefined ? icache.get('value') : value;\n\n\t\t\t\tif (checked === undefined) {\n\t\t\t\t\treturn existingValue === key;\n\t\t\t\t} else if (checked && existingValue !== key) {\n\t\t\t\t\ticache.set('value', key);\n\t\t\t\t\tonValue(key);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tchecked\n\t\t\t};\n\t\t};\n\t};\n});\n"]}