From 68ab4bd247d44b3d15d8dcbc71e3c952ccfbd321 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Mon, 15 May 2023 11:59:14 +0100 Subject: [PATCH] Remove linting --- .eslintignore | 7 ------- .eslintrc | 18 ------------------ .husky/pre-commit | 4 ---- .lintstagedrc | 4 ---- .prettierignore | 1 - .prettierrc | 2 +- .stylelintignore | 7 ------- .stylelintrc | 21 --------------------- package.json | 20 +------------------- src/popover.ts | 32 +++++++++++++++++++++++++++----- 10 files changed, 29 insertions(+), 87 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc delete mode 100755 .husky/pre-commit delete mode 100644 .lintstagedrc delete mode 100644 .stylelintignore delete mode 100644 .stylelintrc diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 2d6e420..0000000 --- a/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -.history -.husky -.vscode -coverage -dist -node_modules -vite.config.ts diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 2a8d451..0000000 --- a/.eslintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "prettier"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "prettier" - ], - "env": { - "browser": true, - "node": true - }, - "rules": { - "prettier/prettier": "error" - } -} diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index d24fdfc..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npx lint-staged diff --git a/.lintstagedrc b/.lintstagedrc deleted file mode 100644 index ab71cc0..0000000 --- a/.lintstagedrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "./**/*.{ts,html,json}": "npm run format:scripts", - "./**/*.{css,scss}": "npm run format:styles" -} diff --git a/.prettierignore b/.prettierignore index dfa386e..9f88767 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,4 @@ .history -.husky .vscode coverage dist diff --git a/.prettierrc b/.prettierrc index ec26f03..dd94a83 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,5 @@ { - "printWidth": 80, + "printWidth": 120, "tabWidth": 2, "singleQuote": false, "trailingComma": "es5", diff --git a/.stylelintignore b/.stylelintignore deleted file mode 100644 index 2d6e420..0000000 --- a/.stylelintignore +++ /dev/null @@ -1,7 +0,0 @@ -.history -.husky -.vscode -coverage -dist -node_modules -vite.config.ts diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index bdcfc0d..0000000 --- a/.stylelintrc +++ /dev/null @@ -1,21 +0,0 @@ -{ - "plugins": ["stylelint-prettier"], - "extends": [ - "stylelint-config-recommended", - "stylelint-config-sass-guidelines", - "stylelint-config-prettier" - ], - "overrides": [ - { - "files": ["**/*.scss"], - "customSyntax": "postcss-scss" - } - ], - "rules": { - "prettier/prettier": true, - "function-parentheses-space-inside": null, - "no-descending-specificity": null, - "max-nesting-depth": 2, - "selector-max-id": 1 - } -} diff --git a/package.json b/package.json index 5a68b1d..f355901 100644 --- a/package.json +++ b/package.json @@ -15,34 +15,16 @@ "build": "tsc && vite build && dts-bundle-generator --config ./dts-bundle-generator.config.ts", "test": "vitest", "test:coverage": "vitest --coverage", - "lint:scripts": "eslint . --ext .ts", - "lint:styles": "stylelint ./**/*.{css,scss}", - "format:scripts": "prettier . --write", - "format:styles": "stylelint ./**/*.{css,scss} --fix", - "format": "npm run format:scripts && npm run format:styles", - "prepare": "husky install && husky set .husky/pre-commit 'npx lint-staged' && git add .husky/pre-commit", - "uninstall-husky": "npm uninstall husky --no-save && git config --unset core.hooksPath && npx rimraf .husky" + "format": "prettier . --write" }, "devDependencies": { "@types/jsdom": "^21.1.1", "@types/node": "^20.1.0", - "@typescript-eslint/eslint-plugin": "^5.59.2", - "@typescript-eslint/parser": "^5.59.2", "@vitest/coverage-c8": "^0.31.0", "dts-bundle-generator": "^8.0.1", - "eslint": "^8.40.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^4.2.1", - "husky": "^8.0.3", - "lint-staged": "^13.2.2", "postcss": "^8.4.23", "postcss-scss": "^4.0.6", "prettier": "^2.8.8", - "stylelint": "^15.6.1", - "stylelint-config-prettier": "^9.0.5", - "stylelint-config-recommended": "^12.0.0", - "stylelint-config-sass-guidelines": "^10.0.0", - "stylelint-prettier": "^3.0.0", "ts-node": "^10.9.1", "typescript": "^5.0.4", "vite": "^4.3.5", diff --git a/src/popover.ts b/src/popover.ts index 35c903f..ce96d37 100644 --- a/src/popover.ts +++ b/src/popover.ts @@ -50,13 +50,35 @@ export function refreshPopover(element: Element) { const popoverArrow = popover.arrow; // const position = calculatePopoverPosition(element); - popoverArrow?.classList.add( - "driver-popover-arrow-side-bottom", - "driver-popover-arrow-align-center" - ); + popoverArrow?.classList.add("driver-popover-arrow-side-bottom", "driver-popover-arrow-align-center"); } -function calculatePopoverPosition(element: Element) {} +function calculatePopoverPosition(element: Element) { + if (!popover) { + return; + } + + const popoverPadding = 10; + + const popoverDimensions = popover.wrapper.getBoundingClientRect(); + const popoverArrowDimensions = popover.arrow.getBoundingClientRect(); + const elementDimensions = element.getBoundingClientRect(); + + const popoverWidth = popoverDimensions.width + popoverPadding; + const popoverHeight = popoverDimensions.height + popoverPadding; + + const topValue = elementDimensions.top - popoverHeight; + const isTopOptimal = topValue >= 0; + + const bottomValue = window.innerHeight - (elementDimensions.bottom + popoverHeight); + const isBottomOptimal = bottomValue >= 0; + + const leftValue = elementDimensions.left - popoverWidth; + const isLeftOptimal = leftValue >= 0; + + const rightValue = window.innerWidth - (elementDimensions.right + popoverWidth); + const isRightOptimal = rightValue >= 0; +} function createPopover(): PopoverDOM { const wrapper = document.createElement("div");