@kosdev-code/kos-ui-plugin 2.0.0 → 2.0.18
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 +54 -51
- 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 +346 -103
- 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}})]})}),
|
|
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
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { j as o, a as u, F as
|
|
2
|
-
import { useState as x, useEffect as T, useCallback as
|
|
3
|
-
import { CardButtonGrid as
|
|
4
|
-
import { kosComponent as w, useKosTranslation as
|
|
1
|
+
import { j as o, a as u, F as D } from "./emotion-react-jsx-runtime.browser.esm-vwuMB3sI.js";
|
|
2
|
+
import { useState as x, useEffect as T, useCallback as I, useMemo as y } from "react";
|
|
3
|
+
import { CardButtonGrid as $, Header as k, Modal as O, Tabs as A, SettingsSubheading as L, TabContainer as j, TabRouter as U, PickerCard as Z, Container as z, TopNavigationButtonList as H, useComponentConfigurationContext as E, BackButton as G } from "@kosdev-code/kos-ddk-components";
|
|
4
|
+
import { kosComponent as w, useKosTranslation as B } from "@kosdev-code/kos-ui-sdk";
|
|
5
5
|
import p from "@emotion/styled";
|
|
6
6
|
import "react/jsx-runtime";
|
|
7
7
|
const b = ({
|
|
@@ -17,7 +17,7 @@ const b = ({
|
|
|
17
17
|
i(r[t]);
|
|
18
18
|
})();
|
|
19
19
|
}, [t, n, e]), c ? /* @__PURE__ */ o(c, { ...s }) : null;
|
|
20
|
-
},
|
|
20
|
+
}, K = (t) => Object.entries(t).reduce((n, [e, s]) => {
|
|
21
21
|
if (Array.isArray(s) || typeof s == "object" && s !== null) {
|
|
22
22
|
const c = `${e}List`, i = `${e}Map`, l = [], r = {};
|
|
23
23
|
(Array.isArray(s) ? s : Object.values(s)).forEach((a) => {
|
|
@@ -26,40 +26,40 @@ 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,
|
|
45
45
|
map: e,
|
|
46
46
|
resolver: s
|
|
47
47
|
}) => {
|
|
48
|
-
const [c, i] = x(), l = n.map((d) => d.namespace) || [], { t: r } =
|
|
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(
|
|
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 } =
|
|
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,10 +98,10 @@ const b = ({
|
|
|
98
98
|
[n, a]
|
|
99
99
|
);
|
|
100
100
|
return /* @__PURE__ */ u(R, { children: [
|
|
101
|
-
/* @__PURE__ */ o(
|
|
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
|
{
|
|
106
106
|
title: a(l.title, `"${l.title}"`),
|
|
107
107
|
showOpenButton: s,
|
|
@@ -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
|
)
|
|
@@ -136,7 +136,7 @@ const b = ({
|
|
|
136
136
|
resolver: n,
|
|
137
137
|
setting: { experienceId: e, id: s, namespace: c, title: i }
|
|
138
138
|
}) => {
|
|
139
|
-
const { t: l } =
|
|
139
|
+
const { t: l } = B(c), r = t[e], h = r == null ? void 0 : r.component, a = r == null ? void 0 : r.location;
|
|
140
140
|
return /* @__PURE__ */ u(j, { children: [
|
|
141
141
|
/* @__PURE__ */ o(L, { children: l(i, `"${i}"`) }),
|
|
142
142
|
/* @__PURE__ */ o(
|
|
@@ -195,13 +195,13 @@ const b = ({
|
|
|
195
195
|
map: e,
|
|
196
196
|
resolver: s
|
|
197
197
|
}) => {
|
|
198
|
-
const [c, i] = x(), l = n.map((d) => d.namespace) || [], { t: r } =
|
|
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(
|
|
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,11 +255,11 @@ 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
|
}) => {
|
|
262
|
-
const [c, i] = x(t), l = e[c].component, r = e[c].location, h =
|
|
262
|
+
const [c, i] = x(t), l = e[c].component, r = e[c].location, h = I((a) => {
|
|
263
263
|
i(a);
|
|
264
264
|
}, []);
|
|
265
265
|
return /* @__PURE__ */ u(nt, { children: [
|
|
@@ -307,8 +307,8 @@ const b = ({
|
|
|
307
307
|
const t = lt();
|
|
308
308
|
return /* @__PURE__ */ o(et, { children: /* @__PURE__ */ o(z, { children: /* @__PURE__ */ u(ct, { children: [
|
|
309
309
|
/* @__PURE__ */ u(st, { children: [
|
|
310
|
-
/* @__PURE__ */ o(it, { children: /* @__PURE__ */ o("img", { alt: "
|
|
311
|
-
/* @__PURE__ */ o(at, { children: "Welcome to
|
|
310
|
+
/* @__PURE__ */ o(it, { children: /* @__PURE__ */ o("img", { alt: "KOS logo", src: ot }) }),
|
|
311
|
+
/* @__PURE__ */ o(at, { children: "Welcome to KOS" })
|
|
312
312
|
] }),
|
|
313
313
|
/* @__PURE__ */ o(H, { items: t })
|
|
314
314
|
] }) }) });
|
|
@@ -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,
|
|
@@ -332,9 +334,9 @@ const b = ({
|
|
|
332
334
|
contain: n !== "compact",
|
|
333
335
|
mode: "maximized",
|
|
334
336
|
show: !0,
|
|
335
|
-
children: /* @__PURE__ */ u(
|
|
337
|
+
children: /* @__PURE__ */ u(D, { children: [
|
|
336
338
|
/* @__PURE__ */ o(
|
|
337
|
-
|
|
339
|
+
k,
|
|
338
340
|
{
|
|
339
341
|
CloseButton: n === "compact" ? G : void 0,
|
|
340
342
|
contain: n === "compact",
|
|
@@ -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();
|
|
@@ -362,9 +364,9 @@ const b = ({
|
|
|
362
364
|
contain: n !== "compact",
|
|
363
365
|
mode: "maximized",
|
|
364
366
|
show: !0,
|
|
365
|
-
children: /* @__PURE__ */ u(
|
|
367
|
+
children: /* @__PURE__ */ u(D, { children: [
|
|
366
368
|
/* @__PURE__ */ o(
|
|
367
|
-
|
|
369
|
+
k,
|
|
368
370
|
{
|
|
369
371
|
CloseButton: n === "compact" ? G : void 0,
|
|
370
372
|
contain: n === "compact",
|
|
@@ -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
|