style: ensure newlines at the end of each file
@@ -42,4 +42,4 @@ jobs:
|
||||
|
||||
printf "Update current build pointer ... "
|
||||
echo "$BUILD_ID" | mc pipe "minio/$BUCKET/current"
|
||||
echo "done"
|
||||
echo "done"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
.vscode/
|
||||
node_modules/
|
||||
dist/
|
||||
dist/
|
||||
|
||||
@@ -5,4 +5,4 @@ This software is provided "as is", without warranty of any kind.
|
||||
This software uses the Vue.js framework.
|
||||
|
||||
This software makes use of various open-source components.
|
||||
See THIRD_PARTY_LICENSES for details.
|
||||
See THIRD_PARTY_LICENSES for details.
|
||||
|
||||
@@ -8,4 +8,4 @@ Please execute the setup script in `scripts/` for your platform when cloning the
|
||||
|
||||
## Legal
|
||||
|
||||
After each update to the dependencies, please run the script `scripts/generate-license-files.js` to regenerate the third-party license files.
|
||||
After each update to the dependencies, please run the script `scripts/generate-license-files.js` to regenerate the third-party license files.
|
||||
|
||||
@@ -13,4 +13,4 @@
|
||||
- Internationalization and some major languages
|
||||
- Color scheme
|
||||
- Search results view with error message which indicates that the search is not available
|
||||
- Settings renderer
|
||||
- Settings renderer
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,4 +55,4 @@ await generateLicenseFile(
|
||||
'./THIRD_PARTY_LICENSES_DEV'
|
||||
);
|
||||
|
||||
await fs.rename(packageJsonBackup, packageJson);
|
||||
await fs.rename(packageJsonBackup, packageJson);
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
git config --local commit.template .gitmessage
|
||||
git config --local commit.template .gitmessage
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
git config --local commit.template .gitmessage
|
||||
git config --local commit.template .gitmessage
|
||||
|
||||
@@ -90,4 +90,4 @@ onMounted(() => {
|
||||
--main-content-padding-x: 15px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -23,4 +23,4 @@ limitations under the License.
|
||||
stroke-linejoin="round"
|
||||
d="M5 12 l6 8 l8 -16"
|
||||
/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 833 B |
@@ -23,4 +23,4 @@ limitations under the License.
|
||||
stroke-linejoin="round"
|
||||
d="M4 8 l8 8 l8 -8"
|
||||
/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 831 B |
@@ -23,4 +23,4 @@ limitations under the License.
|
||||
stroke-linejoin="round"
|
||||
d="M8 20 l8 -8 l-8 -8"
|
||||
/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 833 B After Width: | Height: | Size: 834 B |
@@ -35,4 +35,4 @@ limitations under the License.
|
||||
a9 9 0 0 0 -9 -9
|
||||
"
|
||||
/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -33,4 +33,4 @@ limitations under the License.
|
||||
c-2.140625 4.351562000000001 -6.480468999999999 7.058593000000002 -11.328125 7.058593000000002
|
||||
"
|
||||
/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -33,4 +33,4 @@ limitations under the License.
|
||||
cy="8.5"
|
||||
r="6.5"
|
||||
/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -35,4 +35,4 @@ limitations under the License.
|
||||
v16
|
||||
"
|
||||
/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -42,4 +42,4 @@ limitations under the License.
|
||||
|
||||
<!-- bottom right -->
|
||||
<circle fill="currentColor" r="2" cx="18.36396103067893" cy="18.36396103067893" />
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -16,4 +16,4 @@ limitations under the License.
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="758.75" height="192.5">
|
||||
<defs><linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" style="stop-color:#4ba8eb"/><stop offset="100%" style="stop-color:#043485"/></linearGradient></defs>
|
||||
<path stroke="url(#gradient)" stroke-width="15" fill="none" d=" M94 51 a43.75 43.75 0 0 0 -43.75 -43.75 a43.75 43.75 0 0 0 -43.75 43.75 a43.75 43.75 0 0 0 43.75 43.75 a43.75 43.75 0 0 1 43.75 43.75 a43.75 43.75 0 0 1 -43.75 43.75 a43.75 43.75 0 0 1 -43.75 -43.75 M138.75 95.25 h43.75 a43.75 43.75 0 0 0 43.75 -43.75 a43.75 43.75 0 0 0 -43.75 -43.75 a43.75 43.75 0 0 0 -43.75 43.75 v43.75 v43.75 a43.75 43.75 0 0 0 43.75 43.75 a43.75 43.75 0 0 0 43.75 -43.75 M270 95.25 h43.75 a43.75 43.75 0 0 0 43.75 -43.75 a43.75 43.75 0 0 0 -43.75 -43.75 a43.75 43.75 0 0 0 -43.75 43.75 v43.75 v43.75 a43.75 43.75 0 0 0 43.75 43.75 a43.75 43.75 0 0 0 43.75 -43.75 M401.25 0 v192.5 m0 -96.125 l87.5 -87.5 m-87.5 87.5 l87.5 87.5 M532.5 192.5 v-192.5 m0 51.25 a43.75 43.75 0 0 1 43.75 -43.75 a43.75 43.75 0 0 1 43.75 43.75 M663.75 50.25 a43.75 43.75 0 0 1 43.75 -43.75 a43.75 43.75 0 0 1 43.75 43.75 v43.75 v43.75 v43.75 m0 -43.75 a43.75 43.75 0 0 1 -43.75 43.75 a43.75 43.75 0 0 1 -43.75 -43.75 a43.75 43.75 0 0 1 43.75 -43.75 a43.75 43.75 0 0 1 43.75 43.75 v50"/></svg>
|
||||
<path stroke="url(#gradient)" stroke-width="15" fill="none" d=" M94 51 a43.75 43.75 0 0 0 -43.75 -43.75 a43.75 43.75 0 0 0 -43.75 43.75 a43.75 43.75 0 0 0 43.75 43.75 a43.75 43.75 0 0 1 43.75 43.75 a43.75 43.75 0 0 1 -43.75 43.75 a43.75 43.75 0 0 1 -43.75 -43.75 M138.75 95.25 h43.75 a43.75 43.75 0 0 0 43.75 -43.75 a43.75 43.75 0 0 0 -43.75 -43.75 a43.75 43.75 0 0 0 -43.75 43.75 v43.75 v43.75 a43.75 43.75 0 0 0 43.75 43.75 a43.75 43.75 0 0 0 43.75 -43.75 M270 95.25 h43.75 a43.75 43.75 0 0 0 43.75 -43.75 a43.75 43.75 0 0 0 -43.75 -43.75 a43.75 43.75 0 0 0 -43.75 43.75 v43.75 v43.75 a43.75 43.75 0 0 0 43.75 43.75 a43.75 43.75 0 0 0 43.75 -43.75 M401.25 0 v192.5 m0 -96.125 l87.5 -87.5 m-87.5 87.5 l87.5 87.5 M532.5 192.5 v-192.5 m0 51.25 a43.75 43.75 0 0 1 43.75 -43.75 a43.75 43.75 0 0 1 43.75 43.75 M663.75 50.25 a43.75 43.75 0 0 1 43.75 -43.75 a43.75 43.75 0 0 1 43.75 43.75 v43.75 v43.75 v43.75 m0 -43.75 a43.75 43.75 0 0 1 -43.75 43.75 a43.75 43.75 0 0 1 -43.75 -43.75 a43.75 43.75 0 0 1 43.75 -43.75 a43.75 43.75 0 0 1 43.75 43.75 v50"/></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -78,4 +78,4 @@ const setColorScheme = function setColorScheme (newColorScheme) {
|
||||
.color-scheme-button:hover {
|
||||
background: var(--light-hover);
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -103,4 +103,4 @@ const copyrightPeriod =
|
||||
margin-top: 0.8em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -163,4 +163,4 @@ const open = function () {
|
||||
.flag {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -84,4 +84,4 @@ describe('LanguageSwitchButton', () => {
|
||||
wrapper.unmount();
|
||||
externalDiv.remove();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -17,4 +17,4 @@ limitations under the License.
|
||||
export const getNavigatorLanguage = function getNavigatorLanguage () {
|
||||
const locale = new Intl.Locale(navigator.language);
|
||||
return locale.language;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -51,4 +51,4 @@ const size = computed(() => ensureUnit(props.size))
|
||||
align-items: center;
|
||||
filter: var(--invert);
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -40,4 +40,4 @@ watch(() => route.query.q, q => {
|
||||
v-model="searchQueryModel"
|
||||
auto-submit
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
@@ -114,4 +114,4 @@ const submitSearch = function () {
|
||||
.search-form {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -94,4 +94,4 @@ const { t } = useI18n();
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -122,4 +122,4 @@ const labelId = useId();
|
||||
.option-input:checked + .option-check-mark-wrapper .option-check-mark {
|
||||
visibility: visible;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
.settings-button:hover {
|
||||
background-color: var(--light-hover);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,4 +212,4 @@ const apply = function apply () {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -90,4 +90,4 @@ const props = defineProps({
|
||||
.section-heading[aria-level="4"] {
|
||||
--size: 1.4em;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -58,4 +58,4 @@ const followLink = function followLink () {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -106,4 +106,4 @@ const toggle = function toggle () {
|
||||
.switch-wrapper.enabled .switch-point {
|
||||
margin-left: var(--point-size);
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -290,4 +290,4 @@ describe('Selection', () => {
|
||||
const label = wrapper.find('.label');
|
||||
expect(label.text()).toBe(translation);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -207,4 +207,4 @@ describe('SettingsInput', () => {
|
||||
const label = wrapper.find('label');
|
||||
expect(label.text()).toBe(translation);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -157,4 +157,4 @@ describe('SettingsPage', () => {
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -56,4 +56,4 @@ describe('SettingsPageLink', () => {
|
||||
|
||||
expect(goToSettingsPage).toHaveBeenCalledWith(target);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -122,4 +122,4 @@ describe('Switch', () => {
|
||||
const label = wrapper.find('label');
|
||||
expect(label.text()).toBe(translation);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -37,4 +37,4 @@ describe('useSettingsPage', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -30,4 +30,4 @@ export const useSettingsPage = function useSettingsPage () {
|
||||
};
|
||||
|
||||
return { goToSettingsPage };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -39,4 +39,4 @@ export const useSettingsStore = defineStore('settings', () => {
|
||||
return { set, get, remove, clear, settings };
|
||||
}, {
|
||||
persist: true
|
||||
});
|
||||
});
|
||||
|
||||
@@ -62,4 +62,4 @@ limitations under the License.
|
||||
* @typedef {BoolSettingConfig | NumberSettingConfig | StringSettingConfig | SelectionSettingConfig | SectionSettingConfig} SettingConfigEntry
|
||||
* @typedef {{ contents: SettingConfigEntry[] }} FirstLevelSettingConfigEntry
|
||||
* @typedef {{ contents: FirstLevelSettingConfigEntry[] }} SettingsConfig
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -523,4 +523,4 @@ test.for([
|
||||
({ settings: veryNestedSettingsList, path: ['1b', '2b', '3b', '4ba', '5b', '6b', '7a'], expected: undefined })
|
||||
])('returns $expected', ({ settings, path, expected }) => {
|
||||
expect(getSettingRecursively(path, settings)).toStrictEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -60,4 +60,4 @@ describe('settingsPage', () => {
|
||||
expect(getSettingsPagePathSegments(path)).toStrictEqual(expected);
|
||||
});
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -810,4 +810,4 @@ describe('settingsValidator', () => {
|
||||
expect(() => assertString(value)).throws(Error);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -39,4 +39,4 @@ export const getSettingRecursively = function getSettingRecursively (sectionPath
|
||||
};
|
||||
};
|
||||
return oneSettingsLevel(sectionPath, { content: settings });
|
||||
};
|
||||
};
|
||||
|
||||
@@ -28,4 +28,4 @@ export const getSettingsPagePathSegments = function getSettingsPagePathSegments
|
||||
(segment) => segment.replace(/[^a-zA-Z0-9-]/g, '')
|
||||
)
|
||||
.filter(Boolean);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -126,4 +126,4 @@ export function validateSettingsConfig(raw) {
|
||||
raw.contents.forEach((entry, i) =>
|
||||
validateFirstLevelSection(entry, `contents[${i}]`)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,4 +137,4 @@ const toggleSidebarIfSmallScreen = function toggleSidebarIfSmallScreen (toggleSi
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -279,4 +279,4 @@ describe('SettingsView', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
currentSection = originalCurrentSection;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -74,4 +74,4 @@ const toggleSidebar = function toggleSidebar () {
|
||||
padding: 20px;
|
||||
padding-top: 0;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -38,4 +38,4 @@ const click = function click (event) {
|
||||
padding: 4px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -100,4 +100,4 @@ const toggleSidebar = function toggleSidebar () {
|
||||
grid-area: main-content;
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -91,4 +91,4 @@
|
||||
"loadError": "Das Impressum konnte nicht geladen werden."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,4 +91,4 @@
|
||||
"loadError": "The legal notice could not be loaded."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,4 +62,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,4 +62,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,4 +62,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,4 +62,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,4 +93,4 @@ router.beforeEach((route) => {
|
||||
};
|
||||
});
|
||||
|
||||
export default router;
|
||||
export default router;
|
||||
|
||||
@@ -155,4 +155,4 @@ body.dark {
|
||||
--light-hover: var(--light-d-5);
|
||||
|
||||
--invert: invert(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
:root {
|
||||
--input-padding: 0.7em;
|
||||
--input-height: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,4 +59,4 @@ export const mountComponent = function mountComponent (component, options = {},
|
||||
},
|
||||
...options
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
@@ -121,4 +121,4 @@ describe('cssDimensions', () => {
|
||||
])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => {
|
||||
expect(ensureUnit(dimension)).toBe(expected);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -28,4 +28,4 @@ export const ensureUnit = function (d) {
|
||||
};
|
||||
|
||||
return d;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -53,4 +53,4 @@ const { t } = useI18n();
|
||||
padding: 10px 20px;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -83,4 +83,4 @@ const submitSearch = function () {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||