@teambit/workspace 1.0.106 → 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.
Files changed (86) hide show
  1. package/aspects-merger.ts +319 -0
  2. package/bit-map.ts +277 -0
  3. package/build-graph-from-fs.ts +188 -0
  4. package/build-graph-ids-from-fs.ts +216 -0
  5. package/capsule.cmd.ts +217 -0
  6. package/constants.ts +1 -0
  7. package/dist/aspects-merger.js +13 -22
  8. package/dist/aspects-merger.js.map +1 -1
  9. package/dist/bit-map.d.ts +1 -1
  10. package/dist/build-graph-from-fs.d.ts +2 -2
  11. package/dist/build-graph-from-fs.js +1 -2
  12. package/dist/build-graph-from-fs.js.map +1 -1
  13. package/dist/build-graph-ids-from-fs.js +1 -1
  14. package/dist/build-graph-ids-from-fs.js.map +1 -1
  15. package/dist/capsule.cmd.d.ts +2 -2
  16. package/dist/capsule.cmd.js +1 -2
  17. package/dist/capsule.cmd.js.map +1 -1
  18. package/dist/component-config-file/component-config-file.d.ts +2 -2
  19. package/dist/component-tree.widget.d.ts +2 -2
  20. package/dist/eject-conf.cmd.d.ts +2 -2
  21. package/dist/envs-subcommands/envs-replace.cmd.d.ts +1 -1
  22. package/dist/envs-subcommands/envs-set.cmd.d.ts +1 -1
  23. package/dist/envs-subcommands/envs-unset.cmd.d.ts +1 -1
  24. package/dist/envs-subcommands/envs-update.cmd.d.ts +1 -1
  25. package/dist/filter.d.ts +1 -1
  26. package/dist/filter.js +1 -1
  27. package/dist/filter.js.map +1 -1
  28. package/dist/merge-conflict-file.d.ts +1 -1
  29. package/dist/merge-conflict-file.js +1 -2
  30. package/dist/merge-conflict-file.js.map +1 -1
  31. package/dist/on-component-events.d.ts +6 -6
  32. package/dist/{preview-1703505948637.js → preview-1703647408454.js} +2 -2
  33. package/dist/scope-subcommands/scope-set.cmd.d.ts +1 -1
  34. package/dist/ui/workspace/use-workspace.d.ts +8 -8
  35. package/dist/ui/workspace/use-workspace.js +7 -18
  36. package/dist/ui/workspace/use-workspace.js.map +1 -1
  37. package/dist/ui/workspace/workspace-model.d.ts +3 -3
  38. package/dist/ui/workspace/workspace-overview/workspace-overview.d.ts +2 -2
  39. package/dist/ui/workspace/workspace-overview/workspace-overview.js +1 -2
  40. package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
  41. package/dist/ui/workspace/workspace-provider.d.ts +3 -3
  42. package/dist/ui/workspace/workspace.d.ts +3 -3
  43. package/dist/workspace-aspects-loader.d.ts +3 -3
  44. package/dist/workspace-aspects-loader.js +7 -11
  45. package/dist/workspace-aspects-loader.js.map +1 -1
  46. package/dist/workspace-component/comp-files.d.ts +3 -3
  47. package/dist/workspace-component/component-status.d.ts +3 -3
  48. package/dist/workspace-component/workspace-component-loader.d.ts +5 -5
  49. package/dist/workspace-component/workspace-component-loader.js +31 -28
  50. package/dist/workspace-component/workspace-component-loader.js.map +1 -1
  51. package/dist/workspace.composition.d.ts +2 -2
  52. package/dist/workspace.d.ts +6 -6
  53. package/dist/workspace.graphql.d.ts +2 -2
  54. package/dist/workspace.graphql.js +2 -4
  55. package/dist/workspace.graphql.js.map +1 -1
  56. package/dist/workspace.js +16 -23
  57. package/dist/workspace.js.map +1 -1
  58. package/dist/workspace.provider.d.ts +12 -12
  59. package/dist/workspace.provider.js +8 -11
  60. package/dist/workspace.provider.js.map +1 -1
  61. package/dist/workspace.ui.drawer.d.ts +1 -1
  62. package/dist/workspace.ui.drawer.js +5 -6
  63. package/dist/workspace.ui.drawer.js.map +1 -1
  64. package/dist/workspace.ui.runtime.d.ts +1 -1
  65. package/dist/workspace.ui.runtime.js +2 -8
  66. package/dist/workspace.ui.runtime.js.map +1 -1
  67. package/eject-conf.cmd.ts +57 -0
  68. package/filter.ts +139 -0
  69. package/index.ts +22 -0
  70. package/merge-conflict-file.ts +129 -0
  71. package/on-component-events.ts +24 -0
  72. package/package.json +39 -46
  73. package/pattern.cmd.ts +53 -0
  74. package/tsconfig.json +16 -21
  75. package/types/asset.d.ts +15 -3
  76. package/types.ts +71 -0
  77. package/use.cmd.ts +25 -0
  78. package/workspace-aspects-loader.ts +885 -0
  79. package/workspace-component/workspace-component-loader.ts +25 -16
  80. package/workspace-section.ts +14 -0
  81. package/workspace.aspect.ts +9 -0
  82. package/workspace.graphql.ts +133 -0
  83. package/workspace.main.runtime.ts +56 -0
  84. package/workspace.provider.ts +282 -0
  85. package/workspace.ts +2014 -0
  86. 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 declare type WorkspaceDeps = [
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 declare type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;
37
- export declare type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;
38
- export declare type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;
39
- export declare type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;
40
- export declare type OnBitmapChange = () => Promise<void>;
41
- export declare type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;
42
- export declare type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;
43
- export declare type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;
44
- export declare type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;
45
- export declare type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;
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 | undefined>;
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
- var _workspace$consumer$p;
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 = ((_wsConfigMerge$data = wsConfigMerge.data) === null || _wsConfigMerge$data === void 0 || (_wsConfigMerge$data = _wsConfigMerge$data[_dependencyResolver().DependencyResolverAspect.id]) === null || _wsConfigMerge$data === void 0 ? void 0 : _wsConfigMerge$data.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 !== null && opts !== void 0 && opts.originatedFromHarmony) return legacyComponent;
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 === null || envsCommand === void 0 || (_envsCommand$commands = envsCommand.commands) === null || _envsCommand$commands === void 0 || _envsCommand$commands.push(new (_envsSet().EnvsSetCmd)(workspace)); // bit envs set
238
- envsCommand === null || envsCommand === void 0 || (_envsCommand$commands2 = envsCommand.commands) === null || _envsCommand$commands2 === void 0 || _envsCommand$commands2.push(new (_envsUnset().EnvsUnsetCmd)(workspace)); // bit envs unset
239
- envsCommand === null || envsCommand === void 0 || (_envsCommand$commands3 = envsCommand.commands) === null || _envsCommand$commands3 === void 0 || _envsCommand$commands3.push(new (_envsReplace().EnvsReplaceCmd)(workspace)); // bit envs replace
240
- envsCommand === null || envsCommand === void 0 || (_envsCommand$commands4 = envsCommand.commands) === null || _envsCommand$commands4 === void 0 || _envsCommand$commands4.push(new (_envsUpdate().EnvsUpdateCmd)(workspace)); // bit envs replace
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 === null || scopeCommand === void 0 || (_scopeCommand$command = scopeCommand.commands) === null || _scopeCommand$command === void 0 || _scopeCommand$command.push(new (_scopeSet().ScopeSetCmd)(workspace));
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 declare type WorkspaceDrawerProps = {
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 === null || lanesModel === void 0 || (_lanesModel$viewedLan = lanesModel.viewedLane) === null || _lanesModel$viewedLan === void 0 ? void 0 : _lanesModel$viewedLan.id;
98
- const defaultLane = lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.getDefaultLane();
99
- const isViewingDefaultLane = viewedLaneId && (defaultLane === null || defaultLane === void 0 ? void 0 : defaultLane.id.isEqual(viewedLaneId));
100
- const isViewingWorkspaceVersions = lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.isViewingCurrentLane();
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 === null || defaultLane === void 0 ? void 0 : defaultLane.id);
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 declare type SidebarWidgetSlot = SlotRegistry<ComponentTreeNode>;
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
+ }