Meogic-tab-manager is an extensible, headless JavaScript tab manager framework.

Overview

MeogicTabManager

English document

MeogicTabManager是一个有可拓展性的、headless的JavaScript标签页管理框架。 MeogicTabManager旨在提供可自由组装页面框架、自定义页面组件、甚至覆盖框架自带事件响应的开发体验。 MeogicTabManager支持通过Vue、React、以及其它UI框架来注册显示各式各样的动态的标签页,同时还能响应全局变量的变化。

快速开始

npm install @meogic/tab-manager-vue --save

如何自定义标签页

参照UserTabNode

如果自定义标签组

参照ResizableTabGroupNode

自定义后如何注册

在初始化config中,添加对应的Node类,参照App.vue

开发注意

  1. 不要在事件响应的地方再调用tabManager.dispatchCommand来触发对应的响应,而是直接调用对应的方法。因为那样会导致很多不必要的update,最终导致tabManager.registerUpdateListener拿到的值不正确

数据结构

默认情况

root-node:
  - window-node
    - tab-group-node
      - tab-node

新开一个tab

root-node:
  - window-node
    - tab-group-node
      - tab-node
      - tab-node

切分窗口

root-node:
  - window-node
    - tab-group-node
      - tab-node
      - tab-node

切分窗口

root-node:
  - window-node
    - tab-group-node
      - tab-node
      - tab-node
    - tab-group-node
      - tab-node

继续切分窗口

root-node:
  - window-node
    - window-node
      - tab-group-node
        - tab-node
        - tab-node
      - tab-group-node
        - tab-node
    - tab-group-node
      - tab-node

给开发者

npm i --force
npm run dev

如何添加一个新的模块

  1. 在packages下新增子文件夹
  2. 将那个文件夹的信息添加到packages.js
  3. 将那个文件夹的信息添加到jest.config.js,以便你可以进行单元测试
  4. 将那个文件夹的信息添加到playwright.config.js,以便你可以进行端到端测试
  5. 将那个文件夹的信息添加到build.js,根据字母排序

如何运行测试

npm run test-unit
npm run test-e2e-chromium

如何发布

npm run release

License

MeogicTabManager is MIT licensed.

You might also like...

A lightweight, powerful and highly extensible templating engine. In the browser or on Node.js, with or without jQuery.

JsRender: best-of-breed templating Simple and intuitive, powerful and extensible, lightning fast For templated content in the browser or on Node.js (w

Jan 2, 2023

Complete, flexible, extensible and easy to use page transition library for your static web.

Complete, flexible, extensible and easy to use page transition library for your static web.

We're looking for maintainers! Complete, flexible, extensible and easy to use page transition library for your static web. Here's what's new in v2. Ch

Jan 2, 2023

A Versatile, Extensible Dapp Boilerplate built with Rainbowkit, Next.js, and Chakra-ui.

A Versatile, Extensible Dapp Boilerplate built with Rainbowkit, Next.js, and Chakra-ui.

rainplate • A Versatile, Extensible Dapp Boilerplate built with Rainbowkit, Next.js, and Chakra-ui. Getting Started Click use this template to create

Nov 22, 2022

Open, extensible, small and simple behaviour-graph execution engine

Behave-Graph Behave-Graph is a standalone library that implements the concept of "behavior graphs" as a portable TypeScript library with no external r

Dec 29, 2022

A devtool improve your pakage manager use experience no more care about what package manager is this repo use; one line, try all.

pi A devtool improve your pakage manager use experience no more care about what package manager is this repo use; one line, try all. Stargazers over t

Nov 1, 2022

Next-gen mobile first analytics server (think Mixpanel, Google Analytics) with built-in encryption supporting HTTP2 and gRPC. Node.js, headless, API-only, horizontally scaleable.

Next-gen mobile first analytics server (think Mixpanel, Google Analytics) with built-in encryption supporting HTTP2 and gRPC. Node.js, headless, API-only, horizontally scaleable.

Introduction to Awacs Next-gen behavior analysis server (think Mixpanel, Google Analytics) with built-in encryption supporting HTTP2 and gRPC. Node.js

Dec 19, 2022

Gatsby-blog-cosmicjs - 🚀⚡️ Blazing fast blog built with Gatsby and the Cosmic Headless CMS 🔥

Gatsby-blog-cosmicjs - 🚀⚡️ Blazing fast blog built with Gatsby and the Cosmic Headless CMS 🔥

Gatsby + Cosmic This repo contains an example blog website that is built with Gatsby, and Cosmic. See live demo hosted on Netlify Uses the Cosmic Gats

Jan 29, 2022

A plugin for Strapi Headless CMS that provides ability to sign-in/sign-up to an application by link had sent to email.

A plugin for Strapi Headless CMS that provides ability to sign-in/sign-up to an application by link had sent to email.

Strapi PasswordLess Plugin A plugin for Strapi Headless CMS that provides ability to sign-in/sign-up to an application by link had sent to email. A pl

Dec 12, 2022

Builder.io + Shopify Hydrogen - headless visual page building example

Builder.io + Shopify Hydrogen - headless visual page building example

Builder.io + Shopify Hydrogen - headless visual page building example Example repo using Builder.io for drag and drop page building with Shopify hydro

Oct 30, 2022
Owner
meogic-tech
meogic-tech
Lexical is an extensible JavaScript web text-editor framework with an emphasis on reliability, accessibility and performance

Lexical is an extensible JavaScript web text-editor framework with an emphasis on reliability, accessibility and performance. Lexical aims to provide a best-in-class developer experience, so you can easily prototype and build features with confidence.

Meta 12.7k Dec 30, 2022
A tab manager at your service.

Tab Butler Instructions Development Quick Start Prerequisites Node.js (tested on v18) NPM (tested on v8.6.0) Chrome (>= v88), has only been tested her

Mitchell Mark-George 32 Dec 14, 2022
LogTure - A minimal designed, fully customizable, and extensible modern personal blogging framework, built with Nextjs.

LogTure - A minimal designed, fully customizable, and extensible modern personal blogging framework, built with Nextjs.

Sam Zhang 14 Aug 26, 2022
Simple and Extensible Markdown Parser for Svelte, however its simplicity can be extended to any framework.

svelte-simple-markdown This is a fork of Simple-Markdown, modified to target Svelte, however due to separating the parsing and outputting steps, it ca

Dave Caruso 3 May 22, 2022
A powerful, extensible, customizable & rapidly develop hacking framework.

YourN3xt(Beta) A powerful, extensible, customizable & rapidly develop hacking framework. Installations Github: https://github.com/OTAKKATO/YourN3xt N

OTAK 4 Nov 21, 2022
Pintora is an extensible javascript text-to-diagrams library that works in both browser and Node.js.

Pintora Documentation | Live Editor Pintora is an extensible javascript text-to-diagrams library that works in both browser and Node.js. Expressing yo

hikerpig 652 Dec 30, 2022
A flexible and extensible javascript library for letters animation simulations.

LetterLoading LetterLoading js is a javascript library for making awesome letter simulations. It default simulation is a letter loading simulation. Co

kelvinsekx 5 Mar 22, 2022
Evaluate JavaScript on a URL through headless Chrome browser.

jseval Evaluate JavaScript on a URL through headless Chrome browser. build docker build -t jseval -f jseval.dockerfile . usage docker run --rm jseval

Fumiya A 22 Nov 29, 2022
Headless UI components without writing a single line of JavaScript.

Zerolines.js Headless UI components without writing a single line of JavaScript. See Oficial Site: Zerolines.js Components Tab Modal Dropdown Drawer O

null 8 Sep 29, 2022
🍰 An extensible, layer based shader material for ThreeJS

lamina ?? An extensible, layer based shader material for ThreeJS These demos are real, you can click them! They contain the full code, too. ?? More ex

Poimandres 811 Jan 6, 2023