aboutsummaryrefslogtreecommitdiff
path: root/src/tools/url-encoder/url-encoder.vue
blob: fcb36b919c389605f3befe5134d9ec829a27f227 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<template>
  <div>
    <n-card title="Encode">
      <n-form-item
        label="Your string :"
        :feedback="encodedValidation.message"
        :validation-status="encodedValidation.status"
      >
        <n-input
          v-model:value="encodeInput"
          type="textarea"
          placeholder="The string to encode"
          :autosize="{ minRows: 2 }"
        />
      </n-form-item>

      <n-form-item label="Your string encoded :">
        <n-input
          :value="encodeOutput"
          type="textarea"
          readonly
          placeholder="Your string encoded"
          :autosize="{ minRows: 2 }"
        />
      </n-form-item>

      <n-space justify="center">
        <n-button
          secondary
          @click="copyEncoded"
        >
          Copy
        </n-button>
      </n-space>
    </n-card>
    <br>
    <n-card title="Decode">
      <n-form-item
        label="Your encoded string :"
        :feedback="decodeValidation.message"
        :validation-status="decodeValidation.status"
      >
        <n-input
          v-model:value="decodeInput"
          type="textarea"
          placeholder="The string to decode"
          :autosize="{ minRows: 2 }"
        />
      </n-form-item>

      <n-form-item label="Your string decoded :"> 
        <n-input
          :value="decodeOutput"
          type="textarea"
          readonly
          placeholder="Your string decoded"
          :autosize="{ minRows: 2 }"
        />
      </n-form-item>

      <n-space justify="center">
        <n-button
          secondary
          @click="copyDecoded"
        >
          Copy
        </n-button>
      </n-space>
    </n-card>
  </div>
</template>

<script setup lang="ts">
import { useCopy } from '@/composable/copy';
import { useValidation } from '@/composable/validation';
import { computed, ref } from 'vue'

const encodeInput = ref('Hello world :)')
const encodeOutput = computed(() => {
  try {
    return encodeURIComponent(encodeInput.value)
  } catch (_) {
    return ''
  }
})

const encodedValidation = useValidation({
  source: encodeInput, rules: [{
    validator: (value) => {
      try {
        encodeURIComponent(value)
        return true
      } catch (_) {
        return false
      }
    },
    message: 'Impossible to parse this string'
  }]
})

const { copy: copyEncoded } = useCopy({ source: encodeOutput, text: 'Encoded string copied to the clipboard' })


const decodeInput = ref('Hello%20world%20%3A)')

const decodeOutput = computed(() => {
  try {
    return decodeURIComponent(decodeInput.value)
  } catch (_) {
    return ''
  }
})

const decodeValidation = useValidation({
  source: encodeInput, rules: [{
    validator: (value) => {
      try {
        decodeURIComponent(value)
        return true
      } catch (_) {
        return false
      }
    },
    message: 'Impossible to parse this string'
  }]
})

const { copy: copyDecoded } = useCopy({ source: decodeOutput, text: 'Decoded string copied to the clipboard' })



</script>
missing-config'>fix/db-integration-with-missing-config Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/tailwind/test/fixtures/basic (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2024-02-27Improve the message of `MiddlewareCantBeLoaded` for clarity (#10239)Gravatar Ming-jun Lu 2-1/+6
2024-02-26[ci] formatGravatar Martin Trapp 1-1/+3
2024-02-26Warn when view transitions run on a prefer-reduced-motion device (#10222)Gravatar Martin Trapp 2-0/+8
2024-02-26[ci] release (#10218)astro@4.4.5@astrojs/vercel@7.3.4@astrojs/svelte@5.1.0@astrojs/db@0.4.1Gravatar Houston (Bot) 46-114/+100
2024-02-26fix: better assetsInlineLimit runtime type checking (#10154)Gravatar James Ross 2-9/+13
2024-02-26fix: correct remote url (#10223)Gravatar Ben Holmes 2-2/+8
2024-02-26fix(toolbar): Make it so every built-in app can be closed by outside clicks (...Gravatar Erika 8-51/+63
2024-02-26Fix an issue where Vercel adapter may create functions for prerendered routes...Gravatar Ming-jun Lu 4-2/+26
2024-02-26[ci] formatGravatar Matthew Phillips 1-1/+1
2024-02-26Fix hydration scripts missing from dynamic slot usage (#10219)Gravatar Matthew Phillips 6-1/+69
2024-02-26[ci] formatGravatar Matthew Phillips 1-5/+5
2024-02-26Prevent errors in rendering from crashing server (#10221)Gravatar Matthew Phillips 7-14/+78
2024-02-26fix: svelte 5 mount/hydrate api change. (#10224)Gravatar 前端子鱼 3-5/+12
2024-02-24[ci] formatGravatar Arsh 1-9/+30
2024-02-24prevent warning: `Astro.request.headers` is not available in "static" output ...Gravatar Arsh 2-27/+30
2024-02-23Improved error logging from config (#10207)Gravatar Ben Holmes 4-36/+67
2024-02-23[ci] formatGravatar Arsh 3-3/+3
2024-02-23fix(dev): remove params for prerendered pages (#10199)Gravatar Arsh 9-13/+78
2024-02-23[ci] release (#10213)astro@4.4.4@astrojs/vercel@7.3.3@astrojs/node@8.2.1@astrojs/db@0.4.0Gravatar Houston (Bot) 41-177/+95
2024-02-23Fixes edge middleware calling nested routes (#10215)Gravatar Matthew Phillips 2-1/+6
2024-02-23Adds an error message for non-string transition:name values (#10205)Gravatar Martin Trapp 2-0/+8
2024-02-23[ci] formatGravatar Furkan Erdem 1-1/+1
2024-02-23Fix(node): Custom headers are not present in responses from standalone Node s...Gravatar Furkan Erdem 8-0/+163