mirror of
https://github.com/zen-browser/components.git
synced 2025-07-08 05:09:57 +02:00
feat: Remove unused code and update types
This commit is contained in:
parent
6ad0e99b54
commit
8d0d7b3902
9 changed files with 106 additions and 135 deletions
|
@ -5,15 +5,12 @@
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
"build": "webpack --mode production"
|
"check": "tsc"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"ts-loader": "^9.5.1",
|
"typescript": "^5.5.4"
|
||||||
"typescript": "^5.5.4",
|
|
||||||
"webpack": "^5.93.0",
|
|
||||||
"webpack-cli": "^5.1.4"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
import { Config } from "./config";
|
|
||||||
|
|
||||||
export default class Component {
|
|
||||||
readonly config: Config;
|
|
||||||
|
|
||||||
constructor(config: Config) {
|
|
||||||
this.config = config;
|
|
||||||
}
|
|
||||||
|
|
||||||
log(message: string) {
|
|
||||||
if (this.config.debug) {
|
|
||||||
console.log(this.config.browserName + ': ' + message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
0
src/common/config.ts → src/common/index.d.ts
vendored
0
src/common/config.ts → src/common/index.d.ts
vendored
|
@ -1,2 +0,0 @@
|
||||||
|
|
||||||
export * from './split-views';
|
|
|
@ -1,85 +0,0 @@
|
||||||
|
|
||||||
import Component from '../common/component';
|
|
||||||
import { SplitViewConfig, SplitView, SplitType } from './types';
|
|
||||||
|
|
||||||
class SplitViewsBase extends Component {
|
|
||||||
data: SplitView[];
|
|
||||||
currentView: number;
|
|
||||||
|
|
||||||
constructor(config: SplitViewConfig) {
|
|
||||||
super(config);
|
|
||||||
this.data = [];
|
|
||||||
this.currentView = -1;
|
|
||||||
this.addEventListeners();
|
|
||||||
this.log('SplitViewsBase initialized');
|
|
||||||
}
|
|
||||||
|
|
||||||
get viewConfig() {
|
|
||||||
return this.config as SplitViewConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
addEventListeners() {
|
|
||||||
window.addEventListener('TabClose', this);
|
|
||||||
}
|
|
||||||
|
|
||||||
handleEvent(event: Event) {
|
|
||||||
switch (event.type) {
|
|
||||||
case 'TabClose':
|
|
||||||
this.onTabClose(event as CustomEvent);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onTabClose(event: CustomEvent) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public get isActivated() {
|
|
||||||
return this.currentView !== -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
get activeView() {
|
|
||||||
if (!this.isActivated) {
|
|
||||||
throw new Error('No active view');
|
|
||||||
}
|
|
||||||
return this.data[this.currentView];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
declare global {
|
|
||||||
interface Window {
|
|
||||||
gSplitViewsComponent: typeof SplitViewsBase;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Public API exposed by the module
|
|
||||||
window.gSplitViewsComponent = class extends SplitViewsBase {
|
|
||||||
constructor(config: SplitViewConfig) {
|
|
||||||
super(config);
|
|
||||||
}
|
|
||||||
|
|
||||||
public onLocationChange(browser: MockedExports.Browser) {
|
|
||||||
this.log('onLocationChange');
|
|
||||||
}
|
|
||||||
|
|
||||||
public tileCurrentView(type: SplitType) {
|
|
||||||
this.log('tileCurrentView');
|
|
||||||
}
|
|
||||||
|
|
||||||
public closeCurrentView() {
|
|
||||||
this.log('closeCurrentView');
|
|
||||||
}
|
|
||||||
|
|
||||||
public tabIsInActiveView(tab: MockedExports.BrowserTab) {
|
|
||||||
this.log('tabIsInActiveView');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public getActiveViewTabs() {
|
|
||||||
this.log('getActiveViewTabs');
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
public createSplitView(tabs: MockedExports.BrowserTab[], type: SplitType = this.viewConfig.defaultSplitView) {
|
|
||||||
this.log('createSplitView');
|
|
||||||
}
|
|
||||||
};
|
|
98
src/splitViews.mjs
Normal file
98
src/splitViews.mjs
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
|
||||||
|
class SplitViewsBase {
|
||||||
|
/**
|
||||||
|
* @param {SplitViewConfig} config
|
||||||
|
* @param {SplitViewData[]} data
|
||||||
|
* @param {number} currentView
|
||||||
|
* @param {SplitViewConfig} config
|
||||||
|
*/
|
||||||
|
constructor(config) {
|
||||||
|
this.config = config.awd;
|
||||||
|
this.data = [];
|
||||||
|
this.currentView = -1;
|
||||||
|
this.addEventListeners();
|
||||||
|
this.log('SplitViewsBase initialized');
|
||||||
|
}
|
||||||
|
|
||||||
|
addEventListeners() {
|
||||||
|
window.addEventListener('TabClose', this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Event} event
|
||||||
|
*/
|
||||||
|
handleEvent(event) {
|
||||||
|
switch (event.type) {
|
||||||
|
case 'TabClose':
|
||||||
|
this.onTabClose(event);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Event} event
|
||||||
|
*/
|
||||||
|
onTabClose(event) {
|
||||||
|
}
|
||||||
|
|
||||||
|
get isActivated() {
|
||||||
|
return this.currentView !== -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
get activeView() {
|
||||||
|
if (!this.isActivated) {
|
||||||
|
throw new Error('No active view');
|
||||||
|
}
|
||||||
|
return this.data[this.currentView];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Public API exposed by the module
|
||||||
|
export class SplitViews extends SplitViewsBase {
|
||||||
|
/**
|
||||||
|
* @param {SplitViewConfig} config
|
||||||
|
*/
|
||||||
|
constructor(config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {MockedExports.Browser} browser
|
||||||
|
*/
|
||||||
|
onLocationChange(browser) {
|
||||||
|
this.log('onLocationChange');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {SplitType} type
|
||||||
|
*/
|
||||||
|
tileCurrentView(type) {
|
||||||
|
this.log('tileCurrentView');
|
||||||
|
}
|
||||||
|
|
||||||
|
closeCurrentView() {
|
||||||
|
this.log('closeCurrentView');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {MockedExports.BrowserTab} tab
|
||||||
|
*/
|
||||||
|
tabIsInActiveView(tab) {
|
||||||
|
this.log('tabIsInActiveView');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
getActiveViewTabs() {
|
||||||
|
this.log('getActiveViewTabs');
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {MockedExports.BrowserTab[]} tabs
|
||||||
|
* @param {SplitType} type
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
createSplitView(tabs, type = this.viewConfig.defaultSplitView) {
|
||||||
|
this.log('createSplitView');
|
||||||
|
}
|
||||||
|
};
|
4
src/split-views/types.ts → src/types.d.ts
vendored
4
src/split-views/types.ts → src/types.d.ts
vendored
|
@ -1,8 +1,8 @@
|
||||||
import { Config } from "../common/config";
|
import { Config } from "./common";
|
||||||
|
|
||||||
export type SplitType = 'horizontal' | 'vertical' | 'grid';
|
export type SplitType = 'horizontal' | 'vertical' | 'grid';
|
||||||
|
|
||||||
export interface SplitViewConfig extends Config {
|
export interface SplitViewConfig {
|
||||||
keyIndicator: string; // e.g. "split-tab='true'"
|
keyIndicator: string; // e.g. "split-tab='true'"
|
||||||
defaultSplitView: SplitType;
|
defaultSplitView: SplitType;
|
||||||
};
|
};
|
|
@ -23,14 +23,15 @@
|
||||||
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
||||||
// Make the type checking as strict as possible.
|
// Make the type checking as strict as possible.
|
||||||
// TypeScript will check JS files only if they have a @ts-check comment in them.
|
// TypeScript will check JS files only if they have a @ts-check comment in them.
|
||||||
// "allowJs": true,
|
"allowJs": true,
|
||||||
// Allow esnext syntax. Otherwise the default is ES5 only.
|
// Allow esnext syntax. Otherwise the default is ES5 only.
|
||||||
"target": "esnext",
|
"target": "esnext",
|
||||||
"lib": ["esnext", "dom"],
|
"lib": ["esnext", "dom"],
|
||||||
|
"noEmit": true,
|
||||||
|
|
||||||
/* Modules */
|
/* Modules */
|
||||||
"module": "CommonJS", /* Specify what module code is generated. */
|
"module": "CommonJS", /* Specify what module code is generated. */
|
||||||
"rootDir": "./src", /* Specify the root folder within your source files. */
|
//"rootDir": "./src", /* Specify the root folder within your source files. */
|
||||||
// "moduleResolution": "NodeNext", /* Specify how TypeScript looks up a file from a given module specifier. */
|
// "moduleResolution": "NodeNext", /* Specify how TypeScript looks up a file from a given module specifier. */
|
||||||
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
||||||
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
||||||
|
@ -43,7 +44,7 @@
|
||||||
|
|
||||||
/* JavaScript Support */
|
/* JavaScript Support */
|
||||||
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
|
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
|
||||||
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
"checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
||||||
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
|
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
|
||||||
|
|
||||||
/* Emit */
|
/* Emit */
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
const path = require('path');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
entry: './src/index.ts',
|
|
||||||
devtool: 'inline-source-map',
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.tsx?$/,
|
|
||||||
use: 'ts-loader',
|
|
||||||
exclude: /node_modules/,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
extensions: ['.tsx', '.ts', '.js'],
|
|
||||||
},
|
|
||||||
output: {
|
|
||||||
filename: 'components.js',
|
|
||||||
path: path.resolve(__dirname, 'dist'),
|
|
||||||
library: 'modulename'
|
|
||||||
},
|
|
||||||
};
|
|
Loading…
Add table
Add a link
Reference in a new issue