Compare commits
3 Commits
developmen
...
mongo-stuf
Author | SHA1 | Date | |
---|---|---|---|
|
54877d0f10 | ||
|
4184ea167e | ||
|
46965b17b8 |
0
.eslintrc.json
Normal file → Executable file
0
.eslintrc.json
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
.idea/.gitignore
vendored
Normal file → Executable file
0
.idea/.gitignore
vendored
Normal file → Executable file
28
.idea/codeStyles/Project.xml
Executable file
28
.idea/codeStyles/Project.xml
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<code_scheme name="Project" version="173">
|
||||||
|
<DBN-PSQL>
|
||||||
|
<case-options enabled="true">
|
||||||
|
<option name="KEYWORD_CASE" value="lower" />
|
||||||
|
<option name="FUNCTION_CASE" value="lower" />
|
||||||
|
<option name="PARAMETER_CASE" value="lower" />
|
||||||
|
<option name="DATATYPE_CASE" value="lower" />
|
||||||
|
<option name="OBJECT_CASE" value="preserve" />
|
||||||
|
</case-options>
|
||||||
|
<formatting-settings enabled="false" />
|
||||||
|
</DBN-PSQL>
|
||||||
|
<DBN-SQL>
|
||||||
|
<case-options enabled="true">
|
||||||
|
<option name="KEYWORD_CASE" value="lower" />
|
||||||
|
<option name="FUNCTION_CASE" value="lower" />
|
||||||
|
<option name="PARAMETER_CASE" value="lower" />
|
||||||
|
<option name="DATATYPE_CASE" value="lower" />
|
||||||
|
<option name="OBJECT_CASE" value="preserve" />
|
||||||
|
</case-options>
|
||||||
|
<formatting-settings enabled="false">
|
||||||
|
<option name="STATEMENT_SPACING" value="one_line" />
|
||||||
|
<option name="CLAUSE_CHOP_DOWN" value="chop_down_if_statement_long" />
|
||||||
|
<option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
|
||||||
|
</formatting-settings>
|
||||||
|
</DBN-SQL>
|
||||||
|
</code_scheme>
|
||||||
|
</component>
|
5
.idea/codeStyles/codeStyleConfig.xml
Executable file
5
.idea/codeStyles/codeStyleConfig.xml
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (2)" />
|
||||||
|
</state>
|
||||||
|
</component>
|
461
.idea/dbnavigator.xml
Executable file
461
.idea/dbnavigator.xml
Executable file
@ -0,0 +1,461 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="DBNavigator.Project.DataEditorManager">
|
||||||
|
<record-view-column-sorting-type value="BY_INDEX" />
|
||||||
|
<value-preview-text-wrapping value="false" />
|
||||||
|
<value-preview-pinned value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.DataExportManager">
|
||||||
|
<export-instructions>
|
||||||
|
<create-header value="true" />
|
||||||
|
<quote-values-containing-separator value="true" />
|
||||||
|
<quote-all-values value="false" />
|
||||||
|
<value-separator value="" />
|
||||||
|
<file-name value="" />
|
||||||
|
<file-location value="" />
|
||||||
|
<scope value="GLOBAL" />
|
||||||
|
<destination value="FILE" />
|
||||||
|
<format value="EXCEL" />
|
||||||
|
<charset value="UTF-8" />
|
||||||
|
</export-instructions>
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.DatabaseBrowserManager">
|
||||||
|
<autoscroll-to-editor value="false" />
|
||||||
|
<autoscroll-from-editor value="true" />
|
||||||
|
<show-object-properties value="true" />
|
||||||
|
<loaded-nodes />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.DatabaseFileManager">
|
||||||
|
<open-files />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.EditorStateManager">
|
||||||
|
<last-used-providers />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.ExecutionManager">
|
||||||
|
<retain-sticky-names value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.MethodExecutionManager">
|
||||||
|
<method-browser />
|
||||||
|
<execution-history>
|
||||||
|
<group-entries value="true" />
|
||||||
|
<execution-inputs />
|
||||||
|
</execution-history>
|
||||||
|
<argument-values-cache />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.ObjectDependencyManager">
|
||||||
|
<last-used-dependency-type value="INCOMING" />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.ObjectQuickFilterManager">
|
||||||
|
<last-used-operator value="EQUAL" />
|
||||||
|
<filters />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.ScriptExecutionManager" clear-outputs="true">
|
||||||
|
<recently-used-interfaces />
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.Settings">
|
||||||
|
<connections />
|
||||||
|
<browser-settings>
|
||||||
|
<general>
|
||||||
|
<display-mode value="TABBED" />
|
||||||
|
<navigation-history-size value="100" />
|
||||||
|
<show-object-details value="false" />
|
||||||
|
</general>
|
||||||
|
<filters>
|
||||||
|
<object-type-filter>
|
||||||
|
<object-type name="SCHEMA" enabled="true" />
|
||||||
|
<object-type name="USER" enabled="true" />
|
||||||
|
<object-type name="ROLE" enabled="true" />
|
||||||
|
<object-type name="PRIVILEGE" enabled="true" />
|
||||||
|
<object-type name="CHARSET" enabled="true" />
|
||||||
|
<object-type name="TABLE" enabled="true" />
|
||||||
|
<object-type name="VIEW" enabled="true" />
|
||||||
|
<object-type name="MATERIALIZED_VIEW" enabled="true" />
|
||||||
|
<object-type name="NESTED_TABLE" enabled="true" />
|
||||||
|
<object-type name="COLUMN" enabled="true" />
|
||||||
|
<object-type name="INDEX" enabled="true" />
|
||||||
|
<object-type name="CONSTRAINT" enabled="true" />
|
||||||
|
<object-type name="DATASET_TRIGGER" enabled="true" />
|
||||||
|
<object-type name="DATABASE_TRIGGER" enabled="true" />
|
||||||
|
<object-type name="SYNONYM" enabled="true" />
|
||||||
|
<object-type name="SEQUENCE" enabled="true" />
|
||||||
|
<object-type name="PROCEDURE" enabled="true" />
|
||||||
|
<object-type name="FUNCTION" enabled="true" />
|
||||||
|
<object-type name="PACKAGE" enabled="true" />
|
||||||
|
<object-type name="TYPE" enabled="true" />
|
||||||
|
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
|
||||||
|
<object-type name="ARGUMENT" enabled="true" />
|
||||||
|
<object-type name="DIMENSION" enabled="true" />
|
||||||
|
<object-type name="CLUSTER" enabled="true" />
|
||||||
|
<object-type name="DBLINK" enabled="true" />
|
||||||
|
</object-type-filter>
|
||||||
|
</filters>
|
||||||
|
<sorting>
|
||||||
|
<object-type name="COLUMN" sorting-type="NAME" />
|
||||||
|
<object-type name="FUNCTION" sorting-type="NAME" />
|
||||||
|
<object-type name="PROCEDURE" sorting-type="NAME" />
|
||||||
|
<object-type name="ARGUMENT" sorting-type="POSITION" />
|
||||||
|
</sorting>
|
||||||
|
<default-editors>
|
||||||
|
<object-type name="VIEW" editor-type="SELECTION" />
|
||||||
|
<object-type name="PACKAGE" editor-type="SELECTION" />
|
||||||
|
<object-type name="TYPE" editor-type="SELECTION" />
|
||||||
|
</default-editors>
|
||||||
|
</browser-settings>
|
||||||
|
<navigation-settings>
|
||||||
|
<lookup-filters>
|
||||||
|
<lookup-objects>
|
||||||
|
<object-type name="SCHEMA" enabled="true" />
|
||||||
|
<object-type name="USER" enabled="false" />
|
||||||
|
<object-type name="ROLE" enabled="false" />
|
||||||
|
<object-type name="PRIVILEGE" enabled="false" />
|
||||||
|
<object-type name="CHARSET" enabled="false" />
|
||||||
|
<object-type name="TABLE" enabled="true" />
|
||||||
|
<object-type name="VIEW" enabled="true" />
|
||||||
|
<object-type name="MATERIALIZED VIEW" enabled="true" />
|
||||||
|
<object-type name="NESTED TABLE" enabled="false" />
|
||||||
|
<object-type name="COLUMN" enabled="false" />
|
||||||
|
<object-type name="INDEX" enabled="true" />
|
||||||
|
<object-type name="CONSTRAINT" enabled="true" />
|
||||||
|
<object-type name="DATASET TRIGGER" enabled="true" />
|
||||||
|
<object-type name="DATABASE TRIGGER" enabled="true" />
|
||||||
|
<object-type name="SYNONYM" enabled="false" />
|
||||||
|
<object-type name="SEQUENCE" enabled="true" />
|
||||||
|
<object-type name="PROCEDURE" enabled="true" />
|
||||||
|
<object-type name="FUNCTION" enabled="true" />
|
||||||
|
<object-type name="PACKAGE" enabled="true" />
|
||||||
|
<object-type name="TYPE" enabled="true" />
|
||||||
|
<object-type name="TYPE ATTRIBUTE" enabled="false" />
|
||||||
|
<object-type name="ARGUMENT" enabled="false" />
|
||||||
|
<object-type name="DIMENSION" enabled="false" />
|
||||||
|
<object-type name="CLUSTER" enabled="false" />
|
||||||
|
<object-type name="DBLINK" enabled="true" />
|
||||||
|
</lookup-objects>
|
||||||
|
<force-database-load value="false" />
|
||||||
|
<prompt-connection-selection value="true" />
|
||||||
|
<prompt-schema-selection value="true" />
|
||||||
|
</lookup-filters>
|
||||||
|
</navigation-settings>
|
||||||
|
<dataset-grid-settings>
|
||||||
|
<general>
|
||||||
|
<enable-zooming value="true" />
|
||||||
|
<enable-column-tooltip value="true" />
|
||||||
|
</general>
|
||||||
|
<sorting>
|
||||||
|
<nulls-first value="true" />
|
||||||
|
<max-sorting-columns value="4" />
|
||||||
|
</sorting>
|
||||||
|
<tracking-columns>
|
||||||
|
<columnNames value="" />
|
||||||
|
<visible value="true" />
|
||||||
|
<editable value="false" />
|
||||||
|
</tracking-columns>
|
||||||
|
</dataset-grid-settings>
|
||||||
|
<dataset-editor-settings>
|
||||||
|
<text-editor-popup>
|
||||||
|
<active value="false" />
|
||||||
|
<active-if-empty value="false" />
|
||||||
|
<data-length-threshold value="100" />
|
||||||
|
<popup-delay value="1000" />
|
||||||
|
</text-editor-popup>
|
||||||
|
<values-actions-popup>
|
||||||
|
<show-popup-button value="true" />
|
||||||
|
<element-count-threshold value="1000" />
|
||||||
|
<data-length-threshold value="250" />
|
||||||
|
</values-actions-popup>
|
||||||
|
<general>
|
||||||
|
<fetch-block-size value="100" />
|
||||||
|
<fetch-timeout value="30" />
|
||||||
|
<trim-whitespaces value="true" />
|
||||||
|
<convert-empty-strings-to-null value="true" />
|
||||||
|
<select-content-on-cell-edit value="true" />
|
||||||
|
<large-value-preview-active value="true" />
|
||||||
|
</general>
|
||||||
|
<filters>
|
||||||
|
<prompt-filter-dialog value="true" />
|
||||||
|
<default-filter-type value="BASIC" />
|
||||||
|
</filters>
|
||||||
|
<qualified-text-editor text-length-threshold="300">
|
||||||
|
<content-types>
|
||||||
|
<content-type name="Text" enabled="true" />
|
||||||
|
<content-type name="XML" enabled="true" />
|
||||||
|
<content-type name="DTD" enabled="true" />
|
||||||
|
<content-type name="HTML" enabled="true" />
|
||||||
|
<content-type name="XHTML" enabled="true" />
|
||||||
|
<content-type name="CSS" enabled="true" />
|
||||||
|
<content-type name="SQL" enabled="true" />
|
||||||
|
<content-type name="PL/SQL" enabled="true" />
|
||||||
|
<content-type name="JavaScript" enabled="true" />
|
||||||
|
<content-type name="JSON" enabled="true" />
|
||||||
|
<content-type name="JSON5" enabled="true" />
|
||||||
|
<content-type name="JSP" enabled="true" />
|
||||||
|
<content-type name="JSPx" enabled="true" />
|
||||||
|
<content-type name="ASP" enabled="true" />
|
||||||
|
<content-type name="YAML" enabled="true" />
|
||||||
|
</content-types>
|
||||||
|
</qualified-text-editor>
|
||||||
|
<record-navigation>
|
||||||
|
<navigation-target value="VIEWER" />
|
||||||
|
</record-navigation>
|
||||||
|
</dataset-editor-settings>
|
||||||
|
<code-editor-settings>
|
||||||
|
<general>
|
||||||
|
<show-object-navigation-gutter value="false" />
|
||||||
|
<show-spec-declaration-navigation-gutter value="true" />
|
||||||
|
<enable-spellchecking value="true" />
|
||||||
|
<enable-reference-spellchecking value="false" />
|
||||||
|
</general>
|
||||||
|
<confirmations>
|
||||||
|
<save-changes value="false" />
|
||||||
|
<revert-changes value="true" />
|
||||||
|
</confirmations>
|
||||||
|
</code-editor-settings>
|
||||||
|
<code-completion-settings>
|
||||||
|
<filters>
|
||||||
|
<basic-filter>
|
||||||
|
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="function" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="schema" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="role" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="user" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="privilege" selected="true" />
|
||||||
|
<user-schema>
|
||||||
|
<filter-element type="OBJECT" id="table" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="index" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="synonym" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="function" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="package" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="type" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||||
|
</user-schema>
|
||||||
|
<public-schema>
|
||||||
|
<filter-element type="OBJECT" id="table" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="view" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="materialized view" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="index" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="constraint" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="trigger" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="synonym" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="sequence" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="procedure" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="function" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="package" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="type" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="dimension" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="cluster" selected="false" />
|
||||||
|
<filter-element type="OBJECT" id="dblink" selected="false" />
|
||||||
|
</public-schema>
|
||||||
|
<any-schema>
|
||||||
|
<filter-element type="OBJECT" id="table" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="index" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="function" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="package" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="type" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||||
|
</any-schema>
|
||||||
|
</basic-filter>
|
||||||
|
<extended-filter>
|
||||||
|
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="function" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
|
||||||
|
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="schema" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="user" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="role" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="privilege" selected="true" />
|
||||||
|
<user-schema>
|
||||||
|
<filter-element type="OBJECT" id="table" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="index" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="function" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="package" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="type" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||||
|
</user-schema>
|
||||||
|
<public-schema>
|
||||||
|
<filter-element type="OBJECT" id="table" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="index" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="function" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="package" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="type" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||||
|
</public-schema>
|
||||||
|
<any-schema>
|
||||||
|
<filter-element type="OBJECT" id="table" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="index" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="function" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="package" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="type" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||||
|
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||||
|
</any-schema>
|
||||||
|
</extended-filter>
|
||||||
|
</filters>
|
||||||
|
<sorting enabled="true">
|
||||||
|
<sorting-element type="RESERVED_WORD" id="keyword" />
|
||||||
|
<sorting-element type="RESERVED_WORD" id="datatype" />
|
||||||
|
<sorting-element type="OBJECT" id="column" />
|
||||||
|
<sorting-element type="OBJECT" id="table" />
|
||||||
|
<sorting-element type="OBJECT" id="view" />
|
||||||
|
<sorting-element type="OBJECT" id="materialized view" />
|
||||||
|
<sorting-element type="OBJECT" id="index" />
|
||||||
|
<sorting-element type="OBJECT" id="constraint" />
|
||||||
|
<sorting-element type="OBJECT" id="trigger" />
|
||||||
|
<sorting-element type="OBJECT" id="synonym" />
|
||||||
|
<sorting-element type="OBJECT" id="sequence" />
|
||||||
|
<sorting-element type="OBJECT" id="procedure" />
|
||||||
|
<sorting-element type="OBJECT" id="function" />
|
||||||
|
<sorting-element type="OBJECT" id="package" />
|
||||||
|
<sorting-element type="OBJECT" id="type" />
|
||||||
|
<sorting-element type="OBJECT" id="dimension" />
|
||||||
|
<sorting-element type="OBJECT" id="cluster" />
|
||||||
|
<sorting-element type="OBJECT" id="dblink" />
|
||||||
|
<sorting-element type="OBJECT" id="schema" />
|
||||||
|
<sorting-element type="OBJECT" id="role" />
|
||||||
|
<sorting-element type="OBJECT" id="user" />
|
||||||
|
<sorting-element type="RESERVED_WORD" id="function" />
|
||||||
|
<sorting-element type="RESERVED_WORD" id="parameter" />
|
||||||
|
</sorting>
|
||||||
|
<format>
|
||||||
|
<enforce-code-style-case value="true" />
|
||||||
|
</format>
|
||||||
|
</code-completion-settings>
|
||||||
|
<execution-engine-settings>
|
||||||
|
<statement-execution>
|
||||||
|
<fetch-block-size value="100" />
|
||||||
|
<execution-timeout value="20" />
|
||||||
|
<debug-execution-timeout value="600" />
|
||||||
|
<focus-result value="false" />
|
||||||
|
<prompt-execution value="false" />
|
||||||
|
</statement-execution>
|
||||||
|
<script-execution>
|
||||||
|
<command-line-interfaces />
|
||||||
|
<execution-timeout value="300" />
|
||||||
|
</script-execution>
|
||||||
|
<method-execution>
|
||||||
|
<execution-timeout value="30" />
|
||||||
|
<debug-execution-timeout value="600" />
|
||||||
|
<parameter-history-size value="10" />
|
||||||
|
</method-execution>
|
||||||
|
</execution-engine-settings>
|
||||||
|
<operation-settings>
|
||||||
|
<transactions>
|
||||||
|
<uncommitted-changes>
|
||||||
|
<on-project-close value="ASK" />
|
||||||
|
<on-disconnect value="ASK" />
|
||||||
|
<on-autocommit-toggle value="ASK" />
|
||||||
|
</uncommitted-changes>
|
||||||
|
<multiple-uncommitted-changes>
|
||||||
|
<on-commit value="ASK" />
|
||||||
|
<on-rollback value="ASK" />
|
||||||
|
</multiple-uncommitted-changes>
|
||||||
|
</transactions>
|
||||||
|
<session-browser>
|
||||||
|
<disconnect-session value="ASK" />
|
||||||
|
<kill-session value="ASK" />
|
||||||
|
<reload-on-filter-change value="false" />
|
||||||
|
</session-browser>
|
||||||
|
<compiler>
|
||||||
|
<compile-type value="KEEP" />
|
||||||
|
<compile-dependencies value="ASK" />
|
||||||
|
<always-show-controls value="false" />
|
||||||
|
</compiler>
|
||||||
|
<debugger>
|
||||||
|
<debugger-type value="JDBC" />
|
||||||
|
<use-generic-runners value="true" />
|
||||||
|
</debugger>
|
||||||
|
</operation-settings>
|
||||||
|
<ddl-file-settings>
|
||||||
|
<extensions>
|
||||||
|
<mapping file-type-id="VIEW" extensions="vw" />
|
||||||
|
<mapping file-type-id="TRIGGER" extensions="trg" />
|
||||||
|
<mapping file-type-id="PROCEDURE" extensions="prc" />
|
||||||
|
<mapping file-type-id="FUNCTION" extensions="fnc" />
|
||||||
|
<mapping file-type-id="PACKAGE" extensions="pkg" />
|
||||||
|
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
|
||||||
|
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
|
||||||
|
<mapping file-type-id="TYPE" extensions="tpe" />
|
||||||
|
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
|
||||||
|
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
|
||||||
|
</extensions>
|
||||||
|
<general>
|
||||||
|
<lookup-ddl-files value="true" />
|
||||||
|
<create-ddl-files value="false" />
|
||||||
|
<synchronize-ddl-files value="true" />
|
||||||
|
<use-qualified-names value="false" />
|
||||||
|
<make-scripts-rerunnable value="true" />
|
||||||
|
</general>
|
||||||
|
</ddl-file-settings>
|
||||||
|
<general-settings>
|
||||||
|
<regional-settings>
|
||||||
|
<date-format value="MEDIUM" />
|
||||||
|
<number-format value="UNGROUPED" />
|
||||||
|
<locale value="SYSTEM_DEFAULT" />
|
||||||
|
<use-custom-formats value="false" />
|
||||||
|
</regional-settings>
|
||||||
|
<environment>
|
||||||
|
<environment-types>
|
||||||
|
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
|
||||||
|
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
|
||||||
|
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
|
||||||
|
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
|
||||||
|
</environment-types>
|
||||||
|
<visibility-settings>
|
||||||
|
<connection-tabs value="true" />
|
||||||
|
<dialog-headers value="true" />
|
||||||
|
<object-editor-tabs value="true" />
|
||||||
|
<script-editor-tabs value="false" />
|
||||||
|
<execution-result-tabs value="true" />
|
||||||
|
</visibility-settings>
|
||||||
|
</environment>
|
||||||
|
</general-settings>
|
||||||
|
</component>
|
||||||
|
<component name="DBNavigator.Project.StatementExecutionManager">
|
||||||
|
<execution-variables />
|
||||||
|
</component>
|
||||||
|
</project>
|
0
.idea/inspectionProfiles/Project_Default.xml
Normal file → Executable file
0
.idea/inspectionProfiles/Project_Default.xml
Normal file → Executable file
0
.idea/jsLibraryMappings.xml
Normal file → Executable file
0
.idea/jsLibraryMappings.xml
Normal file → Executable file
0
.idea/misc.xml
Normal file → Executable file
0
.idea/misc.xml
Normal file → Executable file
0
.idea/modules.xml
Normal file → Executable file
0
.idea/modules.xml
Normal file → Executable file
0
.idea/svelte-jobs.iml
Normal file → Executable file
0
.idea/svelte-jobs.iml
Normal file → Executable file
0
.idea/vcs.xml
Normal file → Executable file
0
.idea/vcs.xml
Normal file → Executable file
2
copy.sh
2
copy.sh
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# rm -rf /home/martin/dev/menuserver/dist/*
|
# rm -rf /home/martin/dev/menuserver/dist/*
|
||||||
cp -r /home/martin/dev/svelte-jobs/public/* /home/martin/dev/jobscraper/dist
|
cp -r /home/martin/dev/Svelte/svelte-jobs/public/* /home/martin/dev/Server/jobscraper/server/dist
|
||||||
|
47
package-lock.json
generated
Normal file → Executable file
47
package-lock.json
generated
Normal file → Executable file
@ -58,6 +58,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@rollup/plugin-json": {
|
||||||
|
"version": "4.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.0.3.tgz",
|
||||||
|
"integrity": "sha512-QMUT0HZNf4CX17LMdwaslzlYHUKTYGuuk34yYIgZrNdu+pMEfqMS55gck7HEeHBKXHM4cz5Dg1OVwythDdbbuQ==",
|
||||||
|
"requires": {
|
||||||
|
"@rollup/pluginutils": "^3.0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@rollup/plugin-node-resolve": {
|
"@rollup/plugin-node-resolve": {
|
||||||
"version": "7.1.3",
|
"version": "7.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz",
|
||||||
@ -75,7 +83,6 @@
|
|||||||
"version": "3.0.10",
|
"version": "3.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.10.tgz",
|
||||||
"integrity": "sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==",
|
"integrity": "sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/estree": "0.0.39",
|
"@types/estree": "0.0.39",
|
||||||
"estree-walker": "^1.0.1",
|
"estree-walker": "^1.0.1",
|
||||||
@ -85,8 +92,7 @@
|
|||||||
"estree-walker": {
|
"estree-walker": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
|
||||||
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
|
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -99,8 +105,7 @@
|
|||||||
"@types/estree": {
|
"@types/estree": {
|
||||||
"version": "0.0.39",
|
"version": "0.0.39",
|
||||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
|
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
|
||||||
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
|
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "14.0.1",
|
"version": "14.0.1",
|
||||||
@ -791,6 +796,14 @@
|
|||||||
"sha.js": "^2.4.8"
|
"sha.js": "^2.4.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"cron": {
|
||||||
|
"version": "1.8.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz",
|
||||||
|
"integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==",
|
||||||
|
"requires": {
|
||||||
|
"moment-timezone": "^0.5.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cross-spawn": {
|
"cross-spawn": {
|
||||||
"version": "6.0.5",
|
"version": "6.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||||
@ -1178,6 +1191,11 @@
|
|||||||
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"fecha": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="
|
||||||
|
},
|
||||||
"figures": {
|
"figures": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
|
||||||
@ -2305,6 +2323,19 @@
|
|||||||
"minimist": "^1.2.5"
|
"minimist": "^1.2.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"moment": {
|
||||||
|
"version": "2.25.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz",
|
||||||
|
"integrity": "sha512-PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg=="
|
||||||
|
},
|
||||||
|
"moment-timezone": {
|
||||||
|
"version": "0.5.31",
|
||||||
|
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.31.tgz",
|
||||||
|
"integrity": "sha512-+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==",
|
||||||
|
"requires": {
|
||||||
|
"moment": ">= 2.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"mri": {
|
"mri": {
|
||||||
"version": "1.1.5",
|
"version": "1.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz",
|
||||||
@ -2313,8 +2344,7 @@
|
|||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"mute-stream": {
|
"mute-stream": {
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
@ -2688,8 +2718,7 @@
|
|||||||
"picomatch": {
|
"picomatch": {
|
||||||
"version": "2.2.2",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
|
||||||
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
|
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"pify": {
|
"pify": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
|
30
package.json
Normal file → Executable file
30
package.json
Normal file → Executable file
@ -1,30 +1,34 @@
|
|||||||
{
|
{
|
||||||
"name": "svelte-app",
|
"name": "svelte-app",
|
||||||
"version": "1.0.0",
|
"version": "1.0.6",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "vik patch && rollup -c",
|
||||||
"dev": "rollup -c -w",
|
"dev": "rollup -c -w",
|
||||||
"start": "sirv public"
|
"start": "sirv public"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rollup/plugin-commonjs": "^11.0.0",
|
"@rollup/plugin-commonjs": "^11.1.0",
|
||||||
"@rollup/plugin-node-resolve": "^7.0.0",
|
"@rollup/plugin-node-resolve": "^7.1.3",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
"eslint-plugin-svelte3": "^2.7.3",
|
"eslint-plugin-svelte3": "^2.7.3",
|
||||||
"rollup": "^2.10.0",
|
"rollup": "^2.41.2",
|
||||||
"rollup-plugin-livereload": "^1.0.0",
|
"rollup-plugin-livereload": "^1.3.0",
|
||||||
"rollup-plugin-node-builtins": "^2.1.2",
|
"rollup-plugin-node-builtins": "^2.1.2",
|
||||||
"rollup-plugin-node-globals": "^1.4.0",
|
"rollup-plugin-node-globals": "^1.4.0",
|
||||||
"rollup-plugin-svelte": "^5.0.3",
|
"rollup-plugin-svelte": "^5.2.3",
|
||||||
"rollup-plugin-terser": "^5.1.2",
|
"rollup-plugin-terser": "^5.3.1",
|
||||||
"svelte": "^3.0.0",
|
"svelte": "^3.35.0",
|
||||||
"svelte-preprocess": "^3.7.1"
|
"svelte-preprocess": "^3.9.12"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"autoprefixer": "^9.7.6",
|
"@rollup/plugin-json": "^4.1.0",
|
||||||
|
"autoprefixer": "^9.8.6",
|
||||||
|
"cron": "^1.8.2",
|
||||||
|
"fecha": "^4.2.0",
|
||||||
|
"ms": "^2.1.3",
|
||||||
"node-sass": "^4.14.1",
|
"node-sass": "^4.14.1",
|
||||||
"redaxios": "^0.2.0",
|
"redaxios": "^0.2.0",
|
||||||
"rollup-plugin-replace": "^2.2.0",
|
"rollup-plugin-replace": "^2.2.0",
|
||||||
"sirv-cli": "^0.4.4"
|
"sirv-cli": "^0.4.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
3180
pnpm-lock.yaml
Executable file
3180
pnpm-lock.yaml
Executable file
File diff suppressed because it is too large
Load Diff
0
projectIcon.png
Normal file → Executable file
0
projectIcon.png
Normal file → Executable file
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
0
public/favicon.png
Normal file → Executable file
0
public/favicon.png
Normal file → Executable file
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
25
public/gfx/star.svg
Executable file
25
public/gfx/star.svg
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg viewBox="0 0 282.3 270.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="338.9" x2="322.8" y1="292.1" y2="203.1">
|
||||||
|
<stop offset="0" stop-color="#e6d82f"/>
|
||||||
|
<stop offset="1" stop-color="#faf26f"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="b" gradientUnits="userSpaceOnUse" x1="391.9" x2="341.2" y1="310.6" y2="310.6">
|
||||||
|
<stop offset="0" stop-color="#d2c308"/>
|
||||||
|
<stop offset="1" stop-color="#e8da34"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g fill-rule="evenodd" transform="translate(-198.9 -145.7)">
|
||||||
|
<path d="m340.1 292.8l-.4-140.5-32.16 98.6z" fill="url(#a)"/>
|
||||||
|
<path d="m340.2 152.4l31.45 97.64-31.04 42.7z" fill="#d2c308"/>
|
||||||
|
<path d="m341.1 292.4l133.8-42.39-103.6-.01z" fill="#faf26f"/>
|
||||||
|
<path d="m341 293.1l50.85 17.34 83.1-60.32z" fill="#a29910"/>
|
||||||
|
<path d="m289.1 310.6l50.32-17.12-134.2-43.5z" fill="#d2c308"/>
|
||||||
|
<path d="m339.6 293.8l-82.67 116.1 32.22-99.1z" fill="#faf26f"/>
|
||||||
|
<path d="m341.1 293.6l50.78 16.82 31.72 97.69z" fill="url(#b)"/>
|
||||||
|
<path d="m340.2 348.6l83.08 59.65-82.56-114.4z" fill="#a29910"/>
|
||||||
|
<path d="m306.9 251.2l33.56 42.72-135.6-43.9z" fill="#faf26f"/>
|
||||||
|
<path d="m340.2 348.6l-82.9 59.3 83.03-114.5z" fill="#a29910"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
0
public/global.css
Normal file → Executable file
0
public/global.css
Normal file → Executable file
2
public/index.html
Normal file → Executable file
2
public/index.html
Normal file → Executable file
@ -4,7 +4,7 @@
|
|||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<meta name='viewport' content='width=device-width,initial-scale=1'>
|
<meta name='viewport' content='width=device-width,initial-scale=1'>
|
||||||
|
|
||||||
<title>Svelte app</title>
|
<title>Jobs Server</title>
|
||||||
|
|
||||||
<link rel='icon' type='image/png' href='/favicon.png'>
|
<link rel='icon' type='image/png' href='/favicon.png'>
|
||||||
<link rel='stylesheet' href='/global.css'>
|
<link rel='stylesheet' href='/global.css'>
|
||||||
|
2
rollup.config.js
Normal file → Executable file
2
rollup.config.js
Normal file → Executable file
@ -7,6 +7,7 @@ import { terser } from 'rollup-plugin-terser';
|
|||||||
import sveltePreprocess from 'svelte-preprocess';
|
import sveltePreprocess from 'svelte-preprocess';
|
||||||
import builtins from 'rollup-plugin-node-builtins';
|
import builtins from 'rollup-plugin-node-builtins';
|
||||||
import globals from 'rollup-plugin-node-globals';
|
import globals from 'rollup-plugin-node-globals';
|
||||||
|
import json from '@rollup/plugin-json';
|
||||||
|
|
||||||
const production = !process.env.ROLLUP_WATCH;
|
const production = !process.env.ROLLUP_WATCH;
|
||||||
|
|
||||||
@ -30,6 +31,7 @@ export default {
|
|||||||
'plugins': [
|
'plugins': [
|
||||||
globals(),
|
globals(),
|
||||||
builtins(),
|
builtins(),
|
||||||
|
json(),
|
||||||
svelte({
|
svelte({
|
||||||
// enable run-time checks when not in production
|
// enable run-time checks when not in production
|
||||||
'dev': !production,
|
'dev': !production,
|
||||||
|
22
src/App.svelte
Normal file → Executable file
22
src/App.svelte
Normal file → Executable file
@ -2,10 +2,11 @@
|
|||||||
import Menu from "./components/Menu.svelte";
|
import Menu from "./components/Menu.svelte";
|
||||||
import Lister from "./components/Lister.svelte";
|
import Lister from "./components/Lister.svelte";
|
||||||
import Detail from "./components/Detail.svelte";
|
import Detail from "./components/Detail.svelte";
|
||||||
|
import Header from "./components/Header.svelte";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" global>
|
<style lang="scss" global>
|
||||||
@import "./css/global.scss";
|
@import "./css/bronze.scss";
|
||||||
|
|
||||||
.view {
|
.view {
|
||||||
height:100vh;
|
height:100vh;
|
||||||
@ -15,20 +16,11 @@
|
|||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<Header/>
|
||||||
<main>
|
<div class="container fullWidth noscroll">
|
||||||
<!--<Menu/>
|
<div class="col-12">
|
||||||
<div class='dataPane splitContainerGrid'>
|
|
||||||
<Lister/>
|
<Lister/>
|
||||||
<Detail/>
|
<Detail/>
|
||||||
</div>-->
|
|
||||||
<div class="grid view">
|
|
||||||
<div class="col-2">
|
|
||||||
<Menu/>
|
|
||||||
</div>
|
|
||||||
<div class="col-10">
|
|
||||||
<Lister/>
|
|
||||||
<Detail/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</div>
|
||||||
|
|
||||||
|
173
src/components/Detail.svelte
Normal file → Executable file
173
src/components/Detail.svelte
Normal file → Executable file
@ -1,21 +1,53 @@
|
|||||||
<script>
|
<script>
|
||||||
import {JobDetails, actions} from '../state/state';
|
import {JobDetails, actions} from '../state/state';
|
||||||
|
|
||||||
let jobDetail = {};
|
let jobDetail = {};
|
||||||
|
|
||||||
let visible = false;
|
let visible = false;
|
||||||
|
let applied = false;
|
||||||
|
let jobtype = 0;
|
||||||
|
|
||||||
JobDetails.subscribe((v) => {
|
$: {
|
||||||
visible = !isEmpty(v);
|
if (!isEmpty($JobDetails)) {
|
||||||
|
applied = typeof ($JobDetails.data.applied) === "number" && $JobDetails.data.applied !== 0;
|
||||||
})
|
jobtype = $JobDetails.data.jobtype;
|
||||||
|
|
||||||
function isEmpty(obj) {
|
|
||||||
for(const key in obj)
|
|
||||||
if(obj.hasOwnProperty(key)) return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
JobDetails.subscribe((v) => {
|
||||||
|
visible = !isEmpty(v);
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
function isEmpty(obj) {
|
||||||
|
for (const key in obj)
|
||||||
|
if (obj.hasOwnProperty(key)) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleClick() {
|
||||||
|
actions.appliedJob($JobDetails._id);
|
||||||
|
}
|
||||||
|
|
||||||
|
function kill(w) {
|
||||||
|
console.log('>>kill',w);
|
||||||
|
}
|
||||||
|
|
||||||
|
function upvote() {
|
||||||
|
|
||||||
|
console.log('Upvote', $JobDetails._id);
|
||||||
|
|
||||||
|
actions.upVote($JobDetails._id);
|
||||||
|
}
|
||||||
|
|
||||||
|
function downvote() {
|
||||||
|
console.log('Downvote', $JobDetails._id);
|
||||||
|
|
||||||
|
actions.downVote($JobDetails._id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@ -24,11 +56,12 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
border-top: 2px solid #e1e1e1;
|
border-top: 2px solid #e1e1e1;
|
||||||
|
|
||||||
height: 50vh;
|
height: 49.5vh;
|
||||||
max-height: 50vh;
|
max-height: 49.5vh;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.detailHead {
|
.detailHead {
|
||||||
-webkit-box-sizing: border-box;
|
-webkit-box-sizing: border-box;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@ -41,47 +74,91 @@
|
|||||||
.row {
|
.row {
|
||||||
margin: 1% 0;
|
margin: 1% 0;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
display:flex;
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.applied {
|
||||||
|
-webkit-box-shadow: inset 0 0 5px 5px #f7de2f69;
|
||||||
|
box-shadow: inset 0 0 5px 5px #f7de2f69;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
{#if visible}
|
{#if visible}
|
||||||
<div class="detail">
|
<div class="detail">
|
||||||
<div class="detailHead bg-light">
|
<div class="detailHead bg-light {applied ? 'applied' : ''}">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 text-primary lead">
|
<div class="col-12 text-primary lead">
|
||||||
{$JobDetails.title}
|
{$JobDetails.title}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{#if jobtype === 1}
|
||||||
|
<span class="badge badge-success">Contract</span>
|
||||||
|
{:else if jobtype === 2}
|
||||||
|
<span class="badge badge-danger">Permanent</span>
|
||||||
|
{/if}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-1-3rd">
|
||||||
|
Company: <span class="text-primary">{$JobDetails.company}</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-1-3rd">
|
||||||
|
Location: <span class="text-primary">{$JobDetails.location}</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-1-3rd">
|
||||||
|
Applied:
|
||||||
|
{#if !applied}
|
||||||
|
<button on:click={handleClick} class="btn btn-sm btn-primary">Applied</button>
|
||||||
|
{:else}
|
||||||
|
Applied!
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-1-3rd">
|
||||||
|
Salary: <span class="text-primary">{@html $JobDetails.salary}</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-1-3rd">
|
||||||
|
Scraped: <span class="text-primary">{$JobDetails.date}</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-1-3rd">
|
||||||
|
Site: <a href={$JobDetails.url} class="text-capitalize" target="_blank">{$JobDetails.site}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
{#each $JobDetails.data.autoclass.words as word, _wid}
|
||||||
|
{#if $JobDetails.data.autoclass.good.indexOf(word) !== -1}
|
||||||
|
<span class="badge badge-success">{word}</span>
|
||||||
|
{:else if $JobDetails.data.autoclass.bad.indexOf(word) !== -1}
|
||||||
|
<span class="badge badge-danger">{word}</span>
|
||||||
|
{:else }
|
||||||
|
<span class="badge badge-dark" on:click={kill(word)}>{word}</span>
|
||||||
|
{/if}
|
||||||
|
{/each}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!--<div class="col-1">
|
||||||
|
<button on:click={upvote} class="btn btn-sm btn-success">👍</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-1">
|
||||||
|
<button on:click={downvote} class="btn btn-sm btn-danger">👎</button>
|
||||||
|
</div>-->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<blockquote class="container noscroll">
|
||||||
<div class="col-6">
|
{@html $JobDetails.summary}
|
||||||
Company: <span class="text-primary">{$JobDetails.company}</span>
|
</blockquote>
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
Location: <span class="text-primary">{$JobDetails.location}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-1-3rd">
|
|
||||||
Salary: <span class="text-primary">{$JobDetails.salary}</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-1-3rd">
|
|
||||||
Scraped: <span class="text-primary">{$JobDetails.date}</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-1-3rd">
|
|
||||||
Site: <a href={$JobDetails.url} class="text-capitalize" target="_blank">{$JobDetails.site}</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<blockquote>
|
|
||||||
{$JobDetails.summary}
|
|
||||||
</blockquote>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/if}
|
{/if}
|
||||||
|
34
src/components/Header.svelte
Executable file
34
src/components/Header.svelte
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
<script>
|
||||||
|
import {actions} from '../state/state';
|
||||||
|
|
||||||
|
function handleClick() {
|
||||||
|
|
||||||
|
actions.markAllRead();
|
||||||
|
}
|
||||||
|
|
||||||
|
let titleText = 'Jobs';
|
||||||
|
let showFav = false;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<header class="navbar bg-primary">
|
||||||
|
|
||||||
|
<section class="navbar-section">
|
||||||
|
<span class="text-bold navbar-brand mx-1 text-uppercase">{titleText}</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<section class="navbar-section text-right">
|
||||||
|
<button on:click={handleClick} class="btn btn-sm btn-primary">Mark All Read</button>
|
||||||
|
<!-- <a href="/#/tweets" class="btn bg-primary ">Tweets</a>
|
||||||
|
<a href="/#/settings" class="btn bg-primary ">Settings</a>
|
||||||
|
{#if showFav}
|
||||||
|
<a href="/#/favourites" class="btn bg-primary">Favourites</a>
|
||||||
|
{/if}-->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
111
src/components/Lister.svelte
Normal file → Executable file
111
src/components/Lister.svelte
Normal file → Executable file
@ -1,22 +1,101 @@
|
|||||||
<script>
|
<script>
|
||||||
|
|
||||||
import {JobList, actions} from '../state/state';
|
import {JobList, actions} from '../state/state';
|
||||||
|
import { format } from 'fecha';
|
||||||
|
|
||||||
const handleClick = id => {
|
let prevRow;
|
||||||
actions.loadJobDetail(id);
|
|
||||||
};
|
const handleClick = id => {
|
||||||
|
actions.loadJobDetail(id);
|
||||||
|
};
|
||||||
|
|
||||||
|
function clickEvent(event) {
|
||||||
|
const parent = event.target.parentElement;
|
||||||
|
const id = parent.dataset.id;
|
||||||
|
actions.loadJobDetail(id);
|
||||||
|
actions.touchJob(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ellipses(instr, maxChars = 40) {
|
||||||
|
return (instr.length <= maxChars) ? instr : `${instr.slice(0, maxChars)}…`
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function ellipsisV2( str, n = 40, useWordBoundary = true ){
|
||||||
|
if (str.length <= n) { return str; }
|
||||||
|
const subString = str.substr(0, n-1); // the original check
|
||||||
|
return (useWordBoundary
|
||||||
|
? subString.substr(0, subString.lastIndexOf(" "))
|
||||||
|
: subString) + "…";
|
||||||
|
}
|
||||||
|
|
||||||
|
function haveRead(inval) {
|
||||||
|
return (inval.read !== 0) ? 'read' : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function haveApplied(inval) {
|
||||||
|
return (inval.applied !== 0) ? 'applied' : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function timeStamptoLocaleDate(inval) {
|
||||||
|
return new Date(inval).toLocaleString();
|
||||||
|
}
|
||||||
|
|
||||||
|
function timeOrDate(v) {
|
||||||
|
const now = Date.now();
|
||||||
|
const baseTime = (~~(now / 86400000)) * 86400000;
|
||||||
|
|
||||||
|
return (v > baseTime) ? format(new Date(v), 'shortTime') : format(new Date(v), 'isoDate');
|
||||||
|
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.lister {
|
.lister {
|
||||||
height: 50vh;
|
height: 45vh;
|
||||||
max-height: 50vh;
|
max-height: 45vh;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hide {
|
.hide {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.company {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataRow {
|
||||||
|
font-weight: bold;
|
||||||
|
color: darkslategrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.read {
|
||||||
|
font-weight: normal !important;
|
||||||
|
color: dimgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.applied {
|
||||||
|
-webkit-box-shadow: inset 0 0 5px 5px #f7de2f69;
|
||||||
|
box-shadow: inset 0 0 5px 5px #f7de2f69;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataRow:hover {
|
||||||
|
background-color: rgba(245, 238, 100, 0.54);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.small {
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noOverflow {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
@ -40,11 +119,23 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each $JobList as item, _id}
|
{#each $JobList as item, _id}
|
||||||
<tr on:click={handleClick(item._id)} class="dataRow">
|
<!--<tr on:click={handleClick(item._id)} class="dataRow">-->
|
||||||
<td>{item.title}</td>
|
<tr on:click|stopPropagation={clickEvent} class="dataRow {haveRead(item)} {haveApplied(item)}" data-id={item._id}>
|
||||||
|
<td class="noOverflow">
|
||||||
|
{item.title}
|
||||||
|
<!--<div>
|
||||||
|
{#each item.autoclass.words as word, _wid}
|
||||||
|
{#if item.autoclass.good.indexOf(word) !== -1}
|
||||||
|
<span class="badge badge-success">{word}</span>
|
||||||
|
{:else if item.autoclass.bad.indexOf(word) !== -1}
|
||||||
|
<span class="badge badge-danger">{word}</span>
|
||||||
|
{/if}
|
||||||
|
{/each}
|
||||||
|
</div>-->
|
||||||
|
</td>
|
||||||
<td>{item.site}</td>
|
<td>{item.site}</td>
|
||||||
<td>{item.company}</td>
|
<td title={item.company}>{ellipsisV2(item.company,25)}</td>
|
||||||
<td>{item.date}</td>
|
<td title={timeStamptoLocaleDate(item.timestamp)}>{timeOrDate(item.timestamp)}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{/each}
|
{/each}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
16
src/components/Menu.svelte
Normal file → Executable file
16
src/components/Menu.svelte
Normal file → Executable file
@ -1,23 +1,27 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import {actions} from '../state/state';
|
||||||
|
|
||||||
function handleClick(){
|
function handleClick() {
|
||||||
|
|
||||||
|
actions.markAllRead();
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
menu {
|
.menu {
|
||||||
|
|
||||||
border-right: 2px solid #e1e1e1;
|
border-right: 2px solid #e1e1e1;
|
||||||
background-color: #f4f4f4;
|
background-color: #f4f4f4;
|
||||||
height:100vh;
|
height: 100vh;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<menu>
|
<div class="menu">
|
||||||
<h2>Jobs</h2>
|
<h2>Jobs</h2>
|
||||||
<hr/>
|
<hr/>
|
||||||
|
<div class="text-center">
|
||||||
|
<button on:click={handleClick} class="btn btn-sm btn-primary">Mark All Read</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<button>Indeed</button>
|
</div>
|
||||||
</menu>
|
|
||||||
|
44
src/css/bronze.scss
Executable file
44
src/css/bronze.scss
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
@import url('https://fonts.googleapis.com/css?family=Roboto+Condensed');
|
||||||
|
@import './nord.scss';
|
||||||
|
|
||||||
|
// https://www.schemecolor.com/put-it-in-writing.php
|
||||||
|
$bronze0: #30447D;
|
||||||
|
$bronze1: #EAE3C7;
|
||||||
|
$bronze2: #C8A16B;
|
||||||
|
$bronze3: #A87F49;
|
||||||
|
$bronze4: #76404C;
|
||||||
|
|
||||||
|
$nord11: #bf616a;
|
||||||
|
$nord14: #a3be8c;
|
||||||
|
|
||||||
|
|
||||||
|
$navbar-height: 56px;
|
||||||
|
$navbar-height-small: 36px;
|
||||||
|
$admin-footer-height: 70px;
|
||||||
|
$admin-nav-width: 250px;
|
||||||
|
|
||||||
|
$primary-color: $nord10;
|
||||||
|
$dark-color: $nord2;
|
||||||
|
$light-color: $nord4;
|
||||||
|
$danger-color: $nord11;
|
||||||
|
$success-color: $nord14;
|
||||||
|
|
||||||
|
$highlight-color: $bronze4;
|
||||||
|
$highlight-color2: $nord13;
|
||||||
|
|
||||||
|
@import './bronze/base';
|
||||||
|
|
||||||
|
@import './bronze/padding';
|
||||||
|
@import './bronze/grid';
|
||||||
|
@import './bronze/text';
|
||||||
|
@import './bronze/button';
|
||||||
|
@import './bronze/table';
|
||||||
|
@import './bronze/navbar';
|
||||||
|
@import './bronze/margin';
|
||||||
|
@import './bronze/cards';
|
||||||
|
|
||||||
|
@import './bronze/_small';
|
||||||
|
//@import './bronze/_xlarge';
|
||||||
|
|
||||||
|
|
||||||
|
|
29
src/css/bronze/_small.scss
Executable file
29
src/css/bronze/_small.scss
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
/* Larger than mobile */
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
.container{
|
||||||
|
max-width: 98vw;
|
||||||
|
padding: 0 0;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-height: 480px) {
|
||||||
|
.navbar {
|
||||||
|
min-height: $navbar-height-small;
|
||||||
|
}
|
||||||
|
|
||||||
|
header + div.container {
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
top:$navbar-height-small;
|
||||||
|
max-height: calc(100vh - #{$navbar-height-small});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .navbar-brand {
|
||||||
|
font-size: 125%;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
7
src/css/bronze/_xlarge.scss
Executable file
7
src/css/bronze/_xlarge.scss
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
@media (min-height: 900px) {
|
||||||
|
body{
|
||||||
|
font-size: x-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
65
src/css/bronze/base.scss
Executable file
65
src/css/bronze/base.scss
Executable file
@ -0,0 +1,65 @@
|
|||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
overflow-x: hidden;
|
||||||
|
font-family: 'Roboto Condensed', sans-serif;
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $primary-color;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.active{
|
||||||
|
color: $highlight-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: auto;
|
||||||
|
overflow-y: scroll;
|
||||||
|
padding: 0 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fullWidth {
|
||||||
|
max-width: 100vw;
|
||||||
|
padding: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noscroll {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin-top: 2.2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
border-width: 0;
|
||||||
|
border-top: 1px solid $dark-color; }
|
||||||
|
|
||||||
|
|
||||||
|
.flex {
|
||||||
|
display: flex;
|
||||||
|
}
|
140
src/css/bronze/button.scss
Executable file
140
src/css/bronze/button.scss
Executable file
@ -0,0 +1,140 @@
|
|||||||
|
.btn {
|
||||||
|
display: inline-block;
|
||||||
|
background: $light-color;
|
||||||
|
color: #333;
|
||||||
|
padding: 0.4rem 1.3rem;
|
||||||
|
font-size: 1rem;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
transition: opacity 0.2s ease-in;
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
&:disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
pointer-events: none;
|
||||||
|
opacity: 0.60;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
&:enabled:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
&--slim {
|
||||||
|
@extend .btn;
|
||||||
|
padding: 0.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-link {
|
||||||
|
background: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-block {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-sm {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
padding: 0.3rem 1rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
|
||||||
|
&--slim {
|
||||||
|
@extend .btn-sm;
|
||||||
|
padding: 0.3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 0.6rem;
|
||||||
|
padding: 0.1rem 0.4rem;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0.3rem;
|
||||||
|
background: $light-color;
|
||||||
|
color: #333;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert {
|
||||||
|
padding: 0.7rem;
|
||||||
|
margin: 1rem 0;
|
||||||
|
opacity: 0.9;
|
||||||
|
background: $light-color;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary,
|
||||||
|
.bg-primary,
|
||||||
|
.badge-primary,
|
||||||
|
.alert-primary {
|
||||||
|
background: $primary-color;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn-light,
|
||||||
|
.bg-light,
|
||||||
|
.badge-light,
|
||||||
|
.alert-light {
|
||||||
|
background: $light-color;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-dark,
|
||||||
|
.bg-dark,
|
||||||
|
.badge-dark,
|
||||||
|
.alert-dark {
|
||||||
|
background: $dark-color;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-danger,
|
||||||
|
.bg-danger,
|
||||||
|
.badge-danger,
|
||||||
|
.alert-danger {
|
||||||
|
background: $danger-color;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-success,
|
||||||
|
.bg-success,
|
||||||
|
.badge-success,
|
||||||
|
.alert-success {
|
||||||
|
background: $success-color;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-white,
|
||||||
|
.bg-white,
|
||||||
|
.badge-white,
|
||||||
|
.alert-white {
|
||||||
|
background: #fff;
|
||||||
|
color: #333;
|
||||||
|
border: #ccc solid 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.btn:disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
pointer-events: none;
|
||||||
|
opacity: 0.60;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btn:enabled:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
.bg-light,
|
||||||
|
.badge-light {
|
||||||
|
border: #ccc solid 1px;
|
||||||
|
}
|
39
src/css/bronze/cards.scss
Executable file
39
src/css/bronze/cards.scss
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
/* Cards */
|
||||||
|
.card {
|
||||||
|
padding: 1rem;
|
||||||
|
border: #ccc 1px dotted;
|
||||||
|
margin: 0.7rem 0;
|
||||||
|
|
||||||
|
&--slim {
|
||||||
|
@extend .card;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardTitle {
|
||||||
|
border-bottom-color: #eee;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-bottom-style: solid;
|
||||||
|
margin-bottom: 15px
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardV2 {
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0 0 4px 0 rgba(0,0,0,.14), 0 3px 4px 0 rgba(0,0,0,.12), 0 1px 5px 0 rgba(0,0,0,.2);
|
||||||
|
/*display: flex;
|
||||||
|
flex-direction: column;*/
|
||||||
|
min-width: 0;
|
||||||
|
/*position: relative;
|
||||||
|
word-wrap: break-word;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.seemore {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardLink {
|
||||||
|
color: #2196F3;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
126
src/css/bronze/dropdown.scss
Executable file
126
src/css/bronze/dropdown.scss
Executable file
@ -0,0 +1,126 @@
|
|||||||
|
$mui-use-rem: false !default;
|
||||||
|
@function mui-rem($px) {
|
||||||
|
$x: $px;
|
||||||
|
|
||||||
|
@if $mui-use-rem == true {
|
||||||
|
$x: ($px / 16px) * 1rem;
|
||||||
|
$x: round(1000 * $x) / 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
@return $x;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MUI Dropdown module
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// MAIN COMPONENT
|
||||||
|
// ============================================================================
|
||||||
|
.mui-dropdown {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggle element
|
||||||
|
[data-mui-toggle="dropdown"] {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// MENU ELEMENT
|
||||||
|
// ============================================================================
|
||||||
|
.mui-dropdown__menu {
|
||||||
|
// @extend .mui--z1;
|
||||||
|
box-shadow: 0 1px 3px rgba(21,21,21, 0.12),
|
||||||
|
0 1px 2px rgba(21,21,21, 0.24);
|
||||||
|
|
||||||
|
// IE10+ bugfix
|
||||||
|
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
|
||||||
|
border-top: 1px solid rgba(21,21,21, 0.12);
|
||||||
|
border-left: 1px solid rgba(21,21,21, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Edge
|
||||||
|
@supports (-ms-ime-align:auto) {
|
||||||
|
border-top: 1px solid rgba(21,21,21, 0.12);
|
||||||
|
border-left: 1px solid rgba(21,21,21, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
display: none;
|
||||||
|
min-width: mui-rem(160px);
|
||||||
|
padding: mui-rem(5px) 0;
|
||||||
|
margin: mui-rem(2px) 0 0; // override default ul
|
||||||
|
list-style: none;
|
||||||
|
font-size: $mui-base-font-size;
|
||||||
|
text-align: left;
|
||||||
|
background-color: $mui-dropdown-bg-color;
|
||||||
|
border-radius: $mui-dropdown-border-radius;
|
||||||
|
z-index: 100;
|
||||||
|
background-clip: padding-box;
|
||||||
|
|
||||||
|
// open state
|
||||||
|
&.mui--is-open {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
// links within the dropdown menu
|
||||||
|
> li > a {
|
||||||
|
display: block;
|
||||||
|
padding: mui-rem(3px) mui-rem(20px);
|
||||||
|
clear: both;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: $mui-base-line-height;
|
||||||
|
color: $mui-dropdown-link-font-color;
|
||||||
|
text-decoration: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
// hover & focus state
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
color: $mui-dropdown-link-font-color-hover;
|
||||||
|
background-color: $mui-dropdown-link-bg-color-hover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .mui--is-disabled > a {
|
||||||
|
&,
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: $mui-dropdown-link-font-color-disabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
// nuke hover & focus effects
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: none;
|
||||||
|
cursor: $mui-cursor-disabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// right align
|
||||||
|
.mui-dropdown__menu--right {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// alternative positions
|
||||||
|
.mui-dropdown--up > .mui-dropdown__menu {
|
||||||
|
margin: 0 0 mui-rem(2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mui-dropdown--right > .mui-dropdown__menu {
|
||||||
|
margin: 0 0 0 mui-rem(2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mui-dropdown--left > .mui-dropdown__menu {
|
||||||
|
margin: 0 mui-rem(2px) 0 0;
|
||||||
|
}
|
55
src/css/bronze/forms.scss
Executable file
55
src/css/bronze/forms.scss
Executable file
@ -0,0 +1,55 @@
|
|||||||
|
/* Forms */
|
||||||
|
input {
|
||||||
|
margin: .2rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-text {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0.3rem;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='text'],
|
||||||
|
input[type='email'],
|
||||||
|
input[type='password'],
|
||||||
|
input[type='date'],
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0.1rem;
|
||||||
|
/*font-size: 1.2rem;*/
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='submit'],
|
||||||
|
button {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
label,
|
||||||
|
legend {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: .1rem;
|
||||||
|
font-weight: 600; }
|
||||||
|
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"] {
|
||||||
|
display: inline; }
|
||||||
|
label > .label-body {
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: .5rem;
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #dcc894;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table th,
|
||||||
|
table td {
|
||||||
|
padding: 1rem;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th {
|
||||||
|
background: var(--light-color);
|
||||||
|
}
|
188
src/css/bronze/grid.scss
Executable file
188
src/css/bronze/grid.scss
Executable file
@ -0,0 +1,188 @@
|
|||||||
|
/* Grid */
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
-ms-flex-wrap: wrap;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
/*margin-left: -.4rem;
|
||||||
|
margin-right: -.4rem;*/
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(1, 1fr);
|
||||||
|
grid-gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
grid-gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--3 {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
grid-gap: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--4 {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(4, 1fr);
|
||||||
|
grid-gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.row {
|
||||||
|
margin-left: 3px;
|
||||||
|
margin-right: 3px;
|
||||||
|
|
||||||
|
&:before, &:after {
|
||||||
|
content: " ";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col-1-3rd, .col-2-3rd, .col-half {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
min-height: 1px;
|
||||||
|
padding-left: 15px;
|
||||||
|
padding-right: 15px;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
.column,
|
||||||
|
.columns {
|
||||||
|
margin-left: 4%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column:first-child,
|
||||||
|
.columns:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-1 {
|
||||||
|
width: 8.33333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-2 {
|
||||||
|
width: 16.66667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-3 {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-4 {
|
||||||
|
width: 33.33333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-5 {
|
||||||
|
width: 41.66667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-6 {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-7 {
|
||||||
|
width: 58.33333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-8 {
|
||||||
|
width: 66.66667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-9 {
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-10 {
|
||||||
|
width: 83.33333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-11 {
|
||||||
|
width: 91.66667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-12 {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-1-3rd {
|
||||||
|
width: 32.666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-2-3rd {
|
||||||
|
width: 65.3333333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-half {
|
||||||
|
width: 48%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Offsets */
|
||||||
|
.offset-1-col {
|
||||||
|
margin-left: 8.66666666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-2-col {
|
||||||
|
margin-left: 17.3333333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-3-col {
|
||||||
|
margin-left: 26%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-4-col {
|
||||||
|
margin-left: 34.6666666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-5-col {
|
||||||
|
margin-left: 43.3333333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-6-col {
|
||||||
|
margin-left: 52%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-7-col {
|
||||||
|
margin-left: 60.6666666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-8-col {
|
||||||
|
margin-left: 69.3333333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-9-col {
|
||||||
|
margin-left: 78.0%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-10-col {
|
||||||
|
margin-left: 86.6666666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-11-col {
|
||||||
|
margin-left: 95.3333333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-1-3rd-col {
|
||||||
|
margin-left: 34.6666666667%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-2-3rd-col {
|
||||||
|
margin-left: 69.3333333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.offset-half-col {
|
||||||
|
margin-left: 52%;
|
||||||
|
}
|
12
src/css/bronze/list.scss
Executable file
12
src/css/bronze/list.scss
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
/* List */
|
||||||
|
.list {
|
||||||
|
margin: 0.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list li {
|
||||||
|
padding-bottom: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataRow {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
103
src/css/bronze/margin.scss
Executable file
103
src/css/bronze/margin.scss
Executable file
@ -0,0 +1,103 @@
|
|||||||
|
/* Margin */
|
||||||
|
.m {
|
||||||
|
margin: 0.5rem;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
margin: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
margin: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--3 {
|
||||||
|
margin: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.mb {
|
||||||
|
margin-bottom: .1rem !important;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
margin-bottom: .2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
margin-bottom: .4rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.ml {
|
||||||
|
margin-left: .1rem !important;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
margin-left: .2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
margin-left: .4rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.mr {
|
||||||
|
margin-right: .1rem !important;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
margin-right: .2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mr-2 {
|
||||||
|
margin-right: .4rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt {
|
||||||
|
margin-top: .1rem !important;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
margin-top: .2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
margin-top: .4rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx {
|
||||||
|
margin-left: 0.5rem !important;
|
||||||
|
margin-right: 0.5rem !important;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
margin-left: 1rem !important;
|
||||||
|
margin-right: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
margin-left: 2rem !important;
|
||||||
|
margin-right: 2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.my {
|
||||||
|
margin: 0.5rem 0;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
margin: 2rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--3 {
|
||||||
|
margin: 3rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
22
src/css/bronze/modal.scss
Executable file
22
src/css/bronze/modal.scss
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
.modalWindow {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
z-index: 99999;
|
||||||
|
opacity:0;
|
||||||
|
pointer-events: none;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
.modalWindow:target {
|
||||||
|
opacity:1;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
.modalWindow > div {
|
||||||
|
width: 500px;
|
||||||
|
position: relative;
|
||||||
|
margin: 10% auto;
|
||||||
|
background: #fff;
|
||||||
|
}
|
38
src/css/bronze/mouse.scss
Executable file
38
src/css/bronze/mouse.scss
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
// Mouse pointers
|
||||||
|
|
||||||
|
.alias {cursor: alias;}
|
||||||
|
.all-scroll {cursor: all-scroll;}
|
||||||
|
.auto {cursor: auto;}
|
||||||
|
.cell {cursor: cell;}
|
||||||
|
.context-menu {cursor: context-menu;}
|
||||||
|
.col-resize {cursor: col-resize;}
|
||||||
|
.copy {cursor: copy;}
|
||||||
|
.crosshair {cursor: crosshair;}
|
||||||
|
.default {cursor: default;}
|
||||||
|
.e-resize {cursor: e-resize;}
|
||||||
|
.ew-resize {cursor: ew-resize;}
|
||||||
|
.grab {cursor: grab;}
|
||||||
|
.grabbing {cursor: grabbing;}
|
||||||
|
.help {cursor: help;}
|
||||||
|
.move {cursor: move;}
|
||||||
|
.n-resize {cursor: n-resize;}
|
||||||
|
.ne-resize {cursor: ne-resize;}
|
||||||
|
.nesw-resize {cursor: nesw-resize;}
|
||||||
|
.ns-resize {cursor: ns-resize;}
|
||||||
|
.nw-resize {cursor: nw-resize;}
|
||||||
|
.nwse-resize {cursor: nwse-resize;}
|
||||||
|
.no-drop {cursor: no-drop;}
|
||||||
|
.none {cursor: none;}
|
||||||
|
.not-allowed {cursor: not-allowed;}
|
||||||
|
.pointer {cursor: pointer;}
|
||||||
|
.progress {cursor: progress;}
|
||||||
|
.row-resize {cursor: row-resize;}
|
||||||
|
.s-resize {cursor: s-resize;}
|
||||||
|
.se-resize {cursor: se-resize;}
|
||||||
|
.sw-resize {cursor: sw-resize;}
|
||||||
|
.text {cursor: text;}
|
||||||
|
.url {cursor: url(myBall.cur),auto;}
|
||||||
|
.w-resize {cursor: w-resize;}
|
||||||
|
.wait {cursor: wait;}
|
||||||
|
.zoom-in {cursor: zoom-in;}
|
||||||
|
.zoom-out {cursor: zoom-out;}
|
58
src/css/bronze/navbar.scss
Executable file
58
src/css/bronze/navbar.scss
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
/* Navbar */
|
||||||
|
.navbar {
|
||||||
|
position:fixed;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
/*padding: 0.7rem 0rem;*/
|
||||||
|
z-index: 2;
|
||||||
|
width: 100%;
|
||||||
|
opacity: 0.9;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
min-height: $navbar-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.navbar ul {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar a {
|
||||||
|
color: #fff;
|
||||||
|
padding: 0.45rem;
|
||||||
|
margin: 0 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar a:hover {
|
||||||
|
color: $light-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .welcome span {
|
||||||
|
margin-right: 0.6rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .navbar-section {
|
||||||
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
-ms-flex: 1 0 0;
|
||||||
|
flex: 1 0 0;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .navbar-section:not(:first-child):last-child {
|
||||||
|
-ms-flex-pack: end;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .navbar-brand {
|
||||||
|
font-size: 200%;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
header + div.container {
|
||||||
|
position: relative;
|
||||||
|
top:$navbar-height;
|
||||||
|
max-height: calc(100vh - #{$navbar-height});
|
||||||
|
}
|
||||||
|
|
66
src/css/bronze/padding.scss
Executable file
66
src/css/bronze/padding.scss
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
/* Padding */
|
||||||
|
.pad {
|
||||||
|
padding: 0.5rem;
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
padding: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--3 {
|
||||||
|
padding: 3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.pady {
|
||||||
|
padding: 0.5rem 0;
|
||||||
|
|
||||||
|
&--top {
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--bottom {
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
padding: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
padding: 2rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--3 {
|
||||||
|
padding: 3rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.padx {
|
||||||
|
padding: 0 0.5rem;
|
||||||
|
|
||||||
|
&--right {
|
||||||
|
padding-right: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--left {
|
||||||
|
padding-left: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--1 {
|
||||||
|
padding: 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--2 {
|
||||||
|
padding: 0 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--3 {
|
||||||
|
padding: 0 3rem;
|
||||||
|
}
|
||||||
|
}
|
25
src/css/bronze/panel.scss
Executable file
25
src/css/bronze/panel.scss
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
/* Panel */
|
||||||
|
|
||||||
|
.panel {
|
||||||
|
padding: 15px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border-radius: 0;
|
||||||
|
background-color: #FFF;
|
||||||
|
-webkit-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0px 2px 0 rgba(0, 0, 0, 0.12);
|
||||||
|
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0px 2px 0 rgba(0, 0, 0, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel:before, .panel:after {
|
||||||
|
content: " ";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.glassy {
|
||||||
|
background-color: rgba(31, 28, 23, 0.6);
|
||||||
|
-webkit-backdrop-filter: blur(5px);
|
||||||
|
backdrop-filter: blur(2px);
|
||||||
|
}
|
39
src/css/bronze/table.scss
Executable file
39
src/css/bronze/table.scss
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
.table-responsive {
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
overflow-x: auto;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
table {
|
||||||
|
max-width: 100%;
|
||||||
|
width: 100%;
|
||||||
|
border: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr {
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody tr:nth-of-type(odd){
|
||||||
|
background-color: rgba(0,0,0,0.04);
|
||||||
|
}
|
||||||
|
|
||||||
|
tbody td {
|
||||||
|
border-top: 1px solid #e1e1e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table th,
|
||||||
|
table td {
|
||||||
|
padding: 1rem;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th {
|
||||||
|
background: $light-color;
|
||||||
|
}
|
125
src/css/bronze/text.scss
Executable file
125
src/css/bronze/text.scss
Executable file
@ -0,0 +1,125 @@
|
|||||||
|
.x-large {
|
||||||
|
font-size: 4rem;
|
||||||
|
line-height: 1.2;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large {
|
||||||
|
font-size: 3rem;
|
||||||
|
line-height: 1.2;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lead {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-primary {
|
||||||
|
color: $primary-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-dark {
|
||||||
|
color: $dark-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-light {
|
||||||
|
color: $dark-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-success {
|
||||||
|
color: $success-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-danger {
|
||||||
|
color: $danger-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-highlight {
|
||||||
|
color: $highlight-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-highlight2 {
|
||||||
|
color: $highlight-color2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-lowercase {
|
||||||
|
text-transform: lowercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-uppercase {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-capitalize {
|
||||||
|
text-transform: capitalize;
|
||||||
|
}
|
||||||
|
.text-display1, h1 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 34px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-title, h3 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-subhead, h4 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-body2, h5 {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-body1 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-caption {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-middle {
|
||||||
|
vertical-align: middle !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Center All */
|
||||||
|
.all-center {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 100%;
|
||||||
|
margin: auto;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-justify { text-align: justify !important; }
|
||||||
|
.text-nowrap { white-space: nowrap !important; }
|
||||||
|
|
||||||
|
.align-baseline { vertical-align: baseline !important; }
|
||||||
|
.align-top { vertical-align: top !important; }
|
||||||
|
.align-bottom { vertical-align: bottom !important; }
|
370
src/css/global.scss
Normal file → Executable file
370
src/css/global.scss
Normal file → Executable file
@ -3,7 +3,6 @@
|
|||||||
/* Global Styles */
|
/* Global Styles */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--primary-color: #607D8B;
|
--primary-color: #607D8B;
|
||||||
--dark-color: #294c5d;
|
--dark-color: #294c5d;
|
||||||
@ -28,7 +27,7 @@ body {
|
|||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
color: #333;
|
color: #333;
|
||||||
padding:0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@ -40,7 +39,7 @@ a:hover {
|
|||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.active{
|
a.active {
|
||||||
color: var(--highlight-color);
|
color: var(--highlight-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,6 +63,11 @@ img {
|
|||||||
padding: 0 2rem;
|
padding: 0 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fullWidth {
|
||||||
|
max-width: 100vw;
|
||||||
|
padding: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Text Styles*/
|
/* Text Styles*/
|
||||||
.x-large {
|
.x-large {
|
||||||
font-size: 4rem;
|
font-size: 4rem;
|
||||||
@ -195,24 +199,31 @@ img {
|
|||||||
.p {
|
.p {
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-1 {
|
.p-1 {
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-2 {
|
.p-2 {
|
||||||
padding: 2rem;
|
padding: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-3 {
|
.p-3 {
|
||||||
padding: 3rem;
|
padding: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.py {
|
.py {
|
||||||
padding: 0.5rem 0;
|
padding: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.py-1 {
|
.py-1 {
|
||||||
padding: 1rem 0;
|
padding: 1rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.py-2 {
|
.py-2 {
|
||||||
padding: 2rem 0;
|
padding: 2rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.py-3 {
|
.py-3 {
|
||||||
padding: 3rem 0;
|
padding: 3rem 0;
|
||||||
}
|
}
|
||||||
@ -221,6 +232,7 @@ img {
|
|||||||
.m {
|
.m {
|
||||||
margin: 0.5rem;
|
margin: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.m-1 {
|
.m-1 {
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
}
|
}
|
||||||
@ -274,15 +286,19 @@ img {
|
|||||||
.m-3 {
|
.m-3 {
|
||||||
margin: 3rem;
|
margin: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my {
|
.my {
|
||||||
margin: 0.5rem 0;
|
margin: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-1 {
|
.my-1 {
|
||||||
margin: 1rem 0;
|
margin: 1rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-2 {
|
.my-2 {
|
||||||
margin: 2rem 0;
|
margin: 2rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-3 {
|
.my-3 {
|
||||||
margin: 3rem 0;
|
margin: 3rem 0;
|
||||||
}
|
}
|
||||||
@ -343,16 +359,19 @@ img {
|
|||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
.column,
|
.column,
|
||||||
.columns {
|
.columns {
|
||||||
margin-left: 4%; }
|
margin-left: 4%;
|
||||||
.column:first-child,
|
}
|
||||||
.columns:first-child {
|
|
||||||
margin-left: 0; }
|
|
||||||
|
|
||||||
.col-1 {
|
.column:first-child,
|
||||||
width: 8.33333%;
|
.columns:first-child {
|
||||||
}
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-1 {
|
||||||
|
width: 8.33333%;
|
||||||
|
}
|
||||||
|
|
||||||
.col-2 {
|
.col-2 {
|
||||||
width: 16.66667%;
|
width: 16.66667%;
|
||||||
@ -469,7 +488,6 @@ img {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background: var(--light-color);
|
background: var(--light-color);
|
||||||
@ -624,16 +642,19 @@ label,
|
|||||||
legend {
|
legend {
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: .1rem;
|
margin-bottom: .1rem;
|
||||||
font-weight: 600; }
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
input[type="checkbox"],
|
input[type="checkbox"],
|
||||||
input[type="radio"] {
|
input[type="radio"] {
|
||||||
display: inline; }
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
label > .label-body {
|
label > .label-body {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-left: .5rem;
|
margin-left: .5rem;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
background-color: #dcc894;
|
background-color: #dcc894;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -649,7 +670,7 @@ table th {
|
|||||||
|
|
||||||
/* Navbar */
|
/* Navbar */
|
||||||
.navbar {
|
.navbar {
|
||||||
position:fixed;
|
position: fixed;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -757,7 +778,7 @@ table th {
|
|||||||
.cardV2 {
|
.cardV2 {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
box-shadow: 0 0 4px 0 rgba(0,0,0,.14), 0 3px 4px 0 rgba(0,0,0,.12), 0 1px 5px 0 rgba(0,0,0,.2);
|
box-shadow: 0 0 4px 0 rgba(0, 0, 0, .14), 0 3px 4px 0 rgba(0, 0, 0, .12), 0 1px 5px 0 rgba(0, 0, 0, .2);
|
||||||
/*display: flex;
|
/*display: flex;
|
||||||
flex-direction: column;*/
|
flex-direction: column;*/
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
@ -777,8 +798,8 @@ tr {
|
|||||||
border-top: 1px solid #ccc;
|
border-top: 1px solid #ccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody tr:nth-of-type(odd){
|
tbody tr:nth-of-type(odd) {
|
||||||
background-color: rgba(0,0,0,0.04);
|
background-color: rgba(0, 0, 0, 0.04);
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody td {
|
tbody td {
|
||||||
@ -789,8 +810,8 @@ hr {
|
|||||||
margin-top: 2.2rem;
|
margin-top: 2.2rem;
|
||||||
margin-bottom: 2rem;
|
margin-bottom: 2rem;
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
border-top: 1px solid var(--dark-color); }
|
border-top: 1px solid var(--dark-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.modalWindow {
|
.modalWindow {
|
||||||
@ -799,16 +820,18 @@ hr {
|
|||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
background: rgba(0,0,0,0.2);
|
background: rgba(0, 0, 0, 0.2);
|
||||||
z-index: 99999;
|
z-index: 99999;
|
||||||
opacity:0;
|
opacity: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
text-align:center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modalWindow:target {
|
.modalWindow:target {
|
||||||
opacity:1;
|
opacity: 1;
|
||||||
pointer-events: auto;
|
pointer-events: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modalWindow > div {
|
.modalWindow > div {
|
||||||
width: 500px;
|
width: 500px;
|
||||||
position: relative;
|
position: relative;
|
||||||
@ -818,8 +841,9 @@ hr {
|
|||||||
|
|
||||||
header + div.container {
|
header + div.container {
|
||||||
position: relative;
|
position: relative;
|
||||||
top:var(--navbar-height);
|
top: var(--navbar-height);
|
||||||
min-height: calc(100vh - var(--navbar-height));
|
min-height: calc(100vh - var(--navbar-height));
|
||||||
|
max-height: calc(100vh - var(--navbar-height));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -920,42 +944,149 @@ header + div.container {
|
|||||||
|
|
||||||
// Mouse pointers
|
// Mouse pointers
|
||||||
|
|
||||||
.alias {cursor: alias;}
|
.alias {
|
||||||
.all-scroll {cursor: all-scroll;}
|
cursor: alias;
|
||||||
.auto {cursor: auto;}
|
}
|
||||||
.cell {cursor: cell;}
|
|
||||||
.context-menu {cursor: context-menu;}
|
.all-scroll {
|
||||||
.col-resize {cursor: col-resize;}
|
cursor: all-scroll;
|
||||||
.copy {cursor: copy;}
|
}
|
||||||
.crosshair {cursor: crosshair;}
|
|
||||||
.default {cursor: default;}
|
.auto {
|
||||||
.e-resize {cursor: e-resize;}
|
cursor: auto;
|
||||||
.ew-resize {cursor: ew-resize;}
|
}
|
||||||
.grab {cursor: grab;}
|
|
||||||
.grabbing {cursor: grabbing;}
|
.cell {
|
||||||
.help {cursor: help;}
|
cursor: cell;
|
||||||
.move {cursor: move;}
|
}
|
||||||
.n-resize {cursor: n-resize;}
|
|
||||||
.ne-resize {cursor: ne-resize;}
|
.context-menu {
|
||||||
.nesw-resize {cursor: nesw-resize;}
|
cursor: context-menu;
|
||||||
.ns-resize {cursor: ns-resize;}
|
}
|
||||||
.nw-resize {cursor: nw-resize;}
|
|
||||||
.nwse-resize {cursor: nwse-resize;}
|
.col-resize {
|
||||||
.no-drop {cursor: no-drop;}
|
cursor: col-resize;
|
||||||
.none {cursor: none;}
|
}
|
||||||
.not-allowed {cursor: not-allowed;}
|
|
||||||
.pointer {cursor: pointer;}
|
.copy {
|
||||||
.progress {cursor: progress;}
|
cursor: copy;
|
||||||
.row-resize {cursor: row-resize;}
|
}
|
||||||
.s-resize {cursor: s-resize;}
|
|
||||||
.se-resize {cursor: se-resize;}
|
.crosshair {
|
||||||
.sw-resize {cursor: sw-resize;}
|
cursor: crosshair;
|
||||||
.text {cursor: text;}
|
}
|
||||||
.url {cursor: url(myBall.cur),auto;}
|
|
||||||
.w-resize {cursor: w-resize;}
|
.default {
|
||||||
.wait {cursor: wait;}
|
cursor: default;
|
||||||
.zoom-in {cursor: zoom-in;}
|
}
|
||||||
.zoom-out {cursor: zoom-out;}
|
|
||||||
|
.e-resize {
|
||||||
|
cursor: e-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ew-resize {
|
||||||
|
cursor: ew-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grab {
|
||||||
|
cursor: grab;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grabbing {
|
||||||
|
cursor: grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.help {
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
|
.move {
|
||||||
|
cursor: move;
|
||||||
|
}
|
||||||
|
|
||||||
|
.n-resize {
|
||||||
|
cursor: n-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ne-resize {
|
||||||
|
cursor: ne-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nesw-resize {
|
||||||
|
cursor: nesw-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ns-resize {
|
||||||
|
cursor: ns-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nw-resize {
|
||||||
|
cursor: nw-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nwse-resize {
|
||||||
|
cursor: nwse-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-drop {
|
||||||
|
cursor: no-drop;
|
||||||
|
}
|
||||||
|
|
||||||
|
.none {
|
||||||
|
cursor: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.not-allowed {
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pointer {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress {
|
||||||
|
cursor: progress;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-resize {
|
||||||
|
cursor: row-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.s-resize {
|
||||||
|
cursor: s-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.se-resize {
|
||||||
|
cursor: se-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sw-resize {
|
||||||
|
cursor: sw-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
cursor: text;
|
||||||
|
}
|
||||||
|
|
||||||
|
.url {
|
||||||
|
cursor: url(myBall.cur), auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w-resize {
|
||||||
|
cursor: w-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wait {
|
||||||
|
cursor: wait;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zoom-in {
|
||||||
|
cursor: zoom-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zoom-out {
|
||||||
|
cursor: zoom-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -966,3 +1097,116 @@ header + div.container {
|
|||||||
display: table;
|
display: table;
|
||||||
clear: both; }
|
clear: both; }
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
.hour27 {
|
||||||
|
border-left: 10px solid rgb(80, 181, 221)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour26 {
|
||||||
|
border-left: 10px solid rgb(78, 178, 206)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour25 {
|
||||||
|
border-left: 10px solid rgb(76, 176, 190)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour24 {
|
||||||
|
border-left: 10px solid rgb(73, 173, 175)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour23 {
|
||||||
|
border-left: 10px solid rgb(72, 171, 159)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour22 {
|
||||||
|
border-left: 10px solid rgb(70, 168, 142)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour21 {
|
||||||
|
border-left: 10px solid rgb(68, 166, 125)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour20 {
|
||||||
|
border-left: 10px solid rgb(66, 164, 108)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour19 {
|
||||||
|
border-left: 10px solid rgb(102, 173, 94)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour18 {
|
||||||
|
border-left: 10px solid rgb(135, 190, 64)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour17 {
|
||||||
|
border-left: 10px solid rgb(179, 204, 26)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour16 {
|
||||||
|
border-left: 10px solid rgb(214, 213, 28)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour15 {
|
||||||
|
border-left: 10px solid rgb(249, 202, 3)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour14 {
|
||||||
|
border-left: 10px solid rgb(246, 181, 3)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour13 {
|
||||||
|
border-left: 10px solid rgb(244, 150, 26)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour12 {
|
||||||
|
border-left: 10px solid rgb(236, 110, 5)
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour11 {
|
||||||
|
border-left: 10px solid #ea5a24;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour10 {
|
||||||
|
border-left: 10px solid #e4572b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour09 {
|
||||||
|
border-left: 10px solid #e14a29;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour08 {
|
||||||
|
border-left: 10px solid #e04127;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour07 {
|
||||||
|
border-left: 10px solid #d9372b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour06 {
|
||||||
|
border-left: 10px solid #d63129;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour05 {
|
||||||
|
border-left: 10px solid #d12b2b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour04 {
|
||||||
|
border-left: 10px solid #cd282f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour03 {
|
||||||
|
border-left: 10px solid #c82432;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour02 {
|
||||||
|
border-left: 10px solid #c32334;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour01 {
|
||||||
|
border-left: 10px solid #be2138;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour00 {
|
||||||
|
border-left: 10px solid #b9203b;
|
||||||
|
}
|
||||||
|
34
src/css/lineloader.scss
Executable file
34
src/css/lineloader.scss
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
@keyframes loader-animation {
|
||||||
|
0% {
|
||||||
|
left: -100%;
|
||||||
|
background-color: green;
|
||||||
|
|
||||||
|
}
|
||||||
|
49% {
|
||||||
|
left: 100%;
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
left: 100%;
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
left: -100%;
|
||||||
|
background-color: blue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.loader {
|
||||||
|
height: 5px;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.loader .bar {
|
||||||
|
position: relative;
|
||||||
|
height: 5px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
animation-name: loader-animation;
|
||||||
|
animation-duration: 3s;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-timing-function: ease-in-out;
|
||||||
|
}
|
235
src/css/nord.scss
Executable file
235
src/css/nord.scss
Executable file
@ -0,0 +1,235 @@
|
|||||||
|
// Copyright (c) 2016-present Arctic Ice Studio <development@arcticicestudio.com>
|
||||||
|
// Copyright (c) 2016-present Sven Greb <development@svengreb.de>
|
||||||
|
|
||||||
|
// Project: Nord
|
||||||
|
// Version: 0.2.0
|
||||||
|
// Repository: https://github.com/arcticicestudio/nord
|
||||||
|
// License: MIT
|
||||||
|
// References:
|
||||||
|
// http://sass-lang.com
|
||||||
|
// http://sassdoc.com
|
||||||
|
|
||||||
|
////
|
||||||
|
/// An arctic, north-bluish color palette.
|
||||||
|
/// Created for the clean- and minimal flat design pattern to achieve a optimal focus and readability for code syntax
|
||||||
|
/// highlighting and UI.
|
||||||
|
/// It consists of a total of sixteen, carefully selected, dimmed pastel colors for a eye-comfortable, but yet colorful
|
||||||
|
/// ambiance.
|
||||||
|
///
|
||||||
|
/// @author Arctic Ice Studio <development@arcticicestudio.com>
|
||||||
|
////
|
||||||
|
|
||||||
|
/// Base component color of "Polar Night".
|
||||||
|
///
|
||||||
|
/// Used for texts, backgrounds, carets and structuring characters like curly- and square brackets.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @example scss - SCSS
|
||||||
|
/// /* For dark ambiance themes */
|
||||||
|
/// .background {
|
||||||
|
/// background-color: $nord0;
|
||||||
|
/// }
|
||||||
|
/// /* For light ambiance themes */
|
||||||
|
/// .text {
|
||||||
|
/// color: $nord0;
|
||||||
|
/// }
|
||||||
|
/// @group polarnight
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord0: #2e3440;
|
||||||
|
|
||||||
|
/// Lighter shade color of the base component color.
|
||||||
|
///
|
||||||
|
/// Used as a lighter background color for UI elements like status bars.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group polarnight
|
||||||
|
/// @see $nord0
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord1: #3b4252;
|
||||||
|
|
||||||
|
/// Lighter shade color of the base component color.
|
||||||
|
///
|
||||||
|
/// Used as line highlighting in the editor.
|
||||||
|
/// In the UI scope it may be used as selection- and highlight color.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @example scss - SCSS
|
||||||
|
/// /* Code Syntax Highlighting scope */
|
||||||
|
/// .editor {
|
||||||
|
/// &.line {
|
||||||
|
/// background-color: $nord2;
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// /* UI scope */
|
||||||
|
/// button {
|
||||||
|
/// &:selected {
|
||||||
|
/// background-color: $nord2;
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
/// @group polarnight
|
||||||
|
/// @see $nord0
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord2: #434c5e;
|
||||||
|
|
||||||
|
/// Lighter shade color of the base component color.
|
||||||
|
///
|
||||||
|
/// Used for comments, invisibles, indent- and wrap guide marker.
|
||||||
|
/// In the UI scope used as pseudoclass color for disabled elements.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @example scss - SCSS
|
||||||
|
/// /* Code Syntax Highlighting scope */
|
||||||
|
/// .editor {
|
||||||
|
/// &.indent-guide,
|
||||||
|
/// &.wrap-guide {
|
||||||
|
/// &.marker {
|
||||||
|
/// color: $nord3;
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
/// .comment,
|
||||||
|
/// .invisible {
|
||||||
|
/// color: $nord3;
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// /* UI scope */
|
||||||
|
/// button {
|
||||||
|
/// &:disabled {
|
||||||
|
/// background-color: $nord3;
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
/// @group polarnight
|
||||||
|
/// @see $nord0
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord3: #4c566a;
|
||||||
|
|
||||||
|
/// Base component color of "Snow Storm".
|
||||||
|
///
|
||||||
|
/// Main color for text, variables, constants and attributes.
|
||||||
|
/// In the UI scope used as semi-light background depending on the theme shading design.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @example scss - SCSS
|
||||||
|
/// /* For light ambiance themes */
|
||||||
|
/// .background {
|
||||||
|
/// background-color: $nord4;
|
||||||
|
/// }
|
||||||
|
/// /* For dark ambiance themes */
|
||||||
|
/// .text {
|
||||||
|
/// color: $nord4;
|
||||||
|
/// }
|
||||||
|
/// @group snowstorm
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord4: #d8dee9;
|
||||||
|
|
||||||
|
/// Lighter shade color of the base component color.
|
||||||
|
///
|
||||||
|
/// Used as a lighter background color for UI elements like status bars.
|
||||||
|
/// Used as semi-light background depending on the theme shading design.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group snowstorm
|
||||||
|
/// @see $nord4
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord5: #e5e9f0;
|
||||||
|
|
||||||
|
/// Lighter shade color of the base component color.
|
||||||
|
///
|
||||||
|
/// Used for punctuations, carets and structuring characters like curly- and square brackets.
|
||||||
|
/// In the UI scope used as background, selection- and highlight color depending on the theme shading design.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group snowstorm
|
||||||
|
/// @see $nord4
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord6: #eceff4;
|
||||||
|
|
||||||
|
/// Bluish core color.
|
||||||
|
///
|
||||||
|
/// Used for classes, types and documentation tags.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group frost
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord7: #8fbcbb;
|
||||||
|
|
||||||
|
/// Bluish core accent color.
|
||||||
|
///
|
||||||
|
/// Represents the accent color of the color palette.
|
||||||
|
/// Main color for primary UI elements and methods/functions.
|
||||||
|
///
|
||||||
|
/// Can be used for
|
||||||
|
/// - Markup quotes
|
||||||
|
/// - Markup link URLs
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group frost
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord8: #88c0d0;
|
||||||
|
|
||||||
|
/// Bluish core color.
|
||||||
|
///
|
||||||
|
/// Used for language-specific syntactic/reserved support characters and keywords, operators, tags, units and
|
||||||
|
/// punctuations like (semi)colons,commas and braces.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group frost
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord9: #81a1c1;
|
||||||
|
|
||||||
|
/// Bluish core color.
|
||||||
|
///
|
||||||
|
/// Used for markup doctypes, import/include/require statements, pre-processor statements and at-rules (`@`).
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group frost
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord10: #5e81ac;
|
||||||
|
|
||||||
|
/// Colorful component color.
|
||||||
|
///
|
||||||
|
/// Used for errors, git/diff deletion and linter marker.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group aurora
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord11: #bf616a;
|
||||||
|
|
||||||
|
/// Colorful component color.
|
||||||
|
///
|
||||||
|
/// Used for annotations.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group aurora
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord12: #d08770;
|
||||||
|
|
||||||
|
/// Colorful component color.
|
||||||
|
///
|
||||||
|
/// Used for escape characters, regular expressions and markup entities.
|
||||||
|
/// In the UI scope used for warnings and git/diff renamings.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group aurora
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord13: #ebcb8b;
|
||||||
|
|
||||||
|
/// Colorful component color.
|
||||||
|
///
|
||||||
|
/// Main color for strings and attribute values.
|
||||||
|
/// In the UI scope used for git/diff additions and success visualizations.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group aurora
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord14: #a3be8c;
|
||||||
|
|
||||||
|
/// Colorful component color.
|
||||||
|
///
|
||||||
|
/// Used for numbers.
|
||||||
|
///
|
||||||
|
/// @access public
|
||||||
|
/// @group aurora
|
||||||
|
/// @since 0.1.0
|
||||||
|
$nord15: #b48ead;
|
23
src/main.js
Normal file → Executable file
23
src/main.js
Normal file → Executable file
@ -1,11 +1,32 @@
|
|||||||
import App from './App.svelte';
|
import App from './App.svelte';
|
||||||
|
import ms from 'ms';
|
||||||
|
|
||||||
import { actions } from './state/state';
|
import { actions } from './state/state';
|
||||||
|
|
||||||
|
let timerID = 0;
|
||||||
|
|
||||||
const app = new App({
|
const app = new App({
|
||||||
'target': document.body
|
'target': document.body
|
||||||
});
|
});
|
||||||
|
|
||||||
actions.getJobList();
|
function toHour(extra = 0) {
|
||||||
|
const now = new Date();
|
||||||
|
|
||||||
|
return (3600000 - (now.getTime() % 3600000)) + extra;
|
||||||
|
}
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
actions.getJobList();
|
||||||
|
|
||||||
|
const delay = toHour() + ms('10m');
|
||||||
|
|
||||||
|
console.log('Next:', delay);
|
||||||
|
|
||||||
|
timerID = setTimeout(() => {
|
||||||
|
update();
|
||||||
|
}, delay);
|
||||||
|
}
|
||||||
|
|
||||||
|
update();
|
||||||
|
|
||||||
export default app;
|
export default app;
|
||||||
|
34
src/oldapp.txt
Executable file
34
src/oldapp.txt
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
<script>
|
||||||
|
import Menu from "./components/Menu.svelte";
|
||||||
|
import Lister from "./components/Lister.svelte";
|
||||||
|
import Detail from "./components/Detail.svelte";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" global>
|
||||||
|
@import "./css/global.scss";
|
||||||
|
|
||||||
|
.view {
|
||||||
|
height:100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<!--<Menu/>
|
||||||
|
<div class='dataPane splitContainerGrid'>
|
||||||
|
<Lister/>
|
||||||
|
<Detail/>
|
||||||
|
</div>-->
|
||||||
|
<div class="grid view">
|
||||||
|
<div class="col-2">
|
||||||
|
<Menu/>
|
||||||
|
</div>
|
||||||
|
<div class="col-10">
|
||||||
|
<Lister/>
|
||||||
|
<Detail/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
132
src/state/state.js
Normal file → Executable file
132
src/state/state.js
Normal file → Executable file
@ -9,10 +9,15 @@ import { writable, get } from 'svelte/store';
|
|||||||
|
|
||||||
import axios from 'redaxios';
|
import axios from 'redaxios';
|
||||||
|
|
||||||
// const baseUrl = (__ENV__ === 'production') ? (`${location.protocol }//${ location.hostname}`) : 'http://localhost:3000';
|
const baseUrl = (__ENV__ === 'production') ? (`${location.protocol }//${ location.hostname}`) : 'http://localhost:3000';
|
||||||
const baseUrl = 'http://localhost:3000';
|
// const baseUrl = 'http://localhost:3000';
|
||||||
const urls = {
|
const urls = {
|
||||||
'jobs': baseUrl.concat('/jobs')
|
'jobs': baseUrl.concat('/v2/jobs'),
|
||||||
|
'apply': baseUrl.concat('/v2/apply'),
|
||||||
|
'readall' : baseUrl.concat('/v2/readall'),
|
||||||
|
'kill' : baseUrl.concat('/kill'),
|
||||||
|
'upvote' : baseUrl.concat('/vote/up'),
|
||||||
|
'downvote' : baseUrl.concat('/vote/down')
|
||||||
};
|
};
|
||||||
|
|
||||||
const JobList = writable([]);
|
const JobList = writable([]);
|
||||||
@ -23,13 +28,13 @@ const actions = {
|
|||||||
axios.get(urls.jobs).then((d) => {
|
axios.get(urls.jobs).then((d) => {
|
||||||
// console.log('>> retrieved', d);
|
// console.log('>> retrieved', d);
|
||||||
const data = JSON.parse(d.data);
|
const data = JSON.parse(d.data);
|
||||||
|
|
||||||
JobList.set(data);
|
JobList.set(data);
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
console.error('getJobList', err);
|
console.error('getJobList', err);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
loadJobDetail(id) {
|
loadJobDetail(id) {
|
||||||
console.log(`loadJobDetail: ${id}`);
|
console.log(`loadJobDetail: ${id}`);
|
||||||
if (id) {
|
if (id) {
|
||||||
@ -42,6 +47,123 @@ const actions = {
|
|||||||
console.error('loadJobDetail', err);
|
console.error('loadJobDetail', err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async touchJob(id) {
|
||||||
|
console.log(`touchJob: ${id}`);
|
||||||
|
if (id) {
|
||||||
|
const u = `${urls.jobs}/${id}`;
|
||||||
|
await axios.put(u).then((d) => {
|
||||||
|
if (d.status !== 200)
|
||||||
|
console.error(d);
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error('touchJob', err);
|
||||||
|
});
|
||||||
|
|
||||||
|
JobList.update((data) => {
|
||||||
|
data.map((v) => {
|
||||||
|
if (v._id === id) {
|
||||||
|
v.read = new Date().getTime();
|
||||||
|
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async appliedJob(id) {
|
||||||
|
console.log(`touchJob: ${id}`);
|
||||||
|
|
||||||
|
const now = new Date().getTime();
|
||||||
|
|
||||||
|
// JobDetails
|
||||||
|
|
||||||
|
if (id) {
|
||||||
|
console.log('Applying..');
|
||||||
|
const u = `${urls.apply}/${id}`;
|
||||||
|
await axios.put(u).then((d) => {
|
||||||
|
if (d.status !== 200)
|
||||||
|
console.error(d);
|
||||||
|
else {
|
||||||
|
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error('appliedJob', err);
|
||||||
|
});
|
||||||
|
|
||||||
|
const _id = id;
|
||||||
|
|
||||||
|
JobList.update((data) => {
|
||||||
|
data.map((v) => {
|
||||||
|
if (v._id === _id) {
|
||||||
|
v.applied = now;
|
||||||
|
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
});
|
||||||
|
|
||||||
|
JobDetails.update((v) => {
|
||||||
|
v.data.applied = now;
|
||||||
|
|
||||||
|
return v;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async markAllRead() {
|
||||||
|
console.log('>> markAllRead');
|
||||||
|
|
||||||
|
const u = `${urls.readall}`;
|
||||||
|
await axios.put(u).then((d) => {
|
||||||
|
if (d.status !== 200)
|
||||||
|
console.error(d);
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error('markAllRead', err);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.getJobList();
|
||||||
|
},
|
||||||
|
|
||||||
|
killWord(word) {
|
||||||
|
console.log(`>> killword:${word}`);
|
||||||
|
|
||||||
|
const u = `${urls.kill}/${word}`;
|
||||||
|
axios.put(u).then((d) => {
|
||||||
|
if (d.status !== 200)
|
||||||
|
console.error(d);
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error('killword', err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
upVote(id) {
|
||||||
|
console.log(`>> upvote:${id}`);
|
||||||
|
|
||||||
|
const u = `${urls.upvote}/${id}`;
|
||||||
|
axios.put(u).then((d) => {
|
||||||
|
if (d.status !== 200)
|
||||||
|
console.error(d);
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error('upvote', err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
downVote(id) {
|
||||||
|
console.log(`>> downvote:${id}`);
|
||||||
|
|
||||||
|
const u = `${urls.downvote}/${id}`;
|
||||||
|
axios.put(u).then((d) => {
|
||||||
|
if (d.status !== 200)
|
||||||
|
console.error(d);
|
||||||
|
}).catch((err) => {
|
||||||
|
console.error('downvote', err);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user