ngx-gp-components-dev-test 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import { NgClass, NgTemplateOutlet, DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { input, output, effect, computed, ViewChild, ViewEncapsulation, Component, Directive, ContentChild, inject, signal, DestroyRef, contentChild, TemplateRef, InjectionToken, Inject, ChangeDetectorRef, ElementRef } from '@angular/core';
4
4
  import flatpickr from 'flatpickr';
5
- import { AppIdChecker } from 'ngx-gp-api';
5
+ import { AppIdChecker } from 'ngx-gp-api-dev-test';
6
6
  import { defer, EMPTY } from 'rxjs';
7
7
  import { switchMap, catchError, finalize } from 'rxjs/operators';
8
8
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-gp-components-dev-test.mjs","sources":["../../../projects/ngx-gp-components/src/lib/components/gp-date-picker.component/gp-date-picker.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-date-picker.component/gp-date-picker.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-button.component/gp-button.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-button.component/gp-button.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-table.component/gp-table.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-table.component/gp-table.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-text.component/gp-text.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-text.component/gp-text.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-widget-shell.component/gp-widget-error.directive.ts","../../../projects/ngx-gp-components/src/lib/components/gp-widget-shell.component/gp-widget-shell.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-widget-shell.component/gp-widget-shell.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-base-widget.component/gp-base-widget.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-base-widget.component/gp-base-widget.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-input.component/gp-input.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-input.component/gp-input.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-link.component/gp-link.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-link.component/gp-link.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-headline.component/gp-headline.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-headline.component/gp-headline.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-accordion.component/gp-accordion.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-accordion.component/gp-accordion.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-select.component/gp-select.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-select.component/gp-select.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-card.component/gp-card.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-card.component/gp-card.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-icon.component/gp-icon.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-icon.component/gp-icon.component.html","../../../projects/ngx-gp-components/src/public-api.ts","../../../projects/ngx-gp-components/src/ngx-gp-components-dev-test.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n input,\n output,\n} from '@angular/core';\nimport flatpickr from 'flatpickr';\nimport type { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport type { Options as FlatpickrOptions } from 'flatpickr/dist/types/options';\n\n@Component({\n selector: 'gp-date-picker',\n imports: [NgClass],\n templateUrl: './gp-date-picker.component.html',\n styleUrl: './gp-date-picker.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class GpDatePickerComponent implements AfterViewInit, OnDestroy {\n private static nextId = 0;\n private readonly generatedId = `gp-date-picker-${GpDatePickerComponent.nextId++}`;\n protected readonly inputId = this.generatedId;\n\n @ViewChild('input', { static: true })\n private inputRef!: ElementRef<HTMLInputElement>;\n\n private flatpickrInstance: FlatpickrInstance | null = null;\n private lastEmittedValue: string | null = null;\n\n label = input('');\n value = input<string | null>(null);\n disabled = input(false);\n customClasses = input('');\n\n onChange = output<string>();\n\n constructor() {\n effect(() => {\n const nextValue = this.value() ?? '';\n if (!this.flatpickrInstance) {\n return;\n }\n\n if (nextValue === this.flatpickrInstance.input.value) {\n return;\n }\n\n this.flatpickrInstance.setDate(nextValue, false);\n });\n\n effect(() => {\n const isDisabled = this.disabled();\n if (!this.flatpickrInstance) {\n return;\n }\n\n const input = this.inputRef?.nativeElement;\n if (input) {\n input.disabled = isDisabled;\n }\n\n if (this.flatpickrInstance.altInput) {\n this.flatpickrInstance.altInput.disabled = isDisabled;\n }\n\n this.flatpickrInstance.set('clickOpens', !isDisabled);\n if (isDisabled) {\n this.flatpickrInstance.close();\n }\n });\n\n effect(() => {\n this.syncAltInput();\n });\n }\n\n protected mergedClasses = computed(() => {\n if (this.customClasses() === '') {\n return 'gp-date-picker-base';\n }\n return this.customClasses();\n });\n\n protected openPicker(): void {\n if (this.disabled()) {\n return;\n }\n\n this.flatpickrInstance?.open();\n }\n\n handleDateChange(nextValue: string): void {\n if (this.disabled()) {\n return;\n }\n\n if (nextValue === (this.value() ?? '')) {\n return;\n }\n\n if (nextValue === this.lastEmittedValue) {\n return;\n }\n\n this.lastEmittedValue = nextValue;\n this.onChange.emit(nextValue);\n }\n\n ngAfterViewInit(): void {\n const options: FlatpickrOptions = {\n allowInput: true,\n clickOpens: !this.disabled(),\n dateFormat: 'Y-m-d',\n altInput: true,\n altFormat: this.buildLocaleDisplayFormat(),\n altInputClass: this.buildInputClassName(),\n onChange: (_selectedDates, dateStr) => {\n this.handleDateChange(dateStr);\n },\n };\n\n this.flatpickrInstance = flatpickr(this.inputRef.nativeElement, options);\n\n const initialValue = this.value();\n if (initialValue) {\n this.flatpickrInstance.setDate(initialValue, false);\n }\n\n this.inputRef.nativeElement.disabled = this.disabled();\n this.syncAltInput();\n }\n\n ngOnDestroy(): void {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = null;\n }\n\n private buildLocaleDisplayFormat(): string {\n const formatter = new Intl.DateTimeFormat(undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n });\n const parts = formatter.formatToParts(new Date(2025, 0, 2));\n return parts\n .map((part) => {\n switch (part.type) {\n case 'year':\n return 'Y';\n case 'month':\n return 'm';\n case 'day':\n return 'd';\n default:\n return part.value;\n }\n })\n .join('');\n }\n\n private buildInputClassName(): string {\n const classes = this.mergedClasses();\n return classes ? `flatpickr-input ${classes}` : 'flatpickr-input';\n }\n\n private syncAltInput(): void {\n if (!this.flatpickrInstance?.altInput) {\n return;\n }\n\n const altInput = this.flatpickrInstance.altInput;\n altInput.className = this.buildInputClassName();\n altInput.id = this.inputId;\n this.inputRef.nativeElement.id = `${this.inputId}-hidden`;\n }\n}\n","<div class=\"gp-date-picker-host\">\n @if (label()) {\n <label [for]=\"inputId\">{{ label() }}</label>\n }\n <div class=\"gp-date-picker-input\">\n <input\n #input\n type=\"text\"\n [id]=\"inputId\"\n [disabled]=\"disabled()\"\n [ngClass]=\"customClasses()\"\n [class]=\"mergedClasses()\"\n />\n <button\n type=\"button\"\n class=\"gp-date-picker-toggle\"\n aria-label=\"Open calendar\"\n [disabled]=\"disabled()\"\n (click)=\"openPicker()\"\n >\n <svg width=\"40\" height=\"40\" viewBox=\"11 9 18 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M27.5 11.1875H25.0625V10.25C25.0625 10.1008 25.0032 9.95774 24.8977 9.85225C24.7923 9.74676 24.6492 9.6875 24.5 9.6875C24.3508 9.6875 24.2077 9.74676 24.1023 9.85225C23.9968 9.95774 23.9375 10.1008 23.9375 10.25V11.1875H16.0625V10.25C16.0625 10.1008 16.0032 9.95774 15.8977 9.85225C15.7923 9.74676 15.6492 9.6875 15.5 9.6875C15.3508 9.6875 15.2077 9.74676 15.1023 9.85225C14.9968 9.95774 14.9375 10.1008 14.9375 10.25V11.1875H12.5C12.1519 11.1875 11.8181 11.3258 11.5719 11.5719C11.3258 11.8181 11.1875 12.1519 11.1875 12.5V27.5C11.1875 27.8481 11.3258 28.1819 11.5719 28.4281C11.8181 28.6742 12.1519 28.8125 12.5 28.8125H27.5C27.8481 28.8125 28.1819 28.6742 28.4281 28.4281C28.6742 28.1819 28.8125 27.8481 28.8125 27.5V12.5C28.8125 12.1519 28.6742 11.8181 28.4281 11.5719C28.1819 11.3258 27.8481 11.1875 27.5 11.1875ZM12.5 12.3125H14.9375V13.25C14.9375 13.3992 14.9968 13.5423 15.1023 13.6477C15.2077 13.7532 15.3508 13.8125 15.5 13.8125C15.6492 13.8125 15.7923 13.7532 15.8977 13.6477C16.0032 13.5423 16.0625 13.3992 16.0625 13.25V12.3125H23.9375V13.25C23.9375 13.3992 23.9968 13.5423 24.1023 13.6477C24.2077 13.7532 24.3508 13.8125 24.5 13.8125C24.6492 13.8125 24.7923 13.7532 24.8977 13.6477C25.0032 13.5423 25.0625 13.3992 25.0625 13.25V12.3125H27.5C27.5497 12.3125 27.5974 12.3323 27.6326 12.3674C27.6677 12.4026 27.6875 12.4503 27.6875 12.5V15.6875H12.3125V12.5C12.3125 12.4503 12.3323 12.4026 12.3674 12.3674C12.4026 12.3323 12.4503 12.3125 12.5 12.3125ZM27.5 27.6875H12.5C12.4503 27.6875 12.4026 27.6677 12.3674 27.6326C12.3323 27.5974 12.3125 27.5497 12.3125 27.5V16.8125H27.6875V27.5C27.6875 27.5497 27.6677 27.5974 27.6326 27.6326C27.5974 27.6677 27.5497 27.6875 27.5 27.6875ZM18.3125 19.25V25.25C18.3125 25.3992 18.2532 25.5423 18.1477 25.6477C18.0423 25.7532 17.8992 25.8125 17.75 25.8125C17.6008 25.8125 17.4577 25.7532 17.3523 25.6477C17.2468 25.5423 17.1875 25.3992 17.1875 25.25V20.1603L16.5013 20.5034C16.4351 20.5364 16.3632 20.5561 16.2895 20.5613C16.2158 20.5664 16.1418 20.5571 16.0717 20.5336C16.0016 20.5102 15.9368 20.4732 15.881 20.4248C15.8253 20.3763 15.7796 20.3174 15.7466 20.2512C15.7136 20.1851 15.6939 20.1132 15.6887 20.0395C15.6836 19.9658 15.6929 19.8918 15.7164 19.8217C15.7398 19.7516 15.7768 19.6868 15.8252 19.631C15.8737 19.5753 15.9326 19.5296 15.9987 19.4966L17.4987 18.7466C17.5845 18.7037 17.6798 18.6836 17.7756 18.6879C17.8714 18.6923 17.9644 18.721 18.0459 18.7715C18.1275 18.8219 18.1948 18.8923 18.2414 18.9761C18.2881 19.0598 18.3125 19.1541 18.3125 19.25ZM23.8972 21.9922L21.875 24.6875H23.75C23.8992 24.6875 24.0423 24.7468 24.1477 24.8523C24.2532 24.9577 24.3125 25.1008 24.3125 25.25C24.3125 25.3992 24.2532 25.5423 24.1477 25.6477C24.0423 25.7532 23.8992 25.8125 23.75 25.8125H20.75C20.6455 25.8125 20.5431 25.7834 20.4543 25.7285C20.3654 25.6736 20.2936 25.595 20.2469 25.5016C20.2002 25.4081 20.1804 25.3035 20.1898 25.1995C20.1992 25.0954 20.2373 24.9961 20.3 24.9125L23 21.3125C23.0777 21.2103 23.1337 21.0933 23.1643 20.9686C23.195 20.844 23.1997 20.7143 23.1782 20.5878C23.1568 20.4612 23.1095 20.3404 23.0394 20.2329C22.9693 20.1253 22.8779 20.0333 22.7708 19.9625C22.6636 19.8918 22.5431 19.8437 22.4167 19.8215C22.2903 19.7992 22.1606 19.8031 22.0358 19.833C21.9109 19.8629 21.7935 19.9181 21.6909 19.9952C21.5882 20.0723 21.5025 20.1697 21.4391 20.2812C21.4055 20.3512 21.3579 20.4134 21.2991 20.4641C21.2404 20.5147 21.1718 20.5527 21.0976 20.5755C21.0235 20.5984 20.9455 20.6056 20.8684 20.5969C20.7913 20.5881 20.7169 20.5635 20.6498 20.5246C20.5827 20.4857 20.5243 20.4334 20.4784 20.3708C20.4325 20.3083 20.4001 20.237 20.3831 20.1613C20.3661 20.0856 20.3649 20.0072 20.3796 19.9311C20.3944 19.8549 20.4247 19.7826 20.4688 19.7188C20.6101 19.4761 20.7996 19.2648 21.0255 19.0979C21.2514 18.931 21.509 18.8121 21.7825 18.7483C22.056 18.6845 22.3397 18.6772 22.6161 18.7269C22.8925 18.7767 23.1559 18.8823 23.39 19.0374C23.6242 19.1926 23.8242 19.3939 23.9777 19.629C24.1313 19.8641 24.2353 20.1282 24.2832 20.4049C24.3311 20.6817 24.322 20.9653 24.2565 21.2384C24.1909 21.5115 24.0702 21.7683 23.9019 21.9931L23.8972 21.9922Z\" fill=\"#363737\" style=\"fill:#363737;fill:color(display-p3 0.2118 0.2157 0.2157);fill-opacity:1;\"/>\n </svg>\n </button>\n </div>\n</div>\n","import {Component, computed, input, output} from '@angular/core';\nimport {NgClass} from '@angular/common';\n\n@Component({\n selector: 'gp-button',\n imports: [\n NgClass\n ],\n templateUrl: './gp-button.component.html',\n styleUrl: './gp-button.component.scss',\n standalone: true\n})\nexport class GpButtonComponent {\n label = input.required<string>();\n disabled = input(false);\n customClasses = input('');\n submitAction = input(false);\n formId = input('');\n\n onClick = output<MouseEvent>();\n\n protected mergedClasses = computed(() => {\n if (this.customClasses() === '') {\n return `gp-button-base`;\n }\n return this.customClasses();\n });\n}\n","<button\n type=\"button\"\n [disabled]=disabled()\n (click)=\"onClick.emit($event)\"\n [attr.data-gp-submit]=\"submitAction() ? 'true' : null\"\n [attr.data-gp-form]=\"formId() || null\"\n [ngClass]=customClasses()\n [class]=\"mergedClasses()\">\n {{ label() }}\n</button>\n","import { Component, input } from '@angular/core';\nimport { GpButtonComponent } from '../gp-button.component/gp-button.component';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'gp-table',\n imports: [\n GpButtonComponent,\n NgClass\n ],\n templateUrl: './gp-table.component.html',\n styleUrl: './gp-table.component.scss',\n standalone: true\n})\nexport class GpTableComponent {\n tableData = input<TableData | null>(null);\n actions = input<RowAction[]>();\n disabledPredicate = input<(row: Record<string, unknown>, action: RowAction) => boolean>(() => false);\n visibilityPredicate = input<(row: Record<string, unknown>, action: RowAction) => boolean>(() => true);\n emptyMessage = input('');\n\n get tableHeaders() {\n let headers = this.tableData()?.headers;\n return headers ? Object.values(headers) : [];\n }\n\n get tableContent(): Record<string, unknown>[] {\n let data = this.tableData()?.data;\n return data ? data : [];\n }\n\n getTableKeys() {\n let headers = this.tableData()?.headers;\n return headers ? Object.keys(headers) : [];\n }\n\n getRow(rows: Record<string, unknown>[], index: number): unknown[] {\n const rowAtIndex: Record<string, unknown> = rows[index] ?? {};\n return this.getTableKeys().map((header) => rowAtIndex[header]);\n }\n\n isShowEmptyMessage(): boolean {\n const data = this.tableData()?.data;\n return !Array.isArray(data) || data.length === 0;\n }\n\n shouldDisplayActions() {\n return this.actions() && this.actions()!.length > 0;\n }\n\n isButtonDisabled(row: Record<string, unknown>, action: RowAction) {\n return this.disabledPredicate()(row, action);\n }\n\n isButtonVisible(row: Record<string, unknown>, action: RowAction) {\n return this.visibilityPredicate()(row, action);\n }\n}\n\ntype TableData = {\n headers: Record<string, unknown>;\n data: Record<string, unknown>[];\n};\n\ntype RowAction = {\n label: string;\n onClick: (row: Record<string, unknown>) => void;\n};\n","@if (isShowEmptyMessage()) {\n <span>{{ emptyMessage() }}</span>\n} @else {\n <table class=\"table-auto w-full border border-gray-400\">\n <thead>\n <tr>\n @for (header of tableHeaders; track header) {\n <th class=\"border border-gray-300 p-4 text-left\">{{ header }}</th>\n }\n @if (shouldDisplayActions()) {\n <th class=\"border border-gray-300 p-4 text-left w-0\"></th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of tableContent; track row) {\n <tr>\n @for (cell of getRow(tableContent, $index); track cell) {\n <td class=\"border border-gray-300 p-4 text-left\">{{ cell }}</td>\n }\n @if (shouldDisplayActions()) {\n <td class=\"border border-gray-300 p-4 text-left\">\n <div class=\"flex\">\n @for (action of this.actions(); track action.label) {\n @if (isButtonVisible(row, action)) {\n <gp-button\n [ngClass]=\"$last ? '' : 'mr-2'\"\n [label]=\"action.label\"\n [disabled]=\"isButtonDisabled(row, action)\"\n (onClick)=\"action.onClick(row)\"\n />\n }\n }\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n}\n","import { Component, computed, input } from '@angular/core';\n\ntype GpTextTag = 'p' | 'span';\ntype GpTextSize = 'text-xs' | 'text-sm' | 'text-base' | 'text-lg';\ntype GpTextWeight = 'regular' | 'semibold' | 'extrabold';\n\nconst DEFAULT_TAG: GpTextTag = 'p';\nconst DEFAULT_SIZE: GpTextSize = 'text-sm';\nconst DEFAULT_WEIGHT: GpTextWeight = 'regular';\n\nconst coerceTag = (value: string | null | undefined): GpTextTag => {\n if (value === 'span' || value === 'p') {\n return value;\n }\n return DEFAULT_TAG;\n};\n\nconst coerceSize = (value: string | null | undefined): GpTextSize => {\n if (value === 'text-xs' || value === 'text-sm' || value === 'text-base' || value === 'text-lg') {\n return value;\n }\n return DEFAULT_SIZE;\n};\n\nconst coerceWeight = (value: string | null | undefined): GpTextWeight => {\n if (value === 'regular' || value === 'semibold' || value === 'extrabold') {\n return value;\n }\n return DEFAULT_WEIGHT;\n};\n\n@Component({\n selector: 'gp-text',\n templateUrl: './gp-text.component.html',\n styleUrl: './gp-text.component.scss',\n standalone: true\n})\nexport class GpTextComponent {\n text = input<string | null>(null);\n tag = input<GpTextTag, string | null | undefined>(DEFAULT_TAG, {\n transform: (value: string | null | undefined) => coerceTag(value)\n });\n size = input<GpTextSize, string | null | undefined>(DEFAULT_SIZE, {\n transform: (value: string | null | undefined) => coerceSize(value)\n });\n weight = input<GpTextWeight, string | null | undefined>(DEFAULT_WEIGHT, {\n transform: (value: string | null | undefined) => coerceWeight(value)\n });\n customClasses = input('');\n\n protected resolvedText = computed(() => this.text() ?? '');\n\n protected classes = computed(() => {\n const base = `gp-text-base ${this.size()} gp-text-weight-${this.weight()}`;\n const extra = (this.customClasses() ?? '').trim();\n if (!extra) {\n return base;\n }\n return `${base} ${extra}`;\n });\n}\n","@switch (tag()) {\n @case ('span') {\n <span [class]=\"classes()\">{{ resolvedText() }}</span>\n }\n @default {\n <p [class]=\"classes()\">{{ resolvedText() }}</p>\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[gpWidgetError]',\n standalone: true,\n})\nexport class GpWidgetErrorDirective {\n constructor(public readonly templateRef: TemplateRef<unknown>) {}\n}\n\n","import {NgTemplateOutlet} from '@angular/common';\nimport {Component, ContentChild, input} from '@angular/core';\nimport {GpWidgetErrorDirective} from './gp-widget-error.directive';\n\n@Component({\n selector: 'gp-widget-shell',\n imports: [NgTemplateOutlet],\n templateUrl: './gp-widget-shell.component.html',\n styleUrl: './gp-widget-shell.component.scss',\n standalone: true,\n})\nexport class GpWidgetShellComponent {\n busy = input.required<boolean>();\n error = input.required<unknown | null>();\n\n @ContentChild(GpWidgetErrorDirective)\n protected errorTemplate?: GpWidgetErrorDirective;\n\n protected formatError(err: unknown): string {\n if (!err) {\n return '';\n }\n\n if (typeof err === 'string') {\n return err;\n }\n\n if (err instanceof Error) {\n return err.message || err.name;\n }\n\n return 'An unexpected error occurred.';\n }\n}\n","<div class=\"gp-widget-shell\">\n @if (busy()) {\n <div class=\"gp-widget-busy\">\n <span class=\"loader\"></span>\n </div>\n }\n\n @if (!busy() && error()) {\n @if (errorTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"errorTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error() }\"\n ></ng-template>\n } @else {\n <div class=\"gp-widget-error\">\n <div class=\"gp-widget-error-title\">Something went wrong</div>\n <div class=\"gp-widget-error-message\">{{ formatError(error()) }}</div>\n </div>\n }\n }\n\n @if (!busy() && !error()) {\n <div class=\"gp-widget-content\">\n <ng-content></ng-content>\n </div>\n }\n</div>\n","import {\n Component,\n DestroyRef,\n inject,\n input,\n OnInit,\n signal,\n ViewEncapsulation,\n InjectionToken, TemplateRef, contentChild\n} from '@angular/core';\nimport {GpWidgetShellComponent} from '../gp-widget-shell.component/gp-widget-shell.component';\nimport {AppIdChecker} from 'ngx-gp-api';\nimport {defer, EMPTY, Observable} from 'rxjs';\nimport {catchError, finalize, switchMap} from 'rxjs/operators';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {HttpClient} from '@angular/common/http';\nimport {NgTemplateOutlet} from '@angular/common';\n\ntype WidgetContentContext = {\n getLocalizedString: (key: string) => string;\n};\n\n@Component({\n selector: 'gp-base-widget',\n imports: [\n GpWidgetShellComponent,\n NgTemplateOutlet\n ],\n templateUrl: './gp-base-widget.component.html',\n styleUrl: './gp-base-widget.component.css',\n standalone: true,\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class GpBaseWidgetComponent implements OnInit {\n appId = input<string | null>(null);\n baseUrl = input.required<string>();\n bearerToken = input<string | null>(null);\n initialLoad = input.required<() => Observable<unknown>>();\n #http = inject(HttpClient);\n\n lang = input('de', {\n transform: (value: string | null | undefined) => value ?? 'de'\n });\n\n protected readonly busy = signal(true);\n protected readonly error = signal<unknown | null>(null);\n readonly #i18n = signal<Record<string, string>>({});\n\n readonly #appIdChecker = inject(AppIdChecker);\n readonly #destroyRef = inject(DestroyRef);\n readonly #sanitizer = inject(DomSanitizer);\n protected projectedContentTpl = contentChild<TemplateRef<WidgetContentContext>>(TemplateRef);\n\n readonly #sdkAssetPath = inject(WIDGET_ASSET_PATH, {optional: true}) as string | null;\n\n ngOnInit(): void {\n this.#startup();\n this.#loadI18nJson();\n }\n\n #loadI18nJson(lang = this.lang()) {\n const base = this.#sdkAssetPath || 'assets/i18n/';\n const url = `${base}messages.${lang}.json`;\n\n return this.#http.get<Record<string, string>>(url).subscribe({\n next: (json) => {\n this.#i18n.set(json);\n },\n error: () => {\n if (lang !== 'de') {\n console.error(`Failed to load i18n json for language '${this.lang()}'. Fallback for 'de' will be used.`);\n this.#loadI18nJson('de');\n } else {\n console.error(`Failed to load i18n json for language '${this.lang()}'.`);\n }\n }\n });\n }\n\n #startup(): void {\n this.busy.set(true);\n this.error.set(null);\n\n const appId = (this.appId() ?? '').trim();\n if (appId.length === 0) {\n this.#setError('App ID is required.');\n this.busy.set(false);\n return;\n }\n\n const baseUrl = (this.baseUrl() ?? '').trim();\n if (baseUrl.length === 0) {\n this.#setError('Base URL is required.');\n this.busy.set(false);\n return;\n }\n\n const bearerToken = this.#resolveBearerToken();\n\n this.#appIdChecker\n .checkAppId({baseUrl, appId, bearerToken})\n .pipe(\n switchMap(() => defer(() => this.initialLoad()())),\n takeUntilDestroyed(this.#destroyRef),\n catchError((err) => {\n this.#setError(err);\n return EMPTY;\n }),\n finalize(() => {\n this.busy.set(false);\n })\n )\n .subscribe();\n }\n\n #resolveBearerToken(): string | undefined {\n const inputValue = (this.bearerToken() ?? '').trim();\n if (inputValue) {\n return inputValue;\n }\n return undefined;\n }\n\n #setError(err: unknown): void {\n this.error.set(err ?? 'Unknown error.');\n }\n\n cssUrl() {\n const url = `https://sdk.gruenderplattform.de/dist/css/${this.appId()}.css`\n return this.#sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n protected readonly contentContext: WidgetContentContext = {\n getLocalizedString: (key: string) => this.getLocalizedString(key),\n };\n\n getLocalizedString(key: string): string {\n return this.#i18n()[key] ?? key;\n }\n}\n\nexport const WIDGET_ASSET_PATH = new InjectionToken<string>('WIDGET_ASSET_PATH');\n","<link id=\"custom-style-ref\" rel=\"stylesheet\" [href]=\"cssUrl()\"/>\n<gp-widget-shell [busy]=\"busy()\" [error]=\"error()\">\n <slot></slot>\n</gp-widget-shell>\n\n@if (projectedContentTpl()) {\n <ng-container [ngTemplateOutlet]=\"projectedContentTpl()\" [ngTemplateOutletContext]=\"contentContext\" />\n} @else {\n <ng-content />\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n ViewChild,\n computed,\n effect,\n input,\n output,\n signal\n} from '@angular/core';\n\n@Component({\n selector: 'gp-input',\n imports: [],\n templateUrl: './gp-input.component.html',\n styleUrl: './gp-input.component.scss',\n standalone: true\n})\n\nexport class GpInputComponent implements AfterViewInit, OnDestroy {\n protected readonly inputId = `gp-input-${Math.random().toString(36).substring(2, 15)}`;\n\n @ViewChild('input', { static: true })\n private inputRef!: ElementRef<HTMLInputElement>;\n\n label = input('');\n placeholder = input('');\n disabled = input(false);\n formId = input('');\n required = input(false);\n pattern = input('');\n requiredMessage = input('');\n patternMessage = input('');\n customClasses = input('');\n\n onChange = output<string>();\n\n protected readonly hasInteracted = signal(false);\n protected readonly hasEditedSinceSubmit = signal(false);\n private readonly submitTriggered = signal(false);\n protected readonly validationState = signal({ isValid: true, message: '' });\n private submitClickHandler: ((event: Event) => void) | null = null;\n\n constructor(\n private readonly hostRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private readonly document: Document\n ) {\n this.attachSubmitListener();\n\n effect(() => {\n this.required();\n this.pattern();\n this.requiredMessage();\n this.patternMessage();\n this.updateValidity();\n });\n }\n\n protected readonly mergedClasses = computed(() => {\n const custom = this.customClasses();\n if (!custom) {\n return 'gp-input-base';\n }\n return `gp-input-base ${custom}`;\n });\n\n protected readonly normalizedPattern = computed(() => {\n const raw = this.pattern().trim();\n if (!raw) {\n return '';\n }\n const startsWithCaret = raw.startsWith('^');\n const endsWithDollar = raw.endsWith('$');\n if (startsWithCaret && endsWithDollar && raw.length > 2) {\n return raw.slice(1, -1);\n }\n return raw;\n });\n\n protected readonly isRequired = computed(() => this.required());\n\n protected showValidationIcon(): boolean {\n const hasConstraints = this.required() || !!this.normalizedPattern().trim();\n return this.hasInteracted() && hasConstraints;\n }\n\n protected showErrorMessage(): boolean {\n return this.submitTriggered() && !this.hasEditedSinceSubmit() && !this.validationState().isValid;\n }\n\n protected handleInput(event: Event): void {\n const target = event.target as HTMLInputElement | null;\n const nextValue = target?.value ?? '';\n this.hasInteracted.set(true);\n this.hasEditedSinceSubmit.set(true);\n this.updateValidity();\n this.onChange.emit(nextValue);\n }\n\n protected markInteracted(): void {\n this.hasInteracted.set(true);\n this.updateValidity();\n }\n\n ngAfterViewInit(): void {\n this.updateValidity();\n }\n\n ngOnDestroy(): void {\n if (this.submitClickHandler) {\n this.document.removeEventListener('click', this.submitClickHandler, true);\n }\n this.submitClickHandler = null;\n }\n\n private attachSubmitListener(): void {\n this.submitClickHandler = (event: Event) => {\n const target = event.target as Element | null;\n if (!target) {\n return;\n }\n\n const submitButton = target.closest('[data-gp-submit=\"true\"]');\n if (!submitButton) {\n return;\n }\n\n const submitFormId = this.resolveElementFormId(submitButton);\n const inputFormId = this.resolveInputFormId();\n if (!submitFormId || !inputFormId) {\n return;\n }\n\n if (submitFormId !== inputFormId) {\n return;\n }\n\n this.submitTriggered.set(true);\n this.hasEditedSinceSubmit.set(false);\n this.updateValidity();\n };\n\n this.document.addEventListener('click', this.submitClickHandler, true);\n }\n\n private resolveInputFormId(): string | null {\n const explicit = this.formId();\n if (explicit && explicit.trim()) {\n return explicit.trim();\n }\n\n const owner = this.hostRef.nativeElement.closest('[data-gp-form]');\n if (!owner) {\n return null;\n }\n const formId = owner.getAttribute('data-gp-form');\n return formId && formId.trim() ? formId.trim() : null;\n }\n\n private resolveElementFormId(element: Element): string | null {\n const direct = element.getAttribute('data-gp-form');\n if (direct && direct.trim()) {\n return direct.trim();\n }\n\n const owner = element.closest('[data-gp-form]');\n if (!owner) {\n return null;\n }\n const formId = owner.getAttribute('data-gp-form');\n return formId && formId.trim() ? formId.trim() : null;\n }\n\n private updateValidity(): void {\n if (!this.inputRef) {\n return;\n }\n\n const input = this.inputRef.nativeElement;\n if (!input) {\n return;\n }\n\n const pattern = this.normalizedPattern().trim();\n input.required = this.required();\n if (pattern) {\n input.pattern = pattern;\n } else {\n input.removeAttribute('pattern');\n }\n\n input.setCustomValidity('');\n input.checkValidity();\n const validity = input.validity;\n const isValueMissing = validity.valueMissing;\n const isPatternMismatch = validity.patternMismatch;\n let customMessage = '';\n\n if (isValueMissing && this.requiredMessage()) {\n customMessage = this.requiredMessage();\n } else if (isPatternMismatch && this.patternMessage()) {\n customMessage = this.patternMessage();\n }\n\n input.setCustomValidity(customMessage);\n input.checkValidity();\n const isValid = input.validity.valid;\n const message = isValid ? '' : input.validationMessage;\n this.validationState.set({ isValid, message });\n }\n}\n","<label class=\"gp-input-host\">\n @if (label()) {\n <span class=\"gp-label-text\">\n {{ label() }}@if (isRequired()) { <span class=\"gp-input-required\">*</span> }\n </span>\n }\n <div class=\"gp-input-field\">\n <input\n #input\n type=\"text\"\n [id]=\"inputId\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.required]=\"required() ? '' : null\"\n [attr.pattern]=\"normalizedPattern() || null\"\n [class]=\"mergedClasses()\"\n [class.gp-input-invalid]=\"showErrorMessage()\"\n (input)=\"handleInput($event)\"\n (blur)=\"markInteracted()\"\n />\n @if (showValidationIcon()) {\n <span\n class=\"gp-input-icon\"\n [class.gp-input-icon-invalid]=\"!validationState().isValid\"\n aria-hidden=\"true\"\n >\n @if (validationState().isValid) {\n <svg viewBox=\"0 0 20 20\">\n <path\n d=\"M16.5 6.5L8.5 14.5L3.5 9.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 20 20\">\n <path\n d=\"M10 6V11\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1\"\n stroke-linecap=\"round\"\n />\n <circle cx=\"10\" cy=\"15\" r=\"1.2\" fill=\"currentColor\" />\n <circle cx=\"10\" cy=\"10\" r=\"8.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n }\n </span>\n }\n </div>\n @if (showErrorMessage()) {\n <div class=\"gp-input-message\" aria-live=\"polite\">\n {{ validationState().message }}\n </div>\n }\n</label>\n","import { Component, computed, input } from '@angular/core';\n\nexport type GpLinkMode = 'callback' | 'web' | 'mailto' | 'tel';\ntype LinkCallback = (event: MouseEvent) => void;\n\nconst DEFAULT_MODE: GpLinkMode = 'web';\nconst SUPPORTED_MODES: readonly GpLinkMode[] = ['callback', 'web', 'mailto', 'tel'];\nconst DEFAULT_NEW_TAB = true;\n\nfunction coerceMode(value: GpLinkMode | string | null | undefined): GpLinkMode {\n if (typeof value === 'string' && SUPPORTED_MODES.includes(value as GpLinkMode)) {\n return value as GpLinkMode;\n }\n\n return DEFAULT_MODE;\n}\n\nfunction normalizeString(value: string | null | undefined): string | null {\n if (typeof value !== 'string') {\n return null;\n }\n\n const trimmed = value.trim();\n return trimmed ? trimmed : null;\n}\n\n@Component({\n selector: 'gp-link',\n standalone: true,\n imports: [],\n templateUrl: './gp-link.component.html',\n styleUrl: './gp-link.component.scss',\n})\nexport class GpLinkComponent {\n mode = input<GpLinkMode | string>(DEFAULT_MODE);\n href = input<string | null>(null);\n newTab = input(DEFAULT_NEW_TAB);\n email = input<string | null>(null);\n phone = input<string | null>(null);\n callback = input<LinkCallback | null>(null);\n customClasses = input('');\n\n protected readonly resolvedMode = computed(() => coerceMode(this.mode()));\n\n protected readonly resolvedHref = computed(() => {\n switch (this.resolvedMode()) {\n case 'web':\n return normalizeString(this.href());\n case 'mailto': {\n const email = normalizeString(this.email());\n return email ? `mailto:${email}` : null;\n }\n case 'tel': {\n const phone = normalizeString(this.phone());\n return phone ? `tel:${phone}` : null;\n }\n default:\n return null;\n }\n });\n\n protected readonly isConfigValid = computed(() => {\n if (this.resolvedMode() === 'callback') {\n return typeof this.callback() === 'function';\n }\n\n return !!this.resolvedHref();\n });\n\n protected readonly resolvedTarget = computed(() => {\n if (this.resolvedMode() !== 'web' || !this.isConfigValid()) {\n return null;\n }\n\n return this.newTab() ? '_blank' : '_self';\n });\n\n protected readonly classes = computed(() => {\n const classNames = ['gp-link-base'];\n if (!this.isConfigValid()) {\n classNames.push('gp-link-inert');\n }\n\n const custom = normalizeString(this.customClasses());\n if (custom) {\n classNames.push(custom);\n }\n\n return classNames.join(' ');\n });\n\n protected handleClick(event: MouseEvent): void {\n if (!this.isConfigValid()) {\n event.preventDefault();\n return;\n }\n\n if (this.resolvedMode() === 'callback') {\n event.preventDefault();\n this.callback()?.(event);\n }\n }\n}\n","<a\n [attr.href]=\"resolvedHref()\"\n [attr.target]=\"resolvedTarget()\"\n [class]=\"classes()\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</a>\n","import { Component, computed, input } from '@angular/core';\n\nexport type GpHeadlineSize = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nconst DEFAULT_SIZE: GpHeadlineSize = 'h1';\nconst SUPPORTED_SIZES: readonly GpHeadlineSize[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\nfunction coerceSize(value: GpHeadlineSize | string | null | undefined): GpHeadlineSize {\n if (typeof value === 'string' && SUPPORTED_SIZES.includes(value as GpHeadlineSize)) {\n return value as GpHeadlineSize;\n }\n return DEFAULT_SIZE;\n}\n\n@Component({\n selector: 'gp-headline',\n standalone: true,\n imports: [],\n templateUrl: './gp-headline.component.html',\n styleUrl: './gp-headline.component.scss',\n})\nexport class GpHeadlineComponent {\n text = input<string | null>(null);\n size = input<GpHeadlineSize | string>(DEFAULT_SIZE);\n customClasses = input('');\n\n protected readonly resolvedSize = computed(() => coerceSize(this.size()));\n\n protected readonly resolvedText = computed(() => this.text() ?? '');\n\n protected readonly classes = computed(() => {\n const baseClasses = `gp-headline-base gp-headline-size-${this.resolvedSize()}`;\n const custom = this.customClasses().trim();\n return custom ? `${baseClasses} ${custom}` : baseClasses;\n });\n}\n","@switch (resolvedSize()) {\n @case ('h1') {\n <h1 [class]=\"classes()\">{{ resolvedText() }}</h1>\n }\n @case ('h2') {\n <h2 [class]=\"classes()\">{{ resolvedText() }}</h2>\n }\n @case ('h3') {\n <h3 [class]=\"classes()\">{{ resolvedText() }}</h3>\n }\n @case ('h4') {\n <h4 [class]=\"classes()\">{{ resolvedText() }}</h4>\n }\n @case ('h5') {\n <h5 [class]=\"classes()\">{{ resolvedText() }}</h5>\n }\n @default {\n <h6 [class]=\"classes()\">{{ resolvedText() }}</h6>\n }\n}\n","import {ChangeDetectorRef, Component, inject, input, TemplateRef} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'gp-accordion',\n imports: [\n NgTemplateOutlet\n ],\n templateUrl: './gp-accordion.component.html',\n styleUrl: './gp-accordion.component.scss',\n})\nexport class GpAccordionComponent {\n items = input<GpAccordionItem[]>([]);\n entryTemplate = input<TemplateRef<any>>();\n contentCallback = input.required<(item: GpAccordionItem) => Promise<any>>();\n\n private cdr = inject(ChangeDetectorRef);\n\n async toggleEntry(item: GpAccordionItem) {\n if (item.isExpanded) {\n item.isExpanded = false;\n return;\n }\n\n item.isExpanded = true;\n\n if (!item.isLoaded && !item.isLoading) {\n item.isLoading = true;\n this.cdr.markForCheck();\n\n try {\n item.data = await this.contentCallback()(item);\n item.isLoaded = true;\n item.isLoading = false;\n\n this.cdr.detectChanges();\n } catch (error) {\n console.error('Content load failed', error);\n item.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n }\n}\n\n\nexport interface GpAccordionItem {\n id: string | number;\n title: string;\n data?: any;\n isLoading?: boolean;\n isLoaded?: boolean;\n isExpanded?: boolean;\n}\n","<div class=\"gp-accordion-container\">\n @for (item of items(); track item.id) {\n <div class=\"gp-accordion-item\" [class.expanded]=\"item.isExpanded\">\n\n <button\n type=\"button\"\n class=\"gp-accordion-header\"\n (click)=\"toggleEntry(item)\"\n [attr.aria-expanded]=\"item.isExpanded\">\n <span class=\"title\">{{ item.title }}</span>\n\n <span class=\"gp-accordion-icon\" [class.rotate-90]=\"item.isExpanded\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.3537 8.35375L6.35372 13.3538C6.30727 13.4002 6.25212 13.4371 6.19142 13.4622C6.13072 13.4873 6.06567 13.5003 5.99997 13.5003C5.93428 13.5003 5.86922 13.4873 5.80852 13.4622C5.74783 13.4371 5.69268 13.4002 5.64622 13.3538C5.59977 13.3073 5.56292 13.2521 5.53778 13.1915C5.51263 13.1308 5.49969 13.0657 5.49969 13C5.49969 12.9343 5.51263 12.8693 5.53778 12.8086C5.56292 12.7479 5.59977 12.6927 5.64622 12.6463L10.2931 8L5.64622 3.35375C5.5524 3.25993 5.49969 3.13269 5.49969 3C5.49969 2.86732 5.5524 2.74007 5.64622 2.64625C5.74004 2.55243 5.86729 2.49973 5.99997 2.49973C6.13265 2.49973 6.2599 2.55243 6.35372 2.64625L11.3537 7.64625C11.4002 7.69269 11.4371 7.74783 11.4623 7.80853C11.4874 7.86923 11.5004 7.9343 11.5004 8C11.5004 8.06571 11.4874 8.13077 11.4623 8.19147C11.4371 8.25217 11.4002 8.30732 11.3537 8.35375Z\"\n fill=\"#1A1B1B\" style=\"fill:#1A1B1B;fill:color(display-p3 0.1020 0.1059 0.1059);fill-opacity:1;\"/>\n </svg>\n </span>\n </button>\n\n <div class=\"gp-accordion-content-wrapper\">\n <div class=\"gp-accordion-content\">\n @if (item.isLoading) {\n <div class=\"loading-state\">\n <div class=\"spinner\"></div>\n </div>\n }\n @if (item.isLoaded && item.isExpanded) {\n <div class=\"gp-accordion-inner-content\">\n <ng-container\n [ngTemplateOutlet]=\"entryTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.data }\">\n </ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n } @empty {\n <div class=\"gp-accordion-empty\">No items found.</div>\n }\n</div>\n","import {Component, computed, ElementRef, inject, input, OnInit, output, signal} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\n\n@Component({\n selector: 'gp-select',\n imports: [\n FormsModule\n ],\n templateUrl: './gp-select.component.html',\n styleUrl: './gp-select.component.scss',\n host: {\n '(document:click)': 'clickout($event)'\n },\n})\nexport class GpSelectComponent implements OnInit{\n label = input<string>('');\n placeholder = input<string>('Select option...');\n searchPlaceholder = input<string>('Search...');\n fieldRequiredText = input<string>('This field is required.');\n loadingOptionsText = input<string>('Loading options...');\n noOptionsFoundText = input<string>('No options found.');\n disabled = input<boolean>(false);\n multiple = input<boolean>(false);\n required = input<boolean>(false);\n optionsLoader = input<(() => Promise<GpSelectOption[]>) | undefined>();\n\n selectionChange = output<any>();\n\n protected readonly isOpen = signal(false);\n protected readonly isLoading = signal(false);\n protected readonly searchQuery = signal('');\n protected readonly showError = signal(false);\n protected readonly selectLabel = computed(() => this.label() + (this.required() ? ' *' : ''));\n protected readonly inputId = `gp-select-${Math.random().toString(36).substring(2, 15)}`;\n\n #isLoaded = signal(false);\n #options = signal<GpSelectOption[]>([]);\n #selectedValues = signal<any[]>([]);\n\n #eRef = inject(ElementRef);\n\n ngOnInit() {\n this.isOpen.set(false);\n this.showError.set(false);\n this.searchQuery.set('');\n }\n\n protected filteredOptions = computed(() => {\n const query = this.searchQuery().toLowerCase();\n return this.#options().filter(opt => opt.label.toLowerCase().includes(query));\n });\n\n protected readonly displayText = computed(() => {\n const selected = this.#options().filter(opt =>\n this.#selectedValues().includes(opt.value)\n );\n if (selected.length === 0) return this.placeholder();\n return selected.map(s => s.label).join(', ');\n });\n\n protected async toggleDropdown() {\n if (this.disabled()) return;\n\n this.showError.set(false);\n\n const targetState = !this.isOpen();\n this.isOpen.set(targetState);\n\n if (!targetState || this.#isLoaded()) return;\n\n const loader = this.optionsLoader();\n if (loader) {\n this.isLoading.set(true);\n try {\n const data = await loader();\n this.#options.set(data);\n this.#isLoaded.set(true);\n } catch (error) {\n console.error('Failed to load options', error);\n } finally {\n this.isLoading.set(false);\n }\n } else if (this.#options().length > 0) {\n this.#isLoaded.set(true);\n }\n }\n\n protected selectOption(option: GpSelectOption) {\n this.showError.set(false);\n\n if (this.multiple()) {\n const current = this.#selectedValues();\n const index = current.indexOf(option.value);\n if (index > -1) {\n this.#selectedValues.set(current.filter(v => v !== option.value));\n } else {\n this.#selectedValues.set([...current, option.value]);\n }\n } else {\n this.#selectedValues.set([option.value]);\n this.isOpen.set(false);\n }\n this.selectionChange.emit(this.multiple() ? this.#selectedValues() : this.#selectedValues()[0]);\n }\n\n protected isSelected(value: any): boolean {\n return this.#selectedValues().includes(value);\n }\n\n public markAsSubmitted() {\n if (this.required() && this.#selectedValues().length === 0) {\n this.showError.set(true);\n } else {\n this.showError.set(false);\n }\n }\n\n protected clickout(event: any) {\n if (!this.#eRef.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n }\n }\n}\n\nexport interface GpSelectOption {\n label: string;\n value: any;\n}\n","<div class=\"flex flex-col gap-1 w-full relative\">\n @if (label()) {\n <span class=\"label mb-1\">\n {{ selectLabel() }}\n </span>\n }\n\n <div\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n class=\"gp-select\">\n <span>\n {{ displayText() }}\n </span>\n <span>\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path class=\"gp-select-arrow\" d=\"M21.265 14.265L16.265 19.265C16.1947 19.3352 16.0994 19.3747 16 19.3747C15.9007 19.3747 15.8054 19.3352 15.735 19.265L10.735 14.265C10.6688 14.1939 10.6327 14.0999 10.6345 14.0027C10.6362 13.9056 10.6755 13.8129 10.7442 13.7442C10.8129 13.6755 10.9056 13.6361 11.0028 13.6344C11.0999 13.6327 11.194 13.6688 11.265 13.735L16 18.4694L20.735 13.735C20.8061 13.6688 20.9002 13.6327 20.9973 13.6344C21.0945 13.6361 21.1872 13.6755 21.2559 13.7442C21.3246 13.8129 21.3639 13.9056 21.3656 14.0027C21.3673 14.0999 21.3313 14.1939 21.265 14.265Z\"/>\n </svg>\n </span>\n </div>\n\n @if (showError()) {\n <p class=\"required-text\">{{ fieldRequiredText() }}</p>\n }\n\n @if (isOpen()) {\n <div class=\"gp-select-dropdown\">\n <div class=\"gp-select-search-container\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path class=\"gp-select-search-icon\" d=\"M14.2649 13.735L11.0537 10.5237C11.9694 9.47063 12.4405 8.10312 12.3676 6.70946C12.2947 5.31581 11.6836 4.00489 10.663 3.05304C9.64244 2.10119 8.29216 1.58278 6.89681 1.60708C5.50147 1.63138 4.17006 2.1965 3.18325 3.18331C2.19644 4.17012 1.63132 5.50153 1.60702 6.89688C1.58272 8.29222 2.10113 9.6425 3.05298 10.6631C4.00483 11.6837 5.31575 12.2948 6.7094 12.3677C8.10306 12.4405 9.47057 11.9695 10.5237 11.0537L13.7349 14.265C13.806 14.3312 13.9 14.3673 13.9972 14.3656C14.0943 14.3639 14.187 14.3245 14.2557 14.2558C14.3244 14.1871 14.3638 14.0944 14.3655 13.9972C14.3672 13.9001 14.3312 13.8061 14.2649 13.735ZM2.37492 6.99998C2.37492 6.08524 2.64617 5.19105 3.15437 4.43047C3.66258 3.66989 4.3849 3.0771 5.23001 2.72704C6.07512 2.37698 7.00505 2.28539 7.90221 2.46385C8.79938 2.64231 9.62347 3.0828 10.2703 3.72961C10.9171 4.37643 11.3576 5.20053 11.5361 6.09769C11.7145 6.99485 11.6229 7.92479 11.2729 8.76989C10.9228 9.615 10.33 10.3373 9.56943 10.8455C8.80886 11.3537 7.91466 11.625 6.99992 11.625C5.77375 11.6235 4.59823 11.1357 3.7312 10.2687C2.86416 9.40167 2.37641 8.22615 2.37492 6.99998Z\"/>\n </svg>\n <input\n type=\"text\"\n [id]=\"inputId\"\n class=\"gp-select-search\"\n placeholder=\"{{ searchPlaceholder() }}\"\n [ngModel]=\"searchQuery()\"\n (ngModelChange)=\"searchQuery.set($event)\"\n (click)=\"$event.stopPropagation()\"/>\n </div>\n\n <div class=\"gp-select-options-container\">\n @if (isLoading()) {\n <div class=\"gp-loading-wrapper\">\n <div class=\"gp-spinner\"></div>\n <span class=\"loading-text\">{{ loadingOptionsText() }}</span>\n </div>\n } @else {\n @for (opt of filteredOptions(); track opt.value) {\n <div\n class=\"gp-select-option\"\n [class.selected]=\"isSelected(opt.value)\"\n (click)=\"selectOption(opt); $event.stopPropagation()\">\n {{ opt.label }}\n </div>\n } @empty {\n <div class=\"gp-select-option\">{{ noOptionsFoundText() }}</div>\n }\n }\n </div>\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'gp-card',\n templateUrl: './gp-card.component.html',\n styleUrl: './gp-card.component.scss',\n standalone: true,\n})\nexport class GpCardComponent {}\n","<div class=\"gp-card-frame\">\n <ng-content></ng-content>\n</div>\n","import { Component, computed, effect, input, signal } from '@angular/core';\n\nexport type GpIconName = 'map-pin' | 'world' | 'phone' | 'envelope' | 'clock';\ntype GpIconSize = 'icon-xs' | 'icon-sm' | 'icon-base' | 'icon-lg';\n\nconst CDN_BASE_URL = 'https://cdn-dev.kettufy.io/cms.daniel.dev/images/localhost/';\nconst DEFAULT_SIZE: GpIconSize = 'icon-base';\nconst SUPPORTED_SIZES: readonly GpIconSize[] = ['icon-xs', 'icon-sm', 'icon-base', 'icon-lg'];\n\nconst coerceSize = (value: string | null | undefined): GpIconSize => {\n if (typeof value === 'string' && SUPPORTED_SIZES.includes(value as GpIconSize)) {\n return value as GpIconSize;\n }\n\n return DEFAULT_SIZE;\n};\n\nconst resolveIconName = (value: string | null | undefined): GpIconName | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const iconName = value.trim();\n if (!iconName) {\n return null;\n }\n\n if (\n iconName === 'map-pin' ||\n iconName === 'world' ||\n iconName === 'phone' ||\n iconName === 'envelope' ||\n iconName === 'clock'\n ) {\n return iconName;\n }\n\n return null;\n};\n\n@Component({\n selector: 'gp-icon',\n standalone: true,\n imports: [],\n templateUrl: './gp-icon.component.html',\n styleUrl: './gp-icon.component.scss',\n})\nexport class GpIconComponent {\n icon = input<string | null>(null);\n size = input<GpIconSize, string | null | undefined>(DEFAULT_SIZE, {\n transform: (value: string | null | undefined) => coerceSize(value),\n });\n customClasses = input('');\n\n private readonly activeIconName = signal<GpIconName>('clock');\n private readonly fallbackState = signal(false);\n\n protected readonly iconName = computed(() => resolveIconName(this.icon()));\n protected readonly iconUrl = computed(() => `${CDN_BASE_URL}${this.activeIconName()}.svg`);\n protected readonly isFallback = computed(() => this.fallbackState());\n\n protected readonly classes = computed(() => {\n const classes = ['gp-icon-base', this.size()];\n if (this.fallbackState()) {\n classes.push('gp-icon-invalid');\n }\n\n const custom = (this.customClasses() ?? '').trim();\n if (custom) {\n classes.push(custom);\n }\n\n return classes.join(' ');\n });\n\n constructor() {\n effect(\n () => {\n const iconName = this.iconName();\n if (iconName) {\n this.activeIconName.set(iconName);\n this.fallbackState.set(false);\n return;\n }\n\n this.fallbackState.set(true);\n },\n { allowSignalWrites: true }\n );\n }\n\n protected onImageError(): void {\n this.fallbackState.set(true);\n }\n}\n","<span [class]=\"classes()\" aria-hidden=\"true\">\n @if (isFallback()) {\n <svg viewBox=\"0 0 16 16\">\n <path d=\"M12 6C12 7.78188 10.4706 9.25687 8.5 9.4725V10C8.5 10.1326 8.44732 10.2598 8.35355 10.3536C8.25979 10.4473 8.13261 10.5 8 10.5C7.86739 10.5 7.74021 10.4473 7.64645 10.3536C7.55268 10.2598 7.5 10.1326 7.5 10V9C7.5 8.86739 7.55268 8.74021 7.64645 8.64645C7.74021 8.55268 7.86739 8.5 8 8.5C9.65437 8.5 11 7.37875 11 6C11 4.62125 9.65437 3.5 8 3.5C6.34563 3.5 5 4.62125 5 6C5 6.13261 4.94732 6.25979 4.85355 6.35355C4.75979 6.44732 4.63261 6.5 4.5 6.5C4.36739 6.5 4.24021 6.44732 4.14645 6.35355C4.05268 6.25979 4 6.13261 4 6C4 4.07 5.79437 2.5 8 2.5C10.2056 2.5 12 4.07 12 6ZM8 12C7.80222 12 7.60888 12.0586 7.44443 12.1685C7.27998 12.2784 7.15181 12.4346 7.07612 12.6173C7.00043 12.8 6.98063 13.0011 7.01921 13.1951C7.0578 13.3891 7.15304 13.5673 7.29289 13.7071C7.43275 13.847 7.61093 13.9422 7.80491 13.9808C7.99889 14.0194 8.19996 13.9996 8.38268 13.9239C8.56541 13.8482 8.72159 13.72 8.83147 13.5556C8.94135 13.3911 9 13.1978 9 13C9 12.7348 8.89464 12.4804 8.70711 12.2929C8.51957 12.1054 8.26522 12 8 12Z\" fill=\"#FF2F3C\"></path>\n </svg>\n } @else {\n <img [src]=\"iconUrl()\" alt=\"\" (error)=\"onImageError()\" />\n }\n</span>\n","/*\n * Public API Surface of ngx-gp-components\n */\n\n//TODO: Adjust exports to what actually should be public\nexport * from './lib/components/gp-date-picker.component/gp-date-picker.component';\nexport * from './lib/components/gp-button.component/gp-button.component';\nexport * from './lib/components/gp-table.component/gp-table.component';\nexport * from './lib/components/gp-text.component/gp-text.component';\nexport * from './lib/components/gp-base-widget.component/gp-base-widget.component';\nexport * from './lib/components/gp-input.component/gp-input.component';\nexport * from './lib/components/gp-link.component/gp-link.component';\nexport * from './lib/components/gp-headline.component/gp-headline.component';\nexport * from './lib/components/gp-accordion.component/gp-accordion.component';\nexport * from './lib/components/gp-select.component/gp-select.component';\nexport * from './lib/components/gp-card.component/gp-card.component';\nexport * from './lib/components/gp-icon.component/gp-icon.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DEFAULT_SIZE","coerceSize","SUPPORTED_SIZES"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-gp-components-dev-test.mjs","sources":["../../../projects/ngx-gp-components/src/lib/components/gp-date-picker.component/gp-date-picker.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-date-picker.component/gp-date-picker.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-button.component/gp-button.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-button.component/gp-button.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-table.component/gp-table.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-table.component/gp-table.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-text.component/gp-text.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-text.component/gp-text.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-widget-shell.component/gp-widget-error.directive.ts","../../../projects/ngx-gp-components/src/lib/components/gp-widget-shell.component/gp-widget-shell.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-widget-shell.component/gp-widget-shell.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-base-widget.component/gp-base-widget.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-base-widget.component/gp-base-widget.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-input.component/gp-input.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-input.component/gp-input.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-link.component/gp-link.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-link.component/gp-link.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-headline.component/gp-headline.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-headline.component/gp-headline.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-accordion.component/gp-accordion.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-accordion.component/gp-accordion.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-select.component/gp-select.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-select.component/gp-select.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-card.component/gp-card.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-card.component/gp-card.component.html","../../../projects/ngx-gp-components/src/lib/components/gp-icon.component/gp-icon.component.ts","../../../projects/ngx-gp-components/src/lib/components/gp-icon.component/gp-icon.component.html","../../../projects/ngx-gp-components/src/public-api.ts","../../../projects/ngx-gp-components/src/ngx-gp-components-dev-test.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n input,\n output,\n} from '@angular/core';\nimport flatpickr from 'flatpickr';\nimport type { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport type { Options as FlatpickrOptions } from 'flatpickr/dist/types/options';\n\n@Component({\n selector: 'gp-date-picker',\n imports: [NgClass],\n templateUrl: './gp-date-picker.component.html',\n styleUrl: './gp-date-picker.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class GpDatePickerComponent implements AfterViewInit, OnDestroy {\n private static nextId = 0;\n private readonly generatedId = `gp-date-picker-${GpDatePickerComponent.nextId++}`;\n protected readonly inputId = this.generatedId;\n\n @ViewChild('input', { static: true })\n private inputRef!: ElementRef<HTMLInputElement>;\n\n private flatpickrInstance: FlatpickrInstance | null = null;\n private lastEmittedValue: string | null = null;\n\n label = input('');\n value = input<string | null>(null);\n disabled = input(false);\n customClasses = input('');\n\n onChange = output<string>();\n\n constructor() {\n effect(() => {\n const nextValue = this.value() ?? '';\n if (!this.flatpickrInstance) {\n return;\n }\n\n if (nextValue === this.flatpickrInstance.input.value) {\n return;\n }\n\n this.flatpickrInstance.setDate(nextValue, false);\n });\n\n effect(() => {\n const isDisabled = this.disabled();\n if (!this.flatpickrInstance) {\n return;\n }\n\n const input = this.inputRef?.nativeElement;\n if (input) {\n input.disabled = isDisabled;\n }\n\n if (this.flatpickrInstance.altInput) {\n this.flatpickrInstance.altInput.disabled = isDisabled;\n }\n\n this.flatpickrInstance.set('clickOpens', !isDisabled);\n if (isDisabled) {\n this.flatpickrInstance.close();\n }\n });\n\n effect(() => {\n this.syncAltInput();\n });\n }\n\n protected mergedClasses = computed(() => {\n if (this.customClasses() === '') {\n return 'gp-date-picker-base';\n }\n return this.customClasses();\n });\n\n protected openPicker(): void {\n if (this.disabled()) {\n return;\n }\n\n this.flatpickrInstance?.open();\n }\n\n handleDateChange(nextValue: string): void {\n if (this.disabled()) {\n return;\n }\n\n if (nextValue === (this.value() ?? '')) {\n return;\n }\n\n if (nextValue === this.lastEmittedValue) {\n return;\n }\n\n this.lastEmittedValue = nextValue;\n this.onChange.emit(nextValue);\n }\n\n ngAfterViewInit(): void {\n const options: FlatpickrOptions = {\n allowInput: true,\n clickOpens: !this.disabled(),\n dateFormat: 'Y-m-d',\n altInput: true,\n altFormat: this.buildLocaleDisplayFormat(),\n altInputClass: this.buildInputClassName(),\n onChange: (_selectedDates, dateStr) => {\n this.handleDateChange(dateStr);\n },\n };\n\n this.flatpickrInstance = flatpickr(this.inputRef.nativeElement, options);\n\n const initialValue = this.value();\n if (initialValue) {\n this.flatpickrInstance.setDate(initialValue, false);\n }\n\n this.inputRef.nativeElement.disabled = this.disabled();\n this.syncAltInput();\n }\n\n ngOnDestroy(): void {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = null;\n }\n\n private buildLocaleDisplayFormat(): string {\n const formatter = new Intl.DateTimeFormat(undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n });\n const parts = formatter.formatToParts(new Date(2025, 0, 2));\n return parts\n .map((part) => {\n switch (part.type) {\n case 'year':\n return 'Y';\n case 'month':\n return 'm';\n case 'day':\n return 'd';\n default:\n return part.value;\n }\n })\n .join('');\n }\n\n private buildInputClassName(): string {\n const classes = this.mergedClasses();\n return classes ? `flatpickr-input ${classes}` : 'flatpickr-input';\n }\n\n private syncAltInput(): void {\n if (!this.flatpickrInstance?.altInput) {\n return;\n }\n\n const altInput = this.flatpickrInstance.altInput;\n altInput.className = this.buildInputClassName();\n altInput.id = this.inputId;\n this.inputRef.nativeElement.id = `${this.inputId}-hidden`;\n }\n}\n","<div class=\"gp-date-picker-host\">\n @if (label()) {\n <label [for]=\"inputId\">{{ label() }}</label>\n }\n <div class=\"gp-date-picker-input\">\n <input\n #input\n type=\"text\"\n [id]=\"inputId\"\n [disabled]=\"disabled()\"\n [ngClass]=\"customClasses()\"\n [class]=\"mergedClasses()\"\n />\n <button\n type=\"button\"\n class=\"gp-date-picker-toggle\"\n aria-label=\"Open calendar\"\n [disabled]=\"disabled()\"\n (click)=\"openPicker()\"\n >\n <svg width=\"40\" height=\"40\" viewBox=\"11 9 18 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M27.5 11.1875H25.0625V10.25C25.0625 10.1008 25.0032 9.95774 24.8977 9.85225C24.7923 9.74676 24.6492 9.6875 24.5 9.6875C24.3508 9.6875 24.2077 9.74676 24.1023 9.85225C23.9968 9.95774 23.9375 10.1008 23.9375 10.25V11.1875H16.0625V10.25C16.0625 10.1008 16.0032 9.95774 15.8977 9.85225C15.7923 9.74676 15.6492 9.6875 15.5 9.6875C15.3508 9.6875 15.2077 9.74676 15.1023 9.85225C14.9968 9.95774 14.9375 10.1008 14.9375 10.25V11.1875H12.5C12.1519 11.1875 11.8181 11.3258 11.5719 11.5719C11.3258 11.8181 11.1875 12.1519 11.1875 12.5V27.5C11.1875 27.8481 11.3258 28.1819 11.5719 28.4281C11.8181 28.6742 12.1519 28.8125 12.5 28.8125H27.5C27.8481 28.8125 28.1819 28.6742 28.4281 28.4281C28.6742 28.1819 28.8125 27.8481 28.8125 27.5V12.5C28.8125 12.1519 28.6742 11.8181 28.4281 11.5719C28.1819 11.3258 27.8481 11.1875 27.5 11.1875ZM12.5 12.3125H14.9375V13.25C14.9375 13.3992 14.9968 13.5423 15.1023 13.6477C15.2077 13.7532 15.3508 13.8125 15.5 13.8125C15.6492 13.8125 15.7923 13.7532 15.8977 13.6477C16.0032 13.5423 16.0625 13.3992 16.0625 13.25V12.3125H23.9375V13.25C23.9375 13.3992 23.9968 13.5423 24.1023 13.6477C24.2077 13.7532 24.3508 13.8125 24.5 13.8125C24.6492 13.8125 24.7923 13.7532 24.8977 13.6477C25.0032 13.5423 25.0625 13.3992 25.0625 13.25V12.3125H27.5C27.5497 12.3125 27.5974 12.3323 27.6326 12.3674C27.6677 12.4026 27.6875 12.4503 27.6875 12.5V15.6875H12.3125V12.5C12.3125 12.4503 12.3323 12.4026 12.3674 12.3674C12.4026 12.3323 12.4503 12.3125 12.5 12.3125ZM27.5 27.6875H12.5C12.4503 27.6875 12.4026 27.6677 12.3674 27.6326C12.3323 27.5974 12.3125 27.5497 12.3125 27.5V16.8125H27.6875V27.5C27.6875 27.5497 27.6677 27.5974 27.6326 27.6326C27.5974 27.6677 27.5497 27.6875 27.5 27.6875ZM18.3125 19.25V25.25C18.3125 25.3992 18.2532 25.5423 18.1477 25.6477C18.0423 25.7532 17.8992 25.8125 17.75 25.8125C17.6008 25.8125 17.4577 25.7532 17.3523 25.6477C17.2468 25.5423 17.1875 25.3992 17.1875 25.25V20.1603L16.5013 20.5034C16.4351 20.5364 16.3632 20.5561 16.2895 20.5613C16.2158 20.5664 16.1418 20.5571 16.0717 20.5336C16.0016 20.5102 15.9368 20.4732 15.881 20.4248C15.8253 20.3763 15.7796 20.3174 15.7466 20.2512C15.7136 20.1851 15.6939 20.1132 15.6887 20.0395C15.6836 19.9658 15.6929 19.8918 15.7164 19.8217C15.7398 19.7516 15.7768 19.6868 15.8252 19.631C15.8737 19.5753 15.9326 19.5296 15.9987 19.4966L17.4987 18.7466C17.5845 18.7037 17.6798 18.6836 17.7756 18.6879C17.8714 18.6923 17.9644 18.721 18.0459 18.7715C18.1275 18.8219 18.1948 18.8923 18.2414 18.9761C18.2881 19.0598 18.3125 19.1541 18.3125 19.25ZM23.8972 21.9922L21.875 24.6875H23.75C23.8992 24.6875 24.0423 24.7468 24.1477 24.8523C24.2532 24.9577 24.3125 25.1008 24.3125 25.25C24.3125 25.3992 24.2532 25.5423 24.1477 25.6477C24.0423 25.7532 23.8992 25.8125 23.75 25.8125H20.75C20.6455 25.8125 20.5431 25.7834 20.4543 25.7285C20.3654 25.6736 20.2936 25.595 20.2469 25.5016C20.2002 25.4081 20.1804 25.3035 20.1898 25.1995C20.1992 25.0954 20.2373 24.9961 20.3 24.9125L23 21.3125C23.0777 21.2103 23.1337 21.0933 23.1643 20.9686C23.195 20.844 23.1997 20.7143 23.1782 20.5878C23.1568 20.4612 23.1095 20.3404 23.0394 20.2329C22.9693 20.1253 22.8779 20.0333 22.7708 19.9625C22.6636 19.8918 22.5431 19.8437 22.4167 19.8215C22.2903 19.7992 22.1606 19.8031 22.0358 19.833C21.9109 19.8629 21.7935 19.9181 21.6909 19.9952C21.5882 20.0723 21.5025 20.1697 21.4391 20.2812C21.4055 20.3512 21.3579 20.4134 21.2991 20.4641C21.2404 20.5147 21.1718 20.5527 21.0976 20.5755C21.0235 20.5984 20.9455 20.6056 20.8684 20.5969C20.7913 20.5881 20.7169 20.5635 20.6498 20.5246C20.5827 20.4857 20.5243 20.4334 20.4784 20.3708C20.4325 20.3083 20.4001 20.237 20.3831 20.1613C20.3661 20.0856 20.3649 20.0072 20.3796 19.9311C20.3944 19.8549 20.4247 19.7826 20.4688 19.7188C20.6101 19.4761 20.7996 19.2648 21.0255 19.0979C21.2514 18.931 21.509 18.8121 21.7825 18.7483C22.056 18.6845 22.3397 18.6772 22.6161 18.7269C22.8925 18.7767 23.1559 18.8823 23.39 19.0374C23.6242 19.1926 23.8242 19.3939 23.9777 19.629C24.1313 19.8641 24.2353 20.1282 24.2832 20.4049C24.3311 20.6817 24.322 20.9653 24.2565 21.2384C24.1909 21.5115 24.0702 21.7683 23.9019 21.9931L23.8972 21.9922Z\" fill=\"#363737\" style=\"fill:#363737;fill:color(display-p3 0.2118 0.2157 0.2157);fill-opacity:1;\"/>\n </svg>\n </button>\n </div>\n</div>\n","import {Component, computed, input, output} from '@angular/core';\nimport {NgClass} from '@angular/common';\n\n@Component({\n selector: 'gp-button',\n imports: [\n NgClass\n ],\n templateUrl: './gp-button.component.html',\n styleUrl: './gp-button.component.scss',\n standalone: true\n})\nexport class GpButtonComponent {\n label = input.required<string>();\n disabled = input(false);\n customClasses = input('');\n submitAction = input(false);\n formId = input('');\n\n onClick = output<MouseEvent>();\n\n protected mergedClasses = computed(() => {\n if (this.customClasses() === '') {\n return `gp-button-base`;\n }\n return this.customClasses();\n });\n}\n","<button\n type=\"button\"\n [disabled]=disabled()\n (click)=\"onClick.emit($event)\"\n [attr.data-gp-submit]=\"submitAction() ? 'true' : null\"\n [attr.data-gp-form]=\"formId() || null\"\n [ngClass]=customClasses()\n [class]=\"mergedClasses()\">\n {{ label() }}\n</button>\n","import { Component, input } from '@angular/core';\nimport { GpButtonComponent } from '../gp-button.component/gp-button.component';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'gp-table',\n imports: [\n GpButtonComponent,\n NgClass\n ],\n templateUrl: './gp-table.component.html',\n styleUrl: './gp-table.component.scss',\n standalone: true\n})\nexport class GpTableComponent {\n tableData = input<TableData | null>(null);\n actions = input<RowAction[]>();\n disabledPredicate = input<(row: Record<string, unknown>, action: RowAction) => boolean>(() => false);\n visibilityPredicate = input<(row: Record<string, unknown>, action: RowAction) => boolean>(() => true);\n emptyMessage = input('');\n\n get tableHeaders() {\n let headers = this.tableData()?.headers;\n return headers ? Object.values(headers) : [];\n }\n\n get tableContent(): Record<string, unknown>[] {\n let data = this.tableData()?.data;\n return data ? data : [];\n }\n\n getTableKeys() {\n let headers = this.tableData()?.headers;\n return headers ? Object.keys(headers) : [];\n }\n\n getRow(rows: Record<string, unknown>[], index: number): unknown[] {\n const rowAtIndex: Record<string, unknown> = rows[index] ?? {};\n return this.getTableKeys().map((header) => rowAtIndex[header]);\n }\n\n isShowEmptyMessage(): boolean {\n const data = this.tableData()?.data;\n return !Array.isArray(data) || data.length === 0;\n }\n\n shouldDisplayActions() {\n return this.actions() && this.actions()!.length > 0;\n }\n\n isButtonDisabled(row: Record<string, unknown>, action: RowAction) {\n return this.disabledPredicate()(row, action);\n }\n\n isButtonVisible(row: Record<string, unknown>, action: RowAction) {\n return this.visibilityPredicate()(row, action);\n }\n}\n\ntype TableData = {\n headers: Record<string, unknown>;\n data: Record<string, unknown>[];\n};\n\ntype RowAction = {\n label: string;\n onClick: (row: Record<string, unknown>) => void;\n};\n","@if (isShowEmptyMessage()) {\n <span>{{ emptyMessage() }}</span>\n} @else {\n <table class=\"table-auto w-full border border-gray-400\">\n <thead>\n <tr>\n @for (header of tableHeaders; track header) {\n <th class=\"border border-gray-300 p-4 text-left\">{{ header }}</th>\n }\n @if (shouldDisplayActions()) {\n <th class=\"border border-gray-300 p-4 text-left w-0\"></th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of tableContent; track row) {\n <tr>\n @for (cell of getRow(tableContent, $index); track cell) {\n <td class=\"border border-gray-300 p-4 text-left\">{{ cell }}</td>\n }\n @if (shouldDisplayActions()) {\n <td class=\"border border-gray-300 p-4 text-left\">\n <div class=\"flex\">\n @for (action of this.actions(); track action.label) {\n @if (isButtonVisible(row, action)) {\n <gp-button\n [ngClass]=\"$last ? '' : 'mr-2'\"\n [label]=\"action.label\"\n [disabled]=\"isButtonDisabled(row, action)\"\n (onClick)=\"action.onClick(row)\"\n />\n }\n }\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n}\n","import { Component, computed, input } from '@angular/core';\n\ntype GpTextTag = 'p' | 'span';\ntype GpTextSize = 'text-xs' | 'text-sm' | 'text-base' | 'text-lg';\ntype GpTextWeight = 'regular' | 'semibold' | 'extrabold';\n\nconst DEFAULT_TAG: GpTextTag = 'p';\nconst DEFAULT_SIZE: GpTextSize = 'text-sm';\nconst DEFAULT_WEIGHT: GpTextWeight = 'regular';\n\nconst coerceTag = (value: string | null | undefined): GpTextTag => {\n if (value === 'span' || value === 'p') {\n return value;\n }\n return DEFAULT_TAG;\n};\n\nconst coerceSize = (value: string | null | undefined): GpTextSize => {\n if (value === 'text-xs' || value === 'text-sm' || value === 'text-base' || value === 'text-lg') {\n return value;\n }\n return DEFAULT_SIZE;\n};\n\nconst coerceWeight = (value: string | null | undefined): GpTextWeight => {\n if (value === 'regular' || value === 'semibold' || value === 'extrabold') {\n return value;\n }\n return DEFAULT_WEIGHT;\n};\n\n@Component({\n selector: 'gp-text',\n templateUrl: './gp-text.component.html',\n styleUrl: './gp-text.component.scss',\n standalone: true\n})\nexport class GpTextComponent {\n text = input<string | null>(null);\n tag = input<GpTextTag, string | null | undefined>(DEFAULT_TAG, {\n transform: (value: string | null | undefined) => coerceTag(value)\n });\n size = input<GpTextSize, string | null | undefined>(DEFAULT_SIZE, {\n transform: (value: string | null | undefined) => coerceSize(value)\n });\n weight = input<GpTextWeight, string | null | undefined>(DEFAULT_WEIGHT, {\n transform: (value: string | null | undefined) => coerceWeight(value)\n });\n customClasses = input('');\n\n protected resolvedText = computed(() => this.text() ?? '');\n\n protected classes = computed(() => {\n const base = `gp-text-base ${this.size()} gp-text-weight-${this.weight()}`;\n const extra = (this.customClasses() ?? '').trim();\n if (!extra) {\n return base;\n }\n return `${base} ${extra}`;\n });\n}\n","@switch (tag()) {\n @case ('span') {\n <span [class]=\"classes()\">{{ resolvedText() }}</span>\n }\n @default {\n <p [class]=\"classes()\">{{ resolvedText() }}</p>\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[gpWidgetError]',\n standalone: true,\n})\nexport class GpWidgetErrorDirective {\n constructor(public readonly templateRef: TemplateRef<unknown>) {}\n}\n\n","import {NgTemplateOutlet} from '@angular/common';\nimport {Component, ContentChild, input} from '@angular/core';\nimport {GpWidgetErrorDirective} from './gp-widget-error.directive';\n\n@Component({\n selector: 'gp-widget-shell',\n imports: [NgTemplateOutlet],\n templateUrl: './gp-widget-shell.component.html',\n styleUrl: './gp-widget-shell.component.scss',\n standalone: true,\n})\nexport class GpWidgetShellComponent {\n busy = input.required<boolean>();\n error = input.required<unknown | null>();\n\n @ContentChild(GpWidgetErrorDirective)\n protected errorTemplate?: GpWidgetErrorDirective;\n\n protected formatError(err: unknown): string {\n if (!err) {\n return '';\n }\n\n if (typeof err === 'string') {\n return err;\n }\n\n if (err instanceof Error) {\n return err.message || err.name;\n }\n\n return 'An unexpected error occurred.';\n }\n}\n","<div class=\"gp-widget-shell\">\n @if (busy()) {\n <div class=\"gp-widget-busy\">\n <span class=\"loader\"></span>\n </div>\n }\n\n @if (!busy() && error()) {\n @if (errorTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"errorTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error() }\"\n ></ng-template>\n } @else {\n <div class=\"gp-widget-error\">\n <div class=\"gp-widget-error-title\">Something went wrong</div>\n <div class=\"gp-widget-error-message\">{{ formatError(error()) }}</div>\n </div>\n }\n }\n\n @if (!busy() && !error()) {\n <div class=\"gp-widget-content\">\n <ng-content></ng-content>\n </div>\n }\n</div>\n","import {\n Component,\n DestroyRef,\n inject,\n input,\n OnInit,\n signal,\n ViewEncapsulation,\n InjectionToken, TemplateRef, contentChild\n} from '@angular/core';\nimport {GpWidgetShellComponent} from '../gp-widget-shell.component/gp-widget-shell.component';\nimport {AppIdChecker} from 'ngx-gp-api-dev-test';\nimport {defer, EMPTY, Observable} from 'rxjs';\nimport {catchError, finalize, switchMap} from 'rxjs/operators';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {HttpClient} from '@angular/common/http';\nimport {NgTemplateOutlet} from '@angular/common';\n\ntype WidgetContentContext = {\n getLocalizedString: (key: string) => string;\n};\n\n@Component({\n selector: 'gp-base-widget',\n imports: [\n GpWidgetShellComponent,\n NgTemplateOutlet\n ],\n templateUrl: './gp-base-widget.component.html',\n styleUrl: './gp-base-widget.component.css',\n standalone: true,\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class GpBaseWidgetComponent implements OnInit {\n appId = input<string | null>(null);\n baseUrl = input.required<string>();\n bearerToken = input<string | null>(null);\n initialLoad = input.required<() => Observable<unknown>>();\n #http = inject(HttpClient);\n\n lang = input('de', {\n transform: (value: string | null | undefined) => value ?? 'de'\n });\n\n protected readonly busy = signal(true);\n protected readonly error = signal<unknown | null>(null);\n readonly #i18n = signal<Record<string, string>>({});\n\n readonly #appIdChecker = inject(AppIdChecker);\n readonly #destroyRef = inject(DestroyRef);\n readonly #sanitizer = inject(DomSanitizer);\n protected projectedContentTpl = contentChild<TemplateRef<WidgetContentContext>>(TemplateRef);\n\n readonly #sdkAssetPath = inject(WIDGET_ASSET_PATH, {optional: true}) as string | null;\n\n ngOnInit(): void {\n this.#startup();\n this.#loadI18nJson();\n }\n\n #loadI18nJson(lang = this.lang()) {\n const base = this.#sdkAssetPath || 'assets/i18n/';\n const url = `${base}messages.${lang}.json`;\n\n return this.#http.get<Record<string, string>>(url).subscribe({\n next: (json) => {\n this.#i18n.set(json);\n },\n error: () => {\n if (lang !== 'de') {\n console.error(`Failed to load i18n json for language '${this.lang()}'. Fallback for 'de' will be used.`);\n this.#loadI18nJson('de');\n } else {\n console.error(`Failed to load i18n json for language '${this.lang()}'.`);\n }\n }\n });\n }\n\n #startup(): void {\n this.busy.set(true);\n this.error.set(null);\n\n const appId = (this.appId() ?? '').trim();\n if (appId.length === 0) {\n this.#setError('App ID is required.');\n this.busy.set(false);\n return;\n }\n\n const baseUrl = (this.baseUrl() ?? '').trim();\n if (baseUrl.length === 0) {\n this.#setError('Base URL is required.');\n this.busy.set(false);\n return;\n }\n\n const bearerToken = this.#resolveBearerToken();\n\n this.#appIdChecker\n .checkAppId({baseUrl, appId, bearerToken})\n .pipe(\n switchMap(() => defer(() => this.initialLoad()())),\n takeUntilDestroyed(this.#destroyRef),\n catchError((err) => {\n this.#setError(err);\n return EMPTY;\n }),\n finalize(() => {\n this.busy.set(false);\n })\n )\n .subscribe();\n }\n\n #resolveBearerToken(): string | undefined {\n const inputValue = (this.bearerToken() ?? '').trim();\n if (inputValue) {\n return inputValue;\n }\n return undefined;\n }\n\n #setError(err: unknown): void {\n this.error.set(err ?? 'Unknown error.');\n }\n\n cssUrl() {\n const url = `https://sdk.gruenderplattform.de/dist/css/${this.appId()}.css`\n return this.#sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n protected readonly contentContext: WidgetContentContext = {\n getLocalizedString: (key: string) => this.getLocalizedString(key),\n };\n\n getLocalizedString(key: string): string {\n return this.#i18n()[key] ?? key;\n }\n}\n\nexport const WIDGET_ASSET_PATH = new InjectionToken<string>('WIDGET_ASSET_PATH');\n","<link id=\"custom-style-ref\" rel=\"stylesheet\" [href]=\"cssUrl()\"/>\n<gp-widget-shell [busy]=\"busy()\" [error]=\"error()\">\n <slot></slot>\n</gp-widget-shell>\n\n@if (projectedContentTpl()) {\n <ng-container [ngTemplateOutlet]=\"projectedContentTpl()\" [ngTemplateOutletContext]=\"contentContext\" />\n} @else {\n <ng-content />\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n ViewChild,\n computed,\n effect,\n input,\n output,\n signal\n} from '@angular/core';\n\n@Component({\n selector: 'gp-input',\n imports: [],\n templateUrl: './gp-input.component.html',\n styleUrl: './gp-input.component.scss',\n standalone: true\n})\n\nexport class GpInputComponent implements AfterViewInit, OnDestroy {\n protected readonly inputId = `gp-input-${Math.random().toString(36).substring(2, 15)}`;\n\n @ViewChild('input', { static: true })\n private inputRef!: ElementRef<HTMLInputElement>;\n\n label = input('');\n placeholder = input('');\n disabled = input(false);\n formId = input('');\n required = input(false);\n pattern = input('');\n requiredMessage = input('');\n patternMessage = input('');\n customClasses = input('');\n\n onChange = output<string>();\n\n protected readonly hasInteracted = signal(false);\n protected readonly hasEditedSinceSubmit = signal(false);\n private readonly submitTriggered = signal(false);\n protected readonly validationState = signal({ isValid: true, message: '' });\n private submitClickHandler: ((event: Event) => void) | null = null;\n\n constructor(\n private readonly hostRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private readonly document: Document\n ) {\n this.attachSubmitListener();\n\n effect(() => {\n this.required();\n this.pattern();\n this.requiredMessage();\n this.patternMessage();\n this.updateValidity();\n });\n }\n\n protected readonly mergedClasses = computed(() => {\n const custom = this.customClasses();\n if (!custom) {\n return 'gp-input-base';\n }\n return `gp-input-base ${custom}`;\n });\n\n protected readonly normalizedPattern = computed(() => {\n const raw = this.pattern().trim();\n if (!raw) {\n return '';\n }\n const startsWithCaret = raw.startsWith('^');\n const endsWithDollar = raw.endsWith('$');\n if (startsWithCaret && endsWithDollar && raw.length > 2) {\n return raw.slice(1, -1);\n }\n return raw;\n });\n\n protected readonly isRequired = computed(() => this.required());\n\n protected showValidationIcon(): boolean {\n const hasConstraints = this.required() || !!this.normalizedPattern().trim();\n return this.hasInteracted() && hasConstraints;\n }\n\n protected showErrorMessage(): boolean {\n return this.submitTriggered() && !this.hasEditedSinceSubmit() && !this.validationState().isValid;\n }\n\n protected handleInput(event: Event): void {\n const target = event.target as HTMLInputElement | null;\n const nextValue = target?.value ?? '';\n this.hasInteracted.set(true);\n this.hasEditedSinceSubmit.set(true);\n this.updateValidity();\n this.onChange.emit(nextValue);\n }\n\n protected markInteracted(): void {\n this.hasInteracted.set(true);\n this.updateValidity();\n }\n\n ngAfterViewInit(): void {\n this.updateValidity();\n }\n\n ngOnDestroy(): void {\n if (this.submitClickHandler) {\n this.document.removeEventListener('click', this.submitClickHandler, true);\n }\n this.submitClickHandler = null;\n }\n\n private attachSubmitListener(): void {\n this.submitClickHandler = (event: Event) => {\n const target = event.target as Element | null;\n if (!target) {\n return;\n }\n\n const submitButton = target.closest('[data-gp-submit=\"true\"]');\n if (!submitButton) {\n return;\n }\n\n const submitFormId = this.resolveElementFormId(submitButton);\n const inputFormId = this.resolveInputFormId();\n if (!submitFormId || !inputFormId) {\n return;\n }\n\n if (submitFormId !== inputFormId) {\n return;\n }\n\n this.submitTriggered.set(true);\n this.hasEditedSinceSubmit.set(false);\n this.updateValidity();\n };\n\n this.document.addEventListener('click', this.submitClickHandler, true);\n }\n\n private resolveInputFormId(): string | null {\n const explicit = this.formId();\n if (explicit && explicit.trim()) {\n return explicit.trim();\n }\n\n const owner = this.hostRef.nativeElement.closest('[data-gp-form]');\n if (!owner) {\n return null;\n }\n const formId = owner.getAttribute('data-gp-form');\n return formId && formId.trim() ? formId.trim() : null;\n }\n\n private resolveElementFormId(element: Element): string | null {\n const direct = element.getAttribute('data-gp-form');\n if (direct && direct.trim()) {\n return direct.trim();\n }\n\n const owner = element.closest('[data-gp-form]');\n if (!owner) {\n return null;\n }\n const formId = owner.getAttribute('data-gp-form');\n return formId && formId.trim() ? formId.trim() : null;\n }\n\n private updateValidity(): void {\n if (!this.inputRef) {\n return;\n }\n\n const input = this.inputRef.nativeElement;\n if (!input) {\n return;\n }\n\n const pattern = this.normalizedPattern().trim();\n input.required = this.required();\n if (pattern) {\n input.pattern = pattern;\n } else {\n input.removeAttribute('pattern');\n }\n\n input.setCustomValidity('');\n input.checkValidity();\n const validity = input.validity;\n const isValueMissing = validity.valueMissing;\n const isPatternMismatch = validity.patternMismatch;\n let customMessage = '';\n\n if (isValueMissing && this.requiredMessage()) {\n customMessage = this.requiredMessage();\n } else if (isPatternMismatch && this.patternMessage()) {\n customMessage = this.patternMessage();\n }\n\n input.setCustomValidity(customMessage);\n input.checkValidity();\n const isValid = input.validity.valid;\n const message = isValid ? '' : input.validationMessage;\n this.validationState.set({ isValid, message });\n }\n}\n","<label class=\"gp-input-host\">\n @if (label()) {\n <span class=\"gp-label-text\">\n {{ label() }}@if (isRequired()) { <span class=\"gp-input-required\">*</span> }\n </span>\n }\n <div class=\"gp-input-field\">\n <input\n #input\n type=\"text\"\n [id]=\"inputId\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.required]=\"required() ? '' : null\"\n [attr.pattern]=\"normalizedPattern() || null\"\n [class]=\"mergedClasses()\"\n [class.gp-input-invalid]=\"showErrorMessage()\"\n (input)=\"handleInput($event)\"\n (blur)=\"markInteracted()\"\n />\n @if (showValidationIcon()) {\n <span\n class=\"gp-input-icon\"\n [class.gp-input-icon-invalid]=\"!validationState().isValid\"\n aria-hidden=\"true\"\n >\n @if (validationState().isValid) {\n <svg viewBox=\"0 0 20 20\">\n <path\n d=\"M16.5 6.5L8.5 14.5L3.5 9.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n } @else {\n <svg viewBox=\"0 0 20 20\">\n <path\n d=\"M10 6V11\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1\"\n stroke-linecap=\"round\"\n />\n <circle cx=\"10\" cy=\"15\" r=\"1.2\" fill=\"currentColor\" />\n <circle cx=\"10\" cy=\"10\" r=\"8.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n }\n </span>\n }\n </div>\n @if (showErrorMessage()) {\n <div class=\"gp-input-message\" aria-live=\"polite\">\n {{ validationState().message }}\n </div>\n }\n</label>\n","import { Component, computed, input } from '@angular/core';\n\nexport type GpLinkMode = 'callback' | 'web' | 'mailto' | 'tel';\ntype LinkCallback = (event: MouseEvent) => void;\n\nconst DEFAULT_MODE: GpLinkMode = 'web';\nconst SUPPORTED_MODES: readonly GpLinkMode[] = ['callback', 'web', 'mailto', 'tel'];\nconst DEFAULT_NEW_TAB = true;\n\nfunction coerceMode(value: GpLinkMode | string | null | undefined): GpLinkMode {\n if (typeof value === 'string' && SUPPORTED_MODES.includes(value as GpLinkMode)) {\n return value as GpLinkMode;\n }\n\n return DEFAULT_MODE;\n}\n\nfunction normalizeString(value: string | null | undefined): string | null {\n if (typeof value !== 'string') {\n return null;\n }\n\n const trimmed = value.trim();\n return trimmed ? trimmed : null;\n}\n\n@Component({\n selector: 'gp-link',\n standalone: true,\n imports: [],\n templateUrl: './gp-link.component.html',\n styleUrl: './gp-link.component.scss',\n})\nexport class GpLinkComponent {\n mode = input<GpLinkMode | string>(DEFAULT_MODE);\n href = input<string | null>(null);\n newTab = input(DEFAULT_NEW_TAB);\n email = input<string | null>(null);\n phone = input<string | null>(null);\n callback = input<LinkCallback | null>(null);\n customClasses = input('');\n\n protected readonly resolvedMode = computed(() => coerceMode(this.mode()));\n\n protected readonly resolvedHref = computed(() => {\n switch (this.resolvedMode()) {\n case 'web':\n return normalizeString(this.href());\n case 'mailto': {\n const email = normalizeString(this.email());\n return email ? `mailto:${email}` : null;\n }\n case 'tel': {\n const phone = normalizeString(this.phone());\n return phone ? `tel:${phone}` : null;\n }\n default:\n return null;\n }\n });\n\n protected readonly isConfigValid = computed(() => {\n if (this.resolvedMode() === 'callback') {\n return typeof this.callback() === 'function';\n }\n\n return !!this.resolvedHref();\n });\n\n protected readonly resolvedTarget = computed(() => {\n if (this.resolvedMode() !== 'web' || !this.isConfigValid()) {\n return null;\n }\n\n return this.newTab() ? '_blank' : '_self';\n });\n\n protected readonly classes = computed(() => {\n const classNames = ['gp-link-base'];\n if (!this.isConfigValid()) {\n classNames.push('gp-link-inert');\n }\n\n const custom = normalizeString(this.customClasses());\n if (custom) {\n classNames.push(custom);\n }\n\n return classNames.join(' ');\n });\n\n protected handleClick(event: MouseEvent): void {\n if (!this.isConfigValid()) {\n event.preventDefault();\n return;\n }\n\n if (this.resolvedMode() === 'callback') {\n event.preventDefault();\n this.callback()?.(event);\n }\n }\n}\n","<a\n [attr.href]=\"resolvedHref()\"\n [attr.target]=\"resolvedTarget()\"\n [class]=\"classes()\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</a>\n","import { Component, computed, input } from '@angular/core';\n\nexport type GpHeadlineSize = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nconst DEFAULT_SIZE: GpHeadlineSize = 'h1';\nconst SUPPORTED_SIZES: readonly GpHeadlineSize[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\nfunction coerceSize(value: GpHeadlineSize | string | null | undefined): GpHeadlineSize {\n if (typeof value === 'string' && SUPPORTED_SIZES.includes(value as GpHeadlineSize)) {\n return value as GpHeadlineSize;\n }\n return DEFAULT_SIZE;\n}\n\n@Component({\n selector: 'gp-headline',\n standalone: true,\n imports: [],\n templateUrl: './gp-headline.component.html',\n styleUrl: './gp-headline.component.scss',\n})\nexport class GpHeadlineComponent {\n text = input<string | null>(null);\n size = input<GpHeadlineSize | string>(DEFAULT_SIZE);\n customClasses = input('');\n\n protected readonly resolvedSize = computed(() => coerceSize(this.size()));\n\n protected readonly resolvedText = computed(() => this.text() ?? '');\n\n protected readonly classes = computed(() => {\n const baseClasses = `gp-headline-base gp-headline-size-${this.resolvedSize()}`;\n const custom = this.customClasses().trim();\n return custom ? `${baseClasses} ${custom}` : baseClasses;\n });\n}\n","@switch (resolvedSize()) {\n @case ('h1') {\n <h1 [class]=\"classes()\">{{ resolvedText() }}</h1>\n }\n @case ('h2') {\n <h2 [class]=\"classes()\">{{ resolvedText() }}</h2>\n }\n @case ('h3') {\n <h3 [class]=\"classes()\">{{ resolvedText() }}</h3>\n }\n @case ('h4') {\n <h4 [class]=\"classes()\">{{ resolvedText() }}</h4>\n }\n @case ('h5') {\n <h5 [class]=\"classes()\">{{ resolvedText() }}</h5>\n }\n @default {\n <h6 [class]=\"classes()\">{{ resolvedText() }}</h6>\n }\n}\n","import {ChangeDetectorRef, Component, inject, input, TemplateRef} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\n\n@Component({\n selector: 'gp-accordion',\n imports: [\n NgTemplateOutlet\n ],\n templateUrl: './gp-accordion.component.html',\n styleUrl: './gp-accordion.component.scss',\n})\nexport class GpAccordionComponent {\n items = input<GpAccordionItem[]>([]);\n entryTemplate = input<TemplateRef<any>>();\n contentCallback = input.required<(item: GpAccordionItem) => Promise<any>>();\n\n private cdr = inject(ChangeDetectorRef);\n\n async toggleEntry(item: GpAccordionItem) {\n if (item.isExpanded) {\n item.isExpanded = false;\n return;\n }\n\n item.isExpanded = true;\n\n if (!item.isLoaded && !item.isLoading) {\n item.isLoading = true;\n this.cdr.markForCheck();\n\n try {\n item.data = await this.contentCallback()(item);\n item.isLoaded = true;\n item.isLoading = false;\n\n this.cdr.detectChanges();\n } catch (error) {\n console.error('Content load failed', error);\n item.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n }\n}\n\n\nexport interface GpAccordionItem {\n id: string | number;\n title: string;\n data?: any;\n isLoading?: boolean;\n isLoaded?: boolean;\n isExpanded?: boolean;\n}\n","<div class=\"gp-accordion-container\">\n @for (item of items(); track item.id) {\n <div class=\"gp-accordion-item\" [class.expanded]=\"item.isExpanded\">\n\n <button\n type=\"button\"\n class=\"gp-accordion-header\"\n (click)=\"toggleEntry(item)\"\n [attr.aria-expanded]=\"item.isExpanded\">\n <span class=\"title\">{{ item.title }}</span>\n\n <span class=\"gp-accordion-icon\" [class.rotate-90]=\"item.isExpanded\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.3537 8.35375L6.35372 13.3538C6.30727 13.4002 6.25212 13.4371 6.19142 13.4622C6.13072 13.4873 6.06567 13.5003 5.99997 13.5003C5.93428 13.5003 5.86922 13.4873 5.80852 13.4622C5.74783 13.4371 5.69268 13.4002 5.64622 13.3538C5.59977 13.3073 5.56292 13.2521 5.53778 13.1915C5.51263 13.1308 5.49969 13.0657 5.49969 13C5.49969 12.9343 5.51263 12.8693 5.53778 12.8086C5.56292 12.7479 5.59977 12.6927 5.64622 12.6463L10.2931 8L5.64622 3.35375C5.5524 3.25993 5.49969 3.13269 5.49969 3C5.49969 2.86732 5.5524 2.74007 5.64622 2.64625C5.74004 2.55243 5.86729 2.49973 5.99997 2.49973C6.13265 2.49973 6.2599 2.55243 6.35372 2.64625L11.3537 7.64625C11.4002 7.69269 11.4371 7.74783 11.4623 7.80853C11.4874 7.86923 11.5004 7.9343 11.5004 8C11.5004 8.06571 11.4874 8.13077 11.4623 8.19147C11.4371 8.25217 11.4002 8.30732 11.3537 8.35375Z\"\n fill=\"#1A1B1B\" style=\"fill:#1A1B1B;fill:color(display-p3 0.1020 0.1059 0.1059);fill-opacity:1;\"/>\n </svg>\n </span>\n </button>\n\n <div class=\"gp-accordion-content-wrapper\">\n <div class=\"gp-accordion-content\">\n @if (item.isLoading) {\n <div class=\"loading-state\">\n <div class=\"spinner\"></div>\n </div>\n }\n @if (item.isLoaded && item.isExpanded) {\n <div class=\"gp-accordion-inner-content\">\n <ng-container\n [ngTemplateOutlet]=\"entryTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.data }\">\n </ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n } @empty {\n <div class=\"gp-accordion-empty\">No items found.</div>\n }\n</div>\n","import {Component, computed, ElementRef, inject, input, OnInit, output, signal} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\n\n@Component({\n selector: 'gp-select',\n imports: [\n FormsModule\n ],\n templateUrl: './gp-select.component.html',\n styleUrl: './gp-select.component.scss',\n host: {\n '(document:click)': 'clickout($event)'\n },\n})\nexport class GpSelectComponent implements OnInit{\n label = input<string>('');\n placeholder = input<string>('Select option...');\n searchPlaceholder = input<string>('Search...');\n fieldRequiredText = input<string>('This field is required.');\n loadingOptionsText = input<string>('Loading options...');\n noOptionsFoundText = input<string>('No options found.');\n disabled = input<boolean>(false);\n multiple = input<boolean>(false);\n required = input<boolean>(false);\n optionsLoader = input<(() => Promise<GpSelectOption[]>) | undefined>();\n\n selectionChange = output<any>();\n\n protected readonly isOpen = signal(false);\n protected readonly isLoading = signal(false);\n protected readonly searchQuery = signal('');\n protected readonly showError = signal(false);\n protected readonly selectLabel = computed(() => this.label() + (this.required() ? ' *' : ''));\n protected readonly inputId = `gp-select-${Math.random().toString(36).substring(2, 15)}`;\n\n #isLoaded = signal(false);\n #options = signal<GpSelectOption[]>([]);\n #selectedValues = signal<any[]>([]);\n\n #eRef = inject(ElementRef);\n\n ngOnInit() {\n this.isOpen.set(false);\n this.showError.set(false);\n this.searchQuery.set('');\n }\n\n protected filteredOptions = computed(() => {\n const query = this.searchQuery().toLowerCase();\n return this.#options().filter(opt => opt.label.toLowerCase().includes(query));\n });\n\n protected readonly displayText = computed(() => {\n const selected = this.#options().filter(opt =>\n this.#selectedValues().includes(opt.value)\n );\n if (selected.length === 0) return this.placeholder();\n return selected.map(s => s.label).join(', ');\n });\n\n protected async toggleDropdown() {\n if (this.disabled()) return;\n\n this.showError.set(false);\n\n const targetState = !this.isOpen();\n this.isOpen.set(targetState);\n\n if (!targetState || this.#isLoaded()) return;\n\n const loader = this.optionsLoader();\n if (loader) {\n this.isLoading.set(true);\n try {\n const data = await loader();\n this.#options.set(data);\n this.#isLoaded.set(true);\n } catch (error) {\n console.error('Failed to load options', error);\n } finally {\n this.isLoading.set(false);\n }\n } else if (this.#options().length > 0) {\n this.#isLoaded.set(true);\n }\n }\n\n protected selectOption(option: GpSelectOption) {\n this.showError.set(false);\n\n if (this.multiple()) {\n const current = this.#selectedValues();\n const index = current.indexOf(option.value);\n if (index > -1) {\n this.#selectedValues.set(current.filter(v => v !== option.value));\n } else {\n this.#selectedValues.set([...current, option.value]);\n }\n } else {\n this.#selectedValues.set([option.value]);\n this.isOpen.set(false);\n }\n this.selectionChange.emit(this.multiple() ? this.#selectedValues() : this.#selectedValues()[0]);\n }\n\n protected isSelected(value: any): boolean {\n return this.#selectedValues().includes(value);\n }\n\n public markAsSubmitted() {\n if (this.required() && this.#selectedValues().length === 0) {\n this.showError.set(true);\n } else {\n this.showError.set(false);\n }\n }\n\n protected clickout(event: any) {\n if (!this.#eRef.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n }\n }\n}\n\nexport interface GpSelectOption {\n label: string;\n value: any;\n}\n","<div class=\"flex flex-col gap-1 w-full relative\">\n @if (label()) {\n <span class=\"label mb-1\">\n {{ selectLabel() }}\n </span>\n }\n\n <div\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled()\"\n class=\"gp-select\">\n <span>\n {{ displayText() }}\n </span>\n <span>\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path class=\"gp-select-arrow\" d=\"M21.265 14.265L16.265 19.265C16.1947 19.3352 16.0994 19.3747 16 19.3747C15.9007 19.3747 15.8054 19.3352 15.735 19.265L10.735 14.265C10.6688 14.1939 10.6327 14.0999 10.6345 14.0027C10.6362 13.9056 10.6755 13.8129 10.7442 13.7442C10.8129 13.6755 10.9056 13.6361 11.0028 13.6344C11.0999 13.6327 11.194 13.6688 11.265 13.735L16 18.4694L20.735 13.735C20.8061 13.6688 20.9002 13.6327 20.9973 13.6344C21.0945 13.6361 21.1872 13.6755 21.2559 13.7442C21.3246 13.8129 21.3639 13.9056 21.3656 14.0027C21.3673 14.0999 21.3313 14.1939 21.265 14.265Z\"/>\n </svg>\n </span>\n </div>\n\n @if (showError()) {\n <p class=\"required-text\">{{ fieldRequiredText() }}</p>\n }\n\n @if (isOpen()) {\n <div class=\"gp-select-dropdown\">\n <div class=\"gp-select-search-container\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path class=\"gp-select-search-icon\" d=\"M14.2649 13.735L11.0537 10.5237C11.9694 9.47063 12.4405 8.10312 12.3676 6.70946C12.2947 5.31581 11.6836 4.00489 10.663 3.05304C9.64244 2.10119 8.29216 1.58278 6.89681 1.60708C5.50147 1.63138 4.17006 2.1965 3.18325 3.18331C2.19644 4.17012 1.63132 5.50153 1.60702 6.89688C1.58272 8.29222 2.10113 9.6425 3.05298 10.6631C4.00483 11.6837 5.31575 12.2948 6.7094 12.3677C8.10306 12.4405 9.47057 11.9695 10.5237 11.0537L13.7349 14.265C13.806 14.3312 13.9 14.3673 13.9972 14.3656C14.0943 14.3639 14.187 14.3245 14.2557 14.2558C14.3244 14.1871 14.3638 14.0944 14.3655 13.9972C14.3672 13.9001 14.3312 13.8061 14.2649 13.735ZM2.37492 6.99998C2.37492 6.08524 2.64617 5.19105 3.15437 4.43047C3.66258 3.66989 4.3849 3.0771 5.23001 2.72704C6.07512 2.37698 7.00505 2.28539 7.90221 2.46385C8.79938 2.64231 9.62347 3.0828 10.2703 3.72961C10.9171 4.37643 11.3576 5.20053 11.5361 6.09769C11.7145 6.99485 11.6229 7.92479 11.2729 8.76989C10.9228 9.615 10.33 10.3373 9.56943 10.8455C8.80886 11.3537 7.91466 11.625 6.99992 11.625C5.77375 11.6235 4.59823 11.1357 3.7312 10.2687C2.86416 9.40167 2.37641 8.22615 2.37492 6.99998Z\"/>\n </svg>\n <input\n type=\"text\"\n [id]=\"inputId\"\n class=\"gp-select-search\"\n placeholder=\"{{ searchPlaceholder() }}\"\n [ngModel]=\"searchQuery()\"\n (ngModelChange)=\"searchQuery.set($event)\"\n (click)=\"$event.stopPropagation()\"/>\n </div>\n\n <div class=\"gp-select-options-container\">\n @if (isLoading()) {\n <div class=\"gp-loading-wrapper\">\n <div class=\"gp-spinner\"></div>\n <span class=\"loading-text\">{{ loadingOptionsText() }}</span>\n </div>\n } @else {\n @for (opt of filteredOptions(); track opt.value) {\n <div\n class=\"gp-select-option\"\n [class.selected]=\"isSelected(opt.value)\"\n (click)=\"selectOption(opt); $event.stopPropagation()\">\n {{ opt.label }}\n </div>\n } @empty {\n <div class=\"gp-select-option\">{{ noOptionsFoundText() }}</div>\n }\n }\n </div>\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'gp-card',\n templateUrl: './gp-card.component.html',\n styleUrl: './gp-card.component.scss',\n standalone: true,\n})\nexport class GpCardComponent {}\n","<div class=\"gp-card-frame\">\n <ng-content></ng-content>\n</div>\n","import { Component, computed, effect, input, signal } from '@angular/core';\n\nexport type GpIconName = 'map-pin' | 'world' | 'phone' | 'envelope' | 'clock';\ntype GpIconSize = 'icon-xs' | 'icon-sm' | 'icon-base' | 'icon-lg';\n\nconst CDN_BASE_URL = 'https://cdn-dev.kettufy.io/cms.daniel.dev/images/localhost/';\nconst DEFAULT_SIZE: GpIconSize = 'icon-base';\nconst SUPPORTED_SIZES: readonly GpIconSize[] = ['icon-xs', 'icon-sm', 'icon-base', 'icon-lg'];\n\nconst coerceSize = (value: string | null | undefined): GpIconSize => {\n if (typeof value === 'string' && SUPPORTED_SIZES.includes(value as GpIconSize)) {\n return value as GpIconSize;\n }\n\n return DEFAULT_SIZE;\n};\n\nconst resolveIconName = (value: string | null | undefined): GpIconName | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const iconName = value.trim();\n if (!iconName) {\n return null;\n }\n\n if (\n iconName === 'map-pin' ||\n iconName === 'world' ||\n iconName === 'phone' ||\n iconName === 'envelope' ||\n iconName === 'clock'\n ) {\n return iconName;\n }\n\n return null;\n};\n\n@Component({\n selector: 'gp-icon',\n standalone: true,\n imports: [],\n templateUrl: './gp-icon.component.html',\n styleUrl: './gp-icon.component.scss',\n})\nexport class GpIconComponent {\n icon = input<string | null>(null);\n size = input<GpIconSize, string | null | undefined>(DEFAULT_SIZE, {\n transform: (value: string | null | undefined) => coerceSize(value),\n });\n customClasses = input('');\n\n private readonly activeIconName = signal<GpIconName>('clock');\n private readonly fallbackState = signal(false);\n\n protected readonly iconName = computed(() => resolveIconName(this.icon()));\n protected readonly iconUrl = computed(() => `${CDN_BASE_URL}${this.activeIconName()}.svg`);\n protected readonly isFallback = computed(() => this.fallbackState());\n\n protected readonly classes = computed(() => {\n const classes = ['gp-icon-base', this.size()];\n if (this.fallbackState()) {\n classes.push('gp-icon-invalid');\n }\n\n const custom = (this.customClasses() ?? '').trim();\n if (custom) {\n classes.push(custom);\n }\n\n return classes.join(' ');\n });\n\n constructor() {\n effect(\n () => {\n const iconName = this.iconName();\n if (iconName) {\n this.activeIconName.set(iconName);\n this.fallbackState.set(false);\n return;\n }\n\n this.fallbackState.set(true);\n },\n { allowSignalWrites: true }\n );\n }\n\n protected onImageError(): void {\n this.fallbackState.set(true);\n }\n}\n","<span [class]=\"classes()\" aria-hidden=\"true\">\n @if (isFallback()) {\n <svg viewBox=\"0 0 16 16\">\n <path d=\"M12 6C12 7.78188 10.4706 9.25687 8.5 9.4725V10C8.5 10.1326 8.44732 10.2598 8.35355 10.3536C8.25979 10.4473 8.13261 10.5 8 10.5C7.86739 10.5 7.74021 10.4473 7.64645 10.3536C7.55268 10.2598 7.5 10.1326 7.5 10V9C7.5 8.86739 7.55268 8.74021 7.64645 8.64645C7.74021 8.55268 7.86739 8.5 8 8.5C9.65437 8.5 11 7.37875 11 6C11 4.62125 9.65437 3.5 8 3.5C6.34563 3.5 5 4.62125 5 6C5 6.13261 4.94732 6.25979 4.85355 6.35355C4.75979 6.44732 4.63261 6.5 4.5 6.5C4.36739 6.5 4.24021 6.44732 4.14645 6.35355C4.05268 6.25979 4 6.13261 4 6C4 4.07 5.79437 2.5 8 2.5C10.2056 2.5 12 4.07 12 6ZM8 12C7.80222 12 7.60888 12.0586 7.44443 12.1685C7.27998 12.2784 7.15181 12.4346 7.07612 12.6173C7.00043 12.8 6.98063 13.0011 7.01921 13.1951C7.0578 13.3891 7.15304 13.5673 7.29289 13.7071C7.43275 13.847 7.61093 13.9422 7.80491 13.9808C7.99889 14.0194 8.19996 13.9996 8.38268 13.9239C8.56541 13.8482 8.72159 13.72 8.83147 13.5556C8.94135 13.3911 9 13.1978 9 13C9 12.7348 8.89464 12.4804 8.70711 12.2929C8.51957 12.1054 8.26522 12 8 12Z\" fill=\"#FF2F3C\"></path>\n </svg>\n } @else {\n <img [src]=\"iconUrl()\" alt=\"\" (error)=\"onImageError()\" />\n }\n</span>\n","/*\n * Public API Surface of ngx-gp-components\n */\n\n//TODO: Adjust exports to what actually should be public\nexport * from './lib/components/gp-date-picker.component/gp-date-picker.component';\nexport * from './lib/components/gp-button.component/gp-button.component';\nexport * from './lib/components/gp-table.component/gp-table.component';\nexport * from './lib/components/gp-text.component/gp-text.component';\nexport * from './lib/components/gp-base-widget.component/gp-base-widget.component';\nexport * from './lib/components/gp-input.component/gp-input.component';\nexport * from './lib/components/gp-link.component/gp-link.component';\nexport * from './lib/components/gp-headline.component/gp-headline.component';\nexport * from './lib/components/gp-accordion.component/gp-accordion.component';\nexport * from './lib/components/gp-select.component/gp-select.component';\nexport * from './lib/components/gp-card.component/gp-card.component';\nexport * from './lib/components/gp-icon.component/gp-icon.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DEFAULT_SIZE","coerceSize","SUPPORTED_SIZES"],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "ngx-gp-components-dev-test",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.0",
6
6
  "@angular/core": "^21.1.0",
7
- "ngx-gp-api": "^0.0.0"
7
+ "ngx-gp-api-dev-test": "^0.0.3"
8
8
  },
9
9
  "dependencies": {
10
10
  "flatpickr": "^4.6.13",