it-tools/src/tools/case-converter/case-converter.vue

83 lines
2.5 KiB
Vue
Raw Normal View History

<script setup lang="ts">
import {
camelCase,
capitalCase,
constantCase,
dotCase,
headerCase,
noCase,
paramCase,
pascalCase,
pathCase,
sentenceCase,
snakeCase,
} from 'change-case';
import InputCopyable from '../../components/InputCopyable.vue';
const baseConfig = {
stripRegexp: /[^A-Za-zÀ-ÖØ-öø-ÿ]+/gi,
};
const input = ref('lorem ipsum dolor sit amet');
2023-07-14 01:56:33 +02:00
const strippedInput = computed(() => input.value.split(' ').map(x => x.replace(baseConfig.stripRegexp, '')).join(' '));
</script>
2022-04-16 00:03:31 +02:00
<template>
<c-card>
2022-04-22 23:31:40 +02:00
<n-form label-width="120" label-placement="left" :show-feedback="false">
2023-07-14 01:56:33 +02:00
<c-input-text
v-model:value="input" label="Your string" label-position="left" label-width="120px"
label-align="right" placeholder="Your string..." raw-text
/>
2022-04-16 00:03:31 +02:00
<n-divider />
<n-form-item label="Lowercase:">
<InputCopyable :value="strippedInput.toLowerCase()" />
</n-form-item>
<n-form-item label="Uppercase:">
<InputCopyable :value="strippedInput.toUpperCase()" />
</n-form-item>
2022-04-16 00:03:31 +02:00
<n-form-item label="Camelcase:">
<InputCopyable :value="camelCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Capitalcase:">
<InputCopyable :value="capitalCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Constantcase:">
<InputCopyable :value="constantCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Dotcase:">
<InputCopyable :value="dotCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Headercase:">
<InputCopyable :value="headerCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Nocase:">
<InputCopyable :value="noCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Paramcase:">
<InputCopyable :value="paramCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Pascalcase:">
<InputCopyable :value="pascalCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Pathcase:">
<InputCopyable :value="pathCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Sentencecase:">
<InputCopyable :value="sentenceCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
<n-form-item label="Snakecase:">
<InputCopyable :value="snakeCase(input, baseConfig)" />
2022-04-16 00:03:31 +02:00
</n-form-item>
</n-form>
</c-card>
2022-04-16 00:03:31 +02:00
</template>
<style lang="less" scoped>
.n-form-item {
margin: 5px 0;
}
2022-04-22 23:31:40 +02:00
</style>