@teambit/workspace 1.0.107 → 1.0.108
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/aspects-merger.ts +319 -0
- package/bit-map.ts +277 -0
- package/build-graph-from-fs.ts +188 -0
- package/build-graph-ids-from-fs.ts +216 -0
- package/capsule.cmd.ts +217 -0
- package/constants.ts +1 -0
- package/dist/aspects-merger.js +13 -22
- package/dist/aspects-merger.js.map +1 -1
- package/dist/bit-map.d.ts +1 -1
- package/dist/build-graph-from-fs.d.ts +2 -2
- package/dist/build-graph-from-fs.js +1 -2
- package/dist/build-graph-from-fs.js.map +1 -1
- package/dist/build-graph-ids-from-fs.js +1 -1
- package/dist/build-graph-ids-from-fs.js.map +1 -1
- package/dist/capsule.cmd.d.ts +2 -2
- package/dist/capsule.cmd.js +1 -2
- package/dist/capsule.cmd.js.map +1 -1
- package/dist/component-config-file/component-config-file.d.ts +2 -2
- package/dist/component-tree.widget.d.ts +2 -2
- package/dist/eject-conf.cmd.d.ts +2 -2
- package/dist/envs-subcommands/envs-replace.cmd.d.ts +1 -1
- package/dist/envs-subcommands/envs-set.cmd.d.ts +1 -1
- package/dist/envs-subcommands/envs-unset.cmd.d.ts +1 -1
- package/dist/envs-subcommands/envs-update.cmd.d.ts +1 -1
- package/dist/filter.d.ts +1 -1
- package/dist/filter.js +1 -1
- package/dist/filter.js.map +1 -1
- package/dist/merge-conflict-file.d.ts +1 -1
- package/dist/merge-conflict-file.js +1 -2
- package/dist/merge-conflict-file.js.map +1 -1
- package/dist/on-component-events.d.ts +6 -6
- package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
- package/dist/scope-subcommands/scope-set.cmd.d.ts +1 -1
- package/dist/ui/workspace/use-workspace.d.ts +8 -8
- package/dist/ui/workspace/use-workspace.js +7 -18
- package/dist/ui/workspace/use-workspace.js.map +1 -1
- package/dist/ui/workspace/workspace-model.d.ts +3 -3
- package/dist/ui/workspace/workspace-overview/workspace-overview.d.ts +2 -2
- package/dist/ui/workspace/workspace-overview/workspace-overview.js +1 -2
- package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
- package/dist/ui/workspace/workspace-provider.d.ts +3 -3
- package/dist/ui/workspace/workspace.d.ts +3 -3
- package/dist/workspace-aspects-loader.d.ts +3 -3
- package/dist/workspace-aspects-loader.js +7 -11
- package/dist/workspace-aspects-loader.js.map +1 -1
- package/dist/workspace-component/comp-files.d.ts +3 -3
- package/dist/workspace-component/component-status.d.ts +3 -3
- package/dist/workspace-component/workspace-component-loader.d.ts +5 -5
- package/dist/workspace-component/workspace-component-loader.js +11 -12
- package/dist/workspace-component/workspace-component-loader.js.map +1 -1
- package/dist/workspace.composition.d.ts +2 -2
- package/dist/workspace.d.ts +6 -6
- package/dist/workspace.graphql.d.ts +2 -2
- package/dist/workspace.graphql.js +2 -4
- package/dist/workspace.graphql.js.map +1 -1
- package/dist/workspace.js +16 -23
- package/dist/workspace.js.map +1 -1
- package/dist/workspace.provider.d.ts +12 -12
- package/dist/workspace.provider.js +8 -11
- package/dist/workspace.provider.js.map +1 -1
- package/dist/workspace.ui.drawer.d.ts +1 -1
- package/dist/workspace.ui.drawer.js +5 -6
- package/dist/workspace.ui.drawer.js.map +1 -1
- package/dist/workspace.ui.runtime.d.ts +1 -1
- package/dist/workspace.ui.runtime.js +2 -8
- package/dist/workspace.ui.runtime.js.map +1 -1
- package/eject-conf.cmd.ts +57 -0
- package/filter.ts +139 -0
- package/index.ts +22 -0
- package/merge-conflict-file.ts +129 -0
- package/on-component-events.ts +24 -0
- package/package.json +39 -46
- package/pattern.cmd.ts +53 -0
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
- package/types.ts +71 -0
- package/use.cmd.ts +25 -0
- package/workspace-aspects-loader.ts +885 -0
- package/workspace-section.ts +14 -0
- package/workspace.aspect.ts +9 -0
- package/workspace.graphql.ts +133 -0
- package/workspace.main.runtime.ts +56 -0
- package/workspace.provider.ts +282 -0
- package/workspace.ts +2014 -0
- package/workspace.ui-root.ts +65 -0
|
@@ -17,7 +17,7 @@ import { GlobalConfigMain } from '@teambit/global-config';
|
|
|
17
17
|
import { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';
|
|
18
18
|
import { WorkspaceExtConfig } from './types';
|
|
19
19
|
import { Workspace } from './workspace';
|
|
20
|
-
export
|
|
20
|
+
export type WorkspaceDeps = [
|
|
21
21
|
PubsubMain,
|
|
22
22
|
CLIMain,
|
|
23
23
|
ScopeMain,
|
|
@@ -33,16 +33,16 @@ export declare type WorkspaceDeps = [
|
|
|
33
33
|
EnvsMain,
|
|
34
34
|
GlobalConfigMain
|
|
35
35
|
];
|
|
36
|
-
export
|
|
37
|
-
export
|
|
38
|
-
export
|
|
39
|
-
export
|
|
40
|
-
export
|
|
41
|
-
export
|
|
42
|
-
export
|
|
43
|
-
export
|
|
44
|
-
export
|
|
45
|
-
export
|
|
36
|
+
export type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;
|
|
37
|
+
export type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;
|
|
38
|
+
export type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;
|
|
39
|
+
export type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;
|
|
40
|
+
export type OnBitmapChange = () => Promise<void>;
|
|
41
|
+
export type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;
|
|
42
|
+
export type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;
|
|
43
|
+
export type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;
|
|
44
|
+
export type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;
|
|
45
|
+
export type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;
|
|
46
46
|
export default function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs, globalConfig,]: WorkspaceDeps, config: WorkspaceExtConfig, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, onBitmapChangeSlot,]: [
|
|
47
47
|
OnComponentLoadSlot,
|
|
48
48
|
OnComponentChangeSlot,
|
|
@@ -51,4 +51,4 @@ export default function provideWorkspace([pubsub, cli, scope, component, isolato
|
|
|
51
51
|
OnAspectsResolveSlot,
|
|
52
52
|
OnRootAspectAddedSlot,
|
|
53
53
|
OnBitmapChangeSlot
|
|
54
|
-
], harmony: Harmony): Promise<Workspace
|
|
54
|
+
], harmony: Harmony): Promise<Workspace>;
|
|
@@ -132,7 +132,6 @@ function _envsUpdate() {
|
|
|
132
132
|
}
|
|
133
133
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
134
134
|
async function provideWorkspace([pubsub, cli, scope, component, isolator, dependencyResolver, variants, loggerExt, graphql, ui, bundler, aspectLoader, envs, globalConfig], config, [onComponentLoadSlot, onComponentChangeSlot, onComponentAddSlot, onComponentRemoveSlot, onAspectsResolveSlot, onRootAspectAddedSlot, onBitmapChangeSlot], harmony) {
|
|
135
|
-
var _envsCommand$commands, _envsCommand$commands2, _envsCommand$commands3, _envsCommand$commands4, _scopeCommand$command;
|
|
136
135
|
const bitConfig = harmony.config.get('teambit.harmony/bit');
|
|
137
136
|
const consumer = await getConsumer(bitConfig.cwd);
|
|
138
137
|
if (!consumer) {
|
|
@@ -146,15 +145,13 @@ async function provideWorkspace([pubsub, cli, scope, component, isolator, depend
|
|
|
146
145
|
const configMergeFile = workspace.getConflictMergeFile();
|
|
147
146
|
await configMergeFile.loadIfNeeded();
|
|
148
147
|
const getWorkspacePolicyFromPackageJson = () => {
|
|
149
|
-
|
|
150
|
-
const packageJson = ((_workspace$consumer$p = workspace.consumer.packageJson) === null || _workspace$consumer$p === void 0 ? void 0 : _workspace$consumer$p.packageJsonObject) || {};
|
|
148
|
+
const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};
|
|
151
149
|
const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);
|
|
152
150
|
return policyFromPackageJson;
|
|
153
151
|
};
|
|
154
152
|
const getWorkspacePolicyFromMergeConfig = () => {
|
|
155
|
-
var _wsConfigMerge$data;
|
|
156
153
|
const wsConfigMerge = workspace.getWorkspaceJsonConflictFromMergeConfig();
|
|
157
|
-
const policy =
|
|
154
|
+
const policy = wsConfigMerge.data?.[_dependencyResolver().DependencyResolverAspect.id]?.policy || {};
|
|
158
155
|
['dependencies', 'peerDependencies'].forEach(depField => {
|
|
159
156
|
if (!policy[depField]) return;
|
|
160
157
|
policy[depField] = policy[depField].reduce((acc, current) => {
|
|
@@ -173,7 +170,7 @@ async function provideWorkspace([pubsub, cli, scope, component, isolator, depend
|
|
|
173
170
|
dependencyResolver.registerRootPolicy(getRootPolicy());
|
|
174
171
|
consumer.onCacheClear.push(() => workspace.clearCache());
|
|
175
172
|
_componentLoader().default.registerOnComponentLoadSubscriber(async (legacyComponent, opts) => {
|
|
176
|
-
if (opts
|
|
173
|
+
if (opts?.originatedFromHarmony) return legacyComponent;
|
|
177
174
|
const id = await workspace.resolveComponentId(legacyComponent.id);
|
|
178
175
|
const newComponent = await workspace.get(id, legacyComponent, true, true, opts);
|
|
179
176
|
return newComponent.state._consumer;
|
|
@@ -234,14 +231,14 @@ async function provideWorkspace([pubsub, cli, scope, component, isolator, depend
|
|
|
234
231
|
|
|
235
232
|
// add sub-commands "set" and "unset" to envs command.
|
|
236
233
|
const envsCommand = cli.getCommand('envs');
|
|
237
|
-
envsCommand
|
|
238
|
-
envsCommand
|
|
239
|
-
envsCommand
|
|
240
|
-
envsCommand
|
|
234
|
+
envsCommand?.commands?.push(new (_envsSet().EnvsSetCmd)(workspace)); // bit envs set
|
|
235
|
+
envsCommand?.commands?.push(new (_envsUnset().EnvsUnsetCmd)(workspace)); // bit envs unset
|
|
236
|
+
envsCommand?.commands?.push(new (_envsReplace().EnvsReplaceCmd)(workspace)); // bit envs replace
|
|
237
|
+
envsCommand?.commands?.push(new (_envsUpdate().EnvsUpdateCmd)(workspace)); // bit envs replace
|
|
241
238
|
|
|
242
239
|
// add sub-command "set" to scope command.
|
|
243
240
|
const scopeCommand = cli.getCommand('scope');
|
|
244
|
-
scopeCommand
|
|
241
|
+
scopeCommand?.commands?.push(new (_scopeSet().ScopeSetCmd)(workspace));
|
|
245
242
|
return workspace;
|
|
246
243
|
}
|
|
247
244
|
function getCapsulesCommands(isolator, scope, workspace) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dependencyResolver","data","require","_consumer","_component","_interopRequireDefault","_extensionData","_componentLoader","_constants","_ejectConf","_workspace","_workspace2","_workspace3","_capsule","_envsSet","_envsUnset","_pattern","_envsReplace","_scopeSet","_use","_envsUpdate","obj","__esModule","default","provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","globalConfig","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","onBitmapChangeSlot","harmony","_envsCommand$commands","_envsCommand$commands2","_envsCommand$commands3","_envsCommand$commands4","_scopeCommand$command","bitConfig","get","consumer","getConsumer","cwd","capsuleCmd","getCapsulesCommands","undefined","register","logger","createLogger","EXT_NAME","workspace","Workspace","configMergeFile","getConflictMergeFile","loadIfNeeded","getWorkspacePolicyFromPackageJson","_workspace$consumer$p","packageJson","packageJsonObject","policyFromPackageJson","getWorkspacePolicyFromMergeConfig","_wsConfigMerge$data","wsConfigMerge","getWorkspaceJsonConflictFromMergeConfig","policy","DependencyResolverAspect","id","forEach","depField","reduce","acc","current","name","version","wsPolicy","getWorkspacePolicyFromConfigObject","getRootPolicy","pkgJsonPolicy","configMergePolicy","mergeWorkspacePolices","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","originatedFromHarmony","resolveComponentId","newComponent","state","ConsumerComponent","registerOnComponentConfigLoading","loadOpts","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","registerPreStart","setComponentPathsRegExps","commands","EjectConfCmd","UseCmd","PatternCommand","registerHost","registerOnStart","_hasWorkspace","currentCommand","inInstallContext","importCurrentLaneIfMissing","loadAspectsOpts","runSubscribers","skipDeps","autoLoadAspectsDeps","aspects","loadAspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","CapsuleCmd","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentConfigLoadOptions } from '@teambit/legacy/dist/consumer/config';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport LegacyComponentLoader, { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentID } from '@teambit/component-id';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n GlobalConfigMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnBitmapChange = () => Promise<void>;\nexport type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;\n\nexport type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;\nexport type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;\n\nexport type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;\nexport type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n globalConfig,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [\n onComponentLoadSlot,\n onComponentChangeSlot,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n onBitmapChangeSlot,\n ]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnAspectsResolveSlot,\n OnRootAspectAddedSlot,\n OnBitmapChangeSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) {\n const capsuleCmd = getCapsulesCommands(isolator, scope, undefined);\n cli.register(capsuleCmd);\n return undefined;\n }\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n globalConfig,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n graphql,\n onBitmapChangeSlot\n );\n\n const configMergeFile = workspace.getConflictMergeFile();\n await configMergeFile.loadIfNeeded();\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n const getWorkspacePolicyFromMergeConfig = () => {\n const wsConfigMerge = workspace.getWorkspaceJsonConflictFromMergeConfig();\n const policy = wsConfigMerge.data?.[DependencyResolverAspect.id]?.policy || {};\n ['dependencies', 'peerDependencies'].forEach((depField) => {\n if (!policy[depField]) return;\n policy[depField] = policy[depField].reduce((acc, current) => {\n acc[current.name] = current.version;\n return acc;\n }, {});\n });\n const wsPolicy = dependencyResolver.getWorkspacePolicyFromConfigObject(policy);\n return wsPolicy;\n };\n\n const getRootPolicy = () => {\n const pkgJsonPolicy = getWorkspacePolicyFromPackageJson();\n const configMergePolicy = getWorkspacePolicyFromMergeConfig();\n return dependencyResolver.mergeWorkspacePolices([pkgJsonPolicy, configMergePolicy]);\n };\n\n dependencyResolver.registerRootPolicy(getRootPolicy());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: ComponentLoadOptions) => {\n if (opts?.originatedFromHarmony) return legacyComponent;\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id, loadOpts: ComponentConfigLoadOptions) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope, undefined, loadOpts);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n legacyEntry.newExtensionId = legacyEntry.extensionId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n ui.registerPreStart(async () => {\n return workspace.setComponentPathsRegExps();\n });\n graphql.register(workspaceSchema);\n const capsuleCmd = getCapsulesCommands(isolator, scope, workspace);\n const commands: CommandList = [new EjectConfCmd(workspace), capsuleCmd, new UseCmd(workspace)];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async (_hasWorkspace: boolean, currentCommand: string) => {\n if (currentCommand === 'mini-status' || currentCommand === 'ms') {\n return; // mini-status should be super fast.\n }\n if (currentCommand === 'install') {\n workspace.inInstallContext = true;\n }\n await workspace.importCurrentLaneIfMissing();\n const loadAspectsOpts = {\n runSubscribers: false,\n skipDeps: !config.autoLoadAspectsDeps,\n };\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'teambit.workspace/workspace (cli.registerOnStart)',\n loadAspectsOpts\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\nfunction getCapsulesCommands(isolator: IsolatorMain, scope: ScopeMain, workspace?: Workspace) {\n const capsuleCmd = new CapsuleCmd(isolator, workspace, scope);\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace, scope),\n new CapsuleCreateCmd(workspace, scope, isolator),\n new CapsuleDeleteCmd(isolator, scope, workspace),\n ];\n return capsuleCmd;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_dependencyResolver","data","require","_consumer","_component","_interopRequireDefault","_extensionData","_componentLoader","_constants","_ejectConf","_workspace","_workspace2","_workspace3","_capsule","_envsSet","_envsUnset","_pattern","_envsReplace","_scopeSet","_use","_envsUpdate","obj","__esModule","default","provideWorkspace","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","globalConfig","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","onBitmapChangeSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","capsuleCmd","getCapsulesCommands","undefined","register","logger","createLogger","EXT_NAME","workspace","Workspace","configMergeFile","getConflictMergeFile","loadIfNeeded","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","getWorkspacePolicyFromMergeConfig","wsConfigMerge","getWorkspaceJsonConflictFromMergeConfig","policy","DependencyResolverAspect","id","forEach","depField","reduce","acc","current","name","version","wsPolicy","getWorkspacePolicyFromConfigObject","getRootPolicy","pkgJsonPolicy","configMergePolicy","mergeWorkspacePolices","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","originatedFromHarmony","resolveComponentId","newComponent","state","ConsumerComponent","registerOnComponentConfigLoading","loadOpts","componentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","registerPreStart","setComponentPathsRegExps","commands","EjectConfCmd","UseCmd","PatternCommand","registerHost","registerOnStart","_hasWorkspace","currentCommand","inInstallContext","importCurrentLaneIfMissing","loadAspectsOpts","runSubscribers","skipDeps","autoLoadAspectsDeps","aspects","loadAspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","CapsuleCmd","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","path","loadConsumerIfExist"],"sources":["workspace.provider.ts"],"sourcesContent":["import { PubsubMain } from '@teambit/pubsub';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BundlerMain } from '@teambit/bundler';\nimport { CLIMain, CommandList } from '@teambit/cli';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport { EnvsMain } from '@teambit/envs';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { LoggerMain } from '@teambit/logger';\nimport type { ScopeMain } from '@teambit/scope';\nimport { UiMain } from '@teambit/ui';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentConfigLoadOptions } from '@teambit/legacy/dist/consumer/config';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport LegacyComponentLoader, { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentID } from '@teambit/component-id';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { EXT_NAME } from './constants';\nimport EjectConfCmd from './eject-conf.cmd';\nimport { OnComponentLoad, OnComponentAdd, OnComponentChange, OnComponentRemove } from './on-component-events';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n GlobalConfigMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnBitmapChange = () => Promise<void>;\nexport type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;\n\nexport type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;\nexport type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;\n\nexport type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;\nexport type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;\n\nexport default async function provideWorkspace(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n globalConfig,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [\n onComponentLoadSlot,\n onComponentChangeSlot,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n onBitmapChangeSlot,\n ]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnAspectsResolveSlot,\n OnRootAspectAddedSlot,\n OnBitmapChangeSlot\n ],\n harmony: Harmony\n) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) {\n const capsuleCmd = getCapsulesCommands(isolator, scope, undefined);\n cli.register(capsuleCmd);\n return undefined;\n }\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n globalConfig,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n graphql,\n onBitmapChangeSlot\n );\n\n const configMergeFile = workspace.getConflictMergeFile();\n await configMergeFile.loadIfNeeded();\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n const getWorkspacePolicyFromMergeConfig = () => {\n const wsConfigMerge = workspace.getWorkspaceJsonConflictFromMergeConfig();\n const policy = wsConfigMerge.data?.[DependencyResolverAspect.id]?.policy || {};\n ['dependencies', 'peerDependencies'].forEach((depField) => {\n if (!policy[depField]) return;\n policy[depField] = policy[depField].reduce((acc, current) => {\n acc[current.name] = current.version;\n return acc;\n }, {});\n });\n const wsPolicy = dependencyResolver.getWorkspacePolicyFromConfigObject(policy);\n return wsPolicy;\n };\n\n const getRootPolicy = () => {\n const pkgJsonPolicy = getWorkspacePolicyFromPackageJson();\n const configMergePolicy = getWorkspacePolicyFromMergeConfig();\n return dependencyResolver.mergeWorkspacePolices([pkgJsonPolicy, configMergePolicy]);\n };\n\n dependencyResolver.registerRootPolicy(getRootPolicy());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: ComponentLoadOptions) => {\n if (opts?.originatedFromHarmony) return legacyComponent;\n const id = await workspace.resolveComponentId(legacyComponent.id);\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id, loadOpts: ComponentConfigLoadOptions) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope, undefined, loadOpts);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n legacyEntry.newExtensionId = legacyEntry.extensionId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n ui.registerPreStart(async () => {\n return workspace.setComponentPathsRegExps();\n });\n graphql.register(workspaceSchema);\n const capsuleCmd = getCapsulesCommands(isolator, scope, workspace);\n const commands: CommandList = [new EjectConfCmd(workspace), capsuleCmd, new UseCmd(workspace)];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async (_hasWorkspace: boolean, currentCommand: string) => {\n if (currentCommand === 'mini-status' || currentCommand === 'ms') {\n return; // mini-status should be super fast.\n }\n if (currentCommand === 'install') {\n workspace.inInstallContext = true;\n }\n await workspace.importCurrentLaneIfMissing();\n const loadAspectsOpts = {\n runSubscribers: false,\n skipDeps: !config.autoLoadAspectsDeps,\n };\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'teambit.workspace/workspace (cli.registerOnStart)',\n loadAspectsOpts\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n}\n\nfunction getCapsulesCommands(isolator: IsolatorMain, scope: ScopeMain, workspace?: Workspace) {\n const capsuleCmd = new CapsuleCmd(isolator, workspace, scope);\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace, scope),\n new CapsuleCreateCmd(workspace, scope, isolator),\n new CapsuleDeleteCmd(isolator, scope, workspace),\n ];\n return capsuleCmd;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentsDrawer, ComponentFiltersSlot, DrawerWidgetSlot } from '@teambit/component.ui.component-drawer';
|
|
2
2
|
import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
3
3
|
import { SidebarWidgetSlot } from './workspace.ui.runtime';
|
|
4
|
-
export
|
|
4
|
+
export type WorkspaceDrawerProps = {
|
|
5
5
|
treeWidgets: SidebarWidgetSlot;
|
|
6
6
|
filtersSlot: ComponentFiltersSlot;
|
|
7
7
|
drawerWidgetSlot: DrawerWidgetSlot;
|
|
@@ -89,15 +89,14 @@ const workspaceDrawer = ({
|
|
|
89
89
|
emptyMessage: 'Workspace is empty',
|
|
90
90
|
useLanes,
|
|
91
91
|
useComponents: () => {
|
|
92
|
-
var _lanesModel$viewedLan;
|
|
93
92
|
const {
|
|
94
93
|
lanesModel,
|
|
95
94
|
loading: lanesLoading
|
|
96
95
|
} = useLanes();
|
|
97
|
-
const viewedLaneId = lanesModel
|
|
98
|
-
const defaultLane = lanesModel
|
|
99
|
-
const isViewingDefaultLane = viewedLaneId &&
|
|
100
|
-
const isViewingWorkspaceVersions = lanesModel
|
|
96
|
+
const viewedLaneId = lanesModel?.viewedLane?.id;
|
|
97
|
+
const defaultLane = lanesModel?.getDefaultLane();
|
|
98
|
+
const isViewingDefaultLane = viewedLaneId && defaultLane?.id.isEqual(viewedLaneId);
|
|
99
|
+
const isViewingWorkspaceVersions = lanesModel?.isViewingCurrentLane();
|
|
101
100
|
const {
|
|
102
101
|
components: laneComponents = [],
|
|
103
102
|
loading: laneCompsLoading
|
|
@@ -105,7 +104,7 @@ const workspaceDrawer = ({
|
|
|
105
104
|
const {
|
|
106
105
|
components: mainComponents = [],
|
|
107
106
|
loading: mainCompsLoading
|
|
108
|
-
} = (0, _lanesHooks2().useLaneComponents)(defaultLane
|
|
107
|
+
} = (0, _lanesHooks2().useLaneComponents)(defaultLane?.id);
|
|
109
108
|
const workspace = (0, _react().useContext)(_workspaceContext().WorkspaceContext);
|
|
110
109
|
const {
|
|
111
110
|
components: workspaceComponents
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_componentUi","_uiFoundationUi","_lanesHooks","_lanesHooks2","_workspaceContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","workspaceDrawer","treeWidgets","filtersSlot","drawerWidgetSlot","overrideUseLanes","useLanesFromProps","useLanes","defaultUseLanesHook","ComponentsDrawer","order","id","name","plugins","tree","widgets","customRenderer","treeNodeSlot","TreeNode","props","children","node","createElement","ComponentView","payload","ScopePayload","ScopeTreeNode","NamespaceTreeNode","filters","drawerWidgets","emptyMessage","useComponents","_lanesModel$viewedLan","lanesModel","loading","lanesLoading","viewedLaneId","viewedLane","defaultLane","getDefaultLane","isViewingDefaultLane","isEqual","isViewingWorkspaceVersions","isViewingCurrentLane","components","laneComponents","laneCompsLoading","useLaneComponents","undefined","mainComponents","mainCompsLoading","workspace","useContext","WorkspaceContext","workspaceComponents","mergeComponents","exports","mainComponentsThatAreNotOnLane","filter","mainComponent","find","laneComponent","toStringWithoutVersion","concat"],"sources":["workspace.ui.drawer.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { ComponentsDrawer, ComponentFiltersSlot, DrawerWidgetSlot } from '@teambit/component.ui.component-drawer';\nimport {\n ComponentView,\n NamespaceTreeNode,\n PayloadType,\n ScopePayload,\n ScopeTreeNode,\n} from '@teambit/ui-foundation.ui.side-bar';\nimport { useLanes as defaultUseLanesHook } from '@teambit/lanes.hooks.use-lanes';\nimport { useLaneComponents } from '@teambit/lanes.hooks.use-lane-components';\nimport { TreeNodeProps } from '@teambit/design.ui.tree';\nimport { ComponentModel } from '@teambit/component';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { SidebarWidgetSlot } from './workspace.ui.runtime';\nimport { WorkspaceContext } from './ui/workspace/workspace-context';\n\nexport type WorkspaceDrawerProps = {\n treeWidgets: SidebarWidgetSlot;\n filtersSlot: ComponentFiltersSlot;\n drawerWidgetSlot: DrawerWidgetSlot;\n overrideUseLanes?: () => { lanesModel?: LanesModel; loading?: boolean };\n};\n\nexport const workspaceDrawer = ({\n treeWidgets,\n filtersSlot,\n drawerWidgetSlot,\n overrideUseLanes: useLanesFromProps,\n}: WorkspaceDrawerProps) => {\n const useLanes = useLanesFromProps || defaultUseLanesHook;\n\n return new ComponentsDrawer({\n order: 0,\n id: 'workspace-components-drawer',\n name: 'COMPONENTS',\n plugins: {\n tree: {\n widgets: treeWidgets,\n customRenderer: (treeNodeSlot) =>\n function TreeNode(props: TreeNodeProps<PayloadType>) {\n const children = props.node.children;\n\n if (!children) {\n // non collapse\n return (\n <ComponentView\n {...props}\n treeNodeSlot={treeNodeSlot}\n /**\n * this is a hack to get around incompatible component id b/w the new sidebar and components in this workspace\n * the new sidebar has been tagged with the new LanesModel component which has been upgraded to a new major component id version\n * which makes it incompatible with all other components in this workspace\n *\n * hopefully when wave gets released it becomes seamless to update all dependents for a given version\n */\n useLanes={useLanes as any}\n />\n );\n }\n\n if (props.node.payload instanceof ScopePayload) return <ScopeTreeNode {...props} />;\n\n return <NamespaceTreeNode {...props} />;\n },\n },\n filters: filtersSlot,\n drawerWidgets: drawerWidgetSlot,\n },\n emptyMessage: 'Workspace is empty',\n useLanes,\n useComponents: () => {\n const { lanesModel, loading: lanesLoading } = useLanes();\n\n const viewedLaneId = lanesModel?.viewedLane?.id;\n const defaultLane = lanesModel?.getDefaultLane();\n const isViewingDefaultLane = viewedLaneId && defaultLane?.id.isEqual(viewedLaneId);\n\n const isViewingWorkspaceVersions = lanesModel?.isViewingCurrentLane();\n\n const { components: laneComponents = [], loading: laneCompsLoading } = useLaneComponents(\n !isViewingWorkspaceVersions ? viewedLaneId : undefined\n );\n\n const { components: mainComponents = [], loading: mainCompsLoading } = useLaneComponents(defaultLane?.id);\n\n const workspace = useContext(WorkspaceContext);\n const { components: workspaceComponents } = workspace;\n\n const loading = lanesLoading || laneCompsLoading || mainCompsLoading;\n\n /**\n * if viewing locally checked out lane, return all components from the workspace\n * when viewing main when locally checked out to another lane, explicitly return components from the \"main\" lane\n * when viewing another lane when locally checked out to a different lane, return \"main\" + \"lane\" components\n * */\n if (isViewingWorkspaceVersions) {\n return {\n loading,\n components: workspaceComponents,\n };\n }\n\n if (isViewingDefaultLane) {\n return {\n loading,\n components: mainComponents,\n };\n }\n\n return {\n loading,\n components: mergeComponents(mainComponents, laneComponents),\n };\n },\n });\n};\n\nfunction mergeComponents(mainComponents: ComponentModel[], laneComponents: ComponentModel[]): ComponentModel[] {\n const mainComponentsThatAreNotOnLane = mainComponents.filter((mainComponent) => {\n return !laneComponents.find(\n (laneComponent) => laneComponent.id.toStringWithoutVersion() === mainComponent.id.toStringWithoutVersion()\n );\n });\n return laneComponents.concat(mainComponentsThatAreNotOnLane);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_componentUi","_uiFoundationUi","_lanesHooks","_lanesHooks2","_workspaceContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","workspaceDrawer","treeWidgets","filtersSlot","drawerWidgetSlot","overrideUseLanes","useLanesFromProps","useLanes","defaultUseLanesHook","ComponentsDrawer","order","id","name","plugins","tree","widgets","customRenderer","treeNodeSlot","TreeNode","props","children","node","createElement","ComponentView","payload","ScopePayload","ScopeTreeNode","NamespaceTreeNode","filters","drawerWidgets","emptyMessage","useComponents","lanesModel","loading","lanesLoading","viewedLaneId","viewedLane","defaultLane","getDefaultLane","isViewingDefaultLane","isEqual","isViewingWorkspaceVersions","isViewingCurrentLane","components","laneComponents","laneCompsLoading","useLaneComponents","undefined","mainComponents","mainCompsLoading","workspace","useContext","WorkspaceContext","workspaceComponents","mergeComponents","exports","mainComponentsThatAreNotOnLane","filter","mainComponent","find","laneComponent","toStringWithoutVersion","concat"],"sources":["workspace.ui.drawer.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { ComponentsDrawer, ComponentFiltersSlot, DrawerWidgetSlot } from '@teambit/component.ui.component-drawer';\nimport {\n ComponentView,\n NamespaceTreeNode,\n PayloadType,\n ScopePayload,\n ScopeTreeNode,\n} from '@teambit/ui-foundation.ui.side-bar';\nimport { useLanes as defaultUseLanesHook } from '@teambit/lanes.hooks.use-lanes';\nimport { useLaneComponents } from '@teambit/lanes.hooks.use-lane-components';\nimport { TreeNodeProps } from '@teambit/design.ui.tree';\nimport { ComponentModel } from '@teambit/component';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { SidebarWidgetSlot } from './workspace.ui.runtime';\nimport { WorkspaceContext } from './ui/workspace/workspace-context';\n\nexport type WorkspaceDrawerProps = {\n treeWidgets: SidebarWidgetSlot;\n filtersSlot: ComponentFiltersSlot;\n drawerWidgetSlot: DrawerWidgetSlot;\n overrideUseLanes?: () => { lanesModel?: LanesModel; loading?: boolean };\n};\n\nexport const workspaceDrawer = ({\n treeWidgets,\n filtersSlot,\n drawerWidgetSlot,\n overrideUseLanes: useLanesFromProps,\n}: WorkspaceDrawerProps) => {\n const useLanes = useLanesFromProps || defaultUseLanesHook;\n\n return new ComponentsDrawer({\n order: 0,\n id: 'workspace-components-drawer',\n name: 'COMPONENTS',\n plugins: {\n tree: {\n widgets: treeWidgets,\n customRenderer: (treeNodeSlot) =>\n function TreeNode(props: TreeNodeProps<PayloadType>) {\n const children = props.node.children;\n\n if (!children) {\n // non collapse\n return (\n <ComponentView\n {...props}\n treeNodeSlot={treeNodeSlot}\n /**\n * this is a hack to get around incompatible component id b/w the new sidebar and components in this workspace\n * the new sidebar has been tagged with the new LanesModel component which has been upgraded to a new major component id version\n * which makes it incompatible with all other components in this workspace\n *\n * hopefully when wave gets released it becomes seamless to update all dependents for a given version\n */\n useLanes={useLanes as any}\n />\n );\n }\n\n if (props.node.payload instanceof ScopePayload) return <ScopeTreeNode {...props} />;\n\n return <NamespaceTreeNode {...props} />;\n },\n },\n filters: filtersSlot,\n drawerWidgets: drawerWidgetSlot,\n },\n emptyMessage: 'Workspace is empty',\n useLanes,\n useComponents: () => {\n const { lanesModel, loading: lanesLoading } = useLanes();\n\n const viewedLaneId = lanesModel?.viewedLane?.id;\n const defaultLane = lanesModel?.getDefaultLane();\n const isViewingDefaultLane = viewedLaneId && defaultLane?.id.isEqual(viewedLaneId);\n\n const isViewingWorkspaceVersions = lanesModel?.isViewingCurrentLane();\n\n const { components: laneComponents = [], loading: laneCompsLoading } = useLaneComponents(\n !isViewingWorkspaceVersions ? viewedLaneId : undefined\n );\n\n const { components: mainComponents = [], loading: mainCompsLoading } = useLaneComponents(defaultLane?.id);\n\n const workspace = useContext(WorkspaceContext);\n const { components: workspaceComponents } = workspace;\n\n const loading = lanesLoading || laneCompsLoading || mainCompsLoading;\n\n /**\n * if viewing locally checked out lane, return all components from the workspace\n * when viewing main when locally checked out to another lane, explicitly return components from the \"main\" lane\n * when viewing another lane when locally checked out to a different lane, return \"main\" + \"lane\" components\n * */\n if (isViewingWorkspaceVersions) {\n return {\n loading,\n components: workspaceComponents,\n };\n }\n\n if (isViewingDefaultLane) {\n return {\n loading,\n components: mainComponents,\n };\n }\n\n return {\n loading,\n components: mergeComponents(mainComponents, laneComponents),\n };\n },\n });\n};\n\nfunction mergeComponents(mainComponents: ComponentModel[], laneComponents: ComponentModel[]): ComponentModel[] {\n const mainComponentsThatAreNotOnLane = mainComponents.filter((mainComponent) => {\n return !laneComponents.find(\n (laneComponent) => laneComponent.id.toStringWithoutVersion() === mainComponent.id.toStringWithoutVersion()\n );\n });\n return laneComponents.concat(mainComponentsThatAreNotOnLane);\n}\n"],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { CommandBarUI } from '@teambit/command-bar';
|
|
|
12
12
|
import type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
|
|
13
13
|
import { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';
|
|
14
14
|
import { DrawerWidgetSlot, ComponentFiltersSlot } from '@teambit/component.ui.component-drawer';
|
|
15
|
-
export
|
|
15
|
+
export type SidebarWidgetSlot = SlotRegistry<ComponentTreeNode>;
|
|
16
16
|
export declare class WorkspaceUI {
|
|
17
17
|
/**
|
|
18
18
|
* route slot.
|
|
@@ -196,18 +196,12 @@ class WorkspaceUI {
|
|
|
196
196
|
category: 'general',
|
|
197
197
|
title: 'Open command bar',
|
|
198
198
|
keyChar: 'mod+k',
|
|
199
|
-
handler: () =>
|
|
200
|
-
var _this$commandBarUI;
|
|
201
|
-
return (_this$commandBarUI = this.commandBarUI) === null || _this$commandBarUI === void 0 ? void 0 : _this$commandBarUI.run('command-bar.open');
|
|
202
|
-
}
|
|
199
|
+
handler: () => this.commandBarUI?.run('command-bar.open')
|
|
203
200
|
}, {
|
|
204
201
|
category: 'general',
|
|
205
202
|
title: 'Toggle component list',
|
|
206
203
|
keyChar: 'alt+s',
|
|
207
|
-
handler: () =>
|
|
208
|
-
var _this$commandBarUI2;
|
|
209
|
-
return (_this$commandBarUI2 = this.commandBarUI) === null || _this$commandBarUI2 === void 0 ? void 0 : _this$commandBarUI2.run('sidebar.toggle');
|
|
210
|
-
}
|
|
204
|
+
handler: () => this.commandBarUI?.run('sidebar.toggle')
|
|
211
205
|
}]);
|
|
212
206
|
}
|
|
213
207
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_component","data","require","_lodash","_componentTree","_harmony","_uiFoundationUi","_sidebar","_interopRequireDefault","_ui","_graph","_react","_commandBar","_designUiSurfacesMenu","_componentUiComponentFilters","_componentUiComponentFilters2","_componentUiComponentFilters3","_componentUi","_componentTree2","_ui2","_workspace","_workspaceUi","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","WorkspaceUI","constructor","routeSlot","componentUi","menuSlot","menuItemSlot","sidebar","sidebarSlot","sidebarItemSlot","drawerWidgetSlot","drawerComponentsFiltersSlot","commandBarUI","menuItems","register","routes","components","updateComponents","links","filters","widgets","category","title","keyChar","handler","_this$commandBarUI","run","_this$commandBarUI2","registerRoutes","registerDrawers","drawers","registerDrawer","registerSidebarWidget","componentTreeNode","uiRoot","workspaceDrawer","treeWidgets","filtersSlot","setKeyBindHandler","addCommand","id","action","displayName","keybinding","path","element","createElement","Workspace","render","items","listSidebarItems","workspaceUI","onSidebarTogglerChange","flatten","values","compact","map","item","component","provider","ui","componentTree","graphUI","config","registerTreeNode","ComponentTreeWidget","registerComponentWidget","widget","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","ShowMainFilter","registerDrawerWidgets","FilterWidget","TreeToggleWidget","registerRoot","bind","registerMenuItem","registerSidebarLink","Gallery","MenuLinkItem","exact","href","icon","registerMenuRoutes","Menu","routePath","getMenu","WorkspaceAspect","getComponentUI","exports","UIAspect","ComponentAspect","SidebarAspect","ComponentTreeAspect","CommandBarAspect","GraphAspect","UIRuntime","Slot","withType","_default","addRuntime"],"sources":["workspace.ui.runtime.tsx"],"sourcesContent":["import { ComponentAspect, ComponentUI, ComponentModel } from '@teambit/component';\nimport { compact, flatten } from 'lodash';\nimport { ComponentTreeAspect, ComponentTreeUI, ComponentTreeNode } from '@teambit/component-tree';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Menu } from '@teambit/ui-foundation.ui.menu';\nimport SidebarAspect, { SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { UIAspect, UIRootUI as UIRoot, UIRuntime, UiUI } from '@teambit/ui';\nimport { GraphAspect, GraphUI } from '@teambit/graph';\nimport React, { ReactNode } from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport CommandBarAspect, { CommandBarUI, CommandHandler } from '@teambit/command-bar';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';\nimport { DeprecateFilter } from '@teambit/component.ui.component-filters.deprecate-filter';\nimport { EnvsFilter } from '@teambit/component.ui.component-filters.env-filter';\nimport { ShowMainFilter } from '@teambit/component.ui.component-filters.show-main-filter';\nimport {\n DrawerWidgetSlot,\n FilterWidget,\n TreeToggleWidget,\n ComponentFiltersSlot,\n} from '@teambit/component.ui.component-drawer';\nimport { ComponentTreeWidget } from './component-tree.widget';\nimport { Workspace } from './ui';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport { workspaceDrawer } from './workspace.ui.drawer';\n\nexport type SidebarWidgetSlot = SlotRegistry<ComponentTreeNode>;\n\nexport class WorkspaceUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private menuItemSlot: MenuItemSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n private drawerWidgetSlot: DrawerWidgetSlot,\n\n private drawerComponentsFiltersSlot: ComponentFiltersSlot,\n\n private commandBarUI: CommandBarUI\n ) {}\n\n private setKeyBindHandler: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a route to the workspace.\n */\n registerRoutes(routes: RouteProps[]) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerDrawers(...drawers: DrawerType[]) {\n this.sidebar.registerDrawer(...drawers);\n return this;\n }\n\n registerSidebarWidget(componentTreeNode: ComponentTreeNode) {\n this.sidebarSlot.register(componentTreeNode);\n return this;\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n registerMenuRoutes = (routes: RouteProps[]) => {\n this.menuSlot.register(routes);\n return this;\n };\n\n setComponents = (components: ComponentModel[]) => {\n this.componentUi.updateComponents(components);\n };\n\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n /**\n * register component filters\n */\n registerDrawerComponentFilters = (filters: ComponentFilters) => {\n this.drawerComponentsFiltersSlot.register(filters);\n };\n\n registerDrawerWidgets = (widgets: ReactNode[]) => {\n this.drawerWidgetSlot.register(widgets);\n };\n\n uiRoot(): UIRoot {\n this.registerDrawers(\n workspaceDrawer({\n treeWidgets: this.sidebarSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n })\n );\n\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n action: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setKeyBindHandler = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/*',\n element: (\n <Workspace\n menuSlot={this.menuSlot}\n routeSlot={this.routeSlot}\n sidebar={<this.sidebar.render items={this.listSidebarItems()} />}\n workspaceUI={this}\n onSidebarTogglerChange={this.setKeyBindHandler}\n />\n ),\n },\n ],\n };\n }\n\n listSidebarItems() {\n const items = flatten(this.sidebarItemSlot.values());\n return compact(\n items.map((item) => {\n return item.component;\n })\n );\n }\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [UIAspect, ComponentAspect, SidebarAspect, ComponentTreeAspect, CommandBarAspect, GraphAspect];\n\n static runtime = UIRuntime;\n\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<SidebarItemSlot>(),\n Slot.withType<DrawerWidgetSlot>(),\n Slot.withType<ComponentFiltersSlot>(),\n ];\n\n static async provider(\n [ui, componentUi, sidebar, componentTree, commandBarUI, graphUI]: [\n UiUI,\n ComponentUI,\n SidebarUI,\n ComponentTreeUI,\n CommandBarUI,\n GraphUI\n ],\n config,\n [routeSlot, menuSlot, menuItemSlot, sidebarSlot, sidebarItemSlot, drawerWidgetSlot, drawerComponentsFiltersSlot]: [\n RouteSlot,\n RouteSlot,\n MenuItemSlot,\n SidebarWidgetSlot,\n SidebarItemSlot,\n DrawerWidgetSlot,\n ComponentFiltersSlot\n ]\n ) {\n componentTree.registerTreeNode(new ComponentTreeWidget());\n sidebarSlot.register(new ComponentTreeWidget());\n graphUI.registerComponentWidget(new ComponentTreeWidget().widget);\n\n const workspaceUI = new WorkspaceUI(\n routeSlot,\n componentUi,\n menuSlot,\n menuItemSlot,\n sidebar,\n sidebarSlot,\n sidebarItemSlot,\n drawerWidgetSlot,\n drawerComponentsFiltersSlot,\n commandBarUI\n );\n\n workspaceUI.registerDrawerComponentFilters([DeprecateFilter, EnvsFilter, ShowMainFilter(true)]);\n workspaceUI.registerDrawerWidgets([\n <FilterWidget key={'workspace-filter-widget'} />,\n <TreeToggleWidget key={'workspace-tree-toggle-widget'} />,\n ]);\n ui.registerRoot(workspaceUI.uiRoot.bind(workspaceUI));\n workspaceUI.registerMenuItem(workspaceUI.menuItems);\n\n workspaceUI.registerSidebarLink({\n component: function Gallery() {\n return (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Workspace overview\n </MenuLinkItem>\n );\n },\n });\n\n workspaceUI.registerMenuRoutes([\n {\n path: '/',\n element: <Menu menuItemSlot={workspaceUI.menuItemSlot} />,\n },\n {\n path: workspaceUI.componentUi.routePath,\n element: workspaceUI.componentUi.getMenu(WorkspaceAspect.id),\n },\n ]);\n\n workspaceUI.registerRoutes([\n {\n path: workspaceUI.componentUi.routePath,\n element: workspaceUI.componentUi.getComponentUI(WorkspaceAspect.id),\n },\n ]);\n\n return workspaceUI;\n }\n}\n\nexport default WorkspaceUI;\n\nWorkspaceAspect.addRuntime(WorkspaceUI);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_component","data","require","_lodash","_componentTree","_harmony","_uiFoundationUi","_sidebar","_interopRequireDefault","_ui","_graph","_react","_commandBar","_designUiSurfacesMenu","_componentUiComponentFilters","_componentUiComponentFilters2","_componentUiComponentFilters3","_componentUi","_componentTree2","_ui2","_workspace","_workspaceUi","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","WorkspaceUI","constructor","routeSlot","componentUi","menuSlot","menuItemSlot","sidebar","sidebarSlot","sidebarItemSlot","drawerWidgetSlot","drawerComponentsFiltersSlot","commandBarUI","menuItems","register","routes","components","updateComponents","links","filters","widgets","category","title","keyChar","handler","run","registerRoutes","registerDrawers","drawers","registerDrawer","registerSidebarWidget","componentTreeNode","uiRoot","workspaceDrawer","treeWidgets","filtersSlot","setKeyBindHandler","addCommand","id","action","displayName","keybinding","path","element","createElement","Workspace","render","items","listSidebarItems","workspaceUI","onSidebarTogglerChange","flatten","values","compact","map","item","component","provider","ui","componentTree","graphUI","config","registerTreeNode","ComponentTreeWidget","registerComponentWidget","widget","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","ShowMainFilter","registerDrawerWidgets","FilterWidget","TreeToggleWidget","registerRoot","bind","registerMenuItem","registerSidebarLink","Gallery","MenuLinkItem","exact","href","icon","registerMenuRoutes","Menu","routePath","getMenu","WorkspaceAspect","getComponentUI","exports","UIAspect","ComponentAspect","SidebarAspect","ComponentTreeAspect","CommandBarAspect","GraphAspect","UIRuntime","Slot","withType","_default","addRuntime"],"sources":["workspace.ui.runtime.tsx"],"sourcesContent":["import { ComponentAspect, ComponentUI, ComponentModel } from '@teambit/component';\nimport { compact, flatten } from 'lodash';\nimport { ComponentTreeAspect, ComponentTreeUI, ComponentTreeNode } from '@teambit/component-tree';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Menu } from '@teambit/ui-foundation.ui.menu';\nimport SidebarAspect, { SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { UIAspect, UIRootUI as UIRoot, UIRuntime, UiUI } from '@teambit/ui';\nimport { GraphAspect, GraphUI } from '@teambit/graph';\nimport React, { ReactNode } from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport CommandBarAspect, { CommandBarUI, CommandHandler } from '@teambit/command-bar';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';\nimport { DeprecateFilter } from '@teambit/component.ui.component-filters.deprecate-filter';\nimport { EnvsFilter } from '@teambit/component.ui.component-filters.env-filter';\nimport { ShowMainFilter } from '@teambit/component.ui.component-filters.show-main-filter';\nimport {\n DrawerWidgetSlot,\n FilterWidget,\n TreeToggleWidget,\n ComponentFiltersSlot,\n} from '@teambit/component.ui.component-drawer';\nimport { ComponentTreeWidget } from './component-tree.widget';\nimport { Workspace } from './ui';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport { workspaceDrawer } from './workspace.ui.drawer';\n\nexport type SidebarWidgetSlot = SlotRegistry<ComponentTreeNode>;\n\nexport class WorkspaceUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private menuItemSlot: MenuItemSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n private drawerWidgetSlot: DrawerWidgetSlot,\n\n private drawerComponentsFiltersSlot: ComponentFiltersSlot,\n\n private commandBarUI: CommandBarUI\n ) {}\n\n private setKeyBindHandler: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a route to the workspace.\n */\n registerRoutes(routes: RouteProps[]) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerDrawers(...drawers: DrawerType[]) {\n this.sidebar.registerDrawer(...drawers);\n return this;\n }\n\n registerSidebarWidget(componentTreeNode: ComponentTreeNode) {\n this.sidebarSlot.register(componentTreeNode);\n return this;\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n registerMenuRoutes = (routes: RouteProps[]) => {\n this.menuSlot.register(routes);\n return this;\n };\n\n setComponents = (components: ComponentModel[]) => {\n this.componentUi.updateComponents(components);\n };\n\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n /**\n * register component filters\n */\n registerDrawerComponentFilters = (filters: ComponentFilters) => {\n this.drawerComponentsFiltersSlot.register(filters);\n };\n\n registerDrawerWidgets = (widgets: ReactNode[]) => {\n this.drawerWidgetSlot.register(widgets);\n };\n\n uiRoot(): UIRoot {\n this.registerDrawers(\n workspaceDrawer({\n treeWidgets: this.sidebarSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n })\n );\n\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n action: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setKeyBindHandler = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/*',\n element: (\n <Workspace\n menuSlot={this.menuSlot}\n routeSlot={this.routeSlot}\n sidebar={<this.sidebar.render items={this.listSidebarItems()} />}\n workspaceUI={this}\n onSidebarTogglerChange={this.setKeyBindHandler}\n />\n ),\n },\n ],\n };\n }\n\n listSidebarItems() {\n const items = flatten(this.sidebarItemSlot.values());\n return compact(\n items.map((item) => {\n return item.component;\n })\n );\n }\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [UIAspect, ComponentAspect, SidebarAspect, ComponentTreeAspect, CommandBarAspect, GraphAspect];\n\n static runtime = UIRuntime;\n\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<SidebarItemSlot>(),\n Slot.withType<DrawerWidgetSlot>(),\n Slot.withType<ComponentFiltersSlot>(),\n ];\n\n static async provider(\n [ui, componentUi, sidebar, componentTree, commandBarUI, graphUI]: [\n UiUI,\n ComponentUI,\n SidebarUI,\n ComponentTreeUI,\n CommandBarUI,\n GraphUI\n ],\n config,\n [routeSlot, menuSlot, menuItemSlot, sidebarSlot, sidebarItemSlot, drawerWidgetSlot, drawerComponentsFiltersSlot]: [\n RouteSlot,\n RouteSlot,\n MenuItemSlot,\n SidebarWidgetSlot,\n SidebarItemSlot,\n DrawerWidgetSlot,\n ComponentFiltersSlot\n ]\n ) {\n componentTree.registerTreeNode(new ComponentTreeWidget());\n sidebarSlot.register(new ComponentTreeWidget());\n graphUI.registerComponentWidget(new ComponentTreeWidget().widget);\n\n const workspaceUI = new WorkspaceUI(\n routeSlot,\n componentUi,\n menuSlot,\n menuItemSlot,\n sidebar,\n sidebarSlot,\n sidebarItemSlot,\n drawerWidgetSlot,\n drawerComponentsFiltersSlot,\n commandBarUI\n );\n\n workspaceUI.registerDrawerComponentFilters([DeprecateFilter, EnvsFilter, ShowMainFilter(true)]);\n workspaceUI.registerDrawerWidgets([\n <FilterWidget key={'workspace-filter-widget'} />,\n <TreeToggleWidget key={'workspace-tree-toggle-widget'} />,\n ]);\n ui.registerRoot(workspaceUI.uiRoot.bind(workspaceUI));\n workspaceUI.registerMenuItem(workspaceUI.menuItems);\n\n workspaceUI.registerSidebarLink({\n component: function Gallery() {\n return (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Workspace overview\n </MenuLinkItem>\n );\n },\n });\n\n workspaceUI.registerMenuRoutes([\n {\n path: '/',\n element: <Menu menuItemSlot={workspaceUI.menuItemSlot} />,\n },\n {\n path: workspaceUI.componentUi.routePath,\n element: workspaceUI.componentUi.getMenu(WorkspaceAspect.id),\n },\n ]);\n\n workspaceUI.registerRoutes([\n {\n path: workspaceUI.componentUi.routePath,\n element: workspaceUI.componentUi.getComponentUI(WorkspaceAspect.id),\n },\n ]);\n\n return workspaceUI;\n }\n}\n\nexport default WorkspaceUI;\n\nWorkspaceAspect.addRuntime(WorkspaceUI);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { PATTERN_HELP } from '@teambit/legacy/dist/constants';
|
|
5
|
+
|
|
6
|
+
import { EjectConfOptions, EjectConfResult, Workspace } from './workspace';
|
|
7
|
+
|
|
8
|
+
type EjectConfArgs = [string];
|
|
9
|
+
// From the cli we might get those as string in case we run it like --propagate true (return string) as opposed to only --propagate
|
|
10
|
+
type EjectConfOptionsCLI = {
|
|
11
|
+
propagate: string | boolean | undefined;
|
|
12
|
+
override: string | boolean | undefined;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default class EjectConfCmd implements Command {
|
|
16
|
+
name = 'eject-conf <pattern>';
|
|
17
|
+
description = 'eject components configuration (create a `component.json` file)';
|
|
18
|
+
extendedDescription = `note this can be reversed at any time by snapping/tagging changes and deleting the component.json file \n${PATTERN_HELP(
|
|
19
|
+
'eject-conf'
|
|
20
|
+
)}`;
|
|
21
|
+
alias = '';
|
|
22
|
+
group = 'development';
|
|
23
|
+
options = [
|
|
24
|
+
[
|
|
25
|
+
'p',
|
|
26
|
+
'propagate',
|
|
27
|
+
'mark propagate true in the config file, so that component.json configs will be merge with workspace configs',
|
|
28
|
+
],
|
|
29
|
+
['o', 'override', 'override file if exist'],
|
|
30
|
+
] as CommandOptions;
|
|
31
|
+
|
|
32
|
+
constructor(private workspace: Workspace) {}
|
|
33
|
+
|
|
34
|
+
async report(args: EjectConfArgs, options: EjectConfOptionsCLI): Promise<string> {
|
|
35
|
+
const ejectResult = await this.json(args, options);
|
|
36
|
+
const paths = ejectResult
|
|
37
|
+
.map((result) => result.configPath)
|
|
38
|
+
.map((p) => path.relative(this.workspace.path, p))
|
|
39
|
+
.join('\n');
|
|
40
|
+
return chalk.green(`successfully ejected config to the following path(s)
|
|
41
|
+
${chalk.bold(paths)}`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async json([pattern]: EjectConfArgs, options: EjectConfOptionsCLI): Promise<EjectConfResult[]> {
|
|
45
|
+
const ejectOptions = options;
|
|
46
|
+
if (ejectOptions.propagate === 'true') {
|
|
47
|
+
ejectOptions.propagate = true;
|
|
48
|
+
}
|
|
49
|
+
if (ejectOptions.override === 'true') {
|
|
50
|
+
ejectOptions.override = true;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const componentIds = await this.workspace.idsByPattern(pattern);
|
|
54
|
+
const results = await this.workspace.ejectMultipleConfigs(componentIds, ejectOptions as EjectConfOptions);
|
|
55
|
+
return results;
|
|
56
|
+
}
|
|
57
|
+
}
|