fix(ags nvim): get eslint to work again and update deps
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
a79cb29aaf
commit
28615e8152
31 changed files with 904 additions and 870 deletions
|
@ -27,18 +27,18 @@ in
|
||||||
# lua
|
# lua
|
||||||
''
|
''
|
||||||
vim.api.nvim_create_autocmd('FileType', {
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
pattern = { 'javascript', 'typescript', 'css', 'scss' },
|
pattern = { 'javascript', 'typescript', 'css', 'scss' },
|
||||||
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
|
command = 'setlocal ts=4 sw=4 sts=0 expandtab',
|
||||||
});
|
});
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('FileType', {
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
pattern = 'html',
|
pattern = 'html',
|
||||||
command = 'setlocal ts=2 sw=2 expandtab',
|
command = 'setlocal ts=2 sw=2 expandtab',
|
||||||
});
|
});
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('FileType', {
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
pattern = 'scss',
|
pattern = 'scss',
|
||||||
command = 'setlocal iskeyword+=@-@',
|
command = 'setlocal iskeyword+=@-@',
|
||||||
});
|
});
|
||||||
|
|
||||||
local lsp = require('lspconfig');
|
local lsp = require('lspconfig');
|
||||||
|
@ -66,6 +66,41 @@ in
|
||||||
command = 'EslintFixAll',
|
command = 'EslintFixAll',
|
||||||
});
|
});
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
validate = 'on',
|
||||||
|
packageManager = 'npm',
|
||||||
|
useESLintClass = true,
|
||||||
|
useFlatConfig = true,
|
||||||
|
experimental = {
|
||||||
|
useFlatConfig = true,
|
||||||
|
},
|
||||||
|
codeAction = {
|
||||||
|
disableRuleComment = {
|
||||||
|
enable = true,
|
||||||
|
location = 'separateLine'
|
||||||
|
},
|
||||||
|
showDocumentation = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
codeActionOnSave = {
|
||||||
|
mode = 'all',
|
||||||
|
rules = {},
|
||||||
|
},
|
||||||
|
format = true,
|
||||||
|
quiet = false,
|
||||||
|
onIgnoredFiles = 'off',
|
||||||
|
rulesCustomizations = {},
|
||||||
|
run = 'onType',
|
||||||
|
problems = {
|
||||||
|
shortenToSingleLine = false,
|
||||||
|
},
|
||||||
|
nodePath = "",
|
||||||
|
workingDirectory = {
|
||||||
|
mode = 'location',
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
lsp.cssls.setup({
|
lsp.cssls.setup({
|
||||||
|
|
|
@ -1,461 +1,454 @@
|
||||||
// TODO: switch to typescript https://github.com/eslint/eslint/pull/18134
|
// TODO: switch to typescript https://github.com/eslint/eslint/pull/18134
|
||||||
|
|
||||||
import eslint from '@eslint/js';
|
import eslint from '@eslint/js';
|
||||||
|
|
||||||
import tseslint from 'typescript-eslint';
|
|
||||||
import tsPlugin from '@typescript-eslint/eslint-plugin';
|
|
||||||
|
|
||||||
import stylistic from '@stylistic/eslint-plugin';
|
|
||||||
// import stylisticRules from '@stylistic/eslint-plugin/rule-options';
|
|
||||||
|
|
||||||
import jsdoc from 'eslint-plugin-jsdoc';
|
import jsdoc from 'eslint-plugin-jsdoc';
|
||||||
|
import stylistic from '@stylistic/eslint-plugin';
|
||||||
|
import tseslint from 'typescript-eslint';
|
||||||
|
|
||||||
|
|
||||||
export default tseslint.config(
|
export default tseslint.config({
|
||||||
// @ts-expect-error this works
|
// @ts-expect-error this should work
|
||||||
eslint.configs.recommended,
|
files: ['**/*.js', '**/*.ts'],
|
||||||
jsdoc.configs['flat/recommended-typescript'],
|
ignores: ['node_modules/**', 'types/**'],
|
||||||
|
|
||||||
{ ignores: ['js'] },
|
extends: [
|
||||||
|
eslint.configs.recommended,
|
||||||
|
jsdoc.configs['flat/recommended-typescript'],
|
||||||
|
stylistic.configs['recommended-flat'],
|
||||||
|
...tseslint.configs.recommended,
|
||||||
|
...tseslint.configs.stylistic,
|
||||||
|
],
|
||||||
|
|
||||||
{
|
rules: {
|
||||||
plugins: {
|
// JSDoc settings
|
||||||
jsdoc,
|
'jsdoc/tag-lines': ['warn', 'any', { startLines: 1 }],
|
||||||
'@stylistic': stylistic, // as typeof stylisticRules,
|
'jsdoc/check-line-alignment': ['warn', 'always', {
|
||||||
'@typescript-eslint': tsPlugin,
|
tags: ['param', 'arg', 'argument', 'property', 'prop'],
|
||||||
},
|
}],
|
||||||
|
'jsdoc/no-types': 'off',
|
||||||
|
|
||||||
rules: {
|
// Newer settings
|
||||||
// JSDoc settings
|
'@typescript-eslint/no-extraneous-class': ['off'],
|
||||||
'jsdoc/tag-lines': ['warn', 'any', { startLines: 1 }],
|
'@typescript-eslint/no-implied-eval': ['off'],
|
||||||
'jsdoc/check-line-alignment': ['warn', 'always', {
|
'class-methods-use-this': 'off',
|
||||||
tags: ['param', 'arg', 'argument', 'property', 'prop'],
|
'@stylistic/no-multiple-empty-lines': 'off',
|
||||||
}],
|
|
||||||
|
|
||||||
// Newer settings
|
// Pre-flat config
|
||||||
'@typescript-eslint/no-extraneous-class': ['off'],
|
'@typescript-eslint/no-unused-vars': [
|
||||||
'@typescript-eslint/no-implied-eval': ['off'],
|
'error',
|
||||||
|
{
|
||||||
|
args: 'all',
|
||||||
|
argsIgnorePattern: '^_',
|
||||||
|
caughtErrors: 'all',
|
||||||
|
caughtErrorsIgnorePattern: '^_',
|
||||||
|
destructuredArrayIgnorePattern: '^_',
|
||||||
|
varsIgnorePattern: '^_',
|
||||||
|
ignoreRestSiblings: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
// Pre-flat config
|
'array-callback-return': [
|
||||||
'@typescript-eslint/no-unused-vars': [
|
'error',
|
||||||
'error',
|
{
|
||||||
{
|
allowImplicit: true,
|
||||||
args: 'all',
|
checkForEach: true,
|
||||||
argsIgnorePattern: '^_',
|
},
|
||||||
caughtErrors: 'all',
|
],
|
||||||
caughtErrorsIgnorePattern: '^_',
|
'no-constructor-return': [
|
||||||
destructuredArrayIgnorePattern: '^_',
|
'error',
|
||||||
varsIgnorePattern: '^_',
|
],
|
||||||
ignoreRestSiblings: true,
|
'no-unreachable-loop': [
|
||||||
},
|
'error',
|
||||||
],
|
{
|
||||||
|
ignore: [
|
||||||
'array-callback-return': [
|
'ForInStatement',
|
||||||
'error',
|
'ForOfStatement',
|
||||||
{
|
],
|
||||||
allowImplicit: true,
|
},
|
||||||
checkForEach: true,
|
],
|
||||||
},
|
'no-use-before-define': [
|
||||||
],
|
'error',
|
||||||
'no-constructor-return': [
|
{
|
||||||
'error',
|
functions: false,
|
||||||
],
|
},
|
||||||
'no-unreachable-loop': [
|
],
|
||||||
'error',
|
'block-scoped-var': [
|
||||||
{
|
'error',
|
||||||
ignore: [
|
],
|
||||||
'ForInStatement',
|
'curly': [
|
||||||
'ForOfStatement',
|
'warn',
|
||||||
],
|
],
|
||||||
},
|
'default-case-last': [
|
||||||
],
|
'warn',
|
||||||
'no-use-before-define': [
|
],
|
||||||
'error',
|
'default-param-last': [
|
||||||
{
|
'error',
|
||||||
functions: false,
|
],
|
||||||
},
|
'eqeqeq': [
|
||||||
],
|
'error',
|
||||||
'block-scoped-var': [
|
'smart',
|
||||||
'error',
|
],
|
||||||
],
|
'func-names': [
|
||||||
'class-methods-use-this': [
|
'warn',
|
||||||
'error',
|
'never',
|
||||||
],
|
],
|
||||||
'curly': [
|
'func-style': [
|
||||||
'warn',
|
'warn',
|
||||||
],
|
'expression',
|
||||||
'default-case-last': [
|
],
|
||||||
'warn',
|
'logical-assignment-operators': [
|
||||||
],
|
'warn',
|
||||||
'default-param-last': [
|
'always',
|
||||||
'error',
|
],
|
||||||
],
|
'no-array-constructor': [
|
||||||
'eqeqeq': [
|
'error',
|
||||||
'error',
|
],
|
||||||
'smart',
|
'no-empty-function': [
|
||||||
],
|
'warn',
|
||||||
'func-names': [
|
],
|
||||||
'warn',
|
'no-empty-static-block': [
|
||||||
'never',
|
'warn',
|
||||||
],
|
],
|
||||||
'func-style': [
|
'no-extend-native': [
|
||||||
'warn',
|
'error',
|
||||||
'expression',
|
],
|
||||||
],
|
'no-extra-bind': [
|
||||||
'logical-assignment-operators': [
|
'warn',
|
||||||
'warn',
|
],
|
||||||
'always',
|
'no-implicit-coercion': [
|
||||||
],
|
'warn',
|
||||||
'no-array-constructor': [
|
],
|
||||||
'error',
|
'no-iterator': [
|
||||||
],
|
'error',
|
||||||
'no-empty-function': [
|
],
|
||||||
'warn',
|
'no-labels': [
|
||||||
],
|
'error',
|
||||||
'no-empty-static-block': [
|
],
|
||||||
'warn',
|
'no-lone-blocks': [
|
||||||
],
|
'error',
|
||||||
'no-extend-native': [
|
],
|
||||||
'error',
|
'no-lonely-if': [
|
||||||
],
|
'error',
|
||||||
'no-extra-bind': [
|
],
|
||||||
'warn',
|
'no-loop-func': [
|
||||||
],
|
'error',
|
||||||
'no-implicit-coercion': [
|
],
|
||||||
'warn',
|
'no-magic-numbers': [
|
||||||
],
|
'error',
|
||||||
'no-iterator': [
|
{
|
||||||
'error',
|
ignore: [
|
||||||
],
|
-1,
|
||||||
'no-labels': [
|
0.1,
|
||||||
'error',
|
0,
|
||||||
],
|
1,
|
||||||
'no-lone-blocks': [
|
2,
|
||||||
'error',
|
3,
|
||||||
],
|
4,
|
||||||
'no-lonely-if': [
|
5,
|
||||||
'error',
|
10,
|
||||||
],
|
12,
|
||||||
'no-loop-func': [
|
33,
|
||||||
'error',
|
66,
|
||||||
],
|
100,
|
||||||
'no-magic-numbers': [
|
255,
|
||||||
'error',
|
360,
|
||||||
{
|
450,
|
||||||
ignore: [
|
500,
|
||||||
-1,
|
1000,
|
||||||
0.1,
|
],
|
||||||
0,
|
ignoreDefaultValues: true,
|
||||||
1,
|
ignoreClassFieldInitialValues: true,
|
||||||
2,
|
},
|
||||||
3,
|
],
|
||||||
4,
|
'no-multi-assign': [
|
||||||
5,
|
'error',
|
||||||
10,
|
],
|
||||||
12,
|
'no-new-wrappers': [
|
||||||
33,
|
'error',
|
||||||
66,
|
],
|
||||||
100,
|
'no-object-constructor': [
|
||||||
255,
|
'error',
|
||||||
360,
|
],
|
||||||
450,
|
'no-proto': [
|
||||||
500,
|
'error',
|
||||||
1000,
|
],
|
||||||
],
|
'no-return-assign': [
|
||||||
ignoreDefaultValues: true,
|
'error',
|
||||||
ignoreClassFieldInitialValues: true,
|
],
|
||||||
},
|
'no-sequences': [
|
||||||
],
|
'error',
|
||||||
'no-multi-assign': [
|
],
|
||||||
'error',
|
'no-shadow': [
|
||||||
],
|
'error',
|
||||||
'no-new-wrappers': [
|
{
|
||||||
'error',
|
builtinGlobals: true,
|
||||||
],
|
allow: [
|
||||||
'no-object-constructor': [
|
'Window',
|
||||||
'error',
|
],
|
||||||
],
|
},
|
||||||
'no-proto': [
|
],
|
||||||
'error',
|
'no-undef-init': [
|
||||||
],
|
'warn',
|
||||||
'no-return-assign': [
|
],
|
||||||
'error',
|
'no-undefined': [
|
||||||
],
|
'error',
|
||||||
'no-sequences': [
|
],
|
||||||
'error',
|
'no-useless-constructor': [
|
||||||
],
|
'warn',
|
||||||
'no-shadow': [
|
],
|
||||||
'error',
|
'no-useless-escape': [
|
||||||
{
|
'off',
|
||||||
builtinGlobals: true,
|
],
|
||||||
allow: [
|
'no-useless-return': [
|
||||||
'Window',
|
'error',
|
||||||
],
|
],
|
||||||
},
|
'no-var': [
|
||||||
],
|
'error',
|
||||||
'no-undef-init': [
|
],
|
||||||
'warn',
|
'no-void': [
|
||||||
],
|
'off',
|
||||||
'no-undefined': [
|
],
|
||||||
'error',
|
'no-with': [
|
||||||
],
|
'error',
|
||||||
'no-useless-constructor': [
|
],
|
||||||
'warn',
|
'object-shorthand': [
|
||||||
],
|
'error',
|
||||||
'no-useless-escape': [
|
'always',
|
||||||
'off',
|
],
|
||||||
],
|
'one-var': [
|
||||||
'no-useless-return': [
|
'error',
|
||||||
'error',
|
'never',
|
||||||
],
|
],
|
||||||
'no-var': [
|
'operator-assignment': [
|
||||||
'error',
|
'warn',
|
||||||
],
|
'always',
|
||||||
'no-void': [
|
],
|
||||||
'off',
|
'prefer-arrow-callback': [
|
||||||
],
|
'error',
|
||||||
'no-with': [
|
],
|
||||||
'error',
|
'prefer-const': [
|
||||||
],
|
'error',
|
||||||
'object-shorthand': [
|
],
|
||||||
'error',
|
'prefer-object-has-own': [
|
||||||
'always',
|
'error',
|
||||||
],
|
],
|
||||||
'one-var': [
|
'prefer-regex-literals': [
|
||||||
'error',
|
'error',
|
||||||
'never',
|
],
|
||||||
],
|
'prefer-template': [
|
||||||
'operator-assignment': [
|
'warn',
|
||||||
'warn',
|
],
|
||||||
'always',
|
'no-prototype-builtins': 'off',
|
||||||
],
|
'@typescript-eslint/no-var-requires': [
|
||||||
'prefer-arrow-callback': [
|
'off',
|
||||||
'error',
|
],
|
||||||
],
|
'@stylistic/array-bracket-newline': [
|
||||||
'prefer-const': [
|
'warn',
|
||||||
'error',
|
'consistent',
|
||||||
],
|
],
|
||||||
'prefer-object-has-own': [
|
'@stylistic/array-bracket-spacing': [
|
||||||
'error',
|
'warn',
|
||||||
],
|
'never',
|
||||||
'prefer-regex-literals': [
|
],
|
||||||
'error',
|
'@stylistic/arrow-parens': [
|
||||||
],
|
'warn',
|
||||||
'prefer-template': [
|
'always',
|
||||||
'warn',
|
],
|
||||||
],
|
'@stylistic/brace-style': [
|
||||||
'no-prototype-builtins': 'off',
|
'warn',
|
||||||
'@typescript-eslint/no-var-requires': [
|
'stroustrup',
|
||||||
'off',
|
],
|
||||||
],
|
'@stylistic/comma-dangle': [
|
||||||
'@stylistic/array-bracket-newline': [
|
'warn',
|
||||||
'warn',
|
'always-multiline',
|
||||||
'consistent',
|
],
|
||||||
],
|
'@stylistic/comma-spacing': [
|
||||||
'@stylistic/array-bracket-spacing': [
|
'warn',
|
||||||
'warn',
|
{
|
||||||
'never',
|
before: false,
|
||||||
],
|
after: true,
|
||||||
'@stylistic/arrow-parens': [
|
},
|
||||||
'warn',
|
],
|
||||||
'always',
|
'@stylistic/comma-style': [
|
||||||
],
|
'error',
|
||||||
'@stylistic/brace-style': [
|
'last',
|
||||||
'warn',
|
],
|
||||||
'stroustrup',
|
'@stylistic/dot-location': [
|
||||||
],
|
'error',
|
||||||
'@stylistic/comma-dangle': [
|
'property',
|
||||||
'warn',
|
],
|
||||||
'always-multiline',
|
'@stylistic/function-call-argument-newline': [
|
||||||
],
|
'warn',
|
||||||
'@stylistic/comma-spacing': [
|
'consistent',
|
||||||
'warn',
|
],
|
||||||
{
|
'@stylistic/function-paren-newline': [
|
||||||
before: false,
|
'warn',
|
||||||
after: true,
|
'consistent',
|
||||||
},
|
],
|
||||||
],
|
'@stylistic/indent': [
|
||||||
'@stylistic/comma-style': [
|
'warn',
|
||||||
'error',
|
4,
|
||||||
'last',
|
{
|
||||||
],
|
SwitchCase: 1,
|
||||||
'@stylistic/dot-location': [
|
ignoreComments: true,
|
||||||
'error',
|
ignoredNodes: ['TemplateLiteral > *'],
|
||||||
'property',
|
},
|
||||||
],
|
],
|
||||||
'@stylistic/function-call-argument-newline': [
|
'@stylistic/key-spacing': [
|
||||||
'warn',
|
'warn',
|
||||||
'consistent',
|
{
|
||||||
],
|
beforeColon: false,
|
||||||
'@stylistic/function-paren-newline': [
|
afterColon: true,
|
||||||
'warn',
|
},
|
||||||
'consistent',
|
],
|
||||||
],
|
'@stylistic/keyword-spacing': [
|
||||||
'@stylistic/indent': [
|
'warn',
|
||||||
'warn',
|
{
|
||||||
4,
|
before: true,
|
||||||
{
|
},
|
||||||
SwitchCase: 1,
|
],
|
||||||
ignoreComments: true,
|
'@stylistic/linebreak-style': [
|
||||||
ignoredNodes: ['TemplateLiteral > *'],
|
'error',
|
||||||
},
|
'unix',
|
||||||
],
|
],
|
||||||
'@stylistic/key-spacing': [
|
'@stylistic/lines-between-class-members': [
|
||||||
'warn',
|
'warn',
|
||||||
{
|
'always',
|
||||||
beforeColon: false,
|
{
|
||||||
afterColon: true,
|
exceptAfterSingleLine: true,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'@stylistic/keyword-spacing': [
|
'@stylistic/max-len': [
|
||||||
'warn',
|
'warn',
|
||||||
{
|
{
|
||||||
before: true,
|
code: 105,
|
||||||
},
|
ignoreComments: true,
|
||||||
],
|
ignoreTrailingComments: true,
|
||||||
'@stylistic/linebreak-style': [
|
ignoreUrls: true,
|
||||||
'error',
|
},
|
||||||
'unix',
|
],
|
||||||
],
|
'@stylistic/multiline-ternary': [
|
||||||
'@stylistic/lines-between-class-members': [
|
'warn',
|
||||||
'warn',
|
'always-multiline',
|
||||||
'always',
|
],
|
||||||
{
|
'@stylistic/new-parens': [
|
||||||
exceptAfterSingleLine: true,
|
'error',
|
||||||
},
|
],
|
||||||
],
|
'@stylistic/no-mixed-operators': [
|
||||||
'@stylistic/max-len': [
|
'warn',
|
||||||
'warn',
|
],
|
||||||
{
|
'@stylistic/no-mixed-spaces-and-tabs': [
|
||||||
code: 105,
|
'error',
|
||||||
ignoreComments: true,
|
],
|
||||||
ignoreTrailingComments: true,
|
'@stylistic/no-multi-spaces': [
|
||||||
ignoreUrls: true,
|
'error',
|
||||||
},
|
],
|
||||||
],
|
'@stylistic/no-tabs': [
|
||||||
'@stylistic/multiline-ternary': [
|
'error',
|
||||||
'warn',
|
],
|
||||||
'always-multiline',
|
'@stylistic/no-trailing-spaces': [
|
||||||
],
|
'error',
|
||||||
'@stylistic/new-parens': [
|
],
|
||||||
'error',
|
'@stylistic/no-whitespace-before-property': [
|
||||||
],
|
'warn',
|
||||||
'@stylistic/no-mixed-operators': [
|
],
|
||||||
'warn',
|
'@stylistic/nonblock-statement-body-position': [
|
||||||
],
|
'error',
|
||||||
'@stylistic/no-mixed-spaces-and-tabs': [
|
'below',
|
||||||
'error',
|
],
|
||||||
],
|
'@stylistic/object-curly-newline': [
|
||||||
'@stylistic/no-multi-spaces': [
|
'warn',
|
||||||
'error',
|
{
|
||||||
],
|
consistent: true,
|
||||||
'@stylistic/no-tabs': [
|
},
|
||||||
'error',
|
],
|
||||||
],
|
'@stylistic/object-curly-spacing': [
|
||||||
'@stylistic/no-trailing-spaces': [
|
'warn',
|
||||||
'error',
|
'always',
|
||||||
],
|
],
|
||||||
'@stylistic/no-whitespace-before-property': [
|
'@stylistic/operator-linebreak': [
|
||||||
'warn',
|
'warn',
|
||||||
],
|
'after',
|
||||||
'@stylistic/nonblock-statement-body-position': [
|
],
|
||||||
'error',
|
'@stylistic/padded-blocks': [
|
||||||
'below',
|
'error',
|
||||||
],
|
'never',
|
||||||
'@stylistic/object-curly-newline': [
|
],
|
||||||
'warn',
|
'@stylistic/padding-line-between-statements': [
|
||||||
{
|
'warn',
|
||||||
consistent: true,
|
{
|
||||||
},
|
blankLine: 'always',
|
||||||
],
|
prev: '*',
|
||||||
'@stylistic/object-curly-spacing': [
|
next: 'return',
|
||||||
'warn',
|
},
|
||||||
'always',
|
{
|
||||||
],
|
blankLine: 'always',
|
||||||
'@stylistic/operator-linebreak': [
|
prev: [
|
||||||
'warn',
|
'const',
|
||||||
'after',
|
'let',
|
||||||
],
|
'var',
|
||||||
'@stylistic/padded-blocks': [
|
],
|
||||||
'error',
|
next: '*',
|
||||||
'never',
|
},
|
||||||
],
|
{
|
||||||
'@stylistic/padding-line-between-statements': [
|
blankLine: 'any',
|
||||||
'warn',
|
prev: [
|
||||||
{
|
'const',
|
||||||
blankLine: 'always',
|
'let',
|
||||||
prev: '*',
|
'var',
|
||||||
next: 'return',
|
],
|
||||||
},
|
next: [
|
||||||
{
|
'const',
|
||||||
blankLine: 'always',
|
'let',
|
||||||
prev: [
|
'var',
|
||||||
'const',
|
],
|
||||||
'let',
|
},
|
||||||
'var',
|
{
|
||||||
],
|
blankLine: 'always',
|
||||||
next: '*',
|
prev: [
|
||||||
},
|
'case',
|
||||||
{
|
'default',
|
||||||
blankLine: 'any',
|
],
|
||||||
prev: [
|
next: '*',
|
||||||
'const',
|
},
|
||||||
'let',
|
],
|
||||||
'var',
|
'@stylistic/quote-props': [
|
||||||
],
|
'error',
|
||||||
next: [
|
'consistent-as-needed',
|
||||||
'const',
|
],
|
||||||
'let',
|
'@stylistic/quotes': [
|
||||||
'var',
|
'error',
|
||||||
],
|
'single',
|
||||||
},
|
{
|
||||||
{
|
avoidEscape: true,
|
||||||
blankLine: 'always',
|
},
|
||||||
prev: [
|
],
|
||||||
'case',
|
'@stylistic/semi': [
|
||||||
'default',
|
'error',
|
||||||
],
|
'always',
|
||||||
next: '*',
|
],
|
||||||
},
|
'@stylistic/semi-spacing': [
|
||||||
],
|
'warn',
|
||||||
'@stylistic/quote-props': [
|
],
|
||||||
'error',
|
'@stylistic/space-before-blocks': [
|
||||||
'consistent-as-needed',
|
'warn',
|
||||||
],
|
],
|
||||||
'@stylistic/quotes': [
|
'@stylistic/space-before-function-paren': [
|
||||||
'error',
|
'warn',
|
||||||
'single',
|
'never',
|
||||||
{
|
],
|
||||||
avoidEscape: true,
|
'@stylistic/space-infix-ops': [
|
||||||
},
|
'warn',
|
||||||
],
|
],
|
||||||
'@stylistic/semi': [
|
'@stylistic/spaced-comment': [
|
||||||
'error',
|
'warn',
|
||||||
'always',
|
'always',
|
||||||
],
|
],
|
||||||
'@stylistic/semi-spacing': [
|
'@stylistic/switch-colon-spacing': [
|
||||||
'warn',
|
'warn',
|
||||||
],
|
],
|
||||||
'@stylistic/space-before-blocks': [
|
'@stylistic/wrap-regex': [
|
||||||
'warn',
|
'warn',
|
||||||
],
|
],
|
||||||
'@stylistic/space-before-function-paren': [
|
|
||||||
'warn',
|
|
||||||
'never',
|
|
||||||
],
|
|
||||||
'@stylistic/space-infix-ops': [
|
|
||||||
'warn',
|
|
||||||
],
|
|
||||||
'@stylistic/spaced-comment': [
|
|
||||||
'warn',
|
|
||||||
'always',
|
|
||||||
],
|
|
||||||
'@stylistic/switch-colon-spacing': [
|
|
||||||
'warn',
|
|
||||||
],
|
|
||||||
'@stylistic/wrap-regex': [
|
|
||||||
'warn',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
);
|
});
|
||||||
|
|
264
modules/ags/config/global-types.d.ts
vendored
264
modules/ags/config/global-types.d.ts
vendored
|
@ -5,137 +5,6 @@ import { Variable as Var } from 'types/variable';
|
||||||
import { Widget as agsWidget } from 'types/widgets/widget';
|
import { Widget as agsWidget } from 'types/widgets/widget';
|
||||||
export type AgsWidget = agsWidget<unknown> & Widget;
|
export type AgsWidget = agsWidget<unknown> & Widget;
|
||||||
|
|
||||||
// For ./ts/applauncher/main.ts
|
|
||||||
import { Application } from 'types/service/applications.ts';
|
|
||||||
import { CursorBoxProps } from 'ts/misc/cursorbox';
|
|
||||||
export type AgsAppItem = AgsEventBox<Widget, { app: Application }
|
|
||||||
& CursorBoxProps<Widget, unknown>>;
|
|
||||||
|
|
||||||
// For ./ts/bar/hovers/keyboard.ts
|
|
||||||
export type Keyboard = {
|
|
||||||
address: string;
|
|
||||||
name: string;
|
|
||||||
rules: string;
|
|
||||||
model: string;
|
|
||||||
layout: string;
|
|
||||||
variant: string;
|
|
||||||
options: string;
|
|
||||||
active_keymap: string;
|
|
||||||
main: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
// For ./ts/bar/items/workspaces.ts
|
|
||||||
// TODO: improve type
|
|
||||||
export type Workspace = AgsRevealer<unknown & Widget, unknown & { id: number }>;
|
|
||||||
|
|
||||||
// For ./ts/bar/fullscreen.ts
|
|
||||||
export type DefaultProps = RevealerProps<CenterBoxGeneric>;
|
|
||||||
|
|
||||||
// For ./ts/media-player/gesture.ts
|
|
||||||
export type Gesture = {
|
|
||||||
attribute?: object
|
|
||||||
setup?(self: OverlayGeneric): void
|
|
||||||
props?: OverlayProps<unknown & Widget, unknown>
|
|
||||||
};
|
|
||||||
|
|
||||||
// For ./ts/media-player/mpris.ts
|
|
||||||
type PlayerDragProps = unknown & { dragging: boolean };
|
|
||||||
export type PlayerDrag = AgsCenterBox<
|
|
||||||
unknown & Widget, unknown & Widget, unknown & Widget, unknown & PlayerDragProps
|
|
||||||
>;
|
|
||||||
type Colors = {
|
|
||||||
imageAccent: string;
|
|
||||||
buttonAccent: string;
|
|
||||||
buttonText: string;
|
|
||||||
hoverAccent: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
// For ./ts/media-player
|
|
||||||
export type PlayerBoxProps = {
|
|
||||||
bgStyle: string,
|
|
||||||
player: MprisPlayer,
|
|
||||||
};
|
|
||||||
export type PlayerBox = AgsCenterBox<
|
|
||||||
unknown & Widget, unknown & Widget, unknown & Widget, PlayerBoxProps
|
|
||||||
>;
|
|
||||||
export type PlayerOverlay = AgsOverlay<AgsWidget, {
|
|
||||||
players: Map;
|
|
||||||
setup: boolean;
|
|
||||||
dragging: boolean;
|
|
||||||
includesWidget(playerW: PlayerBox): PlayerBox;
|
|
||||||
showTopOnly(): void;
|
|
||||||
moveToTop(player: PlayerBox): void;
|
|
||||||
}>;
|
|
||||||
export type PlayerButtonType = {
|
|
||||||
player: MprisPlayer
|
|
||||||
colors: Var<Colors>
|
|
||||||
children: StackProps['children']
|
|
||||||
onClick: string
|
|
||||||
prop: string
|
|
||||||
};
|
|
||||||
|
|
||||||
// For ./ts/notifications/gesture.js
|
|
||||||
type NotifGestureProps = {
|
|
||||||
dragging: boolean;
|
|
||||||
hovered: boolean
|
|
||||||
ready: boolean
|
|
||||||
id: number;
|
|
||||||
slideAway(side: 'Left' | 'Right'): void;
|
|
||||||
};
|
|
||||||
export type NotifGesture = AgsEventBox<BoxGeneric, NotifGestureProps>;
|
|
||||||
|
|
||||||
// For ./ts/osd/ctor.ts
|
|
||||||
export type OSDStack = AgsStack<unknown & Widget, {
|
|
||||||
popup(osd: string): void,
|
|
||||||
}>;
|
|
||||||
export type ConnectFunc = (self?: ProgressBarGeneric) => void;
|
|
||||||
export type OSD = {
|
|
||||||
name: string;
|
|
||||||
icon: IconPropsGeneric['icon'];
|
|
||||||
info: {
|
|
||||||
mod: GObject.Object;
|
|
||||||
signal?: string | string[];
|
|
||||||
logic?(self: ProgressBarGeneric): void;
|
|
||||||
widget?: AgsWidget;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// For ./ts/on-screen-keyboard
|
|
||||||
export type OskWindow = Window<BoxGeneric, {
|
|
||||||
startY: null | number;
|
|
||||||
setVisible: (state: boolean) => void;
|
|
||||||
killGestureSigs: () => void;
|
|
||||||
setSlideUp: () => void;
|
|
||||||
setSlideDown: () => void;
|
|
||||||
}>;
|
|
||||||
|
|
||||||
// For CursorBox
|
|
||||||
import { CursorBox, CursorBoxProps } from 'ts/misc/cursorbox';
|
|
||||||
export type CursorBox = CursorBox;
|
|
||||||
export type CursorBoxProps = CursorBoxProps;
|
|
||||||
|
|
||||||
// For PopupWindow
|
|
||||||
export type HyprTransition = 'slide' | 'slide top' | 'slide bottom' | 'slide left' |
|
|
||||||
'slide right' | 'popin' | 'fade';
|
|
||||||
export type CloseType = 'none' | 'stay' | 'released' | 'clicked';
|
|
||||||
import { PopupWindow } from 'ts/misc/popup';
|
|
||||||
export type PopupWindow = PopupWindow;
|
|
||||||
|
|
||||||
// For ./ts/quick-settings
|
|
||||||
import { BluetoothDevice as BTDev } from 'types/service/bluetooth.ts';
|
|
||||||
export type APType = {
|
|
||||||
bssid: string
|
|
||||||
address: string
|
|
||||||
lastSeen: number
|
|
||||||
ssid: string
|
|
||||||
active: boolean
|
|
||||||
strength: number
|
|
||||||
iconName: string
|
|
||||||
};
|
|
||||||
export type APBox = AgsBox<unknown & Widget, { ap: Var<APType> }>;
|
|
||||||
export type DeviceBox = AgsBox<unknown & Widget, { dev: BTDev }>;
|
|
||||||
|
|
||||||
|
|
||||||
// Generic widgets
|
// Generic widgets
|
||||||
import AgsBox from 'types/widgets/box.ts';
|
import AgsBox from 'types/widgets/box.ts';
|
||||||
export type BoxGeneric = AgsBox<unknown & Widget, unknown>;
|
export type BoxGeneric = AgsBox<unknown & Widget, unknown>;
|
||||||
|
@ -168,10 +37,141 @@ import AgsRevealer, { RevealerProps } from 'types/widgets/revealer';
|
||||||
export type RevealerGeneric = AgsRevealer<unknown & Widget, unknown>;
|
export type RevealerGeneric = AgsRevealer<unknown & Widget, unknown>;
|
||||||
|
|
||||||
import AgsStack, { StackProps } from 'types/widgets/stack';
|
import AgsStack, { StackProps } from 'types/widgets/stack';
|
||||||
export type StackGeneric = AgsStack<{ [name: string]: Widget; }, unknown>;
|
export type StackGeneric = AgsStack<Record<string, Widget>, unknown>;
|
||||||
|
|
||||||
import AgsScrollable from 'types/widgets/scrollable';
|
import AgsScrollable from 'types/widgets/scrollable';
|
||||||
export type ScrollableGeneric = AgsScrollable<unkown & Widget, unknown>;
|
export type ScrollableGeneric = AgsScrollable<unkown & Widget, unknown>;
|
||||||
|
|
||||||
import AgsWindow from 'types/widgets/window';
|
import AgsWindow from 'types/widgets/window';
|
||||||
export type WindowGeneric = AgsWindow<unknown & Widget, unknown>;
|
export type WindowGeneric = AgsWindow<unknown & Widget, unknown>;
|
||||||
|
|
||||||
|
|
||||||
|
// For ./ts/applauncher/main.ts
|
||||||
|
import { Application } from 'types/service/applications.ts';
|
||||||
|
import { CursorBoxProps } from 'ts/misc/cursorbox';
|
||||||
|
export type AgsAppItem = AgsEventBox<Widget, { app: Application }
|
||||||
|
& CursorBoxProps<Widget, unknown>>;
|
||||||
|
|
||||||
|
// For ./ts/bar/hovers/keyboard.ts
|
||||||
|
export interface Keyboard {
|
||||||
|
address: string
|
||||||
|
name: string
|
||||||
|
rules: string
|
||||||
|
model: string
|
||||||
|
layout: string
|
||||||
|
variant: string
|
||||||
|
options: string
|
||||||
|
active_keymap: string
|
||||||
|
main: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
// For ./ts/bar/items/workspaces.ts
|
||||||
|
// TODO: improve type
|
||||||
|
export type Workspace = AgsRevealer<unknown & Widget, unknown & { id: number }>;
|
||||||
|
|
||||||
|
// For ./ts/bar/fullscreen.ts
|
||||||
|
export type DefaultProps = RevealerProps<CenterBoxGeneric>;
|
||||||
|
|
||||||
|
// For ./ts/media-player/gesture.ts
|
||||||
|
export interface Gesture {
|
||||||
|
attribute?: object
|
||||||
|
setup?(self: OverlayGeneric): void
|
||||||
|
props?: OverlayProps<unknown & Widget, unknown>
|
||||||
|
}
|
||||||
|
|
||||||
|
// For ./ts/media-player/mpris.ts
|
||||||
|
type PlayerDragProps = unknown & { dragging: boolean };
|
||||||
|
export type PlayerDrag = AgsCenterBox<
|
||||||
|
unknown & Widget, unknown & Widget, unknown & Widget, unknown & PlayerDragProps
|
||||||
|
>;
|
||||||
|
interface Colors {
|
||||||
|
imageAccent: string
|
||||||
|
buttonAccent: string
|
||||||
|
buttonText: string
|
||||||
|
hoverAccent: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// For ./ts/media-player
|
||||||
|
export interface PlayerBoxProps {
|
||||||
|
bgStyle: string
|
||||||
|
player: MprisPlayer
|
||||||
|
}
|
||||||
|
export type PlayerBox = AgsCenterBox<
|
||||||
|
unknown & Widget, unknown & Widget, unknown & Widget, PlayerBoxProps
|
||||||
|
>;
|
||||||
|
export type PlayerOverlay = AgsOverlay<AgsWidget, {
|
||||||
|
players: Map
|
||||||
|
setup: boolean
|
||||||
|
dragging: boolean
|
||||||
|
includesWidget(playerW: PlayerBox): PlayerBox
|
||||||
|
showTopOnly(): void
|
||||||
|
moveToTop(player: PlayerBox): void
|
||||||
|
}>;
|
||||||
|
export interface PlayerButtonType {
|
||||||
|
player: MprisPlayer
|
||||||
|
colors: Var<Colors>
|
||||||
|
children: StackProps['children']
|
||||||
|
onClick: string
|
||||||
|
prop: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// For ./ts/notifications/gesture.js
|
||||||
|
interface NotifGestureProps {
|
||||||
|
dragging: boolean
|
||||||
|
hovered: boolean
|
||||||
|
ready: boolean
|
||||||
|
id: number
|
||||||
|
slideAway(side: 'Left' | 'Right'): void
|
||||||
|
}
|
||||||
|
export type NotifGesture = AgsEventBox<BoxGeneric, NotifGestureProps>;
|
||||||
|
|
||||||
|
// For ./ts/osd/ctor.ts
|
||||||
|
export type OSDStack = AgsStack<unknown & Widget, {
|
||||||
|
popup(osd: string): void
|
||||||
|
}>;
|
||||||
|
export type ConnectFunc = (self?: ProgressBarGeneric) => void;
|
||||||
|
export interface OSD {
|
||||||
|
name: string
|
||||||
|
icon: IconPropsGeneric['icon']
|
||||||
|
info: {
|
||||||
|
mod: GObject.Object
|
||||||
|
signal?: string | string[]
|
||||||
|
logic?(self: ProgressBarGeneric): void
|
||||||
|
widget?: AgsWidget
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// For ./ts/on-screen-keyboard
|
||||||
|
export type OskWindow = Window<BoxGeneric, {
|
||||||
|
startY: null | number
|
||||||
|
setVisible: (state: boolean) => void
|
||||||
|
killGestureSigs: () => void
|
||||||
|
setSlideUp: () => void
|
||||||
|
setSlideDown: () => void
|
||||||
|
}>;
|
||||||
|
|
||||||
|
// For CursorBox
|
||||||
|
import { CursorBox, CursorBoxProps } from 'ts/misc/cursorbox';
|
||||||
|
export type CursorBox = CursorBox;
|
||||||
|
export type CursorBoxProps = CursorBoxProps;
|
||||||
|
|
||||||
|
// For PopupWindow
|
||||||
|
export type HyprTransition = 'slide' | 'slide top' | 'slide bottom' | 'slide left' |
|
||||||
|
'slide right' | 'popin' | 'fade';
|
||||||
|
export type CloseType = 'none' | 'stay' | 'released' | 'clicked';
|
||||||
|
import { PopupWindow } from 'ts/misc/popup';
|
||||||
|
export type PopupWindow = PopupWindow;
|
||||||
|
|
||||||
|
// For ./ts/quick-settings
|
||||||
|
import { BluetoothDevice as BTDev } from 'types/service/bluetooth.ts';
|
||||||
|
export interface APType {
|
||||||
|
bssid: string
|
||||||
|
address: string
|
||||||
|
lastSeen: number
|
||||||
|
ssid: string
|
||||||
|
active: boolean
|
||||||
|
strength: number
|
||||||
|
iconName: string
|
||||||
|
}
|
||||||
|
export type APBox = AgsBox<unknown & Widget, { ap: Var<APType> }>;
|
||||||
|
export type DeviceBox = AgsBox<unknown & Widget, { dev: BTDev }>;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
const { execAsync, monitorFile } = Utils;
|
const { execAsync, monitorFile } = Utils;
|
||||||
|
|
||||||
|
|
||||||
/** @param {string} host */
|
/**
|
||||||
|
* @param {string} host the name of the machine/user who's running ags
|
||||||
|
*/
|
||||||
const watchAndCompileSass = (host) => {
|
const watchAndCompileSass = (host) => {
|
||||||
const reloadCss = () => {
|
const reloadCss = () => {
|
||||||
const scss = `${App.configDir}/scss/${host}.scss`;
|
const scss = `${App.configDir}/scss/${host}.scss`;
|
||||||
|
@ -20,7 +22,10 @@ const watchAndCompileSass = (host) => {
|
||||||
reloadCss();
|
reloadCss();
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @param {string} host */
|
/**
|
||||||
|
* @param {string} host the name of the machine/user who's running ags
|
||||||
|
* @returns the config
|
||||||
|
*/
|
||||||
export const transpileTypeScript = async(host) => {
|
export const transpileTypeScript = async(host) => {
|
||||||
const outPath = `/tmp/ags-${host}/index.js`;
|
const outPath = `/tmp/ags-${host}/index.js`;
|
||||||
|
|
||||||
|
|
267
modules/ags/config/package-lock.json
generated
267
modules/ags/config/package-lock.json
generated
|
@ -8,14 +8,14 @@
|
||||||
"fzf": "0.5.2"
|
"fzf": "0.5.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "9.7.0",
|
"@eslint/js": "9.8.0",
|
||||||
"@stylistic/eslint-plugin": "2.3.0",
|
"@stylistic/eslint-plugin": "2.6.1",
|
||||||
"@types/eslint__js": "8.42.3",
|
"@types/eslint__js": "8.42.3",
|
||||||
"@types/node": "20.14.11",
|
"@types/node": "22.0.2",
|
||||||
"eslint": "9.7.0",
|
"eslint": "9.8.0",
|
||||||
"eslint-plugin-jsdoc": "48.7.0",
|
"eslint-plugin-jsdoc": "48.10.2",
|
||||||
"typescript": "5.5.3",
|
"typescript": "5.5.4",
|
||||||
"typescript-eslint": "7.16.1"
|
"typescript-eslint": "8.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@es-joy/jsdoccomment": {
|
"node_modules/@es-joy/jsdoccomment": {
|
||||||
|
@ -73,9 +73,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/config-array": {
|
"node_modules/@eslint/config-array": {
|
||||||
"version": "0.17.0",
|
"version": "0.17.1",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.0.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz",
|
||||||
"integrity": "sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==",
|
"integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -160,9 +160,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/js": {
|
"node_modules/@eslint/js": {
|
||||||
"version": "9.7.0",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.8.0.tgz",
|
||||||
"integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==",
|
"integrity": "sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -259,17 +259,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@stylistic/eslint-plugin": {
|
"node_modules/@stylistic/eslint-plugin": {
|
||||||
"version": "2.3.0",
|
"version": "2.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.6.1.tgz",
|
||||||
"integrity": "sha512-rtiz6u5gRyyEZp36FcF1/gHJbsbT3qAgXZ1qkad6Nr/xJ9wrSJkiSFFQhpYVTIZ7FJNRJurEcumZDCwN9dEI4g==",
|
"integrity": "sha512-UT0f4t+3sQ/GKW7875NiIIjZJ1Bh4gd7JNfoIkwIQyWqO7wGd0Pqzu0Ho30Ka8MNF5lm++SkVeqAk26vGxoUpg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stylistic/eslint-plugin-js": "2.3.0",
|
"@stylistic/eslint-plugin-js": "2.6.1",
|
||||||
"@stylistic/eslint-plugin-jsx": "2.3.0",
|
"@stylistic/eslint-plugin-jsx": "2.6.1",
|
||||||
"@stylistic/eslint-plugin-plus": "2.3.0",
|
"@stylistic/eslint-plugin-plus": "2.6.1",
|
||||||
"@stylistic/eslint-plugin-ts": "2.3.0",
|
"@stylistic/eslint-plugin-ts": "2.6.1",
|
||||||
"@types/eslint": "^8.56.10"
|
"@types/eslint": "^9.6.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
|
@ -279,16 +279,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@stylistic/eslint-plugin-js": {
|
"node_modules/@stylistic/eslint-plugin-js": {
|
||||||
"version": "2.3.0",
|
"version": "2.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-2.6.1.tgz",
|
||||||
"integrity": "sha512-lQwoiYb0Fs6Yc5QS3uT8+T9CPKK2Eoxc3H8EnYJgM26v/DgtW+1lvy2WNgyBflU+ThShZaHm3a6CdD9QeKx23w==",
|
"integrity": "sha512-iLOiVzcvqzDGD9U0EuVOX680v+XOPiPAjkxWj+Q6iV2GLOM5NB27tKVOpJY7AzBhidwpRbaLTgg3T4UzYx09jw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/eslint": "^8.56.10",
|
"@types/eslint": "^9.6.0",
|
||||||
"acorn": "^8.11.3",
|
"acorn": "^8.12.1",
|
||||||
"eslint-visitor-keys": "^4.0.0",
|
"eslint-visitor-keys": "^4.0.0",
|
||||||
"espree": "^10.0.1"
|
"espree": "^10.1.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
|
@ -298,14 +298,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@stylistic/eslint-plugin-jsx": {
|
"node_modules/@stylistic/eslint-plugin-jsx": {
|
||||||
"version": "2.3.0",
|
"version": "2.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-2.6.1.tgz",
|
||||||
"integrity": "sha512-tsQ0IEKB195H6X9A4iUSgLLLKBc8gUBWkBIU8tp1/3g2l8stu+PtMQVV/VmK1+3bem5FJCyvfcZIQ/WF1fsizA==",
|
"integrity": "sha512-5qHLXqxfY6jubAQfDqrifv41fx7gaqA9svDaChxMI6JiHpEBfh+PXxmm3g+B8gJCYVBTC62Rjl0Ny5QabK58bw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stylistic/eslint-plugin-js": "^2.3.0",
|
"@stylistic/eslint-plugin-js": "^2.6.1",
|
||||||
"@types/eslint": "^8.56.10",
|
"@types/eslint": "^9.6.0",
|
||||||
"estraverse": "^5.3.0",
|
"estraverse": "^5.3.0",
|
||||||
"picomatch": "^4.0.2"
|
"picomatch": "^4.0.2"
|
||||||
},
|
},
|
||||||
|
@ -317,29 +317,29 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@stylistic/eslint-plugin-plus": {
|
"node_modules/@stylistic/eslint-plugin-plus": {
|
||||||
"version": "2.3.0",
|
"version": "2.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-plus/-/eslint-plugin-plus-2.6.1.tgz",
|
||||||
"integrity": "sha512-xboPWGUU5yaPlR+WR57GwXEuY4PSlPqA0C3IdNA/+1o2MuBi95XgDJcZiJ9N+aXsqBXAPIpFFb+WQ7QEHo4f7g==",
|
"integrity": "sha512-z/IYu/q8ipApzNam5utSU+BrXg4pK/Gv9xNbr4eWv/bZppvTWJU62xCO4nw/6r2dHNPnqc7uCHEC7GMlBnPY0A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/eslint": "^8.56.10",
|
"@types/eslint": "^9.6.0",
|
||||||
"@typescript-eslint/utils": "^7.12.0"
|
"@typescript-eslint/utils": "^8.0.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": "*"
|
"eslint": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@stylistic/eslint-plugin-ts": {
|
"node_modules/@stylistic/eslint-plugin-ts": {
|
||||||
"version": "2.3.0",
|
"version": "2.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.6.1.tgz",
|
||||||
"integrity": "sha512-wqOR38/uz/0XPnHX68ftp8sNMSAqnYGjovOTN7w00xnjS6Lxr3Sk7q6AaxWWqbMvOj7V2fQiMC5HWAbTruJsCg==",
|
"integrity": "sha512-Mxl1VMorEG1Hc6oBYPD0+KIJOWkjEF1R0liL7wWgKfwpqOkgmnh5lVdZBrYyfRKOE4RlGcwEFTNai1IW6orgVg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stylistic/eslint-plugin-js": "2.3.0",
|
"@stylistic/eslint-plugin-js": "2.6.1",
|
||||||
"@types/eslint": "^8.56.10",
|
"@types/eslint": "^9.6.0",
|
||||||
"@typescript-eslint/utils": "^7.12.0"
|
"@typescript-eslint/utils": "^8.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
|
@ -349,9 +349,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/eslint": {
|
"node_modules/@types/eslint": {
|
||||||
"version": "8.56.10",
|
"version": "9.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz",
|
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz",
|
||||||
"integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
|
"integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -384,42 +384,42 @@
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.14.11",
|
"version": "22.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.0.2.tgz",
|
||||||
"integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==",
|
"integrity": "sha512-yPL6DyFwY5PiMVEwymNeqUTKsDczQBJ/5T7W/46RwLU/VH+AA8aT5TZkvBviLKLbbm0hlfftEkGrNzfRk/fofQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~6.11.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.0.tgz",
|
||||||
"integrity": "sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==",
|
"integrity": "sha512-STIZdwEQRXAHvNUS6ILDf5z3u95Gc8jzywunxSNqX00OooIemaaNIA0vEgynJlycL5AjabYLLrIyHd4iazyvtg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/regexpp": "^4.10.0",
|
"@eslint-community/regexpp": "^4.10.0",
|
||||||
"@typescript-eslint/scope-manager": "7.16.1",
|
"@typescript-eslint/scope-manager": "8.0.0",
|
||||||
"@typescript-eslint/type-utils": "7.16.1",
|
"@typescript-eslint/type-utils": "8.0.0",
|
||||||
"@typescript-eslint/utils": "7.16.1",
|
"@typescript-eslint/utils": "8.0.0",
|
||||||
"@typescript-eslint/visitor-keys": "7.16.1",
|
"@typescript-eslint/visitor-keys": "8.0.0",
|
||||||
"graphemer": "^1.4.0",
|
"graphemer": "^1.4.0",
|
||||||
"ignore": "^5.3.1",
|
"ignore": "^5.3.1",
|
||||||
"natural-compare": "^1.4.0",
|
"natural-compare": "^1.4.0",
|
||||||
"ts-api-utils": "^1.3.0"
|
"ts-api-utils": "^1.3.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
"url": "https://opencollective.com/typescript-eslint"
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@typescript-eslint/parser": "^7.0.0",
|
"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
|
||||||
"eslint": "^8.56.0"
|
"eslint": "^8.57.0 || ^9.0.0"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"typescript": {
|
"typescript": {
|
||||||
|
@ -428,27 +428,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser": {
|
"node_modules/@typescript-eslint/parser": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.0.0.tgz",
|
||||||
"integrity": "sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==",
|
"integrity": "sha512-pS1hdZ+vnrpDIxuFXYQpLTILglTjSYJ9MbetZctrUawogUsPdz31DIIRZ9+rab0LhYNTsk88w4fIzVheiTbWOQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BSD-2-Clause",
|
"license": "BSD-2-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "7.16.1",
|
"@typescript-eslint/scope-manager": "8.0.0",
|
||||||
"@typescript-eslint/types": "7.16.1",
|
"@typescript-eslint/types": "8.0.0",
|
||||||
"@typescript-eslint/typescript-estree": "7.16.1",
|
"@typescript-eslint/typescript-estree": "8.0.0",
|
||||||
"@typescript-eslint/visitor-keys": "7.16.1",
|
"@typescript-eslint/visitor-keys": "8.0.0",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
"url": "https://opencollective.com/typescript-eslint"
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": "^8.56.0"
|
"eslint": "^8.57.0 || ^9.0.0"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"typescript": {
|
"typescript": {
|
||||||
|
@ -457,17 +457,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/scope-manager": {
|
"node_modules/@typescript-eslint/scope-manager": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.0.tgz",
|
||||||
"integrity": "sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==",
|
"integrity": "sha512-V0aa9Csx/ZWWv2IPgTfY7T4agYwJyILESu/PVqFtTFz9RIS823mAze+NbnBI8xiwdX3iqeQbcTYlvB04G9wyQw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "7.16.1",
|
"@typescript-eslint/types": "8.0.0",
|
||||||
"@typescript-eslint/visitor-keys": "7.16.1"
|
"@typescript-eslint/visitor-keys": "8.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -475,27 +475,24 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/type-utils": {
|
"node_modules/@typescript-eslint/type-utils": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.0.0.tgz",
|
||||||
"integrity": "sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==",
|
"integrity": "sha512-mJAFP2mZLTBwAn5WI4PMakpywfWFH5nQZezUQdSKV23Pqo6o9iShQg1hP2+0hJJXP2LnZkWPphdIq4juYYwCeg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/typescript-estree": "7.16.1",
|
"@typescript-eslint/typescript-estree": "8.0.0",
|
||||||
"@typescript-eslint/utils": "7.16.1",
|
"@typescript-eslint/utils": "8.0.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"ts-api-utils": "^1.3.0"
|
"ts-api-utils": "^1.3.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
"url": "https://opencollective.com/typescript-eslint"
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
|
||||||
"eslint": "^8.56.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"optional": true
|
"optional": true
|
||||||
|
@ -503,13 +500,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/types": {
|
"node_modules/@typescript-eslint/types": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0.tgz",
|
||||||
"integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==",
|
"integrity": "sha512-wgdSGs9BTMWQ7ooeHtu5quddKKs5Z5dS+fHLbrQI+ID0XWJLODGMHRfhwImiHoeO2S5Wir2yXuadJN6/l4JRxw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -517,14 +514,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0.tgz",
|
||||||
"integrity": "sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==",
|
"integrity": "sha512-5b97WpKMX+Y43YKi4zVcCVLtK5F98dFls3Oxui8LbnmRsseKenbbDinmvxrWegKDMmlkIq/XHuyy0UGLtpCDKg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BSD-2-Clause",
|
"license": "BSD-2-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "7.16.1",
|
"@typescript-eslint/types": "8.0.0",
|
||||||
"@typescript-eslint/visitor-keys": "7.16.1",
|
"@typescript-eslint/visitor-keys": "8.0.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"globby": "^11.1.0",
|
"globby": "^11.1.0",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
|
@ -533,7 +530,7 @@
|
||||||
"ts-api-utils": "^1.3.0"
|
"ts-api-utils": "^1.3.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -546,40 +543,40 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/utils": {
|
"node_modules/@typescript-eslint/utils": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.0.tgz",
|
||||||
"integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==",
|
"integrity": "sha512-k/oS/A/3QeGLRvOWCg6/9rATJL5rec7/5s1YmdS0ZU6LHveJyGFwBvLhSRBv6i9xaj7etmosp+l+ViN1I9Aj/Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.4.0",
|
"@eslint-community/eslint-utils": "^4.4.0",
|
||||||
"@typescript-eslint/scope-manager": "7.16.1",
|
"@typescript-eslint/scope-manager": "8.0.0",
|
||||||
"@typescript-eslint/types": "7.16.1",
|
"@typescript-eslint/types": "8.0.0",
|
||||||
"@typescript-eslint/typescript-estree": "7.16.1"
|
"@typescript-eslint/typescript-estree": "8.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
"url": "https://opencollective.com/typescript-eslint"
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": "^8.56.0"
|
"eslint": "^8.57.0 || ^9.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/visitor-keys": {
|
"node_modules/@typescript-eslint/visitor-keys": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.0.tgz",
|
||||||
"integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==",
|
"integrity": "sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "7.16.1",
|
"@typescript-eslint/types": "8.0.0",
|
||||||
"eslint-visitor-keys": "^3.4.3"
|
"eslint-visitor-keys": "^3.4.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -802,9 +799,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/debug": {
|
"node_modules/debug": {
|
||||||
"version": "4.3.5",
|
"version": "4.3.6",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz",
|
||||||
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
"integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -860,17 +857,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint": {
|
"node_modules/eslint": {
|
||||||
"version": "9.7.0",
|
"version": "9.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.8.0.tgz",
|
||||||
"integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==",
|
"integrity": "sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.2.0",
|
"@eslint-community/eslint-utils": "^4.2.0",
|
||||||
"@eslint-community/regexpp": "^4.11.0",
|
"@eslint-community/regexpp": "^4.11.0",
|
||||||
"@eslint/config-array": "^0.17.0",
|
"@eslint/config-array": "^0.17.1",
|
||||||
"@eslint/eslintrc": "^3.1.0",
|
"@eslint/eslintrc": "^3.1.0",
|
||||||
"@eslint/js": "9.7.0",
|
"@eslint/js": "9.8.0",
|
||||||
"@humanwhocodes/module-importer": "^1.0.1",
|
"@humanwhocodes/module-importer": "^1.0.1",
|
||||||
"@humanwhocodes/retry": "^0.3.0",
|
"@humanwhocodes/retry": "^0.3.0",
|
||||||
"@nodelib/fs.walk": "^1.2.8",
|
"@nodelib/fs.walk": "^1.2.8",
|
||||||
|
@ -912,9 +909,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-jsdoc": {
|
"node_modules/eslint-plugin-jsdoc": {
|
||||||
"version": "48.7.0",
|
"version": "48.10.2",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.10.2.tgz",
|
||||||
"integrity": "sha512-5oiVf7Y+ZxGYQTlLq81X72n+S+hjvS/u0upAdbpPEeaIZILK3MKN8lm/6QqKioBjm/qZ0B5XpMQUtc2fUkqXAg==",
|
"integrity": "sha512-xTkf/MmEeVrTbezc6kDqCJmK9RcseIKo8X4oyoDCMvV4LY8dqrQi8kmfRrv9n0gNBkCclevaOh2Lkmu6Fs8SLg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -923,11 +920,12 @@
|
||||||
"comment-parser": "1.4.1",
|
"comment-parser": "1.4.1",
|
||||||
"debug": "^4.3.5",
|
"debug": "^4.3.5",
|
||||||
"escape-string-regexp": "^4.0.0",
|
"escape-string-regexp": "^4.0.0",
|
||||||
|
"espree": "^10.1.0",
|
||||||
"esquery": "^1.6.0",
|
"esquery": "^1.6.0",
|
||||||
"parse-imports": "^2.1.1",
|
"parse-imports": "^2.1.1",
|
||||||
"semver": "^7.6.2",
|
"semver": "^7.6.3",
|
||||||
"spdx-expression-parse": "^4.0.0",
|
"spdx-expression-parse": "^4.0.0",
|
||||||
"synckit": "^0.9.0"
|
"synckit": "^0.9.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
|
@ -1888,9 +1886,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.5.3",
|
"version": "5.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
||||||
"integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
|
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -1902,26 +1900,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript-eslint": {
|
"node_modules/typescript-eslint": {
|
||||||
"version": "7.16.1",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.0.0.tgz",
|
||||||
"integrity": "sha512-889oE5qELj65q/tGeOSvlreNKhimitFwZqQ0o7PcWC7/lgRkAMknznsCsV8J8mZGTP/Z+cIbX8accf2DE33hrA==",
|
"integrity": "sha512-yQWBJutWL1PmpmDddIOl9/Mi6vZjqNCjqSGBMQ4vsc2Aiodk0SnbQQWPXbSy0HNuKCuGkw1+u4aQ2mO40TdhDQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/eslint-plugin": "7.16.1",
|
"@typescript-eslint/eslint-plugin": "8.0.0",
|
||||||
"@typescript-eslint/parser": "7.16.1",
|
"@typescript-eslint/parser": "8.0.0",
|
||||||
"@typescript-eslint/utils": "7.16.1"
|
"@typescript-eslint/utils": "8.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || >=20.0.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
"url": "https://opencollective.com/typescript-eslint"
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
|
||||||
"eslint": "^8.56.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"optional": true
|
"optional": true
|
||||||
|
@ -1929,9 +1924,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/undici-types": {
|
"node_modules/undici-types": {
|
||||||
"version": "5.26.5",
|
"version": "6.11.1",
|
||||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.11.1.tgz",
|
||||||
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
|
"integrity": "sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,16 +5,13 @@
|
||||||
"fzf": "0.5.2"
|
"fzf": "0.5.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "9.7.0",
|
"@eslint/js": "9.8.0",
|
||||||
"@stylistic/eslint-plugin": "2.3.0",
|
"@stylistic/eslint-plugin": "2.6.1",
|
||||||
"@types/eslint__js": "8.42.3",
|
"@types/eslint__js": "8.42.3",
|
||||||
"@types/node": "20.14.11",
|
"@types/node": "22.0.2",
|
||||||
"eslint": "9.7.0",
|
"eslint": "9.8.0",
|
||||||
"eslint-plugin-jsdoc": "48.7.0",
|
"eslint-plugin-jsdoc": "48.10.2",
|
||||||
"typescript": "5.5.3",
|
"typescript": "5.5.4",
|
||||||
"typescript-eslint": "7.16.1"
|
"typescript-eslint": "8.0.0"
|
||||||
},
|
|
||||||
"overrides": {
|
|
||||||
"eslint": "$eslint"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,22 +41,6 @@ class Brightness extends Service {
|
||||||
return this.#kbd;
|
return this.#kbd;
|
||||||
}
|
}
|
||||||
|
|
||||||
get screen() {
|
|
||||||
return this.#screen;
|
|
||||||
}
|
|
||||||
|
|
||||||
get screenIcon() {
|
|
||||||
return this.#screenIcon;
|
|
||||||
}
|
|
||||||
|
|
||||||
get caps() {
|
|
||||||
return this.#caps;
|
|
||||||
}
|
|
||||||
|
|
||||||
get capsIcon() {
|
|
||||||
return this.#capsIcon;
|
|
||||||
}
|
|
||||||
|
|
||||||
set kbd(value) {
|
set kbd(value) {
|
||||||
if (value < 0 || value > this.#kbdMax) {
|
if (value < 0 || value > this.#kbdMax) {
|
||||||
return;
|
return;
|
||||||
|
@ -70,6 +54,10 @@ class Brightness extends Service {
|
||||||
.catch(console.error);
|
.catch(console.error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get screen() {
|
||||||
|
return this.#screen;
|
||||||
|
}
|
||||||
|
|
||||||
set screen(percent) {
|
set screen(percent) {
|
||||||
if (percent < 0) {
|
if (percent < 0) {
|
||||||
percent = 0;
|
percent = 0;
|
||||||
|
@ -88,16 +76,27 @@ class Brightness extends Service {
|
||||||
.catch(console.error);
|
.catch(console.error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get screenIcon() {
|
||||||
|
return this.#screenIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
get caps() {
|
||||||
|
return this.#caps;
|
||||||
|
}
|
||||||
|
|
||||||
|
get capsIcon() {
|
||||||
|
return this.#capsIcon;
|
||||||
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
try {
|
try {
|
||||||
this.#monitorKbdState();
|
this.#monitorKbdState();
|
||||||
this.#kbdMax = Number(exec(`brightnessctl -d ${KBD} m`));
|
this.#kbdMax = Number(exec(`brightnessctl -d ${KBD} m`));
|
||||||
this.#caps = Number(exec(`bash -c brightnessctl -d ${this.#capsName} g`));
|
this.#caps = Number(exec(`bash -c brightnessctl -d ${this.#capsName} g`));
|
||||||
this.#screen = Number(exec('brightnessctl g')) /
|
this.#screen = Number(exec('brightnessctl g')) / Number(exec('brightnessctl m'));
|
||||||
Number(exec('brightnessctl m'));
|
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (_e) {
|
||||||
console.error('missing dependancy: brightnessctl');
|
console.error('missing dependancy: brightnessctl');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,6 +139,7 @@ class Brightness extends Service {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
).catch(() => {
|
).catch(() => {
|
||||||
|
// @ts-expect-error this works in ags
|
||||||
interval.destroy();
|
interval.destroy();
|
||||||
});
|
});
|
||||||
}, INTERVAL);
|
}, INTERVAL);
|
||||||
|
|
|
@ -16,7 +16,7 @@ class Clipboard extends Service {
|
||||||
// Class Attributes
|
// Class Attributes
|
||||||
private _clips_left = 0;
|
private _clips_left = 0;
|
||||||
|
|
||||||
private _clips: Map<number, { clip: string; isImage: boolean }> = new Map();
|
private _clips = new Map<number, { clip: string, isImage: boolean }>();
|
||||||
|
|
||||||
get clips() {
|
get clips() {
|
||||||
return this._clips;
|
return this._clips;
|
||||||
|
@ -75,7 +75,7 @@ class Clipboard extends Service {
|
||||||
|
|
||||||
this._clips_left = Math.min(rawClips.length - 1, n);
|
this._clips_left = Math.min(rawClips.length - 1, n);
|
||||||
|
|
||||||
rawClips.forEach(async (clip, i) => {
|
rawClips.forEach(async(clip, i) => {
|
||||||
if (i > n) {
|
if (i > n) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ class Clipboard extends Service {
|
||||||
if (clip.includes('img')) {
|
if (clip.includes('img')) {
|
||||||
this._decrementClipsLeft();
|
this._decrementClipsLeft();
|
||||||
|
|
||||||
const newClip: [number, {clip: string; isImage: boolean;}] = [
|
const newClip: [number, { clip: string, isImage: boolean }] = [
|
||||||
parseInt((clip.match('[0-9]+') ?? [''])[0]),
|
parseInt((clip.match('[0-9]+') ?? [''])[0]),
|
||||||
{
|
{
|
||||||
clip,
|
clip,
|
||||||
|
@ -98,7 +98,7 @@ class Clipboard extends Service {
|
||||||
const decodedClip = await this._decodeItem(clip);
|
const decodedClip = await this._decodeItem(clip);
|
||||||
|
|
||||||
if (decodedClip) {
|
if (decodedClip) {
|
||||||
const newClip: [number, {clip: string; isImage: boolean;}] = [
|
const newClip: [number, { clip: string, isImage: boolean }] = [
|
||||||
parseInt(clip),
|
parseInt(clip),
|
||||||
{
|
{
|
||||||
clip: decodedClip,
|
clip: decodedClip,
|
||||||
|
@ -120,7 +120,7 @@ class Clipboard extends Service {
|
||||||
() => {
|
() => {
|
||||||
this._getHistory(1);
|
this._getHistory(1);
|
||||||
},
|
},
|
||||||
() => {/**/},
|
() => { /**/ },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ class GSR extends Service {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
() => {/**/},
|
() => { /**/ },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,27 +14,27 @@ const ON_CLICK_TRIGGERS = [
|
||||||
// Types
|
// Types
|
||||||
import { PopupWindow } from 'global-types';
|
import { PopupWindow } from 'global-types';
|
||||||
import { Subprocess } from 'types/@girs/gio-2.0/gio-2.0.cjs';
|
import { Subprocess } from 'types/@girs/gio-2.0/gio-2.0.cjs';
|
||||||
type Layer = {
|
interface Layer {
|
||||||
address: string;
|
address: string
|
||||||
x: number;
|
x: number
|
||||||
y: number;
|
y: number
|
||||||
w: number;
|
w: number
|
||||||
h: number;
|
h: number
|
||||||
namespace: string;
|
namespace: string
|
||||||
};
|
}
|
||||||
type Levels = {
|
interface Levels {
|
||||||
0?: Array<Layer> | null;
|
0?: Layer[] | null
|
||||||
1?: Array<Layer> | null;
|
1?: Layer[] | null
|
||||||
2?: Array<Layer> | null;
|
2?: Layer[] | null
|
||||||
3?: Array<Layer> | null;
|
3?: Layer[] | null
|
||||||
};
|
}
|
||||||
type Layers = {
|
interface Layers {
|
||||||
levels: Levels;
|
levels: Levels
|
||||||
};
|
}
|
||||||
type CursorPos = {
|
interface CursorPos {
|
||||||
x: number;
|
x: number
|
||||||
y: number;
|
y: number
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
class Pointers extends Service {
|
class Pointers extends Service {
|
||||||
|
@ -51,7 +51,7 @@ class Pointers extends Service {
|
||||||
|
|
||||||
#process = null as Subprocess | null;
|
#process = null as Subprocess | null;
|
||||||
#lastLine = '';
|
#lastLine = '';
|
||||||
#pointers = [] as Array<string>;
|
#pointers = [] as string[];
|
||||||
|
|
||||||
get process() {
|
get process() {
|
||||||
return this.#process;
|
return this.#process;
|
||||||
|
@ -111,12 +111,12 @@ class Pointers extends Service {
|
||||||
#initAppConnection() {
|
#initAppConnection() {
|
||||||
App.connect('window-toggled', () => {
|
App.connect('window-toggled', () => {
|
||||||
const anyVisibleAndClosable =
|
const anyVisibleAndClosable =
|
||||||
(App.windows as Array<PopupWindow>).some((w) => {
|
(App.windows as PopupWindow[]).some((w) => {
|
||||||
const closable = w.close_on_unfocus &&
|
const closable = w.close_on_unfocus &&
|
||||||
!(
|
!(
|
||||||
w.close_on_unfocus === 'none' ||
|
w.close_on_unfocus === 'none' ||
|
||||||
w.close_on_unfocus === 'stay'
|
w.close_on_unfocus === 'stay'
|
||||||
);
|
);
|
||||||
|
|
||||||
return w.visible && closable;
|
return w.visible && closable;
|
||||||
});
|
});
|
||||||
|
@ -132,7 +132,7 @@ class Pointers extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
static detectClickedOutside(clickStage: string) {
|
static detectClickedOutside(clickStage: string) {
|
||||||
const toClose = ((App.windows as Array<PopupWindow>)).some((w) => {
|
const toClose = ((App.windows as PopupWindow[])).some((w) => {
|
||||||
const closable = (
|
const closable = (
|
||||||
w.close_on_unfocus &&
|
w.close_on_unfocus &&
|
||||||
w.close_on_unfocus === clickStage
|
w.close_on_unfocus === clickStage
|
||||||
|
@ -160,8 +160,8 @@ class Pointers extends Service {
|
||||||
'osk',
|
'osk',
|
||||||
];
|
];
|
||||||
|
|
||||||
const getNoCloseWidgets = (names: Array<string>) => {
|
const getNoCloseWidgets = (names: string[]) => {
|
||||||
const arr = [] as Array<Layer>;
|
const arr = [] as Layer[];
|
||||||
|
|
||||||
names.forEach((name) => {
|
names.forEach((name) => {
|
||||||
arr.push(
|
arr.push(
|
||||||
|
@ -184,7 +184,7 @@ class Pointers extends Service {
|
||||||
};
|
};
|
||||||
const clickIsOnWidget = (w: Layer) => {
|
const clickIsOnWidget = (w: Layer) => {
|
||||||
return pos.x > w.x && pos.x < w.x + w.w &&
|
return pos.x > w.x && pos.x < w.x + w.w &&
|
||||||
pos.y > w.y && pos.y < w.y + w.h;
|
pos.y > w.y && pos.y < w.y + w.h;
|
||||||
};
|
};
|
||||||
|
|
||||||
const noCloseWidgets =
|
const noCloseWidgets =
|
||||||
|
@ -200,9 +200,9 @@ class Pointers extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
return window &&
|
return window &&
|
||||||
window.close_on_unfocus &&
|
window.close_on_unfocus &&
|
||||||
window.close_on_unfocus ===
|
window.close_on_unfocus ===
|
||||||
clickStage;
|
clickStage;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (noCloseWidgets.some(clickIsOnWidget)) {
|
if (noCloseWidgets.some(clickIsOnWidget)) {
|
||||||
|
@ -212,7 +212,7 @@ class Pointers extends Service {
|
||||||
widgets.forEach(
|
widgets.forEach(
|
||||||
(w) => {
|
(w) => {
|
||||||
if (!(pos.x > w.x && pos.x < w.x + w.w &&
|
if (!(pos.x > w.x && pos.x < w.x + w.w &&
|
||||||
pos.y > w.y && pos.y < w.y + w.h)) {
|
pos.y > w.y && pos.y < w.y + w.h)) {
|
||||||
App.closeWindow(w.namespace);
|
App.closeWindow(w.namespace);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { Application } from 'types/service/applications.ts';
|
||||||
const bash = async(strings: TemplateStringsArray | string, ...values: unknown[]) => {
|
const bash = async(strings: TemplateStringsArray | string, ...values: unknown[]) => {
|
||||||
const cmd = typeof strings === 'string' ?
|
const cmd = typeof strings === 'string' ?
|
||||||
strings :
|
strings :
|
||||||
strings.flatMap((str, i) => `${str }${values[i] ?? ''}`)
|
strings.flatMap((str, i) => `${str}${values[i] ?? ''}`)
|
||||||
.join('');
|
.join('');
|
||||||
|
|
||||||
return Utils.execAsync(['bash', '-c', cmd]).catch((err) => {
|
return Utils.execAsync(['bash', '-c', cmd]).catch((err) => {
|
||||||
|
|
|
@ -69,7 +69,7 @@ export default () => {
|
||||||
rows.forEach((row) => {
|
rows.forEach((row) => {
|
||||||
row.changed();
|
row.changed();
|
||||||
|
|
||||||
const item = (row.get_children()[0] as AgsAppItem);
|
const item = row.get_children()[0] as AgsAppItem;
|
||||||
|
|
||||||
if (item.attribute.app) {
|
if (item.attribute.app) {
|
||||||
const isMatching = fzfResults.some((r) => {
|
const isMatching = fzfResults.some((r) => {
|
||||||
|
|
|
@ -27,7 +27,7 @@ Hyprland.connect('event', (hyprObj) => {
|
||||||
const mon = Hyprland.getMonitor(c.monitor);
|
const mon = Hyprland.getMonitor(c.monitor);
|
||||||
|
|
||||||
return c.fullscreen &&
|
return c.fullscreen &&
|
||||||
c.workspace.id === mon?.activeWorkspace.id;
|
c.workspace.id === mon?.activeWorkspace.id;
|
||||||
});
|
});
|
||||||
|
|
||||||
const monitors = fsClients.map((c) =>
|
const monitors = fsClients.map((c) =>
|
||||||
|
|
|
@ -9,11 +9,11 @@ export default () => HoverRevealer({
|
||||||
|
|
||||||
icon: Icon().hook(Network, (self) => {
|
icon: Icon().hook(Network, (self) => {
|
||||||
if (Network.wifi.internet === 'connected' ||
|
if (Network.wifi.internet === 'connected' ||
|
||||||
Network.wifi.internet === 'connecting') {
|
Network.wifi.internet === 'connecting') {
|
||||||
self.icon = Network.wifi.icon_name;
|
self.icon = Network.wifi.icon_name;
|
||||||
}
|
}
|
||||||
else if (Network.wired.internet === 'connected' ||
|
else if (Network.wired.internet === 'connected' ||
|
||||||
Network.wired.internet === 'connecting') {
|
Network.wired.internet === 'connecting') {
|
||||||
self.icon = Network.wired.icon_name;
|
self.icon = Network.wired.icon_name;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -23,11 +23,11 @@ export default () => HoverRevealer({
|
||||||
|
|
||||||
label: Label().hook(Network, (self) => {
|
label: Label().hook(Network, (self) => {
|
||||||
if (Network.wifi.internet === 'connected' ||
|
if (Network.wifi.internet === 'connected' ||
|
||||||
Network.wifi.internet === 'connecting') {
|
Network.wifi.internet === 'connecting') {
|
||||||
self.label = Network.wifi.ssid || 'Unknown';
|
self.label = Network.wifi.ssid || 'Unknown';
|
||||||
}
|
}
|
||||||
else if (Network.wired.internet === 'connected' ||
|
else if (Network.wired.internet === 'connected' ||
|
||||||
Network.wired.internet === 'connecting') {
|
Network.wired.internet === 'connecting') {
|
||||||
self.label = 'Connected';
|
self.label = 'Connected';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -50,7 +50,7 @@ const Workspace = ({ id }: { id: number }) => {
|
||||||
// Deal with urgent windows
|
// Deal with urgent windows
|
||||||
const client = Hyprland.getClient(addr);
|
const client = Hyprland.getClient(addr);
|
||||||
const isThisUrgent = client &&
|
const isThisUrgent = client &&
|
||||||
client.workspace.id === id;
|
client.workspace.id === id;
|
||||||
|
|
||||||
if (isThisUrgent) {
|
if (isThisUrgent) {
|
||||||
self.toggleClassName('urgent', true);
|
self.toggleClassName('urgent', true);
|
||||||
|
|
|
@ -3,10 +3,12 @@ import CalendarWidget from './main.ts';
|
||||||
import { get_gdkmonitor_from_desc } from '../lib.ts';
|
import { get_gdkmonitor_from_desc } from '../lib.ts';
|
||||||
|
|
||||||
|
|
||||||
|
const RIGHT_MARGIN = 20;
|
||||||
|
|
||||||
export default () => PopupWindow({
|
export default () => PopupWindow({
|
||||||
name: 'calendar',
|
name: 'calendar',
|
||||||
anchor: ['bottom', 'right'],
|
anchor: ['bottom', 'right'],
|
||||||
margins: [0, 20, 0, 0],
|
margins: [0, RIGHT_MARGIN, 0, 0],
|
||||||
transition: 'slide bottom',
|
transition: 'slide bottom',
|
||||||
gdkmonitor: get_gdkmonitor_from_desc('desc:Acer Technologies Acer K212HQL T3EAA0014201'),
|
gdkmonitor: get_gdkmonitor_from_desc('desc:Acer Technologies Acer K212HQL T3EAA0014201'),
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,8 @@ import { Box as AgsBox } from 'types/widgets/box';
|
||||||
|
|
||||||
|
|
||||||
const lock = Lock.prepare_lock();
|
const lock = Lock.prepare_lock();
|
||||||
const windows: Map<Gdk.Monitor, Gtk.Window> = new Map();
|
const windows = new Map<Gdk.Monitor, Gtk.Window>();
|
||||||
const blurBGs: AgsBox<Gtk.Widget, { geometry: { w: number, h: number }; }>[] = [];
|
const blurBGs: AgsBox<Gtk.Widget, { geometry: { w: number, h: number } }>[] = [];
|
||||||
|
|
||||||
const transition_duration = 1000;
|
const transition_duration = 1000;
|
||||||
const WINDOW_MARGINS = -2;
|
const WINDOW_MARGINS = -2;
|
||||||
|
|
|
@ -19,7 +19,7 @@ import {
|
||||||
|
|
||||||
|
|
||||||
export default ({
|
export default ({
|
||||||
setup = () => {/**/},
|
setup = () => { /**/ },
|
||||||
...props
|
...props
|
||||||
}: Gesture) => {
|
}: Gesture) => {
|
||||||
const widget = EventBox();
|
const widget = EventBox();
|
||||||
|
|
|
@ -3,10 +3,10 @@ import { PopupWindow } from 'global-types';
|
||||||
|
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
(App.windows as Array<PopupWindow>)
|
(App.windows as PopupWindow[])
|
||||||
.filter((w) => w &&
|
.filter((w) => w &&
|
||||||
w.close_on_unfocus &&
|
w.close_on_unfocus &&
|
||||||
w.close_on_unfocus !== 'stay')
|
w.close_on_unfocus !== 'stay')
|
||||||
.forEach((w) => {
|
.forEach((w) => {
|
||||||
App.closeWindow(w.name);
|
App.closeWindow(w.name);
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,6 +5,9 @@ import Gdk from 'gi://Gdk?version=3.0';
|
||||||
import { BaseProps, Widget as AgsWidget } from 'types/widgets/widget';
|
import { BaseProps, Widget as AgsWidget } from 'types/widgets/widget';
|
||||||
type EventHandler<Self> = (self: Self, event: Gdk.Event) => boolean | unknown;
|
type EventHandler<Self> = (self: Self, event: Gdk.Event) => boolean | unknown;
|
||||||
|
|
||||||
|
// eslint-disable-next-line
|
||||||
|
export interface CursorBox<Child, Attr> extends AgsWidget<Attr> { }
|
||||||
|
|
||||||
export type CursorBoxProps<
|
export type CursorBoxProps<
|
||||||
Child extends Gtk.Widget,
|
Child extends Gtk.Widget,
|
||||||
Attr = unknown,
|
Attr = unknown,
|
||||||
|
@ -26,10 +29,8 @@ export type CursorBoxProps<
|
||||||
on_secondary_click_release?: EventHandler<Self>
|
on_secondary_click_release?: EventHandler<Self>
|
||||||
}, Attr>;
|
}, Attr>;
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
export interface CursorBox<Child, Attr> extends AgsWidget<Attr> { }
|
|
||||||
|
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
||||||
export class CursorBox<Child extends Gtk.Widget, Attr> extends Gtk.EventBox {
|
export class CursorBox<Child extends Gtk.Widget, Attr> extends Gtk.EventBox {
|
||||||
static {
|
static {
|
||||||
Widget.register(this, {
|
Widget.register(this, {
|
||||||
|
|
|
@ -3,7 +3,7 @@ const { get_home_dir } = imports.gi.GLib;
|
||||||
|
|
||||||
import GObject from 'types/@girs/gobject-2.0/gobject-2.0';
|
import GObject from 'types/@girs/gobject-2.0/gobject-2.0';
|
||||||
|
|
||||||
type Persist = {
|
interface Persist {
|
||||||
name: string
|
name: string
|
||||||
gobject: GObject.Object
|
gobject: GObject.Object
|
||||||
prop: string
|
prop: string
|
||||||
|
@ -11,7 +11,7 @@ type Persist = {
|
||||||
whenTrue?: boolean | string
|
whenTrue?: boolean | string
|
||||||
whenFalse?: boolean | string
|
whenFalse?: boolean | string
|
||||||
signal?: string
|
signal?: string
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
export default ({
|
export default ({
|
||||||
|
|
|
@ -8,6 +8,9 @@ import { Window } from 'resource:///com/github/Aylur/ags/widgets/window.js';
|
||||||
import type { WindowProps } from 'types/widgets/window';
|
import type { WindowProps } from 'types/widgets/window';
|
||||||
import type { Widget as AgsWidget } from 'types/widgets/widget';
|
import type { Widget as AgsWidget } from 'types/widgets/widget';
|
||||||
|
|
||||||
|
// eslint-disable-next-line
|
||||||
|
export interface PopupWindow<Child, Attr> extends AgsWidget<Attr> { }
|
||||||
|
|
||||||
import {
|
import {
|
||||||
CloseType,
|
CloseType,
|
||||||
HyprTransition,
|
HyprTransition,
|
||||||
|
@ -18,17 +21,15 @@ export type PopupWindowProps<
|
||||||
Attr = unknown,
|
Attr = unknown,
|
||||||
Self = PopupWindow<Child, Attr>,
|
Self = PopupWindow<Child, Attr>,
|
||||||
> = WindowProps<Child, Attr, Self> & {
|
> = WindowProps<Child, Attr, Self> & {
|
||||||
transition?: HyprTransition;
|
transition?: HyprTransition
|
||||||
on_open?(self: PopupWindow<Child, Attr>): void;
|
on_open?(self: PopupWindow<Child, Attr>): void
|
||||||
on_close?(self: PopupWindow<Child, Attr>): void;
|
on_close?(self: PopupWindow<Child, Attr>): void
|
||||||
close_on_unfocus?: CloseType;
|
close_on_unfocus?: CloseType
|
||||||
anchor?: Array<'top' | 'bottom' | 'right' | 'left'>;
|
anchor?: ('top' | 'bottom' | 'right' | 'left')[]
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
export interface PopupWindow<Child, Attr> extends AgsWidget<Attr> { }
|
|
||||||
|
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
||||||
export class PopupWindow<
|
export class PopupWindow<
|
||||||
Child extends Gtk.Widget,
|
Child extends Gtk.Widget,
|
||||||
Attr,
|
Attr,
|
||||||
|
@ -68,6 +69,7 @@ export class PopupWindow<
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-use-before-define
|
||||||
protected _on_open: (self: PopupWindow<Child, Attr>) => void;
|
protected _on_open: (self: PopupWindow<Child, Attr>) => void;
|
||||||
|
|
||||||
get on_open() {
|
get on_open() {
|
||||||
|
@ -79,6 +81,7 @@ export class PopupWindow<
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-use-before-define
|
||||||
private _on_close: (self: PopupWindow<Child, Attr>) => void;
|
private _on_close: (self: PopupWindow<Child, Attr>) => void;
|
||||||
|
|
||||||
get on_close() {
|
get on_close() {
|
||||||
|
@ -92,8 +95,8 @@ export class PopupWindow<
|
||||||
|
|
||||||
constructor({
|
constructor({
|
||||||
transition = 'slide top',
|
transition = 'slide top',
|
||||||
on_open = () => {/**/ },
|
on_open = () => { /**/ },
|
||||||
on_close = () => {/**/ },
|
on_close = () => { /**/ },
|
||||||
|
|
||||||
// Window props
|
// Window props
|
||||||
name,
|
name,
|
||||||
|
|
|
@ -9,22 +9,24 @@ import { ListBoxRow } from 'types/@girs/gtk-3.0/gtk-3.0.cjs';
|
||||||
import { Monitor } from 'types/service/hyprland';
|
import { Monitor } from 'types/service/hyprland';
|
||||||
import { Binding } from 'types/service';
|
import { Binding } from 'types/service';
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
export interface SortedList<Attr> extends AgsWidget<Attr> { }
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-use-before-define
|
||||||
type MakeChild = ReturnType<typeof makeChild>;
|
type MakeChild = ReturnType<typeof makeChild>;
|
||||||
|
|
||||||
type SortedListProps<Attr = unknown, Self = SortedList<Attr>> =
|
type SortedListProps<Attr = unknown, Self = SortedList<Attr>> =
|
||||||
PopupWindowProps<MakeChild['child'], Attr, Self> & {
|
PopupWindowProps<MakeChild['child'], Attr, Self> & {
|
||||||
on_select: (row: ListBoxRow) => void;
|
on_select: (row: ListBoxRow) => void
|
||||||
init_rows?: (list: MakeChild['list']) => void;
|
init_rows?: (list: MakeChild['list']) => void
|
||||||
set_sort: (
|
set_sort: (
|
||||||
text: string,
|
text: string,
|
||||||
list: MakeChild['list'],
|
list: MakeChild['list'],
|
||||||
placeholder: MakeChild['placeholder'],
|
placeholder: MakeChild['placeholder'],
|
||||||
) => void;
|
) => void
|
||||||
setup_list?: (list: MakeChild['list']) => void;
|
setup_list?: (list: MakeChild['list']) => void
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
export interface SortedList<Attr> extends AgsWidget<Attr> { }
|
|
||||||
|
|
||||||
|
|
||||||
const centerCursor = async(): Promise<void> => {
|
const centerCursor = async(): Promise<void> => {
|
||||||
|
@ -108,6 +110,7 @@ const makeChild = (class_name: string | Binding<any, any, string>) => {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
||||||
export class SortedList<
|
export class SortedList<
|
||||||
Attr,
|
Attr,
|
||||||
> extends PopupWindow<MakeChild['child'], Attr> {
|
> extends PopupWindow<MakeChild['child'], Attr> {
|
||||||
|
|
|
@ -14,11 +14,11 @@ import { launchApp } from '../applauncher/launch.ts';
|
||||||
// Types
|
// Types
|
||||||
import { Notification as NotifObj } from 'types/service/notifications.ts';
|
import { Notification as NotifObj } from 'types/service/notifications.ts';
|
||||||
import { Client } from 'types/service/hyprland.ts';
|
import { Client } from 'types/service/hyprland.ts';
|
||||||
type NotificationWidget = {
|
interface NotificationWidget {
|
||||||
notif: NotifObj
|
notif: NotifObj
|
||||||
slideIn?: 'Left' | 'Right'
|
slideIn?: 'Left' | 'Right'
|
||||||
command?(): void
|
command?(): void
|
||||||
};
|
}
|
||||||
import {
|
import {
|
||||||
CursorBox as CBox,
|
CursorBox as CBox,
|
||||||
EventBoxGeneric,
|
EventBoxGeneric,
|
||||||
|
@ -46,7 +46,7 @@ const getDragState = (box: EventBoxGeneric) => (box
|
||||||
|
|
||||||
|
|
||||||
const NotificationIcon = (notif: NotifObj) => {
|
const NotificationIcon = (notif: NotifObj) => {
|
||||||
let iconCmd = (box: CBox):void => {
|
let iconCmd = (box: CBox): void => {
|
||||||
if (!box) {
|
if (!box) {
|
||||||
console.log();
|
console.log();
|
||||||
}
|
}
|
||||||
|
@ -66,16 +66,16 @@ const NotificationIcon = (notif: NotifObj) => {
|
||||||
if (!getDragState(box)) {
|
if (!getDragState(box)) {
|
||||||
if (wmClass === 'Proton Mail') {
|
if (wmClass === 'Proton Mail') {
|
||||||
Hyprland.messageAsync('dispatch ' +
|
Hyprland.messageAsync('dispatch ' +
|
||||||
'togglespecialworkspace thunder');
|
'togglespecialworkspace thunder');
|
||||||
}
|
}
|
||||||
else if (wmClass === 'Spotify') {
|
else if (wmClass === 'Spotify') {
|
||||||
Hyprland.messageAsync('dispatch ' +
|
Hyprland.messageAsync('dispatch ' +
|
||||||
'togglespecialworkspace spot');
|
'togglespecialworkspace spot');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Hyprland.messageAsync('j/clients').then((msg) => {
|
Hyprland.messageAsync('j/clients').then((msg) => {
|
||||||
const clients = JSON.parse(msg) as Array<Client>;
|
const clients = JSON.parse(msg) as Client[];
|
||||||
const classes = [] as Array<string>;
|
const classes = [] as string[];
|
||||||
|
|
||||||
for (const key of clients) {
|
for (const key of clients) {
|
||||||
if (key.class) {
|
if (key.class) {
|
||||||
|
@ -85,7 +85,7 @@ const NotificationIcon = (notif: NotifObj) => {
|
||||||
|
|
||||||
if (wmClass && classes.includes(wmClass)) {
|
if (wmClass && classes.includes(wmClass)) {
|
||||||
Hyprland.messageAsync('dispatch ' +
|
Hyprland.messageAsync('dispatch ' +
|
||||||
`focuswindow ^(${wmClass})`);
|
`focuswindow ^(${wmClass})`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Hyprland.messageAsync('dispatch workspace empty')
|
Hyprland.messageAsync('dispatch workspace empty')
|
||||||
|
@ -168,7 +168,7 @@ export const HasNotifs = Variable(false);
|
||||||
export const Notification = ({
|
export const Notification = ({
|
||||||
notif,
|
notif,
|
||||||
slideIn = 'Left',
|
slideIn = 'Left',
|
||||||
command = () => {/**/},
|
command = () => { /**/ },
|
||||||
}: NotificationWidget) => {
|
}: NotificationWidget) => {
|
||||||
if (!notif) {
|
if (!notif) {
|
||||||
return;
|
return;
|
||||||
|
@ -248,7 +248,7 @@ export const Notification = ({
|
||||||
notif.close(),
|
notif.close(),
|
||||||
|
|
||||||
child: Icon('window-close' +
|
child: Icon('window-close' +
|
||||||
'-symbolic'),
|
'-symbolic'),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|
|
@ -44,7 +44,7 @@ const defaultStyle = `${TRANSITION} margin: unset; opacity: 1;`;
|
||||||
export default ({
|
export default ({
|
||||||
id,
|
id,
|
||||||
slideIn = 'Left',
|
slideIn = 'Left',
|
||||||
command = () => {/**/},
|
command = () => { /**/ },
|
||||||
...props
|
...props
|
||||||
}) => {
|
}) => {
|
||||||
const widget = EventBox({
|
const widget = EventBox({
|
||||||
|
|
|
@ -28,7 +28,7 @@ export default (window: OskWindow) => {
|
||||||
|
|
||||||
window.child.setCss(`margin-bottom: -${HIDDEN_MARGIN}px;`);
|
window.child.setCss(`margin-bottom: -${HIDDEN_MARGIN}px;`);
|
||||||
|
|
||||||
let signals = [] as Array<number>;
|
let signals = [] as number[];
|
||||||
|
|
||||||
window.attribute = {
|
window.attribute = {
|
||||||
startY: null,
|
startY: null,
|
||||||
|
|
|
@ -45,14 +45,14 @@ const LCTRL_CODE = 29;
|
||||||
|
|
||||||
// Types
|
// Types
|
||||||
import { Variable as Var } from 'types/variable.ts';
|
import { Variable as Var } from 'types/variable.ts';
|
||||||
type Key = {
|
interface Key {
|
||||||
keytype: string,
|
keytype: string
|
||||||
label: string,
|
label: string
|
||||||
labelShift?: string,
|
labelShift?: string
|
||||||
labelAltGr?: string,
|
labelAltGr?: string
|
||||||
shape: string,
|
shape: string
|
||||||
keycode: number
|
keycode: number
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
const ModKey = (key: Key) => {
|
const ModKey = (key: Key) => {
|
||||||
|
|
|
@ -7,7 +7,7 @@ import PopupWindow from '../misc/popup.ts';
|
||||||
import { BoxGeneric } from 'global-types';
|
import { BoxGeneric } from 'global-types';
|
||||||
|
|
||||||
// Import all the OSDs as an array
|
// Import all the OSDs as an array
|
||||||
const OSDList = [] as Array<() => BoxGeneric>;
|
const OSDList = [] as (() => BoxGeneric)[];
|
||||||
|
|
||||||
import * as Modules from './osds.ts';
|
import * as Modules from './osds.ts';
|
||||||
for (const osd in Modules) {
|
for (const osd in Modules) {
|
||||||
|
|
|
@ -187,7 +187,7 @@ export const BluetoothMenu = () => {
|
||||||
// Make bottom scroll indicator appear only
|
// Make bottom scroll indicator appear only
|
||||||
// when first getting overflowing children
|
// when first getting overflowing children
|
||||||
if (!(bottomArrow.reveal_child === true ||
|
if (!(bottomArrow.reveal_child === true ||
|
||||||
topArrow.reveal_child === true)) {
|
topArrow.reveal_child === true)) {
|
||||||
bottomArrow.reveal_child = true;
|
bottomArrow.reveal_child = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,7 +200,7 @@ export const BluetoothMenu = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trigger sort_func
|
// Trigger sort_func
|
||||||
(self.get_children() as Array<ListBoxRow>)
|
(self.get_children() as ListBoxRow[])
|
||||||
.forEach((ch) => {
|
.forEach((ch) => {
|
||||||
ch.changed();
|
ch.changed();
|
||||||
});
|
});
|
||||||
|
|
|
@ -36,7 +36,7 @@ type IndicatorTuple = [
|
||||||
signal?: string,
|
signal?: string,
|
||||||
];
|
];
|
||||||
|
|
||||||
type GridButtonType = {
|
interface GridButtonType {
|
||||||
command?(): void
|
command?(): void
|
||||||
secondary_command?(): void
|
secondary_command?(): void
|
||||||
on_open?(menu: RevealerGeneric): void
|
on_open?(menu: RevealerGeneric): void
|
||||||
|
@ -44,17 +44,17 @@ type GridButtonType = {
|
||||||
indicator?: IndicatorTuple
|
indicator?: IndicatorTuple
|
||||||
// @ts-expect-error me is lazy
|
// @ts-expect-error me is lazy
|
||||||
menu?: Widget
|
menu?: Widget
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
// TODO: do vpn button
|
// TODO: do vpn button
|
||||||
const SPACING = 28;
|
const SPACING = 28;
|
||||||
const ButtonStates = [] as Array<Var<boolean>>;
|
const ButtonStates = [] as Var<boolean>[];
|
||||||
|
|
||||||
const GridButton = ({
|
const GridButton = ({
|
||||||
command = () => {/**/},
|
command = () => { /**/ },
|
||||||
secondary_command = () => {/**/},
|
secondary_command = () => { /**/ },
|
||||||
on_open = () => {/**/},
|
on_open = () => { /**/ },
|
||||||
icon,
|
icon,
|
||||||
indicator,
|
indicator,
|
||||||
menu,
|
menu,
|
||||||
|
@ -158,7 +158,7 @@ const GridButton = ({
|
||||||
?.children[1] as BoxGeneric;
|
?.children[1] as BoxGeneric;
|
||||||
|
|
||||||
const isSetup = (rowMenu
|
const isSetup = (rowMenu
|
||||||
.get_children() as Array<BoxGeneric>)
|
.get_children() as BoxGeneric[])
|
||||||
.find((ch) => ch === menu);
|
.find((ch) => ch === menu);
|
||||||
|
|
||||||
if (!isSetup) {
|
if (!isSetup) {
|
||||||
|
|
|
@ -43,7 +43,7 @@ const AccessPoint = (ap: APType) => {
|
||||||
self.setCss(
|
self.setCss(
|
||||||
`opacity: ${
|
`opacity: ${
|
||||||
widget.attribute.ap.value.ssid ===
|
widget.attribute.ap.value.ssid ===
|
||||||
Network.wifi.ssid ?
|
Network.wifi.ssid ?
|
||||||
'1' :
|
'1' :
|
||||||
'0'
|
'0'
|
||||||
};
|
};
|
||||||
|
@ -150,7 +150,7 @@ export const NetworkMenu = () => {
|
||||||
self.hook(Network, () => {
|
self.hook(Network, () => {
|
||||||
// Add missing APs
|
// Add missing APs
|
||||||
const currentAPs = Network.wifi
|
const currentAPs = Network.wifi
|
||||||
?.access_points as Array<APType>;
|
?.access_points as APType[];
|
||||||
|
|
||||||
currentAPs.forEach((ap) => {
|
currentAPs.forEach((ap) => {
|
||||||
if (ap.ssid !== 'Unknown') {
|
if (ap.ssid !== 'Unknown') {
|
||||||
|
@ -214,7 +214,7 @@ export const NetworkMenu = () => {
|
||||||
// Make bottom scroll indicator appear only
|
// Make bottom scroll indicator appear only
|
||||||
// when first getting overflowing children
|
// when first getting overflowing children
|
||||||
if (!(bottomArrow.reveal_child === true ||
|
if (!(bottomArrow.reveal_child === true ||
|
||||||
topArrow.reveal_child === true)) {
|
topArrow.reveal_child === true)) {
|
||||||
bottomArrow.reveal_child = true;
|
bottomArrow.reveal_child = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -227,7 +227,7 @@ export const NetworkMenu = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trigger sort_func
|
// Trigger sort_func
|
||||||
(self.get_children() as Array<ListBoxRow>)
|
(self.get_children() as ListBoxRow[])
|
||||||
.forEach((ch) => {
|
.forEach((ch) => {
|
||||||
ch.changed();
|
ch.changed();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue