@teambit/component 1.0.546 → 1.0.547

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.
@@ -281,8 +281,9 @@ function componentSchema(componentExtension) {
281
281
  errorMessage: err.message ? (0, _stripAnsi().default)(err.message) : err.name
282
282
  }));
283
283
  },
284
- id: async host => {
285
- return host.name;
284
+ id: async (host, _args, _context, info) => {
285
+ const extensionId = info.variableValues.extensionId;
286
+ return extensionId ? `${host.name}/${extensionId}` : host.name;
286
287
  },
287
288
  name: async host => {
288
289
  return host.name;
@@ -1 +1 @@
1
- {"version":3,"names":["_stripAnsi","data","_interopRequireDefault","require","_graphqlTag","_graphqlTypeJson","_toolboxPath","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","log","snap","loadSnap","version","date","timestamp","getTime","email","author","username","name","hash","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","latest","tags","toArray","tag","aspects","include","serialize","elementsUrl","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","Query","getHost","componentExt"],"sources":["component.graphql.ts"],"sourcesContent":["import stripAnsi from 'strip-ansi';\nimport { gql } from 'graphql-tag';\nimport { GraphQLJSONObject } from 'graphql-type-json';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport { ComponentLog } from '@teambit/objects';\nimport { Schema } from '@teambit/graphql';\nimport { Component } from './component';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain): Schema {\n return {\n typeDefs: gql`\n scalar JSON\n scalar JSONObject\n\n type ComponentID {\n name: String!\n version: String\n scope: String\n }\n\n type Tag {\n # semver assigned to the tag.\n version: String!\n\n # tag hash.\n hash: String!\n }\n\n type Snap {\n # hash of the snapshot.\n hash: String!\n\n # time of the snapshot.\n timestamp: String!\n\n # parents of the snap\n parents: [String]!\n\n # snapper\n author: Author!\n\n # snapshot message\n message: String\n }\n\n type LogEntry {\n message: String!\n displayName: String\n username: String\n parents: [String]!\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n profileImage: String\n }\n\n type Author {\n # display name of the snapper.\n displayName: String!\n\n # author of the snapper.\n email: String!\n }\n\n type Component {\n # id of the component.\n id: ComponentID!\n\n # head snap of the component.\n head: Snap\n\n # head tag of the component.\n headTag: Tag\n\n # list of all relative component paths.\n fs: [String]\n\n # relative path to the main file of the component\n mainFile: String\n\n # return specific file contents by relative file path.\n getFile(path: String): String\n\n # latest version of the component.\n latest: String\n\n # display name of the component\n displayName: String!\n\n # component buildStatus\n buildStatus: String\n\n # list of component releases.\n tags: [Tag]!\n\n # Log entry of the component.\n log: LogEntry!\n\n \"\"\"\n component logs\n \"\"\"\n logs(\n \"\"\"\n type of logs to show (tag or snap)\n \"\"\"\n type: String\n offset: Int\n limit: Int\n \"\"\"\n head to start traversing logs from\n \"\"\"\n head: String\n sort: String\n \"\"\"\n start traversing logs from the fetched component's head\n \"\"\"\n takeHeadFromComponent: Boolean\n ): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n\n \"\"\"\n element url of the component - this is deprecated, and will return empty string now.\n it's here to not break old queries\n \"\"\"\n elementsUrl: String @deprecated(reason: \"Not in use anymore\")\n }\n\n type Aspect {\n id: String!\n icon: String\n config: JSONObject\n data: JSONObject\n }\n\n type InvalidComponent {\n id: ComponentID!\n errorName: String!\n errorMessage: String!\n }\n\n type ComponentHost {\n id: ID!\n name: String!\n\n # load a component.\n get(id: String!, withState: Boolean): Component\n\n # list components\n list(offset: Int, limit: Int): [Component]!\n\n # list invalid components and their errors\n listInvalid: [InvalidComponent]!\n\n # get component logs(snaps) by component id\n snaps(id: String!): [LogEntry]! @deprecated(reason: \"Use the logs field on Component\")\n }\n\n type Query {\n getHost(id: String): ComponentHost\n }\n `,\n resolvers: {\n JSONObject: GraphQLJSONObject,\n Component: {\n id: (component: Component): ComponentIdObj => component.id.toObject(),\n displayName: (component: Component) => component.displayName,\n fs: (component: Component) => {\n return component.state.filesystem.files.map((file) => file.relative);\n },\n log: async (component: Component) => {\n const snap = await component.loadSnap(component.id.version);\n return {\n ...snap,\n date: snap.timestamp.getTime(),\n email: snap.author.email,\n username: snap.author.name,\n displayName: snap.author.displayName,\n id: snap.hash,\n };\n },\n getFile: (component: Component, { path }: { path: string }) => {\n const maybeFile = component.state.filesystem.files.find(\n (file) => pathNormalizeToLinux(file.relative) === path\n );\n if (!maybeFile) return undefined;\n return maybeFile.contents.toString('utf-8');\n },\n mainFile: (component: Component) => {\n return component.state._consumer.mainFile;\n },\n headTag: (component: Component) => component.headTag?.toObject(),\n latest: (component: Component) => component.latest,\n tags: (component) => {\n // graphql doesn't support map types\n return component.tags.toArray().map((tag) => tag.toObject());\n },\n aspects: (component: Component, { include }: { include?: string[] }) => {\n return component.state.aspects.filter(include).serialize();\n },\n // Here only to not break old queries\n elementsUrl: () => undefined,\n logs: async (\n component: Component,\n filter?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n takeHeadFromComponent: boolean;\n }\n ) => {\n let head = filter?.head;\n if (!head && filter?.takeHeadFromComponent) {\n head = component.id.version;\n }\n const finalFilter = { ...filter, head };\n return (await component.getLogs(finalFilter)).map((log) => ({ ...log, id: log.hash }));\n },\n },\n ComponentHost: {\n get: async (host: ComponentFactory, { id }: { id: string }) => {\n try {\n const componentId = await host.resolveComponentId(id);\n const component = await host.get(componentId);\n return component;\n } catch {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }): Promise<ComponentLog[]> => {\n const componentId = await host.resolveComponentId(id);\n // return (await host.getLogs(componentId)).map(log => ({...log, id: log.hash}))\n return host.getLogs(componentId);\n },\n list: async (host: ComponentFactory, filter?: { offset: number; limit: number }) => {\n return host.list(filter);\n },\n listInvalid: async (host: ComponentFactory) => {\n const invalidComps = await host.listInvalid();\n return invalidComps.map(({ id, err }) => ({\n id: id as ComponentID,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory) => {\n return host.name;\n },\n name: async (host: ComponentFactory) => {\n return host.name;\n },\n },\n Query: {\n getHost: (componentExt: ComponentMain, { id }: { id: string }) => {\n return componentExtension.getHost(id);\n },\n },\n },\n };\n}\n"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCAAiB;MAC7BC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAoB,IAAqBA,SAAS,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC;QACrEC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAACI,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;QACtE,CAAC;QACDC,GAAG,EAAE,MAAOV,SAAoB,IAAK;UACnC,MAAMW,IAAI,GAAG,MAAMX,SAAS,CAACY,QAAQ,CAACZ,SAAS,CAACD,EAAE,CAACc,OAAO,CAAC;UAC3D,OAAA1C,aAAA,CAAAA,aAAA,KACKwC,IAAI;YACPG,IAAI,EAAEH,IAAI,CAACI,SAAS,CAACC,OAAO,CAAC,CAAC;YAC9BC,KAAK,EAAEN,IAAI,CAACO,MAAM,CAACD,KAAK;YACxBE,QAAQ,EAAER,IAAI,CAACO,MAAM,CAACE,IAAI;YAC1BlB,WAAW,EAAES,IAAI,CAACO,MAAM,CAAChB,WAAW;YACpCH,EAAE,EAAEY,IAAI,CAACU;UAAI;QAEjB,CAAC;QACDC,OAAO,EAAEA,CAACtB,SAAoB,EAAE;UAAEuB;QAAuB,CAAC,KAAK;UAC7D,MAAMC,SAAS,GAAGxB,SAA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","ignoreList":[]}
1
+ {"version":3,"names":["_stripAnsi","data","_interopRequireDefault","require","_graphqlTag","_graphqlTypeJson","_toolboxPath","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","log","snap","loadSnap","version","date","timestamp","getTime","email","author","username","name","hash","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","latest","tags","toArray","tag","aspects","include","serialize","elementsUrl","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","_args","_context","info","extensionId","variableValues","Query","getHost","componentExt"],"sources":["component.graphql.ts"],"sourcesContent":["import stripAnsi from 'strip-ansi';\nimport { gql } from 'graphql-tag';\nimport { GraphQLJSONObject } from 'graphql-type-json';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport { ComponentLog } from '@teambit/objects';\nimport { Schema } from '@teambit/graphql';\nimport { Component } from './component';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain): Schema {\n return {\n typeDefs: gql`\n scalar JSON\n scalar JSONObject\n\n type ComponentID {\n name: String!\n version: String\n scope: String\n }\n\n type Tag {\n # semver assigned to the tag.\n version: String!\n\n # tag hash.\n hash: String!\n }\n\n type Snap {\n # hash of the snapshot.\n hash: String!\n\n # time of the snapshot.\n timestamp: String!\n\n # parents of the snap\n parents: [String]!\n\n # snapper\n author: Author!\n\n # snapshot message\n message: String\n }\n\n type LogEntry {\n message: String!\n displayName: String\n username: String\n parents: [String]!\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n profileImage: String\n }\n\n type Author {\n # display name of the snapper.\n displayName: String!\n\n # author of the snapper.\n email: String!\n }\n\n type Component {\n # id of the component.\n id: ComponentID!\n\n # head snap of the component.\n head: Snap\n\n # head tag of the component.\n headTag: Tag\n\n # list of all relative component paths.\n fs: [String]\n\n # relative path to the main file of the component\n mainFile: String\n\n # return specific file contents by relative file path.\n getFile(path: String): String\n\n # latest version of the component.\n latest: String\n\n # display name of the component\n displayName: String!\n\n # component buildStatus\n buildStatus: String\n\n # list of component releases.\n tags: [Tag]!\n\n # Log entry of the component.\n log: LogEntry!\n\n \"\"\"\n component logs\n \"\"\"\n logs(\n \"\"\"\n type of logs to show (tag or snap)\n \"\"\"\n type: String\n offset: Int\n limit: Int\n \"\"\"\n head to start traversing logs from\n \"\"\"\n head: String\n sort: String\n \"\"\"\n start traversing logs from the fetched component's head\n \"\"\"\n takeHeadFromComponent: Boolean\n ): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n\n \"\"\"\n element url of the component - this is deprecated, and will return empty string now.\n it's here to not break old queries\n \"\"\"\n elementsUrl: String @deprecated(reason: \"Not in use anymore\")\n }\n\n type Aspect {\n id: String!\n icon: String\n config: JSONObject\n data: JSONObject\n }\n\n type InvalidComponent {\n id: ComponentID!\n errorName: String!\n errorMessage: String!\n }\n\n type ComponentHost {\n id: ID!\n name: String!\n\n # load a component.\n get(id: String!, withState: Boolean): Component\n\n # list components\n list(offset: Int, limit: Int): [Component]!\n\n # list invalid components and their errors\n listInvalid: [InvalidComponent]!\n\n # get component logs(snaps) by component id\n snaps(id: String!): [LogEntry]! @deprecated(reason: \"Use the logs field on Component\")\n }\n\n type Query {\n getHost(id: String): ComponentHost\n }\n `,\n resolvers: {\n JSONObject: GraphQLJSONObject,\n Component: {\n id: (component: Component): ComponentIdObj => component.id.toObject(),\n displayName: (component: Component) => component.displayName,\n fs: (component: Component) => {\n return component.state.filesystem.files.map((file) => file.relative);\n },\n log: async (component: Component) => {\n const snap = await component.loadSnap(component.id.version);\n return {\n ...snap,\n date: snap.timestamp.getTime(),\n email: snap.author.email,\n username: snap.author.name,\n displayName: snap.author.displayName,\n id: snap.hash,\n };\n },\n getFile: (component: Component, { path }: { path: string }) => {\n const maybeFile = component.state.filesystem.files.find(\n (file) => pathNormalizeToLinux(file.relative) === path\n );\n if (!maybeFile) return undefined;\n return maybeFile.contents.toString('utf-8');\n },\n mainFile: (component: Component) => {\n return component.state._consumer.mainFile;\n },\n headTag: (component: Component) => component.headTag?.toObject(),\n latest: (component: Component) => component.latest,\n tags: (component) => {\n // graphql doesn't support map types\n return component.tags.toArray().map((tag) => tag.toObject());\n },\n aspects: (component: Component, { include }: { include?: string[] }) => {\n return component.state.aspects.filter(include).serialize();\n },\n // Here only to not break old queries\n elementsUrl: () => undefined,\n logs: async (\n component: Component,\n filter?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n takeHeadFromComponent: boolean;\n }\n ) => {\n let head = filter?.head;\n if (!head && filter?.takeHeadFromComponent) {\n head = component.id.version;\n }\n const finalFilter = { ...filter, head };\n return (await component.getLogs(finalFilter)).map((log) => ({ ...log, id: log.hash }));\n },\n },\n ComponentHost: {\n get: async (host: ComponentFactory, { id }: { id: string }) => {\n try {\n const componentId = await host.resolveComponentId(id);\n const component = await host.get(componentId);\n return component;\n } catch {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }): Promise<ComponentLog[]> => {\n const componentId = await host.resolveComponentId(id);\n // return (await host.getLogs(componentId)).map(log => ({...log, id: log.hash}))\n return host.getLogs(componentId);\n },\n list: async (host: ComponentFactory, filter?: { offset: number; limit: number }) => {\n return host.list(filter);\n },\n listInvalid: async (host: ComponentFactory) => {\n const invalidComps = await host.listInvalid();\n return invalidComps.map(({ id, err }) => ({\n id: id as ComponentID,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory, _args, _context, info) => {\n const extensionId = info.variableValues.extensionId;\n return extensionId ? `${host.name}/${extensionId}` : host.name;\n },\n name: async (host: ComponentFactory) => {\n return host.name;\n },\n },\n Query: {\n getHost: (componentExt: ComponentMain, { id }: { id: string }) => {\n return componentExtension.getHost(id);\n },\n },\n },\n };\n}\n"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCAAiB;MAC7BC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAoB,IAAqBA,SAAS,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC;QACrEC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAACI,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;QACtE,CAAC;QACDC,GAAG,EAAE,MAAOV,SAAoB,IAAK;UACnC,MAAMW,IAAI,GAAG,MAAMX,SAAS,CAACY,QAAQ,CAACZ,SAAS,CAACD,EAAE,CAACc,OAAO,CAAC;UAC3D,OAAA1C,aAAA,CAAAA,aAAA,KACKwC,IAAI;YACPG,IAAI,EAAEH,IAAI,CAACI,SAAS,CAACC,OAAO,CAAC,CAAC;YAC9BC,KAAK,EAAEN,IAAI,CAACO,MAAM,CAACD,KAAK;YACxBE,QAAQ,EAAER,IAAI,CAACO,MAAM,CAACE,IAAI;YAC1BlB,WAAW,EAAES,IAAI,CAACO,MAAM,CAAChB,WAAW;YACpCH,EAAE,EAAEY,IAAI,CAACU;UAAI;QAEjB,CAAC;QACDC,OAAO,EAAEA,CAACtB,SAAoB,EAAE;UAAEuB;QAAuB,CAAC,KAAK;UAC7D,MAAMC,SAAS,GAAGxB,SAA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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_express","_graphql","_harmony","_lodash","_logger","_component","_component2","_component3","_aspectList","_exceptions","_show","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentMain","constructor","hostSlot","express","showFragmentSlot","registerHost","host","register","createAspectListFromLegacy","legacyExtensionDataList","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","flattenRoutes","flatten","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getHostIfExist","err","undefined","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","orderBy","isHost","name","registerShowFragments","showFragments","provider","graphql","cli","loggerMain","config","logger","createLogger","ComponentAspect","componentExtension","ShowCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","componentSchema","exports","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","LoggerAspect","addRuntime"],"sources":["component.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain, Route } from '@teambit/express';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport { ComponentRoute, RegisteredComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport { AspectEntry } from './aspect-entry';\nimport {\n ShowCmd,\n ShowFragment,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n /**\n * important! avoid using this method.\n * seems like this method was written to work around a very specific case when the ComponentID of the aspects are\n * not available. in case of new components, to get the ComponentID, the workspace-aspect is needed to get the\n * default-scope. when this method is called from the scope, there is no way to get the real component-id.\n * instead, this method asks for the \"scope\", which when called by the scope-aspect is the current scope-name.\n * it may or may not be the real scope-name of the aspect.\n * to fix this possibly incorrect scope-name, the `workspace.resolveScopeAspectListIds()` checks whether the\n * scope-name is the same as scope.name, and if so, resolve it to the correct scope-name.\n */\n createAspectListFromLegacy(legacyExtensionDataList: ExtensionDataList) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: RegisteredComponentRoute[]) {\n const routeEntries = routes.map((route: RegisteredComponentRoute) => {\n return new ComponentRoute(route, this);\n });\n\n const flattenRoutes = flatten(routeEntries) as any as Route[];\n\n this.express.register(flattenRoutes);\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getHostIfExist(id?: string): ComponentFactory | undefined {\n try {\n return this.getHost(id);\n } catch (err) {\n if (err instanceof HostNotFound) return undefined;\n throw err;\n }\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect, LoggerAspect];\n\n static async provider(\n [graphql, express, cli, loggerMain]: [GraphqlMain, ExpressMain, CLIMain, LoggerMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const logger = loggerMain.createLogger(ComponentAspect.id);\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n cli.register(new ShowCmd(componentExtension, logger));\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_express","_graphql","_harmony","_lodash","_logger","_component","_component2","_component3","_aspectList","_exceptions","_show","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentMain","constructor","hostSlot","express","showFragmentSlot","registerHost","host","register","createAspectListFromLegacy","legacyExtensionDataList","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","flattenRoutes","flatten","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getHostIfExist","err","undefined","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","orderBy","isHost","name","registerShowFragments","showFragments","provider","graphql","cli","loggerMain","config","logger","createLogger","ComponentAspect","componentExtension","ShowCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","componentSchema","exports","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","LoggerAspect","addRuntime"],"sources":["component.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain, Route } from '@teambit/express';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport { ComponentRoute, RegisteredComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport { AspectEntry } from './aspect-entry';\nimport {\n ShowCmd,\n ShowFragment,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n /**\n * important! avoid using this method.\n * seems like this method was written to work around a very specific case when the ComponentID of the aspects are\n * not available. in case of new components, to get the ComponentID, the workspace-aspect is needed to get the\n * default-scope. when this method is called from the scope, there is no way to get the real component-id.\n * instead, this method asks for the \"scope\", which when called by the scope-aspect is the current scope-name.\n * it may or may not be the real scope-name of the aspect.\n * to fix this possibly incorrect scope-name, the `workspace.resolveScopeAspectListIds()` checks whether the\n * scope-name is the same as scope.name, and if so, resolve it to the correct scope-name.\n */\n createAspectListFromLegacy(legacyExtensionDataList: ExtensionDataList) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: RegisteredComponentRoute[]) {\n const routeEntries = routes.map((route: RegisteredComponentRoute) => {\n return new ComponentRoute(route, this);\n });\n\n const flattenRoutes = flatten(routeEntries) as any as Route[];\n\n this.express.register(flattenRoutes);\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getHostIfExist(id?: string): ComponentFactory | undefined {\n try {\n return this.getHost(id);\n } catch (err) {\n if (err instanceof HostNotFound) return undefined;\n throw err;\n }\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect, LoggerAspect];\n\n static async provider(\n [graphql, express, cli, loggerMain]: [GraphqlMain, ExpressMain, CLIMain, LoggerMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const logger = loggerMain.createLogger(ComponentAspect.id);\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n cli.register(new ShowCmd(componentExtension, logger));\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.546/dist/component.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.546/dist/component.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.547/dist/component.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.547/dist/component.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -23,4 +23,4 @@ export type ComponentProps = {
23
23
  /**
24
24
  * main UI component of the Component extension.
25
25
  */
26
- export declare function Component({ routeSlot, overriddenRoutes, containerSlot, host, onComponentChange, componentIdStr, useComponent, path, useComponentFilters, }: ComponentProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function Component({ routeSlot, overriddenRoutes, containerSlot, host: hostFromProps, onComponentChange, componentIdStr, useComponent, path, useComponentFilters, }: ComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -11,6 +11,13 @@ function _react() {
11
11
  };
12
12
  return data;
13
13
  }
14
+ function _uiFoundationUiReactRouter() {
15
+ const data = require("@teambit/ui-foundation.ui.react-router.use-query");
16
+ _uiFoundationUiReactRouter = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
14
21
  function _lodash() {
15
22
  const data = _interopRequireDefault(require("lodash.flatten"));
16
23
  _lodash = function () {
@@ -18,9 +25,9 @@ function _lodash() {
18
25
  };
19
26
  return data;
20
27
  }
21
- function _uiFoundationUiReactRouter() {
28
+ function _uiFoundationUiReactRouter2() {
22
29
  const data = require("@teambit/ui-foundation.ui.react-router.slot-router");
23
- _uiFoundationUiReactRouter = function () {
30
+ _uiFoundationUiReactRouter2 = function () {
24
31
  return data;
25
32
  };
26
33
  return data;
@@ -87,7 +94,7 @@ function Component({
87
94
  routeSlot,
88
95
  overriddenRoutes,
89
96
  containerSlot,
90
- host,
97
+ host: hostFromProps,
91
98
  onComponentChange,
92
99
  componentIdStr,
93
100
  useComponent,
@@ -100,6 +107,9 @@ function Component({
100
107
  const componentId = _componentIdStr ? _().ComponentID.fromString(_componentIdStr) : undefined;
101
108
  const resolvedComponentIdStr = path || idFromLocation;
102
109
  const componentFiltersFromProps = useComponentFilters?.() || {};
110
+ const query = (0, _uiFoundationUiReactRouter().useQuery)();
111
+ const componentVersion = query.get('version');
112
+ const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;
103
113
  const useComponentOptions = {
104
114
  logFilters: _objectSpread(_objectSpread({}, componentFiltersFromProps), componentFiltersFromProps.loading ? {} : {
105
115
  log: _objectSpread({}, componentFiltersFromProps.log)
@@ -127,7 +137,7 @@ function Component({
127
137
  component: component
128
138
  }, before, /*#__PURE__*/_react().default.createElement("div", {
129
139
  className: _componentModule().default.container
130
- }, routeSlot && /*#__PURE__*/_react().default.createElement(_uiFoundationUiReactRouter().SlotRouter, {
140
+ }, routeSlot && /*#__PURE__*/_react().default.createElement(_uiFoundationUiReactRouter2().SlotRouter, {
131
141
  parentPath: `${resolvedComponentIdStr}/*`,
132
142
  slot: routeSlot,
133
143
  routes: overriddenRoutes
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_lodash","_interopRequireDefault","_uiFoundationUiReactRouter","_lodash2","_context","_useComponent","_useComponentFromLocation","_","_componentModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","getComponentIdStr","componentIdStr","isFunction","Component","routeSlot","overriddenRoutes","containerSlot","host","onComponentChange","useComponent","path","useComponentFilters","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","componentFiltersFromProps","useComponentOptions","logFilters","loading","log","customUseComponent","component","componentDescriptor","error","useComponentQuery","toString","useEffect","pageItems","useMemo","flatten","values","before","x","type","map","content","after","renderError","createElement","ComponentDescriptorProvider","ComponentProvider","className","styles","container","SlotRouter","parentPath","slot","routes"],"sources":["component.tsx"],"sourcesContent":["import React, { useEffect, ReactNode, useMemo } from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport flatten from 'lodash.flatten';\nimport { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { isFunction } from 'lodash';\nimport { ComponentProvider, ComponentDescriptorProvider } from './context';\nimport { useComponent as useComponentQuery, UseComponentType, Filters } from './use-component';\nimport { ComponentModel } from './component-model';\nimport { useIdFromLocation } from './use-component-from-location';\nimport { ComponentID } from '..';\n\nimport styles from './component.module.scss';\n\nexport type ComponentPageSlot = SlotRegistry<ComponentPageElement[]>;\nexport type ComponentPageElement = {\n type: 'before' | 'after';\n content: ReactNode;\n};\n\nexport type ComponentProps = {\n containerSlot?: ComponentPageSlot;\n routeSlot: RouteSlot;\n overriddenRoutes?: RouteProps[];\n host: string;\n onComponentChange?: (activeComponent?: ComponentModel) => void;\n useComponent?: UseComponentType;\n useComponentFilters?: () => Filters;\n path?: string;\n componentIdStr?: string | (() => string | undefined);\n};\n\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n\n/**\n * main UI component of the Component extension.\n */\nexport function Component({\n routeSlot,\n overriddenRoutes,\n containerSlot,\n host,\n onComponentChange,\n componentIdStr,\n useComponent,\n path,\n useComponentFilters,\n}: ComponentProps) {\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const componentFiltersFromProps = useComponentFilters?.() || {};\n\n const useComponentOptions = {\n logFilters: {\n ...componentFiltersFromProps,\n ...(componentFiltersFromProps.loading\n ? {}\n : {\n log: {\n // @todo - enable this when we have lazy loading of logs\n // limit: 3,\n ...componentFiltersFromProps.log,\n },\n }),\n },\n customUseComponent: useComponent,\n };\n\n const { component, componentDescriptor, error } = useComponentQuery(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n useComponentOptions\n );\n\n // trigger onComponentChange when component changes\n useEffect(() => onComponentChange?.(component), [component]);\n // cleanup when unmounting component\n useEffect(() => () => onComponentChange?.(undefined), []);\n\n const pageItems = useMemo(() => flatten(containerSlot?.values()), [containerSlot]);\n const before = useMemo(() => pageItems.filter((x) => x.type === 'before').map((x) => x.content), [pageItems]);\n const after = useMemo(() => pageItems.filter((x) => x.type === 'after').map((x) => x.content), [pageItems]);\n\n if (error) return error?.renderError();\n if (!component) return <div></div>;\n\n return (\n <ComponentDescriptorProvider componentDescriptor={componentDescriptor}>\n <ComponentProvider component={component}>\n {before}\n <div className={styles.container}>\n {routeSlot && (\n <SlotRouter parentPath={`${resolvedComponentIdStr}/*`} slot={routeSlot} routes={overriddenRoutes} />\n )}\n </div>\n {after}\n </ComponentProvider>\n </ComponentDescriptorProvider>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_uiFoundationUiReactRouter","_lodash","_interopRequireDefault","_uiFoundationUiReactRouter2","_lodash2","_context","_useComponent","_useComponentFromLocation","_","_componentModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","getComponentIdStr","componentIdStr","isFunction","Component","routeSlot","overriddenRoutes","containerSlot","host","hostFromProps","onComponentChange","useComponent","path","useComponentFilters","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","componentFiltersFromProps","query","useQuery","componentVersion","useComponentOptions","logFilters","loading","log","customUseComponent","component","componentDescriptor","error","useComponentQuery","toString","useEffect","pageItems","useMemo","flatten","values","before","x","type","map","content","after","renderError","createElement","ComponentDescriptorProvider","ComponentProvider","className","styles","container","SlotRouter","parentPath","slot","routes"],"sources":["component.tsx"],"sourcesContent":["import React, { useEffect, ReactNode, useMemo } from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport flatten from 'lodash.flatten';\nimport { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { isFunction } from 'lodash';\nimport { ComponentProvider, ComponentDescriptorProvider } from './context';\nimport { useComponent as useComponentQuery, UseComponentType, Filters } from './use-component';\nimport { ComponentModel } from './component-model';\nimport { useIdFromLocation } from './use-component-from-location';\nimport { ComponentID } from '..';\n\nimport styles from './component.module.scss';\n\nexport type ComponentPageSlot = SlotRegistry<ComponentPageElement[]>;\nexport type ComponentPageElement = {\n type: 'before' | 'after';\n content: ReactNode;\n};\n\nexport type ComponentProps = {\n containerSlot?: ComponentPageSlot;\n routeSlot: RouteSlot;\n overriddenRoutes?: RouteProps[];\n host: string;\n onComponentChange?: (activeComponent?: ComponentModel) => void;\n useComponent?: UseComponentType;\n useComponentFilters?: () => Filters;\n path?: string;\n componentIdStr?: string | (() => string | undefined);\n};\n\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n\n/**\n * main UI component of the Component extension.\n */\nexport function Component({\n routeSlot,\n overriddenRoutes,\n containerSlot,\n host: hostFromProps,\n onComponentChange,\n componentIdStr,\n useComponent,\n path,\n useComponentFilters,\n}: ComponentProps) {\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const componentFiltersFromProps = useComponentFilters?.() || {};\n const query = useQuery();\n const componentVersion = query.get('version');\n const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;\n\n const useComponentOptions = {\n logFilters: {\n ...componentFiltersFromProps,\n ...(componentFiltersFromProps.loading\n ? {}\n : {\n log: {\n // @todo - enable this when we have lazy loading of logs\n // limit: 3,\n ...componentFiltersFromProps.log,\n },\n }),\n },\n customUseComponent: useComponent,\n };\n\n const { component, componentDescriptor, error } = useComponentQuery(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n useComponentOptions\n );\n\n // trigger onComponentChange when component changes\n useEffect(() => onComponentChange?.(component), [component]);\n // cleanup when unmounting component\n useEffect(() => () => onComponentChange?.(undefined), []);\n\n const pageItems = useMemo(() => flatten(containerSlot?.values()), [containerSlot]);\n const before = useMemo(() => pageItems.filter((x) => x.type === 'before').map((x) => x.content), [pageItems]);\n const after = useMemo(() => pageItems.filter((x) => x.type === 'after').map((x) => x.content), [pageItems]);\n\n if (error) return error?.renderError();\n if (!component) return <div></div>;\n\n return (\n <ComponentDescriptorProvider componentDescriptor={componentDescriptor}>\n <ComponentProvider component={component}>\n {before}\n <div className={styles.container}>\n {routeSlot && (\n <SlotRouter parentPath={`${resolvedComponentIdStr}/*`} slot={routeSlot} routes={overriddenRoutes} />\n )}\n </div>\n {after}\n </ComponentProvider>\n </ComponentDescriptorProvider>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -59,7 +59,7 @@ export type MenuProps = {
59
59
  /**
60
60
  * top bar menu.
61
61
  */
62
- export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host, menuItemSlot, consumeMethodSlot, rightSideMenuSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, authToken, pinnedWidgetSlot, }: MenuProps): import("react/jsx-runtime").JSX.Element;
62
+ export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host: hostFromProps, menuItemSlot, consumeMethodSlot, rightSideMenuSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, authToken, pinnedWidgetSlot, }: MenuProps): import("react/jsx-runtime").JSX.Element;
63
63
  export type VersionRelatedDropdownsProps = {
64
64
  componentId?: string;
65
65
  consumeMethods?: ConsumeMethodSlot;
@@ -28,6 +28,13 @@ function _classnames() {
28
28
  };
29
29
  return data;
30
30
  }
31
+ function _uiFoundationUiReactRouter() {
32
+ const data = require("@teambit/ui-foundation.ui.react-router.use-query");
33
+ _uiFoundationUiReactRouter = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
31
38
  function _lodash() {
32
39
  const data = require("lodash");
33
40
  _lodash = function () {
@@ -153,7 +160,7 @@ function ComponentMenu({
153
160
  navigationSlot,
154
161
  widgetSlot,
155
162
  className,
156
- host,
163
+ host: hostFromProps,
157
164
  menuItemSlot,
158
165
  consumeMethodSlot,
159
166
  rightSideMenuSlot,
@@ -178,11 +185,14 @@ function ComponentMenu({
178
185
  const rightSideItems = (0, _react().useMemo)(() => (0, _lodash().orderBy)((0, _lodash().flatten)(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);
179
186
  const pinnedWidgets = (0, _react().useMemo)(() => (0, _lodash().flatten)(pinnedWidgetSlot.toArray().sort(sortFn).map(([, pinnedWidget]) => pinnedWidget)), [pinnedWidgetSlot]);
180
187
  const componentFilters = useComponentFilters?.() || {};
188
+ const query = (0, _uiFoundationUiReactRouter().useQuery)();
189
+ const componentVersion = query.get('version');
190
+ const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;
181
191
  const useComponentVersions = defaultLoadVersions(host, componentId?.toString() || componentIdStrWithScopeFromLocation, componentFilters, useComponent);
182
192
  const RightSide = /*#__PURE__*/_react().default.createElement("div", {
183
193
  className: _menuModule().default.rightSide
184
194
  }, RightNode || /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, /*#__PURE__*/_react().default.createElement(VersionRelatedDropdowns, {
185
- host: host,
195
+ host: hostFromProps,
186
196
  consumeMethods: consumeMethodSlot,
187
197
  componentId: componentId?.toString() || idFromLocation,
188
198
  useComponent: useComponentVersions,
@@ -257,7 +267,7 @@ function defaultLoadVersions(host, componentId, componentFilters = {}, useCompon
257
267
  tags,
258
268
  buildStatus: component?.buildStatus
259
269
  };
260
- }, [componentId, loadingFromProps, componentFilters]);
270
+ }, [componentId, loadingFromProps, componentFilters, host]);
261
271
  }
262
272
  const defaultLoadCurrentVersion = props => {
263
273
  return _props => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_topBarNav","_menuModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","menuItemSlot","consumeMethodSlot","rightSideMenuSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","authToken","pinnedWidgetSlot","isMinimal","useWorkspaceMode","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","mainMenuItems","useMemo","groupBy","flatten","values","rightSideItems","orderBy","pinnedWidgets","toArray","sort","sortFn","map","pinnedWidget","componentFilters","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","leftSide","CollapsibleMenuNav","PinnedWidgetComponent","key","order","props","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","snap","version","hash","tags","tagLookup","Map","compact","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","_version","isTag","valid","find","exports","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","dropClass","useBoxContainer","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","menuClassName","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title","first","second","menuItemProps","TopBarNav","style","height","children"],"sources":["menu.tsx"],"sourcesContent":["import React, { useMemo, ReactNode } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { DropdownComponentVersion, GetActiveTabIndex, VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes as defaultUseLanes } from '@teambit/lanes.hooks.use-lanes';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { useComponent as useComponentQuery, UseComponentType, Filters } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport { OrderedNavigationSlot, ConsumeMethodSlot, ConsumePluginProps, NavPlugin, NavPluginProps } from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\nimport { TopBarNav } from '../top-bar-nav';\n\nimport styles from './menu.module.scss';\n\nexport type RightSideMenuItem = { item: ReactNode; order: number };\nexport type RightSideMenuSlot = SlotRegistry<RightSideMenuItem[]>;\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side navigation menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n /**\n * pinned widgets slots - right side of the widget slot\n */\n pinnedWidgetSlot: OrderedNavigationSlot;\n /**\n * right side menu item slot\n */\n rightSideMenuSlot: RightSideMenuSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n useComponentFilters?: () => Filters;\n\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n\n path?: string;\n\n authToken?: string;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host,\n menuItemSlot,\n consumeMethodSlot,\n rightSideMenuSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n authToken,\n pinnedWidgetSlot,\n}: MenuProps) {\n const { isMinimal } = useWorkspaceMode();\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);\n const pinnedWidgets = useMemo(\n () => flatten(pinnedWidgetSlot.toArray().sort(sortFn).map(([, pinnedWidget]) => pinnedWidget)), [pinnedWidgetSlot]);\n\n const componentFilters = useComponentFilters?.() || {};\n const useComponentVersions = defaultLoadVersions(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n componentFilters,\n useComponent\n );\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns\n host={host}\n consumeMethods={consumeMethodSlot}\n componentId={componentId?.toString() || idFromLocation}\n useComponent={useComponentVersions}\n componentFilters={componentFilters}\n authToken={authToken}\n // loading={loading}\n />\n {rightSideItems.map(({ item }) => item)}\n {!isMinimal && <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />}\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {isMinimal && pinnedWidgets.map(pinnedWidget => <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />)}\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport type VersionRelatedDropdownsProps = {\n componentId?: string;\n consumeMethods?: ConsumeMethodSlot;\n componentFilters?: Filters;\n useComponent?: UseComponentVersions;\n className?: string;\n loading?: boolean;\n host: string;\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n dropdownOptions?: {\n showVersionDetails?: boolean;\n getActiveTabIndex?: GetActiveTabIndex;\n };\n authToken?: string;\n};\nexport type UseComponentVersionsProps = {\n skip?: boolean;\n id?: string;\n initialLoad?: boolean;\n};\nexport type UseComponentVersionProps = {\n skip?: boolean;\n version?: string;\n};\nexport type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;\nexport type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;\nexport type UseComponentVersionsResult = {\n tags?: DropdownComponentVersion[];\n snaps?: DropdownComponentVersion[];\n id?: ComponentID;\n packageName?: string;\n latest?: string;\n currentVersion?: string;\n loading?: boolean;\n};\n\nexport function defaultLoadVersions(\n host: string,\n componentId?: string,\n componentFilters: Filters = {},\n useComponent?: UseComponentType,\n loadingFromProps?: boolean\n): UseComponentVersions {\n return React.useCallback(\n (_props) => {\n const { skip, initialLoad } = _props || {};\n const fetchOptions = {\n logFilters: {\n ...componentFilters,\n log: {\n ...componentFilters.log,\n limit: initialLoad ? 3 : undefined,\n },\n },\n skip: loadingFromProps || skip,\n customUseComponent: useComponent,\n };\n const {\n component,\n loading: loadingComponent,\n componentLogs = {},\n } = useComponentQuery(host, componentId, fetchOptions);\n const logs = componentLogs?.logs;\n const loading = React.useMemo(\n () => loadingComponent || loadingFromProps || componentLogs.loading,\n [loadingComponent, loadingFromProps, componentLogs.loading]\n );\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n (component?.tags?.toArray() || []).reverse().map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n return {\n loading,\n id: component?.id,\n packageName: component?.packageName,\n latestVersion: component?.latest,\n currentVersion: component?.version,\n snaps,\n tags,\n buildStatus: component?.buildStatus,\n };\n },\n [componentId, loadingFromProps, componentFilters]\n );\n}\n\nexport const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion = (props) => {\n return (_props) => {\n const { skip, version: _version } = _props || {};\n const { snaps, tags, currentVersion, loading } = props.useComponent?.({ skip, id: props.componentId }) ?? {};\n const version = _version ?? currentVersion;\n const isTag = React.useMemo(() => semver.valid(version), [loading, version]);\n if (isTag) {\n return React.useMemo(() => tags?.find((tag) => tag.tag === version), [loading, tags?.length, version]);\n }\n return React.useMemo(() => snaps?.find((snap) => snap.version === version), [loading, snaps?.length, version]);\n };\n};\n\nexport function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {\n const updatedPropsWithDefaults = {\n ...props,\n useLanes: props.useLanes ?? defaultUseLanes,\n dropdownOptions: {\n ...props.dropdownOptions,\n showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true,\n },\n };\n\n const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);\n\n const { useLanes, consumeMethods, className, dropdownOptions, host } = updatedPropsWithDefaults;\n const {\n loading,\n id,\n tags,\n snaps,\n latest,\n packageName,\n currentVersion: _currentVersion,\n } = props.useComponent?.({ initialLoad: true }) || {};\n const location = useLocation();\n const { lanesModel } = useLanes();\n const lanes = id ? lanesModel?.getLanesByComponentId(id as any)?.filter((lane) => !lane.id.isDefault()) || [] : [];\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const isNew = tags?.length === 0 && snaps?.length === 0;\n\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : (_currentVersion ?? '');\n\n const authToken = props.authToken;\n\n const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {\n return id\n ? {\n id,\n packageName: packageName ?? '',\n latest,\n options: { viewedLane, disableInstall: !packageName },\n authToken,\n }\n : undefined;\n }, [id, packageName, latest, viewedLane, authToken]);\n const methods = useConsumeMethods(consumeMethods, consumeMethodProps);\n const hasMethods = methods?.length > 0;\n\n return (\n <>\n {consumeMethods && id && hasMethods && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n dropClass={styles.useBoxContainer}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={id.name} />}\n />\n )}\n <VersionDropdown\n lanes={lanes}\n loading={loading}\n useComponentVersions={props.useComponent}\n hasMoreVersions={!isNew}\n useCurrentVersionLog={loadVersion}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={latest}\n currentLane={viewedLane}\n className={className}\n menuClassName={styles.componentVersionMenu}\n getActiveTabIndex={dropdownOptions?.getActiveTabIndex}\n showVersionDetails={dropdownOptions?.showVersionDetails}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n consumeMethods?: ConsumeMethodSlot,\n consumePluginProps?: ConsumePluginProps\n): ConsumeMethod[] {\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!consumePluginProps) return undefined;\n return method?.(consumePluginProps);\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, consumePluginProps]\n );\n}\n\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n return (first ?? 0) - (second ?? 0);\n}\n\nfunction PinnedWidgetComponent(menuItemProps: NavPluginProps) {\n return (\n <TopBarNav\n {...menuItemProps}\n style={{ ...menuItemProps.style, height: '100%' }}\n className={classnames(menuItemProps?.className)}\n >\n {menuItemProps?.children}\n </TopBarNav>\n );\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_uiFoundationUiReactRouter","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_topBarNav","_menuModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","hostFromProps","menuItemSlot","consumeMethodSlot","rightSideMenuSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","authToken","pinnedWidgetSlot","isMinimal","useWorkspaceMode","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","mainMenuItems","useMemo","groupBy","flatten","values","rightSideItems","orderBy","pinnedWidgets","toArray","sort","sortFn","map","pinnedWidget","componentFilters","query","useQuery","componentVersion","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","leftSide","CollapsibleMenuNav","PinnedWidgetComponent","key","order","props","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","snap","version","hash","tags","tagLookup","Map","compact","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","_version","isTag","valid","find","exports","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","dropClass","useBoxContainer","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","menuClassName","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title","first","second","menuItemProps","TopBarNav","style","height","children"],"sources":["menu.tsx"],"sourcesContent":["import React, { useMemo, ReactNode } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { DropdownComponentVersion, GetActiveTabIndex, VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes as defaultUseLanes } from '@teambit/lanes.hooks.use-lanes';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { useComponent as useComponentQuery, UseComponentType, Filters } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport { OrderedNavigationSlot, ConsumeMethodSlot, ConsumePluginProps, NavPlugin, NavPluginProps } from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\nimport { TopBarNav } from '../top-bar-nav';\n\nimport styles from './menu.module.scss';\n\nexport type RightSideMenuItem = { item: ReactNode; order: number };\nexport type RightSideMenuSlot = SlotRegistry<RightSideMenuItem[]>;\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side navigation menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n /**\n * pinned widgets slots - right side of the widget slot\n */\n pinnedWidgetSlot: OrderedNavigationSlot;\n /**\n * right side menu item slot\n */\n rightSideMenuSlot: RightSideMenuSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n useComponentFilters?: () => Filters;\n\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n\n path?: string;\n\n authToken?: string;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host: hostFromProps,\n menuItemSlot,\n consumeMethodSlot,\n rightSideMenuSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n authToken,\n pinnedWidgetSlot,\n}: MenuProps) {\n const { isMinimal } = useWorkspaceMode();\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);\n const pinnedWidgets = useMemo(\n () => flatten(pinnedWidgetSlot.toArray().sort(sortFn).map(([, pinnedWidget]) => pinnedWidget)), [pinnedWidgetSlot]);\n const componentFilters = useComponentFilters?.() || {};\n const query = useQuery();\n const componentVersion = query.get('version');\n const host = componentVersion ? 'teambit.scope/scope' : hostFromProps\n\n const useComponentVersions = defaultLoadVersions(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n componentFilters,\n useComponent\n );\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns\n host={hostFromProps}\n consumeMethods={consumeMethodSlot}\n componentId={componentId?.toString() || idFromLocation}\n useComponent={useComponentVersions}\n componentFilters={componentFilters}\n authToken={authToken}\n // loading={loading}\n />\n {rightSideItems.map(({ item }) => item)}\n {!isMinimal && <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />}\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {isMinimal && pinnedWidgets.map(pinnedWidget => <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />)}\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport type VersionRelatedDropdownsProps = {\n componentId?: string;\n consumeMethods?: ConsumeMethodSlot;\n componentFilters?: Filters;\n useComponent?: UseComponentVersions;\n className?: string;\n loading?: boolean;\n host: string;\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n dropdownOptions?: {\n showVersionDetails?: boolean;\n getActiveTabIndex?: GetActiveTabIndex;\n };\n authToken?: string;\n};\nexport type UseComponentVersionsProps = {\n skip?: boolean;\n id?: string;\n initialLoad?: boolean;\n};\nexport type UseComponentVersionProps = {\n skip?: boolean;\n version?: string;\n};\nexport type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;\nexport type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;\nexport type UseComponentVersionsResult = {\n tags?: DropdownComponentVersion[];\n snaps?: DropdownComponentVersion[];\n id?: ComponentID;\n packageName?: string;\n latest?: string;\n currentVersion?: string;\n loading?: boolean;\n};\n\nexport function defaultLoadVersions(\n host: string,\n componentId?: string,\n componentFilters: Filters = {},\n useComponent?: UseComponentType,\n loadingFromProps?: boolean\n): UseComponentVersions {\n return React.useCallback(\n (_props) => {\n const { skip, initialLoad } = _props || {};\n const fetchOptions = {\n logFilters: {\n ...componentFilters,\n log: {\n ...componentFilters.log,\n limit: initialLoad ? 3 : undefined,\n },\n },\n skip: loadingFromProps || skip,\n customUseComponent: useComponent,\n };\n const {\n component,\n loading: loadingComponent,\n componentLogs = {},\n } = useComponentQuery(host, componentId, fetchOptions);\n const logs = componentLogs?.logs;\n const loading = React.useMemo(\n () => loadingComponent || loadingFromProps || componentLogs.loading,\n [loadingComponent, loadingFromProps, componentLogs.loading]\n );\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n (component?.tags?.toArray() || []).reverse().map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n return {\n loading,\n id: component?.id,\n packageName: component?.packageName,\n latestVersion: component?.latest,\n currentVersion: component?.version,\n snaps,\n tags,\n buildStatus: component?.buildStatus,\n };\n },\n [componentId, loadingFromProps, componentFilters, host]\n );\n}\n\nexport const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion = (props) => {\n return (_props) => {\n const { skip, version: _version } = _props || {};\n const { snaps, tags, currentVersion, loading } = props.useComponent?.({ skip, id: props.componentId }) ?? {};\n const version = _version ?? currentVersion;\n const isTag = React.useMemo(() => semver.valid(version), [loading, version]);\n if (isTag) {\n return React.useMemo(() => tags?.find((tag) => tag.tag === version), [loading, tags?.length, version]);\n }\n return React.useMemo(() => snaps?.find((snap) => snap.version === version), [loading, snaps?.length, version]);\n };\n};\n\nexport function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {\n const updatedPropsWithDefaults = {\n ...props,\n useLanes: props.useLanes ?? defaultUseLanes,\n dropdownOptions: {\n ...props.dropdownOptions,\n showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true,\n },\n };\n\n const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);\n\n const { useLanes, consumeMethods, className, dropdownOptions, host } = updatedPropsWithDefaults;\n const {\n loading,\n id,\n tags,\n snaps,\n latest,\n packageName,\n currentVersion: _currentVersion,\n } = props.useComponent?.({ initialLoad: true }) || {};\n const location = useLocation();\n const { lanesModel } = useLanes();\n const lanes = id ? lanesModel?.getLanesByComponentId(id as any)?.filter((lane) => !lane.id.isDefault()) || [] : [];\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const isNew = tags?.length === 0 && snaps?.length === 0;\n\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : (_currentVersion ?? '');\n\n const authToken = props.authToken;\n\n const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {\n return id\n ? {\n id,\n packageName: packageName ?? '',\n latest,\n options: { viewedLane, disableInstall: !packageName },\n authToken,\n }\n : undefined;\n }, [id, packageName, latest, viewedLane, authToken]);\n const methods = useConsumeMethods(consumeMethods, consumeMethodProps);\n const hasMethods = methods?.length > 0;\n\n return (\n <>\n {consumeMethods && id && hasMethods && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n dropClass={styles.useBoxContainer}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={id.name} />}\n />\n )}\n <VersionDropdown\n lanes={lanes}\n loading={loading}\n useComponentVersions={props.useComponent}\n hasMoreVersions={!isNew}\n useCurrentVersionLog={loadVersion}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={latest}\n currentLane={viewedLane}\n className={className}\n menuClassName={styles.componentVersionMenu}\n getActiveTabIndex={dropdownOptions?.getActiveTabIndex}\n showVersionDetails={dropdownOptions?.showVersionDetails}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n consumeMethods?: ConsumeMethodSlot,\n consumePluginProps?: ConsumePluginProps\n): ConsumeMethod[] {\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!consumePluginProps) return undefined;\n return method?.(consumePluginProps);\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, consumePluginProps]\n );\n}\n\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n return (first ?? 0) - (second ?? 0);\n}\n\nfunction PinnedWidgetComponent(menuItemProps: NavPluginProps) {\n return (\n <TopBarNav\n {...menuItemProps}\n style={{ ...menuItemProps.style, height: '100%' }}\n className={classnames(menuItemProps?.className)}\n >\n {menuItemProps?.children}\n </TopBarNav>\n );\n}"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","require","_uiFoundationUiHooks","_componentId","_componentDescriptor","_componentModel","_useComponent","_useComponentLogs","_componentError","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","useComponentQuery","componentId","host","filters","skip","idRef","useRef","current","variables","id","extensionId","error","loading","subscribeToMore","useDataQuery","GET_COMPONENT","errorPolicy","loadingLogs","componentLogs","logs","useComponentLogs","rawComponent","getHost","get","useEffect","unsubAddition","document","SUB_SUBSCRIPTION_ADDED","updateQuery","prev","subscriptionData","prevComponent","addedComponent","componentAdded","component","name","unsubChanges","SUB_COMPONENT_CHANGED","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","SUB_COMPONENT_REMOVED","removedIds","componentRemoved","componentIds","isRemoved","some","removedId","idDepKey","scope","version","undefined","useMemo","fromObject","componentError","ComponentError","message","ComponentModel","from","toString","componentDescriptor","aspectList","entries","aspects","map","aspectObject","aspectId","aspectData","ComponentDescriptor"],"sources":["use-component-query.ts"],"sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\nimport { ComponentModel } from './component-model';\nimport { ComponentQueryResult, Filters } from './use-component.model';\nimport {\n GET_COMPONENT,\n SUB_COMPONENT_CHANGED,\n SUB_COMPONENT_REMOVED,\n SUB_SUBSCRIPTION_ADDED,\n} from './use-component.fragments';\nimport { useComponentLogs } from './use-component-logs';\nimport { ComponentError } from './component-error';\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(\n componentId: string,\n host: string,\n filters?: Filters,\n skip?: boolean\n): ComponentQueryResult {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const variables = {\n id: componentId,\n extensionId: host,\n };\n\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables,\n skip,\n errorPolicy: 'all',\n });\n\n const { loading: loadingLogs, componentLogs: { logs } = {} } = useComponentLogs(componentId, host, filters, skip);\n\n const rawComponent = data?.getHost?.get;\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const idDepKey = rawComponent?.id\n ? `${rawComponent?.id?.scope}/${rawComponent?.id?.name}@${rawComponent?.id?.version}}`\n : undefined;\n\n const id: ComponentID | undefined = useMemo(\n () => (rawComponent ? ComponentID.fromObject(rawComponent.id) : undefined),\n [idDepKey]\n );\n\n const componentError =\n error && !data\n ? new ComponentError(500, error.message)\n : (!rawComponent && !loading && new ComponentError(404)) || undefined;\n\n const component = useMemo(\n () => (rawComponent ? ComponentModel.from({ ...rawComponent, host, logs }) : undefined),\n [id?.toString(), logs]\n );\n\n const componentDescriptor = useMemo(() => {\n const aspectList = {\n entries: rawComponent?.aspects.map((aspectObject) => {\n return {\n ...aspectObject,\n aspectId: aspectObject.id,\n aspectData: aspectObject.data,\n };\n }),\n };\n\n return id ? ComponentDescriptor.fromObject({ id: id.toString(), aspectList }) : undefined;\n }, [id?.toString()]);\n\n return useMemo(() => {\n return {\n componentDescriptor,\n component,\n componentLogs: {\n loading: loadingLogs,\n logs,\n },\n error: componentError || undefined,\n loading,\n };\n }, [host, component, componentDescriptor, componentError]);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","require","_uiFoundationUiHooks","_componentId","_componentDescriptor","_componentModel","_useComponent","_useComponentLogs","_componentError","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","useComponentQuery","componentId","host","filters","skip","idRef","useRef","current","variables","id","extensionId","error","loading","subscribeToMore","useDataQuery","GET_COMPONENT","errorPolicy","loadingLogs","componentLogs","logs","useComponentLogs","rawComponent","getHost","get","useEffect","unsubAddition","document","SUB_SUBSCRIPTION_ADDED","updateQuery","prev","subscriptionData","prevComponent","addedComponent","componentAdded","component","name","unsubChanges","SUB_COMPONENT_CHANGED","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","SUB_COMPONENT_REMOVED","removedIds","componentRemoved","componentIds","isRemoved","some","removedId","idDepKey","scope","version","undefined","useMemo","fromObject","componentError","ComponentError","message","ComponentModel","from","toString","componentDescriptor","aspectList","entries","aspects","map","aspectObject","aspectId","aspectData","ComponentDescriptor"],"sources":["use-component-query.ts"],"sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\nimport { ComponentModel } from './component-model';\nimport { ComponentQueryResult, Filters } from './use-component.model';\nimport {\n GET_COMPONENT,\n SUB_COMPONENT_CHANGED,\n SUB_COMPONENT_REMOVED,\n SUB_SUBSCRIPTION_ADDED,\n} from './use-component.fragments';\nimport { useComponentLogs } from './use-component-logs';\nimport { ComponentError } from './component-error';\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(\n componentId: string,\n host: string,\n filters?: Filters,\n skip?: boolean,\n): ComponentQueryResult {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const variables = {\n id: componentId,\n extensionId: host,\n };\n\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables,\n skip,\n errorPolicy: 'all',\n });\n\n const { loading: loadingLogs, componentLogs: { logs } = {} } = useComponentLogs(componentId, host, filters, skip);\n\n const rawComponent = data?.getHost?.get;\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const idDepKey = rawComponent?.id\n ? `${rawComponent?.id?.scope}/${rawComponent?.id?.name}@${rawComponent?.id?.version}}`\n : undefined;\n\n const id: ComponentID | undefined = useMemo(\n () => (rawComponent ? ComponentID.fromObject(rawComponent.id) : undefined),\n [idDepKey]\n );\n\n const componentError =\n error && !data\n ? new ComponentError(500, error.message)\n : (!rawComponent && !loading && new ComponentError(404)) || undefined;\n\n const component = useMemo(\n () => (rawComponent ? ComponentModel.from({ ...rawComponent, host, logs }) : undefined),\n [id?.toString(), logs]\n );\n\n const componentDescriptor = useMemo(() => {\n const aspectList = {\n entries: rawComponent?.aspects.map((aspectObject) => {\n return {\n ...aspectObject,\n aspectId: aspectObject.id,\n aspectData: aspectObject.data,\n };\n }),\n };\n\n return id ? ComponentDescriptor.fromObject({ id: id.toString(), aspectList }) : undefined;\n }, [id?.toString()]);\n\n return useMemo(() => {\n return {\n componentDescriptor,\n component,\n componentLogs: {\n loading: loadingLogs,\n logs,\n },\n error: componentError || undefined,\n loading,\n };\n }, [host, component, componentDescriptor, componentError]);\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "1.0.546",
3
+ "version": "1.0.547",
4
4
  "homepage": "https://bit.cloud/teambit/component/component",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component",
9
- "version": "1.0.546"
9
+ "version": "1.0.547"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -48,28 +48,28 @@
48
48
  "@teambit/lanes.ui.models.lanes-model": "0.0.223",
49
49
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.143",
50
50
  "@teambit/legacy.extension-data": "0.0.36",
51
- "@teambit/aspect-loader": "1.0.546",
52
- "@teambit/dependency-resolver": "1.0.546",
53
- "@teambit/graph": "1.0.546",
51
+ "@teambit/aspect-loader": "1.0.547",
52
+ "@teambit/dependency-resolver": "1.0.547",
53
+ "@teambit/graph": "1.0.547",
54
54
  "@teambit/legacy.consumer-component": "0.0.35",
55
- "@teambit/objects": "0.0.53",
55
+ "@teambit/objects": "0.0.54",
56
56
  "@teambit/component.sources": "0.0.86",
57
57
  "@teambit/toolbox.path.match-patterns": "0.0.19",
58
58
  "@teambit/toolbox.string.eol": "0.0.5",
59
59
  "@teambit/toolbox.string.capitalize": "0.0.500",
60
- "@teambit/graphql": "1.0.546",
60
+ "@teambit/graphql": "1.0.547",
61
61
  "@teambit/toolbox.path.path": "0.0.8",
62
- "@teambit/cli": "0.0.1123",
63
- "@teambit/express": "0.0.1222",
64
- "@teambit/logger": "0.0.1216",
62
+ "@teambit/cli": "0.0.1124",
63
+ "@teambit/express": "0.0.1223",
64
+ "@teambit/logger": "0.0.1217",
65
65
  "@teambit/legacy.constants": "0.0.11",
66
- "@teambit/command-bar": "1.0.546",
66
+ "@teambit/command-bar": "1.0.547",
67
67
  "@teambit/component-package-version": "0.0.437",
68
- "@teambit/preview": "1.0.546",
69
- "@teambit/pubsub": "1.0.546",
70
- "@teambit/react-router": "1.0.546",
68
+ "@teambit/preview": "1.0.547",
69
+ "@teambit/pubsub": "1.0.547",
70
+ "@teambit/react-router": "1.0.547",
71
71
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.515",
72
- "@teambit/ui": "1.0.546",
72
+ "@teambit/ui": "1.0.547",
73
73
  "@teambit/legacy.utils": "0.0.17",
74
74
  "@teambit/component-issues": "0.0.155",
75
75
  "@teambit/pkg.modules.semver-helper": "0.0.6",
@@ -85,12 +85,12 @@
85
85
  "@teambit/scope.remotes": "0.0.34",
86
86
  "@teambit/legacy.component-diff": "0.0.88",
87
87
  "@teambit/harmony.ui.aspect-box": "0.0.508",
88
- "@teambit/compositions": "1.0.546",
89
- "@teambit/deprecation": "1.0.546",
90
- "@teambit/envs": "1.0.546",
88
+ "@teambit/compositions": "1.0.547",
89
+ "@teambit/deprecation": "1.0.547",
90
+ "@teambit/envs": "1.0.547",
91
91
  "@teambit/envs.ui.env-icon": "0.0.506",
92
92
  "@teambit/workspace.ui.use-workspace-mode": "0.0.2",
93
- "@teambit/component.ui.version-dropdown": "0.0.881",
93
+ "@teambit/component.ui.version-dropdown": "0.0.882",
94
94
  "@teambit/lanes.hooks.use-lanes": "0.0.282"
95
95
  },
96
96
  "devDependencies": {
package/ui/component.tsx CHANGED
@@ -1,5 +1,6 @@
1
1
  import React, { useEffect, ReactNode, useMemo } from 'react';
2
2
  import { RouteProps } from 'react-router-dom';
3
+ import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';
3
4
  import flatten from 'lodash.flatten';
4
5
  import { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';
5
6
  import type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
@@ -43,7 +44,7 @@ export function Component({
43
44
  routeSlot,
44
45
  overriddenRoutes,
45
46
  containerSlot,
46
- host,
47
+ host: hostFromProps,
47
48
  onComponentChange,
48
49
  componentIdStr,
49
50
  useComponent,
@@ -56,6 +57,9 @@ export function Component({
56
57
  const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;
57
58
  const resolvedComponentIdStr = path || idFromLocation;
58
59
  const componentFiltersFromProps = useComponentFilters?.() || {};
60
+ const query = useQuery();
61
+ const componentVersion = query.get('version');
62
+ const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;
59
63
 
60
64
  const useComponentOptions = {
61
65
  logFilters: {
@@ -63,12 +67,12 @@ export function Component({
63
67
  ...(componentFiltersFromProps.loading
64
68
  ? {}
65
69
  : {
66
- log: {
67
- // @todo - enable this when we have lazy loading of logs
68
- // limit: 3,
69
- ...componentFiltersFromProps.log,
70
- },
71
- }),
70
+ log: {
71
+ // @todo - enable this when we have lazy loading of logs
72
+ // limit: 3,
73
+ ...componentFiltersFromProps.log,
74
+ },
75
+ }),
72
76
  },
73
77
  customUseComponent: useComponent,
74
78
  };
package/ui/menu/menu.tsx CHANGED
@@ -1,6 +1,7 @@
1
1
  import React, { useMemo, ReactNode } from 'react';
2
2
  import { Routes, Route } from 'react-router-dom';
3
3
  import classnames from 'classnames';
4
+ import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';
4
5
  import { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';
5
6
  import * as semver from 'semver';
6
7
  import { SlotRegistry } from '@teambit/harmony';
@@ -89,7 +90,7 @@ export function ComponentMenu({
89
90
  navigationSlot,
90
91
  widgetSlot,
91
92
  className,
92
- host,
93
+ host: hostFromProps,
93
94
  menuItemSlot,
94
95
  consumeMethodSlot,
95
96
  rightSideMenuSlot,
@@ -112,8 +113,11 @@ export function ComponentMenu({
112
113
  const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);
113
114
  const pinnedWidgets = useMemo(
114
115
  () => flatten(pinnedWidgetSlot.toArray().sort(sortFn).map(([, pinnedWidget]) => pinnedWidget)), [pinnedWidgetSlot]);
115
-
116
116
  const componentFilters = useComponentFilters?.() || {};
117
+ const query = useQuery();
118
+ const componentVersion = query.get('version');
119
+ const host = componentVersion ? 'teambit.scope/scope' : hostFromProps
120
+
117
121
  const useComponentVersions = defaultLoadVersions(
118
122
  host,
119
123
  componentId?.toString() || componentIdStrWithScopeFromLocation,
@@ -126,7 +130,7 @@ export function ComponentMenu({
126
130
  {RightNode || (
127
131
  <>
128
132
  <VersionRelatedDropdowns
129
- host={host}
133
+ host={hostFromProps}
130
134
  consumeMethods={consumeMethodSlot}
131
135
  componentId={componentId?.toString() || idFromLocation}
132
136
  useComponent={useComponentVersions}
@@ -257,7 +261,7 @@ export function defaultLoadVersions(
257
261
  buildStatus: component?.buildStatus,
258
262
  };
259
263
  },
260
- [componentId, loadingFromProps, componentFilters]
264
+ [componentId, loadingFromProps, componentFilters, host]
261
265
  );
262
266
  }
263
267
 
@@ -18,7 +18,7 @@ export function useComponentQuery(
18
18
  componentId: string,
19
19
  host: string,
20
20
  filters?: Filters,
21
- skip?: boolean
21
+ skip?: boolean,
22
22
  ): ComponentQueryResult {
23
23
  const idRef = useRef(componentId);
24
24
  idRef.current = componentId;