* feat: i18n * feat: request list * refactor: hide stat transition on app.scss * feat: request list i18n * feat: request list => constants and main page * feat: add store * feat: add fetch data * feat: add utilities fn * feat: add store function / types * refactor: request list type * refactor: request list constants * refactor: quotation card => add customData and badge color props * feat: avatar group components * feat: request list group * refactor: request list => remove tab, add table data * feat: send search query * feat: add parameter * refactor: remove unused function * fix: rename component lits to list * feat: show stats from api * chore: cleanup * refactor: make it type safe * refactor: accept rotate flow id as parameter * feat: use page size component * feat: add component, data display & expansion product * feat: i18n * refactor: constants and request list table * refactor: type code, createdAt, updatedAt * refactor: utils function changThemeMode * feat: request list => view page * refactor: use type instead of infer from value * fix: function getEmployeeName att type * refactor: fetch work list * refactor: loop work list * feat: add i18n duty * feat: add form issue component * feat: add form issue section * fix: store error * refactor: edit by value * refactor: accept basic info from outside instead * feat: add status filter support on fetch * refactor: remove delete button * refactor: wording * feat/fix: request list i18n & constant * feat: document type * feat/refactor: request list => document expansion * refactor: doc expansion use FormGroupHead * refactor: fetch data based on id from route param * refactor: text area disable * feat: properties expansion display (mocking) * refactor: add document at product relation * refactor: edit get value product * feat: get workflow step to show on top * refactor: add type * refactor: add get attachment * refactor: add view attachment * refactor: edit file name * refactor: define props get hide icon * refactor: edit align row * refactor: by value table document * refactor: by value row table * feat: add independent ocr dialog * chore: clean up * refactor: accept more props and small adjustment * fix: error withDefault call * feat: accept default metadata when open * fix: typo * feat: add override hook when finish ocr * feat: reset state on open * feat: detect reader result is actually string * fix: variable name conflict * feat: properties to input component * feat: properties input in properties expansion * feat: properties expansion data (temporary) * refactor: add i18n status work * refactor: edit type work status and add step status * refactor: add edit status work * refactor: edit step work * refactor: properties data type * refactor: filter selected product & specific properties * feat: add emit event * refactor: change variable name for better understanding * refactor: hide step that no properties * refactor: work status type to validate * feat: work status color * refactor: key for filename * refactor: close expansion when change step * refactor: responsive meta data * refactor: product expansion responsive * fix: dark mode step text color * fix: document expansion table no data label * refactor: main page body bordered and overflow hidden * refactor: use utils function instead * refactor: add process * refactor: by value name * refactor: add upload file * refactor: upload file * refactor: by value * fix: option worker type * refactor: fetchRequestAttachment after edit * fix: metadata display * refactor: add class full-height * refactor: edit type * refactor: fetch file * refactor: by value visa * refactor: request list attributes type * fix: properties to input props (placeholder, readonly, disable) * feat: request list properties function * fix: error when no workflow * docs: update comment to fix indent * refactor: step type (attributes) * refactor: add attributes payload on editStatusRequestWork function * feat/refactor: functional form expansion/filter worklist * refactor: set attributes properties after submit * refactor: add request work ready status * feat: request list => form employee component * feat/refactor: form expansion select user/layout * fix: properties readonly --------- Co-authored-by: puriphatt <puriphat@frappet.com> Co-authored-by: Thanaphon Frappet <thanaphon@frappet.com>
264 lines
4.8 KiB
SCSS
264 lines
4.8 KiB
SCSS
@import 'open-props/postcss/style';
|
|
|
|
@import 'open-props/colors-hsl';
|
|
@import 'open-props/shadows';
|
|
@import 'open-props/zindex';
|
|
|
|
html {
|
|
--radius-2: 7px;
|
|
|
|
--brand-1: #035aa1;
|
|
--brand-2: #f50000;
|
|
--border-color: var(--gray-2);
|
|
--foreground: black;
|
|
--background: var(--gray-2);
|
|
--surface-0: var(--background);
|
|
--surface-1: white;
|
|
--surface-2: var(--gray-0);
|
|
--surface-3: var(--gray-1);
|
|
|
|
--surface-tab: var(--gray-1);
|
|
|
|
--text-mute: var(--stone-7-hsl);
|
|
--text-mute-2: var(--stone-9-hsl);
|
|
|
|
--info-fg: 0 0% 100%;
|
|
--info-bg: var(--blue-6-hsl);
|
|
|
|
--negative-fg: 0 0% 100%;
|
|
--negative-bg: var(--red-9-hsl);
|
|
|
|
--positive-fg: 0 0% 100%;
|
|
--positive-bg: var(--teal-7-hsl);
|
|
|
|
--warning-fg: 0 0% 100%;
|
|
--warning-bg: var(--yellow-7-hsl);
|
|
|
|
--danger-fg: 0 0% 100%;
|
|
--danger-bg: var(--orange-7-hsl);
|
|
|
|
--gender-male: var(--blue-5-hsl);
|
|
--gender-female: var(--pink-7-hsl);
|
|
--customer-corp: var(--purple-11-hsl);
|
|
--customer-pers: var(--teal-9-hsl);
|
|
|
|
--shadow-color: 220 3% 15%;
|
|
--shadow-strength: 5%;
|
|
--inner-shadow-highlight: inset 0 -0.5px 0 0 #fff,
|
|
inset 0 0.5px 0 0 rgba(0, 0, 0, 0.067);
|
|
|
|
color: var(--foreground);
|
|
background-color: var(--background);
|
|
}
|
|
|
|
:where(.dark, .body--dark) {
|
|
--brand-1: #035aa1;
|
|
--brand-2: #f50000;
|
|
--border-color: var(--gray-7);
|
|
--foreground: white;
|
|
--background: var(--gray-11);
|
|
--surface-0: var(--background);
|
|
--surface-1: var(--gray-10);
|
|
--surface-2: var(--gray-9);
|
|
--surface-3: var(--gray-11);
|
|
|
|
--surface-tab: var(--gray-9);
|
|
|
|
--customer-corp: var(--purple-9-hsl);
|
|
|
|
--text-mute: var(--stone-8-hsl);
|
|
--text-mute-2: var(--foreground);
|
|
|
|
--shadow-color: 220 0% 100%;
|
|
--shadow-strength: 25%;
|
|
--inner-shadow-highlight: inset 0 -0.5px 0 0 hsla(0, 0%, 100%, 0.067),
|
|
inset 0 0.5px 0 0 rgba(0, 0, 0, 0.467);
|
|
}
|
|
|
|
::-webkit-scrollbar {
|
|
width: 0.5rem;
|
|
height: 0.5rem;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
border: 0.15rem solid rgba(0, 0, 0, 0);
|
|
background-color: hsla(0, 0%, 50%, 0.75);
|
|
background-clip: padding-box;
|
|
border-radius: 0.5rem;
|
|
}
|
|
|
|
*,
|
|
::before,
|
|
::after {
|
|
transition: 100ms background ease-in-out;
|
|
}
|
|
|
|
.bordered {
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
.bordered-t {
|
|
border-top: 1px solid var(--border-color);
|
|
}
|
|
|
|
.bordered-b {
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.bordered-l {
|
|
border-left: 1px solid var(--border-color);
|
|
}
|
|
|
|
.bordered-r {
|
|
border-right: 1px solid var(--border-color);
|
|
}
|
|
|
|
.rounded {
|
|
border-radius: var(--radius-2);
|
|
}
|
|
|
|
.surface-0 {
|
|
background-color: var(--surface-0) !important;
|
|
}
|
|
|
|
.surface-1 {
|
|
background-color: var(--surface-1) !important;
|
|
}
|
|
|
|
.surface-2 {
|
|
background-color: var(--surface-2) !important;
|
|
}
|
|
|
|
.surface-3 {
|
|
background-color: var(--surface-3) !important;
|
|
}
|
|
|
|
.surface-tab {
|
|
background-color: var(--surface-tab) !important;
|
|
}
|
|
|
|
.app-text-muted {
|
|
color: hsl(var(--text-mute));
|
|
}
|
|
|
|
.app-text-muted-2 {
|
|
color: hsl(var(--text-mute-2));
|
|
}
|
|
|
|
.app-text-info {
|
|
color: hsl(var(--info-bg));
|
|
}
|
|
|
|
.app-bg-info {
|
|
color: hsl(var(--info-fg));
|
|
background-color: hsl(var(--info-bg));
|
|
}
|
|
|
|
.app-text-negative {
|
|
color: hsl(var(--negative-bg));
|
|
}
|
|
|
|
.app-bg-negative {
|
|
color: hsl(var(--negative-fg));
|
|
background-color: hsl(var(--negative-bg));
|
|
}
|
|
|
|
.app-text-positive {
|
|
color: hsl(var(--positive-bg)) !important;
|
|
}
|
|
|
|
.app-bg-positive {
|
|
color: hsl(var(--positive-fg));
|
|
background-color: hsl(var(--positive-bg));
|
|
}
|
|
|
|
.app-text-warning {
|
|
color: hsl(var(--warning-bg));
|
|
}
|
|
|
|
.app-bg-warning {
|
|
color: hsl(var(--warning-fg));
|
|
background-color: hsl(var(--warning-bg));
|
|
}
|
|
|
|
.app-text-danger {
|
|
color: hsl(var(--danger-bg));
|
|
}
|
|
|
|
.app-bg-danger {
|
|
color: hsl(var(--danger-fg));
|
|
background-color: hsl(var(--danger-bg));
|
|
}
|
|
|
|
.app-text-male {
|
|
color: hsl(var(--gender-male));
|
|
}
|
|
|
|
.app-bg-male {
|
|
color: hsl(var(--positive-fg));
|
|
background-color: hsl(var(--gender-male)) !important;
|
|
}
|
|
|
|
.app-text-female {
|
|
color: hsl(var(--gender-female));
|
|
}
|
|
|
|
.app-bg-female {
|
|
color: hsl(var(--positive-fg));
|
|
background-color: hsl(var(--gender-female)) !important;
|
|
}
|
|
|
|
.app-text-corp {
|
|
color: hsl(var(--customer-corp));
|
|
}
|
|
|
|
.app-bg-corp {
|
|
color: hsl(var(--customer-corp));
|
|
background-color: hsla(var(--customer-corp) / 0.2) !important;
|
|
}
|
|
|
|
.app-text-pers {
|
|
color: hsl(var(--customer-pers));
|
|
}
|
|
|
|
.app-bg-pers {
|
|
color: hsl(var(--customer-pers));
|
|
background-color: hsla(var(--customer-pers) / 0.2) !important;
|
|
}
|
|
|
|
.app-bg-brand-1 {
|
|
color: white;
|
|
background-color: var(--brand-1);
|
|
}
|
|
|
|
@page {
|
|
size: a4 portrait;
|
|
margin-top: 0.5in;
|
|
margin-left: 0.5in;
|
|
margin-right: 0.5in;
|
|
margin-bottom: 0.5in;
|
|
}
|
|
|
|
@media print {
|
|
html {
|
|
background-color: white;
|
|
}
|
|
|
|
.no-print {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.slide-enter-active {
|
|
transition: all 0.1s ease-out;
|
|
}
|
|
|
|
.slide-leave-active {
|
|
transition: all 0.1s cubic-bezier(1, 0.5, 0.8, 1);
|
|
}
|
|
|
|
.slide-enter-from,
|
|
.slide-leave-to {
|
|
transform: translateY(-20px);
|
|
opacity: 0;
|
|
}
|