@nu-art/work-hub-frontend 0.401.8 → 0.500.0

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.
@@ -1,6 +1,6 @@
1
1
  import { Logger } from '@nu-art/ts-common';
2
2
  import { MouseEvent, ReactNode } from 'react';
3
- import { ModuleFE_BaseDB } from '@nu-art/thunderstorm-frontend';
3
+ import { ModuleFE_BaseDB } from '@nu-art/db-api-frontend';
4
4
  import { WorkHubTab } from '@nu-art/work-hub-shared';
5
5
  import { WorkHubItem_MenuSection } from '../_ui/Component_WorkHubActionMenu/types.js';
6
6
  type MenuResolver = (tab: WorkHubTab) => (Promise<WorkHubItem_MenuSection[]> | WorkHubItem_MenuSection[]);
@@ -7,7 +7,6 @@ export class WorkHubItem extends Logger {
7
7
  renderer;
8
8
  tabTag;
9
9
  customMenuActionsResolver;
10
- // ######################## Builder ########################
11
10
  constructor(key) {
12
11
  super(`WorkHubItem_${key}`);
13
12
  this.key = key;
@@ -31,7 +30,6 @@ export class WorkHubItem extends Logger {
31
30
  this.customMenuActionsResolver = resolver;
32
31
  return this;
33
32
  };
34
- // ######################## Public Methods ########################
35
33
  openTab = (id, label, args) => {
36
34
  ModuleFE_WorkHub.tabs.add(this.prepareTab(id, label, args));
37
35
  };
@@ -1,7 +1,10 @@
1
1
  import { Module } from '@nu-art/ts-common';
2
2
  import { ModuleFE_WorkHub_GroupActions, ModuleFE_WorkHub_TabActions } from './types.js';
3
3
  import { WorkHubItem } from '../../_core/work-hub-item.js';
4
+ import { ModuleFE_PermissionMapper } from '@nu-art/permissions-frontend';
5
+ import { PermissionKeys_WorkHubUI } from '@nu-art/work-hub-shared';
4
6
  declare class ModuleFE_WorkHub_Class extends Module {
7
+ readonly permissions: ModuleFE_PermissionMapper<typeof PermissionKeys_WorkHubUI>;
5
8
  constructor();
6
9
  private readonly _tabs;
7
10
  private readonly _tabStack;
@@ -1,14 +1,18 @@
1
1
  import { BadImplementationException, filterInstances, lastElement, mergeObject, Module, removeFromArrayByIndex, removeItemFromArray } from '@nu-art/ts-common';
2
2
  import { isWorkHubTab, isWorkHubTabGroup } from '@nu-art/work-hub-shared';
3
3
  import { dispatch_OnWorkHubTabSelected, dispatch_OnWorkHubTabsUpdated } from '../../dispatchers.js';
4
- import { StorageKey } from '@nu-art/thunderstorm-frontend';
4
+ import { StorageKey } from '@nu-art/thunder-core';
5
5
  import { workHubTabGroupColors } from '../../_ui/Component_WorkHub_Header/renderers/Component_WorkHub_TabGroup/consts.js';
6
+ import { PermissionKey_FE } from '@nu-art/permissions-frontend';
7
+ import { PermissionKeys_WorkHubUI } from '@nu-art/work-hub-shared';
6
8
  class ModuleFE_WorkHub_Class extends Module {
9
+ permissions;
7
10
  constructor() {
8
11
  super();
9
12
  this._tabs = this.storage_tabs.get([]);
10
13
  this._tabStack = this.storage_tabStack.get([]);
11
14
  this._workHubItemMap = {};
15
+ this.permissions = PermissionKey_FE.generatePermissionKeysByLevels(PermissionKeys_WorkHubUI);
12
16
  }
13
17
  //######################### Class Properties #########################
14
18
  _tabs;
@@ -1,4 +1,4 @@
1
- import { ComponentSync } from '@nu-art/thunderstorm-frontend';
1
+ import { ComponentSync } from '@nu-art/thunder-widgets';
2
2
  import './Component_WorkHub.scss';
3
3
  import { WorkHubTab, WorkHubTabGroup } from '@nu-art/work-hub-shared';
4
4
  import { OnWorkHubTabs } from '../../dispatchers.js';
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ComponentSync, LL_V_L } from '@nu-art/thunderstorm-frontend';
2
+ import { ComponentSync, LL_V_L } from '@nu-art/thunder-widgets';
3
3
  import './Component_WorkHub.scss';
4
4
  import { ModuleFE_WorkHub } from '../../_module/index.js';
5
5
  import { Component_WorkHub_Header } from '../Component_WorkHub_Header/Component_WorkHub_Header.js';
@@ -1,5 +1,5 @@
1
1
  import { MouseEvent } from 'react';
2
- import { ComponentSync } from '@nu-art/thunderstorm-frontend';
2
+ import { ComponentSync } from '@nu-art/thunder-widgets';
3
3
  import { WorkHubItem_MenuSection } from './types.js';
4
4
  import './Component_WorkHubActionMenu.scss';
5
5
  type Props = {
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Fragment } from 'react';
3
- import { _className, Button, ComponentSync, LL_H_C, LL_V_L, ModuleFE_MouseInteractivity, mouseInteractivity_PopUp } from '@nu-art/thunderstorm-frontend';
3
+ import { _className } from '@nu-art/thunder-core';
4
+ import { Button, ComponentSync, LL_H_C, LL_V_L } from '@nu-art/thunder-widgets';
5
+ import { ModuleFE_MouseInteractivity, mouseInteractivity_PopUp } from '@nu-art/thunder-mouse-interactivity-frontend';
4
6
  import { ModuleFE_WorkHub } from '../../_module/index.js';
5
7
  import './Component_WorkHubActionMenu.scss';
6
8
  import { TS_Icons } from '@nu-art/ts-styles';
7
9
  import { generateHex } from '@nu-art/ts-common';
8
10
  import { isWorkHubTabGroup } from '@nu-art/work-hub-shared';
9
11
  export class Component_WorkHubActionMenu extends ComponentSync {
10
- // ######################## Static ########################
11
12
  static show = (e, props) => {
12
13
  const model = {
13
14
  id: 'work-hub-action-menu',
@@ -17,7 +18,6 @@ export class Component_WorkHubActionMenu extends ComponentSync {
17
18
  };
18
19
  ModuleFE_MouseInteractivity.showContent(model);
19
20
  };
20
- // ######################## Logic ########################
21
21
  generateGeneralSection = () => {
22
22
  const currentGroupKey = ModuleFE_WorkHub.group.getKeyForTabId(this.props.tabId);
23
23
  const availableGroups = ModuleFE_WorkHub.tabs.get().filter(i => isWorkHubTabGroup(i) && i.groupKey !== currentGroupKey);
@@ -54,7 +54,6 @@ export class Component_WorkHubActionMenu extends ComponentSync {
54
54
  closeMenu = () => {
55
55
  ModuleFE_MouseInteractivity.hide(mouseInteractivity_PopUp);
56
56
  };
57
- // ######################## Render ########################
58
57
  render() {
59
58
  const sections = this.getSections();
60
59
  return sections.map(this.render_Section);
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { LL_H_C } from '@nu-art/thunderstorm-frontend';
2
+ import { LL_H_C } from '@nu-art/thunder-widgets';
3
3
  import { isWorkHubTabGroup } from '@nu-art/work-hub-shared';
4
4
  import './Component_WorkHub_Header.scss';
5
5
  import { Component_WorkHub_Tab } from './renderers/Component_WorkHub_Tab/Component_WorkHub_Tab.js';
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import './Component_WorkHub_Tab.scss';
3
- import { _className, LL_H_C } from '@nu-art/thunderstorm-frontend';
3
+ import { _className } from '@nu-art/thunder-core';
4
+ import { LL_H_C } from '@nu-art/thunder-widgets';
4
5
  import { exists } from '@nu-art/ts-common';
5
6
  import { ModuleFE_WorkHub } from '../../../../_module/index.js';
6
7
  const onTabMouseDown = (e, tabId) => {
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { LL_H_C, TS_CollapsableContainerV2 } from '@nu-art/thunderstorm-frontend';
2
+ import { LL_H_C, TS_CollapsableContainer } from '@nu-art/thunder-widgets';
3
3
  import { Component_WorkHub_Tab } from '../Component_WorkHub_Tab/Component_WorkHub_Tab.js';
4
4
  import './Component_WorkHub_TabGroup.scss';
5
5
  import { Component_WorkHub_TabGroupMenu } from '../Component_WorkHub_TabGroupMenu/Component_WorkHub_TabGroupMenu.js';
6
6
  import { ModuleFE_WorkHub } from '../../../../_module/index.js';
7
7
  export const Component_WorkHub_TabGroup = (props) => {
8
8
  const style = { '--color-fg': props.group.color.foreground, '--color-bg': props.group.color.background };
9
- return _jsx(TS_CollapsableContainerV2, { className: 'c__work-hub-tab-group', style: style, animated: true, forceUpdate: true, onCollapseToggle: () => {
9
+ return _jsx(TS_CollapsableContainer, { className: 'c__work-hub-tab-group', style: style, animated: true, forceUpdate: true, onCollapseToggle: () => {
10
10
  ModuleFE_WorkHub.group.update(props.group.groupKey, { collapsed: !props.group.collapsed });
11
11
  }, collapsed: props.group.collapsed, headerRenderer: () => props.group.label, onHeaderRightClick: e => Component_WorkHub_TabGroupMenu.show(e, props.group.groupKey), containerRenderer: () => _jsx(LL_H_C, { children: props.group.tabs.map(tab => _jsx(Component_WorkHub_Tab, { tab: tab, selected: tab.id === props.selectedTabId }, tab.id)) }) });
12
12
  };
@@ -1,4 +1,5 @@
1
- import { ComponentSync, EditableItem } from '@nu-art/thunderstorm-frontend';
1
+ import { EditableItem } from '@nu-art/editable-item';
2
+ import { ComponentSync } from '@nu-art/thunder-widgets';
2
3
  import { WorkHubTabGroup } from '@nu-art/work-hub-shared';
3
4
  import { MouseEvent } from 'react';
4
5
  import './Component_WorkHub_TabGroupMenu.scss';
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ComponentSync, EditableItem, LL_H_C, ModuleFE_MouseInteractivity, TS_Input } from '@nu-art/thunderstorm-frontend';
2
+ import { EditableItem } from '@nu-art/editable-item';
3
+ import { ComponentSync, LL_H_C, TS_Input } from '@nu-art/thunder-widgets';
4
+ import { ModuleFE_MouseInteractivity } from '@nu-art/thunder-mouse-interactivity-frontend';
3
5
  import { createRef } from 'react';
4
6
  import { ModuleFE_WorkHub } from '../../../../_module/index.js';
5
7
  import { BadImplementationException, compare } from '@nu-art/ts-common';
@@ -7,7 +9,6 @@ import './Component_WorkHub_TabGroupMenu.scss';
7
9
  import { workHubTabGroupColors } from '../Component_WorkHub_TabGroup/consts.js';
8
10
  export class Component_WorkHub_TabGroupMenu extends ComponentSync {
9
11
  inputRef = createRef();
10
- // ######################## Static ########################
11
12
  static show = (e, groupKey) => {
12
13
  const group = ModuleFE_WorkHub.group.get(groupKey);
13
14
  if (!group)
@@ -22,7 +23,6 @@ export class Component_WorkHub_TabGroupMenu extends ComponentSync {
22
23
  };
23
24
  ModuleFE_MouseInteractivity.showContent(model);
24
25
  };
25
- // ######################## Life Cycle ########################
26
26
  deriveStateFromProps(nextProps, state) {
27
27
  state.group = this.getEditable(nextProps.group);
28
28
  return state;
@@ -33,7 +33,6 @@ export class Component_WorkHub_TabGroupMenu extends ComponentSync {
33
33
  componentDidUpdate() {
34
34
  this.inputRef.current?.focus();
35
35
  }
36
- // ######################## Logic ########################
37
36
  getEditable(group) {
38
37
  return new EditableItem(group)
39
38
  .setOnChanged(async () => this.forceUpdate())
@@ -43,7 +42,6 @@ export class Component_WorkHub_TabGroupMenu extends ComponentSync {
43
42
  })
44
43
  .setAutoSave(true);
45
44
  }
46
- // ######################## Render ########################
47
45
  render() {
48
46
  return _jsxs(_Fragment, { children: [this.render_Label(), this.render_Color()] });
49
47
  }
@@ -1,6 +1,6 @@
1
1
  import { WorkHubTab } from '@nu-art/work-hub-shared';
2
2
  import './Component_WorkHub_TabContent.scss';
3
- import { ComponentSync } from '@nu-art/thunderstorm-frontend';
3
+ import { ComponentSync } from '@nu-art/thunder-widgets';
4
4
  import { WorkHubItem } from '../../_core/work-hub-item.js';
5
5
  import { OnWorkHubTabs } from '../../dispatchers.js';
6
6
  type Props = {
@@ -19,7 +19,5 @@ export declare class Component_WorkHub_TabContent extends ComponentSync<Props, S
19
19
  componentDidMount(): void;
20
20
  componentDidUpdate(): void;
21
21
  render(): import("react/jsx-runtime").JSX.Element;
22
- private renderAsync;
23
- private renderSync;
24
22
  }
25
23
  export {};
@@ -2,11 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createRef } from 'react';
3
3
  import { ModuleFE_WorkHub } from '../../_module/index.js';
4
4
  import './Component_WorkHub_TabContent.scss';
5
- import { AwaitModules, ComponentSync, TS_ErrorBoundary } from '@nu-art/thunderstorm-frontend';
5
+ import { ComponentSync, TS_ErrorBoundary } from '@nu-art/thunder-widgets';
6
6
  import { voidFunction } from '@nu-art/ts-common';
7
7
  export class Component_WorkHub_TabContent extends ComponentSync {
8
8
  ref = createRef();
9
- // ######################## Life Cycle ########################
10
9
  __onWorkHubTabsUpdated = () => {
11
10
  this.reDeriveState();
12
11
  };
@@ -24,19 +23,10 @@ export class Component_WorkHub_TabContent extends ComponentSync {
24
23
  componentDidUpdate() {
25
24
  this.ref.current?.focus();
26
25
  }
27
- // ######################## Render ########################
26
+ // Await-modules is up-level per user-account pattern (Component_AccountThumbnail); no AwaitModules wrapper here.
28
27
  render() {
29
- if (this.state.item.modulesToAwait?.length)
30
- return this.renderAsync();
31
- return this.renderSync();
32
- }
33
- renderAsync = () => {
34
28
  const item = this.state.item;
35
29
  const tab = this.state.tab;
36
- return _jsx("div", { className: 'c__work-hub-tab-content', ref: this.ref, tabIndex: 0, children: _jsx(AwaitModules, { modules: item.modulesToAwait, children: _jsx(TS_ErrorBoundary, { children: item.renderer(item, tab.id, tab.renderArgs) }) }) });
37
- };
38
- renderSync = () => {
39
- const item = this.state.item;
40
- return _jsx("div", { className: 'c__work-hub-tab-content', ref: this.ref, tabIndex: 0, children: _jsx(TS_ErrorBoundary, { children: item.renderer(item, this.state.tab.id, this.state.renderArgs) }) });
41
- };
30
+ return _jsx("div", { className: 'c__work-hub-tab-content', ref: this.ref, tabIndex: 0, children: _jsx(TS_ErrorBoundary, { children: item.renderer(item, tab.id, this.state.renderArgs) }) });
31
+ }
42
32
  }
package/dispatchers.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ThunderDispatcher } from '@nu-art/thunderstorm-frontend';
1
+ import { ThunderDispatcher } from '@nu-art/thunder-core';
2
2
  export interface OnWorkHubTabs {
3
3
  __onWorkHubTabsUpdated: VoidFunction;
4
4
  __onWorkHubTabSelected: VoidFunction;
package/dispatchers.js CHANGED
@@ -1,3 +1,3 @@
1
- import { ThunderDispatcher } from '@nu-art/thunderstorm-frontend';
1
+ import { ThunderDispatcher } from '@nu-art/thunder-core';
2
2
  export const dispatch_OnWorkHubTabsUpdated = new ThunderDispatcher('__onWorkHubTabsUpdated');
3
3
  export const dispatch_OnWorkHubTabSelected = new ThunderDispatcher('__onWorkHubTabSelected');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nu-art/work-hub-frontend",
3
- "version": "0.401.8",
3
+ "version": "0.500.0",
4
4
  "description": "TS WorkHub Frontend",
5
5
  "keywords": [
6
6
  "TacB0sS",
@@ -21,11 +21,16 @@
21
21
  "linkDirectory": true
22
22
  },
23
23
  "dependencies": {
24
- "@nu-art/work-hub-shared": "0.401.8",
25
- "@nu-art/ts-common": "0.401.8",
26
- "@nu-art/ts-styles": "0.401.8",
27
- "@nu-art/thunderstorm-shared": "0.401.8",
28
- "@nu-art/thunderstorm-frontend": "0.401.8",
24
+ "@nu-art/work-hub-shared": "0.500.0",
25
+ "@nu-art/ts-common": "0.500.0",
26
+ "@nu-art/ts-styles": "0.500.0",
27
+ "@nu-art/db-api-frontend": "0.500.0",
28
+ "@nu-art/editable-item": "{{THUNDERSTORM_VERSION}}",
29
+ "@nu-art/thunder-core": "{{THUNDERSTORM_VERSION}}",
30
+ "@nu-art/thunder-mouse-interactivity-frontend": "{{THUNDERSTORM_VERSION}}",
31
+ "@nu-art/thunder-widgets": "{{THUNDERSTORM_VERSION}}",
32
+ "@nu-art/permissions-frontend": "0.500.0",
33
+ "@nu-art/permissions-shared": "0.500.0",
29
34
  "react": "^18.0.0"
30
35
  },
31
36
  "devDependencies": {