feat: migrate editor-ui to Vite.js and various DX improvements (N8N-2277) (#4061)

* feat: Added vite.js dependencies.

* chore: Removed tests folder to follow same structure as design-system

* chore: Removed unused testing config.

* chore: Created vite.js index.html

* refactor: Updated scss structure and imports.

* refactor: Updated workflow building.

* fix: Cleared up all workflow dependency cycles. Added proper package.json imports config.

* feat: Got a working build using Vite. Need to fix issues next.

* fix: Progress! Getting process.env error.

* fix: Changed process.env to import.meta.env.

* fix: Fixed circular imports that used require(). Fixed monaco editor.

* chore: Removed commented code.

* chore: Cleaned up package.json

* feat: Made necessary changes to replace base path in css files.

* feat: Serve CSS files for `editor-ui` Vite migration (#4069)

 Serve CSS files for Vite migration

* chore: Fixed package-lock.json.

* fix: Fixed build after centralized tsconfig update.

* fix: Removed lodash-es replacement.

* fix: Commented out vitest test command.

* style: Fixed linting issues.

* fix: Added lodash-es hotfix back.

* chore: Updated package-lock.json

* refactor: Renamed all n8n scss variables to no longer be defined as private.

* feat(editor): add application-wide el-button replacement.

* fix(editor): Fix import in page alert after merge.

* chore(editor): update package-lock.json.

* fix: Case sensitive lodash-es replacement for vue-agile.

* fix: add alias for lodash-es camelcase import.

* fix: add patch-package support for fixing quill

* feat: add patch-package on postinstall

* fix: update quill patch path.

* refactor: rename quill patch

* fix: update quill version.

* fix: update quill patch

* fix: fix linting rules after installing eslint in design-system

* fix: update date picker button to have primary color

* test: update callout component snapshots

* fix(editor): fix linting issues in editor after enabling eslint

* fix(cli): add /assets/* to auth ignore endpoints in server

* chore: update package-lock.json

* chore: update package-lock.json

* fix(editor): fix linting issues

* feat: add vite-legacy support

* fix: update workflow package interface imports to type imports.

* chore: update package-lock.json

* fix(editor) fix importing translations other than english

* fix(editor): remove test command until vitest is added

* fix: increase memory allocation for vite build

* fix: add patch-package patches to n8n-custom docker build

* fix: add performance and load time improvements

* fix: add proper typing to setNodeType

* chore: update package-lock.json

* style: use generic type for reduce in setNodeType

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
This commit is contained in:
Alex Grozav
2022-09-23 17:14:28 +03:00
committed by GitHub
parent e709cb5fe2
commit 27e2ce0470
248 changed files with 6220 additions and 10845 deletions

View File

@@ -0,0 +1,356 @@
@use "mixins/mixins";
@use "./common/var";
@include mixins.b(textarea) {
position: relative;
display: inline-block;
width: 100%;
vertical-align: bottom;
font-size: var.$font-size-base;
@include mixins.e(inner) {
display: block;
resize: vertical;
padding: 8px 12px 5px 12px;
line-height: 1.5;
box-sizing: border-box;
width: 100%;
font-size: inherit;
color: var.$input-font-color;
background-color: var.$input-background-color;
background-image: none;
border-radius: var.$input-border-radius;
transition: var.$border-transition-base;
&,
&:hover {
border: var.$input-border;
}
&::placeholder {
color: var.$input-placeholder-color;
}
&:focus {
outline: none;
border-color: var.$input-focus-border;
}
}
& .el-input__count {
color: var(--color-info);
background: var.$color-white;
position: absolute;
font-size: 12px;
bottom: 5px;
right: 10px;
}
@include mixins.when(disabled) {
.el-textarea__inner {
background-color: var.$input-disabled-fill;
border-color: var.$input-disabled-border;
color: var.$input-disabled-color;
cursor: not-allowed;
&::placeholder {
color: var.$input-disabled-placeholder-color;
}
}
}
@include mixins.when(exceed) {
.el-textarea__inner {
border-color: var(--color-danger);
}
.el-input__count {
color: var(--color-danger);
}
}
}
@include mixins.b(input) {
position: relative;
font-size: var.$input-font-size;
display: inline-block;
width: 100%;
@include mixins.scroll-bar;
& .el-input__clear {
color: var.$input-clear-color;
font-size: var.$input-font-size;
cursor: pointer;
transition: var.$color-transition-base;
&:hover {
color: var.$input-clear-hover-color;
}
}
& .el-input__count {
height: 100%;
display: inline-flex;
align-items: center;
color: var(--color-info);
font-size: 12px;
.el-input__count-inner {
background: var.$color-white;
line-height: initial;
display: inline-block;
padding: 0 5px;
}
}
@include mixins.e(inner) {
-webkit-appearance: none;
background-color: var.$input-background-color;
background-image: none;
border-radius: var.$input-border-radius;
border: var.$input-border;
box-sizing: border-box;
color: var.$input-font-color;
display: inline-block;
font-size: inherit;
height: var.$input-height;
line-height: var.$input-height;
outline: none;
padding: 0 0 0 var(--spacing-2xs);
transition: var.$border-transition-base;
width: 100%;
&::placeholder {
color: var.$input-placeholder-color;
}
&:focus {
outline: none;
border-color: var.$input-focus-border;
}
}
@include mixins.e(suffix) {
position: absolute;
height: 100%;
right: var(--spacing-2xs);
top: 0;
text-align: center;
color: var(--color-text-light);
transition: all 0.3s;
pointer-events: none;
display: flex;
align-items: center;
}
@include mixins.e(suffix-inner) {
pointer-events: all;
}
@include mixins.e(prefix) {
position: absolute;
height: 100%;
left: 14px;
top: 0;
text-align: center;
color: var.$input-icon-color;
transition: all 0.3s;
display: flex;
align-items: center;
}
@include mixins.e(icon) {
height: 100%;
text-align: center;
transition: all 0.3s;
line-height: var.$input-height;
&:after {
content: '';
height: 100%;
width: 0;
display: inline-block;
vertical-align: middle;
}
}
@include mixins.e(validateIcon) {
pointer-events: none;
}
@include mixins.when(active) {
.el-input__inner {
outline: none;
border-color: var.$input-focus-border;
}
}
@include mixins.when(disabled) {
.el-input__inner {
background-color: var.$input-disabled-fill;
border-color: var.$input-disabled-border;
color: var.$input-disabled-color;
cursor: not-allowed;
&::placeholder {
color: var.$input-disabled-placeholder-color;
}
}
.el-input__icon {
cursor: not-allowed;
}
}
@include mixins.when(exceed) {
.el-input__inner {
border-color: var(--color-danger);
}
.el-input__suffix {
.el-input__count {
color: var(--color-danger);
}
}
}
@include mixins.m(suffix) {
.el-input__inner {
padding-right: 30px;
}
}
@include mixins.m(prefix) {
.el-input__inner {
padding-left: 37px;
}
}
@include mixins.m(medium) {
font-size: var.$input-medium-font-size;
@include mixins.e(inner) {
height: var.$input-medium-height;
line-height: var.$input-medium-height;
}
.el-input__icon {
line-height: var.$input-medium-height;
}
}
@include mixins.m(small) {
font-size: var.$input-small-font-size;
@include mixins.e(inner) {
height: var.$input-small-height;
line-height: var.$input-small-height;
}
.el-input__icon {
line-height: var.$input-small-height;
}
}
@include mixins.m(mini) {
font-size: var.$input-mini-font-size;
@include mixins.e(inner) {
height: var.$input-mini-height;
line-height: var.$input-mini-height;
}
.el-input__icon {
line-height: var.$input-mini-height;
}
}
}
@include mixins.b(input-group) {
line-height: normal;
display: inline-table;
width: 100%;
border-collapse: separate;
border-spacing: 0;
> .el-input__inner {
vertical-align: middle;
display: table-cell;
}
@include mixins.e((append, prepend)) {
background-color: var.$background-color-base;
color: var(--color-info);
vertical-align: middle;
display: table-cell;
position: relative;
border: var(--border-base);
border-radius: var.$input-border-radius;
padding: 0 10px;
width: 1px;
white-space: nowrap;
font-weight: var(--font-weight-regular);
&:focus {
outline: none;
}
.el-select,
.el-button {
display: inline-block;
margin: -10px -20px;
}
button.el-button,
div.el-select .el-input__inner,
div.el-select:hover .el-input__inner {
border-color: transparent;
background-color: transparent;
color: inherit;
border-top: 0;
border-bottom: 0;
}
.el-button,
.el-input {
font-size: inherit;
}
}
@include mixins.e(prepend) {
border-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
@include mixins.e(append) {
border-left: 0;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
@include mixins.m(prepend) {
.el-input__inner {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.el-select .el-input.is-focus .el-input__inner {
border-color: transparent;
}
}
@include mixins.m(append) {
.el-input__inner {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.el-select .el-input.is-focus .el-input__inner {
border-color: transparent;
}
}
}
/** disalbe default clear on IE */
.el-input__inner::-ms-clear {
display: none;
width: 0;
height: 0;
}