@kosdev-code/kos-ui-plugin 2.0.1 → 2.0.19
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.
- package/dev.cjs +7 -7
- package/dev.cjs.map +1 -1
- package/dev.js +37 -34
- package/dev.js.map +1 -1
- package/index.cjs +6 -6
- package/index.cjs.map +1 -1
- package/index.js +49 -57
- package/index.js.map +1 -1
- package/lib/dev/components/storybook/control-pour-story-container/control-pour-story-container.d.ts +8 -0
- package/lib/dev/components/storybook/control-pour-story-container/control-pour-story-container.d.ts.map +1 -0
- package/lib/dev/components/storybook/control-pour-story-container/index.d.ts +2 -0
- package/lib/dev/components/storybook/control-pour-story-container/index.d.ts.map +1 -0
- package/lib/dev/components/storybook/index.d.ts +1 -0
- package/lib/dev/components/storybook/index.d.ts.map +1 -1
- package/lib/hooks/use-dynamic-component.d.ts +20 -0
- package/lib/hooks/use-dynamic-component.d.ts.map +1 -1
- package/lib/utils/contribution-reducer.d.ts.map +1 -1
- package/lib/utils/control-pour-reducer.d.ts +5 -0
- package/lib/utils/control-pour-reducer.d.ts.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/initialize-plugins.d.ts +39 -0
- package/lib/utils/initialize-plugins.d.ts.map +1 -1
- package/lib/utils/plugin-extension-manager.d.ts.map +1 -1
- package/lib/utils/plugin-extension-registry-init.d.ts +2 -0
- package/lib/utils/plugin-extension-registry-init.d.ts.map +1 -0
- package/lib/utils/plugin-extension-registry.d.ts +6 -0
- package/lib/utils/plugin-extension-registry.d.ts.map +1 -0
- package/lib/utils/resolve-best-extension.d.ts +12 -0
- package/lib/utils/resolve-best-extension.d.ts.map +1 -0
- package/package.json +2 -2
- package/resolve-best-extension-D5Ord7XK.cjs +2 -0
- package/resolve-best-extension-D5Ord7XK.cjs.map +1 -0
- package/resolve-best-extension-DAJIkfJh.js +272 -0
- package/resolve-best-extension-DAJIkfJh.js.map +1 -0
- package/types/global.d.ts +5 -0
- package/types/plugins.d.ts +6 -1
- package/utils.cjs +1 -1
- package/utils.cjs.map +1 -1
- package/utils.js +344 -101
- package/utils.js.map +1 -1
- package/plugin-extension-manager-7xDx0VSt.js +0 -524
- package/plugin-extension-manager-7xDx0VSt.js.map +0 -1
- package/plugin-extension-manager-D9aw-mUM.cjs +0 -2
- package/plugin-extension-manager-D9aw-mUM.cjs.map +0 -1
package/dev.cjs
CHANGED
|
@@ -22,29 +22,29 @@
|
|
|
22
22
|
flex-direction: column;
|
|
23
23
|
gap: 32px;
|
|
24
24
|
padding: 24px;
|
|
25
|
-
`,B=S.kosComponent(({kOSMetadata:{experiencesMap:n},list:e,map:o,resolver:c})=>{const[s,i]=p.useState(),r=e.map(u=>u.namespace)||[],{t:l}=S.useKosTranslation([...new Set(r)]),C=s==null?void 0:s.experienceId,a=n[C],g=a==null?void 0:a.component,x=a==null?void 0:a.location,h=p.useCallback(u=>{const f=o[u];i(f||null)},[o]),j=p.useMemo(()=>e.map(u=>({...u,label:l(`${u.namespace}:${u.title}`,`"${u.title}"`)})),[e,l]);return t.jsxs(G,{children:[t.jsx(d.CardButtonGrid,{items:j,onSelect:h}),g&&x&&t.jsx(w,{component:g,location:x,resolver:c,props:{onComplete:h}})]})}),K={cui:n=>t.jsx(v,{...n,showOpenButton:!1}),utilities:B,setupStep:v,settings:n=>t.jsx(M,{baseRoute:"settings",...n})},H=S.kosComponent(({kOSJSON:n,resolver:e})=>{const o=p.useMemo(()=>k(n),[n]),c=p.useMemo(()=>Object.keys(o.contributes).filter(s=>Array.isArray(o.contributes[s])&&o.contributes[s].length).map(s=>{const i=K[s]||D;return{id:s,label:s,content:t.jsx(i,{kOSMetadata:o,list:o[`${s}List`],map:o[`${s}Map`],resolver:e},s)}}),[]);return t.jsx(d.TabRouter,{baseRoute:"",tabs:c})}),
|
|
25
|
+
`,B=S.kosComponent(({kOSMetadata:{experiencesMap:n},list:e,map:o,resolver:c})=>{const[s,i]=p.useState(),r=e.map(u=>u.namespace)||[],{t:l}=S.useKosTranslation([...new Set(r)]),C=s==null?void 0:s.experienceId,a=n[C],g=a==null?void 0:a.component,x=a==null?void 0:a.location,h=p.useCallback(u=>{const f=o[u];i(f||null)},[o]),j=p.useMemo(()=>e.map(u=>({...u,label:l(`${u.namespace}:${u.title}`,`"${u.title}"`)})),[e,l]);return t.jsxs(G,{children:[t.jsx(d.CardButtonGrid,{items:j,onSelect:h}),g&&x&&t.jsx(w,{component:g,location:x,resolver:c,props:{onComplete:h}})]})}),K={cui:n=>t.jsx(v,{...n,showOpenButton:!1}),utilities:B,setupStep:v,settings:n=>t.jsx(M,{baseRoute:"settings",...n})},H=S.kosComponent(({kOSJSON:n,resolver:e})=>{const o=p.useMemo(()=>k(n),[n]),c=p.useMemo(()=>Object.keys(o.contributes).filter(s=>Array.isArray(o.contributes[s])&&o.contributes[s].length).map(s=>{const i=K[s]||D;return{id:s,label:s,content:t.jsx(i,{kOSMetadata:o,list:o[`${s}List`],map:o[`${s}Map`],resolver:e},s)}}),[]);return t.jsx(d.TabRouter,{baseRoute:"",tabs:c})}),P=m.div`
|
|
26
26
|
display: flex;
|
|
27
27
|
flex-direction: column;
|
|
28
28
|
gap: 32px;
|
|
29
29
|
width: 100%;
|
|
30
|
-
`,
|
|
30
|
+
`,q=({kOSMetadata:{defaultExperienceId:n,experienceList:e,experienceMap:o},resolver:c})=>{const[s,i]=p.useState(n),r=o[s].component,l=o[s].location,C=p.useCallback(a=>{i(a)},[]);return t.jsxs(P,{children:[t.jsx(d.PickerCard,{label:"Experience",items:e,selectedItemId:s,cancelButtonLabel:"Cancel",proceedButtonLabel:"Select",onSave:C,displayValue:r}),t.jsx(w,{component:r,location:l,resolver:c})]})},A="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='kos_logo_full'%20data-name='kos_logo_full'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2041.58%2016.95'%20fill='%23fff'%3e%3cpath%20d='m21.49,12.39c-.7-.38-1.25-.91-1.64-1.59-.4-.68-.59-1.45-.59-2.32s.2-1.64.59-2.32c.4-.68.94-1.21,1.64-1.59.7-.38,1.49-.57,2.38-.57s1.68.19,2.38.57c.7.38,1.25.91,1.64,1.59.4.68.59,1.45.59,2.32s-.2,1.64-.59,2.32c-.4.68-.94,1.21-1.64,1.59-.7.38-1.49.57-2.38.57s-1.68-.19-2.38-.57Zm3.76-1.49c.4-.24.72-.56.95-.98.23-.42.34-.9.34-1.43s-.11-1.01-.34-1.43c-.23-.42-.54-.75-.95-.98-.4-.24-.86-.35-1.37-.35s-.97.12-1.37.35c-.4.24-.72.56-.95.98-.23.42-.34.9-.34,1.43s.11,1.01.34,1.43c.23.42.54.75.95.98.4.24.86.35,1.37.35s.97-.12,1.37-.35Zm6.34,1.67c-.73-.24-1.32-.56-1.76-.98l1.16-1.42c.81.72,1.77,1.08,2.89,1.08.51,0,.92-.1,1.24-.29.31-.19.47-.43.47-.71,0-.21-.09-.38-.28-.53-.18-.14-.5-.26-.94-.35l-1.84-.35c-.8-.15-1.4-.43-1.79-.83-.4-.4-.59-.91-.59-1.51,0-.54.16-1.02.47-1.42.32-.4.76-.71,1.32-.93s1.2-.32,1.91-.32c.67,0,1.32.1,1.93.29s1.15.49,1.6.9l-1.08,1.38c-.76-.62-1.6-.92-2.51-.92-.49,0-.89.08-1.22.25-.32.17-.49.38-.49.64,0,.17.08.32.25.44.16.13.48.24.94.32l1.7.31c.85.16,1.49.46,1.91.91.43.44.64.97.64,1.59,0,.55-.15,1.04-.44,1.46s-.71.75-1.25.98-1.17.35-1.88.35c-.86,0-1.65-.12-2.38-.35ZM41.5,1c0-.55-.46-1-1.01-1H1C.45,0,0,.45,0,1v14.95c0,.55.45,1,1,1h15.2v-.02s.06.02.1.02h24.29c.55,0,1-.45.99-1l-.08-14.95Zm-25.21,14.95l-.09-14.95h24.3s.09,14.95.09,14.95h-24.3Zm-8.34-7.1l-1.66,1.64v2.32h-1.88V4.16h1.88v4.09l4.1-4.09h2.27l-3.42,3.4,3.62,5.24h-2.23l-2.69-3.96Z'%20/%3e%3c/svg%3e",R=m.div`
|
|
31
31
|
background-color: var(--ddk-component-top-navigation-background-color);
|
|
32
32
|
color: var(--ddk-component-top-navigation-color);
|
|
33
|
-
`,
|
|
33
|
+
`,Z=m.div`
|
|
34
34
|
padding: var(--ddk-component-top-navigation-padding);
|
|
35
35
|
display: flex;
|
|
36
36
|
justify-content: space-between;
|
|
37
37
|
align-items: center;
|
|
38
|
-
`,
|
|
38
|
+
`,_=m.div`
|
|
39
39
|
display: flex;
|
|
40
40
|
justify-content: space-between;
|
|
41
41
|
align-items: center;
|
|
42
42
|
gap: 16px;
|
|
43
|
-
`,
|
|
43
|
+
`,z=m.div`
|
|
44
44
|
width: 100px;
|
|
45
45
|
`,F=m.h1`
|
|
46
46
|
font-size: 16px;
|
|
47
|
-
`,N=()=>p.useMemo(()=>[],[]),V=()=>{const n=N();return t.jsx(
|
|
47
|
+
`,N=()=>p.useMemo(()=>[],[]),V=()=>{const n=N();return t.jsx(R,{children:t.jsx(d.Container,{children:t.jsxs(Z,{children:[t.jsxs(_,{children:[t.jsx(z,{children:t.jsx("img",{alt:"KOS logo",src:A})}),t.jsx(F,{children:"Welcome to KOS"})]}),t.jsx(d.TopNavigationButtonList,{items:n})]})})})},W=m.div`
|
|
48
48
|
display: flex;
|
|
49
49
|
flex-direction: column;
|
|
50
50
|
overflow: hidden;
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
display: flex;
|
|
54
54
|
flex-direction: column;
|
|
55
55
|
overflow-y: auto;
|
|
56
|
-
`,Q=S.kosComponent(({children:n})=>t.jsxs(W,{children:[t.jsx(V,{}),t.jsx(J,{children:n})]})),X=({children:n})=>{const{componentModeOverride:e}=d.useComponentConfigurationContext();return t.jsx(d.Modal,{contain:e!=="compact",mode:"maximized",show:!0,children:t.jsxs(t.Fragment,{children:[t.jsx(d.Header,{CloseButton:e==="compact"?d.BackButton:void 0,contain:e==="compact",showCloseButton:!0,showOpenButton:!1,title:"CUI"}),n]})})},
|
|
56
|
+
`,Q=S.kosComponent(({children:n})=>t.jsxs(W,{children:[t.jsx(V,{}),t.jsx(J,{children:n})]})),X=({children:n})=>n,Y=({children:n})=>{const{componentModeOverride:e}=d.useComponentConfigurationContext();return t.jsx(d.Modal,{contain:e!=="compact",mode:"maximized",show:!0,children:t.jsxs(t.Fragment,{children:[t.jsx(d.Header,{CloseButton:e==="compact"?d.BackButton:void 0,contain:e==="compact",showCloseButton:!0,showOpenButton:!1,title:"CUI"}),n]})})},tt=({children:n})=>n,nt=({children:n})=>t.jsxs(d.TabContainer,{children:[t.jsx(d.SettingsSubheading,{children:"Setting"}),n]}),et=({children:n})=>{const{componentModeOverride:e}=d.useComponentConfigurationContext();return t.jsx(d.Modal,{contain:e!=="compact",mode:"maximized",show:!0,children:t.jsxs(t.Fragment,{children:[t.jsx(d.Header,{CloseButton:e==="compact"?d.BackButton:void 0,contain:e==="compact",showCloseButton:!0,showOpenButton:!0,title:"Setup Step"}),n]})})},ot=({children:n})=>n;exports.CUIStoryContainer=Y;exports.ControlPourStoryContainer=X;exports.DynamicComponentView=w;exports.DynamicContainer=H;exports.DynamicViewBasic=D;exports.DynamicViewModal=v;exports.DynamicViewPicker=q;exports.DynamicViewSettings=M;exports.DynamicViewUtilities=B;exports.Header=V;exports.NavStoryContainer=tt;exports.SettingStoryContainer=nt;exports.SetupStepStoryContainer=et;exports.Shell=Q;exports.UtilityStoryContainer=ot;exports.parse=k;
|
|
57
57
|
//# sourceMappingURL=dev.cjs.map
|
package/dev.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.cjs","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-component-view.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/normalize.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/kos-metadata-parser.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-basic.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-modal.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-settings.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-utilities.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-picker.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/kos-logo.svg","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/header.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/shell.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/cui-story-container/cui-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/nav-story-container/nav-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setting-story-container/setting-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setup-step-story-container/setup-step-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/utility-story-container/utility-story-container.tsx"],"sourcesContent":["import { ElementType, useEffect, useState } from \"react\";\n\ninterface DynamicComponentViewProps {\n component: string;\n location: string;\n resolver: (location: string) => any;\n props?: any;\n}\n\nexport const DynamicComponentView = ({\n component,\n location,\n resolver,\n props,\n}: DynamicComponentViewProps) => {\n const [Component, setComponent] = useState<ElementType>();\n\n useEffect(() => {\n const load = async () => {\n const result = await resolver(location);\n\n setComponent(result[component]);\n };\n\n load();\n }, [component, location, resolver]);\n\n return Component ? <Component {...props} /> : null;\n};\n","export const normalize = (json: any): Record<string, any> =>\n Object.entries(json).reduce((parsed: Record<string, any>, [key, value]) => {\n if (Array.isArray(value) || (typeof value === \"object\" && value !== null)) {\n const listKey = `${key}List`;\n const mapKey = `${key}Map`;\n\n const list: any[] = [];\n const map: Record<string, any> = {};\n\n const items = Array.isArray(value) ? value : Object.values(value);\n items.forEach((item) => {\n const data = { ...item, label: item.title };\n list.push(data);\n map[data.id] = data;\n });\n\n parsed[listKey] = list;\n parsed[mapKey] = map;\n }\n\n return parsed;\n }, {});\n","import { normalize } from \"./normalize\";\n\nexport interface KOSMetadata {\n json: any;\n [key: string]: any;\n}\n\nexport const parse = (json: any): KOSMetadata => {\n const contributes = json.kosdev.ddk.ncui.plugin.contributes;\n\n const parsed: Record<string, any> = normalize(contributes);\n\n return {\n ...parsed,\n contributes,\n json,\n };\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewBasicContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewBasicProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewBasic = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewBasicProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n setSelectedItem(item);\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewBasicContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n )}\n </DynamicViewBasicContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid, Header, Modal } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewModalContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewModalProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewModal = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n showOpenButton = true,\n showCloseButton = true,\n resolver,\n }: DynamicViewModalProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewModalContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <Modal mode=\"maximized\" show={true}>\n <>\n <Header\n title={t(selectedItem.title, `\"${selectedItem.title}\"`)}\n showOpenButton={showOpenButton}\n showCloseButton={showCloseButton}\n onClose={() => {\n select(\"\");\n }}\n />\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </>\n </Modal>\n )}\n </DynamicViewModalContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport {\n SettingsSubheading,\n TabContainer,\n Tabs,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport type { SettingsDefinition } from \"../../../../types/global\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewSettingsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\nconst GroupContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\ninterface Setting {\n id: string;\n title: string;\n namespace: string;\n settingsGroup: string;\n experienceId: string;\n}\n\ninterface SettingsViewProps {\n experiencesMap: any;\n resolver: (location: string) => any;\n setting: Setting;\n}\n\nconst SettingView = ({\n experiencesMap,\n resolver,\n setting: { experienceId, id, namespace, title },\n}: SettingsViewProps) => {\n const { t } = useKosTranslation(namespace);\n\n const experience = experiencesMap[experienceId];\n const component = experience?.component;\n const location = experience?.location;\n\n return (\n <TabContainer>\n <SettingsSubheading>{t(title, `\"${title}\"`)}</SettingsSubheading>\n <DynamicComponentView\n key={id}\n component={component}\n location={location}\n resolver={resolver}\n />\n </TabContainer>\n );\n};\n\ninterface GroupViewProps {\n experiencesMap: any;\n group: Setting[];\n resolver: (location: string) => any;\n}\n\nconst GroupView = ({ experiencesMap, group, resolver }: GroupViewProps) => (\n <GroupContainer>\n {group.map((setting) => (\n <SettingView\n key={setting.settingsGroup}\n experiencesMap={experiencesMap}\n resolver={resolver}\n setting={setting}\n />\n ))}\n </GroupContainer>\n);\n\ninterface DynamicViewSettingsProps {\n kOSMetadata: KOSMetadata;\n list: SettingsDefinition[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n baseRoute?: string;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewSettings = ({\n kOSMetadata: { experiencesMap },\n list,\n\n resolver,\n}: DynamicViewSettingsProps) => {\n const groups = useMemo(() => {\n const groups: Record<string, any> = {};\n\n list.forEach((item) => {\n if (!groups[item.settingsGroup]) {\n groups[item.settingsGroup] = [];\n }\n\n groups[item.settingsGroup].push(item);\n });\n\n return groups;\n }, [list]);\n\n const tabs = useMemo(\n () =>\n Object.keys(groups).map((groupName) => {\n return {\n id: groupName,\n label: groupName,\n content: (\n <GroupView\n experiencesMap={experiencesMap}\n group={groups[groupName]}\n resolver={resolver}\n />\n ),\n };\n }),\n [experiencesMap, groups, resolver]\n );\n\n return (\n <DynamicViewSettingsContainer>\n <Tabs tabs={tabs} />\n </DynamicViewSettingsContainer>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewUtilitiesContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewUtilitiesProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewUtilities = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewUtilitiesProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewUtilitiesContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n props={{ onComplete: select }}\n />\n )}\n </DynamicViewUtilitiesContainer>\n );\n }\n);\n","import { TabRouter } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport { parse } from \"../../utils\";\nimport { DynamicViewBasic } from \"./dynamic-view-basic\";\nimport { DynamicViewModal } from \"./dynamic-view-modal\";\nimport { DynamicViewSettings } from \"./dynamic-view-settings\";\nimport { DynamicViewUtilities } from \"./dynamic-view-utilities\";\n\nconst contentComponentMap: Record<string, any> = {\n cui: (props: any) => <DynamicViewModal {...props} showOpenButton={false} />,\n utilities: DynamicViewUtilities,\n setupStep: DynamicViewModal,\n settings: (props: any) => (\n <DynamicViewSettings baseRoute=\"settings\" {...props} />\n ),\n};\n\ninterface DynamicContainerProps {\n kOSJSON: any;\n resolver: (location: string) => any;\n}\n\nexport const DynamicContainer: React.FunctionComponent<DynamicContainerProps> =\n kosComponent(({ kOSJSON, resolver }) => {\n const kOSMetadata = useMemo(() => parse(kOSJSON), [kOSJSON]);\n\n const tabs = useMemo(\n () =>\n Object.keys(kOSMetadata.contributes)\n .filter(\n (key) =>\n Array.isArray(kOSMetadata.contributes[key]) &&\n kOSMetadata.contributes[key].length\n )\n .map((key) => {\n const Component = contentComponentMap[key] || DynamicViewBasic;\n\n return {\n id: key,\n label: key,\n content: (\n <Component\n key={key}\n kOSMetadata={kOSMetadata}\n list={kOSMetadata[`${key}List`]}\n map={kOSMetadata[`${key}Map`]}\n resolver={resolver}\n />\n ),\n };\n }),\n []\n );\n\n return <TabRouter baseRoute=\"\" tabs={tabs} />;\n });\n","import styled from \"@emotion/styled\";\nimport { PickerCard } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useState } from \"react\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { KOSMetadata } from \"../../utils\";\n\nconst DynamicViewPickerContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n width: 100%;\n`;\n\ninterface DynamicViewPickerProps {\n kOSMetadata: KOSMetadata;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewPicker = ({\n kOSMetadata: { defaultExperienceId, experienceList, experienceMap },\n resolver,\n}: DynamicViewPickerProps) => {\n const [selectedExperienceID, setSelectedExperienceID] =\n useState(defaultExperienceId);\n\n const component = experienceMap[selectedExperienceID].component;\n const location = experienceMap[selectedExperienceID].location;\n\n const save = useCallback((experienceID: string) => {\n setSelectedExperienceID(experienceID);\n }, []);\n\n return (\n <DynamicViewPickerContainer>\n <PickerCard\n label=\"Experience\"\n items={experienceList}\n selectedItemId={selectedExperienceID}\n cancelButtonLabel=\"Cancel\"\n proceedButtonLabel=\"Select\"\n onSave={save}\n displayValue={component}\n />\n\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </DynamicViewPickerContainer>\n );\n};\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='kos_logo_full'%20data-name='kos_logo_full'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2041.58%2016.95'%20fill='%23fff'%3e%3cpath%20d='m21.49,12.39c-.7-.38-1.25-.91-1.64-1.59-.4-.68-.59-1.45-.59-2.32s.2-1.64.59-2.32c.4-.68.94-1.21,1.64-1.59.7-.38,1.49-.57,2.38-.57s1.68.19,2.38.57c.7.38,1.25.91,1.64,1.59.4.68.59,1.45.59,2.32s-.2,1.64-.59,2.32c-.4.68-.94,1.21-1.64,1.59-.7.38-1.49.57-2.38.57s-1.68-.19-2.38-.57Zm3.76-1.49c.4-.24.72-.56.95-.98.23-.42.34-.9.34-1.43s-.11-1.01-.34-1.43c-.23-.42-.54-.75-.95-.98-.4-.24-.86-.35-1.37-.35s-.97.12-1.37.35c-.4.24-.72.56-.95.98-.23.42-.34.9-.34,1.43s.11,1.01.34,1.43c.23.42.54.75.95.98.4.24.86.35,1.37.35s.97-.12,1.37-.35Zm6.34,1.67c-.73-.24-1.32-.56-1.76-.98l1.16-1.42c.81.72,1.77,1.08,2.89,1.08.51,0,.92-.1,1.24-.29.31-.19.47-.43.47-.71,0-.21-.09-.38-.28-.53-.18-.14-.5-.26-.94-.35l-1.84-.35c-.8-.15-1.4-.43-1.79-.83-.4-.4-.59-.91-.59-1.51,0-.54.16-1.02.47-1.42.32-.4.76-.71,1.32-.93s1.2-.32,1.91-.32c.67,0,1.32.1,1.93.29s1.15.49,1.6.9l-1.08,1.38c-.76-.62-1.6-.92-2.51-.92-.49,0-.89.08-1.22.25-.32.17-.49.38-.49.64,0,.17.08.32.25.44.16.13.48.24.94.32l1.7.31c.85.16,1.49.46,1.91.91.43.44.64.97.64,1.59,0,.55-.15,1.04-.44,1.46s-.71.75-1.25.98-1.17.35-1.88.35c-.86,0-1.65-.12-2.38-.35ZM41.5,1c0-.55-.46-1-1.01-1H1C.45,0,0,.45,0,1v14.95c0,.55.45,1,1,1h15.2v-.02s.06.02.1.02h24.29c.55,0,1-.45.99-1l-.08-14.95Zm-25.21,14.95l-.09-14.95h24.3s.09,14.95.09,14.95h-24.3Zm-8.34-7.1l-1.66,1.64v2.32h-1.88V4.16h1.88v4.09l4.1-4.09h2.27l-3.42,3.4,3.62,5.24h-2.23l-2.69-3.96Z'%20/%3e%3c/svg%3e\"","import styled from \"@emotion/styled\";\nimport {\n Container,\n TopNavigationButtonList,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { ReactNode, useMemo } from \"react\";\nimport kosLogo from \"./kos-logo.svg\";\n\nconst HeaderStyles = styled.div`\n background-color: var(--ddk-component-top-navigation-background-color);\n color: var(--ddk-component-top-navigation-color);\n`;\n\nconst ContainerStyles = styled.div`\n padding: var(--ddk-component-top-navigation-padding);\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst LogoContainerStyles = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n`;\n\nconst LogoStyles = styled.div`\n width: 100px;\n`;\n\nconst TitleStyles = styled.h1`\n font-size: 16px;\n`;\n\nconst useNavigationItems = () => {\n const navigationItems = useMemo(() => {\n const navigationItems: { children: ReactNode; to: string }[] = [\n // { children: 'Develop', to: '/develop' }\n ];\n\n return navigationItems;\n }, []);\n\n return navigationItems;\n};\n\nexport const Header = () => {\n const navigationItems = useNavigationItems();\n\n return (\n <HeaderStyles>\n <Container>\n <ContainerStyles>\n <LogoContainerStyles>\n <LogoStyles>\n <img alt=\"KOS logo\" src={kosLogo} />\n </LogoStyles>\n <TitleStyles>Welcome to KOS</TitleStyles>\n </LogoContainerStyles>\n <TopNavigationButtonList items={navigationItems} />\n </ContainerStyles>\n </Container>\n </HeaderStyles>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { ReactNode } from \"react\";\nimport { Header } from \"./header\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n`;\n\nconst Body = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n`;\n\ninterface ShellProps {\n children: ReactNode;\n}\n\nexport const Shell = kosComponent(({ children }: ShellProps) => (\n <Container>\n <Header />\n <Body>{children}</Body>\n </Container>\n));\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface CUIStoryContainerProps {\n children: ReactNode;\n}\n\nexport const CUIStoryContainer = ({ children }: CUIStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={false}\n title=\"CUI\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface NavStoryContainerProps {\n children: ReactNode;\n}\n\nexport const NavStoryContainer = ({ children }: NavStoryContainerProps) =>\n children;\n","import {\n SettingsSubheading,\n TabContainer,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SettingStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SettingStoryContainer = ({\n children,\n}: SettingStoryContainerProps) => (\n <TabContainer>\n <SettingsSubheading>Setting</SettingsSubheading>\n {children}\n </TabContainer>\n);\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SetupStepStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SetupStepStoryContainer = ({\n children,\n}: SetupStepStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={true}\n title=\"Setup Step\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface UtilityStoryContainerProps {\n children: ReactNode;\n}\n\nexport const UtilityStoryContainer = ({\n children,\n}: UtilityStoryContainerProps) => children;\n"],"names":["DynamicComponentView","component","location","resolver","props","Component","setComponent","useState","useEffect","result","jsx","normalize","json","parsed","key","value","listKey","mapKey","list","map","item","data","parse","contributes","DynamicViewBasicContainer","styled","DynamicViewBasic","kosComponent","experiencesMap","selectedItem","setSelectedItem","namespaces","ext","t","useKosTranslation","selectedExperienceID","experience","select","useCallback","itemID","translatedList","useMemo","CardButtonGrid","DynamicViewModalContainer","DynamicViewModal","showOpenButton","showCloseButton","Modal","jsxs","Fragment","Header","DynamicViewSettingsContainer","GroupContainer","SettingView","experienceId","id","namespace","title","TabContainer","SettingsSubheading","GroupView","group","setting","DynamicViewSettings","groups","tabs","groupName","Tabs","DynamicViewUtilitiesContainer","DynamicViewUtilities","contentComponentMap","DynamicContainer","kOSJSON","kOSMetadata","TabRouter","DynamicViewPickerContainer","DynamicViewPicker","defaultExperienceId","experienceList","experienceMap","setSelectedExperienceID","save","experienceID","PickerCard","kosLogo","HeaderStyles","ContainerStyles","LogoContainerStyles","LogoStyles","TitleStyles","useNavigationItems","navigationItems","Container","TopNavigationButtonList","Body","Shell","children","CUIStoryContainer","componentModeOverride","useComponentConfigurationContext","BackButton","NavStoryContainer","SettingStoryContainer","SetupStepStoryContainer","UtilityStoryContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.cjs","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-component-view.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/normalize.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/kos-metadata-parser.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-basic.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-modal.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-settings.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-utilities.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-picker.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/kos-logo.svg","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/header.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/shell.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/control-pour-story-container/control-pour-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/cui-story-container/cui-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/nav-story-container/nav-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setting-story-container/setting-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setup-step-story-container/setup-step-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/utility-story-container/utility-story-container.tsx"],"sourcesContent":["import { ElementType, useEffect, useState } from \"react\";\n\ninterface DynamicComponentViewProps {\n component: string;\n location: string;\n resolver: (location: string) => any;\n props?: any;\n}\n\nexport const DynamicComponentView = ({\n component,\n location,\n resolver,\n props,\n}: DynamicComponentViewProps) => {\n const [Component, setComponent] = useState<ElementType>();\n\n useEffect(() => {\n const load = async () => {\n const result = await resolver(location);\n\n setComponent(result[component]);\n };\n\n load();\n }, [component, location, resolver]);\n\n return Component ? <Component {...props} /> : null;\n};\n","export const normalize = (json: any): Record<string, any> =>\n Object.entries(json).reduce((parsed: Record<string, any>, [key, value]) => {\n if (Array.isArray(value) || (typeof value === \"object\" && value !== null)) {\n const listKey = `${key}List`;\n const mapKey = `${key}Map`;\n\n const list: any[] = [];\n const map: Record<string, any> = {};\n\n const items = Array.isArray(value) ? value : Object.values(value);\n items.forEach((item) => {\n const data = { ...item, label: item.title };\n list.push(data);\n map[data.id] = data;\n });\n\n parsed[listKey] = list;\n parsed[mapKey] = map;\n }\n\n return parsed;\n }, {});\n","import { normalize } from \"./normalize\";\n\nexport interface KOSMetadata {\n json: any;\n [key: string]: any;\n}\n\nexport const parse = (json: any): KOSMetadata => {\n const contributes = json.kosdev.ddk.ncui.plugin.contributes;\n\n const parsed: Record<string, any> = normalize(contributes);\n\n return {\n ...parsed,\n contributes,\n json,\n };\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewBasicContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewBasicProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewBasic = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewBasicProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n setSelectedItem(item);\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewBasicContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n )}\n </DynamicViewBasicContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid, Header, Modal } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewModalContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewModalProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewModal = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n showOpenButton = true,\n showCloseButton = true,\n resolver,\n }: DynamicViewModalProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewModalContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <Modal mode=\"maximized\" show={true}>\n <>\n <Header\n title={t(selectedItem.title, `\"${selectedItem.title}\"`)}\n showOpenButton={showOpenButton}\n showCloseButton={showCloseButton}\n onClose={() => {\n select(\"\");\n }}\n />\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </>\n </Modal>\n )}\n </DynamicViewModalContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport {\n SettingsSubheading,\n TabContainer,\n Tabs,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport type { SettingsDefinition } from \"../../../../types/global\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewSettingsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\nconst GroupContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\ninterface Setting {\n id: string;\n title: string;\n namespace: string;\n settingsGroup: string;\n experienceId: string;\n}\n\ninterface SettingsViewProps {\n experiencesMap: any;\n resolver: (location: string) => any;\n setting: Setting;\n}\n\nconst SettingView = ({\n experiencesMap,\n resolver,\n setting: { experienceId, id, namespace, title },\n}: SettingsViewProps) => {\n const { t } = useKosTranslation(namespace);\n\n const experience = experiencesMap[experienceId];\n const component = experience?.component;\n const location = experience?.location;\n\n return (\n <TabContainer>\n <SettingsSubheading>{t(title, `\"${title}\"`)}</SettingsSubheading>\n <DynamicComponentView\n key={id}\n component={component}\n location={location}\n resolver={resolver}\n />\n </TabContainer>\n );\n};\n\ninterface GroupViewProps {\n experiencesMap: any;\n group: Setting[];\n resolver: (location: string) => any;\n}\n\nconst GroupView = ({ experiencesMap, group, resolver }: GroupViewProps) => (\n <GroupContainer>\n {group.map((setting) => (\n <SettingView\n key={setting.settingsGroup}\n experiencesMap={experiencesMap}\n resolver={resolver}\n setting={setting}\n />\n ))}\n </GroupContainer>\n);\n\ninterface DynamicViewSettingsProps {\n kOSMetadata: KOSMetadata;\n list: SettingsDefinition[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n baseRoute?: string;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewSettings = ({\n kOSMetadata: { experiencesMap },\n list,\n\n resolver,\n}: DynamicViewSettingsProps) => {\n const groups = useMemo(() => {\n const groups: Record<string, any> = {};\n\n list.forEach((item) => {\n if (!groups[item.settingsGroup]) {\n groups[item.settingsGroup] = [];\n }\n\n groups[item.settingsGroup].push(item);\n });\n\n return groups;\n }, [list]);\n\n const tabs = useMemo(\n () =>\n Object.keys(groups).map((groupName) => {\n return {\n id: groupName,\n label: groupName,\n content: (\n <GroupView\n experiencesMap={experiencesMap}\n group={groups[groupName]}\n resolver={resolver}\n />\n ),\n };\n }),\n [experiencesMap, groups, resolver]\n );\n\n return (\n <DynamicViewSettingsContainer>\n <Tabs tabs={tabs} />\n </DynamicViewSettingsContainer>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewUtilitiesContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewUtilitiesProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewUtilities = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewUtilitiesProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewUtilitiesContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n props={{ onComplete: select }}\n />\n )}\n </DynamicViewUtilitiesContainer>\n );\n }\n);\n","import { TabRouter } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport { parse } from \"../../utils\";\nimport { DynamicViewBasic } from \"./dynamic-view-basic\";\nimport { DynamicViewModal } from \"./dynamic-view-modal\";\nimport { DynamicViewSettings } from \"./dynamic-view-settings\";\nimport { DynamicViewUtilities } from \"./dynamic-view-utilities\";\n\nconst contentComponentMap: Record<string, any> = {\n cui: (props: any) => <DynamicViewModal {...props} showOpenButton={false} />,\n utilities: DynamicViewUtilities,\n setupStep: DynamicViewModal,\n settings: (props: any) => (\n <DynamicViewSettings baseRoute=\"settings\" {...props} />\n ),\n};\n\ninterface DynamicContainerProps {\n kOSJSON: any;\n resolver: (location: string) => any;\n}\n\nexport const DynamicContainer: React.FunctionComponent<DynamicContainerProps> =\n kosComponent(({ kOSJSON, resolver }) => {\n const kOSMetadata = useMemo(() => parse(kOSJSON), [kOSJSON]);\n\n const tabs = useMemo(\n () =>\n Object.keys(kOSMetadata.contributes)\n .filter(\n (key) =>\n Array.isArray(kOSMetadata.contributes[key]) &&\n kOSMetadata.contributes[key].length\n )\n .map((key) => {\n const Component = contentComponentMap[key] || DynamicViewBasic;\n\n return {\n id: key,\n label: key,\n content: (\n <Component\n key={key}\n kOSMetadata={kOSMetadata}\n list={kOSMetadata[`${key}List`]}\n map={kOSMetadata[`${key}Map`]}\n resolver={resolver}\n />\n ),\n };\n }),\n []\n );\n\n return <TabRouter baseRoute=\"\" tabs={tabs} />;\n });\n","import styled from \"@emotion/styled\";\nimport { PickerCard } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useState } from \"react\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { KOSMetadata } from \"../../utils\";\n\nconst DynamicViewPickerContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n width: 100%;\n`;\n\ninterface DynamicViewPickerProps {\n kOSMetadata: KOSMetadata;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewPicker = ({\n kOSMetadata: { defaultExperienceId, experienceList, experienceMap },\n resolver,\n}: DynamicViewPickerProps) => {\n const [selectedExperienceID, setSelectedExperienceID] =\n useState(defaultExperienceId);\n\n const component = experienceMap[selectedExperienceID].component;\n const location = experienceMap[selectedExperienceID].location;\n\n const save = useCallback((experienceID: string) => {\n setSelectedExperienceID(experienceID);\n }, []);\n\n return (\n <DynamicViewPickerContainer>\n <PickerCard\n label=\"Experience\"\n items={experienceList}\n selectedItemId={selectedExperienceID}\n cancelButtonLabel=\"Cancel\"\n proceedButtonLabel=\"Select\"\n onSave={save}\n displayValue={component}\n />\n\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </DynamicViewPickerContainer>\n );\n};\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='kos_logo_full'%20data-name='kos_logo_full'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2041.58%2016.95'%20fill='%23fff'%3e%3cpath%20d='m21.49,12.39c-.7-.38-1.25-.91-1.64-1.59-.4-.68-.59-1.45-.59-2.32s.2-1.64.59-2.32c.4-.68.94-1.21,1.64-1.59.7-.38,1.49-.57,2.38-.57s1.68.19,2.38.57c.7.38,1.25.91,1.64,1.59.4.68.59,1.45.59,2.32s-.2,1.64-.59,2.32c-.4.68-.94,1.21-1.64,1.59-.7.38-1.49.57-2.38.57s-1.68-.19-2.38-.57Zm3.76-1.49c.4-.24.72-.56.95-.98.23-.42.34-.9.34-1.43s-.11-1.01-.34-1.43c-.23-.42-.54-.75-.95-.98-.4-.24-.86-.35-1.37-.35s-.97.12-1.37.35c-.4.24-.72.56-.95.98-.23.42-.34.9-.34,1.43s.11,1.01.34,1.43c.23.42.54.75.95.98.4.24.86.35,1.37.35s.97-.12,1.37-.35Zm6.34,1.67c-.73-.24-1.32-.56-1.76-.98l1.16-1.42c.81.72,1.77,1.08,2.89,1.08.51,0,.92-.1,1.24-.29.31-.19.47-.43.47-.71,0-.21-.09-.38-.28-.53-.18-.14-.5-.26-.94-.35l-1.84-.35c-.8-.15-1.4-.43-1.79-.83-.4-.4-.59-.91-.59-1.51,0-.54.16-1.02.47-1.42.32-.4.76-.71,1.32-.93s1.2-.32,1.91-.32c.67,0,1.32.1,1.93.29s1.15.49,1.6.9l-1.08,1.38c-.76-.62-1.6-.92-2.51-.92-.49,0-.89.08-1.22.25-.32.17-.49.38-.49.64,0,.17.08.32.25.44.16.13.48.24.94.32l1.7.31c.85.16,1.49.46,1.91.91.43.44.64.97.64,1.59,0,.55-.15,1.04-.44,1.46s-.71.75-1.25.98-1.17.35-1.88.35c-.86,0-1.65-.12-2.38-.35ZM41.5,1c0-.55-.46-1-1.01-1H1C.45,0,0,.45,0,1v14.95c0,.55.45,1,1,1h15.2v-.02s.06.02.1.02h24.29c.55,0,1-.45.99-1l-.08-14.95Zm-25.21,14.95l-.09-14.95h24.3s.09,14.95.09,14.95h-24.3Zm-8.34-7.1l-1.66,1.64v2.32h-1.88V4.16h1.88v4.09l4.1-4.09h2.27l-3.42,3.4,3.62,5.24h-2.23l-2.69-3.96Z'%20/%3e%3c/svg%3e\"","import styled from \"@emotion/styled\";\nimport {\n Container,\n TopNavigationButtonList,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { ReactNode, useMemo } from \"react\";\nimport kosLogo from \"./kos-logo.svg\";\n\nconst HeaderStyles = styled.div`\n background-color: var(--ddk-component-top-navigation-background-color);\n color: var(--ddk-component-top-navigation-color);\n`;\n\nconst ContainerStyles = styled.div`\n padding: var(--ddk-component-top-navigation-padding);\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst LogoContainerStyles = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n`;\n\nconst LogoStyles = styled.div`\n width: 100px;\n`;\n\nconst TitleStyles = styled.h1`\n font-size: 16px;\n`;\n\nconst useNavigationItems = () => {\n const navigationItems = useMemo(() => {\n const navigationItems: { children: ReactNode; to: string }[] = [\n // { children: 'Develop', to: '/develop' }\n ];\n\n return navigationItems;\n }, []);\n\n return navigationItems;\n};\n\nexport const Header = () => {\n const navigationItems = useNavigationItems();\n\n return (\n <HeaderStyles>\n <Container>\n <ContainerStyles>\n <LogoContainerStyles>\n <LogoStyles>\n <img alt=\"KOS logo\" src={kosLogo} />\n </LogoStyles>\n <TitleStyles>Welcome to KOS</TitleStyles>\n </LogoContainerStyles>\n <TopNavigationButtonList items={navigationItems} />\n </ContainerStyles>\n </Container>\n </HeaderStyles>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { ReactNode } from \"react\";\nimport { Header } from \"./header\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n`;\n\nconst Body = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n`;\n\ninterface ShellProps {\n children: ReactNode;\n}\n\nexport const Shell = kosComponent(({ children }: ShellProps) => (\n <Container>\n <Header />\n <Body>{children}</Body>\n </Container>\n));\n","import type { ReactNode } from \"react\";\n\ninterface ControlPourStoryContainerProps {\n children: ReactNode;\n}\n\nexport const ControlPourStoryContainer = ({\n children,\n}: ControlPourStoryContainerProps) => children;\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface CUIStoryContainerProps {\n children: ReactNode;\n}\n\nexport const CUIStoryContainer = ({ children }: CUIStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={false}\n title=\"CUI\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface NavStoryContainerProps {\n children: ReactNode;\n}\n\nexport const NavStoryContainer = ({ children }: NavStoryContainerProps) =>\n children;\n","import {\n SettingsSubheading,\n TabContainer,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SettingStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SettingStoryContainer = ({\n children,\n}: SettingStoryContainerProps) => (\n <TabContainer>\n <SettingsSubheading>Setting</SettingsSubheading>\n {children}\n </TabContainer>\n);\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SetupStepStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SetupStepStoryContainer = ({\n children,\n}: SetupStepStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={true}\n title=\"Setup Step\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface UtilityStoryContainerProps {\n children: ReactNode;\n}\n\nexport const UtilityStoryContainer = ({\n children,\n}: UtilityStoryContainerProps) => children;\n"],"names":["DynamicComponentView","component","location","resolver","props","Component","setComponent","useState","useEffect","result","jsx","normalize","json","parsed","key","value","listKey","mapKey","list","map","item","data","parse","contributes","DynamicViewBasicContainer","styled","DynamicViewBasic","kosComponent","experiencesMap","selectedItem","setSelectedItem","namespaces","ext","t","useKosTranslation","selectedExperienceID","experience","select","useCallback","itemID","translatedList","useMemo","CardButtonGrid","DynamicViewModalContainer","DynamicViewModal","showOpenButton","showCloseButton","Modal","jsxs","Fragment","Header","DynamicViewSettingsContainer","GroupContainer","SettingView","experienceId","id","namespace","title","TabContainer","SettingsSubheading","GroupView","group","setting","DynamicViewSettings","groups","tabs","groupName","Tabs","DynamicViewUtilitiesContainer","DynamicViewUtilities","contentComponentMap","DynamicContainer","kOSJSON","kOSMetadata","TabRouter","DynamicViewPickerContainer","DynamicViewPicker","defaultExperienceId","experienceList","experienceMap","setSelectedExperienceID","save","experienceID","PickerCard","kosLogo","HeaderStyles","ContainerStyles","LogoContainerStyles","LogoStyles","TitleStyles","useNavigationItems","navigationItems","Container","TopNavigationButtonList","Body","Shell","children","ControlPourStoryContainer","CUIStoryContainer","componentModeOverride","useComponentConfigurationContext","BackButton","NavStoryContainer","SettingStoryContainer","SetupStepStoryContainer","UtilityStoryContainer"],"mappings":"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"}
|
package/dev.js
CHANGED
|
@@ -26,19 +26,19 @@ const b = ({
|
|
|
26
26
|
}), n[c] = l, n[i] = r;
|
|
27
27
|
}
|
|
28
28
|
return n;
|
|
29
|
-
}, {}),
|
|
29
|
+
}, {}), P = (t) => {
|
|
30
30
|
const n = t.kosdev.ddk.ncui.plugin.contributes;
|
|
31
31
|
return {
|
|
32
32
|
...K(n),
|
|
33
33
|
contributes: n,
|
|
34
34
|
json: t
|
|
35
35
|
};
|
|
36
|
-
},
|
|
36
|
+
}, _ = p.div`
|
|
37
37
|
display: flex;
|
|
38
38
|
flex-direction: column;
|
|
39
39
|
gap: 32px;
|
|
40
40
|
padding: 24px;
|
|
41
|
-
`,
|
|
41
|
+
`, F = w(
|
|
42
42
|
({
|
|
43
43
|
kOSMetadata: { experiencesMap: t },
|
|
44
44
|
list: n,
|
|
@@ -47,19 +47,19 @@ const b = ({
|
|
|
47
47
|
}) => {
|
|
48
48
|
const [c, i] = x(), l = n.map((d) => d.namespace) || [], { t: r } = B([...new Set(l)]), h = c == null ? void 0 : c.experienceId, a = t[h], g = a == null ? void 0 : a.component, m = a == null ? void 0 : a.location, S = I(
|
|
49
49
|
(d) => {
|
|
50
|
-
const
|
|
51
|
-
i(
|
|
50
|
+
const v = e[d];
|
|
51
|
+
i(v);
|
|
52
52
|
},
|
|
53
53
|
[e]
|
|
54
|
-
),
|
|
54
|
+
), C = y(
|
|
55
55
|
() => n.map((d) => ({
|
|
56
56
|
...d,
|
|
57
57
|
label: r(`${d.namespace}:${d.title}`, `"${d.title}"`)
|
|
58
58
|
})),
|
|
59
59
|
[n, r]
|
|
60
60
|
);
|
|
61
|
-
return /* @__PURE__ */ u(
|
|
62
|
-
/* @__PURE__ */ o($, { items:
|
|
61
|
+
return /* @__PURE__ */ u(_, { children: [
|
|
62
|
+
/* @__PURE__ */ o($, { items: C, onSelect: S }),
|
|
63
63
|
g && m && /* @__PURE__ */ o(
|
|
64
64
|
b,
|
|
65
65
|
{
|
|
@@ -84,13 +84,13 @@ const b = ({
|
|
|
84
84
|
showCloseButton: c = !0,
|
|
85
85
|
resolver: i
|
|
86
86
|
}) => {
|
|
87
|
-
const [l, r] = x(), h = n.map((f) => f.namespace) || [], { t: a } = B([...new Set(h)]), g = l == null ? void 0 : l.experienceId, m = t[g], S = m == null ? void 0 : m.component,
|
|
87
|
+
const [l, r] = x(), h = n.map((f) => f.namespace) || [], { t: a } = B([...new Set(h)]), g = l == null ? void 0 : l.experienceId, m = t[g], S = m == null ? void 0 : m.component, C = m == null ? void 0 : m.location, d = I(
|
|
88
88
|
(f) => {
|
|
89
89
|
const V = e[f];
|
|
90
90
|
r(V || null);
|
|
91
91
|
},
|
|
92
92
|
[e]
|
|
93
|
-
),
|
|
93
|
+
), v = y(
|
|
94
94
|
() => n.map((f) => ({
|
|
95
95
|
...f,
|
|
96
96
|
label: a(`${f.namespace}:${f.title}`, `"${f.title}"`)
|
|
@@ -98,8 +98,8 @@ const b = ({
|
|
|
98
98
|
[n, a]
|
|
99
99
|
);
|
|
100
100
|
return /* @__PURE__ */ u(R, { children: [
|
|
101
|
-
/* @__PURE__ */ o($, { items:
|
|
102
|
-
S &&
|
|
101
|
+
/* @__PURE__ */ o($, { items: v, onSelect: d }),
|
|
102
|
+
S && C && /* @__PURE__ */ o(O, { mode: "maximized", show: !0, children: /* @__PURE__ */ u(D, { children: [
|
|
103
103
|
/* @__PURE__ */ o(
|
|
104
104
|
k,
|
|
105
105
|
{
|
|
@@ -115,7 +115,7 @@ const b = ({
|
|
|
115
115
|
b,
|
|
116
116
|
{
|
|
117
117
|
component: S,
|
|
118
|
-
location:
|
|
118
|
+
location: C,
|
|
119
119
|
resolver: i
|
|
120
120
|
}
|
|
121
121
|
)
|
|
@@ -197,11 +197,11 @@ const b = ({
|
|
|
197
197
|
}) => {
|
|
198
198
|
const [c, i] = x(), l = n.map((d) => d.namespace) || [], { t: r } = B([...new Set(l)]), h = c == null ? void 0 : c.experienceId, a = t[h], g = a == null ? void 0 : a.component, m = a == null ? void 0 : a.location, S = I(
|
|
199
199
|
(d) => {
|
|
200
|
-
const
|
|
201
|
-
i(
|
|
200
|
+
const v = e[d];
|
|
201
|
+
i(v || null);
|
|
202
202
|
},
|
|
203
203
|
[e]
|
|
204
|
-
),
|
|
204
|
+
), C = y(
|
|
205
205
|
() => n.map((d) => ({
|
|
206
206
|
...d,
|
|
207
207
|
label: r(`${d.namespace}:${d.title}`, `"${d.title}"`)
|
|
@@ -209,7 +209,7 @@ const b = ({
|
|
|
209
209
|
[n, r]
|
|
210
210
|
);
|
|
211
211
|
return /* @__PURE__ */ u(Y, { children: [
|
|
212
|
-
/* @__PURE__ */ o($, { items:
|
|
212
|
+
/* @__PURE__ */ o($, { items: C, onSelect: S }),
|
|
213
213
|
g && m && /* @__PURE__ */ o(
|
|
214
214
|
b,
|
|
215
215
|
{
|
|
@@ -227,11 +227,11 @@ const b = ({
|
|
|
227
227
|
setupStep: M,
|
|
228
228
|
settings: (t) => /* @__PURE__ */ o(X, { baseRoute: "settings", ...t })
|
|
229
229
|
}, St = w(({ kOSJSON: t, resolver: n }) => {
|
|
230
|
-
const e = y(() =>
|
|
230
|
+
const e = y(() => P(t), [t]), s = y(
|
|
231
231
|
() => Object.keys(e.contributes).filter(
|
|
232
232
|
(c) => Array.isArray(e.contributes[c]) && e.contributes[c].length
|
|
233
233
|
).map((c) => {
|
|
234
|
-
const i = tt[c] ||
|
|
234
|
+
const i = tt[c] || F;
|
|
235
235
|
return {
|
|
236
236
|
id: c,
|
|
237
237
|
label: c,
|
|
@@ -255,7 +255,7 @@ const b = ({
|
|
|
255
255
|
flex-direction: column;
|
|
256
256
|
gap: 32px;
|
|
257
257
|
width: 100%;
|
|
258
|
-
`,
|
|
258
|
+
`, Ct = ({
|
|
259
259
|
kOSMetadata: { defaultExperienceId: t, experienceList: n, experienceMap: e },
|
|
260
260
|
resolver: s
|
|
261
261
|
}) => {
|
|
@@ -321,10 +321,12 @@ const b = ({
|
|
|
321
321
|
display: flex;
|
|
322
322
|
flex-direction: column;
|
|
323
323
|
overflow-y: auto;
|
|
324
|
-
`,
|
|
324
|
+
`, vt = w(({ children: t }) => /* @__PURE__ */ u(dt, { children: [
|
|
325
325
|
/* @__PURE__ */ o(rt, {}),
|
|
326
326
|
/* @__PURE__ */ o(pt, { children: t })
|
|
327
|
-
] })), xt = ({
|
|
327
|
+
] })), xt = ({
|
|
328
|
+
children: t
|
|
329
|
+
}) => t, wt = ({ children: t }) => {
|
|
328
330
|
const { componentModeOverride: n } = E();
|
|
329
331
|
return /* @__PURE__ */ o(
|
|
330
332
|
O,
|
|
@@ -347,12 +349,12 @@ const b = ({
|
|
|
347
349
|
] })
|
|
348
350
|
}
|
|
349
351
|
);
|
|
350
|
-
},
|
|
352
|
+
}, bt = ({ children: t }) => t, It = ({
|
|
351
353
|
children: t
|
|
352
354
|
}) => /* @__PURE__ */ u(j, { children: [
|
|
353
355
|
/* @__PURE__ */ o(L, { children: "Setting" }),
|
|
354
356
|
t
|
|
355
|
-
] }),
|
|
357
|
+
] }), Bt = ({
|
|
356
358
|
children: t
|
|
357
359
|
}) => {
|
|
358
360
|
const { componentModeOverride: n } = E();
|
|
@@ -377,24 +379,25 @@ const b = ({
|
|
|
377
379
|
] })
|
|
378
380
|
}
|
|
379
381
|
);
|
|
380
|
-
},
|
|
382
|
+
}, Dt = ({
|
|
381
383
|
children: t
|
|
382
384
|
}) => t;
|
|
383
385
|
export {
|
|
384
|
-
|
|
386
|
+
wt as CUIStoryContainer,
|
|
387
|
+
xt as ControlPourStoryContainer,
|
|
385
388
|
b as DynamicComponentView,
|
|
386
389
|
St as DynamicContainer,
|
|
387
|
-
|
|
390
|
+
F as DynamicViewBasic,
|
|
388
391
|
M as DynamicViewModal,
|
|
389
|
-
|
|
392
|
+
Ct as DynamicViewPicker,
|
|
390
393
|
X as DynamicViewSettings,
|
|
391
394
|
J as DynamicViewUtilities,
|
|
392
395
|
rt as Header,
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
396
|
+
bt as NavStoryContainer,
|
|
397
|
+
It as SettingStoryContainer,
|
|
398
|
+
Bt as SetupStepStoryContainer,
|
|
399
|
+
vt as Shell,
|
|
400
|
+
Dt as UtilityStoryContainer,
|
|
401
|
+
P as parse
|
|
399
402
|
};
|
|
400
403
|
//# sourceMappingURL=dev.js.map
|
package/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-component-view.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/normalize.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/kos-metadata-parser.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-basic.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-modal.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-settings.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-utilities.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-picker.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/kos-logo.svg","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/header.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/shell.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/cui-story-container/cui-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/nav-story-container/nav-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setting-story-container/setting-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setup-step-story-container/setup-step-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/utility-story-container/utility-story-container.tsx"],"sourcesContent":["import { ElementType, useEffect, useState } from \"react\";\n\ninterface DynamicComponentViewProps {\n component: string;\n location: string;\n resolver: (location: string) => any;\n props?: any;\n}\n\nexport const DynamicComponentView = ({\n component,\n location,\n resolver,\n props,\n}: DynamicComponentViewProps) => {\n const [Component, setComponent] = useState<ElementType>();\n\n useEffect(() => {\n const load = async () => {\n const result = await resolver(location);\n\n setComponent(result[component]);\n };\n\n load();\n }, [component, location, resolver]);\n\n return Component ? <Component {...props} /> : null;\n};\n","export const normalize = (json: any): Record<string, any> =>\n Object.entries(json).reduce((parsed: Record<string, any>, [key, value]) => {\n if (Array.isArray(value) || (typeof value === \"object\" && value !== null)) {\n const listKey = `${key}List`;\n const mapKey = `${key}Map`;\n\n const list: any[] = [];\n const map: Record<string, any> = {};\n\n const items = Array.isArray(value) ? value : Object.values(value);\n items.forEach((item) => {\n const data = { ...item, label: item.title };\n list.push(data);\n map[data.id] = data;\n });\n\n parsed[listKey] = list;\n parsed[mapKey] = map;\n }\n\n return parsed;\n }, {});\n","import { normalize } from \"./normalize\";\n\nexport interface KOSMetadata {\n json: any;\n [key: string]: any;\n}\n\nexport const parse = (json: any): KOSMetadata => {\n const contributes = json.kosdev.ddk.ncui.plugin.contributes;\n\n const parsed: Record<string, any> = normalize(contributes);\n\n return {\n ...parsed,\n contributes,\n json,\n };\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewBasicContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewBasicProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewBasic = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewBasicProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n setSelectedItem(item);\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewBasicContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n )}\n </DynamicViewBasicContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid, Header, Modal } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewModalContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewModalProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewModal = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n showOpenButton = true,\n showCloseButton = true,\n resolver,\n }: DynamicViewModalProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewModalContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <Modal mode=\"maximized\" show={true}>\n <>\n <Header\n title={t(selectedItem.title, `\"${selectedItem.title}\"`)}\n showOpenButton={showOpenButton}\n showCloseButton={showCloseButton}\n onClose={() => {\n select(\"\");\n }}\n />\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </>\n </Modal>\n )}\n </DynamicViewModalContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport {\n SettingsSubheading,\n TabContainer,\n Tabs,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport type { SettingsDefinition } from \"../../../../types/global\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewSettingsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\nconst GroupContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\ninterface Setting {\n id: string;\n title: string;\n namespace: string;\n settingsGroup: string;\n experienceId: string;\n}\n\ninterface SettingsViewProps {\n experiencesMap: any;\n resolver: (location: string) => any;\n setting: Setting;\n}\n\nconst SettingView = ({\n experiencesMap,\n resolver,\n setting: { experienceId, id, namespace, title },\n}: SettingsViewProps) => {\n const { t } = useKosTranslation(namespace);\n\n const experience = experiencesMap[experienceId];\n const component = experience?.component;\n const location = experience?.location;\n\n return (\n <TabContainer>\n <SettingsSubheading>{t(title, `\"${title}\"`)}</SettingsSubheading>\n <DynamicComponentView\n key={id}\n component={component}\n location={location}\n resolver={resolver}\n />\n </TabContainer>\n );\n};\n\ninterface GroupViewProps {\n experiencesMap: any;\n group: Setting[];\n resolver: (location: string) => any;\n}\n\nconst GroupView = ({ experiencesMap, group, resolver }: GroupViewProps) => (\n <GroupContainer>\n {group.map((setting) => (\n <SettingView\n key={setting.settingsGroup}\n experiencesMap={experiencesMap}\n resolver={resolver}\n setting={setting}\n />\n ))}\n </GroupContainer>\n);\n\ninterface DynamicViewSettingsProps {\n kOSMetadata: KOSMetadata;\n list: SettingsDefinition[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n baseRoute?: string;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewSettings = ({\n kOSMetadata: { experiencesMap },\n list,\n\n resolver,\n}: DynamicViewSettingsProps) => {\n const groups = useMemo(() => {\n const groups: Record<string, any> = {};\n\n list.forEach((item) => {\n if (!groups[item.settingsGroup]) {\n groups[item.settingsGroup] = [];\n }\n\n groups[item.settingsGroup].push(item);\n });\n\n return groups;\n }, [list]);\n\n const tabs = useMemo(\n () =>\n Object.keys(groups).map((groupName) => {\n return {\n id: groupName,\n label: groupName,\n content: (\n <GroupView\n experiencesMap={experiencesMap}\n group={groups[groupName]}\n resolver={resolver}\n />\n ),\n };\n }),\n [experiencesMap, groups, resolver]\n );\n\n return (\n <DynamicViewSettingsContainer>\n <Tabs tabs={tabs} />\n </DynamicViewSettingsContainer>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewUtilitiesContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewUtilitiesProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewUtilities = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewUtilitiesProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewUtilitiesContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n props={{ onComplete: select }}\n />\n )}\n </DynamicViewUtilitiesContainer>\n );\n }\n);\n","import { TabRouter } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport { parse } from \"../../utils\";\nimport { DynamicViewBasic } from \"./dynamic-view-basic\";\nimport { DynamicViewModal } from \"./dynamic-view-modal\";\nimport { DynamicViewSettings } from \"./dynamic-view-settings\";\nimport { DynamicViewUtilities } from \"./dynamic-view-utilities\";\n\nconst contentComponentMap: Record<string, any> = {\n cui: (props: any) => <DynamicViewModal {...props} showOpenButton={false} />,\n utilities: DynamicViewUtilities,\n setupStep: DynamicViewModal,\n settings: (props: any) => (\n <DynamicViewSettings baseRoute=\"settings\" {...props} />\n ),\n};\n\ninterface DynamicContainerProps {\n kOSJSON: any;\n resolver: (location: string) => any;\n}\n\nexport const DynamicContainer: React.FunctionComponent<DynamicContainerProps> =\n kosComponent(({ kOSJSON, resolver }) => {\n const kOSMetadata = useMemo(() => parse(kOSJSON), [kOSJSON]);\n\n const tabs = useMemo(\n () =>\n Object.keys(kOSMetadata.contributes)\n .filter(\n (key) =>\n Array.isArray(kOSMetadata.contributes[key]) &&\n kOSMetadata.contributes[key].length\n )\n .map((key) => {\n const Component = contentComponentMap[key] || DynamicViewBasic;\n\n return {\n id: key,\n label: key,\n content: (\n <Component\n key={key}\n kOSMetadata={kOSMetadata}\n list={kOSMetadata[`${key}List`]}\n map={kOSMetadata[`${key}Map`]}\n resolver={resolver}\n />\n ),\n };\n }),\n []\n );\n\n return <TabRouter baseRoute=\"\" tabs={tabs} />;\n });\n","import styled from \"@emotion/styled\";\nimport { PickerCard } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useState } from \"react\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { KOSMetadata } from \"../../utils\";\n\nconst DynamicViewPickerContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n width: 100%;\n`;\n\ninterface DynamicViewPickerProps {\n kOSMetadata: KOSMetadata;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewPicker = ({\n kOSMetadata: { defaultExperienceId, experienceList, experienceMap },\n resolver,\n}: DynamicViewPickerProps) => {\n const [selectedExperienceID, setSelectedExperienceID] =\n useState(defaultExperienceId);\n\n const component = experienceMap[selectedExperienceID].component;\n const location = experienceMap[selectedExperienceID].location;\n\n const save = useCallback((experienceID: string) => {\n setSelectedExperienceID(experienceID);\n }, []);\n\n return (\n <DynamicViewPickerContainer>\n <PickerCard\n label=\"Experience\"\n items={experienceList}\n selectedItemId={selectedExperienceID}\n cancelButtonLabel=\"Cancel\"\n proceedButtonLabel=\"Select\"\n onSave={save}\n displayValue={component}\n />\n\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </DynamicViewPickerContainer>\n );\n};\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='kos_logo_full'%20data-name='kos_logo_full'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2041.58%2016.95'%20fill='%23fff'%3e%3cpath%20d='m21.49,12.39c-.7-.38-1.25-.91-1.64-1.59-.4-.68-.59-1.45-.59-2.32s.2-1.64.59-2.32c.4-.68.94-1.21,1.64-1.59.7-.38,1.49-.57,2.38-.57s1.68.19,2.38.57c.7.38,1.25.91,1.64,1.59.4.68.59,1.45.59,2.32s-.2,1.64-.59,2.32c-.4.68-.94,1.21-1.64,1.59-.7.38-1.49.57-2.38.57s-1.68-.19-2.38-.57Zm3.76-1.49c.4-.24.72-.56.95-.98.23-.42.34-.9.34-1.43s-.11-1.01-.34-1.43c-.23-.42-.54-.75-.95-.98-.4-.24-.86-.35-1.37-.35s-.97.12-1.37.35c-.4.24-.72.56-.95.98-.23.42-.34.9-.34,1.43s.11,1.01.34,1.43c.23.42.54.75.95.98.4.24.86.35,1.37.35s.97-.12,1.37-.35Zm6.34,1.67c-.73-.24-1.32-.56-1.76-.98l1.16-1.42c.81.72,1.77,1.08,2.89,1.08.51,0,.92-.1,1.24-.29.31-.19.47-.43.47-.71,0-.21-.09-.38-.28-.53-.18-.14-.5-.26-.94-.35l-1.84-.35c-.8-.15-1.4-.43-1.79-.83-.4-.4-.59-.91-.59-1.51,0-.54.16-1.02.47-1.42.32-.4.76-.71,1.32-.93s1.2-.32,1.91-.32c.67,0,1.32.1,1.93.29s1.15.49,1.6.9l-1.08,1.38c-.76-.62-1.6-.92-2.51-.92-.49,0-.89.08-1.22.25-.32.17-.49.38-.49.64,0,.17.08.32.25.44.16.13.48.24.94.32l1.7.31c.85.16,1.49.46,1.91.91.43.44.64.97.64,1.59,0,.55-.15,1.04-.44,1.46s-.71.75-1.25.98-1.17.35-1.88.35c-.86,0-1.65-.12-2.38-.35ZM41.5,1c0-.55-.46-1-1.01-1H1C.45,0,0,.45,0,1v14.95c0,.55.45,1,1,1h15.2v-.02s.06.02.1.02h24.29c.55,0,1-.45.99-1l-.08-14.95Zm-25.21,14.95l-.09-14.95h24.3s.09,14.95.09,14.95h-24.3Zm-8.34-7.1l-1.66,1.64v2.32h-1.88V4.16h1.88v4.09l4.1-4.09h2.27l-3.42,3.4,3.62,5.24h-2.23l-2.69-3.96Z'%20/%3e%3c/svg%3e\"","import styled from \"@emotion/styled\";\nimport {\n Container,\n TopNavigationButtonList,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { ReactNode, useMemo } from \"react\";\nimport kosLogo from \"./kos-logo.svg\";\n\nconst HeaderStyles = styled.div`\n background-color: var(--ddk-component-top-navigation-background-color);\n color: var(--ddk-component-top-navigation-color);\n`;\n\nconst ContainerStyles = styled.div`\n padding: var(--ddk-component-top-navigation-padding);\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst LogoContainerStyles = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n`;\n\nconst LogoStyles = styled.div`\n width: 100px;\n`;\n\nconst TitleStyles = styled.h1`\n font-size: 16px;\n`;\n\nconst useNavigationItems = () => {\n const navigationItems = useMemo(() => {\n const navigationItems: { children: ReactNode; to: string }[] = [\n // { children: 'Develop', to: '/develop' }\n ];\n\n return navigationItems;\n }, []);\n\n return navigationItems;\n};\n\nexport const Header = () => {\n const navigationItems = useNavigationItems();\n\n return (\n <HeaderStyles>\n <Container>\n <ContainerStyles>\n <LogoContainerStyles>\n <LogoStyles>\n <img alt=\"KOS logo\" src={kosLogo} />\n </LogoStyles>\n <TitleStyles>Welcome to KOS</TitleStyles>\n </LogoContainerStyles>\n <TopNavigationButtonList items={navigationItems} />\n </ContainerStyles>\n </Container>\n </HeaderStyles>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { ReactNode } from \"react\";\nimport { Header } from \"./header\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n`;\n\nconst Body = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n`;\n\ninterface ShellProps {\n children: ReactNode;\n}\n\nexport const Shell = kosComponent(({ children }: ShellProps) => (\n <Container>\n <Header />\n <Body>{children}</Body>\n </Container>\n));\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface CUIStoryContainerProps {\n children: ReactNode;\n}\n\nexport const CUIStoryContainer = ({ children }: CUIStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={false}\n title=\"CUI\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface NavStoryContainerProps {\n children: ReactNode;\n}\n\nexport const NavStoryContainer = ({ children }: NavStoryContainerProps) =>\n children;\n","import {\n SettingsSubheading,\n TabContainer,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SettingStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SettingStoryContainer = ({\n children,\n}: SettingStoryContainerProps) => (\n <TabContainer>\n <SettingsSubheading>Setting</SettingsSubheading>\n {children}\n </TabContainer>\n);\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SetupStepStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SetupStepStoryContainer = ({\n children,\n}: SetupStepStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={true}\n title=\"Setup Step\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface UtilityStoryContainerProps {\n children: ReactNode;\n}\n\nexport const UtilityStoryContainer = ({\n children,\n}: UtilityStoryContainerProps) => children;\n"],"names":["DynamicComponentView","component","location","resolver","props","Component","setComponent","useState","useEffect","result","jsx","normalize","json","parsed","key","value","listKey","mapKey","list","map","item","data","parse","contributes","DynamicViewBasicContainer","styled","DynamicViewBasic","kosComponent","experiencesMap","selectedItem","setSelectedItem","namespaces","ext","t","useKosTranslation","selectedExperienceID","experience","select","useCallback","itemID","translatedList","useMemo","CardButtonGrid","DynamicViewModalContainer","DynamicViewModal","showOpenButton","showCloseButton","Modal","jsxs","Fragment","Header","DynamicViewSettingsContainer","GroupContainer","SettingView","experienceId","id","namespace","title","TabContainer","SettingsSubheading","GroupView","group","setting","DynamicViewSettings","groups","tabs","groupName","Tabs","DynamicViewUtilitiesContainer","DynamicViewUtilities","contentComponentMap","DynamicContainer","kOSJSON","kOSMetadata","TabRouter","DynamicViewPickerContainer","DynamicViewPicker","defaultExperienceId","experienceList","experienceMap","setSelectedExperienceID","save","experienceID","PickerCard","kosLogo","HeaderStyles","ContainerStyles","LogoContainerStyles","LogoStyles","TitleStyles","useNavigationItems","navigationItems","Container","TopNavigationButtonList","Body","Shell","children","CUIStoryContainer","componentModeOverride","useComponentConfigurationContext","BackButton","NavStoryContainer","SettingStoryContainer","SetupStepStoryContainer","UtilityStoryContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-component-view.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/normalize.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/utils/kos-metadata-parser.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-basic.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-modal.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-settings.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-utilities.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/dynamic-view/dynamic-view-picker.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/kos-logo.svg","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/header/header.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/shell/shell.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/control-pour-story-container/control-pour-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/cui-story-container/cui-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/nav-story-container/nav-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setting-story-container/setting-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/setup-step-story-container/setup-step-story-container.tsx","../../../../packages/sdk/kos-ui-plugin/src/lib/dev/components/storybook/utility-story-container/utility-story-container.tsx"],"sourcesContent":["import { ElementType, useEffect, useState } from \"react\";\n\ninterface DynamicComponentViewProps {\n component: string;\n location: string;\n resolver: (location: string) => any;\n props?: any;\n}\n\nexport const DynamicComponentView = ({\n component,\n location,\n resolver,\n props,\n}: DynamicComponentViewProps) => {\n const [Component, setComponent] = useState<ElementType>();\n\n useEffect(() => {\n const load = async () => {\n const result = await resolver(location);\n\n setComponent(result[component]);\n };\n\n load();\n }, [component, location, resolver]);\n\n return Component ? <Component {...props} /> : null;\n};\n","export const normalize = (json: any): Record<string, any> =>\n Object.entries(json).reduce((parsed: Record<string, any>, [key, value]) => {\n if (Array.isArray(value) || (typeof value === \"object\" && value !== null)) {\n const listKey = `${key}List`;\n const mapKey = `${key}Map`;\n\n const list: any[] = [];\n const map: Record<string, any> = {};\n\n const items = Array.isArray(value) ? value : Object.values(value);\n items.forEach((item) => {\n const data = { ...item, label: item.title };\n list.push(data);\n map[data.id] = data;\n });\n\n parsed[listKey] = list;\n parsed[mapKey] = map;\n }\n\n return parsed;\n }, {});\n","import { normalize } from \"./normalize\";\n\nexport interface KOSMetadata {\n json: any;\n [key: string]: any;\n}\n\nexport const parse = (json: any): KOSMetadata => {\n const contributes = json.kosdev.ddk.ncui.plugin.contributes;\n\n const parsed: Record<string, any> = normalize(contributes);\n\n return {\n ...parsed,\n contributes,\n json,\n };\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewBasicContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewBasicProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewBasic = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewBasicProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n setSelectedItem(item);\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewBasicContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n )}\n </DynamicViewBasicContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid, Header, Modal } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewModalContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewModalProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewModal = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n showOpenButton = true,\n showCloseButton = true,\n resolver,\n }: DynamicViewModalProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewModalContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <Modal mode=\"maximized\" show={true}>\n <>\n <Header\n title={t(selectedItem.title, `\"${selectedItem.title}\"`)}\n showOpenButton={showOpenButton}\n showCloseButton={showCloseButton}\n onClose={() => {\n select(\"\");\n }}\n />\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </>\n </Modal>\n )}\n </DynamicViewModalContainer>\n );\n }\n);\n","import styled from \"@emotion/styled\";\nimport {\n SettingsSubheading,\n TabContainer,\n Tabs,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport type { SettingsDefinition } from \"../../../../types/global\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\n\nconst DynamicViewSettingsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\nconst GroupContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\ninterface Setting {\n id: string;\n title: string;\n namespace: string;\n settingsGroup: string;\n experienceId: string;\n}\n\ninterface SettingsViewProps {\n experiencesMap: any;\n resolver: (location: string) => any;\n setting: Setting;\n}\n\nconst SettingView = ({\n experiencesMap,\n resolver,\n setting: { experienceId, id, namespace, title },\n}: SettingsViewProps) => {\n const { t } = useKosTranslation(namespace);\n\n const experience = experiencesMap[experienceId];\n const component = experience?.component;\n const location = experience?.location;\n\n return (\n <TabContainer>\n <SettingsSubheading>{t(title, `\"${title}\"`)}</SettingsSubheading>\n <DynamicComponentView\n key={id}\n component={component}\n location={location}\n resolver={resolver}\n />\n </TabContainer>\n );\n};\n\ninterface GroupViewProps {\n experiencesMap: any;\n group: Setting[];\n resolver: (location: string) => any;\n}\n\nconst GroupView = ({ experiencesMap, group, resolver }: GroupViewProps) => (\n <GroupContainer>\n {group.map((setting) => (\n <SettingView\n key={setting.settingsGroup}\n experiencesMap={experiencesMap}\n resolver={resolver}\n setting={setting}\n />\n ))}\n </GroupContainer>\n);\n\ninterface DynamicViewSettingsProps {\n kOSMetadata: KOSMetadata;\n list: SettingsDefinition[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n baseRoute?: string;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewSettings = ({\n kOSMetadata: { experiencesMap },\n list,\n\n resolver,\n}: DynamicViewSettingsProps) => {\n const groups = useMemo(() => {\n const groups: Record<string, any> = {};\n\n list.forEach((item) => {\n if (!groups[item.settingsGroup]) {\n groups[item.settingsGroup] = [];\n }\n\n groups[item.settingsGroup].push(item);\n });\n\n return groups;\n }, [list]);\n\n const tabs = useMemo(\n () =>\n Object.keys(groups).map((groupName) => {\n return {\n id: groupName,\n label: groupName,\n content: (\n <GroupView\n experiencesMap={experiencesMap}\n group={groups[groupName]}\n resolver={resolver}\n />\n ),\n };\n }),\n [experiencesMap, groups, resolver]\n );\n\n return (\n <DynamicViewSettingsContainer>\n <Tabs tabs={tabs} />\n </DynamicViewSettingsContainer>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { CardButtonGrid } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { KOSMetadata } from \"../../utils\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { kosComponent, useKosTranslation } from \"@kosdev-code/kos-ui-sdk\";\n\nconst DynamicViewUtilitiesContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding: 24px;\n`;\n\ninterface DynamicViewUtilitiesProps {\n kOSMetadata: KOSMetadata;\n list: any[];\n map: Record<string, any>;\n showOpenButton?: boolean;\n showCloseButton?: boolean;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewUtilities = kosComponent(\n ({\n kOSMetadata: { experiencesMap },\n list,\n map,\n resolver,\n }: DynamicViewUtilitiesProps) => {\n const [selectedItem, setSelectedItem] = useState<any>();\n\n const namespaces = list.map((ext) => ext.namespace) || [];\n const { t } = useKosTranslation([...new Set(namespaces)]);\n\n const selectedExperienceID = selectedItem?.experienceId;\n const experience = experiencesMap[selectedExperienceID];\n const component = experience?.component;\n const location = experience?.location;\n\n const select = useCallback(\n (itemID: string) => {\n const item = map[itemID];\n\n if (item) {\n setSelectedItem(item);\n } else {\n setSelectedItem(null);\n }\n },\n [map]\n );\n\n const translatedList = useMemo(\n () =>\n list.map((item) => {\n return {\n ...item,\n label: t(`${item.namespace}:${item.title}`, `\"${item.title}\"`),\n };\n }),\n [list, t]\n );\n\n return (\n <DynamicViewUtilitiesContainer>\n <CardButtonGrid items={translatedList} onSelect={select} />\n\n {component && location && (\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n props={{ onComplete: select }}\n />\n )}\n </DynamicViewUtilitiesContainer>\n );\n }\n);\n","import { TabRouter } from \"@kosdev-code/kos-ddk-components\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { useMemo } from \"react\";\nimport { parse } from \"../../utils\";\nimport { DynamicViewBasic } from \"./dynamic-view-basic\";\nimport { DynamicViewModal } from \"./dynamic-view-modal\";\nimport { DynamicViewSettings } from \"./dynamic-view-settings\";\nimport { DynamicViewUtilities } from \"./dynamic-view-utilities\";\n\nconst contentComponentMap: Record<string, any> = {\n cui: (props: any) => <DynamicViewModal {...props} showOpenButton={false} />,\n utilities: DynamicViewUtilities,\n setupStep: DynamicViewModal,\n settings: (props: any) => (\n <DynamicViewSettings baseRoute=\"settings\" {...props} />\n ),\n};\n\ninterface DynamicContainerProps {\n kOSJSON: any;\n resolver: (location: string) => any;\n}\n\nexport const DynamicContainer: React.FunctionComponent<DynamicContainerProps> =\n kosComponent(({ kOSJSON, resolver }) => {\n const kOSMetadata = useMemo(() => parse(kOSJSON), [kOSJSON]);\n\n const tabs = useMemo(\n () =>\n Object.keys(kOSMetadata.contributes)\n .filter(\n (key) =>\n Array.isArray(kOSMetadata.contributes[key]) &&\n kOSMetadata.contributes[key].length\n )\n .map((key) => {\n const Component = contentComponentMap[key] || DynamicViewBasic;\n\n return {\n id: key,\n label: key,\n content: (\n <Component\n key={key}\n kOSMetadata={kOSMetadata}\n list={kOSMetadata[`${key}List`]}\n map={kOSMetadata[`${key}Map`]}\n resolver={resolver}\n />\n ),\n };\n }),\n []\n );\n\n return <TabRouter baseRoute=\"\" tabs={tabs} />;\n });\n","import styled from \"@emotion/styled\";\nimport { PickerCard } from \"@kosdev-code/kos-ddk-components\";\nimport { useCallback, useState } from \"react\";\nimport { DynamicComponentView } from \"./dynamic-component-view\";\nimport { KOSMetadata } from \"../../utils\";\n\nconst DynamicViewPickerContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n width: 100%;\n`;\n\ninterface DynamicViewPickerProps {\n kOSMetadata: KOSMetadata;\n resolver: (location: string) => any;\n}\n\nexport const DynamicViewPicker = ({\n kOSMetadata: { defaultExperienceId, experienceList, experienceMap },\n resolver,\n}: DynamicViewPickerProps) => {\n const [selectedExperienceID, setSelectedExperienceID] =\n useState(defaultExperienceId);\n\n const component = experienceMap[selectedExperienceID].component;\n const location = experienceMap[selectedExperienceID].location;\n\n const save = useCallback((experienceID: string) => {\n setSelectedExperienceID(experienceID);\n }, []);\n\n return (\n <DynamicViewPickerContainer>\n <PickerCard\n label=\"Experience\"\n items={experienceList}\n selectedItemId={selectedExperienceID}\n cancelButtonLabel=\"Cancel\"\n proceedButtonLabel=\"Select\"\n onSave={save}\n displayValue={component}\n />\n\n <DynamicComponentView\n component={component}\n location={location}\n resolver={resolver}\n />\n </DynamicViewPickerContainer>\n );\n};\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='kos_logo_full'%20data-name='kos_logo_full'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2041.58%2016.95'%20fill='%23fff'%3e%3cpath%20d='m21.49,12.39c-.7-.38-1.25-.91-1.64-1.59-.4-.68-.59-1.45-.59-2.32s.2-1.64.59-2.32c.4-.68.94-1.21,1.64-1.59.7-.38,1.49-.57,2.38-.57s1.68.19,2.38.57c.7.38,1.25.91,1.64,1.59.4.68.59,1.45.59,2.32s-.2,1.64-.59,2.32c-.4.68-.94,1.21-1.64,1.59-.7.38-1.49.57-2.38.57s-1.68-.19-2.38-.57Zm3.76-1.49c.4-.24.72-.56.95-.98.23-.42.34-.9.34-1.43s-.11-1.01-.34-1.43c-.23-.42-.54-.75-.95-.98-.4-.24-.86-.35-1.37-.35s-.97.12-1.37.35c-.4.24-.72.56-.95.98-.23.42-.34.9-.34,1.43s.11,1.01.34,1.43c.23.42.54.75.95.98.4.24.86.35,1.37.35s.97-.12,1.37-.35Zm6.34,1.67c-.73-.24-1.32-.56-1.76-.98l1.16-1.42c.81.72,1.77,1.08,2.89,1.08.51,0,.92-.1,1.24-.29.31-.19.47-.43.47-.71,0-.21-.09-.38-.28-.53-.18-.14-.5-.26-.94-.35l-1.84-.35c-.8-.15-1.4-.43-1.79-.83-.4-.4-.59-.91-.59-1.51,0-.54.16-1.02.47-1.42.32-.4.76-.71,1.32-.93s1.2-.32,1.91-.32c.67,0,1.32.1,1.93.29s1.15.49,1.6.9l-1.08,1.38c-.76-.62-1.6-.92-2.51-.92-.49,0-.89.08-1.22.25-.32.17-.49.38-.49.64,0,.17.08.32.25.44.16.13.48.24.94.32l1.7.31c.85.16,1.49.46,1.91.91.43.44.64.97.64,1.59,0,.55-.15,1.04-.44,1.46s-.71.75-1.25.98-1.17.35-1.88.35c-.86,0-1.65-.12-2.38-.35ZM41.5,1c0-.55-.46-1-1.01-1H1C.45,0,0,.45,0,1v14.95c0,.55.45,1,1,1h15.2v-.02s.06.02.1.02h24.29c.55,0,1-.45.99-1l-.08-14.95Zm-25.21,14.95l-.09-14.95h24.3s.09,14.95.09,14.95h-24.3Zm-8.34-7.1l-1.66,1.64v2.32h-1.88V4.16h1.88v4.09l4.1-4.09h2.27l-3.42,3.4,3.62,5.24h-2.23l-2.69-3.96Z'%20/%3e%3c/svg%3e\"","import styled from \"@emotion/styled\";\nimport {\n Container,\n TopNavigationButtonList,\n} from \"@kosdev-code/kos-ddk-components\";\nimport { ReactNode, useMemo } from \"react\";\nimport kosLogo from \"./kos-logo.svg\";\n\nconst HeaderStyles = styled.div`\n background-color: var(--ddk-component-top-navigation-background-color);\n color: var(--ddk-component-top-navigation-color);\n`;\n\nconst ContainerStyles = styled.div`\n padding: var(--ddk-component-top-navigation-padding);\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst LogoContainerStyles = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n`;\n\nconst LogoStyles = styled.div`\n width: 100px;\n`;\n\nconst TitleStyles = styled.h1`\n font-size: 16px;\n`;\n\nconst useNavigationItems = () => {\n const navigationItems = useMemo(() => {\n const navigationItems: { children: ReactNode; to: string }[] = [\n // { children: 'Develop', to: '/develop' }\n ];\n\n return navigationItems;\n }, []);\n\n return navigationItems;\n};\n\nexport const Header = () => {\n const navigationItems = useNavigationItems();\n\n return (\n <HeaderStyles>\n <Container>\n <ContainerStyles>\n <LogoContainerStyles>\n <LogoStyles>\n <img alt=\"KOS logo\" src={kosLogo} />\n </LogoStyles>\n <TitleStyles>Welcome to KOS</TitleStyles>\n </LogoContainerStyles>\n <TopNavigationButtonList items={navigationItems} />\n </ContainerStyles>\n </Container>\n </HeaderStyles>\n );\n};\n","import styled from \"@emotion/styled\";\nimport { kosComponent } from \"@kosdev-code/kos-ui-sdk\";\nimport { ReactNode } from \"react\";\nimport { Header } from \"./header\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n`;\n\nconst Body = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n`;\n\ninterface ShellProps {\n children: ReactNode;\n}\n\nexport const Shell = kosComponent(({ children }: ShellProps) => (\n <Container>\n <Header />\n <Body>{children}</Body>\n </Container>\n));\n","import type { ReactNode } from \"react\";\n\ninterface ControlPourStoryContainerProps {\n children: ReactNode;\n}\n\nexport const ControlPourStoryContainer = ({\n children,\n}: ControlPourStoryContainerProps) => children;\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface CUIStoryContainerProps {\n children: ReactNode;\n}\n\nexport const CUIStoryContainer = ({ children }: CUIStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={false}\n title=\"CUI\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface NavStoryContainerProps {\n children: ReactNode;\n}\n\nexport const NavStoryContainer = ({ children }: NavStoryContainerProps) =>\n children;\n","import {\n SettingsSubheading,\n TabContainer,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SettingStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SettingStoryContainer = ({\n children,\n}: SettingStoryContainerProps) => (\n <TabContainer>\n <SettingsSubheading>Setting</SettingsSubheading>\n {children}\n </TabContainer>\n);\n","import {\n BackButton,\n Header,\n Modal,\n useComponentConfigurationContext,\n} from \"@kosdev-code/kos-ddk-components\";\nimport type { ReactNode } from \"react\";\n\ninterface SetupStepStoryContainerProps {\n children: ReactNode;\n}\n\nexport const SetupStepStoryContainer = ({\n children,\n}: SetupStepStoryContainerProps) => {\n const { componentModeOverride } = useComponentConfigurationContext();\n\n return (\n <Modal\n contain={componentModeOverride !== \"compact\"}\n mode=\"maximized\"\n show={true}\n >\n <>\n <Header\n CloseButton={\n componentModeOverride === \"compact\" ? BackButton : undefined\n }\n contain={componentModeOverride === \"compact\"}\n showCloseButton={true}\n showOpenButton={true}\n title=\"Setup Step\"\n />\n {children}\n </>\n </Modal>\n );\n};\n","import type { ReactNode } from \"react\";\n\ninterface UtilityStoryContainerProps {\n children: ReactNode;\n}\n\nexport const UtilityStoryContainer = ({\n children,\n}: UtilityStoryContainerProps) => children;\n"],"names":["DynamicComponentView","component","location","resolver","props","Component","setComponent","useState","useEffect","result","jsx","normalize","json","parsed","key","value","listKey","mapKey","list","map","item","data","parse","contributes","DynamicViewBasicContainer","styled","DynamicViewBasic","kosComponent","experiencesMap","selectedItem","setSelectedItem","namespaces","ext","t","useKosTranslation","selectedExperienceID","experience","select","useCallback","itemID","translatedList","useMemo","CardButtonGrid","DynamicViewModalContainer","DynamicViewModal","showOpenButton","showCloseButton","Modal","jsxs","Fragment","Header","DynamicViewSettingsContainer","GroupContainer","SettingView","experienceId","id","namespace","title","TabContainer","SettingsSubheading","GroupView","group","setting","DynamicViewSettings","groups","tabs","groupName","Tabs","DynamicViewUtilitiesContainer","DynamicViewUtilities","contentComponentMap","DynamicContainer","kOSJSON","kOSMetadata","TabRouter","DynamicViewPickerContainer","DynamicViewPicker","defaultExperienceId","experienceList","experienceMap","setSelectedExperienceID","save","experienceID","PickerCard","kosLogo","HeaderStyles","ContainerStyles","LogoContainerStyles","LogoStyles","TitleStyles","useNavigationItems","navigationItems","Container","TopNavigationButtonList","Body","Shell","children","ControlPourStoryContainer","CUIStoryContainer","componentModeOverride","useComponentConfigurationContext","BackButton","NavStoryContainer","SettingStoryContainer","SetupStepStoryContainer","UtilityStoryContainer"],"mappings":";;;;;;AASO,MAAMA,IAAuB,CAAC;AAAA,EACnC,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AACF,MAAiC;AAC/B,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAsB;AAExD,SAAAC,EAAU,MAAM;AAOT,KANQ,YAAY;AACjB,YAAAC,IAAS,MAAMN,EAASD,CAAQ;AAEzB,MAAAI,EAAAG,EAAOR,CAAS,CAAC;AAAA,IAAA;EAI/B,GAAA,CAACA,GAAWC,GAAUC,CAAQ,CAAC,GAE3BE,IAAY,gBAAAK,EAACL,GAAW,EAAA,GAAGD,GAAO,IAAK;AAChD,GC5BaO,IAAY,CAACC,MACxB,OAAO,QAAQA,CAAI,EAAE,OAAO,CAACC,GAA6B,CAACC,GAAKC,CAAK,MAAM;AACrE,MAAA,MAAM,QAAQA,CAAK,KAAM,OAAOA,KAAU,YAAYA,MAAU,MAAO;AACnE,UAAAC,IAAU,GAAGF,CAAG,QAChBG,IAAS,GAAGH,CAAG,OAEfI,IAAc,CAAA,GACdC,IAA2B,CAAA;AAG3B,KADQ,MAAM,QAAQJ,CAAK,IAAIA,IAAQ,OAAO,OAAOA,CAAK,GAC1D,QAAQ,CAACK,MAAS;AACtB,YAAMC,IAAO,EAAE,GAAGD,GAAM,OAAOA,EAAK;AACpC,MAAAF,EAAK,KAAKG,CAAI,GACVF,EAAAE,EAAK,EAAE,IAAIA;AAAA,IAAA,CAChB,GAEDR,EAAOG,CAAO,IAAIE,GAClBL,EAAOI,CAAM,IAAIE;AAAA,EACnB;AAEO,SAAAN;AACT,GAAG,EAAE,GCdMS,IAAQ,CAACV,MAA2B;AAC/C,QAAMW,IAAcX,EAAK,OAAO,IAAI,KAAK,OAAO;AAIzC,SAAA;AAAA,IACL,GAHkCD,EAAUY,CAAW;AAAA,IAIvD,aAAAA;AAAA,IACA,MAAAX;AAAA,EAAA;AAEJ,GCVMY,IAA4BC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAc5BC,IAAmBC;AAAA,EAC9B,CAAC;AAAA,IACC,aAAa,EAAE,gBAAAC,EAAe;AAAA,IAC9B,MAAAV;AAAA,IACA,KAAAC;AAAA,IACA,UAAAhB;AAAA,EAAA,MAC2B;AAC3B,UAAM,CAAC0B,GAAcC,CAAe,IAAIvB,EAAc,GAEhDwB,IAAab,EAAK,IAAI,CAACc,MAAQA,EAAI,SAAS,KAAK,IACjD,EAAE,GAAAC,EAAE,IAAIC,EAAkB,CAAC,GAAG,IAAI,IAAIH,CAAU,CAAC,CAAC,GAElDI,IAAuBN,KAAA,gBAAAA,EAAc,cACrCO,IAAaR,EAAeO,CAAoB,GAChDlC,IAAYmC,KAAA,gBAAAA,EAAY,WACxBlC,IAAWkC,KAAA,gBAAAA,EAAY,UAEvBC,IAASC;AAAA,MACb,CAACC,MAAmB;AACZ,cAAAnB,IAAOD,EAAIoB,CAAM;AAEvB,QAAAT,EAAgBV,CAAI;AAAA,MACtB;AAAA,MACA,CAACD,CAAG;AAAA,IAAA,GAGAqB,IAAiBC;AAAA,MACrB,MACEvB,EAAK,IAAI,CAACE,OACD;AAAA,QACL,GAAGA;AAAA,QACH,OAAOa,EAAE,GAAGb,EAAK,SAAS,IAAIA,EAAK,KAAK,IAAI,IAAIA,EAAK,KAAK,GAAG;AAAA,MAAA,EAEhE;AAAA,MACH,CAACF,GAAMe,CAAC;AAAA,IAAA;AAGV,6BACGT,GACC,EAAA,UAAA;AAAA,MAAA,gBAAAd,EAACgC,GAAe,EAAA,OAAOF,GAAgB,UAAUH,GAAQ;AAAA,MAExDpC,KAAaC,KACZ,gBAAAQ;AAAA,QAACV;AAAA,QAAA;AAAA,UACC,WAAAC;AAAA,UACA,UAAAC;AAAA,UACA,UAAAC;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ,EAAA,CAAA;AAAA,EAEJ;AACF,GCjEMwC,IAA4BlB,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAgB5BmB,IAAmBjB;AAAA,EAC9B,CAAC;AAAA,IACC,aAAa,EAAE,gBAAAC,EAAe;AAAA,IAC9B,MAAAV;AAAA,IACA,KAAAC;AAAA,IACA,gBAAA0B,IAAiB;AAAA,IACjB,iBAAAC,IAAkB;AAAA,IAClB,UAAA3C;AAAA,EAAA,MAC2B;AAC3B,UAAM,CAAC0B,GAAcC,CAAe,IAAIvB,EAAc,GAEhDwB,IAAab,EAAK,IAAI,CAACc,MAAQA,EAAI,SAAS,KAAK,IACjD,EAAE,GAAAC,EAAE,IAAIC,EAAkB,CAAC,GAAG,IAAI,IAAIH,CAAU,CAAC,CAAC,GAElDI,IAAuBN,KAAA,gBAAAA,EAAc,cACrCO,IAAaR,EAAeO,CAAoB,GAChDlC,IAAYmC,KAAA,gBAAAA,EAAY,WACxBlC,IAAWkC,KAAA,gBAAAA,EAAY,UAEvBC,IAASC;AAAA,MACb,CAACC,MAAmB;AACZ,cAAAnB,IAAOD,EAAIoB,CAAM;AAEvB,QACET,EADEV,KAGc,IAFI;AAAA,MAIxB;AAAA,MACA,CAACD,CAAG;AAAA,IAAA,GAGAqB,IAAiBC;AAAA,MACrB,MACEvB,EAAK,IAAI,CAACE,OACD;AAAA,QACL,GAAGA;AAAA,QACH,OAAOa,EAAE,GAAGb,EAAK,SAAS,IAAIA,EAAK,KAAK,IAAI,IAAIA,EAAK,KAAK,GAAG;AAAA,MAAA,EAEhE;AAAA,MACH,CAACF,GAAMe,CAAC;AAAA,IAAA;AAGV,6BACGU,GACC,EAAA,UAAA;AAAA,MAAA,gBAAAjC,EAACgC,GAAe,EAAA,OAAOF,GAAgB,UAAUH,GAAQ;AAAA,MAExDpC,KAAaC,KACX,gBAAAQ,EAAAqC,GAAA,EAAM,MAAK,aAAY,MAAM,IAC5B,UACE,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAvC;AAAA,UAACwC;AAAAA,UAAA;AAAA,YACC,OAAOjB,EAAEJ,EAAa,OAAO,IAAIA,EAAa,KAAK,GAAG;AAAA,YACtD,gBAAAgB;AAAA,YACA,iBAAAC;AAAA,YACA,SAAS,MAAM;AACb,cAAAT,EAAO,EAAE;AAAA,YACX;AAAA,UAAA;AAAA,QACF;AAAA,QACA,gBAAA3B;AAAA,UAACV;AAAA,UAAA;AAAA,YACC,WAAAC;AAAA,YACA,UAAAC;AAAA,YACA,UAAAC;AAAA,UAAA;AAAA,QACF;AAAA,MAAA,EAAA,CACF,EACF,CAAA;AAAA,IAEJ,EAAA,CAAA;AAAA,EAEJ;AACF,GChFMgD,IAA+B1B,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOtC2B,IAAiB3B,EAAO;AAAA;AAAA;AAAA;AAAA,GAoBxB4B,IAAc,CAAC;AAAA,EACnB,gBAAAzB;AAAA,EACA,UAAAzB;AAAA,EACA,SAAS,EAAE,cAAAmD,GAAc,IAAAC,GAAI,WAAAC,GAAW,OAAAC,EAAM;AAChD,MAAyB;AACvB,QAAM,EAAE,GAAAxB,EAAA,IAAMC,EAAkBsB,CAAS,GAEnCpB,IAAaR,EAAe0B,CAAY,GACxCrD,IAAYmC,KAAA,gBAAAA,EAAY,WACxBlC,IAAWkC,KAAA,gBAAAA,EAAY;AAE7B,2BACGsB,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAhD,EAACiD,KAAoB,UAAE1B,EAAAwB,GAAO,IAAIA,CAAK,GAAG,GAAE;AAAA,IAC5C,gBAAA/C;AAAA,MAACV;AAAA,MAAA;AAAA,QAEC,WAAAC;AAAA,QACA,UAAAC;AAAA,QACA,UAAAC;AAAA,MAAA;AAAA,MAHKoD;AAAA,IAIP;AAAA,EACF,EAAA,CAAA;AAEJ,GAQMK,IAAY,CAAC,EAAE,gBAAAhC,GAAgB,OAAAiC,GAAO,UAAA1D,EAAA,MAC1C,gBAAAO,EAAC0C,GACE,EAAA,UAAAS,EAAM,IAAI,CAACC,MACV,gBAAApD;AAAA,EAAC2C;AAAA,EAAA;AAAA,IAEC,gBAAAzB;AAAA,IACA,UAAAzB;AAAA,IACA,SAAA2D;AAAA,EAAA;AAAA,EAHKA,EAAQ;AAIf,CACD,EACH,CAAA,GAaWC,IAAsB,CAAC;AAAA,EAClC,aAAa,EAAE,gBAAAnC,EAAe;AAAA,EAC9B,MAAAV;AAAA,EAEA,UAAAf;AACF,MAAgC;AACxB,QAAA6D,IAASvB,EAAQ,MAAM;AAC3B,UAAMuB,IAA8B,CAAA;AAE/B,WAAA9C,EAAA,QAAQ,CAACE,MAAS;AACrB,MAAK4C,EAAO5C,EAAK,aAAa,MAC5B4C,EAAO5C,EAAK,aAAa,IAAI,KAG/B4C,EAAO5C,EAAK,aAAa,EAAE,KAAKA,CAAI;AAAA,IAAA,CACrC,GAEM4C;AAAAA,EAAA,GACN,CAAC9C,CAAI,CAAC,GAEH+C,IAAOxB;AAAA,IACX,MACE,OAAO,KAAKuB,CAAM,EAAE,IAAI,CAACE,OAChB;AAAA,MACL,IAAIA;AAAA,MACJ,OAAOA;AAAA,MACP,SACE,gBAAAxD;AAAA,QAACkD;AAAA,QAAA;AAAA,UACC,gBAAAhC;AAAA,UACA,OAAOoC,EAAOE,CAAS;AAAA,UACvB,UAAA/D;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,EAGL;AAAA,IACH,CAACyB,GAAgBoC,GAAQ7D,CAAQ;AAAA,EAAA;AAGnC,SACG,gBAAAO,EAAAyC,GAAA,EACC,UAAC,gBAAAzC,EAAAyD,GAAA,EAAK,MAAAF,GAAY,EACpB,CAAA;AAEJ,GChIMG,IAAgC3C,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBhC4C,IAAuB1C;AAAA,EAClC,CAAC;AAAA,IACC,aAAa,EAAE,gBAAAC,EAAe;AAAA,IAC9B,MAAAV;AAAA,IACA,KAAAC;AAAA,IACA,UAAAhB;AAAA,EAAA,MAC+B;AAC/B,UAAM,CAAC0B,GAAcC,CAAe,IAAIvB,EAAc,GAEhDwB,IAAab,EAAK,IAAI,CAACc,MAAQA,EAAI,SAAS,KAAK,IACjD,EAAE,GAAAC,EAAE,IAAIC,EAAkB,CAAC,GAAG,IAAI,IAAIH,CAAU,CAAC,CAAC,GAElDI,IAAuBN,KAAA,gBAAAA,EAAc,cACrCO,IAAaR,EAAeO,CAAoB,GAChDlC,IAAYmC,KAAA,gBAAAA,EAAY,WACxBlC,IAAWkC,KAAA,gBAAAA,EAAY,UAEvBC,IAASC;AAAA,MACb,CAACC,MAAmB;AACZ,cAAAnB,IAAOD,EAAIoB,CAAM;AAEvB,QACET,EADEV,KAGc,IAFI;AAAA,MAIxB;AAAA,MACA,CAACD,CAAG;AAAA,IAAA,GAGAqB,IAAiBC;AAAA,MACrB,MACEvB,EAAK,IAAI,CAACE,OACD;AAAA,QACL,GAAGA;AAAA,QACH,OAAOa,EAAE,GAAGb,EAAK,SAAS,IAAIA,EAAK,KAAK,IAAI,IAAIA,EAAK,KAAK,GAAG;AAAA,MAAA,EAEhE;AAAA,MACH,CAACF,GAAMe,CAAC;AAAA,IAAA;AAGV,6BACGmC,GACC,EAAA,UAAA;AAAA,MAAA,gBAAA1D,EAACgC,GAAe,EAAA,OAAOF,GAAgB,UAAUH,GAAQ;AAAA,MAExDpC,KAAaC,KACZ,gBAAAQ;AAAA,QAACV;AAAA,QAAA;AAAA,UACC,WAAAC;AAAA,UACA,UAAAC;AAAA,UACA,UAAAC;AAAA,UACA,OAAO,EAAE,YAAYkC,EAAO;AAAA,QAAA;AAAA,MAC9B;AAAA,IAEJ,EAAA,CAAA;AAAA,EAEJ;AACF,GCtEMiC,KAA2C;AAAA,EAC/C,KAAK,CAAClE,MAAe,gBAAAM,EAACkC,KAAkB,GAAGxC,GAAO,gBAAgB,IAAO;AAAA,EACzE,WAAWiE;AAAA,EACX,WAAWzB;AAAA,EACX,UAAU,CAACxC,MACT,gBAAAM,EAACqD,KAAoB,WAAU,YAAY,GAAG3D,GAAO;AAEzD,GAOamE,KACX5C,EAAa,CAAC,EAAE,SAAA6C,GAAS,UAAArE,QAAe;AAChC,QAAAsE,IAAchC,EAAQ,MAAMnB,EAAMkD,CAAO,GAAG,CAACA,CAAO,CAAC,GAErDP,IAAOxB;AAAA,IACX,MACE,OAAO,KAAKgC,EAAY,WAAW,EAChC;AAAA,MACC,CAAC3D,MACC,MAAM,QAAQ2D,EAAY,YAAY3D,CAAG,CAAC,KAC1C2D,EAAY,YAAY3D,CAAG,EAAE;AAAA,IAAA,EAEhC,IAAI,CAACA,MAAQ;AACN,YAAAT,IAAYiE,GAAoBxD,CAAG,KAAKY;AAEvC,aAAA;AAAA,QACL,IAAIZ;AAAA,QACJ,OAAOA;AAAA,QACP,SACE,gBAAAJ;AAAA,UAACL;AAAA,UAAA;AAAA,YAEC,aAAAoE;AAAA,YACA,MAAMA,EAAY,GAAG3D,CAAG,MAAM;AAAA,YAC9B,KAAK2D,EAAY,GAAG3D,CAAG,KAAK;AAAA,YAC5B,UAAAX;AAAA,UAAA;AAAA,UAJKW;AAAA,QAKP;AAAA,MAAA;AAAA,IAEJ,CACD;AAAA,IACL,CAAC;AAAA,EAAA;AAGH,SAAQ,gBAAAJ,EAAAgE,GAAA,EAAU,WAAU,IAAG,MAAAT,EAAY,CAAA;AAC7C,CAAC,GClDGU,KAA6BlD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAY7BmD,KAAoB,CAAC;AAAA,EAChC,aAAa,EAAE,qBAAAC,GAAqB,gBAAAC,GAAgB,eAAAC,EAAc;AAAA,EAClE,UAAA5E;AACF,MAA8B;AAC5B,QAAM,CAACgC,GAAsB6C,CAAuB,IAClDzE,EAASsE,CAAmB,GAExB5E,IAAY8E,EAAc5C,CAAoB,EAAE,WAChDjC,IAAW6E,EAAc5C,CAAoB,EAAE,UAE/C8C,IAAO3C,EAAY,CAAC4C,MAAyB;AACjD,IAAAF,EAAwBE,CAAY;AAAA,EACtC,GAAG,CAAE,CAAA;AAEL,2BACGP,IACC,EAAA,UAAA;AAAA,IAAA,gBAAAjE;AAAA,MAACyE;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAOL;AAAA,QACP,gBAAgB3C;AAAA,QAChB,mBAAkB;AAAA,QAClB,oBAAmB;AAAA,QACnB,QAAQ8C;AAAA,QACR,cAAchF;AAAA,MAAA;AAAA,IAChB;AAAA,IAEA,gBAAAS;AAAA,MAACV;AAAA,MAAA;AAAA,QACC,WAAAC;AAAA,QACA,UAAAC;AAAA,QACA,UAAAC;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ,GCnDeiF,KAAA,2kDCQTC,KAAe5D,EAAO;AAAA;AAAA;AAAA,GAKtB6D,KAAkB7D,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOzB8D,KAAsB9D,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAO7B+D,KAAa/D,EAAO;AAAA;AAAA,GAIpBgE,KAAchE,EAAO;AAAA;AAAA,GAIrBiE,KAAqB,MACDjD,EAAQ,MACiC;AAAA;AAAA,GAK9D,CAAE,CAAA,GAKMS,KAAS,MAAM;AAC1B,QAAMyC,IAAkBD;AAExB,SACG,gBAAAhF,EAAA2E,IAAA,EACC,UAAC,gBAAA3E,EAAAkF,GAAA,EACC,4BAACN,IACC,EAAA,UAAA;AAAA,IAAA,gBAAAtC,EAACuC,IACC,EAAA,UAAA;AAAA,MAAA,gBAAA7E,EAAC8E,MACC,UAAC,gBAAA9E,EAAA,OAAA,EAAI,KAAI,YAAW,KAAK0E,IAAS,EACpC,CAAA;AAAA,MACA,gBAAA1E,EAAC+E,MAAY,UAAc,iBAAA,CAAA;AAAA,IAAA,GAC7B;AAAA,IACA,gBAAA/E,EAACmF,GAAwB,EAAA,OAAOF,EAAiB,CAAA;AAAA,EAAA,GACnD,GACF,EACF,CAAA;AAEJ,GC5DMC,KAAYnE,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOnBqE,KAAOrE,EAAO;AAAA;AAAA;AAAA;AAAA,GAUPsE,KAAQpE,EAAa,CAAC,EAAE,UAAAqE,EAAS,wBAC3CJ,IACC,EAAA,UAAA;AAAA,EAAA,gBAAAlF,EAACwC,IAAO,EAAA;AAAA,EACR,gBAAAxC,EAACoF,MAAM,UAAAE,GAAS;AAAA,GAClB,CACD,GCrBYC,KAA4B,CAAC;AAAA,EACxC,UAAAD;AACF,MAAsCA,GCIzBE,KAAoB,CAAC,EAAE,UAAAF,QAAuC;AACnE,QAAA,EAAE,uBAAAG,MAA0BC;AAGhC,SAAA,gBAAA1F;AAAA,IAACqC;AAAA,IAAA;AAAA,MACC,SAASoD,MAA0B;AAAA,MACnC,MAAK;AAAA,MACL,MAAM;AAAA,MAEN,UACE,gBAAAnD,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAvC;AAAA,UAACwC;AAAAA,UAAA;AAAA,YACC,aACEiD,MAA0B,YAAYE,IAAa;AAAA,YAErD,SAASF,MAA0B;AAAA,YACnC,iBAAiB;AAAA,YACjB,gBAAgB;AAAA,YAChB,OAAM;AAAA,UAAA;AAAA,QACR;AAAA,QACCH;AAAA,MAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAGN,GC7BaM,KAAoB,CAAC,EAAE,UAAAN,QAClCA,GCGWO,KAAwB,CAAC;AAAA,EACpC,UAAAP;AACF,wBACGtC,GACC,EAAA,UAAA;AAAA,EAAA,gBAAAhD,EAACiD,KAAmB,UAAO,UAAA,CAAA;AAAA,EAC1BqC;AAAA,EACH,CAAA,GCJWQ,KAA0B,CAAC;AAAA,EACtC,UAAAR;AACF,MAAoC;AAC5B,QAAA,EAAE,uBAAAG,MAA0BC;AAGhC,SAAA,gBAAA1F;AAAA,IAACqC;AAAA,IAAA;AAAA,MACC,SAASoD,MAA0B;AAAA,MACnC,MAAK;AAAA,MACL,MAAM;AAAA,MAEN,UACE,gBAAAnD,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAvC;AAAA,UAACwC;AAAAA,UAAA;AAAA,YACC,aACEiD,MAA0B,YAAYE,IAAa;AAAA,YAErD,SAASF,MAA0B;AAAA,YACnC,iBAAiB;AAAA,YACjB,gBAAgB;AAAA,YAChB,OAAM;AAAA,UAAA;AAAA,QACR;AAAA,QACCH;AAAA,MAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAGN,GC/BaS,KAAwB,CAAC;AAAA,EACpC,UAAAT;AACF,MAAkCA;"}
|