{"version":3,"file":"Layout.jsx","sourceRoot":"lib/","sources":["containers/Layout.tsx"],"names":[],"mappings":";;;AAAA,2BAA8E;AAE9E,sCAImB;AACnB,6CAAyC;AAE5B,QAAA,MAAM,GAAG,IAAA,qBAAe,EAAC;IACpC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,MAAiD,EAAE,OAAO,EAAE,OAAO,EAAE;QACpF,SAAS,EAAE,EAAE,IAAI,EAAE,MAAqD,EAAE,OAAO,EAAE,KAAK,EAAE;QAC1F,SAAS,EAAE,EAAE,IAAI,EAAE,MAAqD,EAAE,OAAO,EAAE,cAAQ,CAAC,EAAE;QAC9F,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAoD,EAAE,OAAO,EAAE,OAAO,EAAE;KAC3F;IACD,KAAK,EAAL,UAAM,KAAK,EAAE,EAAS;YAAP,KAAK,WAAA;QAClB,IAAM,SAAS,GAAG,IAAA,oBAAU,EAAyB,8BAAoB,CAAC,CAAA;QAC1E,IAAM,YAAY,GAAG,IAAA,SAAG,GAAkB,CAAA;QAE1C,IAAA,WAAK,EAAC,YAAY,EAAE;YAClB,IAAI,YAAY,CAAC,KAAK,EAAE;gBACtB,IAAA,aAAI,EAAC,KAAK,CAAC,SAAU,EAAE,UAAC,KAAK,EAAE,GAAG;;oBAChC,MAAA,MAAA,YAAY,CAAC,KAAK,0CAAE,KAAK,0CAAE,WAAW,CAAC,YAAK,GAAG,CAAE,EAAE,KAAK,CAAC,CAAA;gBAC3D,CAAC,CAAC,CAAA;aACH;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,SAAS,CAAC,KAAK,EAAE;YACnB,OAAO;;gBACL,OAAO,MAAA,KAAK,CAAC,OAAO,qDAAI,CAAA;YAC1B,CAAC,CAAA;SACF;QAED,IAAA,aAAO,EACL,8BAAoB,EACpB,IAAA,cAAQ,EAAC;YACP,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,KAAM;gBACnB,SAAS,EAAE,KAAK,CAAC,SAAU;gBAC3B,QAAQ,EAAE,KAAK,CAAC,QAAS;aAC1B,CAAA;QACH,CAAC,CAAC,CACH,CAAA;QAED,OAAO;;;YACL,OAAO,CACL,CAAC,GAAG,CACF,GAAG,CAAC,CAAC,YAAY,CAAC,CAClB,KAAK,CAAC;oBACJ,GAAC,UAAG,KAAK,CAAC,SAAS,QAAK,IAAG,IAAI;oBAC/B,GAAC,UAAG,KAAK,CAAC,SAAS,SAAG,KAAK,CAAC,KAAK,CAAE,IAAG,KAAK,CAAC,KAAK;uBACjD,CAEF;UAAA,CAAC,MAAA,KAAK,CAAC,OAAO,qDAAI,CACpB;QAAA,EAAE,GAAG,CAAC,CACP,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { defineComponent, provide, ref, watch, computed, PropType } from 'vue'\nimport { IDesignerLayoutProps } from '../types'\nimport {\n  DesignerLayoutSymbol,\n  IDesignerLayoutContext,\n  useContext,\n} from '../context'\nimport { each } from '@designable/shared'\n\nexport const Layout = defineComponent({\n  name: 'Layout',\n  props: {\n    theme: { type: String as PropType<IDesignerLayoutProps['theme']>, default: 'light' },\n    prefixCls: { type: String as PropType<IDesignerLayoutProps['prefixCls']>, default: 'dn-' },\n    variables: { type: Object as PropType<IDesignerLayoutProps['variables']>, default: () => { } },\n    position: { type: String as PropType<IDesignerLayoutProps['position']>, default: 'fixed' }\n  },\n  setup(props, { slots }) {\n    const layoutRef = useContext<IDesignerLayoutContext>(DesignerLayoutSymbol)\n    const containerRef = ref<HTMLDivElement>()\n\n    watch(containerRef, () => {\n      if (containerRef.value) {\n        each(props.variables!, (value, key) => {\n          containerRef.value?.style?.setProperty(`--${key}`, value)\n        })\n      }\n    })\n\n    if (layoutRef.value) {\n      return () => {\n        return slots.default?.()\n      }\n    }\n\n    provide(\n      DesignerLayoutSymbol,\n      computed(() => {\n        return {\n          theme: props.theme!,\n          prefixCls: props.prefixCls!,\n          position: props.position!\n        }\n      })\n    )\n\n    return () => {\n      return (\n        <div\n          ref={containerRef}\n          class={{\n            [`${props.prefixCls}app`]: true,\n            [`${props.prefixCls}${props.theme}`]: props.theme,\n          }}\n        >\n          {slots.default?.()}\n        </div>\n      )\n    }\n  },\n})\n"]}