refactor(ui): removed all n-space
This commit is contained in:
		
							parent
							
								
									34d8e5ce2c
								
							
						
					
					
						commit
						4d2b037dbe
					
				| @ -1,8 +1,6 @@ | |||||||
| <template> | <template> | ||||||
|   <c-card class="colored-card"> |   <c-card class="colored-card"> | ||||||
|     <n-space justify="space-between" align="center"> |  | ||||||
|     <n-icon class="icon" size="40" :component="icon" /> |     <n-icon class="icon" size="40" :component="icon" /> | ||||||
|     </n-space> |  | ||||||
|     <n-h3 class="title"> |     <n-h3 class="title"> | ||||||
|       <n-ellipsis>{{ title }}</n-ellipsis> |       <n-ellipsis>{{ title }}</n-ellipsis> | ||||||
|     </n-h3> |     </n-h3> | ||||||
|  | |||||||
| @ -21,9 +21,9 @@ | |||||||
|         <span>{{ tooltipText }}</span> |         <span>{{ tooltipText }}</span> | ||||||
|       </n-tooltip> |       </n-tooltip> | ||||||
|     </c-card> |     </c-card> | ||||||
|     <n-space v-if="copyPlacement === 'outside'" justify="center" mt-4> |     <div v-if="copyPlacement === 'outside'" mt-4 flex justify-center> | ||||||
|       <c-button @click="onCopyClicked"> {{ tooltipText }} </c-button> |       <c-button @click="onCopyClicked"> {{ tooltipText }} </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,9 +1,9 @@ | |||||||
| <template> | <template> | ||||||
|   <router-link :to="tool.path"> |   <router-link :to="tool.path"> | ||||||
|     <c-card class="tool-card"> |     <c-card class="tool-card"> | ||||||
|       <n-space justify="space-between" align="center"> |       <div flex items-center justify-between> | ||||||
|         <n-icon class="icon" size="40" :component="tool.icon" /> |         <n-icon class="icon" size="40" :component="tool.icon" /> | ||||||
|         <n-space align="center"> |         <div flex items-center gap-8px> | ||||||
|           <n-tag |           <n-tag | ||||||
|             v-if="tool.isNew" |             v-if="tool.isNew" | ||||||
|             size="small" |             size="small" | ||||||
| @ -17,8 +17,8 @@ | |||||||
|           </n-tag> |           </n-tag> | ||||||
| 
 | 
 | ||||||
|           <favorite-button :tool="tool" /> |           <favorite-button :tool="tool" /> | ||||||
|         </n-space> |         </div> | ||||||
|       </n-space> |       </div> | ||||||
|       <n-h3 class="title"> |       <n-h3 class="title"> | ||||||
|         <n-ellipsis>{{ tool.name }}</n-ellipsis> |         <n-ellipsis>{{ tool.name }}</n-ellipsis> | ||||||
|       </n-h3> |       </n-h3> | ||||||
|  | |||||||
| @ -43,9 +43,9 @@ const tools = computed<ToolCategory[]>(() => [ | |||||||
|       </router-link> |       </router-link> | ||||||
| 
 | 
 | ||||||
|       <div class="sider-content"> |       <div class="sider-content"> | ||||||
|         <n-space v-if="styleStore.isSmallScreen" justify="center"> |         <div v-if="styleStore.isSmallScreen" flex justify-center> | ||||||
|           <navbar-buttons /> |           <navbar-buttons /> | ||||||
|         </n-space> |         </div> | ||||||
| 
 | 
 | ||||||
|         <collapsible-tool-menu :tools-by-category="tools" /> |         <collapsible-tool-menu :tools-by-category="tools" /> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -29,7 +29,7 @@ useHead(head); | |||||||
|   <base-layout> |   <base-layout> | ||||||
|     <div class="tool-layout"> |     <div class="tool-layout"> | ||||||
|       <div class="tool-header"> |       <div class="tool-header"> | ||||||
|         <n-space align="center" justify="space-between" :wrap="false"> |         <div flex flex-nowrap items-center justify-between> | ||||||
|           <n-h1> |           <n-h1> | ||||||
|             {{ route.meta.name }} |             {{ route.meta.name }} | ||||||
|           </n-h1> |           </n-h1> | ||||||
| @ -37,7 +37,7 @@ useHead(head); | |||||||
|           <div> |           <div> | ||||||
|             <favorite-button :tool="{name: route.meta.name} as Tool" /> |             <favorite-button :tool="{name: route.meta.name} as Tool" /> | ||||||
|           </div> |           </div> | ||||||
|         </n-space> |         </div> | ||||||
| 
 | 
 | ||||||
|         <div class="separator" /> |         <div class="separator" /> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -18,9 +18,9 @@ | |||||||
|         </n-scrollbar> |         </n-scrollbar> | ||||||
|       </n-statistic> |       </n-statistic> | ||||||
|     </c-card> |     </c-card> | ||||||
|     <n-space justify="center" mt-5> |     <div mt-5 flex justify-center> | ||||||
|       <c-button @click="copy">Copy header</c-button> |       <c-button @click="copy">Copy header</c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -15,9 +15,9 @@ | |||||||
| 
 | 
 | ||||||
|     <c-input-text :value="hashed" readonly text-center /> |     <c-input-text :value="hashed" readonly text-center /> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center" mt-5> |     <div mt-5 flex justify-center> | ||||||
|       <c-button @click="copy"> Copy hash </c-button> |       <c-button @click="copy"> Copy hash </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
| 
 | 
 | ||||||
|   <c-card title="Compare string with hash"> |   <c-card title="Compare string with hash"> | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| <template> | <template> | ||||||
|   <n-scrollbar style="flex: 1" x-scrollable> |   <n-scrollbar style="flex: 1" x-scrollable> | ||||||
|     <n-space :wrap="false" style="flex: 1" justify="center" :size="12" mb-5> |     <div mb-5 flex flex-1 flex-nowrap justify-center gap-12px> | ||||||
|       <div v-for="(suite, index) of suites" :key="index"> |       <div v-for="(suite, index) of suites" :key="index"> | ||||||
|         <c-card style="width: 294px"> |         <c-card style="width: 294px"> | ||||||
|           <c-input-text |           <c-input-text | ||||||
| @ -17,7 +17,7 @@ | |||||||
|           </n-form-item> |           </n-form-item> | ||||||
|         </c-card> |         </c-card> | ||||||
| 
 | 
 | ||||||
|         <n-space justify="center"> |         <div flex justify-center> | ||||||
|           <c-button v-if="suites.length > 1" variant="text" @click="suites.splice(index, 1)"> |           <c-button v-if="suites.length > 1" variant="text" @click="suites.splice(index, 1)"> | ||||||
|             <n-icon :component="Trash" depth="3" mr-2 size="18" /> |             <n-icon :component="Trash" depth="3" mr-2 size="18" /> | ||||||
|             Delete suite |             Delete suite | ||||||
| @ -29,14 +29,14 @@ | |||||||
|             <n-icon :component="Plus" depth="3" mr-2 size="18" /> |             <n-icon :component="Plus" depth="3" mr-2 size="18" /> | ||||||
|             Add suite |             Add suite | ||||||
|           </c-button> |           </c-button> | ||||||
|         </n-space> |  | ||||||
|         </div> |         </div> | ||||||
|     </n-space> |       </div> | ||||||
|  |     </div> | ||||||
|   </n-scrollbar> |   </n-scrollbar> | ||||||
| 
 | 
 | ||||||
|   <div style="flex: 0 0 100%"> |   <div style="flex: 0 0 100%"> | ||||||
|     <div style="max-width: 600px; margin: 0 auto"> |     <div style="max-width: 600px; margin: 0 auto"> | ||||||
|       <n-space justify="center"> |       <div mx-auto max-w-sm flex justify-center gap-3> | ||||||
|         <c-input-text v-model:value="unit" placeholder="Unit (eg: ms)" label="Unit" label-position="left" mb-4 /> |         <c-input-text v-model:value="unit" placeholder="Unit (eg: ms)" label="Unit" label-position="left" mb-4 /> | ||||||
| 
 | 
 | ||||||
|         <c-button |         <c-button | ||||||
| @ -48,7 +48,7 @@ | |||||||
|           " |           " | ||||||
|           >Reset suites</c-button |           >Reset suites</c-button | ||||||
|         > |         > | ||||||
|       </n-space> |       </div> | ||||||
| 
 | 
 | ||||||
|       <n-table> |       <n-table> | ||||||
|         <thead> |         <thead> | ||||||
| @ -70,10 +70,10 @@ | |||||||
|           </tr> |           </tr> | ||||||
|         </tbody> |         </tbody> | ||||||
|       </n-table> |       </n-table> | ||||||
|       <n-space justify="center" mt-5> |       <div mt-5 flex justify-center gap-3> | ||||||
|         <c-button @click="copyAsMarkdown">Copy as markdown table</c-button> |         <c-button @click="copyAsMarkdown">Copy as markdown table</c-button> | ||||||
|         <c-button @click="copyAsBulletList">Copy as bullet list</c-button> |         <c-button @click="copyAsBulletList">Copy as bullet list</c-button> | ||||||
|       </n-space> |       </div> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| <template> | <template> | ||||||
|   <div> |   <div> | ||||||
|     <n-space v-for="(value, index) of values" :key="index" :wrap="false" style="margin-bottom: 5px" :size="5"> |     <div v-for="(value, index) of values" :key="index" mb-2 flex flex-nowrap gap-2> | ||||||
|       <n-input-number |       <n-input-number | ||||||
|         :ref="refs.set" |         :ref="refs.set" | ||||||
|         v-model:value="values[index]" |         v-model:value="values[index]" | ||||||
| @ -17,7 +17,7 @@ | |||||||
|         </template> |         </template> | ||||||
|         Delete value |         Delete value | ||||||
|       </n-tooltip> |       </n-tooltip> | ||||||
|     </n-space> |     </div> | ||||||
| 
 | 
 | ||||||
|     <c-button @click="addValue"> |     <c-button @click="addValue"> | ||||||
|       <n-icon :component="Plus" depth="3" mr-2 size="18" /> |       <n-icon :component="Plus" depth="3" mr-2 size="18" /> | ||||||
|  | |||||||
| @ -3,12 +3,12 @@ | |||||||
|     <c-card> |     <c-card> | ||||||
|       <div class="duration">{{ formatMs(counter) }}</div> |       <div class="duration">{{ formatMs(counter) }}</div> | ||||||
|     </c-card> |     </c-card> | ||||||
|     <n-space justify="center" mt-5> |     <div mt-5 flex justify-center gap-3> | ||||||
|       <c-button v-if="!isRunning" type="primary" @click="resume">Start</c-button> |       <c-button v-if="!isRunning" type="primary" @click="resume">Start</c-button> | ||||||
|       <c-button v-else type="warning" @click="pause">Stop</c-button> |       <c-button v-else type="warning" @click="pause">Stop</c-button> | ||||||
| 
 | 
 | ||||||
|       <c-button @click="counter = 0">Reset</c-button> |       <c-button @click="counter = 0">Reset</c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -16,7 +16,7 @@ | |||||||
| 
 | 
 | ||||||
|     <n-divider /> |     <n-divider /> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <n-form :show-feedback="false" label-width="170" label-placement="left"> |       <n-form :show-feedback="false" label-width="170" label-placement="left"> | ||||||
|         <n-form-item label="Verbose"> |         <n-form-item label="Verbose"> | ||||||
|           <n-switch v-model:value="cronstrueConfig.verbose" /> |           <n-switch v-model:value="cronstrueConfig.verbose" /> | ||||||
| @ -28,7 +28,7 @@ | |||||||
|           <n-switch v-model:value="cronstrueConfig.dayOfWeekStartIndexZero" /> |           <n-switch v-model:value="cronstrueConfig.dayOfWeekStartIndexZero" /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
|       </n-form> |       </n-form> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
|   <c-card> |   <c-card> | ||||||
|     <pre> |     <pre> | ||||||
| @ -42,8 +42,8 @@ | |||||||
| * * * * * * command</pre | * * * * * * command</pre | ||||||
|     > |     > | ||||||
| 
 | 
 | ||||||
|     <n-space v-if="styleStore.isSmallScreen" vertical> |     <div v-if="styleStore.isSmallScreen"> | ||||||
|       <c-card v-for="{ symbol, meaning, example, equivalent } in helpers" :key="symbol" important:border-none> |       <c-card v-for="{ symbol, meaning, example, equivalent } in helpers" :key="symbol" mb-3 important:border-none> | ||||||
|         <div> |         <div> | ||||||
|           Symbol: <strong>{{ symbol }}</strong> |           Symbol: <strong>{{ symbol }}</strong> | ||||||
|         </div> |         </div> | ||||||
| @ -60,7 +60,7 @@ | |||||||
|           Equivalent: <strong>{{ equivalent }}</strong> |           Equivalent: <strong>{{ equivalent }}</strong> | ||||||
|         </div> |         </div> | ||||||
|       </c-card> |       </c-card> | ||||||
|     </n-space> |     </div> | ||||||
|     <n-table v-else size="small"> |     <n-table v-else size="small"> | ||||||
|       <thead> |       <thead> | ||||||
|         <tr> |         <tr> | ||||||
|  | |||||||
| @ -14,9 +14,9 @@ | |||||||
| 
 | 
 | ||||||
|     <textarea-copyable :value="dockerCompose" language="yaml" /> |     <textarea-copyable :value="dockerCompose" language="yaml" /> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center" mt-5> |     <div mt-5 flex justify-center> | ||||||
|       <c-button :disabled="dockerCompose === ''" secondary @click="download"> Download docker-compose.yml </c-button> |       <c-button :disabled="dockerCompose === ''" secondary @click="download"> Download docker-compose.yml </c-button> | ||||||
|     </n-space> |     </div> | ||||||
| 
 | 
 | ||||||
|     <div v-if="notComposable.length > 0"> |     <div v-if="notComposable.length > 0"> | ||||||
|       <n-alert title="This options are not translatable to docker-compose" type="info" mt-5> |       <n-alert title="This options are not translatable to docker-compose" type="info" mt-5> | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <template> | <template> | ||||||
|   <c-card title="Encrypt"> |   <c-card title="Encrypt"> | ||||||
|     <n-space item-style="flex: 1 1 0"> |     <div flex gap-3> | ||||||
|       <n-form-item label="Your text:" :show-feedback="false"> |       <n-form-item label="Your text:" :show-feedback="false" flex-1> | ||||||
|         <n-input |         <n-input | ||||||
|           v-model:value="cypherInput" |           v-model:value="cypherInput" | ||||||
|           type="textarea" |           type="textarea" | ||||||
| @ -13,7 +13,7 @@ | |||||||
|           spellcheck="false" |           spellcheck="false" | ||||||
|         /> |         /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|       <n-space vertical> |       <div flex flex-1 flex-col gap-2> | ||||||
|         <c-input-text v-model:value="cypherSecret" label="Your secret key:" clearable raw-text /> |         <c-input-text v-model:value="cypherSecret" label="Your secret key:" clearable raw-text /> | ||||||
| 
 | 
 | ||||||
|         <n-form-item label="Encryption algorithm:" :show-feedback="false"> |         <n-form-item label="Encryption algorithm:" :show-feedback="false"> | ||||||
| @ -22,8 +22,8 @@ | |||||||
|             :options="Object.keys(algos).map((label) => ({ label, value: label }))" |             :options="Object.keys(algos).map((label) => ({ label, value: label }))" | ||||||
|           /> |           /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
|       </n-space> |       </div> | ||||||
|     </n-space> |     </div> | ||||||
|     <n-form-item label="Your text encrypted:" :show-feedback="false" mt-5> |     <n-form-item label="Your text encrypted:" :show-feedback="false" mt-5> | ||||||
|       <n-input |       <n-input | ||||||
|         :value="cypherOutput" |         :value="cypherOutput" | ||||||
| @ -39,8 +39,8 @@ | |||||||
|     </n-form-item> |     </n-form-item> | ||||||
|   </c-card> |   </c-card> | ||||||
|   <c-card title="Decrypt"> |   <c-card title="Decrypt"> | ||||||
|     <n-space item-style="flex: 1 1 0"> |     <div flex gap-3> | ||||||
|       <n-form-item label="Your encrypted text:" :show-feedback="false"> |       <n-form-item label="Your encrypted text:" :show-feedback="false" flex-1> | ||||||
|         <n-input |         <n-input | ||||||
|           v-model:value="decryptInput" |           v-model:value="decryptInput" | ||||||
|           type="textarea" |           type="textarea" | ||||||
| @ -52,7 +52,7 @@ | |||||||
|           spellcheck="false" |           spellcheck="false" | ||||||
|         /> |         /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|       <n-space vertical> |       <div flex flex-1 flex-col gap-2> | ||||||
|         <c-input-text v-model:value="decryptSecret" label="Your secret key:" clearable raw-text /> |         <c-input-text v-model:value="decryptSecret" label="Your secret key:" clearable raw-text /> | ||||||
| 
 | 
 | ||||||
|         <n-form-item label="Encryption algorithm:" :show-feedback="false"> |         <n-form-item label="Encryption algorithm:" :show-feedback="false"> | ||||||
| @ -61,8 +61,8 @@ | |||||||
|             :options="Object.keys(algos).map((label) => ({ label, value: label }))" |             :options="Object.keys(algos).map((label) => ({ label, value: label }))" | ||||||
|           /> |           /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
|       </n-space> |       </div> | ||||||
|     </n-space> |     </div> | ||||||
|     <n-form-item label="Your decrypted text:" :show-feedback="false" mt-5> |     <n-form-item label="Your decrypted text:" :show-feedback="false" mt-5> | ||||||
|       <n-input |       <n-input | ||||||
|         :value="decryptOutput" |         :value="decryptOutput" | ||||||
|  | |||||||
| @ -6,20 +6,18 @@ | |||||||
|       {{ endAt }}. |       {{ endAt }}. | ||||||
|     </n-text> |     </n-text> | ||||||
|     <n-divider /> |     <n-divider /> | ||||||
|     <n-space item-style="flex:1 1 0"> |     <div flex gap-2> | ||||||
|       <div> |       <n-form-item label="Amount of element to consume" flex-1> | ||||||
|         <n-space item-style="flex:1 1 0"> |  | ||||||
|           <n-form-item label="Amount of element to consume"> |  | ||||||
|         <n-input-number v-model:value="unitCount" :min="1" /> |         <n-input-number v-model:value="unitCount" :min="1" /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|           <n-form-item label="The consumption started at"> |       <n-form-item label="The consumption started at" flex-1> | ||||||
|         <n-date-picker v-model:value="startedAt" type="datetime" /> |         <n-date-picker v-model:value="startedAt" type="datetime" /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|         </n-space> |     </div> | ||||||
| 
 | 
 | ||||||
|     <n-form-item label="Amount of unit consumed by time span" :show-feedback="false"> |     <n-form-item label="Amount of unit consumed by time span" :show-feedback="false"> | ||||||
|       <n-input-number v-model:value="unitPerTimeSpan" :min="1" /> |       <n-input-number v-model:value="unitPerTimeSpan" :min="1" /> | ||||||
|           <span style="margin: 0 10px">in</span> |       <span mx-3>in</span> | ||||||
|       <n-input-group> |       <n-input-group> | ||||||
|         <n-input-number v-model:value="timeSpan" :min="1" /> |         <n-input-number v-model:value="timeSpan" :min="1" /> | ||||||
|         <n-select |         <n-select | ||||||
| @ -36,16 +34,12 @@ | |||||||
|     </n-form-item> |     </n-form-item> | ||||||
| 
 | 
 | ||||||
|     <n-divider /> |     <n-divider /> | ||||||
|         <n-space vertical> |     <c-card mb-2> | ||||||
|           <c-card> |  | ||||||
|       <n-statistic label="Total duration">{{ formatMsDuration(durationMs) }}</n-statistic> |       <n-statistic label="Total duration">{{ formatMsDuration(durationMs) }}</n-statistic> | ||||||
|     </c-card> |     </c-card> | ||||||
|     <c-card> |     <c-card> | ||||||
|       <n-statistic label="It will end ">{{ endAt }}</n-statistic> |       <n-statistic label="It will end ">{{ endAt }}</n-statistic> | ||||||
|     </c-card> |     </c-card> | ||||||
|         </n-space> |  | ||||||
|       </div> |  | ||||||
|     </n-space> |  | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,15 +6,15 @@ | |||||||
|     <n-form-item label="Secret key"> |     <n-form-item label="Secret key"> | ||||||
|       <n-input v-model:value="secret" placeholder="Enter the secret key..." /> |       <n-input v-model:value="secret" placeholder="Enter the secret key..." /> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
|     <n-space item-style="flex:1 1 0"> |     <div flex gap-2> | ||||||
|       <n-form-item label="Hashing function"> |       <n-form-item label="Hashing function" flex-1> | ||||||
|         <n-select |         <n-select | ||||||
|           v-model:value="hashFunction" |           v-model:value="hashFunction" | ||||||
|           placeholder="Select an hashing function..." |           placeholder="Select an hashing function..." | ||||||
|           :options="Object.keys(algos).map((label) => ({ label, value: label }))" |           :options="Object.keys(algos).map((label) => ({ label, value: label }))" | ||||||
|         /> |         /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|       <n-form-item label="Output encoding"> |       <n-form-item label="Output encoding" flex-1> | ||||||
|         <n-select |         <n-select | ||||||
|           v-model:value="encoding" |           v-model:value="encoding" | ||||||
|           placeholder="Select the result encoding..." |           placeholder="Select the result encoding..." | ||||||
| @ -38,13 +38,13 @@ | |||||||
|           ]" |           ]" | ||||||
|         /> |         /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|     </n-space> |     </div> | ||||||
|     <n-form-item label="HMAC of your text"> |     <n-form-item label="HMAC of your text"> | ||||||
|       <n-input readonly :value="hmac" type="textarea" placeholder="The result of the HMAC..." /> |       <n-input readonly :value="hmac" type="textarea" placeholder="The result of the HMAC..." /> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <c-button @click="copy()">Copy HMAC</c-button> |       <c-button @click="copy()">Copy HMAC</c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -19,9 +19,9 @@ | |||||||
|       /> |       /> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <c-button @click="copyEscaped"> Copy </c-button> |       <c-button @click="copyEscaped"> Copy </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
|   <c-card title="Unescape html entities"> |   <c-card title="Unescape html entities"> | ||||||
|     <n-form-item label="Your escaped string :"> |     <n-form-item label="Your escaped string :"> | ||||||
| @ -43,9 +43,9 @@ | |||||||
|       /> |       /> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <c-button @click="copyUnescaped"> Copy </c-button> |       <c-button @click="copyUnescaped"> Copy </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <template> | <template> | ||||||
|   <n-space align="center" :size="0"> |   <div flex items-center> | ||||||
|     <template v-for="(item, index) in items"> |     <template v-for="(item, index) in items"> | ||||||
|       <n-divider v-if="item.type === 'divider'" :key="`divider${index}`" vertical /> |       <n-divider v-if="item.type === 'divider'" :key="`divider${index}`" vertical /> | ||||||
|       <menu-bar-item v-else-if="item.type === 'button'" :key="index" v-bind="item" /> |       <menu-bar-item v-else-if="item.type === 'button'" :key="index" v-bind="item" /> | ||||||
|     </template> |     </template> | ||||||
|   </n-space> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
|  | |||||||
| @ -21,10 +21,8 @@ | |||||||
|       <n-h2> {{ category }} </n-h2> |       <n-h2> {{ category }} </n-h2> | ||||||
| 
 | 
 | ||||||
|       <c-card v-for="{ code, description, name, type } of codes" :key="code" mb-2> |       <c-card v-for="{ code, description, name, type } of codes" :key="code" mb-2> | ||||||
|         <n-space align="center"> |         <n-text strong block text-lg> {{ code }} {{ name }} </n-text> | ||||||
|           <n-text strong text-lg> {{ code }} {{ name }} </n-text> |         <n-text block depth="3">{{ description }} {{ type !== 'HTTP' ? `For ${type}.` : '' }}</n-text> | ||||||
|         </n-space> |  | ||||||
|         <n-text depth="3">{{ description }} {{ type !== 'HTTP' ? `For ${type}.` : '' }}</n-text> |  | ||||||
|       </c-card> |       </c-card> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
|  | |||||||
| @ -1,6 +1,4 @@ | |||||||
| <template> | <template> | ||||||
|   <div> |  | ||||||
|     <n-space item-style="flex:1 1 0"> |  | ||||||
|   <div> |   <div> | ||||||
|     <div mb-4 flex gap-4> |     <div mb-4 flex gap-4> | ||||||
|       <c-input-text |       <c-input-text | ||||||
| @ -43,20 +41,17 @@ | |||||||
|       title="Invalid combination of start and end IPv4 address" |       title="Invalid combination of start and end IPv4 address" | ||||||
|       type="error" |       type="error" | ||||||
|     > |     > | ||||||
|           <n-space vertical> |       <n-text depth="3" my-3 block> | ||||||
|             <n-text depth="3"> |         The end IPv4 address is lower than the start IPv4 address. This is not valid and no result could be calculated. | ||||||
|               The end IPv4 address is lower than the start IPv4 address. This is not valid and no result could be |         In the most cases the solution to solve this problem is to change start and end address. | ||||||
|               calculated. In the most cases the solution to solve this problem is to change start and end address. |  | ||||||
|       </n-text> |       </n-text> | ||||||
|  | 
 | ||||||
|       <c-button @click="onSwitchStartEndClicked"> |       <c-button @click="onSwitchStartEndClicked"> | ||||||
|         <n-icon mr-2 :component="Exchange" depth="3" size="22" /> |         <n-icon mr-2 :component="Exchange" depth="3" size="22" /> | ||||||
|         Switch start and end IPv4 address |         Switch start and end IPv4 address | ||||||
|       </c-button> |       </c-button> | ||||||
|           </n-space> |  | ||||||
|     </n-alert> |     </n-alert> | ||||||
|   </div> |   </div> | ||||||
|     </n-space> |  | ||||||
|   </div> |  | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
|         </tbody> |         </tbody> | ||||||
|       </n-table> |       </n-table> | ||||||
| 
 | 
 | ||||||
|       <n-space style="margin-top: 14px" justify="space-between"> |       <div mt-3 flex items-center justify-between> | ||||||
|         <c-button @click="switchToBlock({ count: -1 })"> |         <c-button @click="switchToBlock({ count: -1 })"> | ||||||
|           <n-icon :component="ArrowLeft" /> |           <n-icon :component="ArrowLeft" /> | ||||||
|           Previous block |           Previous block | ||||||
| @ -32,7 +32,7 @@ | |||||||
|           Next block |           Next block | ||||||
|           <n-icon :component="ArrowRight" /> |           <n-icon :component="ArrowRight" /> | ||||||
|         </c-button> |         </c-button> | ||||||
|       </n-space> |       </div> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <template> | <template> | ||||||
|   <div v-if="showResults"> |   <div v-if="showResults"> | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <n-form-item label="Only show differences" label-placement="left"> |       <n-form-item label="Only show differences" label-placement="left"> | ||||||
|         <n-switch v-model:value="onlyShowDifferences" /> |         <n-switch v-model:value="onlyShowDifferences" /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|     </n-space> |     </div> | ||||||
| 
 | 
 | ||||||
|     <c-card data-test-id="diff-result"> |     <c-card data-test-id="diff-result"> | ||||||
|       <n-text v-if="jsonAreTheSame" depth="3" block text-center italic> The provided JSONs are the same </n-text> |       <n-text v-if="jsonAreTheSame" depth="3" block text-center italic> The provided JSONs are the same </n-text> | ||||||
|  | |||||||
| @ -1,13 +1,13 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="flex: 0 0 100%"> |   <div style="flex: 0 0 100%"> | ||||||
|     <n-space style="margin: 0 auto; max-width: 600px" justify="center"> |     <div style="margin: 0 auto; max-width: 600px" flex justify-center gap-3> | ||||||
|       <n-form-item label="Sort keys :" label-placement="left" label-width="100"> |       <n-form-item label="Sort keys :" label-placement="left" label-width="100"> | ||||||
|         <n-switch v-model:value="sortKeys" /> |         <n-switch v-model:value="sortKeys" /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|       <n-form-item label="Indent size :" label-placement="left" label-width="100" :show-feedback="false"> |       <n-form-item label="Indent size :" label-placement="left" label-width="100" :show-feedback="false"> | ||||||
|         <n-input-number v-model:value="indentSize" min="0" max="10" style="width: 100px" /> |         <n-input-number v-model:value="indentSize" min="0" max="10" style="width: 100px" /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| 
 | 
 | ||||||
|   <n-form-item |   <n-form-item | ||||||
|  | |||||||
| @ -10,20 +10,12 @@ | |||||||
|           <th colspan="2" class="table-header">{{ section.title }}</th> |           <th colspan="2" class="table-header">{{ section.title }}</th> | ||||||
|           <tr v-for="{ claim, claimDescription, friendlyValue, value } in decodedJWT[section.key]" :key="claim + value"> |           <tr v-for="{ claim, claimDescription, friendlyValue, value } in decodedJWT[section.key]" :key="claim + value"> | ||||||
|             <td class="claims"> |             <td class="claims"> | ||||||
|               <n-space> |  | ||||||
|               <n-text strong>{{ claim }}</n-text> |               <n-text strong>{{ claim }}</n-text> | ||||||
|                 <template v-if="claimDescription"> |               <n-text v-if="claimDescription" depth="3" ml-2>({{ claimDescription }})</n-text> | ||||||
|                   <n-text depth="3">({{ claimDescription }})</n-text> |  | ||||||
|                 </template> |  | ||||||
|               </n-space> |  | ||||||
|             </td> |             </td> | ||||||
|             <td> |             <td> | ||||||
|               <n-space> |  | ||||||
|               <n-text>{{ value }}</n-text> |               <n-text>{{ value }}</n-text> | ||||||
|                 <template v-if="friendlyValue"> |               <n-text v-if="friendlyValue" ml-2 depth="3">({{ friendlyValue }})</n-text> | ||||||
|                   <n-text depth="3">({{ friendlyValue }})</n-text> |  | ||||||
|                 </template> |  | ||||||
|               </n-space> |  | ||||||
|             </td> |             </td> | ||||||
|           </tr> |           </tr> | ||||||
|         </template> |         </template> | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="flex: 0 0 100%"> |   <div style="flex: 0 0 100%"> | ||||||
|     <n-space item-style="flex: 1 1 0" style="margin: 0 auto; max-width: 600px" justify="center"> |     <div style="margin: 0 auto; max-width: 600px"> | ||||||
|       <c-card> |       <c-card> | ||||||
|         <div flex> |         <div flex> | ||||||
|           <div> |           <div> | ||||||
| @ -73,7 +73,7 @@ | |||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|       </c-card> |       </c-card> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
|   <format-transformer |   <format-transformer | ||||||
|     input-label="Your input data" |     input-label="Your input data" | ||||||
|  | |||||||
| @ -18,9 +18,9 @@ | |||||||
| 
 | 
 | ||||||
|     <n-input :value="loremIpsumText" type="textarea" placeholder="Your lorem ipsum..." readonly autosize mt-5 /> |     <n-input :value="loremIpsumText" type="textarea" placeholder="Your lorem ipsum..." readonly autosize mt-5 /> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center" mt-5> |     <div mt-5 flex justify-center> | ||||||
|       <c-button autofocus @click="copy"> Copy </c-button> |       <c-button autofocus @click="copy"> Copy </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -25,10 +25,10 @@ | |||||||
|       <n-progress :percentage="(100 * interval) / 30" :color="theme.primaryColor" :show-indicator="false" /> |       <n-progress :percentage="(100 * interval) / 30" :color="theme.primaryColor" :show-indicator="false" /> | ||||||
|       <div style="text-align: center">Next in {{ String(Math.floor(30 - interval)).padStart(2, '0') }}s</div> |       <div style="text-align: center">Next in {{ String(Math.floor(30 - interval)).padStart(2, '0') }}s</div> | ||||||
|     </div> |     </div> | ||||||
|     <n-space justify="center" vertical align="center" style="margin-top: 10px"> |     <div mt-4 flex flex-col items-center justify-center gap-3> | ||||||
|       <n-image :src="qrcode"></n-image> |       <n-image :src="qrcode"></n-image> | ||||||
|       <c-button :href="keyUri" target="_blank">Open Key URI in new tab</c-button> |       <c-button :href="keyUri" target="_blank">Open Key URI in new tab</c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
|   <div style="max-width: 350px"> |   <div style="max-width: 350px"> | ||||||
|     <input-copyable |     <input-copyable | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <template> | <template> | ||||||
|   <div> |   <div> | ||||||
|     <n-space class="labels" item-style="flex: 1 1 0" w-full align="center"> |     <div class="labels" w-full flex items-center> | ||||||
|       <div style="text-align: left">Previous</div> |       <div flex-1 text-left>Previous</div> | ||||||
|       <div style="text-align: center">Current OTP</div> |       <div flex-1 text-center>Current OTP</div> | ||||||
|       <div style="text-align: right">Next</div> |       <div flex-1 text-right>Next</div> | ||||||
|     </n-space> |     </div> | ||||||
|     <n-input-group> |     <n-input-group> | ||||||
|       <n-tooltip trigger="hover" placement="bottom"> |       <n-tooltip trigger="hover" placement="bottom"> | ||||||
|         <template #trigger> |         <template #trigger> | ||||||
| @ -63,7 +63,6 @@ const { tokens } = toRefs(props); | |||||||
| 
 | 
 | ||||||
| .labels { | .labels { | ||||||
|   div { |   div { | ||||||
|     text-align: center; |  | ||||||
|     padding: 0 2px 6px 2px; |     padding: 0 2px 6px 2px; | ||||||
|     line-height: 1.25; |     line-height: 1.25; | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -26,10 +26,10 @@ | |||||||
|         </n-form> |         </n-form> | ||||||
|       </n-gi> |       </n-gi> | ||||||
|       <n-gi> |       <n-gi> | ||||||
|         <n-space justify="center" align="center" vertical> |         <div flex flex-col items-center gap-3> | ||||||
|           <n-image :src="qrcode" width="200" /> |           <n-image :src="qrcode" width="200" /> | ||||||
|           <c-button @click="download"> Download qr-code </c-button> |           <c-button @click="download"> Download qr-code </c-button> | ||||||
|         </n-space> |         </div> | ||||||
|       </n-gi> |       </n-gi> | ||||||
|     </n-grid> |     </n-grid> | ||||||
|   </c-card> |   </c-card> | ||||||
|  | |||||||
| @ -3,10 +3,10 @@ | |||||||
|     <div class="port"> |     <div class="port"> | ||||||
|       {{ port }} |       {{ port }} | ||||||
|     </div> |     </div> | ||||||
|     <n-space justify="center"> |     <div flex justify-center gap-3> | ||||||
|       <c-button @click="copy"> Copy </c-button> |       <c-button @click="copy"> Copy </c-button> | ||||||
|       <c-button @click="refreshPort"> Refresh </c-button> |       <c-button @click="refreshPort"> Refresh </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <template> | <template> | ||||||
|   <div> |   <div> | ||||||
|     <c-card title="Arabic to roman"> |     <c-card title="Arabic to roman"> | ||||||
|       <n-space align="center" justify="space-between"> |       <div flex items-center justify-between> | ||||||
|         <n-form-item v-bind="validationNumeral as any"> |         <n-form-item v-bind="validationNumeral as any"> | ||||||
|           <n-input-number v-model:value="inputNumeral" :min="1" style="width: 200px" :show-button="false" /> |           <n-input-number v-model:value="inputNumeral" :min="1" style="width: 200px" :show-button="false" /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
| @ -11,17 +11,17 @@ | |||||||
|         <c-button autofocus :disabled="validationNumeral.validationStatus === 'error'" @click="copyRoman"> |         <c-button autofocus :disabled="validationNumeral.validationStatus === 'error'" @click="copyRoman"> | ||||||
|           Copy |           Copy | ||||||
|         </c-button> |         </c-button> | ||||||
|       </n-space> |       </div> | ||||||
|     </c-card> |     </c-card> | ||||||
|     <c-card title="Roman to arabic" mt-5> |     <c-card title="Roman to arabic" mt-5> | ||||||
|       <n-space align="center" justify="space-between"> |       <div flex items-center justify-between> | ||||||
|         <c-input-text v-model:value="inputRoman" style="width: 200px" :validation="validationRoman" /> |         <c-input-text v-model:value="inputRoman" style="width: 200px" :validation="validationRoman" /> | ||||||
| 
 | 
 | ||||||
|         <div class="result"> |         <div class="result"> | ||||||
|           {{ outputNumeral }} |           {{ outputNumeral }} | ||||||
|         </div> |         </div> | ||||||
|         <c-button :disabled="!validationRoman.isValid" @click="copyArabic"> Copy </c-button> |         <c-button :disabled="!validationRoman.isValid" @click="copyArabic"> Copy </c-button> | ||||||
|       </n-space> |       </div> | ||||||
|     </c-card> |     </c-card> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="flex: 0 0 100%"> |   <div style="flex: 0 0 100%"> | ||||||
|     <n-space item-style="flex: 1 1 0" style="margin: 0 auto; max-width: 600px" justify="center"> |     <div item-style="flex: 1 1 0" style="max-width: 600px" mx-auto flex gap-3> | ||||||
|       <n-form-item label="Bits :" v-bind="bitsValidationAttrs as any" label-placement="left" label-width="100"> |       <n-form-item label="Bits :" v-bind="bitsValidationAttrs as any" label-placement="left" label-width="100"> | ||||||
|         <n-input-number v-model:value="bits" min="256" max="16384" step="8" /> |         <n-input-number v-model:value="bits" min="256" max="16384" step="8" /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
| 
 | 
 | ||||||
|       <c-button @click="refreshCerts">Refresh key-pair</c-button> |       <c-button @click="refreshCerts">Refresh key-pair</c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| 
 | 
 | ||||||
|   <div> |   <div> | ||||||
|  | |||||||
| @ -13,9 +13,9 @@ | |||||||
|       ></n-input> |       ></n-input> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <c-button :disabled="slug.length === 0" @click="copy">Copy slug</c-button> |       <c-button :disabled="slug.length === 0" @click="copy">Copy slug</c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="flex: 0 0 100%"> |   <div style="flex: 0 0 100%"> | ||||||
|     <n-space item-style="flex:1 1 0" style="margin: 0 auto; max-width: 600px" :vertical="styleStore.isSmallScreen"> |     <div mx-auto style="max-width: 600px" flex gap-2 :class="{ 'flex-col': styleStore.isSmallScreen }"> | ||||||
|       <n-form-item label="Dialect" label-width="500"> |       <n-form-item label="Dialect" label-width="500" flex-1> | ||||||
|         <n-select |         <n-select | ||||||
|           v-model:value="config.language" |           v-model:value="config.language" | ||||||
|           :options="[ |           :options="[ | ||||||
| @ -21,7 +21,7 @@ | |||||||
|           ]" |           ]" | ||||||
|         /> |         /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|       <n-form-item label="Keyword case"> |       <n-form-item label="Keyword case" flex-1> | ||||||
|         <n-select |         <n-select | ||||||
|           v-model:value="config.keywordCase" |           v-model:value="config.keywordCase" | ||||||
|           :options="[ |           :options="[ | ||||||
| @ -31,7 +31,7 @@ | |||||||
|           ]" |           ]" | ||||||
|         /> |         /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|       <n-form-item label="Indent style"> |       <n-form-item label="Indent style" flex-1> | ||||||
|         <n-select |         <n-select | ||||||
|           v-model:value="config.indentStyle" |           v-model:value="config.indentStyle" | ||||||
|           :options="[ |           :options="[ | ||||||
| @ -41,7 +41,7 @@ | |||||||
|           ]" |           ]" | ||||||
|         /> |         /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| 
 | 
 | ||||||
|   <n-form-item label="Your SQL query"> |   <n-form-item label="Your SQL query"> | ||||||
|  | |||||||
| @ -1,24 +1,24 @@ | |||||||
| <template> | <template> | ||||||
|   <div> |   <div> | ||||||
|     <n-form label-placement="left" label-width="100"> |     <n-form label-placement="left" label-width="100"> | ||||||
|       <n-space item-style="flex:1 1 0"> |       <div flex gap-3> | ||||||
|         <n-form-item label="Width (in px)"> |         <n-form-item label="Width (in px)" flex-1> | ||||||
|           <n-input-number v-model:value="width" placeholder="SVG width..." min="1" /> |           <n-input-number v-model:value="width" placeholder="SVG width..." min="1" /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
|         <n-form-item label="Background"> |         <n-form-item label="Background" flex-1> | ||||||
|           <n-color-picker v-model:value="bgColor" :modes="['hex']" /> |           <n-color-picker v-model:value="bgColor" :modes="['hex']" /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
|       </n-space> |       </div> | ||||||
|       <n-space item-style="flex:1 1 0"> |       <div flex gap-3> | ||||||
|         <n-form-item label="Height (in px)"> |         <n-form-item label="Height (in px)" flex-1> | ||||||
|           <n-input-number v-model:value="height" placeholder="SVG height..." min="1" /> |           <n-input-number v-model:value="height" placeholder="SVG height..." min="1" /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
|         <n-form-item label="Text color"> |         <n-form-item label="Text color" flex-1> | ||||||
|           <n-color-picker v-model:value="fgColor" :modes="['hex']" /> |           <n-color-picker v-model:value="fgColor" :modes="['hex']" /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
|       </n-space> |       </div> | ||||||
|       <n-space item-style="flex:1 1 0"> |       <div flex gap-3> | ||||||
|         <n-form-item label="Font size"> |         <n-form-item label="Font size" flex-1> | ||||||
|           <n-input-number v-model:value="fontSize" placeholder="Font size..." min="1" /> |           <n-input-number v-model:value="fontSize" placeholder="Font size..." min="1" /> | ||||||
|         </n-form-item> |         </n-form-item> | ||||||
| 
 | 
 | ||||||
| @ -29,8 +29,9 @@ | |||||||
|           label-position="left" |           label-position="left" | ||||||
|           label-width="100px" |           label-width="100px" | ||||||
|           label-align="right" |           label-align="right" | ||||||
|  |           flex-1 | ||||||
|         /> |         /> | ||||||
|       </n-space> |       </div> | ||||||
|       <n-form-item label="Use exact size" label-placement="left"> |       <n-form-item label="Use exact size" label-placement="left"> | ||||||
|         <n-switch v-model:value="useExactSize" /> |         <n-switch v-model:value="useExactSize" /> | ||||||
|       </n-form-item> |       </n-form-item> | ||||||
| @ -43,16 +44,14 @@ | |||||||
|       <textarea-copyable :value="base64" copy-placement="none" /> |       <textarea-copyable :value="base64" copy-placement="none" /> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center gap-3> | ||||||
|       <c-button @click="copySVG()">Copy svg</c-button> |       <c-button @click="copySVG()">Copy svg</c-button> | ||||||
|       <c-button @click="copyBase64()">Copy base64</c-button> |       <c-button @click="copyBase64()">Copy base64</c-button> | ||||||
|       <c-button @click="download()">Download svg</c-button> |       <c-button @click="download()">Download svg</c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| 
 | 
 | ||||||
|   <n-space vertical justify="start"> |  | ||||||
|   <img :src="base64" alt="Image" /> |   <img :src="base64" alt="Image" /> | ||||||
|   </n-space> |  | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
|  | |||||||
| @ -2,12 +2,12 @@ | |||||||
|   <c-card> |   <c-card> | ||||||
|     <n-input v-model:value="text" type="textarea" placeholder="Your text..." rows="5" /> |     <n-input v-model:value="text" type="textarea" placeholder="Your text..." rows="5" /> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="space-around" mt-5> |     <div mt-5 flex> | ||||||
|       <n-statistic label="Character count" :value="text.length" /> |       <n-statistic label="Character count" :value="text.length" flex-1 /> | ||||||
|       <n-statistic label="Word count" :value="text === '' ? 0 : text.split(/\s+/).length" /> |       <n-statistic label="Word count" :value="text === '' ? 0 : text.split(/\s+/).length" flex-1 /> | ||||||
|       <n-statistic label="Line count" :value="text === '' ? 0 : text.split(/\r\n|\r|\n/).length" /> |       <n-statistic label="Line count" :value="text === '' ? 0 : text.split(/\r\n|\r|\n/).length" flex-1 /> | ||||||
|       <n-statistic label="Byte size" :value="formatBytes(getStringSizeInBytes(text))" /> |       <n-statistic label="Byte size" :value="formatBytes(getStringSizeInBytes(text))" flex-1 /> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -8,16 +8,16 @@ | |||||||
|       mb-5 |       mb-5 | ||||||
|     /> |     /> | ||||||
| 
 | 
 | ||||||
|     <n-space v-if="natoText" vertical> |     <div v-if="natoText"> | ||||||
|       <n-text>Your text in NATO phonetic alphabet</n-text> |       <n-text mb-1 block>Your text in NATO phonetic alphabet</n-text> | ||||||
|       <c-card> |       <c-card> | ||||||
|         {{ natoText }} |         {{ natoText }} | ||||||
|       </c-card> |       </c-card> | ||||||
| 
 | 
 | ||||||
|       <n-space justify="center"> |       <div mt-3 flex justify-center> | ||||||
|         <c-button autofocus @click="copy"> Copy NATO string </c-button> |         <c-button autofocus @click="copy"> Copy NATO string </c-button> | ||||||
|       </n-space> |       </div> | ||||||
|     </n-space> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ | |||||||
|   <div> |   <div> | ||||||
|     <c-card> |     <c-card> | ||||||
|       <n-form label-placement="left" label-width="140"> |       <n-form label-placement="left" label-width="140"> | ||||||
|         <n-space justify="center" item-style="padding: 0" :size="0"> |         <div flex justify-center> | ||||||
|           <div> |           <div> | ||||||
|             <n-form-item label="Uppercase (ABC...)"> |             <n-form-item label="Uppercase (ABC...)"> | ||||||
|               <n-switch v-model:value="withUppercase" /> |               <n-switch v-model:value="withUppercase" /> | ||||||
| @ -22,7 +22,7 @@ | |||||||
|               <n-switch v-model:value="withSymbols" /> |               <n-switch v-model:value="withSymbols" /> | ||||||
|             </n-form-item> |             </n-form-item> | ||||||
|           </div> |           </div> | ||||||
|         </n-space> |         </div> | ||||||
|       </n-form> |       </n-form> | ||||||
| 
 | 
 | ||||||
|       <n-form-item :label="`Length (${length})`" label-placement="left"> |       <n-form-item :label="`Length (${length})`" label-placement="left"> | ||||||
| @ -42,10 +42,10 @@ | |||||||
|         spellcheck="false" |         spellcheck="false" | ||||||
|       /> |       /> | ||||||
| 
 | 
 | ||||||
|       <n-space justify="center" mt-5> |       <div mt-5 flex justify-center gap-3> | ||||||
|         <c-button @click="copy"> Copy </c-button> |         <c-button @click="copy"> Copy </c-button> | ||||||
|         <c-button @click="refreshToken"> Refresh </c-button> |         <c-button @click="refreshToken"> Refresh </c-button> | ||||||
|       </n-space> |       </div> | ||||||
|     </c-card> |     </c-card> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
|  | |||||||
| @ -23,9 +23,9 @@ | |||||||
|       /> |       /> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <c-button @click="copyEncoded"> Copy </c-button> |       <c-button @click="copyEncoded"> Copy </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
|   <c-card title="Decode"> |   <c-card title="Decode"> | ||||||
|     <n-form-item |     <n-form-item | ||||||
| @ -51,9 +51,9 @@ | |||||||
|       /> |       /> | ||||||
|     </n-form-item> |     </n-form-item> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center> | ||||||
|       <c-button @click="copyDecoded"> Copy </c-button> |       <c-button @click="copyDecoded"> Copy </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </c-card> |   </c-card> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -12,7 +12,7 @@ | |||||||
|             </template> |             </template> | ||||||
|           </n-page-header> |           </n-page-header> | ||||||
| 
 | 
 | ||||||
|           <n-space mt-5> |           <div mt-5 flex gap-2> | ||||||
|             <span v-for="{ label, getValue } in content" :key="label"> |             <span v-for="{ label, getValue } in content" :key="label"> | ||||||
|               <n-tooltip v-if="getValue(userAgentInfo)" trigger="hover"> |               <n-tooltip v-if="getValue(userAgentInfo)" trigger="hover"> | ||||||
|                 <template #trigger> |                 <template #trigger> | ||||||
| @ -23,12 +23,12 @@ | |||||||
|                 {{ label }} |                 {{ label }} | ||||||
|               </n-tooltip> |               </n-tooltip> | ||||||
|             </span> |             </span> | ||||||
|           </n-space> |           </div> | ||||||
|           <n-space vertical> |           <div flex flex-col> | ||||||
|             <span v-for="{ label, getValue, undefinedFallback } in content" :key="label"> |             <span v-for="{ label, getValue, undefinedFallback } in content" :key="label"> | ||||||
|               <n-text v-if="getValue(userAgentInfo) === undefined" depth="3">{{ undefinedFallback }}</n-text> |               <n-text v-if="getValue(userAgentInfo) === undefined" depth="3">{{ undefinedFallback }}</n-text> | ||||||
|             </span> |             </span> | ||||||
|           </n-space> |           </div> | ||||||
|         </c-card> |         </c-card> | ||||||
|       </n-gi> |       </n-gi> | ||||||
|     </n-grid> |     </n-grid> | ||||||
|  | |||||||
| @ -1,9 +1,9 @@ | |||||||
| <template> | <template> | ||||||
|   <n-space vertical :size="20"> |   <div> | ||||||
|     <n-space align="center" justify="center"> |     <div flex items-center justify-center gap-3> | ||||||
|       Quantity : |       Quantity : | ||||||
|       <n-input-number v-model:value="count" :min="1" :max="50" placeholder="UUID quantity" /> |       <n-input-number v-model:value="count" :min="1" :max="50" placeholder="UUID quantity" /> | ||||||
|     </n-space> |     </div> | ||||||
| 
 | 
 | ||||||
|     <n-input |     <n-input | ||||||
|       style="text-align: center; font-family: monospace" |       style="text-align: center; font-family: monospace" | ||||||
| @ -16,13 +16,14 @@ | |||||||
|       autocorrect="off" |       autocorrect="off" | ||||||
|       autocapitalize="off" |       autocapitalize="off" | ||||||
|       spellcheck="false" |       spellcheck="false" | ||||||
|  |       my-3 | ||||||
|     /> |     /> | ||||||
| 
 | 
 | ||||||
|     <n-space justify="center"> |     <div flex justify-center gap-3> | ||||||
|       <c-button autofocus @click="copy"> Copy </c-button> |       <c-button autofocus @click="copy"> Copy </c-button> | ||||||
|       <c-button @click="refreshUUIDs"> Refresh </c-button> |       <c-button @click="refreshUUIDs"> Refresh </c-button> | ||||||
|     </n-space> |     </div> | ||||||
|   </n-space> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user