@teambit/lanes 0.0.592 → 0.0.594
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-lane.js +9 -1
- package/dist/create-lane.js.map +1 -1
- package/dist/lanes.graphql.js +20 -0
- package/dist/lanes.graphql.js.map +1 -1
- package/dist/lanes.ui.module.scss +7 -0
- package/dist/lanes.ui.runtime.js +27 -3
- package/dist/lanes.ui.runtime.js.map +1 -1
- package/dist/{preview-1679304089670.js → preview-1679607263760.js} +2 -2
- package/lanes.ui.module.scss +7 -0
- package/lanes.ui.runtime.tsx +24 -3
- package/package-tar/teambit-lanes-0.0.594.tgz +0 -0
- package/package.json +31 -30
- package/package-tar/teambit-lanes-0.0.592.tgz +0 -0
package/dist/create-lane.js
CHANGED
@@ -30,6 +30,13 @@ function _componentVersion() {
|
|
30
30
|
};
|
31
31
|
return data;
|
32
32
|
}
|
33
|
+
function _snapping() {
|
34
|
+
const data = require("@teambit/snapping");
|
35
|
+
_snapping = function () {
|
36
|
+
return data;
|
37
|
+
};
|
38
|
+
return data;
|
39
|
+
}
|
33
40
|
function _componentsList() {
|
34
41
|
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component/components-list"));
|
35
42
|
_componentsList = function () {
|
@@ -52,6 +59,7 @@ async function createLane(consumer, laneName, scopeName, remoteLane) {
|
|
52
59
|
if (lanes.find(lane => lane.name === laneName)) {
|
53
60
|
throw new (_bitError().BitError)(`lane "${laneName}" already exists, to switch to this lane, please use "bit switch" command`);
|
54
61
|
}
|
62
|
+
const bitCloudUser = await (0, _snapping().getBitCloudUser)();
|
55
63
|
throwForInvalidLaneName(laneName);
|
56
64
|
await throwForStagedComponents(consumer);
|
57
65
|
const getDataToPopulateLaneObjectIfNeeded = async () => {
|
@@ -87,7 +95,7 @@ async function createLane(consumer, laneName, scopeName, remoteLane) {
|
|
87
95
|
log: remoteLane.log,
|
88
96
|
scope: remoteLane.scope,
|
89
97
|
forkedFrom
|
90
|
-
}) : _lane().default.create(laneName, scopeName, forkedFrom);
|
98
|
+
}) : _lane().default.create(laneName, scopeName, forkedFrom, bitCloudUser);
|
91
99
|
const dataToPopulate = await getDataToPopulateLaneObjectIfNeeded();
|
92
100
|
newLane.setLaneComponents(dataToPopulate);
|
93
101
|
await consumer.scope.lanes.saveLane(newLane);
|
package/dist/create-lane.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["MAX_LANE_NAME_LENGTH","createLane","consumer","laneName","scopeName","remoteLane","lanes","scope","listLanes","find","lane","name","BitError","throwForInvalidLaneName","throwForStagedComponents","getDataToPopulateLaneObjectIfNeeded","components","currentLaneObject","getCurrentLaneObject","laneComponents","workspaceIds","bitMap","getAllBitIds","laneComponentWithBitmapHead","map","id","head","bitmapHead","searchWithoutVersion","isHash","version","Ref","from","forkedFrom","getLaneOrigin","newLane","Lane","hash","toString","log","create","dataToPopulate","setLaneComponents","saveLane","createLaneInScope","legacyScope","currentLaneId","laneId","undefined","isLaneExported","currentLane","isValidLaneName","componentList","ComponentsList","stagedComponents","listExportPendingComponentsIds","length","join","val","test"],"sources":["create-lane.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ScopeMain } from '@teambit/scope';\n// import { BitIds } from '@teambit/legacy/dist/bit-id';\nimport Lane, { LaneComponent } from '@teambit/legacy/dist/scope/models/lane';\nimport { isHash } from '@teambit/component-version';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\n\nconst MAX_LANE_NAME_LENGTH = 800;\n\nexport async function createLane(\n consumer: Consumer,\n laneName: string,\n scopeName: string,\n remoteLane?: Lane\n): Promise<Lane> {\n const lanes = await consumer.scope.listLanes();\n if (lanes.find((lane) => lane.name === laneName)) {\n throw new BitError(`lane \"${laneName}\" already exists, to switch to this lane, please use \"bit switch\" command`);\n }\n throwForInvalidLaneName(laneName);\n await throwForStagedComponents(consumer);\n const getDataToPopulateLaneObjectIfNeeded = async (): Promise<LaneComponent[]> => {\n if (remoteLane) return remoteLane.components;\n // when branching from one lane to another, copy components from the origin lane\n // when branching from main, no need to copy anything\n const currentLaneObject = await consumer.getCurrentLaneObject();\n if (!currentLaneObject) return [];\n const laneComponents = currentLaneObject.components;\n const workspaceIds = consumer.bitMap.getAllBitIds();\n const laneComponentWithBitmapHead = laneComponents.map(({ id, head }) => {\n const bitmapHead = workspaceIds.searchWithoutVersion(id);\n if (bitmapHead && isHash(bitmapHead.version)) {\n return { id, head: Ref.from(bitmapHead.version as string) };\n }\n return { id, head };\n });\n return laneComponentWithBitmapHead;\n };\n\n const forkedFrom = await getLaneOrigin(consumer);\n const newLane = remoteLane\n ? Lane.from({\n name: laneName,\n hash: remoteLane.hash().toString(),\n log: remoteLane.log,\n scope: remoteLane.scope,\n forkedFrom,\n })\n : Lane.create(laneName, scopeName, forkedFrom);\n const dataToPopulate = await getDataToPopulateLaneObjectIfNeeded();\n newLane.setLaneComponents(dataToPopulate);\n\n await consumer.scope.lanes.saveLane(newLane);\n\n return newLane;\n}\n\nexport async function createLaneInScope(laneName: string, scope: ScopeMain): Promise<Lane> {\n const lanes = await scope.legacyScope.listLanes();\n if (lanes.find((lane) => lane.name === laneName)) {\n throw new BitError(`lane \"${laneName}\" already exists`);\n }\n throwForInvalidLaneName(laneName);\n const newLane = Lane.create(laneName, scope.name);\n await scope.legacyScope.lanes.saveLane(newLane);\n return newLane;\n}\n\nasync function getLaneOrigin(consumer: Consumer): Promise<LaneId | undefined> {\n const currentLaneId = consumer.bitMap.laneId;\n if (!currentLaneId) return undefined;\n if (consumer.bitMap.isLaneExported) {\n return currentLaneId;\n }\n // current lane is new.\n const currentLane = await consumer.getCurrentLaneObject();\n return currentLane?.forkedFrom;\n}\n\nexport function throwForInvalidLaneName(laneName: string) {\n if (!isValidLaneName(laneName)) {\n throw new BitError(\n `lane \"${laneName}\" has invalid characters. lane name can only contain alphanumeric, lowercase characters, and the following [\"-\", \"_\", \"$\", \"!\"]`\n );\n }\n}\n\nexport async function throwForStagedComponents(consumer: Consumer) {\n const componentList = new ComponentsList(consumer);\n const stagedComponents = await componentList.listExportPendingComponentsIds();\n if (stagedComponents.length) {\n throw new BitError(\n `unable to switch/create a new lane, please export or reset the following components first: ${stagedComponents.join(\n ', '\n )}`\n );\n }\n}\n\nfunction isValidLaneName(val: unknown): boolean {\n if (typeof val !== 'string') return false;\n if (val.length > MAX_LANE_NAME_LENGTH) return false;\n // @todo: should we allow slash? if so, we should probably replace the lane-delimiter with something else. (maybe \":\")\n return /^[$\\-_!a-z0-9]+$/.test(val);\n}\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;
|
1
|
+
{"version":3,"names":["MAX_LANE_NAME_LENGTH","createLane","consumer","laneName","scopeName","remoteLane","lanes","scope","listLanes","find","lane","name","BitError","bitCloudUser","getBitCloudUser","throwForInvalidLaneName","throwForStagedComponents","getDataToPopulateLaneObjectIfNeeded","components","currentLaneObject","getCurrentLaneObject","laneComponents","workspaceIds","bitMap","getAllBitIds","laneComponentWithBitmapHead","map","id","head","bitmapHead","searchWithoutVersion","isHash","version","Ref","from","forkedFrom","getLaneOrigin","newLane","Lane","hash","toString","log","create","dataToPopulate","setLaneComponents","saveLane","createLaneInScope","legacyScope","currentLaneId","laneId","undefined","isLaneExported","currentLane","isValidLaneName","componentList","ComponentsList","stagedComponents","listExportPendingComponentsIds","length","join","val","test"],"sources":["create-lane.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ScopeMain } from '@teambit/scope';\n// import { BitIds } from '@teambit/legacy/dist/bit-id';\nimport Lane, { LaneComponent } from '@teambit/legacy/dist/scope/models/lane';\nimport { isHash } from '@teambit/component-version';\nimport { getBitCloudUser } from '@teambit/snapping';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\n\nconst MAX_LANE_NAME_LENGTH = 800;\n\nexport async function createLane(\n consumer: Consumer,\n laneName: string,\n scopeName: string,\n remoteLane?: Lane\n): Promise<Lane> {\n const lanes = await consumer.scope.listLanes();\n if (lanes.find((lane) => lane.name === laneName)) {\n throw new BitError(`lane \"${laneName}\" already exists, to switch to this lane, please use \"bit switch\" command`);\n }\n const bitCloudUser = await getBitCloudUser();\n throwForInvalidLaneName(laneName);\n await throwForStagedComponents(consumer);\n const getDataToPopulateLaneObjectIfNeeded = async (): Promise<LaneComponent[]> => {\n if (remoteLane) return remoteLane.components;\n // when branching from one lane to another, copy components from the origin lane\n // when branching from main, no need to copy anything\n const currentLaneObject = await consumer.getCurrentLaneObject();\n if (!currentLaneObject) return [];\n const laneComponents = currentLaneObject.components;\n const workspaceIds = consumer.bitMap.getAllBitIds();\n const laneComponentWithBitmapHead = laneComponents.map(({ id, head }) => {\n const bitmapHead = workspaceIds.searchWithoutVersion(id);\n if (bitmapHead && isHash(bitmapHead.version)) {\n return { id, head: Ref.from(bitmapHead.version as string) };\n }\n return { id, head };\n });\n return laneComponentWithBitmapHead;\n };\n\n const forkedFrom = await getLaneOrigin(consumer);\n const newLane = remoteLane\n ? Lane.from({\n name: laneName,\n hash: remoteLane.hash().toString(),\n log: remoteLane.log,\n scope: remoteLane.scope,\n forkedFrom,\n })\n : Lane.create(laneName, scopeName, forkedFrom, bitCloudUser);\n const dataToPopulate = await getDataToPopulateLaneObjectIfNeeded();\n newLane.setLaneComponents(dataToPopulate);\n\n await consumer.scope.lanes.saveLane(newLane);\n\n return newLane;\n}\n\nexport async function createLaneInScope(laneName: string, scope: ScopeMain): Promise<Lane> {\n const lanes = await scope.legacyScope.listLanes();\n if (lanes.find((lane) => lane.name === laneName)) {\n throw new BitError(`lane \"${laneName}\" already exists`);\n }\n throwForInvalidLaneName(laneName);\n const newLane = Lane.create(laneName, scope.name);\n await scope.legacyScope.lanes.saveLane(newLane);\n return newLane;\n}\n\nasync function getLaneOrigin(consumer: Consumer): Promise<LaneId | undefined> {\n const currentLaneId = consumer.bitMap.laneId;\n if (!currentLaneId) return undefined;\n if (consumer.bitMap.isLaneExported) {\n return currentLaneId;\n }\n // current lane is new.\n const currentLane = await consumer.getCurrentLaneObject();\n return currentLane?.forkedFrom;\n}\n\nexport function throwForInvalidLaneName(laneName: string) {\n if (!isValidLaneName(laneName)) {\n throw new BitError(\n `lane \"${laneName}\" has invalid characters. lane name can only contain alphanumeric, lowercase characters, and the following [\"-\", \"_\", \"$\", \"!\"]`\n );\n }\n}\n\nexport async function throwForStagedComponents(consumer: Consumer) {\n const componentList = new ComponentsList(consumer);\n const stagedComponents = await componentList.listExportPendingComponentsIds();\n if (stagedComponents.length) {\n throw new BitError(\n `unable to switch/create a new lane, please export or reset the following components first: ${stagedComponents.join(\n ', '\n )}`\n );\n }\n}\n\nfunction isValidLaneName(val: unknown): boolean {\n if (typeof val !== 'string') return false;\n if (val.length > MAX_LANE_NAME_LENGTH) return false;\n // @todo: should we allow slash? if so, we should probably replace the lane-delimiter with something else. (maybe \":\")\n return /^[$\\-_!a-z0-9]+$/.test(val);\n}\n"],"mappings":"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"}
|
package/dist/lanes.graphql.js
CHANGED
@@ -112,12 +112,20 @@ function lanesSchema(lanesMainRuntime) {
|
|
112
112
|
componentsStatus: [LaneComponentDiffStatus!]!
|
113
113
|
}
|
114
114
|
|
115
|
+
type LaneOwner {
|
116
|
+
name: String
|
117
|
+
email: String
|
118
|
+
profileImage: String
|
119
|
+
}
|
120
|
+
|
115
121
|
type Lane {
|
116
122
|
id: LaneId!
|
117
123
|
hash: String
|
118
124
|
laneComponentIds: [ComponentID!]!
|
119
125
|
components(offset: Int, limit: Int): [Component!]!
|
120
126
|
readmeComponent: Component
|
127
|
+
createdBy: LaneOwner
|
128
|
+
createdAt: String
|
121
129
|
}
|
122
130
|
|
123
131
|
# Lane API
|
@@ -207,6 +215,18 @@ function lanesSchema(lanesMainRuntime) {
|
|
207
215
|
readmeComponent: async lane => {
|
208
216
|
const laneReadmeComponent = await lanesMainRuntime.getLaneReadmeComponent(lane);
|
209
217
|
return laneReadmeComponent;
|
218
|
+
},
|
219
|
+
createdAt: async lane => {
|
220
|
+
var _lane$log;
|
221
|
+
return (_lane$log = lane.log) === null || _lane$log === void 0 ? void 0 : _lane$log.date;
|
222
|
+
},
|
223
|
+
createdBy: async lane => {
|
224
|
+
var _lane$log2, _lane$log3, _lane$log4;
|
225
|
+
return {
|
226
|
+
name: (_lane$log2 = lane.log) === null || _lane$log2 === void 0 ? void 0 : _lane$log2.username,
|
227
|
+
email: (_lane$log3 = lane.log) === null || _lane$log3 === void 0 ? void 0 : _lane$log3.email,
|
228
|
+
profileImage: (_lane$log4 = lane.log) === null || _lane$log4 === void 0 ? void 0 : _lane$log4.profileImage
|
229
|
+
};
|
210
230
|
}
|
211
231
|
},
|
212
232
|
Query: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["lanesSchema","lanesMainRuntime","typeDefs","gql","resolvers","Lanes","id","list","lanesMain","ids","limit","offset","lanes","length","getLanes","showDefaultLane","flatten","Promise","all","map","name","LaneId","parse","slice","current","currentLaneName","getCurrentLaneName","undefined","currentLane","diff","from","to","options","getDiffResults","getDiff","compsWithDiff","item","toString","diffStatus","source","target","sourceLaneId","targetLaneId","LaneDiffStatus","LaneComponentDiffStatus","diffCompStatus","componentId","toStringWithoutVersion","sourceHead","targetHead","toObject","Lane","lane","laneComponentIds","componentIds","getLaneComponentIds","components","laneComponents","getLaneComponentModels","readmeComponent","laneReadmeComponent","getLaneReadmeComponent","Query"],"sources":["lanes.graphql.ts"],"sourcesContent":["import { Schema } from '@teambit/graphql';\nimport { LaneId } from '@teambit/lane-id';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport gql from 'graphql-tag';\nimport { flatten, slice } from 'lodash';\nimport { LaneComponentDiffStatus, LaneDiffStatus, LaneDiffStatusOptions, LanesMain } from './lanes.main.runtime';\n\nexport function lanesSchema(lanesMainRuntime: LanesMain): Schema {\n return {\n typeDefs: gql`\n type FileDiff {\n filePath: String!\n diffOutput: String\n }\n\n type SnapDistance {\n onSource: [String!]!\n onTarget: [String!]!\n common: String\n }\n\n type FieldsDiff {\n fieldName: String!\n diffOutput: String\n }\n\n type DiffResults {\n id: String\n hasDiff: Boolean\n filesDiff: [FileDiff]\n fieldsDiff: [FieldsDiff]\n }\n\n type GetDiffResult {\n newComps: [String]\n compsWithNoChanges: [String]\n toLaneName: String\n compsWithDiff: [DiffResults]\n }\n\n input DiffOptions {\n color: Boolean\n }\n\n input DiffStatusOptions {\n skipChanges: Boolean\n skipUpToDate: Boolean\n }\n\n type LaneId {\n name: String!\n scope: String!\n }\n\n type LaneComponentDiffStatus {\n \"\"\"\n for apollo caching - component id\n \"\"\"\n id: String!\n sourceHead: String!\n targetHead: String\n componentId: ComponentID!\n changeType: String @deprecated(reason: \"Use changes\")\n \"\"\"\n list of all change types - Source Code, Dependency, Aspects, etc\n \"\"\"\n changes: [String!]\n upToDate: Boolean\n snapsDistance: SnapDistance\n unrelated: Boolean\n }\n\n type LaneDiffStatus {\n \"\"\"\n for apollo caching - source + target\n \"\"\"\n id: String!\n source: LaneId!\n target: LaneId!\n componentsStatus: [LaneComponentDiffStatus!]!\n }\n\n type Lane {\n id: LaneId!\n hash: String\n laneComponentIds: [ComponentID!]!\n components(offset: Int, limit: Int): [Component!]!\n readmeComponent: Component\n }\n\n # Lane API\n type Lanes {\n id: String!\n list(ids: [String!], offset: Int, limit: Int): [Lane!]!\n diff(from: String!, to: String!, options: DiffOptions): GetDiffResult\n diffStatus(source: String!, target: String, options: DiffStatusOptions): LaneDiffStatus!\n current: Lane\n }\n\n type Query {\n lanes: Lanes\n }\n `,\n resolvers: {\n Lanes: {\n // need this for Apollo InMemory Caching\n id: () => 'lanes',\n list: async (\n lanesMain: LanesMain,\n { ids, limit, offset }: { ids?: string[]; offset?: number; limit?: number }\n ) => {\n let lanes: LaneData[] = [];\n\n if (!ids || ids.length === 0) {\n lanes = await lanesMain.getLanes({ showDefaultLane: true });\n } else {\n lanes = flatten(await Promise.all(ids.map((id) => lanesMain.getLanes({ name: LaneId.parse(id).name }))));\n }\n\n if (limit || offset) {\n lanes = slice(lanes, offset, limit && limit + (offset || 0));\n }\n\n return lanes;\n },\n current: async (lanesMain: LanesMain) => {\n const currentLaneName = lanesMain.getCurrentLaneName();\n if (!currentLaneName) return undefined;\n const [currentLane] = await lanesMain.getLanes({ name: currentLaneName });\n return currentLane;\n },\n diff: async (\n lanesMain: LanesMain,\n { from, to, options }: { to: string; from: string; options: { color?: boolean } }\n ) => {\n const getDiffResults = await lanesMain.getDiff([from, to], options);\n return {\n ...getDiffResults,\n compsWithDiff: getDiffResults.compsWithDiff.map((item) => ({ ...item, id: item.id.toString() })),\n };\n },\n diffStatus: async (\n lanesMain: LanesMain,\n { source, target, options }: { source: string; target?: string; options?: LaneDiffStatusOptions }\n ) => {\n const sourceLaneId = LaneId.parse(source);\n const targetLaneId = target ? LaneId.parse(target) : undefined;\n return lanesMain.diffStatus(sourceLaneId, targetLaneId, options);\n },\n },\n LaneDiffStatus: {\n id: (diffStatus: LaneDiffStatus) => `${diffStatus.source.toString()}-${diffStatus.target.toString()}`,\n },\n LaneComponentDiffStatus: {\n id: (diffCompStatus: LaneComponentDiffStatus) =>\n `${diffCompStatus.componentId.toStringWithoutVersion()}-${diffCompStatus.sourceHead}-${\n diffCompStatus.targetHead\n }`,\n componentId: (diffCompStatus: LaneComponentDiffStatus) => diffCompStatus.componentId.toObject(),\n },\n Lane: {\n id: (lane: LaneData) => lane.id.toObject(),\n laneComponentIds: async (lane: LaneData) => {\n const componentIds = await lanesMainRuntime.getLaneComponentIds(lane);\n return componentIds.map((componentId) => componentId.toObject());\n },\n components: async (lane: LaneData) => {\n const laneComponents = await lanesMainRuntime.getLaneComponentModels(lane);\n return laneComponents;\n },\n readmeComponent: async (lane: LaneData) => {\n const laneReadmeComponent = await lanesMainRuntime.getLaneReadmeComponent(lane);\n return laneReadmeComponent;\n },\n },\n Query: {\n lanes: () => lanesMainRuntime,\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAwC;AAAA;AAGjC,SAASA,WAAW,CAACC,gBAA2B,EAAU;EAC/D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,KAAK,EAAE;QACL;QACAC,EAAE,EAAE,MAAM,OAAO;QACjBC,IAAI,EAAE,OACJC,SAAoB,EACpB;UAAEC,GAAG;UAAEC,KAAK;UAAEC;QAA4D,CAAC,KACxE;UACH,IAAIC,KAAiB,GAAG,EAAE;UAE1B,IAAI,CAACH,GAAG,IAAIA,GAAG,CAACI,MAAM,KAAK,CAAC,EAAE;YAC5BD,KAAK,GAAG,MAAMJ,SAAS,CAACM,QAAQ,CAAC;cAAEC,eAAe,EAAE;YAAK,CAAC,CAAC;UAC7D,CAAC,MAAM;YACLH,KAAK,GAAG,IAAAI,iBAAO,EAAC,MAAMC,OAAO,CAACC,GAAG,CAACT,GAAG,CAACU,GAAG,CAAEb,EAAE,IAAKE,SAAS,CAACM,QAAQ,CAAC;cAAEM,IAAI,EAAEC,gBAAM,CAACC,KAAK,CAAChB,EAAE,CAAC,CAACc;YAAK,CAAC,CAAC,CAAC,CAAC,CAAC;UAC1G;UAEA,IAAIV,KAAK,IAAIC,MAAM,EAAE;YACnBC,KAAK,GAAG,IAAAW,eAAK,EAACX,KAAK,EAAED,MAAM,EAAED,KAAK,IAAIA,KAAK,IAAIC,MAAM,IAAI,CAAC,CAAC,CAAC;UAC9D;UAEA,OAAOC,KAAK;QACd,CAAC;QACDY,OAAO,EAAE,MAAOhB,SAAoB,IAAK;UACvC,MAAMiB,eAAe,GAAGjB,SAAS,CAACkB,kBAAkB,EAAE;UACtD,IAAI,CAACD,eAAe,EAAE,OAAOE,SAAS;UACtC,MAAM,CAACC,WAAW,CAAC,GAAG,MAAMpB,SAAS,CAACM,QAAQ,CAAC;YAAEM,IAAI,EAAEK;UAAgB,CAAC,CAAC;UACzE,OAAOG,WAAW;QACpB,CAAC;QACDC,IAAI,EAAE,OACJrB,SAAoB,EACpB;UAAEsB,IAAI;UAAEC,EAAE;UAAEC;QAAoE,CAAC,KAC9E;UACH,MAAMC,cAAc,GAAG,MAAMzB,SAAS,CAAC0B,OAAO,CAAC,CAACJ,IAAI,EAAEC,EAAE,CAAC,EAAEC,OAAO,CAAC;UACnE,uCACKC,cAAc;YACjBE,aAAa,EAAEF,cAAc,CAACE,aAAa,CAAChB,GAAG,CAAEiB,IAAI,oCAAWA,IAAI;cAAE9B,EAAE,EAAE8B,IAAI,CAAC9B,EAAE,CAAC+B,QAAQ;YAAE,EAAG;UAAC;QAEpG,CAAC;QACDC,UAAU,EAAE,OACV9B,SAAoB,EACpB;UAAE+B,MAAM;UAAEC,MAAM;UAAER;QAA8E,CAAC,KAC9F;UACH,MAAMS,YAAY,GAAGpB,gBAAM,CAACC,KAAK,CAACiB,MAAM,CAAC;UACzC,MAAMG,YAAY,GAAGF,MAAM,GAAGnB,gBAAM,CAACC,KAAK,CAACkB,MAAM,CAAC,GAAGb,SAAS;UAC9D,OAAOnB,SAAS,CAAC8B,UAAU,CAACG,YAAY,EAAEC,YAAY,EAAEV,OAAO,CAAC;QAClE;MACF,CAAC;MACDW,cAAc,EAAE;QACdrC,EAAE,EAAGgC,UAA0B,IAAM,GAAEA,UAAU,CAACC,MAAM,CAACF,QAAQ,EAAG,IAAGC,UAAU,CAACE,MAAM,CAACH,QAAQ,EAAG;MACtG,CAAC;MACDO,uBAAuB,EAAE;QACvBtC,EAAE,EAAGuC,cAAuC,IACzC,GAAEA,cAAc,CAACC,WAAW,CAACC,sBAAsB,EAAG,IAAGF,cAAc,CAACG,UAAW,IAClFH,cAAc,CAACI,UAChB,EAAC;QACJH,WAAW,EAAGD,cAAuC,IAAKA,cAAc,CAACC,WAAW,CAACI,QAAQ;MAC/F,CAAC;MACDC,IAAI,EAAE;QACJ7C,EAAE,EAAG8C,IAAc,IAAKA,IAAI,CAAC9C,EAAE,CAAC4C,QAAQ,EAAE;QAC1CG,gBAAgB,EAAE,MAAOD,IAAc,IAAK;UAC1C,MAAME,YAAY,GAAG,MAAMrD,gBAAgB,CAACsD,mBAAmB,CAACH,IAAI,CAAC;UACrE,OAAOE,YAAY,CAACnC,GAAG,CAAE2B,WAAW,IAAKA,WAAW,CAACI,QAAQ,EAAE,CAAC;QAClE,CAAC;QACDM,UAAU,EAAE,MAAOJ,IAAc,IAAK;UACpC,MAAMK,cAAc,GAAG,MAAMxD,gBAAgB,CAACyD,sBAAsB,CAACN,IAAI,CAAC;UAC1E,OAAOK,cAAc;QACvB,CAAC;QACDE,eAAe,EAAE,MAAOP,IAAc,IAAK;UACzC,MAAMQ,mBAAmB,GAAG,MAAM3D,gBAAgB,CAAC4D,sBAAsB,CAACT,IAAI,CAAC;UAC/E,OAAOQ,mBAAmB;QAC5B;MACF,CAAC;MACDE,KAAK,EAAE;QACLlD,KAAK,EAAE,MAAMX;MACf;IACF;EACF,CAAC;AACH"}
|
1
|
+
{"version":3,"names":["lanesSchema","lanesMainRuntime","typeDefs","gql","resolvers","Lanes","id","list","lanesMain","ids","limit","offset","lanes","length","getLanes","showDefaultLane","flatten","Promise","all","map","name","LaneId","parse","slice","current","currentLaneName","getCurrentLaneName","undefined","currentLane","diff","from","to","options","getDiffResults","getDiff","compsWithDiff","item","toString","diffStatus","source","target","sourceLaneId","targetLaneId","LaneDiffStatus","LaneComponentDiffStatus","diffCompStatus","componentId","toStringWithoutVersion","sourceHead","targetHead","toObject","Lane","lane","laneComponentIds","componentIds","getLaneComponentIds","components","laneComponents","getLaneComponentModels","readmeComponent","laneReadmeComponent","getLaneReadmeComponent","createdAt","log","date","createdBy","username","email","profileImage","Query"],"sources":["lanes.graphql.ts"],"sourcesContent":["import { Schema } from '@teambit/graphql';\nimport { LaneId } from '@teambit/lane-id';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport gql from 'graphql-tag';\nimport { flatten, slice } from 'lodash';\nimport { LaneComponentDiffStatus, LaneDiffStatus, LaneDiffStatusOptions, LanesMain } from './lanes.main.runtime';\n\nexport function lanesSchema(lanesMainRuntime: LanesMain): Schema {\n return {\n typeDefs: gql`\n type FileDiff {\n filePath: String!\n diffOutput: String\n }\n\n type SnapDistance {\n onSource: [String!]!\n onTarget: [String!]!\n common: String\n }\n\n type FieldsDiff {\n fieldName: String!\n diffOutput: String\n }\n\n type DiffResults {\n id: String\n hasDiff: Boolean\n filesDiff: [FileDiff]\n fieldsDiff: [FieldsDiff]\n }\n\n type GetDiffResult {\n newComps: [String]\n compsWithNoChanges: [String]\n toLaneName: String\n compsWithDiff: [DiffResults]\n }\n\n input DiffOptions {\n color: Boolean\n }\n\n input DiffStatusOptions {\n skipChanges: Boolean\n skipUpToDate: Boolean\n }\n\n type LaneId {\n name: String!\n scope: String!\n }\n\n type LaneComponentDiffStatus {\n \"\"\"\n for apollo caching - component id\n \"\"\"\n id: String!\n sourceHead: String!\n targetHead: String\n componentId: ComponentID!\n changeType: String @deprecated(reason: \"Use changes\")\n \"\"\"\n list of all change types - Source Code, Dependency, Aspects, etc\n \"\"\"\n changes: [String!]\n upToDate: Boolean\n snapsDistance: SnapDistance\n unrelated: Boolean\n }\n\n type LaneDiffStatus {\n \"\"\"\n for apollo caching - source + target\n \"\"\"\n id: String!\n source: LaneId!\n target: LaneId!\n componentsStatus: [LaneComponentDiffStatus!]!\n }\n\n type LaneOwner {\n name: String\n email: String\n profileImage: String\n }\n\n type Lane {\n id: LaneId!\n hash: String\n laneComponentIds: [ComponentID!]!\n components(offset: Int, limit: Int): [Component!]!\n readmeComponent: Component\n createdBy: LaneOwner\n createdAt: String\n }\n\n # Lane API\n type Lanes {\n id: String!\n list(ids: [String!], offset: Int, limit: Int): [Lane!]!\n diff(from: String!, to: String!, options: DiffOptions): GetDiffResult\n diffStatus(source: String!, target: String, options: DiffStatusOptions): LaneDiffStatus!\n current: Lane\n }\n\n type Query {\n lanes: Lanes\n }\n `,\n resolvers: {\n Lanes: {\n // need this for Apollo InMemory Caching\n id: () => 'lanes',\n list: async (\n lanesMain: LanesMain,\n { ids, limit, offset }: { ids?: string[]; offset?: number; limit?: number }\n ) => {\n let lanes: LaneData[] = [];\n\n if (!ids || ids.length === 0) {\n lanes = await lanesMain.getLanes({ showDefaultLane: true });\n } else {\n lanes = flatten(await Promise.all(ids.map((id) => lanesMain.getLanes({ name: LaneId.parse(id).name }))));\n }\n\n if (limit || offset) {\n lanes = slice(lanes, offset, limit && limit + (offset || 0));\n }\n\n return lanes;\n },\n current: async (lanesMain: LanesMain) => {\n const currentLaneName = lanesMain.getCurrentLaneName();\n if (!currentLaneName) return undefined;\n const [currentLane] = await lanesMain.getLanes({ name: currentLaneName });\n return currentLane;\n },\n diff: async (\n lanesMain: LanesMain,\n { from, to, options }: { to: string; from: string; options: { color?: boolean } }\n ) => {\n const getDiffResults = await lanesMain.getDiff([from, to], options);\n return {\n ...getDiffResults,\n compsWithDiff: getDiffResults.compsWithDiff.map((item) => ({ ...item, id: item.id.toString() })),\n };\n },\n diffStatus: async (\n lanesMain: LanesMain,\n { source, target, options }: { source: string; target?: string; options?: LaneDiffStatusOptions }\n ) => {\n const sourceLaneId = LaneId.parse(source);\n const targetLaneId = target ? LaneId.parse(target) : undefined;\n return lanesMain.diffStatus(sourceLaneId, targetLaneId, options);\n },\n },\n LaneDiffStatus: {\n id: (diffStatus: LaneDiffStatus) => `${diffStatus.source.toString()}-${diffStatus.target.toString()}`,\n },\n LaneComponentDiffStatus: {\n id: (diffCompStatus: LaneComponentDiffStatus) =>\n `${diffCompStatus.componentId.toStringWithoutVersion()}-${diffCompStatus.sourceHead}-${\n diffCompStatus.targetHead\n }`,\n componentId: (diffCompStatus: LaneComponentDiffStatus) => diffCompStatus.componentId.toObject(),\n },\n Lane: {\n id: (lane: LaneData) => lane.id.toObject(),\n laneComponentIds: async (lane: LaneData) => {\n const componentIds = await lanesMainRuntime.getLaneComponentIds(lane);\n return componentIds.map((componentId) => componentId.toObject());\n },\n components: async (lane: LaneData) => {\n const laneComponents = await lanesMainRuntime.getLaneComponentModels(lane);\n return laneComponents;\n },\n readmeComponent: async (lane: LaneData) => {\n const laneReadmeComponent = await lanesMainRuntime.getLaneReadmeComponent(lane);\n return laneReadmeComponent;\n },\n createdAt: async (lane: LaneData) => {\n return lane.log?.date;\n },\n createdBy: async (lane: LaneData) => {\n return { name: lane.log?.username, email: lane.log?.email, profileImage: lane.log?.profileImage };\n },\n },\n Query: {\n lanes: () => lanesMainRuntime,\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAwC;AAAA;AAGjC,SAASA,WAAW,CAACC,gBAA2B,EAAU;EAC/D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,KAAK,EAAE;QACL;QACAC,EAAE,EAAE,MAAM,OAAO;QACjBC,IAAI,EAAE,OACJC,SAAoB,EACpB;UAAEC,GAAG;UAAEC,KAAK;UAAEC;QAA4D,CAAC,KACxE;UACH,IAAIC,KAAiB,GAAG,EAAE;UAE1B,IAAI,CAACH,GAAG,IAAIA,GAAG,CAACI,MAAM,KAAK,CAAC,EAAE;YAC5BD,KAAK,GAAG,MAAMJ,SAAS,CAACM,QAAQ,CAAC;cAAEC,eAAe,EAAE;YAAK,CAAC,CAAC;UAC7D,CAAC,MAAM;YACLH,KAAK,GAAG,IAAAI,iBAAO,EAAC,MAAMC,OAAO,CAACC,GAAG,CAACT,GAAG,CAACU,GAAG,CAAEb,EAAE,IAAKE,SAAS,CAACM,QAAQ,CAAC;cAAEM,IAAI,EAAEC,gBAAM,CAACC,KAAK,CAAChB,EA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"}
|
package/dist/lanes.ui.runtime.js
CHANGED
@@ -22,7 +22,7 @@ function _defineProperty2() {
|
|
22
22
|
return data;
|
23
23
|
}
|
24
24
|
function _react() {
|
25
|
-
const data =
|
25
|
+
const data = _interopRequireWildcard(require("react"));
|
26
26
|
_react = function () {
|
27
27
|
return data;
|
28
28
|
};
|
@@ -71,7 +71,7 @@ function _designUiPages() {
|
|
71
71
|
return data;
|
72
72
|
}
|
73
73
|
function _scope() {
|
74
|
-
const data =
|
74
|
+
const data = _interopRequireWildcard(require("@teambit/scope"));
|
75
75
|
_scope = function () {
|
76
76
|
return data;
|
77
77
|
};
|
@@ -154,6 +154,20 @@ function _lanesUiCompare2() {
|
|
154
154
|
};
|
155
155
|
return data;
|
156
156
|
}
|
157
|
+
function _scopeUi() {
|
158
|
+
const data = require("@teambit/scope.ui.scope-icon");
|
159
|
+
_scopeUi = function () {
|
160
|
+
return data;
|
161
|
+
};
|
162
|
+
return data;
|
163
|
+
}
|
164
|
+
function _lanesUiModule() {
|
165
|
+
const data = _interopRequireDefault(require("./lanes.ui.module.scss"));
|
166
|
+
_lanesUiModule = function () {
|
167
|
+
return data;
|
168
|
+
};
|
169
|
+
return data;
|
170
|
+
}
|
157
171
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
158
172
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
159
173
|
class LanesUI {
|
@@ -357,8 +371,18 @@ class LanesUI {
|
|
357
371
|
this.registerLanesRoutes();
|
358
372
|
}
|
359
373
|
getLanesSwitcher() {
|
374
|
+
const mainIcon = () => {
|
375
|
+
const scope = (0, _react().useContext)(_scope().ScopeContext);
|
376
|
+
return /*#__PURE__*/_react().default.createElement(_scopeUi().ScopeIcon, {
|
377
|
+
size: 24,
|
378
|
+
scopeImage: scope.icon,
|
379
|
+
bgColor: scope.backgroundIconColor,
|
380
|
+
className: _lanesUiModule().default.mainLaneIcon
|
381
|
+
});
|
382
|
+
};
|
360
383
|
const LanesSwitcher = /*#__PURE__*/_react().default.createElement(_lanesUiNavigation().LaneSwitcher, {
|
361
|
-
groupByScope: this.lanesHost === 'workspace'
|
384
|
+
groupByScope: this.lanesHost === 'workspace',
|
385
|
+
mainIcon: this.lanesHost === 'scope' ? mainIcon : undefined
|
362
386
|
});
|
363
387
|
return LanesSwitcher;
|
364
388
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["LanesUI","constructor","componentUI","componentCompareUI","routeSlot","navSlot","menuWidgetSlot","overviewSlot","laneProviderIgnoreSlot","workspace","scope","idFromLocation","useIdFromLocation","lanesModel","useLanes","laneFromUrl","useViewedLaneFromUrl","laneComponentId","isDefault","resolveComponentFromUrl","undefined","getLaneComponentIdFromUrl","toString","log","logHead","version","children","ignoreFns","values","props","tabs","base","compare","host","hostAspect","lanesHost","WorkspaceAspect","id","ScopeAspect","registerHostAspectRoutes","registerRoutes","getLaneRoutes","registerMenuRoutes","getMenuRoutes","path","LanesModel","lanesPrefix","lanePath","getLaneOverview","getLaneComponent","getLanesComparePage","overrideComputeLaneUrl","fn","prefix","getLaneComponentUrl","getLaneIdFromPathname","getLaneUrl","getComponentUI","componentId","useComponentId","useComponentFilters","getLaneComponentMenu","getMenu","getLaneCompare","getLanesOverviewMenu","registerMenuWidget","menuItems","register","registerLaneProviderIgnoreSlot","ignoreFn","registerLanesRoutes","registerNavigation","href","exact","order","hide","viewedLane","lanes","length","getLanesSwitcher","LanesSwitcher","getLanesProvider","LanesProvider","getUseLanes","registerLanesDropdown","registerSidebarLink","component","Gallery","weight","registerRoute","route","registerOverviewLine","lines","routes","provider","uiUi","workspaceUi","scopeUi","_","harmony","config","String","get","lanesUi","registerRenderHooks","reactContext","renderContext","currentLane","UIAspect","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","LanesAspect","addRuntime"],"sources":["lanes.ui.runtime.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Route, RouteProps } from 'react-router-dom';\nimport { Slot, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { LaneCompare, LaneCompareProps as DefaultLaneCompareProps } from '@teambit/lanes.ui.compare.lane-compare';\nimport { UIRuntime, UiUI, UIAspect } from '@teambit/ui';\nimport { LanesAspect } from '@teambit/lanes';\nimport { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { NotFoundPage } from '@teambit/design.ui.pages.not-found';\nimport ScopeAspect, { ScopeUI } from '@teambit/scope';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport ComponentAspect, { ComponentID, ComponentUI, useIdFromLocation } from '@teambit/component';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { LaneOverview, LaneOverviewLine, LaneOverviewLineSlot } from '@teambit/lanes.ui.lane-overview';\nimport {\n LanesNavPlugin,\n LanesOrderedNavigationSlot,\n LanesOverviewMenu,\n} from '@teambit/lanes.ui.menus.lanes-overview-menu';\nimport { UseLaneMenu } from '@teambit/lanes.ui.menus.use-lanes-menu';\nimport { LanesHost, LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { LanesProvider, useLanes, IgnoreDerivingFromUrl } from '@teambit/lanes.hooks.use-lanes';\nimport { LaneSwitcher } from '@teambit/lanes.ui.navigation.lane-switcher';\nimport { LaneId } from '@teambit/lane-id';\nimport { useViewedLaneFromUrl } from '@teambit/lanes.hooks.use-viewed-lane-from-url';\nimport { ComponentCompareAspect, ComponentCompareUI } from '@teambit/component-compare';\nimport { LaneComparePage } from '@teambit/lanes.ui.compare.lane-compare-page';\n\nexport type LaneCompareProps = Partial<DefaultLaneCompareProps>;\nexport type LaneProviderIgnoreSlot = SlotRegistry<IgnoreDerivingFromUrl>;\n\nexport class LanesUI {\n static dependencies = [UIAspect, ComponentAspect, WorkspaceAspect, ScopeAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<LaneOverviewLineSlot>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<MenuWidgetSlot>(),\n Slot.withType<LaneProviderIgnoreSlot>(),\n ];\n\n constructor(\n private componentUI: ComponentUI,\n private componentCompareUI: ComponentCompareUI,\n private routeSlot: RouteSlot,\n private navSlot: LanesOrderedNavigationSlot,\n private menuWidgetSlot: MenuWidgetSlot,\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: LaneOverviewLineSlot,\n private laneProviderIgnoreSlot: LaneProviderIgnoreSlot,\n private workspace?: WorkspaceUI,\n private scope?: ScopeUI\n ) {\n this.hostAspect = workspace || scope;\n this.lanesHost = workspace ? 'workspace' : 'scope';\n this.host = workspace ? WorkspaceAspect.id : ScopeAspect.id;\n }\n\n private readonly lanesHost: LanesHost;\n private readonly hostAspect?: WorkspaceUI | ScopeUI;\n private readonly host: string;\n\n private registerHostAspectRoutes() {\n if (!this.hostAspect) return;\n this.hostAspect.registerRoutes(this.getLaneRoutes());\n this.hostAspect.registerMenuRoutes(this.getMenuRoutes());\n }\n\n getLaneRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <>\n <Route path={LanesModel.lanePath}>\n <Route index element={this.getLaneOverview()} />\n <Route path=\"~component/*\" element={this.getLaneComponent()} />\n <Route path=\"~compare/*\" element={this.getLanesComparePage()} />\n <Route path=\"*\" element={<NotFoundPage />} />\n </Route>\n <Route path=\"*\" element={<NotFoundPage />} />\n </>\n ),\n },\n ];\n }\n\n overrideComputeLaneUrl(\n fn: () => {\n prefix: string;\n path: string;\n getLaneIdFromPathname: (pathname: string) => LaneId | undefined;\n getLaneUrl: (laneId: LaneId, relative?: boolean) => string;\n getLaneComponentUrl: (componentId: ComponentID, laneId: LaneId) => string;\n }\n ) {\n const { prefix, path, getLaneComponentUrl, getLaneIdFromPathname, getLaneUrl } = fn();\n LanesModel.lanesPrefix = prefix;\n LanesModel.lanePath = path;\n LanesModel.getLaneComponentUrl = getLaneComponentUrl;\n LanesModel.getLaneUrl = getLaneUrl;\n LanesModel.getLaneIdFromPathname = getLaneIdFromPathname;\n }\n\n // getLaneReadme() {\n // return <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />;\n // }\n\n getLaneComponentIdFromUrl = () => {\n const idFromLocation = useIdFromLocation();\n const { lanesModel } = useLanes();\n const laneFromUrl = useViewedLaneFromUrl();\n const laneComponentId =\n idFromLocation && !laneFromUrl?.isDefault()\n ? lanesModel?.resolveComponentFromUrl(idFromLocation, laneFromUrl)\n : undefined;\n return laneComponentId;\n };\n\n useComponentId = () => {\n return this.getLaneComponentIdFromUrl()?.toString();\n };\n\n useComponentFilters = () => {\n const laneComponentId = this.getLaneComponentIdFromUrl();\n\n return {\n log: laneComponentId && {\n logHead: laneComponentId.version,\n },\n };\n };\n\n getLaneComponent() {\n return this.componentUI.getComponentUI(this.host, {\n componentId: this.useComponentId,\n useComponentFilters: this.useComponentFilters,\n });\n }\n\n getLaneComponentMenu() {\n return this.componentUI.getMenu(this.host, {\n componentId: this.useComponentId,\n useComponentFilters: this.useComponentFilters,\n });\n }\n\n getLaneOverview() {\n return <LaneOverview routeSlot={this.routeSlot} overviewSlot={this.overviewSlot} host={this.lanesHost} />;\n }\n\n getLanesComparePage() {\n return <LaneComparePage getLaneCompare={this.getLaneCompare} groupByScope={this.lanesHost === 'workspace'} />;\n }\n\n getMenuRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <Route path={`${LanesModel.lanePath}/*`}>\n <Route path={'*'} element={this.getLanesOverviewMenu()} />\n <Route path=\"~component/*\" element={this.getLaneComponentMenu()} />\n </Route>\n ),\n },\n ];\n }\n\n getLanesOverviewMenu() {\n return <LanesOverviewMenu navigationSlot={this.navSlot} widgetSlot={this.menuWidgetSlot} />;\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n return this;\n }\n\n registerLaneProviderIgnoreSlot(ignoreFn: IgnoreDerivingFromUrl) {\n this.laneProviderIgnoreSlot.register(ignoreFn);\n return this;\n }\n\n private registerLanesRoutes() {\n this.registerNavigation([\n // {\n // props: {\n // href: '.',\n // exact: true,\n // children: 'README',\n // },\n // order: 1,\n // hide: () => {\n // const { lanesModel } = useLanes();\n // return !lanesModel?.viewedLane?.readmeComponent;\n // },\n // },\n {\n props: {\n href: '.',\n exact: true,\n children: 'Overview',\n },\n order: 1,\n },\n {\n props: {\n href: '~compare',\n children: 'Compare',\n },\n order: 2,\n hide: () => {\n const { lanesModel } = useLanes();\n return !lanesModel?.viewedLane || lanesModel?.lanes.length < 2;\n },\n },\n ]);\n }\n\n private registerRoutes() {\n this.registerHostAspectRoutes();\n this.registerLanesRoutes();\n }\n\n getLanesSwitcher() {\n const LanesSwitcher = <LaneSwitcher groupByScope={this.lanesHost === 'workspace'} />;\n return LanesSwitcher;\n }\n\n getLanesProvider() {\n return LanesProvider;\n }\n\n getUseLanes() {\n return useLanes;\n }\n\n private registerLanesDropdown() {\n const LanesSwitcher = this.getLanesSwitcher();\n\n this.hostAspect?.registerSidebarLink({\n component: function Gallery() {\n return LanesSwitcher;\n },\n weight: 1000,\n });\n }\n\n private renderContext = ({ children }: { children: ReactNode }) => {\n const ignoreFns = this.laneProviderIgnoreSlot.values();\n\n return <LanesProvider ignoreDerivingFromUrl={ignoreFns}>{children}</LanesProvider>;\n };\n\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n /**\n * register a new line beneath the lane overview section.\n */\n registerOverviewLine(...lines: LaneOverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n registerNavigation(routes: LanesNavPlugin[]) {\n this.navSlot.register(routes);\n }\n\n getLaneCompare = (props: LaneCompareProps) => {\n const tabs = this.componentCompareUI.tabs;\n\n if (!props.base || !props.compare) return null;\n\n return (\n <LaneCompare\n {...props}\n base={props.base}\n compare={props.compare}\n host={props.host || this.host}\n tabs={props.tabs || tabs}\n />\n );\n };\n\n static async provider(\n [uiUi, componentUI, workspaceUi, scopeUi, componentCompareUI]: [\n UiUI,\n ComponentUI,\n WorkspaceUI,\n ScopeUI,\n ComponentCompareUI\n ],\n _,\n [routeSlot, overviewSlot, navSlot, menuWidgetSlot, laneProviderIgnoreSlot]: [\n RouteSlot,\n LaneOverviewLineSlot,\n LanesOrderedNavigationSlot,\n MenuWidgetSlot,\n LaneProviderIgnoreSlot\n ],\n harmony: Harmony\n ) {\n const { config } = harmony;\n const host = String(config.get('teambit.harmony/bit'));\n let workspace: WorkspaceUI | undefined;\n let scope: ScopeUI | undefined;\n if (host === WorkspaceAspect.id) {\n workspace = workspaceUi;\n }\n if (host === ScopeAspect.id) {\n scope = scopeUi;\n }\n const lanesUi = new LanesUI(\n componentUI,\n componentCompareUI,\n routeSlot,\n navSlot,\n overviewSlot,\n menuWidgetSlot,\n laneProviderIgnoreSlot,\n workspace,\n scope\n );\n if (uiUi) uiUi.registerRenderHooks({ reactContext: lanesUi.renderContext });\n lanesUi.registerRoutes();\n lanesUi.registerMenuWidget(() => {\n const { lanesModel } = useLanes();\n if (!lanesModel?.viewedLane) return null;\n const { viewedLane, currentLane } = lanesModel;\n return (\n <UseLaneMenu\n actionName={'Import'}\n actionIcon={'terminal'}\n host={lanesUi.lanesHost}\n viewedLaneId={viewedLane.id}\n currentLaneId={currentLane?.id}\n />\n );\n });\n lanesUi.registerLanesDropdown();\n return lanesUi;\n }\n}\n\nexport default LanesUI;\n\nLanesAspect.addRuntime(LanesUI);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA8E;AAAA;AAKvE,MAAMA,OAAO,CAAC;EAYnBC,WAAW,CACDC,WAAwB,EACxBC,kBAAsC,EACtCC,SAAoB,EACpBC,OAAmC,EACnCC,cAA8B;EACtC;AACJ;AACA;EACYC,YAAkC,EAClCC,sBAA8C,EAC9CC,SAAuB,EACvBC,KAAe,EACvB;IAAA,KAZQR,WAAwB,GAAxBA,WAAwB;IAAA,KACxBC,kBAAsC,GAAtCA,kBAAsC;IAAA,KACtCC,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,OAAmC,GAAnCA,OAAmC;IAAA,KACnCC,cAA8B,GAA9BA,cAA8B;IAAA,KAI9BC,YAAkC,GAAlCA,YAAkC;IAAA,KAClCC,sBAA8C,GAA9CA,sBAA8C;IAAA,KAC9CC,SAAuB,GAAvBA,SAAuB;IAAA,KACvBC,KAAe,GAAfA,KAAe;IAAA;IAAA;IAAA;IAAA,mEAyDG,MAAM;MAChC,MAAMC,cAAc,GAAG,IAAAC,8BAAiB,GAAE;MAC1C,MAAM;QAAEC;MAAW,CAAC,GAAG,IAAAC,sBAAQ,GAAE;MACjC,MAAMC,WAAW,GAAG,IAAAC,mCAAoB,GAAE;MAC1C,MAAMC,eAAe,GACnBN,cAAc,IAAI,EAACI,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEG,SAAS,EAAE,IACvCL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,uBAAuB,CAACR,cAAc,EAAEI,WAAW,CAAC,GAChEK,SAAS;MACf,OAAOH,eAAe;IACxB,CAAC;IAAA,wDAEgB,MAAM;MAAA;MACrB,gCAAO,IAAI,CAACI,yBAAyB,EAAE,0DAAhC,sBAAkCC,QAAQ,EAAE;IACrD,CAAC;IAAA,6DAEqB,MAAM;MAC1B,MAAML,eAAe,GAAG,IAAI,CAACI,yBAAyB,EAAE;MAExD,OAAO;QACLE,GAAG,EAAEN,eAAe,IAAI;UACtBO,OAAO,EAAEP,eAAe,CAACQ;QAC3B;MACF,CAAC;IACH,CAAC;IAAA,uDAqHuB,CAAC;MAAEC;IAAkC,CAAC,KAAK;MACjE,MAAMC,SAAS,GAAG,IAAI,CAACnB,sBAAsB,CAACoB,MAAM,EAAE;MAEtD,oBAAO,+BAAC,2BAAa;QAAC,qBAAqB,EAAED;MAAU,GAAED,QAAQ,CAAiB;IACpF,CAAC;IAAA,wDAmBiBG,KAAuB,IAAK;MAC5C,MAAMC,IAAI,GAAG,IAAI,CAAC3B,kBAAkB,CAAC2B,IAAI;MAEzC,IAAI,CAACD,KAAK,CAACE,IAAI,IAAI,CAACF,KAAK,CAACG,OAAO,EAAE,OAAO,IAAI;MAE9C,oBACE,+BAAC,6BAAW,+BACNH,KAAK;QACT,IAAI,EAAEA,KAAK,CAACE,IAAK;QACjB,OAAO,EAAEF,KAAK,CAACG,OAAQ;QACvB,IAAI,EAAEH,KAAK,CAACI,IAAI,IAAI,IAAI,CAACA,IAAK;QAC9B,IAAI,EAAEJ,KAAK,CAACC,IAAI,IAAIA;MAAK,GACzB;IAEN,CAAC;IAxOC,IAAI,CAACI,UAAU,GAAGzB,SAAS,IAAIC,KAAK;IACpC,IAAI,CAACyB,SAAS,GAAG1B,SAAS,GAAG,WAAW,GAAG,OAAO;IAClD,IAAI,CAACwB,IAAI,GAAGxB,SAAS,GAAG2B,oBAAe,CAACC,EAAE,GAAGC,gBAAW,CAACD,EAAE;EAC7D;EAMQE,wBAAwB,GAAG;IACjC,IAAI,CAAC,IAAI,CAACL,UAAU,EAAE;IACtB,IAAI,CAACA,UAAU,CAACM,cAAc,CAAC,IAAI,CAACC,aAAa,EAAE,CAAC;IACpD,IAAI,CAACP,UAAU,CAACQ,kBAAkB,CAAC,IAAI,CAACC,aAAa,EAAE,CAAC;EAC1D;EAEAF,aAAa,GAAG;IACd,OAAO,CACL;MACEG,IAAI,EAAEC,2BAAU,CAACC,WAAW;MAC5BpB,QAAQ,eACN,6EACE,+BAAC,uBAAK;QAAC,IAAI,EAAEmB,2BAAU,CAACE;MAAS,gBAC/B,+BAAC,uBAAK;QAAC,KAAK;QAAC,OAAO,EAAE,IAAI,CAACC,eAAe;MAAG,EAAG,eAChD,+BAAC,uBAAK;QAAC,IAAI,EAAC,cAAc;QAAC,OAAO,EAAE,IAAI,CAACC,gBAAgB;MAAG,EAAG,eAC/D,+BAAC,uBAAK;QAAC,IAAI,EAAC,YAAY;QAAC,OAAO,EAAE,IAAI,CAACC,mBAAmB;MAAG,EAAG,eAChE,+BAAC,uBAAK;QAAC,IAAI,EAAC,GAAG;QAAC,OAAO,eAAE,+BAAC,6BAAY;MAAI,EAAG,CACvC,eACR,+BAAC,uBAAK;QAAC,IAAI,EAAC,GAAG;QAAC,OAAO,eAAE,+BAAC,6BAAY;MAAI,EAAG;IAGnD,CAAC,CACF;EACH;EAEAC,sBAAsB,CACpBC,EAMC,EACD;IACA,MAAM;MAAEC,MAAM;MAAET,IAAI;MAAEU,mBAAmB;MAAEC,qBAAqB;MAAEC;IAAW,CAAC,GAAGJ,EAAE,EAAE;IACrFP,2BAAU,CAACC,WAAW,GAAGO,MAAM;IAC/BR,2BAAU,CAACE,QAAQ,GAAGH,IAAI;IAC1BC,2BAAU,CAACS,mBAAmB,GAAGA,mBAAmB;IACpDT,2BAAU,CAACW,UAAU,GAAGA,UAAU;IAClCX,2BAAU,CAACU,qBAAqB,GAAGA,qBAAqB;EAC1D;;EAEA;EACA;EACA;;EA2BAN,gBAAgB,GAAG;IACjB,OAAO,IAAI,CAAC/C,WAAW,CAACuD,cAAc,CAAC,IAAI,CAACxB,IAAI,EAAE;MAChDyB,WAAW,EAAE,IAAI,CAACC,cAAc;MAChCC,mBAAmB,EAAE,IAAI,CAACA;IAC5B,CAAC,CAAC;EACJ;EAEAC,oBAAoB,GAAG;IACrB,OAAO,IAAI,CAAC3D,WAAW,CAAC4D,OAAO,CAAC,IAAI,CAAC7B,IAAI,EAAE;MACzCyB,WAAW,EAAE,IAAI,CAACC,cAAc;MAChCC,mBAAmB,EAAE,IAAI,CAACA;IAC5B,CAAC,CAAC;EACJ;EAEAZ,eAAe,GAAG;IAChB,oBAAO,+BAAC,uBAAY;MAAC,SAAS,EAAE,IAAI,CAAC5C,SAAU;MAAC,YAAY,EAAE,IAAI,CAACG,YAAa;MAAC,IAAI,EAAE,IAAI,CAAC4B;IAAU,EAAG;EAC3G;EAEAe,mBAAmB,GAAG;IACpB,oBAAO,+BAAC,kCAAe;MAAC,cAAc,EAAE,IAAI,CAACa,cAAe;MAAC,YAAY,EAAE,IAAI,CAAC5B,SAAS,KAAK;IAAY,EAAG;EAC/G;EAEAQ,aAAa,GAAG;IACd,OAAO,CACL;MACEC,IAAI,EAAEC,2BAAU,CAACC,WAAW;MAC5BpB,QAAQ,eACN,+BAAC,uBAAK;QAAC,IAAI,EAAG,GAAEmB,2BAAU,CAACE,QAAS;MAAI,gBACtC,+BAAC,uBAAK;QAAC,IAAI,EAAE,GAAI;QAAC,OAAO,EAAE,IAAI,CAACiB,oBAAoB;MAAG,EAAG,eAC1D,+BAAC,uBAAK;QAAC,IAAI,EAAC,cAAc;QAAC,OAAO,EAAE,IAAI,CAACH,oBAAoB;MAAG,EAAG;IAGzE,CAAC,CACF;EACH;EAEAG,oBAAoB,GAAG;IACrB,oBAAO,+BAAC,iCAAiB;MAAC,cAAc,EAAE,IAAI,CAAC3D,OAAQ;MAAC,UAAU,EAAE,IAAI,CAACC;IAAe,EAAG;EAC7F;EAEA2D,kBAAkB,CAAC,GAAGC,SAAuB,EAAE;IAC7C,IAAI,CAAC5D,cAAc,CAAC6D,QAAQ,CAACD,SAAS,CAAC;IACvC,OAAO,IAAI;EACb;EAEAE,8BAA8B,CAACC,QAA+B,EAAE;IAC9D,IAAI,CAAC7D,sBAAsB,CAAC2D,QAAQ,CAACE,QAAQ,CAAC;IAC9C,OAAO,IAAI;EACb;EAEQC,mBAAmB,GAAG;IAC5B,IAAI,CAACC,kBAAkB,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;MACE1C,KAAK,EAAE;QACL2C,IAAI,EAAE,GAAG;QACTC,KAAK,EAAE,IAAI;QACX/C,QAAQ,EAAE;MACZ,CAAC;MACDgD,KAAK,EAAE;IACT,CAAC,EACD;MACE7C,KAAK,EAAE;QACL2C,IAAI,EAAE,UAAU;QAChB9C,QAAQ,EAAE;MACZ,CAAC;MACDgD,KAAK,EAAE,CAAC;MACRC,IAAI,EAAE,MAAM;QACV,MAAM;UAAE9D;QAAW,CAAC,GAAG,IAAAC,sBAAQ,GAAE;QACjC,OAAO,EAACD,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAE+D,UAAU,KAAI,CAAA/D,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEgE,KAAK,CAACC,MAAM,IAAG,CAAC;MAChE;IACF,CAAC,CACF,CAAC;EACJ;EAEQtC,cAAc,GAAG;IACvB,IAAI,CAACD,wBAAwB,EAAE;IAC/B,IAAI,CAAC+B,mBAAmB,EAAE;EAC5B;EAEAS,gBAAgB,GAAG;IACjB,MAAMC,aAAa,gBAAG,+BAAC,iCAAY;MAAC,YAAY,EAAE,IAAI,CAAC7C,SAAS,KAAK;IAAY,EAAG;IACpF,OAAO6C,aAAa;EACtB;EAEAC,gBAAgB,GAAG;IACjB,OAAOC,2BAAa;EACtB;EAEAC,WAAW,GAAG;IACZ,OAAOrE,sBAAQ;EACjB;EAEQsE,qBAAqB,GAAG;IAAA;IAC9B,MAAMJ,aAAa,GAAG,IAAI,CAACD,gBAAgB,EAAE;IAE7C,wBAAI,CAAC7C,UAAU,qDAAf,iBAAiBmD,mBAAmB,CAAC;MACnCC,SAAS,EAAE,SAASC,OAAO,GAAG;QAC5B,OAAOP,aAAa;MACtB,CAAC;MACDQ,MAAM,EAAE;IACV,CAAC,CAAC;EACJ;EAQAC,aAAa,CAACC,KAAiB,EAAE;IAC/B,IAAI,CAACtF,SAAS,CAAC+D,QAAQ,CAACuB,KAAK,CAAC;IAC9B,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEC,oBAAoB,CAAC,GAAGC,KAAyB,EAAE;IACjD,IAAI,CAACrF,YAAY,CAAC4D,QAAQ,CAACyB,KAAK,CAAC;IACjC,OAAO,IAAI;EACb;EAEArB,kBAAkB,CAACsB,MAAwB,EAAE;IAC3C,IAAI,CAACxF,OAAO,CAAC8D,QAAQ,CAAC0B,MAAM,CAAC;EAC/B;EAkBA,aAAaC,QAAQ,CACnB,CAACC,IAAI,EAAE7F,WAAW,EAAE8F,WAAW,EAAEC,OAAO,EAAE9F,kBAAkB,CAM3D,EACD+F,CAAC,EACD,CAAC9F,SAAS,EAAEG,YAAY,EAAEF,OAAO,EAAEC,cAAc,EAAEE,sBAAsB,CAMxE,EACD2F,OAAgB,EAChB;IACA,MAAM;MAAEC;IAAO,CAAC,GAAGD,OAAO;IAC1B,MAAMlE,IAAI,GAAGoE,MAAM,CAACD,MAAM,CAACE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACtD,IAAI7F,SAAkC;IACtC,IAAIC,KAA0B;IAC9B,IAAIuB,IAAI,KAAKG,oBAAe,CAACC,EAAE,EAAE;MAC/B5B,SAAS,GAAGuF,WAAW;IACzB;IACA,IAAI/D,IAAI,KAAKK,gBAAW,CAACD,EAAE,EAAE;MAC3B3B,KAAK,GAAGuF,OAAO;IACjB;IACA,MAAMM,OAAO,GAAG,IAAIvG,OAAO,CACzBE,WAAW,EACXC,kBAAkB,EAClBC,SAAS,EACTC,OAAO,EACPE,YAAY,EACZD,cAAc,EACdE,sBAAsB,EACtBC,SAAS,EACTC,KAAK,CACN;IACD,IAAIqF,IAAI,EAAEA,IAAI,CAACS,mBAAmB,CAAC;MAAEC,YAAY,EAAEF,OAAO,CAACG;IAAc,CAAC,CAAC;IAC3EH,OAAO,CAAC/D,cAAc,EAAE;IACxB+D,OAAO,CAACtC,kBAAkB,CAAC,MAAM;MAC/B,MAAM;QAAEpD;MAAW,CAAC,GAAG,IAAAC,sBAAQ,GAAE;MACjC,IAAI,EAACD,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAE+D,UAAU,GAAE,OAAO,IAAI;MACxC,MAAM;QAAEA,UAAU;QAAE+B;MAAY,CAAC,GAAG9F,UAAU;MAC9C,oBACE,+BAAC,4BAAW;QACV,UAAU,EAAE,QAAS;QACrB,UAAU,EAAE,UAAW;QACvB,IAAI,EAAE0F,OAAO,CAACpE,SAAU;QACxB,YAAY,EAAEyC,UAAU,CAACvC,EAAG;QAC5B,aAAa,EAAEsE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEtE;MAAG,EAC/B;IAEN,CAAC,CAAC;IACFkE,OAAO,CAACnB,qBAAqB,EAAE;IAC/B,OAAOmB,OAAO;EAChB;AACF;AAAC;AAAA,gCA9TYvG,OAAO,kBACI,CAAC4G,cAAQ,EAAEC,oBAAe,EAAEzE,oBAAe,EAAEE,gBAAW,EAAEwE,0CAAsB,CAAC;AAAA,gCAD5F9G,OAAO,aAGD+G,eAAS;AAAA,gCAHf/G,OAAO,WAIH,CACbgH,eAAI,CAACC,QAAQ,EAAc,EAC3BD,eAAI,CAACC,QAAQ,EAAwB,EACrCD,eAAI,CAACC,QAAQ,EAAkB,EAC/BD,eAAI,CAACC,QAAQ,EAAkB,EAC/BD,eAAI,CAACC,QAAQ,EAA0B,CACxC;AAAA,eAsTYjH,OAAO;AAAA;AAEtBkH,oBAAW,CAACC,UAAU,CAACnH,OAAO,CAAC"}
|
1
|
+
{"version":3,"names":["LanesUI","constructor","componentUI","componentCompareUI","routeSlot","navSlot","menuWidgetSlot","overviewSlot","laneProviderIgnoreSlot","workspace","scope","idFromLocation","useIdFromLocation","lanesModel","useLanes","laneFromUrl","useViewedLaneFromUrl","laneComponentId","isDefault","resolveComponentFromUrl","undefined","getLaneComponentIdFromUrl","toString","log","logHead","version","children","ignoreFns","values","props","tabs","base","compare","host","hostAspect","lanesHost","WorkspaceAspect","id","ScopeAspect","registerHostAspectRoutes","registerRoutes","getLaneRoutes","registerMenuRoutes","getMenuRoutes","path","LanesModel","lanesPrefix","lanePath","getLaneOverview","getLaneComponent","getLanesComparePage","overrideComputeLaneUrl","fn","prefix","getLaneComponentUrl","getLaneIdFromPathname","getLaneUrl","getComponentUI","componentId","useComponentId","useComponentFilters","getLaneComponentMenu","getMenu","getLaneCompare","getLanesOverviewMenu","registerMenuWidget","menuItems","register","registerLaneProviderIgnoreSlot","ignoreFn","registerLanesRoutes","registerNavigation","href","exact","order","hide","viewedLane","lanes","length","getLanesSwitcher","mainIcon","useContext","ScopeContext","icon","backgroundIconColor","styles","mainLaneIcon","LanesSwitcher","getLanesProvider","LanesProvider","getUseLanes","registerLanesDropdown","registerSidebarLink","component","Gallery","weight","registerRoute","route","registerOverviewLine","lines","routes","provider","uiUi","workspaceUi","scopeUi","_","harmony","config","String","get","lanesUi","registerRenderHooks","reactContext","renderContext","currentLane","UIAspect","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","LanesAspect","addRuntime"],"sources":["lanes.ui.runtime.tsx"],"sourcesContent":["import React, { ReactNode, useContext } from 'react';\nimport { Route, RouteProps } from 'react-router-dom';\nimport { Slot, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { LaneCompare, LaneCompareProps as DefaultLaneCompareProps } from '@teambit/lanes.ui.compare.lane-compare';\nimport { UIRuntime, UiUI, UIAspect } from '@teambit/ui';\nimport { LanesAspect } from '@teambit/lanes';\nimport { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { NotFoundPage } from '@teambit/design.ui.pages.not-found';\nimport ScopeAspect, { ScopeContext, ScopeUI } from '@teambit/scope';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport ComponentAspect, { ComponentID, ComponentUI, useIdFromLocation } from '@teambit/component';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { LaneOverview, LaneOverviewLine, LaneOverviewLineSlot } from '@teambit/lanes.ui.lane-overview';\nimport {\n LanesNavPlugin,\n LanesOrderedNavigationSlot,\n LanesOverviewMenu,\n} from '@teambit/lanes.ui.menus.lanes-overview-menu';\nimport { UseLaneMenu } from '@teambit/lanes.ui.menus.use-lanes-menu';\nimport { LanesHost, LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { LanesProvider, useLanes, IgnoreDerivingFromUrl } from '@teambit/lanes.hooks.use-lanes';\nimport { LaneSwitcher } from '@teambit/lanes.ui.navigation.lane-switcher';\nimport { LaneId } from '@teambit/lane-id';\nimport { useViewedLaneFromUrl } from '@teambit/lanes.hooks.use-viewed-lane-from-url';\nimport { ComponentCompareAspect, ComponentCompareUI } from '@teambit/component-compare';\nimport { LaneComparePage } from '@teambit/lanes.ui.compare.lane-compare-page';\nimport { ScopeIcon } from '@teambit/scope.ui.scope-icon';\n\nimport styles from './lanes.ui.module.scss';\n\nexport type LaneCompareProps = Partial<DefaultLaneCompareProps>;\nexport type LaneProviderIgnoreSlot = SlotRegistry<IgnoreDerivingFromUrl>;\n\nexport class LanesUI {\n static dependencies = [UIAspect, ComponentAspect, WorkspaceAspect, ScopeAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<LaneOverviewLineSlot>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<MenuWidgetSlot>(),\n Slot.withType<LaneProviderIgnoreSlot>(),\n ];\n\n constructor(\n private componentUI: ComponentUI,\n private componentCompareUI: ComponentCompareUI,\n private routeSlot: RouteSlot,\n private navSlot: LanesOrderedNavigationSlot,\n private menuWidgetSlot: MenuWidgetSlot,\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: LaneOverviewLineSlot,\n private laneProviderIgnoreSlot: LaneProviderIgnoreSlot,\n private workspace?: WorkspaceUI,\n private scope?: ScopeUI\n ) {\n this.hostAspect = workspace || scope;\n this.lanesHost = workspace ? 'workspace' : 'scope';\n this.host = workspace ? WorkspaceAspect.id : ScopeAspect.id;\n }\n\n private readonly lanesHost: LanesHost;\n private readonly hostAspect?: WorkspaceUI | ScopeUI;\n private readonly host: string;\n\n private registerHostAspectRoutes() {\n if (!this.hostAspect) return;\n this.hostAspect.registerRoutes(this.getLaneRoutes());\n this.hostAspect.registerMenuRoutes(this.getMenuRoutes());\n }\n\n getLaneRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <>\n <Route path={LanesModel.lanePath}>\n <Route index element={this.getLaneOverview()} />\n <Route path=\"~component/*\" element={this.getLaneComponent()} />\n <Route path=\"~compare/*\" element={this.getLanesComparePage()} />\n <Route path=\"*\" element={<NotFoundPage />} />\n </Route>\n <Route path=\"*\" element={<NotFoundPage />} />\n </>\n ),\n },\n ];\n }\n\n overrideComputeLaneUrl(\n fn: () => {\n prefix: string;\n path: string;\n getLaneIdFromPathname: (pathname: string) => LaneId | undefined;\n getLaneUrl: (laneId: LaneId, relative?: boolean) => string;\n getLaneComponentUrl: (componentId: ComponentID, laneId: LaneId) => string;\n }\n ) {\n const { prefix, path, getLaneComponentUrl, getLaneIdFromPathname, getLaneUrl } = fn();\n LanesModel.lanesPrefix = prefix;\n LanesModel.lanePath = path;\n LanesModel.getLaneComponentUrl = getLaneComponentUrl;\n LanesModel.getLaneUrl = getLaneUrl;\n LanesModel.getLaneIdFromPathname = getLaneIdFromPathname;\n }\n\n // getLaneReadme() {\n // return <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />;\n // }\n\n getLaneComponentIdFromUrl = () => {\n const idFromLocation = useIdFromLocation();\n const { lanesModel } = useLanes();\n const laneFromUrl = useViewedLaneFromUrl();\n const laneComponentId =\n idFromLocation && !laneFromUrl?.isDefault()\n ? lanesModel?.resolveComponentFromUrl(idFromLocation, laneFromUrl)\n : undefined;\n return laneComponentId;\n };\n\n useComponentId = () => {\n return this.getLaneComponentIdFromUrl()?.toString();\n };\n\n useComponentFilters = () => {\n const laneComponentId = this.getLaneComponentIdFromUrl();\n\n return {\n log: laneComponentId && {\n logHead: laneComponentId.version,\n },\n };\n };\n\n getLaneComponent() {\n return this.componentUI.getComponentUI(this.host, {\n componentId: this.useComponentId,\n useComponentFilters: this.useComponentFilters,\n });\n }\n\n getLaneComponentMenu() {\n return this.componentUI.getMenu(this.host, {\n componentId: this.useComponentId,\n useComponentFilters: this.useComponentFilters,\n });\n }\n\n getLaneOverview() {\n return <LaneOverview routeSlot={this.routeSlot} overviewSlot={this.overviewSlot} host={this.lanesHost} />;\n }\n\n getLanesComparePage() {\n return <LaneComparePage getLaneCompare={this.getLaneCompare} groupByScope={this.lanesHost === 'workspace'} />;\n }\n\n getMenuRoutes() {\n return [\n {\n path: LanesModel.lanesPrefix,\n children: (\n <Route path={`${LanesModel.lanePath}/*`}>\n <Route path={'*'} element={this.getLanesOverviewMenu()} />\n <Route path=\"~component/*\" element={this.getLaneComponentMenu()} />\n </Route>\n ),\n },\n ];\n }\n\n getLanesOverviewMenu() {\n return <LanesOverviewMenu navigationSlot={this.navSlot} widgetSlot={this.menuWidgetSlot} />;\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n return this;\n }\n\n registerLaneProviderIgnoreSlot(ignoreFn: IgnoreDerivingFromUrl) {\n this.laneProviderIgnoreSlot.register(ignoreFn);\n return this;\n }\n\n private registerLanesRoutes() {\n this.registerNavigation([\n // {\n // props: {\n // href: '.',\n // exact: true,\n // children: 'README',\n // },\n // order: 1,\n // hide: () => {\n // const { lanesModel } = useLanes();\n // return !lanesModel?.viewedLane?.readmeComponent;\n // },\n // },\n {\n props: {\n href: '.',\n exact: true,\n children: 'Overview',\n },\n order: 1,\n },\n {\n props: {\n href: '~compare',\n children: 'Compare',\n },\n order: 2,\n hide: () => {\n const { lanesModel } = useLanes();\n return !lanesModel?.viewedLane || lanesModel?.lanes.length < 2;\n },\n },\n ]);\n }\n\n private registerRoutes() {\n this.registerHostAspectRoutes();\n this.registerLanesRoutes();\n }\n\n getLanesSwitcher() {\n const mainIcon = () => {\n const scope = useContext(ScopeContext);\n return (\n <ScopeIcon\n size={24}\n scopeImage={scope.icon}\n bgColor={scope.backgroundIconColor}\n className={styles.mainLaneIcon}\n />\n );\n };\n\n const LanesSwitcher = (\n <LaneSwitcher\n groupByScope={this.lanesHost === 'workspace'}\n mainIcon={this.lanesHost === 'scope' ? mainIcon : undefined}\n />\n );\n\n return LanesSwitcher;\n }\n\n getLanesProvider() {\n return LanesProvider;\n }\n\n getUseLanes() {\n return useLanes;\n }\n\n private registerLanesDropdown() {\n const LanesSwitcher = this.getLanesSwitcher();\n\n this.hostAspect?.registerSidebarLink({\n component: function Gallery() {\n return LanesSwitcher;\n },\n weight: 1000,\n });\n }\n\n private renderContext = ({ children }: { children: ReactNode }) => {\n const ignoreFns = this.laneProviderIgnoreSlot.values();\n\n return <LanesProvider ignoreDerivingFromUrl={ignoreFns}>{children}</LanesProvider>;\n };\n\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n /**\n * register a new line beneath the lane overview section.\n */\n registerOverviewLine(...lines: LaneOverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n registerNavigation(routes: LanesNavPlugin[]) {\n this.navSlot.register(routes);\n }\n\n getLaneCompare = (props: LaneCompareProps) => {\n const tabs = this.componentCompareUI.tabs;\n\n if (!props.base || !props.compare) return null;\n\n return (\n <LaneCompare\n {...props}\n base={props.base}\n compare={props.compare}\n host={props.host || this.host}\n tabs={props.tabs || tabs}\n />\n );\n };\n\n static async provider(\n [uiUi, componentUI, workspaceUi, scopeUi, componentCompareUI]: [\n UiUI,\n ComponentUI,\n WorkspaceUI,\n ScopeUI,\n ComponentCompareUI\n ],\n _,\n [routeSlot, overviewSlot, navSlot, menuWidgetSlot, laneProviderIgnoreSlot]: [\n RouteSlot,\n LaneOverviewLineSlot,\n LanesOrderedNavigationSlot,\n MenuWidgetSlot,\n LaneProviderIgnoreSlot\n ],\n harmony: Harmony\n ) {\n const { config } = harmony;\n const host = String(config.get('teambit.harmony/bit'));\n let workspace: WorkspaceUI | undefined;\n let scope: ScopeUI | undefined;\n if (host === WorkspaceAspect.id) {\n workspace = workspaceUi;\n }\n if (host === ScopeAspect.id) {\n scope = scopeUi;\n }\n const lanesUi = new LanesUI(\n componentUI,\n componentCompareUI,\n routeSlot,\n navSlot,\n overviewSlot,\n menuWidgetSlot,\n laneProviderIgnoreSlot,\n workspace,\n scope\n );\n if (uiUi) uiUi.registerRenderHooks({ reactContext: lanesUi.renderContext });\n lanesUi.registerRoutes();\n lanesUi.registerMenuWidget(() => {\n const { lanesModel } = useLanes();\n if (!lanesModel?.viewedLane) return null;\n const { viewedLane, currentLane } = lanesModel;\n return (\n <UseLaneMenu\n actionName={'Import'}\n actionIcon={'terminal'}\n host={lanesUi.lanesHost}\n viewedLaneId={viewedLane.id}\n currentLaneId={currentLane?.id}\n />\n );\n });\n lanesUi.registerLanesDropdown();\n return lanesUi;\n }\n}\n\nexport default LanesUI;\n\nLanesAspect.addRuntime(LanesUI);\n"],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.594/dist/lanes.composition.js';
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.594/dist/lanes.docs.mdx';
|
3
3
|
|
4
4
|
export const compositions = [compositions_0];
|
5
5
|
export const overview = [overview_0];
|
package/lanes.ui.runtime.tsx
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { ReactNode } from 'react';
|
1
|
+
import React, { ReactNode, useContext } from 'react';
|
2
2
|
import { Route, RouteProps } from 'react-router-dom';
|
3
3
|
import { Slot, Harmony, SlotRegistry } from '@teambit/harmony';
|
4
4
|
import { LaneCompare, LaneCompareProps as DefaultLaneCompareProps } from '@teambit/lanes.ui.compare.lane-compare';
|
@@ -6,7 +6,7 @@ import { UIRuntime, UiUI, UIAspect } from '@teambit/ui';
|
|
6
6
|
import { LanesAspect } from '@teambit/lanes';
|
7
7
|
import { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
|
8
8
|
import { NotFoundPage } from '@teambit/design.ui.pages.not-found';
|
9
|
-
import ScopeAspect, { ScopeUI } from '@teambit/scope';
|
9
|
+
import ScopeAspect, { ScopeContext, ScopeUI } from '@teambit/scope';
|
10
10
|
import WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';
|
11
11
|
import ComponentAspect, { ComponentID, ComponentUI, useIdFromLocation } from '@teambit/component';
|
12
12
|
import { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';
|
@@ -24,6 +24,9 @@ import { LaneId } from '@teambit/lane-id';
|
|
24
24
|
import { useViewedLaneFromUrl } from '@teambit/lanes.hooks.use-viewed-lane-from-url';
|
25
25
|
import { ComponentCompareAspect, ComponentCompareUI } from '@teambit/component-compare';
|
26
26
|
import { LaneComparePage } from '@teambit/lanes.ui.compare.lane-compare-page';
|
27
|
+
import { ScopeIcon } from '@teambit/scope.ui.scope-icon';
|
28
|
+
|
29
|
+
import styles from './lanes.ui.module.scss';
|
27
30
|
|
28
31
|
export type LaneCompareProps = Partial<DefaultLaneCompareProps>;
|
29
32
|
export type LaneProviderIgnoreSlot = SlotRegistry<IgnoreDerivingFromUrl>;
|
@@ -226,7 +229,25 @@ export class LanesUI {
|
|
226
229
|
}
|
227
230
|
|
228
231
|
getLanesSwitcher() {
|
229
|
-
const
|
232
|
+
const mainIcon = () => {
|
233
|
+
const scope = useContext(ScopeContext);
|
234
|
+
return (
|
235
|
+
<ScopeIcon
|
236
|
+
size={24}
|
237
|
+
scopeImage={scope.icon}
|
238
|
+
bgColor={scope.backgroundIconColor}
|
239
|
+
className={styles.mainLaneIcon}
|
240
|
+
/>
|
241
|
+
);
|
242
|
+
};
|
243
|
+
|
244
|
+
const LanesSwitcher = (
|
245
|
+
<LaneSwitcher
|
246
|
+
groupByScope={this.lanesHost === 'workspace'}
|
247
|
+
mainIcon={this.lanesHost === 'scope' ? mainIcon : undefined}
|
248
|
+
/>
|
249
|
+
);
|
250
|
+
|
230
251
|
return LanesSwitcher;
|
231
252
|
}
|
232
253
|
|
Binary file
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/lanes",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.594",
|
4
4
|
"homepage": "https://bit.dev/teambit/lanes/lanes",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.lanes",
|
8
8
|
"name": "lanes",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.594"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "2.4.2",
|
@@ -17,37 +17,39 @@
|
|
17
17
|
"core-js": "^3.0.0",
|
18
18
|
"@babel/runtime": "7.20.0",
|
19
19
|
"@teambit/harmony": "0.4.6",
|
20
|
+
"@teambit/scope.ui.scope-icon": "0.0.91",
|
20
21
|
"@teambit/bit-error": "0.0.402",
|
21
22
|
"@teambit/component-version": "0.0.408",
|
22
|
-
"@teambit/lane-id": "0.0.
|
23
|
-
"@teambit/scope": "0.0.
|
24
|
-
"@teambit/
|
25
|
-
"@teambit/
|
26
|
-
"@teambit/
|
27
|
-
"@teambit/
|
28
|
-
"@teambit/
|
29
|
-
"@teambit/
|
30
|
-
"@teambit/
|
31
|
-
"@teambit/component-
|
32
|
-
"@teambit/component": "0.0.
|
33
|
-
"@teambit/
|
34
|
-
"@teambit/
|
35
|
-
"@teambit/
|
36
|
-
"@teambit/lanes.
|
23
|
+
"@teambit/lane-id": "0.0.202",
|
24
|
+
"@teambit/scope": "0.0.1022",
|
25
|
+
"@teambit/snapping": "0.0.337",
|
26
|
+
"@teambit/lanes.ui.models.lanes-model": "0.0.110",
|
27
|
+
"@teambit/cli": "0.0.685",
|
28
|
+
"@teambit/workspace": "0.0.1022",
|
29
|
+
"@teambit/express": "0.0.783",
|
30
|
+
"@teambit/logger": "0.0.778",
|
31
|
+
"@teambit/graphql": "0.0.1022",
|
32
|
+
"@teambit/component-compare": "0.0.270",
|
33
|
+
"@teambit/component-writer": "0.0.58",
|
34
|
+
"@teambit/component": "0.0.1022",
|
35
|
+
"@teambit/export": "0.0.1022",
|
36
|
+
"@teambit/importer": "0.0.451",
|
37
|
+
"@teambit/lanes.entities.lane-diff": "0.0.47",
|
38
|
+
"@teambit/lanes.modules.diff": "0.0.320",
|
37
39
|
"@teambit/legacy-bit-id": "0.0.423",
|
38
|
-
"@teambit/merging": "0.0.
|
40
|
+
"@teambit/merging": "0.0.337",
|
39
41
|
"@teambit/design.ui.pages.not-found": "0.0.366",
|
40
|
-
"@teambit/lanes.hooks.use-lanes": "0.0.
|
41
|
-
"@teambit/lanes.hooks.use-viewed-lane-from-url": "0.0.
|
42
|
-
"@teambit/lanes.ui.compare.lane-compare-page": "0.0.
|
43
|
-
"@teambit/lanes.ui.compare.lane-compare": "0.0.
|
44
|
-
"@teambit/lanes.ui.lane-overview": "0.0.
|
42
|
+
"@teambit/lanes.hooks.use-lanes": "0.0.148",
|
43
|
+
"@teambit/lanes.hooks.use-viewed-lane-from-url": "0.0.110",
|
44
|
+
"@teambit/lanes.ui.compare.lane-compare-page": "0.0.50",
|
45
|
+
"@teambit/lanes.ui.compare.lane-compare": "0.0.66",
|
46
|
+
"@teambit/lanes.ui.lane-overview": "0.0.111",
|
45
47
|
"@teambit/lanes.ui.menus.lanes-overview-menu": "0.0.5",
|
46
|
-
"@teambit/lanes.ui.menus.use-lanes-menu": "0.0.
|
47
|
-
"@teambit/lanes.ui.navigation.lane-switcher": "0.0.
|
48
|
+
"@teambit/lanes.ui.menus.use-lanes-menu": "0.0.110",
|
49
|
+
"@teambit/lanes.ui.navigation.lane-switcher": "0.0.110",
|
48
50
|
"@teambit/ui-foundation.ui.menu": "0.0.497",
|
49
51
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.501",
|
50
|
-
"@teambit/ui": "0.0.
|
52
|
+
"@teambit/ui": "0.0.1022"
|
51
53
|
},
|
52
54
|
"devDependencies": {
|
53
55
|
"@types/react": "^17.0.8",
|
@@ -59,14 +61,13 @@
|
|
59
61
|
"@types/react-dom": "^17.0.5",
|
60
62
|
"@types/jest": "^26.0.0",
|
61
63
|
"@types/testing-library__jest-dom": "5.9.5",
|
62
|
-
"@teambit/component.testing.mock-components": "0.0.
|
63
|
-
"@teambit/harmony.testing.load-aspect": "0.0.
|
64
|
-
"@teambit/snapping": "0.0.335",
|
64
|
+
"@teambit/component.testing.mock-components": "0.0.49",
|
65
|
+
"@teambit/harmony.testing.load-aspect": "0.0.48",
|
65
66
|
"@teambit/workspace.testing.mock-workspace": "0.0.14"
|
66
67
|
},
|
67
68
|
"peerDependencies": {
|
68
69
|
"react-router-dom": "^6.0.0",
|
69
|
-
"@teambit/legacy": "1.0.
|
70
|
+
"@teambit/legacy": "1.0.465",
|
70
71
|
"react": "^16.8.0 || ^17.0.0",
|
71
72
|
"react-dom": "^16.8.0 || ^17.0.0"
|
72
73
|
},
|
Binary file
|