Compare commits
	
		
			18 Commits
		
	
	
		
			1.11.2
			...
			feature/an
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						8c56aa3c46
	
				 | 
					
					
						|||
| 
						
						
							
						
						1505080afd
	
				 | 
					
					
						|||
| 
						
						
							
						
						f642849dbb
	
				 | 
					
					
						|||
| 
						
						
							
						
						7ac92ae6ca
	
				 | 
					
					
						|||
| 
						
						
							
						
						95af9f9914
	
				 | 
					
					
						|||
| 
						
						
							
						
						1004aee16c
	
				 | 
					
					
						|||
| 
						
						
							
						
						0baf2fc460
	
				 | 
					
					
						|||
| 
						
						
							
						
						09b59175ee
	
				 | 
					
					
						|||
| 
						
						
							
						
						a21f61f3f3
	
				 | 
					
					
						|||
| 
						
						
							
						
						8cb6093f0b
	
				 | 
					
					
						|||
| 
						
						
							
						
						7a92adcd3a
	
				 | 
					
					
						|||
| 
						
						
							
						
						27396e17f2
	
				 | 
					
					
						|||
| 
						
						
							
						
						fefd5c8237
	
				 | 
					
					
						|||
| 
						
						
							
						
						f9993c60f5
	
				 | 
					
					
						|||
| 
						
						
							
						
						8e314f8676
	
				 | 
					
					
						|||
| 
						
						
							
						
						98a3b07237
	
				 | 
					
					
						|||
| 
						
						
							
						
						efad6fdf2e
	
				 | 
					
					
						|||
| 
						
						
							
						
						bce6d484a9
	
				 | 
					
					
						
							
								
								
									
										23
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -2,8 +2,31 @@
 | 
			
		||||
 | 
			
		||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
 | 
			
		||||
 | 
			
		||||
#### [1.11.5](https://git.odit.services/lfk/frontend/compare/1.11.4...1.11.5)
 | 
			
		||||
 | 
			
		||||
- fix(cards): Update table for edit events [`27396e1`](https://git.odit.services/lfk/frontend/commit/27396e17f2cd8be72c9c8100afe6ec75ac66dceb)
 | 
			
		||||
 | 
			
		||||
#### [1.11.4](https://git.odit.services/lfk/frontend/compare/1.11.3...1.11.4)
 | 
			
		||||
 | 
			
		||||
> 25 April 2025
 | 
			
		||||
 | 
			
		||||
- feat(CardAssign): styled buttons [`f9993c6`](https://git.odit.services/lfk/frontend/commit/f9993c60f565d7270b3a269e934b42b945c24b99)
 | 
			
		||||
- chore(release): 1.11.4 [`fefd5c8`](https://git.odit.services/lfk/frontend/commit/fefd5c8237b91ac7fd7ecf467a6feb1100f84811)
 | 
			
		||||
- feat(CardAssignment): support EAN13 [`8e314f8`](https://git.odit.services/lfk/frontend/commit/8e314f8676e5c189c09a33c9a382a8b984af5e30)
 | 
			
		||||
 | 
			
		||||
#### [1.11.3](https://git.odit.services/lfk/frontend/compare/1.11.2...1.11.3)
 | 
			
		||||
 | 
			
		||||
> 25 April 2025
 | 
			
		||||
 | 
			
		||||
- chore(deps): Updated lock [`bce6d48`](https://git.odit.services/lfk/frontend/commit/bce6d484a9b1d7c40d4575a64ad528da2cc8fb3c)
 | 
			
		||||
- chore(release): 1.11.3 [`98a3b07`](https://git.odit.services/lfk/frontend/commit/98a3b072370f029f82f79a75b8f809bc1b41d82f)
 | 
			
		||||
- fix(cards): Z-Index for bulk card modal [`efad6fd`](https://git.odit.services/lfk/frontend/commit/efad6fdf2eae12c904575727b61fc61ed8a27d14)
 | 
			
		||||
 | 
			
		||||
#### [1.11.2](https://git.odit.services/lfk/frontend/compare/1.11.1...1.11.2)
 | 
			
		||||
 | 
			
		||||
> 23 April 2025
 | 
			
		||||
 | 
			
		||||
- chore(release): 1.11.2 [`2dea19d`](https://git.odit.services/lfk/frontend/commit/2dea19df8990b34a56a345fef05487684ecec8c4)
 | 
			
		||||
- fix(cardassignment): handle card not found [`6c98646`](https://git.odit.services/lfk/frontend/commit/6c986467d39344a32e598b834a115932ab8c9a1f)
 | 
			
		||||
 | 
			
		||||
#### [1.11.1](https://git.odit.services/lfk/frontend/compare/1.11.0...1.11.1)
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
 | 
			
		||||
  <body>
 | 
			
		||||
    <span style="display: none; visibility: hidden" id="buildinfo"
 | 
			
		||||
      >RELEASE_INFO-1.11.2-RELEASE_INFO</span
 | 
			
		||||
      >RELEASE_INFO-1.11.5-RELEASE_INFO</span
 | 
			
		||||
    >
 | 
			
		||||
    <noscript>You need to enable JavaScript to run this app.</noscript>
 | 
			
		||||
    <script src="/env.js"></script>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@odit/lfk-frontend",
 | 
			
		||||
  "version": "1.11.2",
 | 
			
		||||
  "version": "1.11.5",
 | 
			
		||||
  "type": "module",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "i18n-order": "node order.js",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										675
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										675
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -111,7 +111,7 @@
 | 
			
		||||
        aria-hidden="true">​</span
 | 
			
		||||
      >
 | 
			
		||||
      <div
 | 
			
		||||
        class="inline-block align-bottom bg-white rounded-lg text-left shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full"
 | 
			
		||||
        class="inline-block align-bottom bg-white rounded-lg text-left shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full relative z-10"
 | 
			
		||||
        role="dialog"
 | 
			
		||||
        aria-modal="true"
 | 
			
		||||
        aria-labelledby="modal-headline"
 | 
			
		||||
@@ -122,7 +122,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -109,7 +109,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -162,7 +162,7 @@
 | 
			
		||||
                      name="enabled"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      checked={editable.enabled}
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                    {$_("this-card-is")}
 | 
			
		||||
                    {#if editable.enabled}
 | 
			
		||||
 
 | 
			
		||||
@@ -180,11 +180,9 @@
 | 
			
		||||
    bind:runner
 | 
			
		||||
    bind:editable
 | 
			
		||||
    bind:original_data
 | 
			
		||||
    on:dataUpdated={(event) => {
 | 
			
		||||
      current_cards[
 | 
			
		||||
        current_cards.findIndex((c) => c.id === event.detail.card.id)
 | 
			
		||||
      ] = event.detail.card;
 | 
			
		||||
      current_cards = current_cards;
 | 
			
		||||
    on:dataUpdated={(editevent) => {
 | 
			
		||||
      console.log(editevent.detail.card)
 | 
			
		||||
      current_cards = current_cards.filter((c) => c.id !== editevent.detail.card.id).concat([editevent.detail.card]).sort((a, b) => a.code - b.code);
 | 
			
		||||
      options.update((options) => ({
 | 
			
		||||
        ...options,
 | 
			
		||||
        data: current_cards,
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -167,7 +167,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -345,7 +345,7 @@
 | 
			
		||||
                      id="comments"
 | 
			
		||||
                      name="comments"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -300,7 +300,7 @@
 | 
			
		||||
					id="comments"
 | 
			
		||||
					name="comments"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
	$: runner = 0;
 | 
			
		||||
	$: donors = [];
 | 
			
		||||
	$: runners = [];
 | 
			
		||||
  $: is_fixed = false;
 | 
			
		||||
	$: type = "distance";
 | 
			
		||||
	$: is_paid = false;
 | 
			
		||||
	$: amount_input = 0;
 | 
			
		||||
	$: processed_last_submit = true;
 | 
			
		||||
@@ -46,7 +46,7 @@
 | 
			
		||||
			let amount_cent = Math.floor(amount_input * 100);
 | 
			
		||||
			processed_last_submit = false;
 | 
			
		||||
			toast.loading($_("adding-donation"));
 | 
			
		||||
      if (is_fixed) {
 | 
			
		||||
			if (type === "fixed") {
 | 
			
		||||
				let postdata = {
 | 
			
		||||
					donor,
 | 
			
		||||
					amount: amount_cent,
 | 
			
		||||
@@ -72,7 +72,30 @@
 | 
			
		||||
					.finally(() => {
 | 
			
		||||
						processed_last_submit = true;
 | 
			
		||||
					});
 | 
			
		||||
      } else {
 | 
			
		||||
			} else if (type === "anonymous") {
 | 
			
		||||
				let postdata = {
 | 
			
		||||
					amount: amount_cent,
 | 
			
		||||
					paidAmount: 0,
 | 
			
		||||
				};
 | 
			
		||||
				if (is_paid) {
 | 
			
		||||
					postdata.paidAmount = amount_cent;
 | 
			
		||||
				}
 | 
			
		||||
				DonationService.donationControllerPostFixed(postdata)
 | 
			
		||||
					.then((result) => {
 | 
			
		||||
						amount_input = 0;
 | 
			
		||||
						modal_open = false;
 | 
			
		||||
						//
 | 
			
		||||
						toast.dismiss();
 | 
			
		||||
						toast.success($_("donation_added"));
 | 
			
		||||
						dispatch("created", { donations: [result] });
 | 
			
		||||
					})
 | 
			
		||||
					.catch((err) => {
 | 
			
		||||
						//
 | 
			
		||||
					})
 | 
			
		||||
					.finally(() => {
 | 
			
		||||
						processed_last_submit = true;
 | 
			
		||||
					});
 | 
			
		||||
			} else if (type === "distance") {
 | 
			
		||||
				let postdata = {
 | 
			
		||||
					donor,
 | 
			
		||||
					runner,
 | 
			
		||||
@@ -100,16 +123,12 @@
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	onMount(async () => {
 | 
			
		||||
    donors = (await DonorService.donorControllerGetAll()).map(
 | 
			
		||||
      (r) => {
 | 
			
		||||
		donors = (await DonorService.donorControllerGetAll()).map((r) => {
 | 
			
		||||
			return { label: getDonorLabel(r), value: r };
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
    runners = (await RunnerService.runnerControllerGetAll()).map(
 | 
			
		||||
      (r) => {
 | 
			
		||||
		});
 | 
			
		||||
		runners = (await RunnerService.runnerControllerGetAll()).map((r) => {
 | 
			
		||||
			return { label: getDonorLabel(r), value: r };
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
		});
 | 
			
		||||
	});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@@ -126,7 +145,7 @@
 | 
			
		||||
		>
 | 
			
		||||
			<div class="fixed inset-0 transition-opacity" aria-hidden="true">
 | 
			
		||||
				<div
 | 
			
		||||
          class="absolute inset-0 bg-gray-500 opacity-75"
 | 
			
		||||
					class="absolute inset-0 bg-neutral-500 opacity-75"
 | 
			
		||||
					data-id="modal_backdrop"
 | 
			
		||||
				/>
 | 
			
		||||
			</div>
 | 
			
		||||
@@ -146,7 +165,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
@@ -159,40 +178,97 @@
 | 
			
		||||
							>
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="mt-3">
 | 
			
		||||
              <h3 class="text-lg leading-6 font-medium text-gray-900">
 | 
			
		||||
                {#if is_fixed}
 | 
			
		||||
                  {$_("create-a-new-fixed-donation")}
 | 
			
		||||
                {:else}{$_("create-a-new-distance-donation")}{/if}
 | 
			
		||||
              <h3 class="text-xl leading-6 font-medium text-neutral-900">
 | 
			
		||||
                Sponsoring erstellen
 | 
			
		||||
              </h3>
 | 
			
		||||
              <label class="content-center align-middle object-center">
 | 
			
		||||
                <span class="text-base" class:text-gray-300={is_fixed}
 | 
			
		||||
                  >{$_("distance-donation")}</span
 | 
			
		||||
							<nav
 | 
			
		||||
								class="relative z-0 flex border border-neutral-200 rounded-xl overflow-hidden mb-2"
 | 
			
		||||
							>
 | 
			
		||||
                <input
 | 
			
		||||
                  class="toggle relative w-10 h-5 transition-all duration-200 ease-in-out bg-gray-400 rounded-full shadow-inner outline-none appearance-none align-middle"
 | 
			
		||||
                  type="checkbox"
 | 
			
		||||
                  bind:checked={is_fixed}
 | 
			
		||||
                />
 | 
			
		||||
                <span class="ml-2 text-base" class:text-gray-300={!is_fixed}
 | 
			
		||||
                  >{$_("fixed-donation")}</span
 | 
			
		||||
								<button
 | 
			
		||||
									on:click={() => {
 | 
			
		||||
										type = "distance";
 | 
			
		||||
									}}
 | 
			
		||||
									type="button"
 | 
			
		||||
									id="bar-with-underline-item-1"
 | 
			
		||||
									class:donation_active_tab={type === "distance"}
 | 
			
		||||
									class:donation_inactive_tab={type !== "distance"}
 | 
			
		||||
									aria-selected={type === "distance"}
 | 
			
		||||
									role="tab"
 | 
			
		||||
								>
 | 
			
		||||
              </label>
 | 
			
		||||
              <div class="mb-6">
 | 
			
		||||
                <p class="text-sm text-gray-500">
 | 
			
		||||
                  {$_(
 | 
			
		||||
                    "please-provide-the-nessecary-information-to-create-a-new-donation"
 | 
			
		||||
                  )}
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
									{$_("spende_pro_km")}
 | 
			
		||||
								</button>
 | 
			
		||||
								<button
 | 
			
		||||
									on:click={() => {
 | 
			
		||||
										type = "fixed";
 | 
			
		||||
									}}
 | 
			
		||||
									type="button"
 | 
			
		||||
									id="bar-with-underline-item-2"
 | 
			
		||||
									class:donation_active_tab={type === "fixed"}
 | 
			
		||||
									class:donation_inactive_tab={type !== "fixed"}
 | 
			
		||||
									aria-selected={type === "fixed"}
 | 
			
		||||
									role="tab"
 | 
			
		||||
								>
 | 
			
		||||
									{$_("festbetrag")}
 | 
			
		||||
								</button>
 | 
			
		||||
								<button
 | 
			
		||||
									on:click={() => {
 | 
			
		||||
										type = "anonymous";
 | 
			
		||||
									}}
 | 
			
		||||
									type="button"
 | 
			
		||||
									id="bar-with-underline-item-3"
 | 
			
		||||
									class:donation_active_tab={type === "anonymous"}
 | 
			
		||||
									class:donation_inactive_tab={type !== "anonymous"}
 | 
			
		||||
									aria-selected={type === "anonymous"}
 | 
			
		||||
									role="tab"
 | 
			
		||||
								>
 | 
			
		||||
									{$_("anonyme_spende")}
 | 
			
		||||
								</button>
 | 
			
		||||
							</nav>
 | 
			
		||||
 | 
			
		||||
							<div class="grid grid-cols-6 gap-2 lg:gap-6 text-left">
 | 
			
		||||
								{#if type === "anonymous"}
 | 
			
		||||
									<div class="col-span-6">
 | 
			
		||||
										<label
 | 
			
		||||
											for="donation_amount_eur"
 | 
			
		||||
											class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
										>
 | 
			
		||||
											{$_("donation-amount")}</label
 | 
			
		||||
										>
 | 
			
		||||
										<div class="mt-1 flex rounded-md shadow-sm">
 | 
			
		||||
											<input
 | 
			
		||||
												autocomplete="off"
 | 
			
		||||
												class:border-red-500={!is_amount_valid}
 | 
			
		||||
												class:focus:border-red-500={!is_amount_valid}
 | 
			
		||||
												class:focus:ring-red-500={!is_amount_valid}
 | 
			
		||||
												bind:value={amount_input}
 | 
			
		||||
												type="number"
 | 
			
		||||
												step="0.01"
 | 
			
		||||
												name="donation_amount_eur"
 | 
			
		||||
												class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-l-md sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 p-2"
 | 
			
		||||
												placeholder="2.00"
 | 
			
		||||
											/>
 | 
			
		||||
											<span
 | 
			
		||||
												class="inline-flex items-center px-3 rounded-r-md border border-neutral-300 bg-neutral-50 text-neutral-500 text-sm"
 | 
			
		||||
												>€</span
 | 
			
		||||
											>
 | 
			
		||||
										</div>
 | 
			
		||||
										{#if !is_amount_valid}
 | 
			
		||||
											<span
 | 
			
		||||
												class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"
 | 
			
		||||
											>
 | 
			
		||||
												{$_("donation-amount-must-be-greater-that-0-00eur")}
 | 
			
		||||
											</span>
 | 
			
		||||
										{/if}
 | 
			
		||||
									</div>
 | 
			
		||||
								{:else}
 | 
			
		||||
									<div class="col-span-6">
 | 
			
		||||
										<label
 | 
			
		||||
											for="donor"
 | 
			
		||||
                    class="block text-sm font-medium text-gray-700"
 | 
			
		||||
											class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
											>{$_("donor")}</label
 | 
			
		||||
										>
 | 
			
		||||
										<Select
 | 
			
		||||
                    containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
											containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
											itemFilter={(label, filterText, option) =>
 | 
			
		||||
												filterDonors(label, filterText, option)}
 | 
			
		||||
											items={donors}
 | 
			
		||||
@@ -204,15 +280,15 @@
 | 
			
		||||
											on:clear={() => (donors = null)}
 | 
			
		||||
										/>
 | 
			
		||||
									</div>
 | 
			
		||||
                {#if !is_fixed}
 | 
			
		||||
									{#if type === "distance"}
 | 
			
		||||
										<div class="col-span-6">
 | 
			
		||||
											<label
 | 
			
		||||
												for="donor"
 | 
			
		||||
                      class="block text-sm font-medium text-gray-700"
 | 
			
		||||
												class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
												>{$_("runner")}</label
 | 
			
		||||
											>
 | 
			
		||||
											<Select
 | 
			
		||||
                      containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-gray-300 border bg-gray-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
												containerClasses="rounded-l-md mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 rounded-md p-2"
 | 
			
		||||
												itemFilter={(label, filterText, option) =>
 | 
			
		||||
													filterDonors(label, filterText, option)}
 | 
			
		||||
												items={runners}
 | 
			
		||||
@@ -228,11 +304,11 @@
 | 
			
		||||
									<div class="col-span-6">
 | 
			
		||||
										<label
 | 
			
		||||
											for="donation_amount_eur"
 | 
			
		||||
                    class="block text-sm font-medium text-gray-700"
 | 
			
		||||
											class="block text-sm font-medium text-neutral-900"
 | 
			
		||||
										>
 | 
			
		||||
                    {#if !is_fixed}
 | 
			
		||||
                      {$_("amount-per-kilometer")}
 | 
			
		||||
                    {:else}{$_("donation-amount")}{/if}</label
 | 
			
		||||
											{#if type === "fixed"}
 | 
			
		||||
												{$_("donation-amount")}
 | 
			
		||||
											{:else}{$_("amount-per-kilometer")}{/if}</label
 | 
			
		||||
										>
 | 
			
		||||
										<div class="mt-1 flex rounded-md shadow-sm">
 | 
			
		||||
											<input
 | 
			
		||||
@@ -244,11 +320,11 @@
 | 
			
		||||
												type="number"
 | 
			
		||||
												step="0.01"
 | 
			
		||||
												name="donation_amount_eur"
 | 
			
		||||
                      class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-neutral-800 p-2"
 | 
			
		||||
												class="focus:ring-indigo-500 focus:border-indigo-500 flex-1 block w-full rounded-none rounded-l-md sm:text-sm border-neutral-300 border bg-neutral-50 text-neutral-800 p-2"
 | 
			
		||||
												placeholder="2.00"
 | 
			
		||||
											/>
 | 
			
		||||
											<span
 | 
			
		||||
                      class="inline-flex items-center px-3 rounded-r-md border border-gray-300 bg-gray-50 text-gray-500 text-sm"
 | 
			
		||||
												class="inline-flex items-center px-3 rounded-r-md border border-neutral-300 bg-neutral-50 text-neutral-500 text-sm"
 | 
			
		||||
												>€</span
 | 
			
		||||
											>
 | 
			
		||||
										</div>
 | 
			
		||||
@@ -260,36 +336,29 @@
 | 
			
		||||
											</span>
 | 
			
		||||
										{/if}
 | 
			
		||||
									</div>
 | 
			
		||||
                {#if is_fixed}
 | 
			
		||||
                  <div class="col-span-6">
 | 
			
		||||
								{/if}
 | 
			
		||||
								{#if type === "fixed" || type === "anonymous"}
 | 
			
		||||
									<div class="flex">
 | 
			
		||||
										<input
 | 
			
		||||
											bind:checked={is_paid}
 | 
			
		||||
											type="checkbox"
 | 
			
		||||
											class="shrink-0 mt-0.5 border-neutral-200 rounded-sm text-blue-600 focus:ring-blue-500 checked:border-blue-500 disabled:opacity-50 disabled:pointer-events-none"
 | 
			
		||||
											id="hs-default-checkbox"
 | 
			
		||||
										/>
 | 
			
		||||
										<label
 | 
			
		||||
                      for="paid"
 | 
			
		||||
                      class="block text-sm font-medium text-gray-700"
 | 
			
		||||
											for="hs-default-checkbox"
 | 
			
		||||
											class="text-base text-neutral-900 ms-2 font-medium"
 | 
			
		||||
											>{$_("already-paid")}</label
 | 
			
		||||
										>
 | 
			
		||||
                    <p class="text-gray-500">
 | 
			
		||||
                      <input
 | 
			
		||||
                        id="paid"
 | 
			
		||||
                        bind:checked={is_paid}
 | 
			
		||||
                        name="paid"
 | 
			
		||||
                        type="checkbox"
 | 
			
		||||
                        class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      />
 | 
			
		||||
                      <span class="align-text-bottom">
 | 
			
		||||
                        {#if is_paid}
 | 
			
		||||
                          {$_("paid")}
 | 
			
		||||
                        {:else}
 | 
			
		||||
                          {$_("open")}
 | 
			
		||||
                        {/if}
 | 
			
		||||
                      </span>
 | 
			
		||||
                    </p>
 | 
			
		||||
									</div>
 | 
			
		||||
								{/if}
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
        <div class="bg-gray-50 px-4 lg:py-3 sm:px-6 grid gap-2 lg:rounded-b-xl pt-3 pb-10">
 | 
			
		||||
				<div
 | 
			
		||||
					class="bg-neutral-50 px-4 lg:py-3 sm:px-6 grid gap-2 lg:rounded-b-xl pt-3 pb-10"
 | 
			
		||||
				>
 | 
			
		||||
					<button
 | 
			
		||||
						disabled={!createbtnenabled}
 | 
			
		||||
						class:opacity-50={!createbtnenabled}
 | 
			
		||||
@@ -304,7 +373,7 @@
 | 
			
		||||
							modal_open = false;
 | 
			
		||||
						}}
 | 
			
		||||
						type="button"
 | 
			
		||||
            class="w-full justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 hidden lg:block"
 | 
			
		||||
						class="w-full justify-center rounded-md border border-neutral-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-neutral-900 hover:bg-neutral-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 hidden lg:block"
 | 
			
		||||
					>
 | 
			
		||||
						{$_("cancel")}
 | 
			
		||||
					</button>
 | 
			
		||||
@@ -313,28 +382,3 @@
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
{/if}
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
  .toggle:before {
 | 
			
		||||
    content: "";
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    width: 1.25rem;
 | 
			
		||||
    height: 1.25rem;
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    transform: scale(1.1);
 | 
			
		||||
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.2);
 | 
			
		||||
    background-color: white;
 | 
			
		||||
    transition: 0.2s ease-in-out;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .toggle:checked {
 | 
			
		||||
    /* @apply: bg-indigo-400; */
 | 
			
		||||
    background-color: #7f9cf5;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .toggle:checked:before {
 | 
			
		||||
    left: 1.25rem;
 | 
			
		||||
  }
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -107,7 +107,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,10 @@
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
{#if !donor || donor.firstname == 0}
 | 
			
		||||
  {$_("donor-has-no-associated-donations")}
 | 
			
		||||
	<span
 | 
			
		||||
		class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800 border border-current"
 | 
			
		||||
		>{$_('anonymer_sponsor')}</span
 | 
			
		||||
	>
 | 
			
		||||
{:else}
 | 
			
		||||
	<div class="flex items-center">
 | 
			
		||||
		<a
 | 
			
		||||
 
 | 
			
		||||
@@ -155,7 +155,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -309,7 +309,7 @@
 | 
			
		||||
                      id="comments"
 | 
			
		||||
                      name="comments"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -314,7 +314,7 @@
 | 
			
		||||
					id="comments"
 | 
			
		||||
					name="comments"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="ml-3">
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								width="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -389,6 +389,12 @@
 | 
			
		||||
				:paused={!scannerActive}
 | 
			
		||||
				on:detect={(e) => {
 | 
			
		||||
					if (scannerActive) {
 | 
			
		||||
						if (`${e.detail.decodedText}`.length === 13) {
 | 
			
		||||
							e.detail.decodedText = e.detail.decodedText.substring(
 | 
			
		||||
								0,
 | 
			
		||||
								e.detail.decodedText.length - 1
 | 
			
		||||
							);
 | 
			
		||||
						}
 | 
			
		||||
						scannerActive = false;
 | 
			
		||||
						console.log({ type: "DETECT", code: e.detail.decodedText });
 | 
			
		||||
						if (runnerinfo.id === 0) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,103 +0,0 @@
 | 
			
		||||
<script>
 | 
			
		||||
  let open = false;
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<div class="md:flex flex-col md:flex-row h-screen w-full">
 | 
			
		||||
  <div
 | 
			
		||||
    class="flex flex-col w-full md:w-64 text-gray-700 bg-white dark-mode:text-gray-200 dark-mode:bg-gray-800 flex-shrink-0"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      class="flex-shrink-0 px-8 py-4 flex flex-row items-center justify-between"
 | 
			
		||||
    >
 | 
			
		||||
      <a
 | 
			
		||||
        href="/#/test"
 | 
			
		||||
        class="text-lg font-semibold tracking-widest text-gray-900 uppercase rounded-lg dark-mode:text-white focus:outline-none focus:shadow-outline"
 | 
			
		||||
        >Sidebar</a
 | 
			
		||||
      >
 | 
			
		||||
      <button
 | 
			
		||||
        class="rounded-lg md:hidden focus:outline-none focus:shadow-outline"
 | 
			
		||||
      >
 | 
			
		||||
        <svg fill="currentColor" viewBox="0 0 20 20" class="w-6 h-6">
 | 
			
		||||
          {#if open}
 | 
			
		||||
            <path
 | 
			
		||||
              fill-rule="evenodd"
 | 
			
		||||
              d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
 | 
			
		||||
              clip-rule="evenodd"
 | 
			
		||||
            />
 | 
			
		||||
          {/if}
 | 
			
		||||
          {#if !open}
 | 
			
		||||
            <path
 | 
			
		||||
              fill-rule="evenodd"
 | 
			
		||||
              d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM9 15a1 1 0 011-1h6a1 1 0 110 2h-6a1 1 0 01-1-1z"
 | 
			
		||||
              clip-rule="evenodd"
 | 
			
		||||
            />
 | 
			
		||||
          {/if}
 | 
			
		||||
        </svg>
 | 
			
		||||
      </button>
 | 
			
		||||
    </div>
 | 
			
		||||
    <nav
 | 
			
		||||
      :class:block={open}
 | 
			
		||||
      :class:hidden={!open}
 | 
			
		||||
      class="flex-grow md:block px-4 pb-4 md:pb-0 md:overflow-y-auto"
 | 
			
		||||
    >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-gray-200 rounded-lg dark-mode:bg-gray-700 dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">Blog</a
 | 
			
		||||
      >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">Portfolio</a
 | 
			
		||||
      >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">About</a
 | 
			
		||||
      >
 | 
			
		||||
      <a
 | 
			
		||||
        class="block px-4 py-2 mt-2 text-sm font-semibold text-gray-900 bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        href="#">Contact</a
 | 
			
		||||
      >
 | 
			
		||||
      <div class="relative">
 | 
			
		||||
        <button
 | 
			
		||||
          on:click={() => {
 | 
			
		||||
            open = !open;
 | 
			
		||||
          }}
 | 
			
		||||
          class="flex flex-row items-center w-full px-4 py-2 mt-2 text-sm font-semibold text-left bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:focus:bg-gray-600 dark-mode:hover:bg-gray-600 md:block hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
        >
 | 
			
		||||
          <span>Dropdown</span>
 | 
			
		||||
          <svg
 | 
			
		||||
            fill="currentColor"
 | 
			
		||||
            viewBox="0 0 20 20"
 | 
			
		||||
            class="inline w-4 h-4 mt-1 ml-1 transition-transform duration-200 transform md:-mt-1"
 | 
			
		||||
            ><path
 | 
			
		||||
              fill-rule="evenodd"
 | 
			
		||||
              d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
 | 
			
		||||
              clip-rule="evenodd"
 | 
			
		||||
            /></svg
 | 
			
		||||
          >
 | 
			
		||||
        </button>
 | 
			
		||||
        <div
 | 
			
		||||
          class:block={open}
 | 
			
		||||
          class:hidden={!open}
 | 
			
		||||
          class="absolute right-0 w-full mt-2 origin-top-right rounded-md shadow-lg"
 | 
			
		||||
        >
 | 
			
		||||
          <div
 | 
			
		||||
            class="px-2 py-2 bg-white rounded-md shadow dark-mode:bg-gray-800"
 | 
			
		||||
          >
 | 
			
		||||
            <a
 | 
			
		||||
              class="block px-4 py-2 mt-2 text-sm font-semibold bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 md:mt-0 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
              href="#">Link #1</a
 | 
			
		||||
            >
 | 
			
		||||
            <a
 | 
			
		||||
              class="block px-4 py-2 mt-2 text-sm font-semibold bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 md:mt-0 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
              href="#">Link #2</a
 | 
			
		||||
            >
 | 
			
		||||
            <a
 | 
			
		||||
              class="block px-4 py-2 mt-2 text-sm font-semibold bg-transparent rounded-lg dark-mode:bg-transparent dark-mode:hover:bg-gray-600 dark-mode:focus:bg-gray-600 dark-mode:focus:text-white dark-mode:hover:text-white dark-mode:text-gray-200 md:mt-0 hover:text-gray-900 focus:text-gray-900 hover:bg-gray-200 focus:bg-gray-200 focus:outline-none focus:shadow-outline"
 | 
			
		||||
              href="#">Link #3</a
 | 
			
		||||
            >
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </nav>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -92,7 +92,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 640 512"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -113,7 +113,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -170,7 +170,7 @@
 | 
			
		||||
                      id="comments"
 | 
			
		||||
                      name="comments"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -246,7 +246,7 @@
 | 
			
		||||
						id="toggle_selfservice_feature"
 | 
			
		||||
						name="toggle_selfservice_feature"
 | 
			
		||||
						type="checkbox"
 | 
			
		||||
						class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
						class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					/>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="ml-3 text-sm">
 | 
			
		||||
@@ -303,7 +303,7 @@
 | 
			
		||||
								id="toggle_address_checkbox"
 | 
			
		||||
								name="toggle_address_checkbox"
 | 
			
		||||
								type="checkbox"
 | 
			
		||||
								class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
								class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
							/>
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="ml-3 text-sm">
 | 
			
		||||
 
 | 
			
		||||
@@ -159,7 +159,7 @@
 | 
			
		||||
											<input
 | 
			
		||||
												bind:checked={o.is_selected}
 | 
			
		||||
												type="checkbox"
 | 
			
		||||
												class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
												class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
											/>
 | 
			
		||||
										</td>
 | 
			
		||||
										<td class="px-6 py-4 whitespace-nowrap">
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
							<svg
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -150,7 +150,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -225,7 +225,7 @@
 | 
			
		||||
							<svg
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -99,7 +99,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@
 | 
			
		||||
              <svg
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -103,7 +103,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
@@ -178,7 +178,7 @@
 | 
			
		||||
                      name="enabled"
 | 
			
		||||
                      type="checkbox"
 | 
			
		||||
                      checked={enabled}
 | 
			
		||||
                      class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                      class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
                    />
 | 
			
		||||
                    {$_("this-scanstation-is")}
 | 
			
		||||
                    {#if enabled}{$_("enabled")}{:else}{$_("disabled")}{/if}
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -86,7 +86,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
								viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -178,7 +178,7 @@
 | 
			
		||||
					name="enabled"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					checked={editable.enabled}
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
				{$_("this-scanstation-is")}
 | 
			
		||||
				{#if editable.enabled}{$_("enabled")}{:else}{$_("disabled")}{/if}
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
                viewBox="0 0 24 24"
 | 
			
		||||
 
 | 
			
		||||
@@ -100,7 +100,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
							class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
						>
 | 
			
		||||
							<svg
 | 
			
		||||
								class="h-6 w-6 text-blue-600"
 | 
			
		||||
								class="size-6 text-blue-600"
 | 
			
		||||
								fill="currentColor"
 | 
			
		||||
								width="24"
 | 
			
		||||
								height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -144,7 +144,7 @@
 | 
			
		||||
											<input
 | 
			
		||||
												bind:checked={t.is_selected}
 | 
			
		||||
												type="checkbox"
 | 
			
		||||
												class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
												class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
											/>
 | 
			
		||||
										</td>
 | 
			
		||||
										<td class="px-6 py-4 whitespace-nowrap">
 | 
			
		||||
 
 | 
			
		||||
@@ -98,7 +98,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="none"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,7 @@
 | 
			
		||||
              class="flex-shrink-0 flex items-center justify-center size-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10"
 | 
			
		||||
            >
 | 
			
		||||
              <svg
 | 
			
		||||
                class="h-6 w-6 text-blue-600"
 | 
			
		||||
                class="size-6 text-blue-600"
 | 
			
		||||
                fill="currentColor"
 | 
			
		||||
                width="24"
 | 
			
		||||
                height="24"
 | 
			
		||||
 
 | 
			
		||||
@@ -192,7 +192,7 @@
 | 
			
		||||
					name="enabled"
 | 
			
		||||
					type="checkbox"
 | 
			
		||||
					checked={editable_userdata.enabled}
 | 
			
		||||
					class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
					class="focus:ring-indigo-500 size-4 text-indigo-600 border-gray-300 rounded"
 | 
			
		||||
				/>
 | 
			
		||||
				{$_("set-the-user-active-inactive")}
 | 
			
		||||
			</p>
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,8 @@
 | 
			
		||||
    "already-paid": "Bereits bezahlt",
 | 
			
		||||
    "amount": "Anzahl",
 | 
			
		||||
    "amount-per-kilometer": "Betrag pro Kilometer",
 | 
			
		||||
    "anonyme_spende": "Anonyme Spende",
 | 
			
		||||
    "anonymer_sponsor": "👻 Anonymer Sponsor",
 | 
			
		||||
    "apartment-suite-etc": "Apartment, Wohnung, etc.",
 | 
			
		||||
    "api-endpoint": "API-Endpunkt",
 | 
			
		||||
    "application_name": "Lauf für Kaya! - Admin",
 | 
			
		||||
@@ -224,6 +226,7 @@
 | 
			
		||||
    "error_on_login": "😢Fehler beim Login",
 | 
			
		||||
    "everything-concerning-your-profile": "Alles zu deinem Profil",
 | 
			
		||||
    "faq": "FAQ",
 | 
			
		||||
    "festbetrag": "Festbetrag",
 | 
			
		||||
    "filename_sponsoringquittungsliste": "SponsoringQuittungsListe",
 | 
			
		||||
    "filter-by-organization-team": "Filtern nach Organisation / Team",
 | 
			
		||||
    "first-name": "Vorname",
 | 
			
		||||
@@ -418,6 +421,7 @@
 | 
			
		||||
    "settings": "Einstellungen",
 | 
			
		||||
    "settings-for-your-profile": "Die Einstellungen deines Accounts",
 | 
			
		||||
    "something-about-the-group": "Infos zur Gruppe",
 | 
			
		||||
    "spende_pro_km": "Spende pro km",
 | 
			
		||||
    "sponsoring-quittungs-liste_herunterladen": "Sponsoring-Quittungs-Liste herunterladen",
 | 
			
		||||
    "sponsorings": "Sponsoringerklaerungen",
 | 
			
		||||
    "station-deleted": "Scannerstation gelöscht",
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,8 @@
 | 
			
		||||
    "already-paid": "Already paid",
 | 
			
		||||
    "amount": "Amount",
 | 
			
		||||
    "amount-per-kilometer": "Amount per kilometer",
 | 
			
		||||
    "anonyme_spende": "Anonymous Donation",
 | 
			
		||||
    "anonymer_sponsor": "👻 Anonymous Donor",
 | 
			
		||||
    "apartment-suite-etc": "Apartment, suite, etc.",
 | 
			
		||||
    "api-endpoint": "API-Endpoint",
 | 
			
		||||
    "application_name": "Lauf für Kaya! - Admin",
 | 
			
		||||
@@ -224,6 +226,7 @@
 | 
			
		||||
    "error_on_login": "Error on login",
 | 
			
		||||
    "everything-concerning-your-profile": "Everything concerning your profile",
 | 
			
		||||
    "faq": "FAQ",
 | 
			
		||||
    "festbetrag": "Fixed Donation",
 | 
			
		||||
    "filename_sponsoringquittungsliste": "DonorReceiptList",
 | 
			
		||||
    "filter-by-organization-team": "Filter by Organization/ Team",
 | 
			
		||||
    "first-name": "First name",
 | 
			
		||||
@@ -418,6 +421,7 @@
 | 
			
		||||
    "settings": "Settings",
 | 
			
		||||
    "settings-for-your-profile": "Settings for your profile",
 | 
			
		||||
    "something-about-the-group": "Something about the group...",
 | 
			
		||||
    "spende_pro_km": "donation per km",
 | 
			
		||||
    "sponsoring-quittungs-liste_herunterladen": "Download donor receipt list",
 | 
			
		||||
    "sponsorings": "Sponsorings",
 | 
			
		||||
    "station-deleted": "station deleted",
 | 
			
		||||
 
 | 
			
		||||
@@ -7,3 +7,27 @@
 | 
			
		||||
* {
 | 
			
		||||
	font-family: Athiti;
 | 
			
		||||
}
 | 
			
		||||
.html5-qrcode-element {
 | 
			
		||||
	@apply block;
 | 
			
		||||
	@apply w-full;
 | 
			
		||||
	@apply p-4;
 | 
			
		||||
}
 | 
			
		||||
#qr-scanner__dashboard_section_csr {
 | 
			
		||||
	/* padding-right: 20px; */
 | 
			
		||||
	padding: 1rem;
 | 
			
		||||
}
 | 
			
		||||
#html5-qrcode-select-camera {
 | 
			
		||||
	@apply px-2 py-2 inline-flex text-lg leading-5 font-semibold rounded-md border border-current bg-neutral-100 text-neutral-800 mb-2;
 | 
			
		||||
}
 | 
			
		||||
#html5-qrcode-button-camera-start {
 | 
			
		||||
	@apply px-2 inline-flex text-lg leading-5 font-semibold rounded-md border border-current bg-green-100 text-green-800 mb-2 cursor-pointer;
 | 
			
		||||
}
 | 
			
		||||
#html5-qrcode-button-camera-stop {
 | 
			
		||||
	@apply px-2 inline-flex text-lg leading-5 font-semibold rounded-md border border-current bg-red-100 text-red-800 mb-2 cursor-pointer;
 | 
			
		||||
}
 | 
			
		||||
.donation_inactive_tab {
 | 
			
		||||
	@apply min-w-0 flex-1 bg-white first:border-s-0 border-s border-b-2 border-neutral-200 py-4 px-4 text-neutral-800 hover:text-neutral-700 text-sm font-medium text-center overflow-hidden hover:bg-neutral-200 cursor-pointer focus:z-10 focus:outline-hidden focus:bg-neutral-200 disabled:opacity-50 disabled:pointer-events-none;
 | 
			
		||||
}
 | 
			
		||||
.donation_active_tab {
 | 
			
		||||
	@apply min-w-0 flex-1 bg-blue-400 text-white first:border-s-0 border-s border-b-2 border-neutral-200 py-4 px-4 text-sm font-medium text-center overflow-hidden cursor-pointer focus:outline-hidden;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user