@kosdev-code/kos-ui-plugin 2.0.0 → 2.0.1
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 +4 -4
- package/dev.cjs.map +1 -1
- package/dev.js +31 -31
- package/dev.js.map +1 -1
- package/package.json +2 -2
- package/utils.cjs +1 -1
- package/utils.cjs.map +1 -1
- package/utils.js +7 -7
- package/utils.js.map +1 -1
package/dev.cjs
CHANGED
|
@@ -22,12 +22,12 @@
|
|
|
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})}),q=m.div`
|
|
26
26
|
display: flex;
|
|
27
27
|
flex-direction: column;
|
|
28
28
|
gap: 32px;
|
|
29
29
|
width: 100%;
|
|
30
|
-
`,
|
|
30
|
+
`,A=({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(q,{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})]})},R="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",Z=m.div`
|
|
31
31
|
background-color: var(--ddk-component-top-navigation-background-color);
|
|
32
32
|
color: var(--ddk-component-top-navigation-color);
|
|
33
33
|
`,_=m.div`
|
|
@@ -44,7 +44,7 @@
|
|
|
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(Z,{children:t.jsx(d.Container,{children:t.jsxs(_,{children:[t.jsxs(z,{children:[t.jsx(P,{children:t.jsx("img",{alt:"
|
|
47
|
+
`,N=()=>p.useMemo(()=>[],[]),V=()=>{const n=N();return t.jsx(Z,{children:t.jsx(d.Container,{children:t.jsxs(_,{children:[t.jsxs(z,{children:[t.jsx(P,{children:t.jsx("img",{alt:"KOS logo",src:R})}),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]})})},Y=({children:n})=>n,tt=({children:n})=>t.jsxs(d.TabContainer,{children:[t.jsx(d.SettingsSubheading,{children:"Setting"}),n]}),nt=({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]})})},et=({children:n})=>n;exports.CUIStoryContainer=X;exports.DynamicComponentView=w;exports.DynamicContainer=
|
|
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]})})},Y=({children:n})=>n,tt=({children:n})=>t.jsxs(d.TabContainer,{children:[t.jsx(d.SettingsSubheading,{children:"Setting"}),n]}),nt=({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]})})},et=({children:n})=>n;exports.CUIStoryContainer=X;exports.DynamicComponentView=w;exports.DynamicContainer=H;exports.DynamicViewBasic=D;exports.DynamicViewModal=v;exports.DynamicViewPicker=A;exports.DynamicViewSettings=M;exports.DynamicViewUtilities=B;exports.Header=V;exports.NavStoryContainer=Y;exports.SettingStoryContainer=tt;exports.SetupStepStoryContainer=nt;exports.Shell=Q;exports.UtilityStoryContainer=et;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/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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"}
|
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,14 +26,14 @@ const b = ({
|
|
|
26
26
|
}), n[c] = l, n[i] = r;
|
|
27
27
|
}
|
|
28
28
|
return n;
|
|
29
|
-
}, {}),
|
|
29
|
+
}, {}), _ = (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
|
+
}, F = p.div`
|
|
37
37
|
display: flex;
|
|
38
38
|
flex-direction: column;
|
|
39
39
|
gap: 32px;
|
|
@@ -45,7 +45,7 @@ const b = ({
|
|
|
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
50
|
const C = e[d];
|
|
51
51
|
i(C);
|
|
@@ -58,8 +58,8 @@ const b = ({
|
|
|
58
58
|
})),
|
|
59
59
|
[n, r]
|
|
60
60
|
);
|
|
61
|
-
return /* @__PURE__ */ u(
|
|
62
|
-
/* @__PURE__ */ o(
|
|
61
|
+
return /* @__PURE__ */ u(F, { children: [
|
|
62
|
+
/* @__PURE__ */ o($, { items: v, onSelect: S }),
|
|
63
63
|
g && m && /* @__PURE__ */ o(
|
|
64
64
|
b,
|
|
65
65
|
{
|
|
@@ -84,7 +84,7 @@ 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, v = m == null ? void 0 : m.location, d = I(
|
|
88
88
|
(f) => {
|
|
89
89
|
const V = e[f];
|
|
90
90
|
r(V || null);
|
|
@@ -98,10 +98,10 @@ const b = ({
|
|
|
98
98
|
[n, a]
|
|
99
99
|
);
|
|
100
100
|
return /* @__PURE__ */ u(R, { children: [
|
|
101
|
-
/* @__PURE__ */ o(
|
|
102
|
-
S && v && /* @__PURE__ */ o(O, { mode: "maximized", show: !0, children: /* @__PURE__ */ u(
|
|
101
|
+
/* @__PURE__ */ o($, { items: C, onSelect: d }),
|
|
102
|
+
S && v && /* @__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,
|
|
@@ -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,7 +195,7 @@ 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
200
|
const C = e[d];
|
|
201
201
|
i(C || null);
|
|
@@ -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: v, onSelect: S }),
|
|
213
213
|
g && m && /* @__PURE__ */ o(
|
|
214
214
|
b,
|
|
215
215
|
{
|
|
@@ -227,7 +227,7 @@ 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(() => _(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) => {
|
|
@@ -259,7 +259,7 @@ const b = ({
|
|
|
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
|
] }) }) });
|
|
@@ -332,9 +332,9 @@ const b = ({
|
|
|
332
332
|
contain: n !== "compact",
|
|
333
333
|
mode: "maximized",
|
|
334
334
|
show: !0,
|
|
335
|
-
children: /* @__PURE__ */ u(
|
|
335
|
+
children: /* @__PURE__ */ u(D, { children: [
|
|
336
336
|
/* @__PURE__ */ o(
|
|
337
|
-
|
|
337
|
+
k,
|
|
338
338
|
{
|
|
339
339
|
CloseButton: n === "compact" ? G : void 0,
|
|
340
340
|
contain: n === "compact",
|
|
@@ -352,7 +352,7 @@ const b = ({
|
|
|
352
352
|
}) => /* @__PURE__ */ u(j, { children: [
|
|
353
353
|
/* @__PURE__ */ o(L, { children: "Setting" }),
|
|
354
354
|
t
|
|
355
|
-
] }),
|
|
355
|
+
] }), It = ({
|
|
356
356
|
children: t
|
|
357
357
|
}) => {
|
|
358
358
|
const { componentModeOverride: n } = E();
|
|
@@ -362,9 +362,9 @@ const b = ({
|
|
|
362
362
|
contain: n !== "compact",
|
|
363
363
|
mode: "maximized",
|
|
364
364
|
show: !0,
|
|
365
|
-
children: /* @__PURE__ */ u(
|
|
365
|
+
children: /* @__PURE__ */ u(D, { children: [
|
|
366
366
|
/* @__PURE__ */ o(
|
|
367
|
-
|
|
367
|
+
k,
|
|
368
368
|
{
|
|
369
369
|
CloseButton: n === "compact" ? G : void 0,
|
|
370
370
|
contain: n === "compact",
|
|
@@ -377,7 +377,7 @@ const b = ({
|
|
|
377
377
|
] })
|
|
378
378
|
}
|
|
379
379
|
);
|
|
380
|
-
},
|
|
380
|
+
}, Bt = ({
|
|
381
381
|
children: t
|
|
382
382
|
}) => t;
|
|
383
383
|
export {
|
|
@@ -392,9 +392,9 @@ export {
|
|
|
392
392
|
rt as Header,
|
|
393
393
|
wt as NavStoryContainer,
|
|
394
394
|
bt as SettingStoryContainer,
|
|
395
|
-
|
|
395
|
+
It as SetupStepStoryContainer,
|
|
396
396
|
Ct as Shell,
|
|
397
|
-
|
|
398
|
-
|
|
397
|
+
Bt as UtilityStoryContainer,
|
|
398
|
+
_ as parse
|
|
399
399
|
};
|
|
400
400
|
//# 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/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":";;;;;;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,GCfYC,KAAoB,CAAC,EAAE,UAAAD,QAAuC;AACnE,QAAA,EAAE,uBAAAE,MAA0BC;AAGhC,SAAA,gBAAAzF;AAAA,IAACqC;AAAA,IAAA;AAAA,MACC,SAASmD,MAA0B;AAAA,MACnC,MAAK;AAAA,MACL,MAAM;AAAA,MAEN,UACE,gBAAAlD,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAvC;AAAA,UAACwC;AAAAA,UAAA;AAAA,YACC,aACEgD,MAA0B,YAAYE,IAAa;AAAA,YAErD,SAASF,MAA0B;AAAA,YACnC,iBAAiB;AAAA,YACjB,gBAAgB;AAAA,YAChB,OAAM;AAAA,UAAA;AAAA,QACR;AAAA,QACCF;AAAA,MAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAGN,GC7BaK,KAAoB,CAAC,EAAE,UAAAL,QAClCA,GCGWM,KAAwB,CAAC;AAAA,EACpC,UAAAN;AACF,wBACGtC,GACC,EAAA,UAAA;AAAA,EAAA,gBAAAhD,EAACiD,KAAmB,UAAO,UAAA,CAAA;AAAA,EAC1BqC;AAAA,EACH,CAAA,GCJWO,KAA0B,CAAC;AAAA,EACtC,UAAAP;AACF,MAAoC;AAC5B,QAAA,EAAE,uBAAAE,MAA0BC;AAGhC,SAAA,gBAAAzF;AAAA,IAACqC;AAAA,IAAA;AAAA,MACC,SAASmD,MAA0B;AAAA,MACnC,MAAK;AAAA,MACL,MAAM;AAAA,MAEN,UACE,gBAAAlD,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAvC;AAAA,UAACwC;AAAAA,UAAA;AAAA,YACC,aACEgD,MAA0B,YAAYE,IAAa;AAAA,YAErD,SAASF,MAA0B;AAAA,YACnC,iBAAiB;AAAA,YACjB,gBAAgB;AAAA,YAChB,OAAM;AAAA,UAAA;AAAA,QACR;AAAA,QACCF;AAAA,MAAA,GACH;AAAA,IAAA;AAAA,EAAA;AAGN,GC/BaQ,KAAwB,CAAC;AAAA,EACpC,UAAAR;AACF,MAAkCA;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kosdev-code/kos-ui-plugin",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"kos": {
|
|
28
28
|
"build": {
|
|
29
|
-
"gitHash": "
|
|
29
|
+
"gitHash": "26743490ccd3555641529b81d803612636a8eba3"
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
package/utils.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./plugin-extension-manager-D9aw-mUM.cjs"),k=(s=null)=>(s||window.location.search.replace("?","")).split("&").map(r=>{const[t,i]=r.split("=");return[t,decodeURIComponent(i||"")]}).reduce((r,[t,i])=>(r[t]=i,r),{}),U=()=>{const s=window.location.origin,r=k();return(r==null?void 0:r.host)||s},C=async s=>{const r=U(),t=s??{},{pluginBaseUrl:i=r,pluginApiPath:N="/api/app/kosdev.ddk/ncui/plugins",overrides:d={}}=t,a=(await(await fetch(`${i}${N}`)).json()).data.reduce((o,n)=>{const E=(d==null?void 0:d[n.id])??`${i}${n.baseUrl}`;return n.descriptor?o[n.id]={basePath:`${E}remoteEntry.js`,extensions:n.descriptor.extensions,contributes:n.descriptor.contributes,remote:n.descriptor.id,init:!!n.descriptor.init}:console.error(`initialize-plugins: Plugin ${n.id} does not have a descriptor`),o},{});window.KosPlugins=window.KosPlugins||{},window.KosPlugins.__dynamicRemotes=a;const _=Object.keys(a).reduce((o,n)=>{const E=a[n].remote;return o[E]=a[n].basePath,o},{});return e.mf.setRemoteDefinitions(_),_};function X(s){const r=s.match(/^(\d+)\.(\d+)\.\d+(?:-\S+)?$/);if(!r)throw new Error(`Invalid version format: ${s}`);const[t,i,N]=r;return`${i}.${N}.0`}function y(s,r){var T,a,_,o,n,E,u,O,c,S,g,P,V,D,f,A,m,R;r!=null&&r.sdkVersion&&console.log("sdkVersion",r.sdkVersion),r!=null&&r.ddkVersion&&console.log("ddkVersion",r.ddkVersion);const t=X((r==null?void 0:r.sdkVersion)||"0.2.0"),i=X((r==null?void 0:r.ddkVersion)||"0.2.0");console.log(`Using DDK version: ${i}`),console.log(`Using SDK version: ${t}`);const N=s==null?void 0:s.name;if(!N)throw new Error("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./plugin-extension-manager-D9aw-mUM.cjs"),k=(s=null)=>(s||window.location.search.replace("?","")).split("&").map(r=>{const[t,i]=r.split("=");return[t,decodeURIComponent(i||"")]}).reduce((r,[t,i])=>(r[t]=i,r),{}),U=()=>{const s=window.location.origin,r=k();return(r==null?void 0:r.host)||s},C=async s=>{const r=U(),t=s??{},{pluginBaseUrl:i=r,pluginApiPath:N="/api/app/kosdev.ddk/ncui/plugins",overrides:d={}}=t,a=(await(await fetch(`${i}${N}`)).json()).data.reduce((o,n)=>{const E=(d==null?void 0:d[n.id])??`${i}${n.baseUrl}`;return n.descriptor?o[n.id]={basePath:`${E}remoteEntry.js`,extensions:n.descriptor.extensions,contributes:n.descriptor.contributes,remote:n.descriptor.id,init:!!n.descriptor.init}:console.error(`initialize-plugins: Plugin ${n.id} does not have a descriptor`),o},{});window.KosPlugins=window.KosPlugins||{},window.KosPlugins.__dynamicRemotes=a;const _=Object.keys(a).reduce((o,n)=>{const E=a[n].remote;return o[E]=a[n].basePath,o},{});return e.mf.setRemoteDefinitions(_),_};function X(s){const r=s.match(/^(\d+)\.(\d+)\.\d+(?:-\S+)?$/);if(!r)throw new Error(`Invalid version format: ${s}`);const[t,i,N]=r;return`${i}.${N}.0`}function y(s,r){var T,a,_,o,n,E,u,O,c,S,g,P,V,D,f,A,m,R;r!=null&&r.sdkVersion&&console.log("sdkVersion",r.sdkVersion),r!=null&&r.ddkVersion&&console.log("ddkVersion",r.ddkVersion);const t=X((r==null?void 0:r.sdkVersion)||"0.2.0"),i=X((r==null?void 0:r.ddkVersion)||"0.2.0");console.log(`Using DDK version: ${i}`),console.log(`Using SDK version: ${t}`);const N=s==null?void 0:s.name;if(!N)throw new Error("KOS Configuration should be added. Project name not found in config");const d=(o=(_=(a=(T=s==null?void 0:s.kosdev)==null?void 0:T.ddk)==null?void 0:a.ncui)==null?void 0:_.plugin)==null?void 0:o.id;if(!d)throw new Error("KOS Configuration should be added. Plugin ID not found in config");const l=Object.keys(((c=(O=(u=(E=(n=s==null?void 0:s.kosdev)==null?void 0:n.ddk)==null?void 0:E.ncui)==null?void 0:u.plugin)==null?void 0:O.contributes)==null?void 0:c.views)||{}).reduce((I,h)=>(s.kosdev.ddk.ncui.plugin.contributes.views[h].forEach(b=>{I[`./${b.component}`]=b.location}),I),{});return Object.values(((D=(V=(P=(g=(S=s==null?void 0:s.kosdev)==null?void 0:S.ddk)==null?void 0:g.ncui)==null?void 0:P.plugin)==null?void 0:V.contributes)==null?void 0:D.experiences)||{}).forEach(I=>{l[`./${I.component}`]=I.location}),(R=(m=(A=(f=s==null?void 0:s.kosdev)==null?void 0:f.ddk)==null?void 0:A.ncui)==null?void 0:m.plugin)!=null&&R.init&&(l["./InitPlugin"]="./src/app/init.ts"),{name:N,exposes:l,library:{type:"var",name:d},additionalShared:[{libraryName:"@kosdev-code/kos-ui-plugin",sharedConfig:{singleton:!0,eager:!1,requiredVersion:`~${i}`}},{libraryName:"react",sharedConfig:{singleton:!0,eager:!1,strictVersion:!0,requiredVersion:"18.2.0"}},{libraryName:"react-dom",sharedConfig:{singleton:!0,eager:!1,strictVersion:!0,requiredVersion:"18.2.0"}},{libraryName:"@kosdev-code/kos-ui-sdk",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${t}`}},{libraryName:"@kosdev-code/kos-dispense-sdk",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${t}`}},{libraryName:"@kosdev-code/kos-freestyle-sdk",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${t}`}},{libraryName:"@kosdev-code/kos-ddk-components",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${i}`}},{libraryName:"@kosdev-code/kos-ddk-model-components",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${i}`}},{libraryName:"@kosdev-code/kos-ddk-models",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${i}`}},{libraryName:"@kosdev-code/kos-ddk",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${i}`}},{libraryName:"@kosdev-code/kos-ddk-styles",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:`~${i}`}},{libraryName:"@emotion/styled",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"~11.11.0"}},{libraryName:"@emotion/react",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"~11.11.0"}},{libraryName:"reflect-metadata",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^0.2.2"}},{libraryName:"mobx",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^6.9.0"}},{libraryName:"loglevel",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^1.8.1"}},{libraryName:"robot3",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^0.4.0"}},{libraryName:"mobx-react-lite",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^3.4.3"}},{libraryName:"react-router-dom",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^6.11.2"}},{libraryName:"date-fns",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^2.30.0"}},{libraryName:"@use-gesture/react",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^10.3.0"}},{libraryName:"@react-spring/web",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^9.7.3"}},{libraryName:"react-simple-keyboard",sharedConfig:{singleton:!0,eager:!1,strictVersion:!1,requiredVersion:"^3.6.13"}}]}}exports.EXTENSION_POINT_CUI=e.EXTENSION_POINT_CUI;exports.EXTENSION_POINT_CUI_DEF=e.EXTENSION_POINT_CUI_DEF;exports.EXTENSION_POINT_CUI_VIEW=e.EXTENSION_POINT_CUI_VIEW;exports.EXTENSION_POINT_DASHBOARD=e.EXTENSION_POINT_DASHBOARD;exports.EXTENSION_POINT_DASHBOARD_DETAIL=e.EXTENSION_POINT_DASHBOARD_DETAIL;exports.EXTENSION_POINT_DASHBOARD_DETAIL_DEF=e.EXTENSION_POINT_DASHBOARD_DETAIL_DEF;exports.EXTENSION_POINT_DASHBOARD_DETAIL_VIEW=e.EXTENSION_POINT_DASHBOARD_DETAIL_VIEW;exports.EXTENSION_POINT_DASHBOARD_PUMP_DETAIL=e.EXTENSION_POINT_DASHBOARD_PUMP_DETAIL;exports.EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF=e.EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF;exports.EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW=e.EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW;exports.EXTENSION_POINT_DASHBOARD_SUMMARY=e.EXTENSION_POINT_DASHBOARD_SUMMARY;exports.EXTENSION_POINT_DASHBOARD_SUMMARY_DEF=e.EXTENSION_POINT_DASHBOARD_SUMMARY_DEF;exports.EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW=e.EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW;exports.EXTENSION_POINT_NAV_VIEW=e.EXTENSION_POINT_NAV_VIEW;exports.EXTENSION_POINT_NAV_VIEW_DEF=e.EXTENSION_POINT_NAV_VIEW_DEF;exports.EXTENSION_POINT_NAV_VIEW_VIEW=e.EXTENSION_POINT_NAV_VIEW_VIEW;exports.EXTENSION_POINT_SETTINGS=e.EXTENSION_POINT_SETTINGS;exports.EXTENSION_POINT_SETTINGS_DEF=e.EXTENSION_POINT_SETTINGS_DEF;exports.EXTENSION_POINT_SETTINGS_GROUP_DEF=e.EXTENSION_POINT_SETTINGS_GROUP_DEF;exports.EXTENSION_POINT_SETTINGS_VIEW=e.EXTENSION_POINT_SETTINGS_VIEW;exports.EXTENSION_POINT_SETUP=e.EXTENSION_POINT_SETUP;exports.EXTENSION_POINT_SETUP_DEF=e.EXTENSION_POINT_SETUP_DEF;exports.EXTENSION_POINT_SETUP_VIEW=e.EXTENSION_POINT_SETUP_VIEW;exports.EXTENSION_POINT_TROUBLE_ACTION=e.EXTENSION_POINT_TROUBLE_ACTION;exports.EXTENSION_POINT_TROUBLE_ACTION_DEF=e.EXTENSION_POINT_TROUBLE_ACTION_DEF;exports.EXTENSION_POINT_TROUBLE_ACTION_VIEW=e.EXTENSION_POINT_TROUBLE_ACTION_VIEW;exports.EXTENSION_POINT_UTIL=e.EXTENSION_POINT_UTIL;exports.EXTENSION_POINT_UTIL_DEF=e.EXTENSION_POINT_UTIL_DEF;exports.EXTENSION_POINT_UTIL_VIEW=e.EXTENSION_POINT_UTIL_VIEW;exports.contributionReducer=e.contributionReducer;exports.cuiReducer=e.cuiReducer;exports.dashboardDetailReducer=e.dashboardDetailReducer;exports.dashboardPumpDetailReducer=e.dashboardPumpDetailReducer;exports.dashboardReducer=e.dashboardReducer;exports.dashboardSummaryReducer=e.dashboardSummaryReducer;exports.getContributions=e.getContributions;exports.getExtensions=e.getExtensions;exports.initPluginManager=e.initPluginManager;exports.loadExtensions=e.loadExtensions;exports.navViewReducer=e.navViewReducer;exports.settingsReducer=e.settingsReducer;exports.setupReducer=e.setupReducer;exports.troubleActionReducer=e.troubleActionReducer;exports.utilReducer=e.utilReducer;exports.generatePluginConfiguration=y;exports.getQueryParams=k;exports.initializeKosPlugins=C;
|
|
2
2
|
//# sourceMappingURL=utils.cjs.map
|
package/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/process-kos-config.ts"],"sourcesContent":["import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n overrides?: Record<string, string>;\n}\n\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n } = data;\n const plugins = await fetch(`${pluginBaseUrl}${pluginApiPath}`);\n const remotes = await plugins.json();\n const allRemotes = remotes.data.reduce((acc, item) => {\n const baseUrl = overrides?.[item.id] ?? `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","/* eslint-disable max-lines-per-function */\nimport type { Contributions } from \"../../types/global\";\n\ninterface KosConfigView {\n id: string;\n title: string;\n component: string;\n location: string;\n}\ninterface KosConfig {\n name: string;\n kosdev: {\n ddk: {\n ncui: {\n plugin: {\n id: string;\n init?: boolean;\n contributes: Contributions;\n };\n };\n };\n };\n}\n\nfunction normalizeVersion(version: string): string {\n const match = version.match(/^(\\d+)\\.(\\d+)\\.\\d+(?:-\\S+)?$/);\n if (!match) {\n throw new Error(`Invalid version format: ${version}`);\n }\n const [_, major, minor] = match;\n return `${major}.${minor}.0`;\n}\n\nexport interface PluginOptions {\n sdkVersion?: string;\n ddkVersion?: string;\n}\nexport function generatePluginConfiguration(\n config: KosConfig,\n options?: PluginOptions\n): any {\n if (options?.sdkVersion) {\n console.log(\"sdkVersion\", options.sdkVersion);\n }\n if (options?.ddkVersion) {\n console.log(\"ddkVersion\", options.ddkVersion);\n }\n const sdkVersion = normalizeVersion(options?.sdkVersion || \"0.2.0\");\n const ddkVersion = normalizeVersion(options?.ddkVersion || \"0.2.0\");\n console.log(`Using DDK version: ${ddkVersion}`);\n console.log(`Using SDK version: ${sdkVersion}`);\n const projectId = config?.name;\n if (!projectId) {\n throw new Error(\n \"kOS Configuration should be added. Project name not found in config\"\n );\n }\n const pluginId = config?.kosdev?.ddk?.ncui?.plugin?.id;\n if (!pluginId) {\n throw new Error(\n \"kOS Configuration should be added. Plugin ID not found in config\"\n );\n }\n const mfConfig = Object.keys(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.views || {}\n ).reduce((acc, key) => {\n const views = config.kosdev.ddk.ncui.plugin.contributes.views[key];\n\n views.forEach((view) => {\n acc[`./${view.component}`] = view.location;\n });\n return acc;\n }, {});\n\n Object.values(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.experiences || {}\n ).forEach((experience) => {\n mfConfig[`./${experience.component}`] = experience.location;\n });\n\n if (config?.kosdev?.ddk?.ncui?.plugin?.init) {\n mfConfig[\"./InitPlugin\"] = \"./src/app/init.ts\";\n }\n\n return {\n name: projectId,\n exposes: mfConfig,\n library: { type: \"var\", name: pluginId },\n additionalShared: [\n {\n libraryName: \"@kosdev-code/kos-ui-plugin\",\n sharedConfig: {\n singleton: true,\n eager: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n\n {\n libraryName: \"react-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ui-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-dispense-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n\n {\n libraryName: \"@kosdev-code/kos-freestyle-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-model-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-models\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-styles\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@emotion/styled\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"@emotion/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"reflect-metadata\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.2.2\",\n },\n },\n {\n libraryName: \"mobx\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.9.0\",\n },\n },\n\n {\n libraryName: \"loglevel\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^1.8.1\",\n },\n },\n {\n libraryName: \"robot3\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.4.0\",\n },\n },\n {\n libraryName: \"mobx-react-lite\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.4.3\",\n },\n },\n {\n libraryName: \"react-router-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.11.2\",\n },\n },\n {\n libraryName: \"date-fns\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^2.30.0\",\n },\n },\n {\n libraryName: \"@use-gesture/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^10.3.0\",\n },\n },\n {\n libraryName: \"@react-spring/web\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^9.7.3\",\n },\n },\n {\n libraryName: \"react-simple-keyboard\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.6.13\",\n },\n },\n ],\n };\n}\n"],"names":["getQueryParams","query","pair","key","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","allRemotes","acc","item","baseUrl","definitions","remote","setRemoteDefinitions","normalizeVersion","version","match","_","major","minor","generatePluginConfiguration","config","options","sdkVersion","ddkVersion","projectId","pluginId","_d","_c","_b","_a","mfConfig","_i","_h","_g","_f","_e","view","_n","_m","_l","_k","_j","experience","_r","_q","_p","_o"],"mappings":"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F,EACA,CACE,YAAa,8BACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,IAAIA,CAAU,EACjC,CACF,EACA,CACE,YAAa,kBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,UACnB,CACF,EACA,CACE,YAAa,iBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,UACnB,CACF,EACA,CACE,YAAa,mBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,OACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EAEA,CACE,YAAa,WACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,SACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,kBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,mBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,EACA,CACE,YAAa,WACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,EACA,CACE,YAAa,qBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,EACA,CACE,YAAa,oBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,wBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,CACF,CAAA,CAEJ"}
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/process-kos-config.ts"],"sourcesContent":["import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n overrides?: Record<string, string>;\n}\n\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n } = data;\n const plugins = await fetch(`${pluginBaseUrl}${pluginApiPath}`);\n const remotes = await plugins.json();\n const allRemotes = remotes.data.reduce((acc, item) => {\n const baseUrl = overrides?.[item.id] ?? `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","/* eslint-disable max-lines-per-function */\nimport type { Contributions } from \"../../types/global\";\n\ninterface KosConfigView {\n id: string;\n title: string;\n component: string;\n location: string;\n}\ninterface KosConfig {\n name: string;\n kosdev: {\n ddk: {\n ncui: {\n plugin: {\n id: string;\n init?: boolean;\n contributes: Contributions;\n };\n };\n };\n };\n}\n\nfunction normalizeVersion(version: string): string {\n const match = version.match(/^(\\d+)\\.(\\d+)\\.\\d+(?:-\\S+)?$/);\n if (!match) {\n throw new Error(`Invalid version format: ${version}`);\n }\n const [_, major, minor] = match;\n return `${major}.${minor}.0`;\n}\n\nexport interface PluginOptions {\n sdkVersion?: string;\n ddkVersion?: string;\n}\nexport function generatePluginConfiguration(\n config: KosConfig,\n options?: PluginOptions\n): any {\n if (options?.sdkVersion) {\n console.log(\"sdkVersion\", options.sdkVersion);\n }\n if (options?.ddkVersion) {\n console.log(\"ddkVersion\", options.ddkVersion);\n }\n const sdkVersion = normalizeVersion(options?.sdkVersion || \"0.2.0\");\n const ddkVersion = normalizeVersion(options?.ddkVersion || \"0.2.0\");\n console.log(`Using DDK version: ${ddkVersion}`);\n console.log(`Using SDK version: ${sdkVersion}`);\n const projectId = config?.name;\n if (!projectId) {\n throw new Error(\n \"KOS Configuration should be added. Project name not found in config\"\n );\n }\n const pluginId = config?.kosdev?.ddk?.ncui?.plugin?.id;\n if (!pluginId) {\n throw new Error(\n \"KOS Configuration should be added. Plugin ID not found in config\"\n );\n }\n const mfConfig = Object.keys(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.views || {}\n ).reduce((acc, key) => {\n const views = config.kosdev.ddk.ncui.plugin.contributes.views[key];\n\n views.forEach((view) => {\n acc[`./${view.component}`] = view.location;\n });\n return acc;\n }, {});\n\n Object.values(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.experiences || {}\n ).forEach((experience) => {\n mfConfig[`./${experience.component}`] = experience.location;\n });\n\n if (config?.kosdev?.ddk?.ncui?.plugin?.init) {\n mfConfig[\"./InitPlugin\"] = \"./src/app/init.ts\";\n }\n\n return {\n name: projectId,\n exposes: mfConfig,\n library: { type: \"var\", name: pluginId },\n additionalShared: [\n {\n libraryName: \"@kosdev-code/kos-ui-plugin\",\n sharedConfig: {\n singleton: true,\n eager: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n\n {\n libraryName: \"react-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ui-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-dispense-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n\n {\n libraryName: \"@kosdev-code/kos-freestyle-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-model-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-models\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-styles\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@emotion/styled\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"@emotion/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"reflect-metadata\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.2.2\",\n },\n },\n {\n libraryName: \"mobx\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.9.0\",\n },\n },\n\n {\n libraryName: \"loglevel\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^1.8.1\",\n },\n },\n {\n libraryName: \"robot3\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.4.0\",\n },\n },\n {\n libraryName: \"mobx-react-lite\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.4.3\",\n },\n },\n {\n libraryName: \"react-router-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.11.2\",\n },\n },\n {\n libraryName: \"date-fns\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^2.30.0\",\n },\n },\n {\n libraryName: \"@use-gesture/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^10.3.0\",\n },\n },\n {\n libraryName: \"@react-spring/web\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^9.7.3\",\n },\n },\n {\n libraryName: \"react-simple-keyboard\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.6.13\",\n },\n },\n ],\n };\n}\n"],"names":["getQueryParams","query","pair","key","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","allRemotes","acc","item","baseUrl","definitions","remote","setRemoteDefinitions","normalizeVersion","version","match","_","major","minor","generatePluginConfiguration","config","options","sdkVersion","ddkVersion","projectId","pluginId","_d","_c","_b","_a","mfConfig","_i","_h","_g","_f","_e","view","_n","_m","_l","_k","_j","experience","_r","_q","_p","_o"],"mappings":"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F,EACA,CACE,YAAa,8BACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,IAAIA,CAAU,EACjC,CACF,EACA,CACE,YAAa,kBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,UACnB,CACF,EACA,CACE,YAAa,iBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,UACnB,CACF,EACA,CACE,YAAa,mBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,OACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EAEA,CACE,YAAa,WACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,SACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,kBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,mBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,EACA,CACE,YAAa,WACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,EACA,CACE,YAAa,qBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,EACA,CACE,YAAa,oBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,QACnB,CACF,EACA,CACE,YAAa,wBACb,aAAc,CACZ,UAAW,GACX,MAAO,GACP,cAAe,GACf,gBAAiB,SACnB,CACF,CACF,CAAA,CAEJ"}
|
package/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { m as A } from "./plugin-extension-manager-7xDx0VSt.js";
|
|
2
|
-
import { b as $, E as B, a as H, o as L, g as W, e as F, f as M, l as x, j, k as K, s as G, q as z, r as Y, w as Q, u as J, v as Z, F as ee, B as re, D as se, C as ae, J as ie, H as ne, I as oe, N as te, L as de, M as le, R as ue, P as Ne, Q as Ee, c as ce, d as _e, h as Ie, n as ge, p as Te, t as Oe, y as fe, A as Ve, i as Se, z as me, x as
|
|
2
|
+
import { b as $, E as B, a as H, o as L, g as W, e as F, f as M, l as x, j, k as K, s as G, q as z, r as Y, w as Q, u as J, v as Z, F as ee, B as re, D as se, C as ae, J as ie, H as ne, I as oe, N as te, L as de, M as le, R as ue, P as Ne, Q as Ee, c as ce, d as _e, h as Ie, n as ge, p as Te, t as Oe, y as fe, A as Ve, i as Se, z as me, x as Pe, G as ke, K as be, O as he, S as De } from "./plugin-extension-manager-7xDx0VSt.js";
|
|
3
3
|
const C = (r = null) => (r || window.location.search.replace("?", "")).split("&").map((e) => {
|
|
4
4
|
const [i, s] = e.split("=");
|
|
5
5
|
return [i, decodeURIComponent(s || "")];
|
|
@@ -38,19 +38,19 @@ function D(r) {
|
|
|
38
38
|
return `${s}.${t}.0`;
|
|
39
39
|
}
|
|
40
40
|
function p(r, e) {
|
|
41
|
-
var c, o, u, n, a, l, _, I, g, T, O, f, V, S, m,
|
|
41
|
+
var c, o, u, n, a, l, _, I, g, T, O, f, V, S, m, P, k, b;
|
|
42
42
|
e != null && e.sdkVersion && console.log("sdkVersion", e.sdkVersion), e != null && e.ddkVersion && console.log("ddkVersion", e.ddkVersion);
|
|
43
43
|
const i = D((e == null ? void 0 : e.sdkVersion) || "0.2.0"), s = D((e == null ? void 0 : e.ddkVersion) || "0.2.0");
|
|
44
44
|
console.log(`Using DDK version: ${s}`), console.log(`Using SDK version: ${i}`);
|
|
45
45
|
const t = r == null ? void 0 : r.name;
|
|
46
46
|
if (!t)
|
|
47
47
|
throw new Error(
|
|
48
|
-
"
|
|
48
|
+
"KOS Configuration should be added. Project name not found in config"
|
|
49
49
|
);
|
|
50
50
|
const d = (n = (u = (o = (c = r == null ? void 0 : r.kosdev) == null ? void 0 : c.ddk) == null ? void 0 : o.ncui) == null ? void 0 : u.plugin) == null ? void 0 : n.id;
|
|
51
51
|
if (!d)
|
|
52
52
|
throw new Error(
|
|
53
|
-
"
|
|
53
|
+
"KOS Configuration should be added. Plugin ID not found in config"
|
|
54
54
|
);
|
|
55
55
|
const E = Object.keys(
|
|
56
56
|
((g = (I = (_ = (l = (a = r == null ? void 0 : r.kosdev) == null ? void 0 : a.ddk) == null ? void 0 : l.ncui) == null ? void 0 : _.plugin) == null ? void 0 : I.contributes) == null ? void 0 : g.views) || {}
|
|
@@ -61,7 +61,7 @@ function p(r, e) {
|
|
|
61
61
|
((S = (V = (f = (O = (T = r == null ? void 0 : r.kosdev) == null ? void 0 : T.ddk) == null ? void 0 : O.ncui) == null ? void 0 : f.plugin) == null ? void 0 : V.contributes) == null ? void 0 : S.experiences) || {}
|
|
62
62
|
).forEach((N) => {
|
|
63
63
|
E[`./${N.component}`] = N.location;
|
|
64
|
-
}), (b = (
|
|
64
|
+
}), (b = (k = (P = (m = r == null ? void 0 : r.kosdev) == null ? void 0 : m.ddk) == null ? void 0 : P.ncui) == null ? void 0 : k.plugin) != null && b.init && (E["./InitPlugin"] = "./src/app/init.ts"), {
|
|
65
65
|
name: t,
|
|
66
66
|
exposes: E,
|
|
67
67
|
library: { type: "var", name: d },
|
|
@@ -318,8 +318,8 @@ export {
|
|
|
318
318
|
Se as initPluginManager,
|
|
319
319
|
U as initializeKosPlugins,
|
|
320
320
|
me as loadExtensions,
|
|
321
|
-
|
|
322
|
-
|
|
321
|
+
Pe as navViewReducer,
|
|
322
|
+
ke as settingsReducer,
|
|
323
323
|
be as setupReducer,
|
|
324
324
|
he as troubleActionReducer,
|
|
325
325
|
De as utilReducer
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/process-kos-config.ts"],"sourcesContent":["import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n overrides?: Record<string, string>;\n}\n\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n } = data;\n const plugins = await fetch(`${pluginBaseUrl}${pluginApiPath}`);\n const remotes = await plugins.json();\n const allRemotes = remotes.data.reduce((acc, item) => {\n const baseUrl = overrides?.[item.id] ?? `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","/* eslint-disable max-lines-per-function */\nimport type { Contributions } from \"../../types/global\";\n\ninterface KosConfigView {\n id: string;\n title: string;\n component: string;\n location: string;\n}\ninterface KosConfig {\n name: string;\n kosdev: {\n ddk: {\n ncui: {\n plugin: {\n id: string;\n init?: boolean;\n contributes: Contributions;\n };\n };\n };\n };\n}\n\nfunction normalizeVersion(version: string): string {\n const match = version.match(/^(\\d+)\\.(\\d+)\\.\\d+(?:-\\S+)?$/);\n if (!match) {\n throw new Error(`Invalid version format: ${version}`);\n }\n const [_, major, minor] = match;\n return `${major}.${minor}.0`;\n}\n\nexport interface PluginOptions {\n sdkVersion?: string;\n ddkVersion?: string;\n}\nexport function generatePluginConfiguration(\n config: KosConfig,\n options?: PluginOptions\n): any {\n if (options?.sdkVersion) {\n console.log(\"sdkVersion\", options.sdkVersion);\n }\n if (options?.ddkVersion) {\n console.log(\"ddkVersion\", options.ddkVersion);\n }\n const sdkVersion = normalizeVersion(options?.sdkVersion || \"0.2.0\");\n const ddkVersion = normalizeVersion(options?.ddkVersion || \"0.2.0\");\n console.log(`Using DDK version: ${ddkVersion}`);\n console.log(`Using SDK version: ${sdkVersion}`);\n const projectId = config?.name;\n if (!projectId) {\n throw new Error(\n \"kOS Configuration should be added. Project name not found in config\"\n );\n }\n const pluginId = config?.kosdev?.ddk?.ncui?.plugin?.id;\n if (!pluginId) {\n throw new Error(\n \"kOS Configuration should be added. Plugin ID not found in config\"\n );\n }\n const mfConfig = Object.keys(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.views || {}\n ).reduce((acc, key) => {\n const views = config.kosdev.ddk.ncui.plugin.contributes.views[key];\n\n views.forEach((view) => {\n acc[`./${view.component}`] = view.location;\n });\n return acc;\n }, {});\n\n Object.values(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.experiences || {}\n ).forEach((experience) => {\n mfConfig[`./${experience.component}`] = experience.location;\n });\n\n if (config?.kosdev?.ddk?.ncui?.plugin?.init) {\n mfConfig[\"./InitPlugin\"] = \"./src/app/init.ts\";\n }\n\n return {\n name: projectId,\n exposes: mfConfig,\n library: { type: \"var\", name: pluginId },\n additionalShared: [\n {\n libraryName: \"@kosdev-code/kos-ui-plugin\",\n sharedConfig: {\n singleton: true,\n eager: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n\n {\n libraryName: \"react-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ui-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-dispense-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n\n {\n libraryName: \"@kosdev-code/kos-freestyle-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-model-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-models\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-styles\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@emotion/styled\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"@emotion/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"reflect-metadata\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.2.2\",\n },\n },\n {\n libraryName: \"mobx\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.9.0\",\n },\n },\n\n {\n libraryName: \"loglevel\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^1.8.1\",\n },\n },\n {\n libraryName: \"robot3\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.4.0\",\n },\n },\n {\n libraryName: \"mobx-react-lite\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.4.3\",\n },\n },\n {\n libraryName: \"react-router-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.11.2\",\n },\n },\n {\n libraryName: \"date-fns\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^2.30.0\",\n },\n },\n {\n libraryName: \"@use-gesture/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^10.3.0\",\n },\n },\n {\n libraryName: \"@react-spring/web\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^9.7.3\",\n },\n },\n {\n libraryName: \"react-simple-keyboard\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.6.13\",\n },\n },\n ],\n };\n}\n"],"names":["getQueryParams","query","pair","key","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","allRemotes","acc","item","baseUrl","definitions","remote","setRemoteDefinitions","normalizeVersion","version","match","_","major","minor","generatePluginConfiguration","config","options","sdkVersion","ddkVersion","projectId","pluginId","_d","_c","_b","_a","mfConfig","_i","_h","_g","_f","_e","view","_n","_m","_l","_k","_j","experience","_r","_q","_p","_o"],"mappings":";;AAwCO,MAAMA,IAAiB,CAACC,IAAQ,UACpCA,KAAS,OAAO,SAAS,OAAO,QAAQ,KAAK,EAAE,GAG7C,MAAM,GAAG,EAGT,IAAI,CAACC,MAAS;AACb,QAAM,CAACC,GAAKC,CAAG,IAAIF,EAAK,MAAM,GAAG;AAEjC,SAAO,CAACC,GAAK,mBAAmBC,KAAO,EAAE,CAAC;AAC5C,CAAC,EAGA,OAAO,CAACC,GAAQ,CAACF,GAAKC,CAAG,OACxBC,EAAOF,CAAG,IAAIC,GACPC,IACN,EAAE,GAEHC,IAAiB,MAAM;AACrB,QAAAC,IAAc,OAAO,SAAS,QAC9BC,IAASR;AAGR,UAFUQ,KAAA,gBAAAA,EAAgB,SACPD;AAE5B,GAGaE,IAAuB,OAAOC,MAA4B;AACrE,QAAMH,IAAcD,KACdK,IAAOD,KAAS,IAChB;AAAA,IACJ,eAAAE,IAAgBL;AAAA,IAChB,eAAAM,IAAgB;AAAA,IAChB,WAAAC,IAAY,CAAC;AAAA,EACX,IAAAH,GAGEI,KADU,OADA,MAAM,MAAM,GAAGH,CAAa,GAAGC,CAAa,EAAE,GAChC,QACH,KAAK,OAAO,CAACG,GAAKC,MAAS;AAC9C,UAAAC,KAAUJ,KAAA,gBAAAA,EAAYG,EAAK,QAAO,GAAGL,CAAa,GAAGK,EAAK,OAAO;AACvE,WAAIA,EAAK,aACHD,EAAAC,EAAK,EAAE,IAAI;AAAA,MACb,UAAU,GAAGC,CAAO;AAAA,MACpB,YAAYD,EAAK,WAAW;AAAA,MAC5B,aAAaA,EAAK,WAAW;AAAA,MAC7B,QAAQA,EAAK,WAAW;AAAA,MACxB,MAAM,CAAC,CAACA,EAAK,WAAW;AAAA,IAAA,IAGlB,QAAA;AAAA,MACN,8BAA8BA,EAAK,EAAE;AAAA,IAAA,GAGlCD;AAAA,EACT,GAAG,CAAoB,CAAA;AAChB,SAAA,aAAa,OAAO,cAAc,CAAA,GACzC,OAAO,WAAW,mBAAmBD;AAC/B,QAAAI,IAAc,OAAO,KAAKJ,CAAU,EAAE,OAAO,CAACC,GAAKC,MAAS;AAC1D,UAAAG,IAASL,EAAWE,CAAI,EAAE;AAChC,WAAAD,EAAII,CAAM,IAAIL,EAAWE,CAAI,EAAE,UACxBD;AAAA,EACT,GAAG,CAA4B,CAAA;AAC/BK,SAAAA,EAAA,qBAAqBF,CAAW,GACzBA;AACT;AChFA,SAASG,EAAiBC,GAAyB;AAC3C,QAAAC,IAAQD,EAAQ,MAAM,8BAA8B;AAC1D,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,2BAA2BD,CAAO,EAAE;AAEtD,QAAM,CAACE,GAAGC,GAAOC,CAAK,IAAIH;AACnB,SAAA,GAAGE,CAAK,IAAIC,CAAK;AAC1B;AAMgB,SAAAC,EACdC,GACAC,GACK;;AACL,EAAIA,KAAA,QAAAA,EAAS,cACH,QAAA,IAAI,cAAcA,EAAQ,UAAU,GAE1CA,KAAA,QAAAA,EAAS,cACH,QAAA,IAAI,cAAcA,EAAQ,UAAU;AAE9C,QAAMC,IAAaT,GAAiBQ,KAAA,gBAAAA,EAAS,eAAc,OAAO,GAC5DE,IAAaV,GAAiBQ,KAAA,gBAAAA,EAAS,eAAc,OAAO;AAC1D,UAAA,IAAI,sBAAsBE,CAAU,EAAE,GACtC,QAAA,IAAI,sBAAsBD,CAAU,EAAE;AAC9C,QAAME,IAAYJ,KAAA,gBAAAA,EAAQ;AAC1B,MAAI,CAACI;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,QAAMC,KAAWC,KAAAC,KAAAC,KAAAC,IAAAT,KAAA,gBAAAA,EAAQ,WAAR,gBAAAS,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,gBAAAD,EAAmC;AACpD,MAAI,CAACD;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,QAAMK,IAAW,OAAO;AAAA,MACtBC,KAAAC,KAAAC,KAAAC,KAAAC,IAAAf,KAAA,gBAAAA,EAAQ,WAAR,gBAAAe,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,gBAAAD,EAAmC,gBAAnC,gBAAAD,EAAgD,UAAS,CAAC;AAAA,EAAA,EAC1D,OAAO,CAACxB,GAAKb,OACC0B,EAAO,OAAO,IAAI,KAAK,OAAO,YAAY,MAAM1B,CAAG,EAE3D,QAAQ,CAAC0C,MAAS;AACtB,IAAA7B,EAAI,KAAK6B,EAAK,SAAS,EAAE,IAAIA,EAAK;AAAA,EAAA,CACnC,GACM7B,IACN,CAAE,CAAA;AAEE,gBAAA;AAAA,MACL8B,KAAAC,KAAAC,KAAAC,KAAAC,IAAArB,KAAA,gBAAAA,EAAQ,WAAR,gBAAAqB,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,gBAAAD,EAAmC,gBAAnC,gBAAAD,EAAgD,gBAAe,CAAC;AAAA,EAAA,EAChE,QAAQ,CAACK,MAAe;AACxB,IAAAZ,EAAS,KAAKY,EAAW,SAAS,EAAE,IAAIA,EAAW;AAAA,EAAA,CACpD,IAEGC,KAAAC,KAAAC,KAAAC,IAAA1B,KAAA,gBAAAA,EAAQ,WAAR,gBAAA0B,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,QAAAD,EAAmC,SACrCb,EAAS,cAAc,IAAI,sBAGtB;AAAA,IACL,MAAMN;AAAA,IACN,SAASM;AAAA,IACT,SAAS,EAAE,MAAM,OAAO,MAAML,EAAS;AAAA,IACvC,kBAAkB;AAAA,MAChB;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,iBAAiB,IAAIF,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MAEA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAID,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MAEA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIC,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MAEA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/process-kos-config.ts"],"sourcesContent":["import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n overrides?: Record<string, string>;\n}\n\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n } = data;\n const plugins = await fetch(`${pluginBaseUrl}${pluginApiPath}`);\n const remotes = await plugins.json();\n const allRemotes = remotes.data.reduce((acc, item) => {\n const baseUrl = overrides?.[item.id] ?? `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","/* eslint-disable max-lines-per-function */\nimport type { Contributions } from \"../../types/global\";\n\ninterface KosConfigView {\n id: string;\n title: string;\n component: string;\n location: string;\n}\ninterface KosConfig {\n name: string;\n kosdev: {\n ddk: {\n ncui: {\n plugin: {\n id: string;\n init?: boolean;\n contributes: Contributions;\n };\n };\n };\n };\n}\n\nfunction normalizeVersion(version: string): string {\n const match = version.match(/^(\\d+)\\.(\\d+)\\.\\d+(?:-\\S+)?$/);\n if (!match) {\n throw new Error(`Invalid version format: ${version}`);\n }\n const [_, major, minor] = match;\n return `${major}.${minor}.0`;\n}\n\nexport interface PluginOptions {\n sdkVersion?: string;\n ddkVersion?: string;\n}\nexport function generatePluginConfiguration(\n config: KosConfig,\n options?: PluginOptions\n): any {\n if (options?.sdkVersion) {\n console.log(\"sdkVersion\", options.sdkVersion);\n }\n if (options?.ddkVersion) {\n console.log(\"ddkVersion\", options.ddkVersion);\n }\n const sdkVersion = normalizeVersion(options?.sdkVersion || \"0.2.0\");\n const ddkVersion = normalizeVersion(options?.ddkVersion || \"0.2.0\");\n console.log(`Using DDK version: ${ddkVersion}`);\n console.log(`Using SDK version: ${sdkVersion}`);\n const projectId = config?.name;\n if (!projectId) {\n throw new Error(\n \"KOS Configuration should be added. Project name not found in config\"\n );\n }\n const pluginId = config?.kosdev?.ddk?.ncui?.plugin?.id;\n if (!pluginId) {\n throw new Error(\n \"KOS Configuration should be added. Plugin ID not found in config\"\n );\n }\n const mfConfig = Object.keys(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.views || {}\n ).reduce((acc, key) => {\n const views = config.kosdev.ddk.ncui.plugin.contributes.views[key];\n\n views.forEach((view) => {\n acc[`./${view.component}`] = view.location;\n });\n return acc;\n }, {});\n\n Object.values(\n config?.kosdev?.ddk?.ncui?.plugin?.contributes?.experiences || {}\n ).forEach((experience) => {\n mfConfig[`./${experience.component}`] = experience.location;\n });\n\n if (config?.kosdev?.ddk?.ncui?.plugin?.init) {\n mfConfig[\"./InitPlugin\"] = \"./src/app/init.ts\";\n }\n\n return {\n name: projectId,\n exposes: mfConfig,\n library: { type: \"var\", name: pluginId },\n additionalShared: [\n {\n libraryName: \"@kosdev-code/kos-ui-plugin\",\n sharedConfig: {\n singleton: true,\n eager: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n\n {\n libraryName: \"react-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: true,\n requiredVersion: \"18.2.0\",\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ui-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-dispense-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n\n {\n libraryName: \"@kosdev-code/kos-freestyle-sdk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${sdkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-model-components\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-models\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@kosdev-code/kos-ddk-styles\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: `~${ddkVersion}`,\n },\n },\n {\n libraryName: \"@emotion/styled\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"@emotion/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"~11.11.0\",\n },\n },\n {\n libraryName: \"reflect-metadata\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.2.2\",\n },\n },\n {\n libraryName: \"mobx\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.9.0\",\n },\n },\n\n {\n libraryName: \"loglevel\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^1.8.1\",\n },\n },\n {\n libraryName: \"robot3\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^0.4.0\",\n },\n },\n {\n libraryName: \"mobx-react-lite\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.4.3\",\n },\n },\n {\n libraryName: \"react-router-dom\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^6.11.2\",\n },\n },\n {\n libraryName: \"date-fns\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^2.30.0\",\n },\n },\n {\n libraryName: \"@use-gesture/react\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^10.3.0\",\n },\n },\n {\n libraryName: \"@react-spring/web\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^9.7.3\",\n },\n },\n {\n libraryName: \"react-simple-keyboard\",\n sharedConfig: {\n singleton: true,\n eager: false,\n strictVersion: false,\n requiredVersion: \"^3.6.13\",\n },\n },\n ],\n };\n}\n"],"names":["getQueryParams","query","pair","key","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","allRemotes","acc","item","baseUrl","definitions","remote","setRemoteDefinitions","normalizeVersion","version","match","_","major","minor","generatePluginConfiguration","config","options","sdkVersion","ddkVersion","projectId","pluginId","_d","_c","_b","_a","mfConfig","_i","_h","_g","_f","_e","view","_n","_m","_l","_k","_j","experience","_r","_q","_p","_o"],"mappings":";;AAwCO,MAAMA,IAAiB,CAACC,IAAQ,UACpCA,KAAS,OAAO,SAAS,OAAO,QAAQ,KAAK,EAAE,GAG7C,MAAM,GAAG,EAGT,IAAI,CAACC,MAAS;AACb,QAAM,CAACC,GAAKC,CAAG,IAAIF,EAAK,MAAM,GAAG;AAEjC,SAAO,CAACC,GAAK,mBAAmBC,KAAO,EAAE,CAAC;AAC5C,CAAC,EAGA,OAAO,CAACC,GAAQ,CAACF,GAAKC,CAAG,OACxBC,EAAOF,CAAG,IAAIC,GACPC,IACN,EAAE,GAEHC,IAAiB,MAAM;AACrB,QAAAC,IAAc,OAAO,SAAS,QAC9BC,IAASR;AAGR,UAFUQ,KAAA,gBAAAA,EAAgB,SACPD;AAE5B,GAGaE,IAAuB,OAAOC,MAA4B;AACrE,QAAMH,IAAcD,KACdK,IAAOD,KAAS,IAChB;AAAA,IACJ,eAAAE,IAAgBL;AAAA,IAChB,eAAAM,IAAgB;AAAA,IAChB,WAAAC,IAAY,CAAC;AAAA,EACX,IAAAH,GAGEI,KADU,OADA,MAAM,MAAM,GAAGH,CAAa,GAAGC,CAAa,EAAE,GAChC,QACH,KAAK,OAAO,CAACG,GAAKC,MAAS;AAC9C,UAAAC,KAAUJ,KAAA,gBAAAA,EAAYG,EAAK,QAAO,GAAGL,CAAa,GAAGK,EAAK,OAAO;AACvE,WAAIA,EAAK,aACHD,EAAAC,EAAK,EAAE,IAAI;AAAA,MACb,UAAU,GAAGC,CAAO;AAAA,MACpB,YAAYD,EAAK,WAAW;AAAA,MAC5B,aAAaA,EAAK,WAAW;AAAA,MAC7B,QAAQA,EAAK,WAAW;AAAA,MACxB,MAAM,CAAC,CAACA,EAAK,WAAW;AAAA,IAAA,IAGlB,QAAA;AAAA,MACN,8BAA8BA,EAAK,EAAE;AAAA,IAAA,GAGlCD;AAAA,EACT,GAAG,CAAoB,CAAA;AAChB,SAAA,aAAa,OAAO,cAAc,CAAA,GACzC,OAAO,WAAW,mBAAmBD;AAC/B,QAAAI,IAAc,OAAO,KAAKJ,CAAU,EAAE,OAAO,CAACC,GAAKC,MAAS;AAC1D,UAAAG,IAASL,EAAWE,CAAI,EAAE;AAChC,WAAAD,EAAII,CAAM,IAAIL,EAAWE,CAAI,EAAE,UACxBD;AAAA,EACT,GAAG,CAA4B,CAAA;AAC/BK,SAAAA,EAAA,qBAAqBF,CAAW,GACzBA;AACT;AChFA,SAASG,EAAiBC,GAAyB;AAC3C,QAAAC,IAAQD,EAAQ,MAAM,8BAA8B;AAC1D,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,2BAA2BD,CAAO,EAAE;AAEtD,QAAM,CAACE,GAAGC,GAAOC,CAAK,IAAIH;AACnB,SAAA,GAAGE,CAAK,IAAIC,CAAK;AAC1B;AAMgB,SAAAC,EACdC,GACAC,GACK;;AACL,EAAIA,KAAA,QAAAA,EAAS,cACH,QAAA,IAAI,cAAcA,EAAQ,UAAU,GAE1CA,KAAA,QAAAA,EAAS,cACH,QAAA,IAAI,cAAcA,EAAQ,UAAU;AAE9C,QAAMC,IAAaT,GAAiBQ,KAAA,gBAAAA,EAAS,eAAc,OAAO,GAC5DE,IAAaV,GAAiBQ,KAAA,gBAAAA,EAAS,eAAc,OAAO;AAC1D,UAAA,IAAI,sBAAsBE,CAAU,EAAE,GACtC,QAAA,IAAI,sBAAsBD,CAAU,EAAE;AAC9C,QAAME,IAAYJ,KAAA,gBAAAA,EAAQ;AAC1B,MAAI,CAACI;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,QAAMC,KAAWC,KAAAC,KAAAC,KAAAC,IAAAT,KAAA,gBAAAA,EAAQ,WAAR,gBAAAS,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,gBAAAD,EAAmC;AACpD,MAAI,CAACD;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,QAAMK,IAAW,OAAO;AAAA,MACtBC,KAAAC,KAAAC,KAAAC,KAAAC,IAAAf,KAAA,gBAAAA,EAAQ,WAAR,gBAAAe,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,gBAAAD,EAAmC,gBAAnC,gBAAAD,EAAgD,UAAS,CAAC;AAAA,EAAA,EAC1D,OAAO,CAACxB,GAAKb,OACC0B,EAAO,OAAO,IAAI,KAAK,OAAO,YAAY,MAAM1B,CAAG,EAE3D,QAAQ,CAAC0C,MAAS;AACtB,IAAA7B,EAAI,KAAK6B,EAAK,SAAS,EAAE,IAAIA,EAAK;AAAA,EAAA,CACnC,GACM7B,IACN,CAAE,CAAA;AAEE,gBAAA;AAAA,MACL8B,KAAAC,KAAAC,KAAAC,KAAAC,IAAArB,KAAA,gBAAAA,EAAQ,WAAR,gBAAAqB,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,gBAAAD,EAAmC,gBAAnC,gBAAAD,EAAgD,gBAAe,CAAC;AAAA,EAAA,EAChE,QAAQ,CAACK,MAAe;AACxB,IAAAZ,EAAS,KAAKY,EAAW,SAAS,EAAE,IAAIA,EAAW;AAAA,EAAA,CACpD,IAEGC,KAAAC,KAAAC,KAAAC,IAAA1B,KAAA,gBAAAA,EAAQ,WAAR,gBAAA0B,EAAgB,QAAhB,gBAAAD,EAAqB,SAArB,gBAAAD,EAA2B,WAA3B,QAAAD,EAAmC,SACrCb,EAAS,cAAc,IAAI,sBAGtB;AAAA,IACL,MAAMN;AAAA,IACN,SAASM;AAAA,IACT,SAAS,EAAE,MAAM,OAAO,MAAML,EAAS;AAAA,IACvC,kBAAkB;AAAA,MAChB;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,iBAAiB,IAAIF,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MAEA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAID,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MAEA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIC,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB,IAAIA,CAAU;AAAA,QACjC;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MAEA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,cAAc;AAAA,UACZ,WAAW;AAAA,UACX,OAAO;AAAA,UACP,eAAe;AAAA,UACf,iBAAiB;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EAAA;AAEJ;"}
|