erp-library-itdev 0.1.5

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erp-library-itdev.mjs","sources":["../../../projects/erp/src/lib/components/button/button.component.ts","../../../projects/erp/src/lib/components/button/button.component.html","../../../projects/erp/src/lib/models/erp-icons.model.ts","../../../projects/erp/src/lib/components/input-signals/s-date/s-date.ts","../../../projects/erp/src/lib/components/input-signals/s-date/s-date.html","../../../projects/erp/src/lib/components/input-signals/s-input-text/s-input-text.ts","../../../projects/erp/src/lib/components/input-signals/s-input-text/s-input-text.html","../../../projects/erp/src/lib/components/input-signals/s-select/s-select.ts","../../../projects/erp/src/lib/components/input-signals/s-select/s-select.html","../../../projects/erp/src/lib/components/table/status-cell/status-cell.ts","../../../projects/erp/src/lib/components/table/status-cell/status-cell.html","../../../projects/erp/src/lib/components/table/table.ts","../../../projects/erp/src/lib/components/table/table.html","../../../projects/erp/src/lib/components/table/user-cell/user-cell.ts","../../../projects/erp/src/lib/components/table/user-cell/user-cell.html","../../../projects/erp/src/lib/services/erp-config.service.ts","../../../projects/erp/src/lib/services/erp-api.service.ts","../../../projects/erp/src/lib/services/erp-auth.service.ts","../../../projects/erp/src/lib/services/erp-notification.service.ts","../../../projects/erp/src/lib/services/erp-translation.service.ts","../../../projects/erp/src/lib/i18n/erp-i18n.service.ts","../../../projects/erp/src/lib/i18n/erp-translate.provider.ts","../../../projects/erp/src/lib/models/erp-inputs.model.ts","../../../projects/erp/src/lib/models/erp-request.model.ts","../../../projects/erp/src/lib/models/erp-response.model.ts","../../../projects/erp/src/lib/erp-entities/categorie-socio-prof/categorie-socio-prof.request.ts","../../../projects/erp/src/lib/erp-entities/categorie-socio-prof/categorie-socio-prof.model.ts","../../../projects/erp/src/lib/erp-entities/grille/grille.request.ts","../../../projects/erp/src/lib/erp-entities/grille/grille.model.ts","../../../projects/erp/src/lib/erp-entities/fiche-poste/fiche-poste.request.ts","../../../projects/erp/src/lib/erp-entities/fiche-poste/fiche-poste.model.ts","../../../projects/erp/src/lib/erp-entities/plan-comptable/plan-comptable.request.ts","../../../projects/erp/src/lib/erp-entities/plan-comptable/plan-comptable.model.ts","../../../projects/erp/src/lib/erp-entities/plan-comptable/sens-comptable.enum.ts","../../../projects/erp/src/lib/erp-entities/plan-rubrique/plan-rubrique.request.ts","../../../projects/erp/src/lib/erp-entities/plan-rubrique/plan-rubrique.model.ts","../../../projects/erp/src/lib/erp-entities/plan-rubrique/type-rubrique.enum.ts","../../../projects/erp/src/lib/erp-entities/type-conge/type-conge.request.ts","../../../projects/erp/src/lib/erp-entities/type-conge/type-conge.model.ts","../../../projects/erp/src/lib/erp-entities/type-contrat/type-contrat.request.ts","../../../projects/erp/src/lib/erp-entities/type-contrat/type-contrat.model.ts","../../../projects/erp/src/lib/erp-entities/type-formation/type-formation.request.ts","../../../projects/erp/src/lib/erp-entities/type-formation/type-formation.model.ts","../../../projects/erp/src/lib/erp-entities/type-sanction/type-sanction.request.ts","../../../projects/erp/src/lib/erp-entities/type-sanction/type-sanction.model.ts","../../../projects/erp/src/public-api.ts","../../../projects/erp/src/erp-library-itdev.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'ghost';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'itdev-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n @Input() variant: ButtonVariant = 'primary';\n @Input() size: ButtonSize = 'md';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n\n @Output() clicked = new EventEmitter<MouseEvent>();\n\n get classes(): string[] {\n return [\n 'itdev-btn',\n `itdev-btn--${this.variant}`,\n `itdev-btn--${this.size}`,\n this.loading ? 'itdev-btn--loading' : '',\n ].filter(Boolean);\n }\n\n onClick(event: MouseEvent): void {\n if (!this.disabled && !this.loading) {\n this.clicked.emit(event);\n }\n }\n}\n","<button\n [type]=\"type\"\n [class]=\"classes\"\n [disabled]=\"disabled || loading\"\n (click)=\"onClick($event)\"\n>\n <span *ngIf=\"loading\" class=\"itdev-btn__spinner\" aria-hidden=\"true\"></span>\n <ng-content></ng-content>\n</button>\n","export enum Icons {\r\n ADD_ROUNDED = 'add-rounded',\r\n ARROW_TOP = 'arrow-top',\r\n ARROW_TOP_2 = 'arrow-top-2',\r\n ARROW_TOP_ROUNDED = 'arrow-top-rounded',\r\n ARROW_TOP_ROUNDED_2 = 'arrow-top-rounded-2',\r\n ARROW_BOTTOM = 'arrow-bottom',\r\n ARROW_BOTTOM_2 = 'arrow-bottom-2',\r\n ARROW_BOTTOM_ROUNDED = 'arrow-bottom-rounded',\r\n ARROW_BOTTOM_ROUNDED_2 = 'arrow-bottom-rounded-2',\r\n ARROW_RIGHT = 'arrow-right',\r\n ARROW_RIGHT_2 = 'arrow-right-2',\r\n ARROW_RIGHT_ROUNDED = 'arrow-right-rounded',\r\n ARROW_RIGHT_ROUNDED_2 = 'arrow-right-rounded-2',\r\n ARROW_LEFT = 'arrow-left',\r\n ARROW_LEFT_2 = 'arrow-left',\r\n ARROW_LEFT_ROUNDED = 'arrow-left-rounded',\r\n ARROW_LEFT_ROUNDED_2 = 'arrow-left-rounded-2',\r\n AWARD = 'award',\r\n CALENDAR = 'calendar',\r\n CALL_CALLING = 'call-calling',\r\n CALL_MUTED = 'call-muted',\r\n CALL_SLASH = 'call-slash',\r\n CAMERA_SLASH = 'camera-slash',\r\n CAMERA = 'camera',\r\n CARD = 'card',\r\n CHART = 'chart',\r\n CHECK = 'check',\r\n CHECK_LIST = 'check-list',\r\n CLOCK = 'clock',\r\n CLOSE = 'close',\r\n CLOUD = 'cloud',\r\n CLOUD_2 = 'cloud-1',\r\n COMPARISON = 'comparison',\r\n COPY = 'copy',\r\n CPU = 'cpu',\r\n CUP = 'cup',\r\n DELETE = 'delete',\r\n DELETE_2 = 'delete-2',\r\n DISCOVER = 'discover',\r\n DOCUMENT = 'document',\r\n DOLLAR_ROUNDED = 'dollar-rounded',\r\n EDIT_ROUNDED = 'edit-rounded',\r\n EDIT_ROUNDED_2 = 'edit-rounded-2',\r\n EDIT_UNDERLINE = 'edit-underline',\r\n EDIT = 'edit',\r\n EXPORT = 'export',\r\n EYE = 'eye',\r\n EYE_SLASH = 'eye-slash',\r\n FILTER = 'filter',\r\n FLAG = 'flag',\r\n FOLDER = 'folder',\r\n GALLERY = 'gallery',\r\n GRID = 'grid',\r\n GRID_2 = 'grid-2',\r\n GRID_3 = 'grid-3',\r\n HEADPHONE_SLASH = 'headphone-slash',\r\n HEADPHONE = 'headphone',\r\n HEART = 'heart',\r\n HOME = 'home',\r\n HOME_2 = 'home-2',\r\n INFO = 'info',\r\n LOADING = 'loading',\r\n LOCATION = 'location',\r\n LOCK = 'lock',\r\n LOCK_2 = 'lock-1',\r\n LOGOUT = 'logout',\r\n MENU = 'menu',\r\n MENU_2 = 'menu-1',\r\n MESSAGE = 'message',\r\n MESSAGES = 'messages',\r\n MESSAGE_2 = 'message-2',\r\n MESSAGE_3 = 'message-3',\r\n MESSAGE_4 = 'message-4',\r\n MIC = 'mic',\r\n MINUS = 'minus',\r\n MOBILE = 'mobile',\r\n MONITOR = 'monitor',\r\n MOON = 'moon',\r\n MORE = 'more',\r\n MORE_2 = 'more-2',\r\n MOUSE = 'mouse',\r\n NOTE = 'note',\r\n NOTE_2 = 'note-2',\r\n NOTE_3 = 'note-3',\r\n NOTE_ADD = 'note-add',\r\n NOTE_CHECK = 'note-check',\r\n NOTE_DELETE = 'note-delete',\r\n NOTE_MINUS = 'note-minus',\r\n NOTIFICATION = 'notification',\r\n NOTIFICATION_2 = 'notification-2',\r\n NOTIFICATION_3 = 'notification-3',\r\n NOTIFICATION_4 = 'notification-4',\r\n PHONE = 'phone',\r\n PLAY = 'play',\r\n PLAY_1 = 'play-1',\r\n PLUS = 'plus',\r\n PRESENTATION = 'presentation',\r\n PRESENTATION_2 = 'presentation-2',\r\n QUESTION_ROUNDED = 'question-rounded',\r\n ROTATE_LEFT = 'rotate-left',\r\n ROTATE_RIGHT = 'rotate-right',\r\n SAVE = 'save',\r\n SCAN = 'scan',\r\n SCAN_2 = 'scan-2',\r\n SCAN_3 = 'scan-3',\r\n SEARCH = 'search',\r\n SEND = 'send',\r\n SETTINGS = 'settings',\r\n SETTINGS_2 = 'settings-2',\r\n SETTINGS_3 = 'settings-3',\r\n SHIELD = 'shield',\r\n SHIELD_CHECK = 'shield-check',\r\n SHIELD_CROSS = 'shield-cross',\r\n SHOPPING = 'shopping',\r\n SORT = 'sort',\r\n STAR = 'star',\r\n STARS = 'stars',\r\n STATUS = 'status',\r\n SUN = 'sun',\r\n SUNRISE = 'sunrise',\r\n SWAP = 'swap',\r\n TERMINAL = 'terminal',\r\n TEXT = 'text',\r\n TICK = 'tick',\r\n TODO = 'todo',\r\n TV = 'tv',\r\n UNLOCK = 'unlock',\r\n USER_ADD = 'user-add',\r\n USER_SCAN = 'user-scan',\r\n USER_TWO = 'user-two',\r\n USER = 'user',\r\n UNCHECKED = 'unchecked',\r\n VIDEO = 'video',\r\n VOLUME_CROSS = 'volume-cross',\r\n VOLUME_HIGH = 'volume-high',\r\n VOLUME_LOW = 'volume-low',\r\n VOLUME_MUTE = 'volume-mute',\r\n VOLUME_SLASH = 'volume-slash',\r\n WALLET = 'wallet',\r\n WORK = 'work',\r\n WEB = 'web',\r\n ZOOM_IN = 'zoom-in',\r\n ZOOM_OUT = 'zoom-out',\r\n}\r\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n computed,\n effect,\n Input,\n input,\n signal,\n} from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MatIcon, MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { Icons } from \"../../../models/erp-icons.model\";\nimport { InputField } from \"../../../models/erp-inputs.model\";\n\n@Component({\n selector: \"erp-date\",\n imports: [CommonModule, TranslateModule, MatIcon, MatIconModule, FormsModule],\n templateUrl: \"./s-date.html\",\n styleUrl: \"./s-date.scss\",\n})\nexport class ErpDate {\n Icons = Icons;\n\n icon = input<Icons>(Icons.CALENDAR);\n @Input() field!: InputField<Date>;\n\n open = signal<boolean>(false);\n\n get fieldValue(): Date | null {\n return this.field!.value();\n }\n\n get label(): string | undefined {\n return this.field.label?.();\n }\n\n get placeholder(): string {\n return this.field.placeholder?.() || \"PLACEHOLDERS.DEFAULT\";\n }\n\n get touched(): boolean {\n return this.field.touched(); // note the () after field\n }\n\n get required(): boolean {\n return this.field.required?.() ?? false;\n }\n\n day = signal<number | undefined>(undefined);\n month = signal<number | undefined>(undefined); // 1–12\n year = signal<number | undefined>(undefined);\n\n displayedValue = signal<string>(\"\");\n\n calendarMatrix = computed(() => {\n const month = this.month();\n const year = this.year();\n if (!month || !year) return [];\n return this.getCalendarMatrix(year, month);\n });\n\n daysCode = [\n \"DAYS_SHORT.01\",\n \"DAYS_SHORT.02\",\n \"DAYS_SHORT.03\",\n \"DAYS_SHORT.04\",\n \"DAYS_SHORT.05\",\n \"DAYS_SHORT.06\",\n \"DAYS_SHORT.07\",\n ];\n\n constructor() {\n effect(() => {\n const selectedValue = this.field.value();\n if (selectedValue !== null) {\n this.displayedValue.set(\n this.getDayNumber(selectedValue.getDate()) +\n \"-\" +\n this.getMonthNumber(selectedValue.getMonth() + 1) +\n \"-\" +\n selectedValue.getFullYear(),\n );\n } else {\n this.displayedValue.set(\"\");\n }\n });\n }\n ngOnInit(): void {\n console.log(\"matrix for 02/2026\", this.getCalendarMatrix(2026, 4));\n\n this.initCurrentDate();\n }\n\n toggleOpen(event: MouseEvent) {\n event.stopPropagation();\n this.open.set(!this.open());\n this.field.setTouched();\n }\n\n initCurrentDate() {\n const selectedValue = this.field.value();\n const today = selectedValue ? selectedValue : new Date();\n this.day.set(today.getDate());\n this.month.set(today.getMonth() + 1); // JS months 0-11\n this.year.set(today.getFullYear());\n\n if (selectedValue !== null) {\n console.log(\"selectedValue\", selectedValue);\n this.displayedValue.set(\n this.getDayNumber(today.getDate()) +\n \"-\" +\n this.getMonthNumber(today.getMonth() + 1) +\n \"-\" +\n today.getFullYear(),\n );\n }\n }\n\n getCalendarMatrix(year: number, month: number) {\n const matrix: { day: number; currentMonth: boolean }[][] = [];\n\n // Get first day of the month (0 = Sunday, 1 = Monday, …)\n const firstDay = new Date(year, month - 1, 1).getDay();\n const daysInMonth = new Date(year, month, 0).getDate();\n const daysInPrevMonth = new Date(year, month - 1, 0).getDate();\n\n let currentDay = 1;\n let nextMonthDay = 1;\n\n for (let row = 0; row < 5; row++) {\n // use 6 if you want 6 rows\n const week: { day: number; currentMonth: boolean }[] = [];\n\n for (let col = 0; col < 7; col++) {\n const cellIndex = row * 7 + col;\n\n if (cellIndex < firstDay) {\n // Previous month\n week.push({\n day: daysInPrevMonth - firstDay + col + 1,\n currentMonth: false,\n });\n } else if (currentDay <= daysInMonth) {\n // Current month\n week.push({\n day: currentDay++,\n currentMonth: true,\n });\n } else {\n // Next month\n week.push({\n day: nextMonthDay++,\n currentMonth: false,\n });\n }\n }\n\n matrix.push(week);\n }\n\n return matrix;\n }\n\n previousMonth(event: MouseEvent) {\n event.stopPropagation();\n\n const month = this.month();\n const year = this.year();\n if (!month || !year) return;\n\n let newMonth = month - 1;\n let newYear = year;\n\n if (newMonth < 1) {\n newMonth = 12;\n newYear = year - 1;\n }\n\n this.month.set(newMonth);\n this.year.set(newYear);\n }\n\n nextMonth(event: MouseEvent) {\n event.stopPropagation();\n\n const month = this.month();\n const year = this.year();\n if (!month || !year) return;\n\n let newMonth = month + 1;\n let newYear = year;\n\n if (newMonth > 12) {\n newMonth = 1;\n newYear = year + 1;\n }\n\n this.month.set(newMonth);\n this.year.set(newYear);\n }\n\n setMonth(month: number) {\n this.month.set(month);\n }\n\n setYear(year: number) {\n this.year.set(year);\n }\n\n getMonthCode() {\n const month = this.month();\n if (!month) return \"\";\n return month < 10 ? `MONTHS.0${this.month()}` : `MONTHS.${this.month()}`;\n }\n\n getDayNumber(day: number) {\n if (!day) return \"\";\n return day < 10 ? `0${day}` : `${day}`;\n }\n\n getMonthNumber(month: number) {\n if (!month) return \"\";\n return month < 10 ? `0${month}` : `${month}`;\n }\n\n selectDate(event: MouseEvent, day: number) {\n event.stopPropagation();\n const year = this.year();\n const month = this.month();\n if (!year || !month) return;\n this.day.set(day);\n this.field.setValue(new Date(year, month - 1, day));\n\n const date = `${this.getDayNumber(day)}-${this.getMonthNumber(month)}-${year}`;\n this.displayedValue.set(date);\n this.open.set(false);\n }\n\n dayIsCurrent(day: number) {\n const today = new Date();\n return (\n day === today.getDate() &&\n this.month() === today.getMonth() + 1 &&\n this.year() === today.getFullYear()\n );\n }\n\n dayIsSelected(day: number) {\n const selectedDate = this.field.value();\n if (!selectedDate) return false;\n return (\n day === this.day() &&\n this.month() === selectedDate.getMonth() + 1 &&\n this.year() === selectedDate.getFullYear()\n );\n }\n}\n","<div class=\"min-w-full flex flex-col gap-1\">\n <div>\n @if (label) {\n <p>\n {{ label | translate}} @if(required === true){\n <span class=\"text-danger-600\">*</span>}\n </p>\n }\n <div\n class=\"pretty-select px-4 py-3 min-w-full text-primary-700 rounded-xl border-2 border-input-border transition-all duration-200 ease-in-out\"\n >\n <div\n class=\"flex flex-row min-w-full justify-between items-center cursor-pointer\"\n (click)=\"toggleOpen($event); $event.stopPropagation()\"\n >\n <input\n type=\"text\"\n [(ngModel)]=\"displayedValue\"\n [readOnly]=\"true\"\n (click)=\"toggleOpen($event); $event.stopPropagation()\"\n placeholder=\"Select option\"\n />\n <mat-icon\n (click)=\"toggleOpen($event); $event.stopPropagation()\"\n class=\"text-primary-700\"\n [svgIcon]=\"icon()\"\n ></mat-icon>\n </div>\n @if (open() === true && calendarMatrix().length > 0) {\n <div class=\"dropdown-container pt-2\">\n <div\n class=\"dropdown px-4 py-3 text-primary-700 rounded-xl flex flex-col gap-4\"\n >\n <!--Header-->\n <div class=\"flex flex-row justify-between items-center\">\n <mat-icon\n class=\"cursor-pointer text-primary-900\"\n [svgIcon]=\"Icons.ARROW_LEFT_ROUNDED\"\n (click)=\"previousMonth($event)\"\n ></mat-icon>\n <p class=\"text-primary-900 font-semibold\">\n {{getMonthCode()|translate}}&nbsp;{{year()}}\n </p>\n <mat-icon\n class=\"cursor-pointer text-primary-900\"\n [svgIcon]=\"Icons.ARROW_RIGHT_ROUNDED\"\n (click)=\"nextMonth($event)\"\n ></mat-icon>\n </div>\n <!-- Content -->\n <div class=\"grid grid-cols-7 grid-rows-6 gap-2\">\n @for (day of daysCode; track $index) {\n <div\n class=\"flex flex-col items-center justify-center cursor-pointer\"\n >\n <p class=\"text-neutral-300 font-semibold\">\n {{ day | translate }}\n </p>\n </div>\n } @for (row of calendarMatrix(); track $index) { @for (day of row;\n track $index) {\n <div\n class=\"flex flex-col items-center justify-center cursor-pointer rounded-full p-1\"\n [ngClass]=\"{'bg-primary-700': dayIsSelected(day.day) && day.currentMonth === true}\"\n (click)=\"selectDate($event, day.day)\"\n >\n <p\n [ngClass]=\"{\n 'text-white font-regular': dayIsSelected(day.day) && day.currentMonth === true,\n 'text-primary-600 font-semibold': dayIsCurrent(day.day) === true && day.currentMonth === true,\n 'text-primary-900 font-semibold': day.currentMonth === true && dayIsCurrent(day.day) === false,\n 'text-gray-300': day.currentMonth === false\n }\"\n >\n {{ getDayNumber(day.day) }}\n </p>\n </div>\n } }\n </div>\n </div>\n </div>\n }\n </div>\n @if (touched && field.error?.()) {\n <p class=\"text-red-700 text-xs\">{{ field.error?.() | translate }}</p>\n }\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, input } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MatIcon, MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { Icons } from \"../../../models/erp-icons.model\";\nimport { InputField } from \"../../../models/erp-inputs.model\";\n\n@Component({\n selector: \"erp-input-text\",\n imports: [CommonModule, TranslateModule, MatIcon, MatIconModule, FormsModule],\n templateUrl: \"./s-input-text.html\",\n styleUrl: \"./s-input-text.scss\",\n})\nexport class ErpInputText<String> {\n Icons = Icons;\n\n icon = input<Icons>();\n @Input() field!: InputField<String>; // plain object, not a signal\n\n get label(): string | undefined {\n return this.field.label?.();\n }\n\n get placeholder(): string {\n return this.field.placeholder?.() || \"PLACEHOLDERS.DEFAULT\";\n }\n\n get touched(): boolean {\n return this.field.touched(); // note the () after field\n }\n\n get required(): boolean {\n return this.field.required?.() ?? false;\n }\n}\n","<div class=\"min-w-full flex flex-col gap-1\">\n <div>\n @if (label) {\n <p class=\"font-bold\">\n {{ label | translate}}@if(required === true){\n <span class=\"text-danger-600\">*</span>}\n </p>\n }\n <div\n class=\"pretty-select px-4 py-3 min-w-full text-primary-700 rounded-xl border-2 border-input-border\"\n >\n <div\n class=\"flex flex-row min-w-full justify-between gap-4 items-center cursor-pointer\"\n >\n <input\n type=\"text\"\n class=\"flex-1\"\n [ngModel]=\"field.value()\"\n (ngModelChange)=\"field.setValue($event)\"\n (blur)=\"field.setTouched()\"\n [placeholder]=\"placeholder | translate\"\n />\n @if (icon(); as icon) {\n <mat-icon class=\"text-primary-700\" [svgIcon]=\"icon\"></mat-icon>\n }\n </div>\n </div>\n @if (touched && field.error?.()) {\n <p class=\"text-red-700 text-xs\">{{ field.error?.() | translate }}</p>\n }\n </div>\n</div>\n","import { CommonModule, NgTemplateOutlet } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n HostListener,\n input,\n Input,\n signal,\n TemplateRef,\n} from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatIcon, MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { Icons } from \"../../../models/erp-icons.model\";\nimport { InputField } from \"../../../models/erp-inputs.model\";\n\n@Component({\n selector: \"erp-select\",\n imports: [\n FormsModule,\n ReactiveFormsModule,\n MatIcon,\n MatIconModule,\n CommonModule,\n NgTemplateOutlet,\n TranslateModule,\n ],\n templateUrl: \"./s-select.html\",\n styleUrl: \"./s-select.scss\",\n})\nexport class ErpSelect<T extends object> {\n @Input() selectedTemplate?: TemplateRef<any>;\n @Input() optionTemplate?: TemplateRef<any>;\n\n icon = input<Icons>(Icons.ARROW_BOTTOM_ROUNDED);\n\n // Remove model.required\n @Input() field!: InputField<T>; // plain object, not a signal\n\n open = signal<boolean>(false);\n\n get fieldValue(): T | null {\n return this.field!.value();\n }\n\n get label(): string | undefined {\n return this.field.label?.();\n }\n\n get placeholder(): string {\n return this.field.placeholder?.() || \"PLACEHOLDERS.DEFAULT\";\n }\n\n get options(): T[] {\n return this.field.options?.() ?? [];\n }\n\n get optionValue(): keyof T {\n return this.field.optionValue!;\n }\n\n get optionLabel(): keyof T {\n return this.field.optionLabel!;\n }\n\n get touched(): boolean {\n return this.field.touched(); // note the () after field\n }\n\n get error(): string | null | undefined {\n return this.field.error?.(); // same here\n }\n\n get displayValue(): string {\n const currentObject = this.field.value(); // Get the object from the signal\n if (!currentObject) return \"\";\n\n // Access the property dynamically using the optionLabel key\n return (currentObject as any)[this.field.optionLabel ?? \"label\"] || \"\";\n }\n\n get required(): boolean {\n return this.field.required?.() ?? false;\n }\n\n constructor(private eRef: ElementRef) {}\n\n toggleOpen(event: MouseEvent) {\n event.stopPropagation();\n this.open.set(!this.open());\n this.field.setTouched();\n }\n\n select(option: T) {\n this.field!.setValue(option);\n this.field!.setTouched();\n this.open.set(false);\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n clickOutside(event: Event) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.open.set(false);\n }\n }\n\n getOptionLabel(option: T): string {\n const key = this.field.optionLabel;\n if (key) return option[key] as string;\n else return \"optionKey not defined\";\n }\n}\n","@if (field;as field) {\n<div class=\"min-w-full flex flex-col gap-1\">\n <div>\n @if (label) {\n <p>\n {{ label | translate}} @if(required === true){\n <span class=\"text-danger-600\">*</span>}\n </p>\n }\n <div\n class=\"pretty-select px-4 py-3 min-w-full text-primary-700 rounded-xl border-2 border-input-border transition-all duration-200 ease-in-out\"\n (click)=\"toggleOpen($event)\"\n >\n <div\n class=\"flex flex-row min-w-full justify-between items-center cursor-pointer\"\n >\n @if (selectedTemplate && field.value() !== null) {\n <ng-container\n *ngTemplateOutlet=\"selectedTemplate; context: { $implicit: field.value(), value: field.value() }\"\n ></ng-container>\n }@else {\n <input\n type=\"text\"\n [value]=\"displayValue | translate\"\n [readOnly]=\"true\"\n (click)=\"toggleOpen($event); $event.stopPropagation()\"\n [placeholder]=\"placeholder | translate\"\n />\n }\n <mat-icon\n (click)=\"toggleOpen($event); $event.stopPropagation()\"\n class=\"text-primary-700\"\n [svgIcon]=\"icon()\"\n ></mat-icon>\n </div>\n @if (open() === true) {\n <div class=\"dropdown-container pt-2\">\n <div class=\"dropdown px-4 py-3 min-w-full text-primary-700 rounded-xl\">\n @for (option of options; track $index) {\n <div\n class=\"option cursor-pointer p-2 border-lg hover:bg-primary-200 rounded-lg hover:text-primary-900 transition-all duration-200 ease-in-out\"\n [ngClass]=\"{\n 'text-primary-900 bg-primary-100': fieldValue !== null && fieldValue[optionValue] === option[optionValue],\n 'text-primary-500': fieldValue === null || fieldValue[optionValue] !== option[optionValue]\n }\"\n (click)=\"$event.stopPropagation(); select(option)\"\n >\n @if(optionTemplate) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option, value: option }\"\n ></ng-container>\n }@else{ {{ getOptionLabel(option) | translate}} }\n </div>\n } @if (options.length === 0) {\n <div class=\"no-results\">No results</div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n @if (touched && field.error?.()) {\n <p class=\"text-red-700 text-xs\">{{ field.error?.() | translate }}</p>\n }\n</div>\n}\n","import { Component, input, Input } from \"@angular/core\";\n\n@Component({\n selector: \"erp-status-cell\",\n imports: [],\n templateUrl: \"./status-cell.html\",\n styleUrl: \"./status-cell.scss\",\n})\nexport class ErpStatusCell {\n label = input.required<string>();\n @Input() textColor: string | undefined = undefined;\n @Input() backgroundColor: string | undefined = undefined;\n}\n","<div class=\"flex flex-row justify-center items-center\">\n <div\n class=\"rounded-lg p-2\"\n [style.background]=\"backgroundColor?backgroundColor:'var(--primary-500)'\"\n >\n <p class=\"text-xs\" [style.color]=\"textColor?textColor:'white'\">\n {{label()}}\n </p>\n </div>\n</div>\n","import { CommonModule, NgTemplateOutlet } from \"@angular/common\";\nimport {\n Component,\n computed,\n Input,\n model,\n Signal,\n signal,\n TemplateRef,\n} from \"@angular/core\";\nimport { MatIcon, MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { Action } from \"../../models/erp-actions.model\";\nimport { Icons } from \"../../models/erp-icons.model\";\nimport { InputTypes } from \"../../models/erp-inputs.model\";\n\n// table.models.ts\nexport interface ColumnDef<T> {\n key: keyof T; // property name in data\n header: string; // column header text\n cellAlignment?: \"START\" | \"END\" | \"CENTER\";\n type?: InputTypes;\n}\n\n@Component({\n selector: \"erp-table\",\n imports: [\n CommonModule,\n NgTemplateOutlet,\n MatIconModule,\n MatIcon,\n TranslateModule,\n ],\n templateUrl: \"./table.html\",\n styleUrl: \"./table.scss\",\n})\nexport class ErpTable<T extends object> {\n Icons = Icons;\n\n columns = model<ColumnDef<T>[]>([]);\n data = model<T[]>([]);\n idCol = model<keyof T | null>(null);\n selectedData = model<T[]>([]);\n @Input() rowSelection: boolean = false;\n @Input() withPagination: boolean = false;\n\n @Input() templates: Partial<Record<keyof T, TemplateRef<any>>> = {};\n\n @Input() actionHeaderLabel: string = \"LABELS.ACTIONS\";\n @Input() selectedItemsLabel: string | undefined = undefined;\n\n selectActions = model<Action[]>([]);\n perItemActions = model<Action[]>([]);\n\n bottomBarFading = signal<boolean>(false);\n\n constructor() {}\n\n ngOnInit() {\n if (this.rowSelection === true && this.idCol() === null) {\n throw new Error(\"idCol is required when rowSelection is true\");\n }\n\n if (this.idCol() && this.data().length > 0) {\n const key = this.idCol() as keyof T;\n const ids = this.data().map((d) => d[key]);\n if (new Set(ids).size !== ids.length) {\n throw new Error(\"idCol must be unique\");\n }\n }\n }\n\n getTemplate(key: keyof T): TemplateRef<any> | undefined {\n return this.templates[key];\n }\n\n isAllToggled: Signal<boolean> = computed(\n () => this.data().length === this.selectedData().length,\n );\n\n toggleAll() {\n if (this.isAllToggled() === true) {\n this.bottomBarFading.set(true);\n setTimeout(() => {\n this.selectedData.set([]);\n this.bottomBarFading.set(false);\n }, 220);\n } else {\n this.selectedData.set([...this.data()]);\n }\n }\n\n toggleRow(row: T) {\n if (this.isRowSelected(row) === true) {\n if (this.selectedData().length === 1) {\n this.bottomBarFading.set(true);\n setTimeout(() => {\n this.selectedData.set(\n this.selectedData().filter(\n (d) =>\n d[this.idCol() as keyof T] !== row[this.idCol() as keyof T],\n ),\n );\n this.bottomBarFading.set(false);\n }, 220);\n } else {\n this.selectedData.set(\n this.selectedData().filter(\n (d) => d[this.idCol() as keyof T] !== row[this.idCol() as keyof T],\n ),\n );\n }\n } else {\n this.selectedData.set([...this.selectedData(), row]);\n }\n }\n\n isRowSelected(row: T): boolean {\n const selected = this.selectedData().find(\n (d) => d[this.idCol() as keyof T] === row[this.idCol() as keyof T],\n );\n if (selected) return true;\n return false;\n }\n\n clearSelectedData() {\n this.bottomBarFading.set(true);\n setTimeout(() => {\n this.selectedData.set([]);\n this.bottomBarFading.set(false);\n }, 220);\n }\n}\n","@if (columns() && columns().length > 0) {\n<table class=\"app-table min-w-full\">\n <thead>\n <tr>\n @if( rowSelection === true){\n <th>\n <span\n style=\"\n display: flex;\n align-items: center;\n justify-content: start;\n cursor: pointer;\n \"\n (click)=\"toggleAll()\"\n >\n @if (isAllToggled()=== true) {\n <mat-icon class=\"text-white\" [svgIcon]=\"Icons.CHECK\"></mat-icon>\n }@else {\n <mat-icon class=\"text-white\" [svgIcon]=\"Icons.UNCHECKED\"></mat-icon>\n }\n </span>\n </th>\n } @for (col of columns(); track col.key) {\n <th>\n <p\n class=\"text-white\"\n [ngClass]=\"{'text-center':col.cellAlignment && col.cellAlignment === 'CENTER',\n 'text-start':!col.cellAlignment || col.cellAlignment === 'START',\n 'text-end':col.cellAlignment && col.cellAlignment === 'END'\n }\"\n >\n {{ col.header }}\n </p>\n </th>\n } @if(perItemActions().length > 0){\n <th><p class=\"text-center text-white\">{{actionHeaderLabel}}</p></th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (row of data(); track row) {\n <tr>\n @if(rowSelection){\n <td class=\"nowrap-cell\">\n <span\n style=\"\n display: flex;\n align-items: center;\n justify-content: start;\n cursor: pointer;\n \"\n (click)=\"toggleRow(row)\"\n >\n @if (isRowSelected(row) === true) {\n <mat-icon class=\"text-primary-700\" [svgIcon]=\"Icons.CHECK\"></mat-icon>\n }@else {\n <mat-icon\n class=\"text-primary-700\"\n [svgIcon]=\"Icons.UNCHECKED\"\n ></mat-icon>\n }\n </span>\n </td>\n } @for (col of columns(); track col.key) {\n <td>\n @if (getTemplate(col.key); as tpl) {\n\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row }\"\n >\n </ng-container>\n } @else {\n <p\n [ngClass]=\"{'text-center':col.cellAlignment && col.cellAlignment === 'CENTER',\n 'text-start':!col.cellAlignment || col.cellAlignment === 'START',\n 'text-end':col.cellAlignment && col.cellAlignment === 'END'\n }\"\n >\n {{ row[col.key] }}\n </p>\n }\n </td>\n } @if (perItemActions().length > 0) {\n <td>\n <div class=\"flex flex-row justify-center items-center gap-2\">\n @for (action of perItemActions(); track $index) { @if\n (action.hasRole()) {\n <mat-icon\n [svgIcon]=\"action.icon\"\n style=\"cursor: pointer\"\n [style.color]=\"action.status?.textColor ? action.status!.textColor : 'var(--primary-700)'\"\n (click)=\"action.execute([row])\"\n ></mat-icon>\n } }\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n} @else {\n<div class=\"app-table-empty\">No data available.</div>\n} @if (selectedData().length >0) {\n<div\n class=\"slide-in-top fixed inset-x-0 bottom-0 bg-primary-700 h-[70px] px-8 flex flex-row justify-between items-center gap-8\"\n [ngClass]=\"{'slide-out-top':bottomBarFading()===true}\"\n>\n <p class=\"text-white\">\n @if (!selectedItemsLabel) { Nombre d'items selectionnées:&nbsp; {{\n selectedData().length}} } @else { {{selectedItemsLabel}} }\n </p>\n <div class=\"flex flex-row justify-end items-center gap-4\">\n @for (action of selectActions(); track $index) { @if (action.hasRole()) {\n <div\n class=\"flex flex-row gap-2 items-center cursor-pointer border border-white rounded-xl py-2 px-4\"\n (click)=\"action.execute(selectedData())\"\n >\n <mat-icon class=\"text-white\" [svgIcon]=\"action.icon\"></mat-icon>\n <p class=\"text-white\">{{action.title |translate}}</p>\n </div>\n } }\n <div\n (click)=\"clearSelectedData()\"\n class=\"flex flex-row justify-center items-center cursor-pointer\"\n >\n <mat-icon [svgIcon]=\"Icons.CLOSE\" class=\"text-white\"></mat-icon>\n </div>\n </div>\n</div>\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"erp-user-cell\",\n imports: [CommonModule],\n templateUrl: \"./user-cell.html\",\n styleUrl: \"./user-cell.scss\",\n})\nexport class ErpUserCell {\n @Input() firstName = \"\";\n @Input() lastName = \"\";\n @Input() email = \"\";\n\n constructor() {}\n}\n","<div class=\"min-w-full flex flex-row items-center gap-2\">\n <div class=\"h-[15px] w-[15px] rounded-full bg-primary-400\"></div>\n <div class=\"\">\n <p class=\"text-primary-900\">{{firstName}}&nbsp;{{lastName}}</p>\n <p class=\"text-gray-400\">{{email}}</p>\n </div>\n</div>\n","import { Injectable, signal } from \"@angular/core\";\r\n\r\nexport interface Config {\r\n hostOrigin: string;\r\n remoteOrigin: string;\r\n backOrigin: string;\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ErpConfigService {\r\n private hostOrigin = signal<string>(\"\");\r\n private remoteOrigin = signal<string>(\"\");\r\n private backOrigin = signal<string>(\"\");\r\n\r\n constructor() {}\r\n\r\n setConfig(config: Config) {\r\n this.hostOrigin.set(config.hostOrigin);\r\n this.remoteOrigin.set(config.remoteOrigin);\r\n this.backOrigin.set(config.backOrigin);\r\n }\r\n\r\n setHostOrigin(origin: string) {\r\n this.hostOrigin.set(origin);\r\n }\r\n\r\n setRemoteOrigin(origin: string) {\r\n this.remoteOrigin.set(origin);\r\n }\r\n\r\n setBackOrigin(origin: string) {\r\n this.backOrigin.set(origin);\r\n }\r\n\r\n getConfig(): Config {\r\n return {\r\n hostOrigin: this.hostOrigin(),\r\n remoteOrigin: this.remoteOrigin(),\r\n backOrigin: this.backOrigin(),\r\n };\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport {\n ErpPaginatedResponse,\n ErpResponse,\n} from \"../models/erp-response.model\";\nimport { ErpConfigService } from \"./erp-config.service\";\n\n@Injectable({ providedIn: \"root\" })\nexport class ErpApiService {\n private readonly http = inject(HttpClient);\n private readonly config = inject(ErpConfigService);\n\n private baseUrl = \"\";\n constructor() {\n this.baseUrl = this.config.getConfig().backOrigin;\n }\n\n get<T>(endpoint: string, params?: Record<string, string>): Observable<T> {\n const httpParams = params\n ? new HttpParams({ fromObject: params })\n : undefined;\n return this.http.get<T>(`${this.baseUrl}${endpoint}`, {\n params: httpParams,\n });\n }\n\n getPaginated<T>(\n endpoint: string,\n params?: Record<string, string>,\n ): Observable<ErpPaginatedResponse<T>> {\n const httpParams = params\n ? new HttpParams({ fromObject: params })\n : undefined;\n return this.http.get<ErpPaginatedResponse<T>>(\n `${this.baseUrl}${endpoint}`,\n {\n params: httpParams,\n },\n );\n }\n\n getByID<T>(\n endpoint: string,\n id: number,\n params?: Record<string, string>,\n ): Observable<T> {\n const httpParams = params\n ? new HttpParams({ fromObject: params })\n : undefined;\n return this.http.get<T>(`${this.baseUrl}${endpoint}/${id}`, {\n params: httpParams,\n });\n }\n\n post<T>(endpoint: string, body: unknown): Observable<any> {\n return this.http.post<any>(`${this.baseUrl}${endpoint}`, body, {\n headers: new HttpHeaders({ \"Content-Type\": \"application/json\" }),\n });\n }\n\n put<T>(endpoint: string, body: unknown): Observable<ErpResponse<T>> {\n return this.http.put<ErpResponse<T>>(`${this.baseUrl}${endpoint}`, body, {\n headers: new HttpHeaders({ \"Content-Type\": \"application/json\" }),\n });\n }\n\n patch<T>(endpoint: string, body: unknown): Observable<ErpResponse<T>> {\n return this.http.patch<ErpResponse<T>>(`${this.baseUrl}${endpoint}`, body);\n }\n\n delete<T>(endpoint: string): Observable<ErpResponse<T>> {\n return this.http.delete<ErpResponse<T>>(`${this.baseUrl}${endpoint}`);\n }\n}\n","import { Injectable, computed, inject, signal } from \"@angular/core\";\nimport Keycloak from \"keycloak-js\";\n\n@Injectable({ providedIn: \"root\" })\nexport class ErpAuthService {\n private readonly keycloak = inject(Keycloak);\n\n // ── Reactive state ────────────────────────────────────────────────────────\n\n /** True when the user has an active Keycloak session */\n readonly isAuthenticated = signal<boolean>(\n this.keycloak.authenticated ?? false,\n );\n\n /** Decoded token payload as a signal */\n readonly tokenParsed = signal<Record<string, unknown> | undefined>(\n this.keycloak.tokenParsed as Record<string, unknown> | undefined,\n );\n\n /** Convenience: logged-in username */\n readonly username = computed(\n () =>\n (this.tokenParsed() as { preferred_username?: string })\n ?.preferred_username ?? \"\",\n );\n\n /** Convenience: user's realm roles */\n readonly roles = computed<string[]>(\n () => this.keycloak.realmAccess?.roles ?? [],\n );\n\n // ── Actions ───────────────────────────────────────────────────────────────\n\n /**\n * Redirect to the Keycloak login page.\n * @param redirectUri Where to return after login. Defaults to current URL.\n */\n login(redirectUri?: string): Promise<void> {\n return this.keycloak.login({\n redirectUri: redirectUri ?? window.location.href,\n });\n }\n\n /**\n * Logout and redirect.\n * @param redirectUri Where to redirect after logout. Defaults to current origin.\n */\n logout(redirectUri?: string): Promise<void> {\n return this.keycloak.logout({\n redirectUri: redirectUri ?? window.location.origin,\n });\n }\n\n /**\n * Redirect to Keycloak's account management page.\n */\n manageAccount(): Promise<void> {\n return this.keycloak.accountManagement();\n }\n\n /**\n * Get the current bearer token string (for manual use if needed).\n */\n getToken(): Promise<string> {\n return this.keycloak.token\n ? Promise.resolve(this.keycloak.token)\n : Promise.reject(\"No token available\");\n }\n\n /**\n * Check if the user has a specific realm role.\n */\n hasRole(role: string): boolean {\n return this.keycloak.hasRealmRole(role);\n }\n\n /**\n * Check if the user has a specific resource (client) role.\n */\n hasResourceRole(role: string, resource?: string): boolean {\n return this.keycloak.hasResourceRole(role, resource);\n }\n}\n","import { Injectable, signal } from \"@angular/core\";\n\nexport type NotificationType = \"success\" | \"error\" | \"warning\" | \"info\";\n\nexport interface ErpNotification {\n id: number;\n type: NotificationType;\n title: string;\n message?: string;\n duration?: number;\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class ErpNotificationService {\n readonly notifications = signal<ErpNotification[]>([]);\n}\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { catchError, map, Observable, of } from \"rxjs\";\r\nimport { ErpConfigService } from \"./erp-config.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ErpTranslationService {\r\n translate = inject(TranslateService);\r\n config = inject(ErpConfigService);\r\n constructor(private http: HttpClient) {}\r\n\r\n getHostTranslationForKey(\r\n key: string,\r\n lang: string = \"fr\",\r\n ): Observable<string> {\r\n return this.http\r\n .get<\r\n Record<string, string>\r\n >(`${this.config.getConfig().hostOrigin}/assets/i18n/${lang}.json`)\r\n .pipe(\r\n map((data) => data[key] ?? \"\"), // pick the key\r\n catchError(() => of(\"\")), // on error, emit empty string\r\n );\r\n }\r\n}\r\n","import { Injectable, inject, signal } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Observable } from \"rxjs\";\n\nexport type ErpLang = string; // open-ended: 'en' | 'fr' | 'ar' | ...\n\n@Injectable({ providedIn: \"root\" })\nexport class ErpI18nService {\n private readonly translate = inject(TranslateService);\n\n /** Reactive signal of the currently active language */\n readonly currentLang = signal<ErpLang>(\n this.translate.currentLang ?? this.translate.defaultLang,\n );\n\n constructor() {\n // Keep the signal in sync when language changes externally\n this.translate.onLangChange.subscribe(({ lang }) => {\n this.currentLang.set(lang);\n });\n }\n\n /**\n * Switch the active language and persist the choice to localStorage.\n */\n use(lang: ErpLang): Observable<unknown> {\n localStorage.setItem(\"itdev_erp_lang\", lang);\n return this.translate.use(lang);\n }\n\n /**\n * Restore the persisted language on app startup.\n * Call this in your root component's ngOnInit or APP_INITIALIZER.\n */\n restorePersistedLang(): void {\n const saved = localStorage.getItem(\"itdev_erp_lang\");\n if (saved) {\n this.translate.use(saved);\n }\n }\n\n /**\n * Translate a key instantly (synchronous).\n */\n instant(key: string, params?: Record<string, unknown>): string {\n return this.translate.instant(key, params);\n }\n\n /**\n * Translate a key reactively (observable — auto-updates on lang change).\n */\n get(key: string, params?: Record<string, unknown>): Observable<string> {\n return this.translate.get(key, params);\n }\n\n /** All available languages registered via TranslateService */\n /*get availableLangs(): ErpLang[] {\n return this.translate.getLangs();\n }*/\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport {\n EnvironmentProviders,\n importProvidersFrom,\n makeEnvironmentProviders,\n} from \"@angular/core\";\nimport { TranslateLoader, TranslateModule } from \"@ngx-translate/core\";\nimport { Observable } from \"rxjs\";\n\nexport interface ErpTranslateConfig {\n /**\n * Path to the consuming app's translation JSON files.\n * Default: 'assets/i18n/'\n */\n translationsPath?: string;\n /**\n * Default and fallback language.\n * Default: 'fr'\n */\n defaultLang?: string;\n}\n/**\n * Call once in your app.config.ts providers array.\n *\n * @example\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideHttpClient(),\n * provideErpTranslate({ defaultLang: 'fr' }),\n * ],\n * };\n */\nexport function provideErpTranslate(\n config: ErpTranslateConfig = {},\n): EnvironmentProviders {\n const path = config.translationsPath ?? \"assets/i18n/\";\n const defaultLang = config.defaultLang ?? \"fr\";\n\n return makeEnvironmentProviders([\n importProvidersFrom(\n TranslateModule.forRoot({\n // ❌ No isolate:true — library components must share\n // the same TranslateService instance as the app\n defaultLanguage: defaultLang,\n useDefaultLang: true, // fallback to defaultLang if key is missing\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n ),\n ]);\n}\n\nexport class CustomTranslateLoader implements TranslateLoader {\n constructor(private http: HttpClient) {}\n getTranslation(lang: string): Observable<any> {\n return this.http.get(`assets/i18n/${lang}.json`);\n }\n}\n\nexport function HttpLoaderFactory(http: HttpClient) {\n return new CustomTranslateLoader(http);\n}\n","import { Signal } from '@angular/core';\r\n\r\nexport enum InputTypes {\r\n GROUP = 'GROUP',\r\n TEXT = 'TEXT',\r\n TEXT_AR = 'TEXT_AR',\r\n STATUS = 'STATUS',\r\n DATE = 'DATE',\r\n NUMBER = 'NUMBER',\r\n CURRENCY = 'CURRENCY',\r\n BIG_INT_CURRENCY = 'BIG_INT_CURRENCY',\r\n MULTI_DATE = 'MULTI_DATE',\r\n SELECT = 'SELECT',\r\n MULTI_SELECT = 'MULTI_SELECT',\r\n PHONE_NUMBER = 'PHONE_NUMBER',\r\n FAX = 'FAX',\r\n EMAIL = 'EMAIL',\r\n PASSWORD = 'PASSWORD',\r\n AUTOCOMPLETE = 'AUTOCOMPLETE',\r\n TEXT_AREA = 'TEXT_AREA',\r\n MASK = 'MASK',\r\n CHECKBOX = 'CHECK_BOX',\r\n}\r\n\r\nexport interface InputField<T> {\r\n value: Signal<T | null>;\r\n setValue: (value: T | null) => void;\r\n touched: Signal<boolean>;\r\n setTouched: () => void;\r\n type?: InputTypes;\r\n error?: Signal<string | null>;\r\n required?: Signal<boolean>;\r\n label?: Signal<string>;\r\n placeholder?: Signal<string>;\r\n options?: Signal<T[]>;\r\n optionLabel?: keyof T;\r\n optionValue?: keyof T;\r\n}\r\n","export interface ErpPageRequest {\r\n page?: number; // page index, 0-based\r\n size?: number; // page size\r\n sort?: string; // e.g. 'createdAt,desc' or 'nom,asc'\r\n}\r\n\r\n/** parametters for pagination (e.g. ) toPageParams({ page: 0, size: 10, sort: 'createdAt' })*/\r\nexport function toPageParams(req: ErpPageRequest): Record<string, string> {\r\n const params: Record<string, string> = {};\r\n if (req.page !== undefined) params[\"page\"] = req.page.toString();\r\n if (req.size !== undefined) params[\"size\"] = req.size.toString();\r\n if (req.sort) params[\"sort\"] = req.sort;\r\n return params;\r\n}\r\n","// base-entity.model.ts\nexport abstract class BaseEntity {\n id!: number;\n createdAt!: Date;\n updatedAt!: Date;\n createdBy!: string;\n updatedBy!: string;\n archived: boolean = false;\n attributes?: Record<string, unknown>;\n}\n/** */\nexport interface ErpResponse<T> {\n data: T | null;\n message: string;\n success: boolean;\n statusCode: number;\n errors?: ErpError[];\n meta?: any;\n}\n\nexport interface ErpError {\n field?: string;\n code: string;\n message: string;\n}\n\nexport interface ErpPaginatedResponse<T> {\n content: T[];\n page: number;\n size: number;\n totalElements: number;\n totalPages: number;\n last: boolean;\n}\n","export class CategorieSocioProfRequest {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n constructor(data: Partial<CategorieSocioProfRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { ICategorieSocioProf } from \"./categorie-socio-prof.interface\";\nimport { CategorieSocioProfRequest } from \"./categorie-socio-prof.request\";\n\nexport class CategorieSocioProf\n extends BaseEntity\n implements ICategorieSocioProf\n{\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n toJson(): CategorieSocioProfRequest {\n return new CategorieSocioProfRequest({\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n libelleEn: this.libelleEn,\n });\n }\n\n static fromJson(data: any): CategorieSocioProf {\n const obj = new CategorieSocioProf();\n obj.id = data.id;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.libelleEn = data.libelleEn;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","export class GrilleRequest {\n section?: string;\n indice?: string;\n sbase?: number;\n statut?: boolean;\n\n constructor(data: Partial<GrilleRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { IGrille } from \"./grille.interface\";\nimport { GrilleRequest } from \"./grille.request\";\n\nexport class Grille extends BaseEntity implements IGrille {\n section?: string;\n indice?: string;\n sbase?: number;\n statut?: boolean;\n\n toJson(): GrilleRequest {\n return new GrilleRequest({\n section: this.section,\n indice: this.indice,\n sbase: this.sbase,\n statut: this.statut,\n });\n }\n\n static fromJson(data: any): Grille {\n const obj = new Grille();\n obj.id = data.id;\n obj.section = data.section;\n obj.indice = data.indice;\n obj.sbase = data.sbase;\n obj.statut = data.statut;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","export class FichePosteRequest {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n grilleId?: number;\n\n constructor(data: Partial<FichePosteRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { Grille } from \"../grille/grille.model\";\nimport { IFichePoste } from \"./fiche-poste.interface\";\nimport { FichePosteRequest } from \"./fiche-poste.request\";\n\nexport class FichePoste extends BaseEntity implements IFichePoste {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n grille?: Grille;\n\n toJson(): FichePosteRequest {\n return new FichePosteRequest({\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n libelleEn: this.libelleEn,\n grilleId: this.grille?.id,\n });\n }\n\n static fromJson(data: any): FichePoste {\n const obj = new FichePoste();\n obj.id = data.id;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.libelleEn = data.libelleEn;\n obj.grille = data.grille ? Grille.fromJson(data.grille) : undefined;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","import { SensComptable } from \"./sens-comptable.enum\";\n\nexport class PlanComptableRequest {\n id?: number;\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n sens?: SensComptable;\n\n constructor(data: Partial<PlanComptableRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { IPlanComptable } from \"./plan-comptable.interface\";\nimport { PlanComptableRequest } from \"./plan-comptable.request\";\nimport { SensComptable } from \"./sens-comptable.enum\";\n\nexport class PlanComptable extends BaseEntity implements IPlanComptable {\n override id!: any; // string PK\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n sens?: SensComptable;\n\n toJson(): PlanComptableRequest {\n return new PlanComptableRequest({\n id: this.id,\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n libelleEn: this.libelleEn,\n sens: this.sens,\n });\n }\n\n static fromJson(data: any): PlanComptable {\n const obj = new PlanComptable();\n obj.id = data.id;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.libelleEn = data.libelleEn;\n obj.sens = data.sens;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","export enum SensComptable {\n DEBIT = \"DEBIT\",\n CREDIT = \"CREDIT\",\n}\n\nexport const SensComptableList: { key: string; value: SensComptable }[] =\n Object.entries(SensComptable).map(([key, value]) => ({ key, value }));\n","import { TypeRubrique } from './type-rubrique.enum';\n\nexport class PlanRubriqueRequest {\n codeRubrique?: string;\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n sens?: string;\n modeCalcul?: string;\n typeRubrique?: TypeRubrique;\n\n constructor(data: Partial<PlanRubriqueRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { IPlanRubrique } from \"./plan-rubrique.interface\";\nimport { PlanRubriqueRequest } from \"./plan-rubrique.request\";\nimport { TypeRubrique } from \"./type-rubrique.enum\";\n\nexport class PlanRubrique extends BaseEntity implements IPlanRubrique {\n codeRubrique?: string;\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n sens?: string;\n modeCalcul?: string;\n typeRubrique?: TypeRubrique;\n\n toJson(): PlanRubriqueRequest {\n return new PlanRubriqueRequest({\n codeRubrique: this.codeRubrique,\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n libelleEn: this.libelleEn,\n sens: this.sens,\n modeCalcul: this.modeCalcul,\n typeRubrique: this.typeRubrique,\n });\n }\n\n static fromJson(data: any): PlanRubrique {\n const obj = new PlanRubrique();\n obj.id = data.id;\n obj.codeRubrique = data.codeRubrique;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.libelleEn = data.libelleEn;\n obj.sens = data.sens;\n obj.modeCalcul = data.modeCalcul;\n obj.typeRubrique = data.typeRubrique;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","export enum TypeRubrique {\n FIXE = \"FIXE\",\n VARIABLE = \"VARIABLE\",\n}\n\nexport const TypeRubriqueList: { key: string; value: TypeRubrique }[] =\n Object.entries(TypeRubrique).map(([key, value]) => ({ key, value }));\n","export class TypeCongeRequest {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n constructor(data: Partial<TypeCongeRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { ITypeConge } from \"./type-conge.interface\";\nimport { TypeCongeRequest } from \"./type-conge.request\";\n\nexport class TypeConge extends BaseEntity implements ITypeConge {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n toJson(): TypeCongeRequest {\n return new TypeCongeRequest({\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n libelleEn: this.libelleEn,\n });\n }\n\n static fromJson(data: any): TypeConge {\n const obj = new TypeConge();\n obj.id = data.id;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.libelleEn = data.libelleEn;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","export class TypeContratRequest {\n libelleEn?: string;\n libelleFr?: string;\n libelleAr?: string;\n\n constructor(data: Partial<TypeContratRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { ITypeContrat } from \"./type-contrat.interface\";\nimport { TypeContratRequest } from \"./type-contrat.request\";\n\nexport class TypeContrat extends BaseEntity implements ITypeContrat {\n libelleAr?: string;\n libelleEn?: string;\n libelleFr?: string;\n\n toJson(): TypeContratRequest {\n return new TypeContratRequest({\n libelleEn: this.libelleEn,\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n });\n }\n\n static fromJson(data: any): TypeContrat {\n const obj = new TypeContrat();\n obj.id = data.id;\n obj.libelleEn = data.libelleEn;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","export class TypeFormationRequest {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n constructor(data: Partial<TypeFormationRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { ITypeFormation } from \"./type-formation.interface\";\nimport { TypeFormationRequest } from \"./type-formation.request\";\n\nexport class TypeFormation extends BaseEntity implements ITypeFormation {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n toJson(): TypeFormationRequest {\n return new TypeFormationRequest({\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n libelleEn: this.libelleEn,\n });\n }\n\n static fromJson(data: any): TypeFormation {\n const obj = new TypeFormation();\n obj.id = data.id;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.libelleEn = data.libelleEn;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","export class TypeSanctionRequest {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n constructor(data: Partial<TypeSanctionRequest> = {}) {\n Object.assign(this, data);\n }\n}\n","import { BaseEntity } from \"../../models/erp-response.model\";\nimport { ITypeSanction } from \"./type-sanction.interface\";\nimport { TypeSanctionRequest } from \"./type-sanction.request\";\n\nexport class TypeSanction extends BaseEntity implements ITypeSanction {\n libelleFr?: string;\n libelleAr?: string;\n libelleEn?: string;\n\n toJson(): TypeSanctionRequest {\n return new TypeSanctionRequest({\n libelleFr: this.libelleFr,\n libelleAr: this.libelleAr,\n libelleEn: this.libelleEn,\n });\n }\n\n static fromJson(data: any): TypeSanction {\n const obj = new TypeSanction();\n obj.id = data.id;\n obj.libelleFr = data.libelleFr;\n obj.libelleAr = data.libelleAr;\n obj.libelleEn = data.libelleEn;\n obj.createdAt = data.createdAt ? new Date(data.createdAt) : undefined!;\n obj.updatedAt = data.updatedAt ? new Date(data.updatedAt) : undefined!;\n obj.createdBy = data.createdBy;\n obj.updatedBy = data.updatedBy;\n obj.archived = data.archived ?? false;\n obj.attributes = data.attributes;\n return obj;\n }\n}\n","/*\n * Public API Surface of @itdev/erp\n */\n\n// Components (standalone)\nexport * from \"./lib/components/button/button.component\";\n\n// Components (input signals)\nexport * from \"./lib/components/input-signals/s-date/s-date\";\nexport * from \"./lib/components/input-signals/s-input-text/s-input-text\";\nexport * from \"./lib/components/input-signals/s-select/s-select\";\n\n// Components (TABLE)\nexport * from \"./lib/components/table/status-cell/status-cell\";\nexport * from \"./lib/components/table/table\";\nexport * from \"./lib/components/table/user-cell/user-cell\";\n\n// Services\nexport * from \"./lib/services/erp-api.service\";\nexport * from \"./lib/services/erp-auth.service\";\nexport * from \"./lib/services/erp-config.service\";\nexport * from \"./lib/services/erp-notification.service\";\nexport * from \"./lib/services/erp-translation.service\";\n\n// i18n (app owns provideTranslateService())\nexport * from \"./lib/i18n/erp-i18n.service\";\nexport * from \"./lib/i18n/erp-translate.provider\";\n\n//********************** Shared models ************************************************* */\nexport * from \"./lib/models/erp-actions.model\";\nexport * from \"./lib/models/erp-icons.model\";\nexport * from \"./lib/models/erp-inputs.model\";\nexport * from \"./lib/models/erp-request.model\";\nexport * from \"./lib/models/erp-response.model\";\nexport * from \"./lib/models/erp-status.model\";\nexport * from \"./lib/models/erp-user.model\";\n\n//********************************************* Models ************************************\nexport * from \"./lib/erp-entities/categorie-socio-prof/categorie-socio-prof.interface\";\nexport * from \"./lib/erp-entities/categorie-socio-prof/categorie-socio-prof.model\";\nexport * from \"./lib/erp-entities/categorie-socio-prof/categorie-socio-prof.request\";\n\n//fiche-posete\nexport * from \"./lib/erp-entities/fiche-poste/fiche-poste.interface\";\nexport * from \"./lib/erp-entities/fiche-poste/fiche-poste.model\";\nexport * from \"./lib/erp-entities/fiche-poste/fiche-poste.request\";\n\n//grille\nexport * from \"./lib/erp-entities/grille/grille.interface\";\nexport * from \"./lib/erp-entities/grille/grille.model\";\nexport * from \"./lib/erp-entities/grille/grille.request\";\n\n//plan-comptable\nexport * from \"./lib/erp-entities/plan-comptable/plan-comptable.interface\";\nexport * from \"./lib/erp-entities/plan-comptable/plan-comptable.model\";\nexport * from \"./lib/erp-entities/plan-comptable/plan-comptable.request\";\nexport * from \"./lib/erp-entities/plan-comptable/sens-comptable.enum\";\n\n//plan-rubrique\nexport * from \"./lib/erp-entities/plan-rubrique/plan-rubrique.interface\";\nexport * from \"./lib/erp-entities/plan-rubrique/plan-rubrique.model\";\nexport * from \"./lib/erp-entities/plan-rubrique/plan-rubrique.request\";\nexport * from \"./lib/erp-entities/plan-rubrique/type-rubrique.enum\";\n\n//type-conge\nexport * from \"./lib/erp-entities/type-conge/type-conge.interface\";\nexport * from \"./lib/erp-entities/type-conge/type-conge.model\";\nexport * from \"./lib/erp-entities/type-conge/type-conge.request\";\n\n//type-contrat\nexport * from \"./lib/erp-entities/type-contrat/type-contrat.interface\";\nexport * from \"./lib/erp-entities/type-contrat/type-contrat.model\";\nexport * from \"./lib/erp-entities/type-contrat/type-contrat.request\";\n\n//type-formation\nexport * from \"./lib/erp-entities/type-formation/type-formation.interface\";\nexport * from \"./lib/erp-entities/type-formation/type-formation.model\";\nexport * from \"./lib/erp-entities/type-formation/type-formation.request\";\n\n//type-sanction\nexport * from \"./lib/erp-entities/type-sanction/type-sanction.interface\";\nexport * from \"./lib/erp-entities/type-sanction/type-sanction.model\";\nexport * from \"./lib/erp-entities/type-sanction/type-sanction.request\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","i2"],"mappings":";;;;;;;;;;;;;;;MAoBa,eAAe,CAAA;AAR5B,IAAA,WAAA,GAAA;QASW,IAAA,CAAA,OAAO,GAAkB,SAAS;QAClC,IAAA,CAAA,IAAI,GAAe,IAAI;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,OAAO,GAAG,KAAK;QACf,IAAA,CAAA,IAAI,GAAkC,QAAQ;AAE7C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAc;AAgBnD,IAAA;AAdC,IAAA,IAAI,OAAO,GAAA;QACT,OAAO;YACL,WAAW;YACX,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,CAAA,CAAE;YAC5B,CAAA,WAAA,EAAc,IAAI,CAAC,IAAI,CAAA,CAAE;YACzB,IAAI,CAAC,OAAO,GAAG,oBAAoB,GAAG,EAAE;AACzC,SAAA,CAAC,MAAM,CAAC,OAAO,CAAC;IACnB;AAEA,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;IACF;8GAtBW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB5B,0PASA,EAAA,MAAA,EAAA,CAAA,oqCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0PAAA,EAAA,MAAA,EAAA,CAAA,oqCAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;;IE3BS;AAAZ,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,KAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACvC,IAAA,KAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,KAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACjD,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,KAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,KAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,KAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;AAC/C,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,YAA2B;AAC3B,IAAA,KAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,KAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,KAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,KAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAhJW,KAAK,KAAL,KAAK,GAAA,EAAA,CAAA,CAAA;;MCqBJ,OAAO,CAAA;AAQlB,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAM,CAAC,KAAK,EAAE;IAC5B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;IAC7B;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,sBAAsB;IAC7D;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,KAAK;IACzC;AAyBA,IAAA,WAAA,GAAA;QAlDA,IAAA,CAAA,KAAK,GAAG,KAAK;AAEb,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAQ,KAAK,CAAC,QAAQ,gDAAC;AAGnC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAU,KAAK,gDAAC;AAsB7B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAqB,SAAS,+CAAC;AAC3C,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAqB,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAqB,SAAS,gDAAC;AAE5C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAS,EAAE,0DAAC;AAEnC,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAC7B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;AAAE,gBAAA,OAAO,EAAE;YAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5C,QAAA,CAAC,0DAAC;AAEF,QAAA,IAAA,CAAA,QAAQ,GAAG;YACT,eAAe;YACf,eAAe;YACf,eAAe;YACf,eAAe;YACf,eAAe;YACf,eAAe;YACf,eAAe;SAChB;QAGC,MAAM,CAAC,MAAK;YACV,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACxC,YAAA,IAAI,aAAa,KAAK,IAAI,EAAE;AAC1B,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;oBACxC,GAAG;oBACH,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACjD,GAAG;AACH,oBAAA,aAAa,CAAC,WAAW,EAAE,CAC9B;YACH;iBAAO;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B;AACF,QAAA,CAAC,CAAC;IACJ;IACA,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,UAAU,CAAC,KAAiB,EAAA;QAC1B,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IACzB;IAEA,eAAe,GAAA;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACxC,QAAA,MAAM,KAAK,GAAG,aAAa,GAAG,aAAa,GAAG,IAAI,IAAI,EAAE;QACxD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAElC,QAAA,IAAI,aAAa,KAAK,IAAI,EAAE;AAC1B,YAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC;AAC3C,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChC,GAAG;gBACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACzC,GAAG;AACH,gBAAA,KAAK,CAAC,WAAW,EAAE,CACtB;QACH;IACF;IAEA,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAA;QAC3C,MAAM,MAAM,GAA+C,EAAE;;AAG7D,QAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;AACtD,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;AACtD,QAAA,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;QAE9D,IAAI,UAAU,GAAG,CAAC;QAClB,IAAI,YAAY,GAAG,CAAC;AAEpB,QAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;;YAEhC,MAAM,IAAI,GAA6C,EAAE;AAEzD,YAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAChC,gBAAA,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;AAE/B,gBAAA,IAAI,SAAS,GAAG,QAAQ,EAAE;;oBAExB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,GAAG,EAAE,eAAe,GAAG,QAAQ,GAAG,GAAG,GAAG,CAAC;AACzC,wBAAA,YAAY,EAAE,KAAK;AACpB,qBAAA,CAAC;gBACJ;AAAO,qBAAA,IAAI,UAAU,IAAI,WAAW,EAAE;;oBAEpC,IAAI,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,UAAU,EAAE;AACjB,wBAAA,YAAY,EAAE,IAAI;AACnB,qBAAA,CAAC;gBACJ;qBAAO;;oBAEL,IAAI,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,YAAY,EAAE;AACnB,wBAAA,YAAY,EAAE,KAAK;AACpB,qBAAA,CAAC;gBACJ;YACF;AAEA,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB;AAEA,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,aAAa,CAAC,KAAiB,EAAA;QAC7B,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE;AAErB,QAAA,IAAI,QAAQ,GAAG,KAAK,GAAG,CAAC;QACxB,IAAI,OAAO,GAAG,IAAI;AAElB,QAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,QAAQ,GAAG,EAAE;AACb,YAAA,OAAO,GAAG,IAAI,GAAG,CAAC;QACpB;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IACxB;AAEA,IAAA,SAAS,CAAC,KAAiB,EAAA;QACzB,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE;AAErB,QAAA,IAAI,QAAQ,GAAG,KAAK,GAAG,CAAC;QACxB,IAAI,OAAO,GAAG,IAAI;AAElB,QAAA,IAAI,QAAQ,GAAG,EAAE,EAAE;YACjB,QAAQ,GAAG,CAAC;AACZ,YAAA,OAAO,GAAG,IAAI,GAAG,CAAC;QACpB;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IACxB;AAEA,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;AAEA,IAAA,OAAO,CAAC,IAAY,EAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACrB;IAEA,YAAY,GAAA;AACV,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;QACrB,OAAO,KAAK,GAAG,EAAE,GAAG,CAAA,QAAA,EAAW,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE;IAC1E;AAEA,IAAA,YAAY,CAAC,GAAW,EAAA;AACtB,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE;AACnB,QAAA,OAAO,GAAG,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,GAAG,CAAA,EAAG,GAAG,EAAE;IACxC;AAEA,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;AACrB,QAAA,OAAO,KAAK,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,GAAG,CAAA,EAAG,KAAK,EAAE;IAC9C;IAEA,UAAU,CAAC,KAAiB,EAAE,GAAW,EAAA;QACvC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAEnD,QAAA,MAAM,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,EAAE;AAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AAEA,IAAA,YAAY,CAAC,GAAW,EAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,QAAA,QACE,GAAG,KAAK,KAAK,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;IAEvC;AAEA,IAAA,aAAa,CAAC,GAAW,EAAA;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACvC,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,KAAK;AAC/B,QAAA,QACE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,KAAK,EAAE,KAAK,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC5C,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE;IAE9C;8GA3OW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBpB,s3GAwFA,EAAA,MAAA,EAAA,CAAA,ihBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvEY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIjE,OAAO,EAAA,UAAA,EAAA,CAAA;kBANnB,SAAS;+BACE,UAAU,EAAA,OAAA,EACX,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,s3GAAA,EAAA,MAAA,EAAA,CAAA,ihBAAA,CAAA,EAAA;;sBAQ5E;;;MEXU,YAAY,CAAA;AANzB,IAAA,WAAA,GAAA;QAOE,IAAA,CAAA,KAAK,GAAG,KAAK;QAEb,IAAA,CAAA,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAS;AAkBtB,IAAA;AAfC,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;IAC7B;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,sBAAsB;IAC7D;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,KAAK;IACzC;8GApBW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdzB,ggCAgCA,EAAA,MAAA,EAAA,CAAA,mMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIjE,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;+BACE,gBAAgB,EAAA,OAAA,EACjB,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,ggCAAA,EAAA,MAAA,EAAA,CAAA,mMAAA,CAAA,EAAA;;sBAQ5E;;;MEYU,SAAS,CAAA;AAWpB,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAM,CAAC,KAAK,EAAE;IAC5B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;IAC7B;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,sBAAsB;IAC7D;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;IACrC;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAY;IAChC;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAY;IAChC;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC9B;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,aAAa;AAAE,YAAA,OAAO,EAAE;;AAG7B,QAAA,OAAQ,aAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE;IACxE;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,KAAK;IACzC;AAEA,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;AAnDxB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAQ,KAAK,CAAC,oBAAoB,gDAAC;AAK/C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAU,KAAK,gDAAC;IA8CU;AAEvC,IAAA,UAAU,CAAC,KAAiB,EAAA;QAC1B,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IACzB;AAEA,IAAA,MAAM,CAAC,MAAS,EAAA;AACd,QAAA,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAM,CAAC,UAAU,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AAGA,IAAA,YAAY,CAAC,KAAY,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;IACF;AAEA,IAAA,cAAc,CAAC,MAAS,EAAA;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW;AAClC,QAAA,IAAI,GAAG;AAAE,YAAA,OAAO,MAAM,CAAC,GAAG,CAAW;;AAChC,YAAA,OAAO,uBAAuB;IACrC;8GAhFW,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BtB,g/EAkEA,EAAA,MAAA,EAAA,CAAA,8eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/CI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACP,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,YAAY,mSAEZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKN,SAAS,EAAA,UAAA,EAAA,CAAA;kBAdrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EACb;wBACP,WAAW;wBACX,mBAAmB;wBACnB,OAAO;wBACP,aAAa;wBACb,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,g/EAAA,EAAA,MAAA,EAAA,CAAA,8eAAA,CAAA,EAAA;;sBAKA;;sBACA;;sBAKA;;sBA8DA,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;ME3F/B,aAAa,CAAA;AAN1B,IAAA,WAAA,GAAA;AAOE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;QACvB,IAAA,CAAA,SAAS,GAAuB,SAAS;QACzC,IAAA,CAAA,eAAe,GAAuB,SAAS;AACzD,IAAA;8GAJY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,0eCR1B,iTAUA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDFa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,iTAAA,EAAA;;sBAMV;;sBACA;;;MEyBU,QAAQ,CAAA;AAoBnB,IAAA,WAAA,GAAA;QAnBA,IAAA,CAAA,KAAK,GAAG,KAAK;AAEb,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAiB,EAAE,mDAAC;AACnC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAM,EAAE,gDAAC;AACrB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAiB,IAAI,iDAAC;AACnC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAM,EAAE,wDAAC;QACpB,IAAA,CAAA,YAAY,GAAY,KAAK;QAC7B,IAAA,CAAA,cAAc,GAAY,KAAK;QAE/B,IAAA,CAAA,SAAS,GAA+C,EAAE;QAE1D,IAAA,CAAA,iBAAiB,GAAW,gBAAgB;QAC5C,IAAA,CAAA,kBAAkB,GAAuB,SAAS;AAE3D,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAW,EAAE,yDAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAW,EAAE,0DAAC;AAEpC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,KAAK,2DAAC;QAsBxC,IAAA,CAAA,YAAY,GAAoB,QAAQ,CACtC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,wDACxD;IAtBc;IAEf,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;AACvD,YAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;QAChE;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAa;AACnC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,YAAA,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;AACpC,gBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;YACzC;QACF;IACF;AAEA,IAAA,WAAW,CAAC,GAAY,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC5B;IAMA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AACzB,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;YACjC,CAAC,EAAE,GAAG,CAAC;QACT;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC;IACF;AAEA,IAAA,SAAS,CAAC,GAAM,EAAA;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC9B,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CACxB,CAAC,CAAC,KACA,CAAC,CAAC,IAAI,CAAC,KAAK,EAAa,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAa,CAAC,CAC9D,CACF;AACD,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;gBACjC,CAAC,EAAE,GAAG,CAAC;YACT;iBAAO;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CACxB,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAa,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAa,CAAC,CACnE,CACF;YACH;QACF;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;QACtD;IACF;AAEA,IAAA,aAAa,CAAC,GAAM,EAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CACvC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAa,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAa,CAAC,CACnE;AACD,QAAA,IAAI,QAAQ;AAAE,YAAA,OAAO,IAAI;AACzB,QAAA,OAAO,KAAK;IACd;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QACjC,CAAC,EAAE,GAAG,CAAC;IACT;8GA/FW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,mxDCpCrB,wuIAsIA,EAAA,MAAA,EAAA,CAAA,s0DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3GI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEZ,aAAa,qLAEb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKN,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAZpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EACZ;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,aAAa;wBACb,OAAO;wBACP,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,wuIAAA,EAAA,MAAA,EAAA,CAAA,s0DAAA,CAAA,EAAA;;sBAWA;;sBACA;;sBAEA;;sBAEA;;sBACA;;;MExCU,WAAW,CAAA;AAKtB,IAAA,WAAA,GAAA;QAJS,IAAA,CAAA,SAAS,GAAG,EAAE;QACd,IAAA,CAAA,QAAQ,GAAG,EAAE;QACb,IAAA,CAAA,KAAK,GAAG,EAAE;IAEJ;8GALJ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTxB,iSAOA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIX,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,SAAS;+BACE,eAAe,EAAA,OAAA,EAChB,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,iSAAA,EAAA;;sBAKtB;;sBACA;;sBACA;;;MEHU,gBAAgB,CAAA;AAK3B,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAS,EAAE,sDAAC;AAC/B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAS,EAAE,wDAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAS,EAAE,sDAAC;IAExB;AAEf,IAAA,SAAS,CAAC,MAAc,EAAA;QACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC;AAEA,IAAA,aAAa,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B;AAEA,IAAA,eAAe,CAAC,MAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;IAC/B;AAEA,IAAA,aAAa,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B;IAEA,SAAS,GAAA;QACP,OAAO;AACL,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjC,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;SAC9B;IACH;8GA/BW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCErB,aAAa,CAAA;AAKxB,IAAA,WAAA,GAAA;AAJiB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAE1C,IAAA,CAAA,OAAO,GAAG,EAAE;QAElB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU;IACnD;IAEA,GAAG,CAAI,QAAgB,EAAE,MAA+B,EAAA;QACtD,MAAM,UAAU,GAAG;cACf,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;cACrC,SAAS;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,EAAE,EAAE;AACpD,YAAA,MAAM,EAAE,UAAU;AACnB,SAAA,CAAC;IACJ;IAEA,YAAY,CACV,QAAgB,EAChB,MAA+B,EAAA;QAE/B,MAAM,UAAU,GAAG;cACf,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;cACrC,SAAS;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,EAAE,EAC5B;AACE,YAAA,MAAM,EAAE,UAAU;AACnB,SAAA,CACF;IACH;AAEA,IAAA,OAAO,CACL,QAAgB,EAChB,EAAU,EACV,MAA+B,EAAA;QAE/B,MAAM,UAAU,GAAG;cACf,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;cACrC,SAAS;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,EAAE,EAAE;AAC1D,YAAA,MAAM,EAAE,UAAU;AACnB,SAAA,CAAC;IACJ;IAEA,IAAI,CAAI,QAAgB,EAAE,IAAa,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE,EAAE,IAAI,EAAE;YAC7D,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AACjE,SAAA,CAAC;IACJ;IAEA,GAAG,CAAI,QAAgB,EAAE,IAAa,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE,EAAE,IAAI,EAAE;YACvE,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AACjE,SAAA,CAAC;IACJ;IAEA,KAAK,CAAI,QAAgB,EAAE,IAAa,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA,CAAE,EAAE,IAAI,CAAC;IAC5E;AAEA,IAAA,MAAM,CAAI,QAAgB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE,CAAC;IACvE;8GAhEW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCLrB,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;;QAKnC,IAAA,CAAA,eAAe,GAAG,MAAM,CAC/B,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACrC;;QAGQ,IAAA,CAAA,WAAW,GAAG,MAAM,CAC3B,IAAI,CAAC,QAAQ,CAAC,WAAkD,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACjE;;QAGQ,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAC1B,MACG,IAAI,CAAC,WAAW;AACf,cAAE,kBAAkB,IAAI,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC/B;;AAGQ,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,iDAC7C;AAqDF,IAAA;;AAjDC;;;AAGG;AACH,IAAA,KAAK,CAAC,WAAoB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzB,YAAA,WAAW,EAAE,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI;AACjD,SAAA,CAAC;IACJ;AAEA;;;AAGG;AACH,IAAA,MAAM,CAAC,WAAoB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1B,YAAA,WAAW,EAAE,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;AACnD,SAAA,CAAC;IACJ;AAEA;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;IAC1C;AAEA;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC;cACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;AACrC,cAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC1C;AAEA;;AAEG;AACH,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;IACzC;AAEA;;AAEG;IACH,eAAe,CAAC,IAAY,EAAE,QAAiB,EAAA;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtD;8GA7EW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCUrB,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAoB,EAAE,yDAAC;AACvD,IAAA;8GAFY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCHrB,qBAAqB,CAAA;AAGhC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;AAFxB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACpC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACM;AAEvC,IAAA,wBAAwB,CACtB,GAAW,EACX,IAAA,GAAe,IAAI,EAAA;QAEnB,OAAO,IAAI,CAAC;AACT,aAAA,GAAG,CAEF,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,CAAA,aAAA,EAAgB,IAAI,OAAO;AACjE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CACzB;IACL;8GAjBW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCDY,cAAc,CAAA;AAQzB,IAAA,WAAA,GAAA;AAPiB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAG5C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAC3B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,uDACzD;;AAIC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AACjD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,GAAG,CAAC,IAAa,EAAA;AACf,QAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IACjC;AAEA;;;AAGG;IACH,oBAAoB,GAAA;QAClB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACpD,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3B;IACF;AAEA;;AAEG;IACH,OAAO,CAAC,GAAW,EAAE,MAAgC,EAAA;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;IAC5C;AAEA;;AAEG;IACH,GAAG,CAAC,GAAW,EAAE,MAAgC,EAAA;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IACxC;8GA9CW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACelC;;;;;;;;;;AAUG;AACG,SAAU,mBAAmB,CACjC,MAAA,GAA6B,EAAE,EAAA;AAE/B,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,IAAI,cAAc;AACtD,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI;AAE9C,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA,mBAAmB,CACjB,eAAe,CAAC,OAAO,CAAC;;;AAGtB,YAAA,eAAe,EAAE,WAAW;YAC5B,cAAc,EAAE,IAAI;AACpB,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,iBAAiB;gBAC7B,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,aAAA;AACF,SAAA,CAAC,CACH;AACF,KAAA,CAAC;AACJ;MAEa,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;IAAe;AACvC,IAAA,cAAc,CAAC,IAAY,EAAA;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,YAAA,EAAe,IAAI,CAAA,KAAA,CAAO,CAAC;IAClD;AACD;AAEK,SAAU,iBAAiB,CAAC,IAAgB,EAAA;AAChD,IAAA,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC;AACxC;;IC9DY;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,WAAsB;AACxB,CAAC,EApBW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;ACItB;AACM,SAAU,YAAY,CAAC,GAAmB,EAAA;IAC9C,MAAM,MAAM,GAA2B,EAAE;AACzC,IAAA,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChE,IAAA,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChE,IAAI,GAAG,CAAC,IAAI;AAAE,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI;AACvC,IAAA,OAAO,MAAM;AACf;;ACbA;MACsB,UAAU,CAAA;AAAhC,IAAA,WAAA,GAAA;QAME,IAAA,CAAA,QAAQ,GAAY,KAAK;IAE3B;AAAC;;MCTY,yBAAyB,CAAA;AAKpC,IAAA,WAAA,CAAY,OAA2C,EAAE,EAAA;AACvD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACJK,MAAO,kBACX,SAAQ,UAAU,CAAA;IAOlB,MAAM,GAAA;QACJ,OAAO,IAAI,yBAAyB,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,kBAAkB,EAAE;AACpC,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;MClCY,aAAa,CAAA;AAMxB,IAAA,WAAA,CAAY,OAA+B,EAAE,EAAA;AAC3C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACLK,MAAO,MAAO,SAAQ,UAAU,CAAA;IAMpC,MAAM,GAAA;QACJ,OAAO,IAAI,aAAa,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,MAAM,EAAE;AACxB,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC1B,QAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACxB,QAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACtB,QAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QACxB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;MClCY,iBAAiB,CAAA;AAM5B,IAAA,WAAA,CAAY,OAAmC,EAAE,EAAA;AAC/C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACJK,MAAO,UAAW,SAAQ,UAAU,CAAA;IAMxC,MAAM,GAAA;QACJ,OAAO,IAAI,iBAAiB,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE;AAC1B,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE;AAC5B,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS;QACnE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;MCjCY,oBAAoB,CAAA;AAO/B,IAAA,WAAA,CAAY,OAAsC,EAAE,EAAA;AAClD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACPK,MAAO,aAAc,SAAQ,UAAU,CAAA;IAO3C,MAAM,GAAA;QACJ,OAAO,IAAI,oBAAoB,CAAC;YAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE;AAC/B,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QACpB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;ICrCW;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAHW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AAKlB,MAAM,iBAAiB,GAC5B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;;MCJzD,mBAAmB,CAAA;AAS9B,IAAA,WAAA,CAAY,OAAqC,EAAE,EAAA;AACjD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACTK,MAAO,YAAa,SAAQ,UAAU,CAAA;IAS1C,MAAM,GAAA;QACJ,OAAO,IAAI,mBAAmB,CAAC;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE;AAC9B,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AACpC,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACpB,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;QACpC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;IC5CW;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAKjB,MAAM,gBAAgB,GAC3B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;;MCNxD,gBAAgB,CAAA;AAK3B,IAAA,WAAA,CAAY,OAAkC,EAAE,EAAA;AAC9C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACJK,MAAO,SAAU,SAAQ,UAAU,CAAA;IAKvC,MAAM,GAAA;QACJ,OAAO,IAAI,gBAAgB,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE;AAC3B,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;MC/BY,kBAAkB,CAAA;AAK7B,IAAA,WAAA,CAAY,OAAoC,EAAE,EAAA;AAChD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACJK,MAAO,WAAY,SAAQ,UAAU,CAAA;IAKzC,MAAM,GAAA;QACJ,OAAO,IAAI,kBAAkB,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE;AAC7B,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;MC/BY,oBAAoB,CAAA;AAK/B,IAAA,WAAA,CAAY,OAAsC,EAAE,EAAA;AAClD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACJK,MAAO,aAAc,SAAQ,UAAU,CAAA;IAK3C,MAAM,GAAA;QACJ,OAAO,IAAI,oBAAoB,CAAC;YAC9B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE;AAC/B,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;MC/BY,mBAAmB,CAAA;AAK9B,IAAA,WAAA,CAAY,OAAqC,EAAE,EAAA;AACjD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAC3B;AACD;;ACJK,MAAO,YAAa,SAAQ,UAAU,CAAA;IAK1C,MAAM,GAAA;QACJ,OAAO,IAAI,mBAAmB,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC;IACJ;IAEA,OAAO,QAAQ,CAAC,IAAS,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE;AAC9B,QAAA,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAChB,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;QACtE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAU;AACtE,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9B,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC9B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAChC,QAAA,OAAO,GAAG;IACZ;AACD;;AC/BD;;AAEG;AAEH;;ACJA;;AAEG;;;;"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "erp-library-itdev",
3
+ "version": "0.1.5",
4
+ "description": "ITDev ERP Angular Library - Full-featured components and services",
5
+ "author": "BMM",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "angular",
9
+ "erp",
10
+ "itdev",
11
+ "components",
12
+ "services"
13
+ ],
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/mbouchakriitdev-lgtm/erp-library.git"
17
+ },
18
+ "peerDependencies": {
19
+ "@angular/common": "^21.0.0",
20
+ "@angular/core": "^21.0.0",
21
+ "@ngrx/signals": "^21.0.1",
22
+ "@ngx-translate/core": "^17.0.0",
23
+ "@ngx-translate/http-loader": "^17.0.0",
24
+ "tailwindcss": "^3.4.0",
25
+ "keycloak-angular": "^21.0.0",
26
+ "keycloak-js": "^26.2.2"
27
+ },
28
+ "dependencies": {
29
+ "tslib": "^2.6.0"
30
+ },
31
+ "publishConfig": {
32
+ "registry": "https://registry.npmjs.org/",
33
+ "access": "public"
34
+ },
35
+ "sideEffects": false,
36
+ "module": "fesm2022/erp-library-itdev.mjs",
37
+ "typings": "types/erp-library-itdev.d.ts",
38
+ "exports": {
39
+ "./package.json": {
40
+ "default": "./package.json"
41
+ },
42
+ ".": {
43
+ "types": "./types/erp-library-itdev.d.ts",
44
+ "default": "./fesm2022/erp-library-itdev.mjs"
45
+ }
46
+ }
47
+ }